create-expert 0.0.37 → 0.0.39
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/dist/bin/cli.js +672 -211
- package/dist/bin/cli.js.map +1 -1
- package/dist/perstack.toml +51 -11
- package/dist/{resolve-expert-DsQia0Mr.js → resolve-expert-CTnETi9d.js} +2 -2
- package/dist/{resolve-expert-DsQia0Mr.js.map → resolve-expert-CTnETi9d.js.map} +1 -1
- package/dist/{src-D-q0VJ6r.js → src-C0pz_C3h.js} +80 -2
- package/dist/{src-D-q0VJ6r.js.map → src-C0pz_C3h.js.map} +1 -1
- package/package.json +6 -6
package/dist/perstack.toml
CHANGED
|
@@ -68,23 +68,62 @@ pick = ["readTextFile", "writeTextFile", "listDirectory", "think", "attemptCompl
|
|
|
68
68
|
3. Based on the user's request, draft the expert definition
|
|
69
69
|
4. Create the expert in memory using `createExpert` to validate the definition
|
|
70
70
|
5. Add it as a delegate using `addDelegate` so you can test it
|
|
71
|
-
6.
|
|
72
|
-
7.
|
|
73
|
-
8. If the test shows errors or
|
|
71
|
+
6. **Practical test**: Call the delegate with a realistic query that matches what the user would actually ask (see Testing Guide below)
|
|
72
|
+
7. **Verify outputs**: After the delegate returns, verify the actual artifacts and process (see Testing Guide below)
|
|
73
|
+
8. If the test shows errors, missing artifacts, or quality issues:
|
|
74
74
|
- Use `removeDelegate` to remove the current delegate
|
|
75
75
|
- Modify the definition and call `createExpert` again with the same key
|
|
76
76
|
- Add it as a delegate again with `addDelegate` and re-test
|
|
77
|
-
9. Once the expert
|
|
77
|
+
9. Once the expert produces correct, complete outputs, write the final `perstack.toml` using `writeTextFile`
|
|
78
78
|
10. Use `attemptCompletion` when the expert is created and verified
|
|
79
79
|
|
|
80
|
-
## Testing
|
|
80
|
+
## Testing Guide
|
|
81
81
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
82
|
+
You MUST perform practical, end-to-end testing before writing perstack.toml. The test must simulate the user's actual use case, not just check that the expert "runs without errors".
|
|
83
|
+
|
|
84
|
+
### Step 1: Design a realistic test query
|
|
85
|
+
|
|
86
|
+
Before calling the delegate, think about what the user will actually ask this expert to do. The test query should be a concrete, representative task — not a trivial or abstract one.
|
|
87
|
+
|
|
88
|
+
- If the expert generates code: ask it to generate a small but complete, realistic piece (e.g., "Create a responsive landing page with a hero section, feature cards, and a contact form")
|
|
89
|
+
- If the expert writes documentation: ask it to document a specific scenario (e.g., "Write API documentation for a user authentication endpoint with examples")
|
|
90
|
+
- If the expert performs analysis: give it real-looking data to analyze
|
|
91
|
+
- If the expert manages a workflow with sub-experts: give it a task that exercises delegation to at least one sub-expert
|
|
92
|
+
|
|
93
|
+
### Step 2: Verify the artifacts after delegation
|
|
94
|
+
|
|
95
|
+
After the delegate returns its text result, you must verify what was actually produced. Do NOT just read the delegate's response text and assume success.
|
|
96
|
+
|
|
97
|
+
**For experts that create files:**
|
|
98
|
+
1. Use `listDirectory` to confirm all expected files were created
|
|
99
|
+
2. Use `readTextFile` to read each generated file
|
|
100
|
+
3. Check that file contents are correct, complete, and well-structured
|
|
101
|
+
4. Verify no placeholder content (e.g., "TODO", "Lorem ipsum" where real content is expected)
|
|
102
|
+
|
|
103
|
+
**For experts that modify existing files:**
|
|
104
|
+
1. Use `readTextFile` to read the modified files
|
|
105
|
+
2. Verify the changes are correct and the file is still valid
|
|
106
|
+
3. Check that unrelated parts of the file were not damaged
|
|
107
|
+
|
|
108
|
+
**For experts that perform tasks (build, test, deploy, etc.):**
|
|
109
|
+
1. Use `exec` to run `perstack logs --last` to inspect the execution process
|
|
110
|
+
2. Verify the task steps were performed in the correct order
|
|
111
|
+
3. Check that the final state matches expectations (files created, commands run, etc.)
|
|
112
|
+
|
|
113
|
+
**For experts with delegates (coordinator/lead experts):**
|
|
114
|
+
1. Use `exec` to run `perstack logs --last` to verify delegation occurred
|
|
115
|
+
2. Confirm that each sub-expert was called with appropriate queries
|
|
116
|
+
3. Verify the coordinator properly synthesized results from sub-experts
|
|
117
|
+
|
|
118
|
+
### Step 3: Evaluate quality, not just correctness
|
|
119
|
+
|
|
120
|
+
Ask yourself: "If I were the user, would I be satisfied with this output?"
|
|
121
|
+
- Is the output complete, or are parts missing?
|
|
122
|
+
- Is the quality appropriate for the task?
|
|
123
|
+
- Does the expert follow its instruction faithfully?
|
|
124
|
+
- Would the user need to manually fix or redo anything?
|
|
125
|
+
|
|
126
|
+
If the answer to any of these is unsatisfactory, iterate: fix the instruction, recreate, and re-test.
|
|
88
127
|
|
|
89
128
|
## Important Rules
|
|
90
129
|
|
|
@@ -108,6 +147,7 @@ pick = [
|
|
|
108
147
|
"writeTextFile",
|
|
109
148
|
"listDirectory",
|
|
110
149
|
"getFileInfo",
|
|
150
|
+
"exec",
|
|
111
151
|
"think",
|
|
112
152
|
"attemptCompletion",
|
|
113
153
|
"createExpert",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as boolean, B as messageSchema, Ft as PerstackError, G as number$1, H as userMessageSchema, I as usageSchema, L as toolResultSchema, Q as array, R as toolCallSchema, U as activityOrGroupSchema, V as toolMessageSchema, W as boolean$1, X as _undefined, ct as object, dt as record, gt as unknown, ht as union, it as literal, pt as string, q as _enum, st as number, tt as discriminatedUnion, ut as preprocess, z as instructionMessageSchema } from "./src-
|
|
1
|
+
import { $ as boolean, B as messageSchema, Ft as PerstackError, G as number$1, H as userMessageSchema, I as usageSchema, L as toolResultSchema, Q as array, R as toolCallSchema, U as activityOrGroupSchema, V as toolMessageSchema, W as boolean$1, X as _undefined, ct as object, dt as record, gt as unknown, ht as union, it as literal, pt as string, q as _enum, st as number, tt as discriminatedUnion, ut as preprocess, z as instructionMessageSchema } from "./src-C0pz_C3h.js";
|
|
2
2
|
|
|
3
3
|
//#region ../../node_modules/.pnpm/@perstack+api-client@0.0.55_@perstack+core@packages+core_zod@4.3.6/node_modules/@perstack/api-client/dist/index.mjs
|
|
4
4
|
function createValidationError(error) {
|
|
@@ -1648,4 +1648,4 @@ function toRuntimeExpert(key, expert) {
|
|
|
1648
1648
|
|
|
1649
1649
|
//#endregion
|
|
1650
1650
|
export { resolveExpertToRun };
|
|
1651
|
-
//# sourceMappingURL=resolve-expert-
|
|
1651
|
+
//# sourceMappingURL=resolve-expert-CTnETi9d.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-expert-DsQia0Mr.js","names":["z.string","z.enum","z.object","z.literal","z.number","z.unknown","z.array","z.preprocess","z.coerce.number","z.boolean","z.record","z.discriminatedUnion","z.coerce.boolean","z.union","z.undefined"],"sources":["../../../node_modules/.pnpm/@perstack+api-client@0.0.55_@perstack+core@packages+core_zod@4.3.6/node_modules/@perstack/api-client/dist/index.mjs","../../../packages/runtime/src/helpers/resolve-expert.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { activityOrGroupSchema, instructionMessageSchema, messageSchema, toolCallSchema, toolMessageSchema, toolResultSchema, usageSchema, userMessageSchema } from \"@perstack/core\";\n\n//#region src/lib/api-key.ts\nfunction matchWildcard(value, pattern) {\n\tif (pattern === \"*\") return true;\n\tif (pattern.endsWith(\"*\")) return value.startsWith(pattern.slice(0, -1));\n\tif (pattern.startsWith(\"*\")) return value.endsWith(pattern.slice(1));\n\treturn value === pattern;\n}\nfunction matchOperations(operations, requiredOperation) {\n\treturn operations.some((pattern) => matchWildcard(requiredOperation, pattern));\n}\nfunction matchExperts(experts, expertId) {\n\tif (experts === void 0 || experts === \"*\") return true;\n\treturn experts.some((pattern) => matchWildcard(expertId, pattern));\n}\nfunction isApiKeyPermissions(parsed) {\n\treturn typeof parsed === \"object\" && parsed !== null && \"operations\" in parsed && Array.isArray(parsed.operations);\n}\nfunction parseApiKeyPermissions(permissionsJson) {\n\tif (!permissionsJson) return null;\n\ttry {\n\t\tconst parsed = JSON.parse(permissionsJson);\n\t\tif (!isApiKeyPermissions(parsed)) return null;\n\t\treturn parsed;\n\t} catch {\n\t\treturn null;\n\t}\n}\nfunction stringifyApiKeyPermissions(permissions) {\n\treturn JSON.stringify(permissions);\n}\n\n//#endregion\n//#region src/lib/auth.ts\nfunction buildAuthHeaders(auth) {\n\tif (auth.type === \"apiKey\") return { Authorization: `Bearer ${auth.apiKey}` };\n\treturn { Cookie: auth.cookie };\n}\n\n//#endregion\n//#region src/lib/errors.ts\nfunction createValidationError(error) {\n\treturn {\n\t\terrorType: \"validation\",\n\t\tcode: 400,\n\t\tmessage: `Validation failed: ${error.issues.map((issue) => `${issue.path.join(\".\")}: ${issue.message}`).join(\"; \")}`,\n\t\treason: error.issues\n\t};\n}\nfunction createAbortError() {\n\treturn {\n\t\terrorType: \"abort\",\n\t\tcode: 0,\n\t\tmessage: \"Request aborted\",\n\t\taborted: true\n\t};\n}\nfunction createTimeoutError() {\n\treturn {\n\t\terrorType: \"timeout\",\n\t\tcode: 0,\n\t\tmessage: \"Request timed out\"\n\t};\n}\nfunction createNetworkError(error) {\n\treturn {\n\t\terrorType: \"network\",\n\t\tcode: 0,\n\t\tmessage: error instanceof Error ? error.message : \"Network error\",\n\t\treason: error,\n\t\tcause: error instanceof Error ? error : void 0\n\t};\n}\nasync function handleHttpError(response) {\n\tlet errorBody;\n\ttry {\n\t\terrorBody = await response.json();\n\t} catch {\n\t\terrorBody = void 0;\n\t}\n\treturn {\n\t\tok: false,\n\t\terror: createHttpError(response.status, response.statusText, errorBody)\n\t};\n}\nfunction createHttpError(status, statusText, body) {\n\tif (typeof body === \"object\" && body !== null) {\n\t\tconst hasReason = \"reason\" in body;\n\t\tif (\"error\" in body && typeof body.error === \"string\") return {\n\t\t\terrorType: \"http\",\n\t\t\tcode: status,\n\t\t\tmessage: body.error,\n\t\t\treason: hasReason ? body.reason : void 0\n\t\t};\n\t\tif (hasReason) return {\n\t\t\terrorType: \"http\",\n\t\t\tcode: status,\n\t\t\tmessage: statusText,\n\t\t\treason: body.reason\n\t\t};\n\t}\n\treturn {\n\t\terrorType: \"http\",\n\t\tcode: status,\n\t\tmessage: statusText\n\t};\n}\nfunction isHttpError(error) {\n\treturn error.errorType === \"http\";\n}\nfunction isNetworkError(error) {\n\treturn error.errorType === \"network\";\n}\nfunction isTimeoutError(error) {\n\treturn error.errorType === \"timeout\";\n}\nfunction isValidationError(error) {\n\treturn error.errorType === \"validation\";\n}\nfunction isAbortError(error) {\n\treturn error.errorType === \"abort\";\n}\nfunction isClientError(error) {\n\treturn error.errorType !== \"http\";\n}\n\n//#endregion\n//#region src/lib/fetcher.ts\nconst DEFAULT_BASE_URL = \"https://api.perstack.ai\";\nconst DEFAULT_TIMEOUT = 3e4;\nfunction createFetcher(config) {\n\tconst baseUrl = config.baseUrl ?? DEFAULT_BASE_URL;\n\tconst timeout = config.timeout ?? DEFAULT_TIMEOUT;\n\tconst useCredentials = \"credentials\" in config && config.credentials === \"include\";\n\tconst apiKey = \"apiKey\" in config ? config.apiKey : void 0;\n\tfunction buildUrl(path) {\n\t\treturn `${baseUrl}${path}`;\n\t}\n\tfunction buildHeaders(options) {\n\t\tconst headers = {};\n\t\tif (options?.hasBody) headers[\"Content-Type\"] = \"application/json\";\n\t\tif (apiKey) headers.Authorization = `Bearer ${apiKey}`;\n\t\treturn headers;\n\t}\n\tfunction getCredentials() {\n\t\treturn useCredentials ? \"include\" : void 0;\n\t}\n\tfunction createTimeoutSignal(externalSignal) {\n\t\tconst controller = new AbortController();\n\t\tlet timedOut = false;\n\t\tconst timeoutId = setTimeout(() => {\n\t\t\ttimedOut = true;\n\t\t\tcontroller.abort();\n\t\t}, timeout);\n\t\tlet abortHandler;\n\t\tif (externalSignal) if (externalSignal.aborted) controller.abort();\n\t\telse {\n\t\t\tabortHandler = () => controller.abort();\n\t\t\texternalSignal.addEventListener(\"abort\", abortHandler);\n\t\t}\n\t\treturn {\n\t\t\tsignal: controller.signal,\n\t\t\tcleanup: () => {\n\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\tif (abortHandler && externalSignal) externalSignal.removeEventListener(\"abort\", abortHandler);\n\t\t\t},\n\t\t\tisTimeout: () => timedOut\n\t\t};\n\t}\n\tfunction wrapStreamWithIdleTimeout(stream, idleTimeoutMs, externalSignal) {\n\t\tconst reader = stream.getReader();\n\t\tconst controller = new AbortController();\n\t\tlet timeoutId;\n\t\tlet abortHandler;\n\t\tif (externalSignal) if (externalSignal.aborted) controller.abort();\n\t\telse {\n\t\t\tabortHandler = () => controller.abort();\n\t\t\texternalSignal.addEventListener(\"abort\", abortHandler);\n\t\t}\n\t\tfunction resetTimeout() {\n\t\t\tif (timeoutId) clearTimeout(timeoutId);\n\t\t\ttimeoutId = setTimeout(() => controller.abort(), idleTimeoutMs);\n\t\t}\n\t\tfunction cleanup() {\n\t\t\tif (timeoutId) clearTimeout(timeoutId);\n\t\t\tif (abortHandler && externalSignal) externalSignal.removeEventListener(\"abort\", abortHandler);\n\t\t}\n\t\treturn new ReadableStream({\n\t\t\tstart() {\n\t\t\t\tresetTimeout();\n\t\t\t},\n\t\t\tasync pull(streamController) {\n\t\t\t\ttry {\n\t\t\t\t\tconst result = await Promise.race([reader.read(), new Promise((_, reject) => {\n\t\t\t\t\t\tif (controller.signal.aborted) reject(new DOMException(\"Stream idle timeout\", \"AbortError\"));\n\t\t\t\t\t\tcontroller.signal.addEventListener(\"abort\", () => {\n\t\t\t\t\t\t\treject(new DOMException(\"Stream idle timeout\", \"AbortError\"));\n\t\t\t\t\t\t});\n\t\t\t\t\t})]);\n\t\t\t\t\tif (result.done) {\n\t\t\t\t\t\tcleanup();\n\t\t\t\t\t\tstreamController.close();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tresetTimeout();\n\t\t\t\t\tstreamController.enqueue(result.value);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tcleanup();\n\t\t\t\t\treader.cancel().catch(() => {});\n\t\t\t\t\tif (error instanceof DOMException && error.name === \"AbortError\") streamController.error(new DOMException(\"Stream idle timeout\", \"AbortError\"));\n\t\t\t\t\telse streamController.error(error);\n\t\t\t\t}\n\t\t\t},\n\t\t\tcancel(reason) {\n\t\t\t\tcleanup();\n\t\t\t\treader.cancel(reason).catch(() => {});\n\t\t\t}\n\t\t});\n\t}\n\tasync function request(method, path, body, options) {\n\t\tconst { signal, cleanup, isTimeout } = createTimeoutSignal(options?.signal);\n\t\ttry {\n\t\t\tconst response = await fetch(buildUrl(path), {\n\t\t\t\tmethod,\n\t\t\t\theaders: buildHeaders(body ? { hasBody: true } : void 0),\n\t\t\t\tbody: body ? JSON.stringify(body) : void 0,\n\t\t\t\tsignal,\n\t\t\t\tcredentials: getCredentials()\n\t\t\t});\n\t\t\tif (!response.ok) return handleHttpError(response);\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: await response.json()\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tif (error instanceof Error && error.name === \"AbortError\") {\n\t\t\t\tif (isTimeout()) return {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createTimeoutError()\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createAbortError()\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createNetworkError(error)\n\t\t\t};\n\t\t} finally {\n\t\t\tcleanup();\n\t\t}\n\t}\n\tasync function requestBlob(path, options) {\n\t\tconst { signal, cleanup, isTimeout } = createTimeoutSignal(options?.signal);\n\t\ttry {\n\t\t\tconst response = await fetch(buildUrl(path), {\n\t\t\t\tmethod: \"GET\",\n\t\t\t\theaders: buildHeaders(),\n\t\t\t\tsignal,\n\t\t\t\tcredentials: getCredentials()\n\t\t\t});\n\t\t\tif (!response.ok) return handleHttpError(response);\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: await response.blob()\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tif (error instanceof Error && error.name === \"AbortError\") {\n\t\t\t\tif (isTimeout()) return {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createTimeoutError()\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createAbortError()\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createNetworkError(error)\n\t\t\t};\n\t\t} finally {\n\t\t\tcleanup();\n\t\t}\n\t}\n\tasync function requestStream(path, options) {\n\t\tconst { signal, cleanup, isTimeout } = createTimeoutSignal(options?.signal);\n\t\ttry {\n\t\t\tconst response = await fetch(buildUrl(path), {\n\t\t\t\tmethod: \"GET\",\n\t\t\t\theaders: buildHeaders(),\n\t\t\t\tsignal,\n\t\t\t\tcredentials: getCredentials()\n\t\t\t});\n\t\t\tif (!response.ok) {\n\t\t\t\tcleanup();\n\t\t\t\treturn handleHttpError(response);\n\t\t\t}\n\t\t\tif (!response.body) {\n\t\t\t\tcleanup();\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createNetworkError(/* @__PURE__ */ new Error(\"Response body is null\"))\n\t\t\t\t};\n\t\t\t}\n\t\t\tcleanup();\n\t\t\tconst idleTimeout = options?.streamIdleTimeout ?? timeout;\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: wrapStreamWithIdleTimeout(response.body, idleTimeout, options?.signal)\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tcleanup();\n\t\t\tif (error instanceof Error && error.name === \"AbortError\") {\n\t\t\t\tif (isTimeout()) return {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createTimeoutError()\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createAbortError()\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createNetworkError(error)\n\t\t\t};\n\t\t}\n\t}\n\tasync function requestNoContent(method, path, options) {\n\t\tconst { signal, cleanup, isTimeout } = createTimeoutSignal(options?.signal);\n\t\ttry {\n\t\t\tconst response = await fetch(buildUrl(path), {\n\t\t\t\tmethod,\n\t\t\t\theaders: buildHeaders(),\n\t\t\t\tsignal,\n\t\t\t\tcredentials: getCredentials()\n\t\t\t});\n\t\t\tif (!response.ok) return handleHttpError(response);\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: void 0\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tif (error instanceof Error && error.name === \"AbortError\") {\n\t\t\t\tif (isTimeout()) return {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createTimeoutError()\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createAbortError()\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createNetworkError(error)\n\t\t\t};\n\t\t} finally {\n\t\t\tcleanup();\n\t\t}\n\t}\n\treturn {\n\t\tget: (path, options) => request(\"GET\", path, void 0, options),\n\t\tpost: (path, body, options) => request(\"POST\", path, body, options),\n\t\tput: (path, body, options) => request(\"PUT\", path, body, options),\n\t\tdelete: (path, options) => request(\"DELETE\", path, void 0, options),\n\t\tdeleteNoContent: (path, options) => requestNoContent(\"DELETE\", path, options),\n\t\tgetBlob: (path, options) => requestBlob(path, options),\n\t\tgetStream: (path, options) => requestStream(path, options)\n\t};\n}\n\n//#endregion\n//#region src/lib/query-string.ts\nfunction buildQueryString(params) {\n\tif (!params) return \"\";\n\tconst searchParams = new URLSearchParams();\n\tfor (const [key, value] of Object.entries(params)) if (value !== void 0) searchParams.set(key, String(value));\n\tconst queryString = searchParams.toString();\n\treturn queryString ? `?${queryString}` : \"\";\n}\n\n//#endregion\n//#region src/lib/sse.ts\nasync function* parseSSEEvents(reader) {\n\tconst decoder = new TextDecoder();\n\tlet buffer = \"\";\n\twhile (true) {\n\t\tconst { value, done } = await reader.read();\n\t\tif (done) break;\n\t\tbuffer += decoder.decode(value, { stream: true });\n\t\tconst events = buffer.split(\"\\n\\n\");\n\t\tbuffer = events.pop() || \"\";\n\t\tfor (const event of events) {\n\t\t\tif (event.trim() === \"\") continue;\n\t\t\tconst lines = event.split(\"\\n\");\n\t\t\tconst eventType = lines.find((line) => line.startsWith(\"event:\"))?.slice(6).trim();\n\t\t\tconst data = lines.find((line) => line.startsWith(\"data:\"))?.slice(5).trim();\n\t\t\tif (!eventType || !data) continue;\n\t\t\tif (eventType !== \"message\" && eventType !== \"error\" && eventType !== \"complete\") continue;\n\t\t\ttry {\n\t\t\t\tyield {\n\t\t\t\t\tevent: eventType,\n\t\t\t\t\tdata: JSON.parse(data)\n\t\t\t\t};\n\t\t\t} catch {}\n\t\t}\n\t}\n}\nasync function* parseSSE(reader) {\n\tconst decoder = new TextDecoder();\n\tlet buffer = \"\";\n\twhile (true) {\n\t\tconst { value, done } = await reader.read();\n\t\tif (done) break;\n\t\tbuffer += decoder.decode(value, { stream: true });\n\t\tconst events = buffer.split(\"\\n\\n\");\n\t\tbuffer = events.pop() || \"\";\n\t\tfor (const event of events) {\n\t\t\tif (event.trim() === \"\") continue;\n\t\t\tconst lines = event.split(\"\\n\");\n\t\t\tconst eventType = lines.find((line) => line.startsWith(\"event:\"))?.slice(6).trim();\n\t\t\tconst data = lines.find((line) => line.startsWith(\"data:\"))?.slice(5).trim();\n\t\t\tif (eventType !== \"message\" || !data) continue;\n\t\t\ttry {\n\t\t\t\tyield JSON.parse(data);\n\t\t\t} catch {}\n\t\t}\n\t}\n}\n\n//#endregion\n//#region ../constants/index.ts\nconst organizationNameRegex = /^[a-z0-9][a-z0-9_.-]*$/;\nconst maxOrganizationNameLength = 128;\nconst applicationNameRegex = /^[a-z0-9][a-z0-9_.-]*$/;\nconst maxApplicationNameLength = 255;\nconst maxVariableValueLength = 65536;\nconst maxSecretValueLength = 65536;\nconst expertKeyRegex = /^((?:@[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_.-]*))?$/;\nconst expertNameRegex = /^(@[a-z0-9][a-z0-9_-]*\\/)?[a-z0-9][a-z0-9_-]*$/;\nconst scopeNameRegex = /^[a-z0-9][a-z0-9_-]*$/;\nconst scopeNameRefRegex = /^[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_-]*))?$/;\nconst expertVersionRegex = /^(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-[\\w.-]+)?(?:\\+[\\w.-]+)?$/;\nconst tagNameRegex = /^[a-z0-9][a-z0-9_-]*$/;\nconst maxExpertNameLength = 255;\nconst maxExpertVersionTagLength = 255;\nconst maxExpertKeyLength = 511;\nconst maxExpertDescriptionLength = 1024 * 2;\nconst maxExpertInstructionLength = 1024 * 20;\nconst maxExpertDelegateItems = 255;\nconst maxExpertTagItems = 8;\nconst maxExpertJobQueryLength = 1024 * 20;\nconst maxExpertJobFileNameLength = 1024 * 10;\nconst packageWithVersionRegex = /^(?:@[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_.-]*)?$/;\nconst urlSafeRegex = /^[a-z0-9][a-z0-9_-]*$/;\nconst maxSkillNameLength = 255;\nconst maxSkillDescriptionLength = 1024 * 2;\nconst maxSkillRuleLength = 1024 * 2;\nconst maxSkillPickOmitItems = 255;\nconst maxSkillRequiredEnvItems = 255;\nconst maxSkillToolNameLength = 255;\nconst maxSkillEndpointLength = 1024 * 2;\nconst maxSkillInputJsonSchemaLength = 1024 * 20;\nconst maxCheckpointToolCallIdLength = 255;\nconst envNameRegex = /^[a-zA-Z0-9][a-zA-Z0-9_-]*$/;\nconst maxEnvNameLength = 255;\nconst maxProviderBaseUrlLength = 2048;\nconst maxProviderHeaderKeyLength = 255;\nconst maxProviderHeaderValueLength = 2048;\nconst maxProviderHeadersCount = 50;\n\n//#endregion\n//#region ../models/src/domain/common.ts\nconst cuidSchema = z.string().cuid2();\nconst cuidRequestSchema = z.string().min(24).cuid2();\nconst runtimeVersionSchema = z.enum([\"v1.0\"]);\nconst providerSchema = z.enum([\n\t\"anthropic\",\n\t\"google\",\n\t\"openai\",\n\t\"deepseek\",\n\t\"azure-openai\",\n\t\"amazon-bedrock\",\n\t\"google-vertex\"\n]);\nconst datetimeSchema = z.string().datetime({ offset: true });\nconst expertKeyFieldSchema = z.string().min(1).max(maxExpertKeyLength).regex(expertKeyRegex);\nconst expertNameFieldSchema = z.string().min(1).max(maxExpertNameLength).regex(expertNameRegex);\nconst expertVersionFieldSchema = z.string().min(1).max(maxExpertVersionTagLength).regex(expertVersionRegex);\nconst expertTagFieldSchema = z.string().min(1).max(maxExpertVersionTagLength).regex(tagNameRegex);\nconst expertCategoryFieldSchema = z.enum([\n\t\"general\",\n\t\"coding\",\n\t\"research\",\n\t\"writing\",\n\t\"data\",\n\t\"automation\"\n]);\nconst scopeNameSchema = z.string().min(1).max(maxExpertNameLength).regex(scopeNameRegex);\nconst scopeNameRefSchema = z.string().min(1).max(maxExpertNameLength + maxExpertVersionTagLength + 1).regex(scopeNameRefRegex);\nconst draftRefFieldSchema = z.string().min(1).max(30);\n\n//#endregion\n//#region ../models/src/domain/organization.ts\nconst organizationStatusSchema = z.enum([\n\t\"active\",\n\t\"inactive\",\n\t\"deleted\"\n]);\nconst organizationTypeSchema = z.enum([\n\t\"personal\",\n\t\"personalPlus\",\n\t\"team\",\n\t\"serviceAdmin\"\n]);\nconst organizationSchema = z.object({\n\ttype: z.literal(\"organization\"),\n\tid: cuidSchema,\n\tcreatedAt: datetimeSchema,\n\tupdatedAt: datetimeSchema,\n\tname: z.string().min(1).max(maxOrganizationNameLength).regex(organizationNameRegex).optional(),\n\tnameChangedAt: datetimeSchema.optional(),\n\tstatus: organizationStatusSchema,\n\torganizationType: organizationTypeSchema,\n\tmaxApplications: z.number().int().min(0),\n\tmaxApiKeys: z.number().int().min(0),\n\tmaxExperts: z.number().int().min(0)\n});\n\n//#endregion\n//#region ../models/src/lib/dedent.ts\n/**\n* Dedent function for multi-line template strings.\n* Adapted from ts-dedent (MIT License) to provide pure ESM support.\n*\n* Removes leading indentation from multi-line strings while preserving\n* relative indentation between lines.\n*/\nfunction dedent(templ, ...values) {\n\tlet strings = Array.from(typeof templ === \"string\" ? [templ] : templ);\n\tconst lastIndex = strings.length - 1;\n\tstrings[lastIndex] = (strings[lastIndex] ?? \"\").replace(/\\r?\\n([\\t ]*)$/, \"\");\n\tconst indentLengths = strings.reduce((arr, str) => {\n\t\tconst matches = str.match(/\\n([\\t ]+|(?!\\s).)/g);\n\t\tif (matches) return arr.concat(matches.map((match) => match.match(/[\\t ]/g)?.length ?? 0));\n\t\treturn arr;\n\t}, []);\n\tif (indentLengths.length) {\n\t\tconst pattern = new RegExp(`\\n[\\t ]{${Math.min(...indentLengths)}}`, \"g\");\n\t\tstrings = strings.map((str) => str.replace(pattern, \"\\n\"));\n\t}\n\tstrings[0] = (strings[0] ?? \"\").replace(/^\\r?\\n/, \"\");\n\tlet string = strings[0] ?? \"\";\n\tvalues.forEach((value, i) => {\n\t\tconst endentation = string.match(/(?:^|\\n)( *)$/)?.[1] ?? \"\";\n\t\tlet indentedValue = value;\n\t\tif (typeof value === \"string\" && value.includes(\"\\n\")) indentedValue = String(value).split(\"\\n\").map((str, j) => {\n\t\t\treturn j === 0 ? str : `${endentation}${str}`;\n\t\t}).join(\"\\n\");\n\t\tstring += String(indentedValue) + (strings[i + 1] ?? \"\");\n\t});\n\treturn string;\n}\n\n//#endregion\n//#region ../models/src/api/common.ts\nconst errorBadRequest = z.object({\n\tcode: z.literal(400),\n\terror: z.literal(\"Bad Request\"),\n\treason: z.string()\n}).describe(\"Bad Request\");\nconst errorUnauthorized = z.object({\n\tcode: z.literal(401),\n\terror: z.literal(\"Unauthorized\"),\n\treason: z.literal(\"Failed to authenticate\")\n}).describe(dedent`\n Authentication failed. Possible reasons:\n - Authorization header is not provided\n - Invalid API key\n - Session expired\n `);\nconst errorForbidden = z.object({\n\tcode: z.literal(403),\n\terror: z.literal(\"Forbidden\"),\n\treason: z.string()\n}).describe(\"Access denied. The authenticated user does not have permission to perform this action.\");\nconst errorUsageLimitExceeded = z.object({\n\tcode: z.literal(403),\n\terror: z.literal(\"Forbidden\"),\n\treason: z.string(),\n\tdetails: z.object({\n\t\tminutesUsed: z.number(),\n\t\tlimitMinutes: z.number(),\n\t\tupgradeUrl: z.string()\n\t})\n}).describe(\"Usage limit exceeded. Upgrade your plan to continue.\");\nconst errorNotFound = z.object({\n\tcode: z.literal(404),\n\terror: z.literal(\"Not Found\"),\n\treason: z.string()\n}).describe(\"Resource not found.\");\nconst errorConflict = z.object({\n\tcode: z.literal(409),\n\terror: z.literal(\"Conflict\"),\n\treason: z.string()\n}).describe(\"Request conflicts with current state of the resource.\");\nconst errorServiceUnavailable = z.object({\n\tcode: z.literal(503),\n\terror: z.literal(\"Service Unavailable\"),\n\treason: z.string()\n}).describe(\"Service temporarily unavailable. Retry with exponential backoff.\");\nconst errorValidationFailed = z.object({\n\tcode: z.literal(422),\n\terror: z.literal(\"Validation Failed\"),\n\treason: z.unknown()\n}).describe(\"Request validation failed. Check the request body, query parameters, or path parameters.\");\nconst paginationMeta = z.object({\n\ttotal: z.number().int().min(0),\n\ttake: z.number().int().min(1),\n\tskip: z.number().int().min(0)\n});\nconst errorUnauthorizedFlexible = z.object({\n\tcode: z.literal(401),\n\terror: z.literal(\"Unauthorized\"),\n\treason: z.string()\n}).describe(\"Unauthorized\");\n\n//#endregion\n//#region ../models/src/domain/application.ts\nconst applicationNameSchema = z.string().min(1).max(maxApplicationNameLength).regex(applicationNameRegex);\nconst applicationStatusSchema = z.enum([\n\t\"active\",\n\t\"inactive\",\n\t\"deleted\"\n]);\nconst applicationSchema = z.object({\n\ttype: z.literal(\"application\"),\n\tid: cuidSchema,\n\torganizationId: cuidSchema,\n\torganization: organizationSchema,\n\tcreatedAt: datetimeSchema,\n\tupdatedAt: datetimeSchema,\n\tname: applicationNameSchema,\n\tstatus: applicationStatusSchema,\n\texpertCount: z.number().describe(\"Number of expert draft scopes associated with this application\").optional(),\n\tproviders: z.array(providerSchema).describe(\"List of configured providers for this application\").optional(),\n\ttotalJobs: z.number().describe(\"Total number of jobs executed for this application\").optional(),\n\tlastJobExecutionAt: z.string().datetime({ offset: true }).nullable().describe(\"Timestamp of the most recent job execution\").optional()\n});\n\n//#endregion\n//#region ../models/src/api/applications/create.ts\nconst request$17 = { body: z.object({\n\tname: applicationNameSchema,\n\tapplicationGroupId: cuidSchema.optional()\n}) };\nconst response$17 = z.object({ data: z.object({ application: applicationSchema }) });\n\n//#endregion\n//#region ../models/src/api/applications/getAll.ts\nconst request$16 = { query: z.object({\n\tname: z.preprocess((val) => Array.isArray(val) ? val.join(\",\") : val, z.string().optional()),\n\tsort: z.enum([\n\t\t\"name\",\n\t\t\"createdAt\",\n\t\t\"updatedAt\"\n\t]).optional(),\n\torder: z.enum([\"asc\", \"desc\"]).optional(),\n\ttake: z.coerce.number().min(1).max(100).default(20),\n\tskip: z.coerce.number().min(0).default(0)\n}) };\nconst response$16 = z.object({\n\tdata: z.object({ applications: z.array(applicationSchema) }),\n\tmeta: paginationMeta\n});\n\n//#endregion\n//#region ../models/src/api/applications/update.ts\nconst request$15 = {\n\tparams: z.object({ applicationId: cuidSchema }),\n\tbody: z.object({\n\t\tname: applicationNameSchema.optional(),\n\t\tstatus: applicationStatusSchema.exclude([\"deleted\"]).optional()\n\t}).refine((data) => data.name !== void 0 || data.status !== void 0, { message: \"At least one field must be provided\" })\n};\nconst response$15 = z.object({ data: z.object({ application: applicationSchema }) });\n\n//#endregion\n//#region ../models/src/domain/secret.ts\nconst secretNameSchema = z.string().min(1, \"Secret name is required\").max(255, \"Secret name must be 255 characters or less\").regex(/^[A-Z][A-Z0-9_]*$/, \"Secret name must start with uppercase letter and contain only uppercase letters, numbers, and underscores\");\nconst secretValueSchema = z.string().min(1, \"Secret value is required\").max(maxSecretValueLength);\nconst secretMetadataSchema = z.object({\n\tname: z.string(),\n\tcreatedAt: datetimeSchema,\n\tupdatedAt: datetimeSchema\n});\nconst secretSchema = z.object({\n\ttype: z.literal(\"secret\"),\n\tid: cuidSchema,\n\tname: secretNameSchema,\n\tapplicationId: cuidSchema,\n\tcreatedAt: datetimeSchema,\n\tupdatedAt: datetimeSchema\n});\n\n//#endregion\n//#region ../models/src/api/env/secrets/create.ts\nconst request$14 = { body: z.object({\n\tapplicationId: cuidSchema,\n\tname: secretNameSchema,\n\tvalue: secretValueSchema\n}) };\nconst response$14 = z.object({ data: z.object({ secret: secretMetadataSchema }) });\n\n//#endregion\n//#region ../models/src/api/env/secrets/getAll.ts\nconst request$13 = { query: z.object({ applicationId: cuidSchema.optional() }) };\nconst response$13 = z.object({ data: z.object({ secrets: z.array(secretMetadataSchema) }) });\n\n//#endregion\n//#region ../models/src/api/env/secrets/update.ts\nconst request$12 = {\n\tparams: z.object({ name: z.string().min(1) }),\n\tbody: z.object({\n\t\tapplicationId: cuidSchema,\n\t\tvalue: secretValueSchema\n\t})\n};\nconst response$12 = z.object({ data: z.object({ secret: secretMetadataSchema }) });\n\n//#endregion\n//#region ../models/src/domain/variable.ts\nconst variableNameSchema = z.string().min(1).max(255).regex(/^[A-Z][A-Z0-9_]*$/, \"Variable name must start with uppercase letter and contain only uppercase letters, digits, and underscores\");\nconst variableValueSchema = z.string().max(maxVariableValueLength);\nconst variableSchema = z.object({\n\ttype: z.literal(\"variable\"),\n\tid: cuidSchema,\n\tapplicationId: cuidSchema,\n\tcreatedAt: datetimeSchema,\n\tupdatedAt: datetimeSchema,\n\tname: variableNameSchema,\n\tvalue: variableValueSchema\n});\nconst variableResponseSchema = z.object({\n\tname: variableNameSchema,\n\tvalue: variableValueSchema,\n\tcreatedAt: datetimeSchema,\n\tupdatedAt: datetimeSchema\n});\n\n//#endregion\n//#region ../models/src/api/env/variables/create.ts\nconst request$11 = { body: z.object({\n\tapplicationId: cuidSchema,\n\tname: variableNameSchema,\n\tvalue: variableValueSchema\n}) };\nconst response$11 = z.object({ data: z.object({ variable: variableResponseSchema }) });\n\n//#endregion\n//#region ../models/src/api/env/variables/getAll.ts\nconst request$10 = { query: z.object({ applicationId: cuidSchema }) };\nconst response$10 = z.object({ data: z.object({ variables: z.array(variableResponseSchema) }) });\n\n//#endregion\n//#region ../models/src/api/env/variables/update.ts\nconst request$9 = {\n\tparams: z.object({ name: z.string().min(1) }),\n\tbody: z.object({\n\t\tapplicationId: cuidSchema,\n\t\tvalue: variableValueSchema\n\t})\n};\nconst response$9 = z.object({ data: z.object({ variable: variableResponseSchema }) });\n\n//#endregion\n//#region ../models/src/domain/expertScope.ts\nconst expertScopeSchema = z.object({\n\tid: cuidSchema,\n\tname: scopeNameSchema,\n\torganizationId: cuidSchema,\n\texpertDraftScopeId: cuidSchema,\n\tpublished: z.boolean(),\n\tpublishedAt: datetimeSchema.nullable(),\n\tcategory: expertCategoryFieldSchema,\n\ttotalRuns: z.number().int().min(0),\n\ttotalJobs: z.number().int().min(0),\n\ttotalStars: z.number().int().min(0),\n\tcreatedAt: datetimeSchema,\n\tupdatedAt: datetimeSchema,\n\tcreatedBy: cuidSchema,\n\tupdatedBy: cuidSchema\n});\nconst expertVersionSchema = z.object({\n\tid: cuidSchema,\n\texpertScopeId: cuidSchema,\n\tversion: expertVersionFieldSchema,\n\tpublic: z.boolean(),\n\tyanked: z.boolean(),\n\ttotalRuns: z.number().int().min(0),\n\ttotalJobs: z.number().int().min(0),\n\tcreatedAt: datetimeSchema,\n\tupdatedAt: datetimeSchema,\n\tcreatedBy: cuidSchema,\n\tupdatedBy: cuidSchema,\n\ttags: z.array(expertTagFieldSchema),\n\treadmeUrl: z.string().optional()\n});\nconst expertScopeWithVersionsSchema = expertScopeSchema.extend({ versions: z.array(expertVersionSchema) });\n\n//#endregion\n//#region ../models/src/domain/skill.ts\nfunction isPrivateOrLocalIP(hostname) {\n\tif (hostname === \"localhost\" || hostname === \"127.0.0.1\" || hostname === \"::1\" || hostname === \"0.0.0.0\") return true;\n\tconst ipv4Match = hostname.match(/^(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)$/);\n\tif (ipv4Match) {\n\t\tconst a = Number(ipv4Match[1]);\n\t\tconst b = Number(ipv4Match[2]);\n\t\tif (a === 10) return true;\n\t\tif (a === 172 && b >= 16 && b <= 31) return true;\n\t\tif (a === 192 && b === 168) return true;\n\t\tif (a === 169 && b === 254) return true;\n\t\tif (a === 127) return true;\n\t}\n\tif (hostname.includes(\":\")) {\n\t\tif (hostname.startsWith(\"fe80:\") || hostname.startsWith(\"fc\") || hostname.startsWith(\"fd\")) return true;\n\t}\n\tif (hostname.startsWith(\"::ffff:\")) {\n\t\tif (isPrivateOrLocalIP(hostname.slice(7))) return true;\n\t}\n\treturn false;\n}\nconst sseEndpointSchema = z.string().max(maxSkillEndpointLength).url().refine((url) => {\n\ttry {\n\t\tconst parsed = new URL(url);\n\t\tif (parsed.protocol !== \"https:\") return false;\n\t\tif (isPrivateOrLocalIP(parsed.hostname)) return false;\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}, { message: \"Endpoint must be a public HTTPS URL\" });\nconst skillNameSchema = z.string().min(1).max(maxSkillNameLength).regex(packageWithVersionRegex);\nconst mcpStdioSkillCommandSchema = z.enum([\"npx\", \"uvx\"]);\nconst mcpStdioSkillSchema = z.object({\n\ttype: z.literal(\"mcpStdioSkill\"),\n\tname: z.string().min(1),\n\tdescription: z.string().min(1).max(maxSkillDescriptionLength),\n\trule: z.string().min(1).max(maxSkillRuleLength).optional(),\n\tpick: z.array(z.string().min(1).max(maxSkillToolNameLength)).max(maxSkillPickOmitItems).optional().default([]),\n\tomit: z.array(z.string().min(1).max(maxSkillToolNameLength)).max(maxSkillPickOmitItems).optional().default([]),\n\tcommand: mcpStdioSkillCommandSchema,\n\tpackageName: z.string().min(1).max(maxSkillNameLength).regex(packageWithVersionRegex),\n\trequiredEnv: z.array(z.string().min(1).max(maxEnvNameLength).regex(envNameRegex)).max(maxSkillRequiredEnvItems).optional().default([])\n});\nconst mcpSseSkillSchema = z.object({\n\ttype: z.literal(\"mcpSseSkill\"),\n\tname: z.string().min(1),\n\tdescription: z.string().min(1).max(maxSkillDescriptionLength),\n\trule: z.string().min(1).max(maxSkillRuleLength).optional(),\n\tpick: z.array(z.string().min(1).max(maxSkillToolNameLength)).max(maxSkillPickOmitItems).optional().default([]),\n\tomit: z.array(z.string().min(1).max(maxSkillToolNameLength)).max(maxSkillPickOmitItems).optional().default([]),\n\tendpoint: sseEndpointSchema\n});\nconst interactiveSkillSchema = z.object({\n\ttype: z.literal(\"interactiveSkill\"),\n\tname: z.string().min(1),\n\tdescription: z.string().min(1).max(maxSkillDescriptionLength),\n\trule: z.string().min(1).max(maxSkillRuleLength).optional(),\n\ttools: z.record(z.string().min(1).max(maxSkillToolNameLength).regex(urlSafeRegex), z.object({\n\t\tdescription: z.string().min(1).max(maxSkillDescriptionLength),\n\t\tinputJsonSchema: z.string().min(1).max(maxSkillInputJsonSchemaLength)\n\t}))\n});\nconst skillSchema = z.discriminatedUnion(\"type\", [\n\tmcpStdioSkillSchema,\n\tmcpSseSkillSchema,\n\tinteractiveSkillSchema\n]);\n\n//#endregion\n//#region ../models/src/domain/expert.ts\nconst expertSchema = z.object({\n\tkey: expertKeyFieldSchema,\n\tname: expertNameFieldSchema,\n\tversion: expertVersionFieldSchema,\n\tdescription: z.string().max(maxExpertDescriptionLength).optional(),\n\tinstruction: z.string().min(1).max(maxExpertInstructionLength),\n\tskills: z.record(skillNameSchema, skillSchema).optional().default({}),\n\tdelegates: z.array(expertKeyFieldSchema).min(0).max(maxExpertDelegateItems).optional().default([]),\n\ttags: z.array(expertTagFieldSchema).min(0).max(maxExpertTagItems).optional().default([]),\n\tminRuntimeVersion: runtimeVersionSchema.optional()\n});\nconst expertMetadataSchema = z.object({\n\tscope: expertScopeSchema,\n\tversion: expertVersionSchema\n});\nconst expertWithMetadataSchema = expertSchema.extend({\n\tscope: expertScopeSchema,\n\tversion: expertVersionSchema\n});\n\n//#endregion\n//#region ../models/src/api/experts/getAll.ts\nconst request$8 = { query: z.object({\n\tfilter: z.string().describe(\"Filter by scope name (partial match)\").optional(),\n\tcategory: z.enum([\n\t\t\"general\",\n\t\t\"coding\",\n\t\t\"research\",\n\t\t\"writing\",\n\t\t\"data\",\n\t\t\"automation\"\n\t]).describe(\"Filter by category\").optional(),\n\tincludeDrafts: z.coerce.boolean().default(false).describe(\"Include unpublished scopes (owner only)\").optional(),\n\ttake: z.coerce.number().min(1).max(100).default(20),\n\tskip: z.coerce.number().min(0).default(0)\n}) };\nconst response$8 = z.object({\n\tdata: z.object({ experts: z.array(expertScopeSchema.extend({ currentVersion: expertVersionSchema.nullable() })) }),\n\tmeta: paginationMeta\n});\n\n//#endregion\n//#region ../support-models/src/index.ts\nconst anthropicSupportModels = [\n\t{\n\t\tmodelId: \"claude-opus-4-5\",\n\t\tdefault: false,\n\t\tprovider: \"anthropic\",\n\t\tcontextWindow: 2e5\n\t},\n\t{\n\t\tmodelId: \"claude-opus-4-1\",\n\t\tdefault: false,\n\t\tprovider: \"anthropic\",\n\t\tcontextWindow: 2e5\n\t},\n\t{\n\t\tmodelId: \"claude-opus-4-20250514\",\n\t\tdefault: false,\n\t\tprovider: \"anthropic\",\n\t\tcontextWindow: 2e5\n\t},\n\t{\n\t\tmodelId: \"claude-sonnet-4-5\",\n\t\tdefault: true,\n\t\tprovider: \"anthropic\",\n\t\tcontextWindow: 2e5\n\t},\n\t{\n\t\tmodelId: \"claude-sonnet-4-20250514\",\n\t\tdefault: false,\n\t\tprovider: \"anthropic\",\n\t\tcontextWindow: 2e5\n\t},\n\t{\n\t\tmodelId: \"claude-3-7-sonnet-20250219\",\n\t\tdefault: false,\n\t\tprovider: \"anthropic\",\n\t\tcontextWindow: 2e5\n\t},\n\t{\n\t\tmodelId: \"claude-haiku-4-5\",\n\t\tdefault: false,\n\t\tprovider: \"anthropic\",\n\t\tcontextWindow: 2e5\n\t},\n\t{\n\t\tmodelId: \"claude-3-5-haiku-latest\",\n\t\tdefault: false,\n\t\tprovider: \"anthropic\",\n\t\tcontextWindow: 2e5\n\t}\n];\nconst googleSupportModels = [\n\t{\n\t\tmodelId: \"gemini-3-pro-preview\",\n\t\tdefault: false,\n\t\tprovider: \"google\",\n\t\tcontextWindow: 1e6\n\t},\n\t{\n\t\tmodelId: \"gemini-2.5-pro\",\n\t\tdefault: true,\n\t\tprovider: \"google\",\n\t\tcontextWindow: 1e6\n\t},\n\t{\n\t\tmodelId: \"gemini-2.5-flash\",\n\t\tdefault: false,\n\t\tprovider: \"google\",\n\t\tcontextWindow: 1e6\n\t},\n\t{\n\t\tmodelId: \"gemini-2.5-flash-lite\",\n\t\tdefault: false,\n\t\tprovider: \"google\",\n\t\tcontextWindow: 1e6\n\t}\n];\nconst openAiSupportModels = [\n\t{\n\t\tmodelId: \"gpt-5\",\n\t\tdefault: true,\n\t\tprovider: \"openai\",\n\t\tcontextWindow: 4e5\n\t},\n\t{\n\t\tmodelId: \"gpt-5-mini\",\n\t\tdefault: false,\n\t\tprovider: \"openai\",\n\t\tcontextWindow: 4e5\n\t},\n\t{\n\t\tmodelId: \"gpt-5-nano\",\n\t\tdefault: false,\n\t\tprovider: \"openai\",\n\t\tcontextWindow: 4e5\n\t},\n\t{\n\t\tmodelId: \"gpt-5-chat-latest\",\n\t\tdefault: false,\n\t\tprovider: \"openai\",\n\t\tcontextWindow: 128e3\n\t},\n\t{\n\t\tmodelId: \"o4-mini\",\n\t\tdefault: false,\n\t\tprovider: \"openai\",\n\t\tcontextWindow: 2e5\n\t},\n\t{\n\t\tmodelId: \"o3\",\n\t\tdefault: false,\n\t\tprovider: \"openai\",\n\t\tcontextWindow: 2e5\n\t},\n\t{\n\t\tmodelId: \"o3-mini\",\n\t\tdefault: false,\n\t\tprovider: \"openai\",\n\t\tcontextWindow: 2e5\n\t},\n\t{\n\t\tmodelId: \"gpt-4.1\",\n\t\tdefault: false,\n\t\tprovider: \"openai\",\n\t\tcontextWindow: 1e6\n\t}\n];\nconst deepseekSupportModels = [{\n\tmodelId: \"deepseek-chat\",\n\tdefault: true,\n\tprovider: \"deepseek\",\n\tcontextWindow: 128e3\n}, {\n\tmodelId: \"deepseek-reasoner\",\n\tdefault: false,\n\tprovider: \"deepseek\",\n\tcontextWindow: 128e3\n}];\nconst allSupportModels = [\n\t...anthropicSupportModels,\n\t...googleSupportModels,\n\t...openAiSupportModels,\n\t...deepseekSupportModels\n];\nconst supportModels = Object.fromEntries(allSupportModels.map((model) => [model.modelId, model]));\nfunction getSupportModelNames() {\n\treturn Object.keys(supportModels);\n}\n\n//#endregion\n//#region ../models/src/domain/job.ts\nconst reasoningBudgetSchema = z.union([z.enum([\n\t\"none\",\n\t\"minimal\",\n\t\"low\",\n\t\"medium\",\n\t\"high\"\n]), z.number().int().min(0)]);\nconst jobStatusSchema = z.enum([\n\t\"queued\",\n\t\"processing\",\n\t\"completed\",\n\t\"requestInteractiveToolResult\",\n\t\"requestDelegateResult\",\n\t\"exceededMaxSteps\",\n\t\"failed\",\n\t\"canceling\",\n\t\"canceled\",\n\t\"expired\"\n]);\nconst modelNames = getSupportModelNames();\nconst firstModel = modelNames[0];\nif (firstModel === void 0) throw new Error(\"No support models available\");\nconst jobModelSchema = z.enum([firstModel, ...modelNames.slice(1)]);\nconst jobBaseSchema = z.object({\n\ttype: z.literal(\"job\"),\n\tid: cuidSchema,\n\torganizationId: cuidSchema,\n\tapplicationId: cuidSchema,\n\tcreatedAt: datetimeSchema,\n\tupdatedAt: datetimeSchema,\n\tstatus: jobStatusSchema,\n\tcurrentExecutionId: cuidSchema.optional(),\n\tcoordinatorExpertKey: expertKeyFieldSchema,\n\tquery: z.string().min(1).max(maxExpertJobQueryLength).optional(),\n\texpert: expertWithMetadataSchema,\n\tprovider: providerSchema,\n\tmodel: jobModelSchema,\n\treasoningBudget: reasoningBudgetSchema,\n\truntimeVersion: runtimeVersionSchema,\n\tmaxSteps: z.number().int().min(1),\n\tmaxRetries: z.number().int().min(0),\n\tcurrentStep: z.number().int().min(0),\n\ttotalSteps: z.number().int().min(0),\n\ttotalDuration: z.number().int().min(0),\n\tusage: usageSchema,\n\tlastActivity: activityOrGroupSchema.nullable().optional()\n});\nconst publishedJobSchema = jobBaseSchema.extend({\n\texpertVersionId: cuidSchema,\n\texpertDraftRefId: z.undefined()\n});\nconst draftJobSchema = jobBaseSchema.extend({\n\texpertVersionId: z.undefined(),\n\texpertDraftRefId: cuidSchema\n});\nconst jobSchema = z.union([publishedJobSchema, draftJobSchema]);\n\n//#endregion\n//#region ../models/src/api/jobs/continue.ts\nconst request$7 = {\n\tparams: z.object({ jobId: cuidSchema }),\n\tbody: z.object({\n\t\tquery: z.string().min(1).max(maxExpertJobQueryLength),\n\t\tprovider: providerSchema.optional(),\n\t\tmodel: jobModelSchema.optional(),\n\t\treasoningBudget: reasoningBudgetSchema.optional(),\n\t\tmaxSteps: z.coerce.number().optional(),\n\t\tmaxRetries: z.coerce.number().optional()\n\t})\n};\nconst response$7 = z.object({ data: z.object({ job: jobSchema }) });\n\n//#endregion\n//#region ../models/src/api/jobs/create.ts\nconst baseBodySchema = z.object({\n\tapplicationId: cuidSchema.describe(\"Application ID to create the job in\"),\n\tquery: z.string().min(1).max(maxExpertJobQueryLength),\n\tprovider: providerSchema,\n\tmodel: jobModelSchema.optional(),\n\treasoningBudget: reasoningBudgetSchema.optional(),\n\tmaxSteps: z.coerce.number().optional(),\n\tmaxRetries: z.coerce.number().optional()\n});\nconst request$6 = { body: baseBodySchema.extend({\n\texpertKey: expertKeyFieldSchema.optional(),\n\tdraftRefId: cuidSchema.describe(\"Draft ref ID to run the job with\").optional()\n}).refine((data) => {\n\tconst hasExpertKey = data.expertKey !== void 0;\n\tconst hasDraftRefId = data.draftRefId !== void 0;\n\treturn hasExpertKey && !hasDraftRefId || !hasExpertKey && hasDraftRefId;\n}, { message: \"Either expertKey or draftRefId must be provided, but not both\" }) };\nconst response$6 = z.object({ data: z.object({ job: jobSchema }) });\n\n//#endregion\n//#region ../models/src/api/jobs/getAll.ts\nconst request$5 = { query: z.object({\n\tsort: z.enum([\"createdAt\", \"updatedAt\"]).optional(),\n\torder: z.enum([\"asc\", \"desc\"]).optional(),\n\ttake: z.coerce.number().min(1).max(100).default(20),\n\tskip: z.coerce.number().min(0).default(0),\n\texpertScopeId: cuidSchema.optional(),\n\texpertDraftScopeId: cuidSchema.optional(),\n\tapplicationId: cuidSchema.optional(),\n\tstatuses: z.preprocess((val) => typeof val === \"string\" ? val.split(\",\") : val, z.array(jobStatusSchema).optional()),\n\texpertKeyFilter: z.string().max(100).optional()\n}) };\nconst response$5 = z.object({\n\tdata: z.object({ jobs: z.array(jobSchema) }),\n\tmeta: paginationMeta\n});\n\n//#endregion\n//#region ../models/src/domain/checkpoint.ts\nconst delegationTargetSchema = z.object({\n\texpert: expertSchema,\n\ttoolCallId: z.string().min(1).max(maxCheckpointToolCallIdLength),\n\ttoolName: z.string().min(1).max(maxSkillToolNameLength),\n\tquery: z.string().min(1)\n});\n/**\n* API Checkpoint schema - extended checkpoint format for API responses.\n* Includes additional fields computed from runtime checkpoint and step data:\n* - activities: computed via getActivities() from @perstack/core\n* - inputMessages, newMessages, toolCalls, toolResults: step-related data\n* - expert: full Expert type (with instruction, skills, etc.)\n* - startedAt/finishedAt: ISO string format (runtime uses Unix timestamps)\n*/\nconst apiCheckpointSchema = z.object({\n\ttype: z.literal(\"checkpoint\"),\n\tid: cuidSchema,\n\tjobId: cuidSchema,\n\trunId: cuidSchema,\n\tactivities: z.array(activityOrGroupSchema),\n\tstepNumber: z.number().int().min(1),\n\tstatus: z.enum([\n\t\t\"init\",\n\t\t\"proceeding\",\n\t\t\"completed\",\n\t\t\"stoppedByInteractiveTool\",\n\t\t\"stoppedByDelegate\",\n\t\t\"stoppedByExceededMaxSteps\",\n\t\t\"stoppedByError\"\n\t]),\n\texpert: expertSchema,\n\tdelegateTo: z.array(delegationTargetSchema).optional(),\n\tdelegatedBy: z.object({\n\t\texpert: expertSchema,\n\t\ttoolCallId: z.string().min(1).max(maxCheckpointToolCallIdLength),\n\t\ttoolName: z.string().min(1).max(maxSkillToolNameLength),\n\t\tcheckpointId: cuidSchema,\n\t\trunId: cuidSchema\n\t}).optional(),\n\tinputMessages: z.array(z.union([\n\t\tinstructionMessageSchema,\n\t\tuserMessageSchema,\n\t\ttoolMessageSchema\n\t])).optional(),\n\tmessages: z.array(messageSchema),\n\tnewMessages: z.array(messageSchema),\n\ttoolCalls: z.array(toolCallSchema).optional(),\n\ttoolResults: z.array(toolResultSchema).optional(),\n\tpendingToolCalls: z.array(toolCallSchema).optional(),\n\tpartialToolResults: z.array(toolResultSchema).optional(),\n\tusage: usageSchema,\n\tcontextWindow: z.number().int().min(0).optional(),\n\tcontextWindowUsage: z.number().int().min(0).optional(),\n\terror: z.object({\n\t\tname: z.string().min(1),\n\t\tmessage: z.string().min(1),\n\t\tstatusCode: z.number().int().min(100).max(599).optional(),\n\t\tisRetryable: z.boolean()\n\t}).optional(),\n\tretryCount: z.number().int().min(0).optional(),\n\tstartedAt: datetimeSchema,\n\tfinishedAt: datetimeSchema.optional()\n});\n\n//#endregion\n//#region ../models/src/api/jobs/runs/checkpoints/getAll.ts\nconst request$4 = {\n\tparams: z.object({\n\t\tjobId: cuidSchema,\n\t\trunId: cuidSchema\n\t}),\n\tquery: z.object({\n\t\tfilter: z.string().min(1).max(256).optional(),\n\t\tsort: z.enum([\"createdAt\", \"updatedAt\"]).optional(),\n\t\torder: z.enum([\"asc\", \"desc\"]).optional(),\n\t\ttake: z.coerce.number().min(1).max(100).default(20),\n\t\tskip: z.coerce.number().min(0).default(0)\n\t})\n};\nconst response$4 = z.object({\n\tdata: z.object({ checkpoints: z.array(apiCheckpointSchema) }),\n\tmeta: paginationMeta\n});\n\n//#endregion\n//#region ../models/src/domain/run.ts\nconst runStatusSchema = z.enum([\n\t\"queued\",\n\t\"processing\",\n\t\"completed\",\n\t\"stoppedByInteractiveTool\",\n\t\"stoppedByDelegate\",\n\t\"stoppedByExceededMaxSteps\",\n\t\"stoppedByError\"\n]);\nconst runSchema = z.object({\n\ttype: z.literal(\"run\"),\n\tid: cuidSchema,\n\tjobId: cuidSchema,\n\texecutionId: cuidSchema.optional(),\n\tparentRunId: cuidSchema.optional(),\n\torganizationId: cuidSchema,\n\tcreatedAt: datetimeSchema,\n\tupdatedAt: datetimeSchema,\n\tstatus: runStatusSchema,\n\texpertKey: expertKeyFieldSchema,\n\texpert: expertWithMetadataSchema,\n\tstepNumber: z.number().int().min(0),\n\tusage: usageSchema\n});\n\n//#endregion\n//#region ../models/src/api/jobs/runs/getAll.ts\nconst request$3 = {\n\tparams: z.object({ jobId: cuidSchema }),\n\tquery: z.object({\n\t\tsort: z.enum([\"createdAt\", \"updatedAt\"]).optional(),\n\t\torder: z.enum([\"asc\", \"desc\"]).optional(),\n\t\ttake: z.coerce.number().min(1).max(100).default(20),\n\t\tskip: z.coerce.number().min(0).default(0)\n\t})\n};\nconst response$3 = z.object({\n\tdata: z.object({ runs: z.array(runSchema) }),\n\tmeta: paginationMeta\n});\n\n//#endregion\n//#region ../models/src/domain/providerSetting.ts\nconst baseUrlSchema = z.string().url().max(maxProviderBaseUrlLength).optional();\nconst headersSchema = z.record(z.string().min(1).max(maxProviderHeaderKeyLength), z.string().max(maxProviderHeaderValueLength)).refine((headers) => Object.keys(headers).length <= maxProviderHeadersCount, { message: `Headers must have at most ${maxProviderHeadersCount} entries` }).optional();\nconst anthropicProviderSettingsSchema = z.object({\n\tbaseUrl: baseUrlSchema,\n\theaders: headersSchema\n});\nconst googleProviderSettingsSchema = z.object({\n\tbaseUrl: baseUrlSchema,\n\theaders: headersSchema\n});\nconst openaiProviderSettingsSchema = z.object({\n\tbaseUrl: baseUrlSchema,\n\theaders: headersSchema,\n\torganization: z.string().min(1).optional(),\n\tproject: z.string().min(1).optional(),\n\tname: z.string().min(1).optional()\n});\nconst deepseekProviderSettingsSchema = z.object({\n\tbaseUrl: baseUrlSchema,\n\theaders: headersSchema\n});\nconst azureOpenaiProviderSettingsSchema = z.object({\n\tbaseUrl: baseUrlSchema,\n\theaders: headersSchema,\n\tresourceName: z.string().min(1).optional(),\n\tapiVersion: z.string().min(1).optional(),\n\tuseDeploymentBasedUrls: z.boolean().optional()\n});\nconst amazonBedrockProviderSettingsSchema = z.object({ region: z.string().min(1).optional() });\nconst googleVertexProviderSettingsSchema = z.object({\n\tbaseUrl: baseUrlSchema,\n\theaders: headersSchema,\n\tproject: z.string().min(1).optional(),\n\tlocation: z.string().min(1).optional()\n});\nconst providerSettingsSchema = z.union([\n\tanthropicProviderSettingsSchema,\n\tgoogleProviderSettingsSchema,\n\topenaiProviderSettingsSchema,\n\tdeepseekProviderSettingsSchema,\n\tazureOpenaiProviderSettingsSchema,\n\tamazonBedrockProviderSettingsSchema,\n\tgoogleVertexProviderSettingsSchema\n]);\nconst providerSettingSchema = z.object({\n\ttype: z.literal(\"providerSetting\"),\n\tid: cuidSchema,\n\tapplicationId: cuidSchema,\n\tprovider: providerSchema,\n\tsettings: providerSettingsSchema.optional(),\n\tapplication: applicationSchema,\n\tcreatedAt: datetimeSchema,\n\tupdatedAt: datetimeSchema\n});\nconst providerSettingResponseSchema = z.object({\n\ttype: z.literal(\"providerSetting\"),\n\tid: cuidSchema,\n\tprovider: providerSchema,\n\tsettings: providerSettingsSchema.optional(),\n\tcreatedAt: datetimeSchema,\n\tupdatedAt: datetimeSchema\n});\nconst providerApiKeyMetadataSchema = z.object({\n\tid: cuidSchema,\n\tname: z.string(),\n\tcreatedAt: datetimeSchema,\n\tupdatedAt: datetimeSchema,\n\tlastUsedAt: datetimeSchema.nullable(),\n\texpiresAt: datetimeSchema.nullable()\n});\n\n//#endregion\n//#region ../models/src/api/provider-settings/api-keys/create.ts\nconst request$2 = {\n\tparams: z.object({\n\t\tapplicationId: cuidSchema,\n\t\tprovider: providerSchema\n\t}),\n\tbody: z.object({\n\t\tname: z.string().min(1).max(255),\n\t\tvalue: z.string().min(1)\n\t})\n};\nconst response$2 = z.object({ data: z.object({ apiKey: providerApiKeyMetadataSchema }) });\n\n//#endregion\n//#region ../models/src/api/provider-settings/create.ts\nconst request$1 = {\n\tparams: z.object({ applicationId: cuidSchema }),\n\tbody: z.object({\n\t\tprovider: providerSchema,\n\t\tsettings: providerSettingsSchema.optional()\n\t})\n};\nconst response$1 = z.object({ data: z.object({ providerSetting: providerSettingResponseSchema }) });\n\n//#endregion\n//#region ../models/src/api/provider-settings/update.ts\nconst request = {\n\tparams: z.object({\n\t\tapplicationId: cuidSchema,\n\t\tprovider: providerSchema\n\t}),\n\tbody: z.object({ settings: providerSettingsSchema.optional() })\n};\nconst response = z.object({ data: z.object({ providerSetting: providerSettingResponseSchema }) });\n\n//#endregion\n//#region src/endpoints/jobs-runs-checkpoints.ts\nfunction createRunCheckpointsApi(fetcher, basePath) {\n\treturn {\n\t\tasync list(jobId, runId, params, options) {\n\t\t\tif (params) {\n\t\t\t\tconst result = request$4.query.safeParse(params);\n\t\t\t\tif (!result.success) return {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createValidationError(result.error)\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst queryString = buildQueryString(params);\n\t\t\treturn fetcher.get(`${basePath}/${jobId}/runs/${runId}/checkpoints${queryString}`, options);\n\t\t},\n\t\tasync get(jobId, runId, checkpointId, options) {\n\t\t\treturn fetcher.get(`${basePath}/${jobId}/runs/${runId}/checkpoints/${checkpointId}`, options);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/endpoints/jobs-runs.ts\nfunction createRunsApi(fetcher, basePath) {\n\treturn {\n\t\tasync list(jobId, params, options) {\n\t\t\tif (params) {\n\t\t\t\tconst result = request$3.query.safeParse(params);\n\t\t\t\tif (!result.success) return {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createValidationError(result.error)\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst queryString = buildQueryString(params);\n\t\t\treturn fetcher.get(`${basePath}/${jobId}/runs${queryString}`, options);\n\t\t},\n\t\tasync get(jobId, runId, options) {\n\t\t\treturn fetcher.get(`${basePath}/${jobId}/runs/${runId}`, options);\n\t\t},\n\t\tcheckpoints: createRunCheckpointsApi(fetcher, basePath)\n\t};\n}\n\n//#endregion\n//#region src/endpoints/jobs.ts\nconst BASE_PATH$5 = \"/api/v1/jobs\";\n/**\n* Error thrown when stream ends abnormally.\n*/\nvar StreamError = class extends Error {\n\tconstructor(type, jobId, message) {\n\t\tsuper(message ?? `Stream error: ${type}`);\n\t\tthis.type = type;\n\t\tthis.jobId = jobId;\n\t\tthis.name = \"StreamError\";\n\t}\n};\n/**\n* Error thrown when stream connection or reading fails.\n*/\nvar StreamConnectionError = class extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = \"StreamConnectionError\";\n\t}\n};\nfunction isErrorEventData(data) {\n\treturn typeof data === \"object\" && data !== null && \"type\" in data && typeof data.type === \"string\" && \"jobId\" in data && typeof data.jobId === \"string\";\n}\nfunction isCompleteEventData(data) {\n\treturn typeof data === \"object\" && data !== null && \"status\" in data && typeof data.status === \"string\" && \"jobId\" in data && typeof data.jobId === \"string\";\n}\nfunction createJobsApi(fetcher) {\n\treturn {\n\t\tasync list(params, options) {\n\t\t\tif (params) {\n\t\t\t\tconst result = request$5.query.safeParse(params);\n\t\t\t\tif (!result.success) return {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createValidationError(result.error)\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst queryString = buildQueryString(params);\n\t\t\treturn fetcher.get(`${BASE_PATH$5}${queryString}`, options);\n\t\t},\n\t\tasync get(id, options) {\n\t\t\treturn fetcher.get(`${BASE_PATH$5}/${id}`, options);\n\t\t},\n\t\tasync start(input, options) {\n\t\t\tconst result = request$6.body.safeParse(input);\n\t\t\tif (!result.success) return {\n\t\t\t\tok: false,\n\t\t\t\terror: createValidationError(result.error)\n\t\t\t};\n\t\t\treturn fetcher.post(BASE_PATH$5, input, options);\n\t\t},\n\t\tasync continue(id, input, options) {\n\t\t\tconst result = request$7.body.safeParse(input);\n\t\t\tif (!result.success) return {\n\t\t\t\tok: false,\n\t\t\t\terror: createValidationError(result.error)\n\t\t\t};\n\t\t\treturn fetcher.post(`${BASE_PATH$5}/${id}/continue`, input, options);\n\t\t},\n\t\tasync cancel(id, options) {\n\t\t\treturn fetcher.post(`${BASE_PATH$5}/${id}/cancel`, {}, options);\n\t\t},\n\t\tasync *stream(id, options) {\n\t\t\tconst result = await fetcher.getStream(`${BASE_PATH$5}/${id}/stream`, options);\n\t\t\tif (!result.ok) throw new StreamConnectionError(result.error.message);\n\t\t\tconst reader = result.data.getReader();\n\t\t\ttry {\n\t\t\t\tfor await (const sseEvent of parseSSEEvents(reader)) if (sseEvent.event === \"message\") yield sseEvent.data;\n\t\t\t\telse if (sseEvent.event === \"error\" && isErrorEventData(sseEvent.data)) throw new StreamError(sseEvent.data.type, sseEvent.data.jobId, sseEvent.data.message);\n\t\t\t\telse if (sseEvent.event === \"complete\" && isCompleteEventData(sseEvent.data)) return;\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof StreamError || error instanceof StreamConnectionError) throw error;\n\t\t\t\tif (error instanceof DOMException && error.name === \"AbortError\") throw error;\n\t\t\t\tthrow new StreamConnectionError(error instanceof Error ? error.message : \"Stream read error\");\n\t\t\t}\n\t\t},\n\t\truns: createRunsApi(fetcher, BASE_PATH$5)\n\t};\n}\n\n//#endregion\n//#region src/endpoints/applications.ts\nconst BASE_PATH$4 = \"/api/v1/applications\";\nfunction createApplicationsApi(fetcher) {\n\treturn {\n\t\tasync list(params, options) {\n\t\t\tif (params) {\n\t\t\t\tconst result = request$16.query.safeParse(params);\n\t\t\t\tif (!result.success) return {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createValidationError(result.error)\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst queryString = buildQueryString(params);\n\t\t\treturn fetcher.get(`${BASE_PATH$4}${queryString}`, options);\n\t\t},\n\t\tasync get(id, options) {\n\t\t\treturn fetcher.get(`${BASE_PATH$4}/${id}`, options);\n\t\t},\n\t\tasync create(input, options) {\n\t\t\tconst result = request$17.body.safeParse(input);\n\t\t\tif (!result.success) return {\n\t\t\t\tok: false,\n\t\t\t\terror: createValidationError(result.error)\n\t\t\t};\n\t\t\treturn fetcher.post(BASE_PATH$4, input, options);\n\t\t},\n\t\tasync update(id, input, options) {\n\t\t\tconst result = request$15.body.safeParse(input);\n\t\t\tif (!result.success) return {\n\t\t\t\tok: false,\n\t\t\t\terror: createValidationError(result.error)\n\t\t\t};\n\t\t\treturn fetcher.post(`${BASE_PATH$4}/${id}`, input, options);\n\t\t},\n\t\tasync delete(id, options) {\n\t\t\treturn fetcher.delete(`${BASE_PATH$4}/${id}`, options);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/endpoints/env-secrets.ts\nconst BASE_PATH$3 = \"/api/v1/env/secrets\";\nfunction createSecretsApi(fetcher) {\n\treturn {\n\t\tasync list(params, options) {\n\t\t\tif (params) {\n\t\t\t\tconst result = request$13.query.safeParse(params);\n\t\t\t\tif (!result.success) return {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createValidationError(result.error)\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst queryString = buildQueryString(params);\n\t\t\treturn fetcher.get(`${BASE_PATH$3}${queryString}`, options);\n\t\t},\n\t\tasync get(name, options) {\n\t\t\tconst encodedName = encodeURIComponent(name);\n\t\t\treturn fetcher.get(`${BASE_PATH$3}/${encodedName}`, options);\n\t\t},\n\t\tasync create(input, options) {\n\t\t\tconst result = request$14.body.safeParse(input);\n\t\t\tif (!result.success) return {\n\t\t\t\tok: false,\n\t\t\t\terror: createValidationError(result.error)\n\t\t\t};\n\t\t\treturn fetcher.post(BASE_PATH$3, input, options);\n\t\t},\n\t\tasync update(name, input, options) {\n\t\t\tconst result = request$12.body.safeParse(input);\n\t\t\tif (!result.success) return {\n\t\t\t\tok: false,\n\t\t\t\terror: createValidationError(result.error)\n\t\t\t};\n\t\t\tconst encodedName = encodeURIComponent(name);\n\t\t\treturn fetcher.put(`${BASE_PATH$3}/${encodedName}`, input, options);\n\t\t},\n\t\tasync delete(name, options) {\n\t\t\tconst encodedName = encodeURIComponent(name);\n\t\t\treturn fetcher.deleteNoContent(`${BASE_PATH$3}/${encodedName}`, options);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/endpoints/env-variables.ts\nconst BASE_PATH$2 = \"/api/v1/env/variables\";\nfunction createVariablesApi(fetcher) {\n\treturn {\n\t\tasync list(params, options) {\n\t\t\tconst result = request$10.query.safeParse(params);\n\t\t\tif (!result.success) return {\n\t\t\t\tok: false,\n\t\t\t\terror: createValidationError(result.error)\n\t\t\t};\n\t\t\tconst queryString = buildQueryString(params);\n\t\t\treturn fetcher.get(`${BASE_PATH$2}${queryString}`, options);\n\t\t},\n\t\tasync get(name, options) {\n\t\t\tconst encodedName = encodeURIComponent(name);\n\t\t\treturn fetcher.get(`${BASE_PATH$2}/${encodedName}`, options);\n\t\t},\n\t\tasync create(input, options) {\n\t\t\tconst result = request$11.body.safeParse(input);\n\t\t\tif (!result.success) return {\n\t\t\t\tok: false,\n\t\t\t\terror: createValidationError(result.error)\n\t\t\t};\n\t\t\treturn fetcher.post(BASE_PATH$2, input, options);\n\t\t},\n\t\tasync update(name, input, options) {\n\t\t\tconst result = request$9.body.safeParse(input);\n\t\t\tif (!result.success) return {\n\t\t\t\tok: false,\n\t\t\t\terror: createValidationError(result.error)\n\t\t\t};\n\t\t\tconst encodedName = encodeURIComponent(name);\n\t\t\treturn fetcher.put(`${BASE_PATH$2}/${encodedName}`, input, options);\n\t\t},\n\t\tasync delete(name, options) {\n\t\t\tconst encodedName = encodeURIComponent(name);\n\t\t\treturn fetcher.deleteNoContent(`${BASE_PATH$2}/${encodedName}`, options);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/endpoints/env.ts\nfunction createEnvApi(fetcher) {\n\treturn {\n\t\tsecrets: createSecretsApi(fetcher),\n\t\tvariables: createVariablesApi(fetcher)\n\t};\n}\n\n//#endregion\n//#region src/endpoints/experts-versions.ts\nfunction createVersionsApi(fetcher, basePath) {\n\treturn { async list(scopeName, options) {\n\t\tconst encodedScopeName = encodeURIComponent(scopeName);\n\t\treturn fetcher.get(`${basePath}/${encodedScopeName}/versions`, options);\n\t} };\n}\n\n//#endregion\n//#region src/endpoints/experts.ts\nconst BASE_PATH$1 = \"/api/v1/experts\";\nfunction createExpertsApi(fetcher) {\n\treturn {\n\t\tasync list(params, options) {\n\t\t\tif (params) {\n\t\t\t\tconst result = request$8.query.safeParse(params);\n\t\t\t\tif (!result.success) return {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createValidationError(result.error)\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst queryString = buildQueryString(params);\n\t\t\treturn fetcher.get(`${BASE_PATH$1}${queryString}`, options);\n\t\t},\n\t\tasync get(key, options) {\n\t\t\tconst encodedKey = encodeURIComponent(key);\n\t\t\treturn fetcher.get(`${BASE_PATH$1}/${encodedKey}`, options);\n\t\t},\n\t\tasync getFeatured(options) {\n\t\t\treturn fetcher.get(`${BASE_PATH$1}/featured`, options);\n\t\t},\n\t\tasync getMeta(key, options) {\n\t\t\tconst encodedKey = encodeURIComponent(key);\n\t\t\treturn fetcher.get(`${BASE_PATH$1}/${encodedKey}/meta`, options);\n\t\t},\n\t\tasync publish(scopeName, options) {\n\t\t\tconst encodedScopeName = encodeURIComponent(scopeName);\n\t\t\treturn fetcher.post(`${BASE_PATH$1}/${encodedScopeName}/publish`, {}, options);\n\t\t},\n\t\tasync unpublish(scopeName, options) {\n\t\t\tconst encodedScopeName = encodeURIComponent(scopeName);\n\t\t\treturn fetcher.post(`${BASE_PATH$1}/${encodedScopeName}/unpublish`, {}, options);\n\t\t},\n\t\tasync yank(key, options) {\n\t\t\tconst encodedKey = encodeURIComponent(key);\n\t\t\treturn fetcher.delete(`${BASE_PATH$1}/${encodedKey}`, options);\n\t\t},\n\t\tversions: createVersionsApi(fetcher, BASE_PATH$1)\n\t};\n}\n\n//#endregion\n//#region src/endpoints/provider-settings.ts\nconst BASE_PATH = \"/api/v1/applications\";\nfunction createProviderSettingsApi(fetcher) {\n\treturn {\n\t\tasync list(applicationId, options) {\n\t\t\treturn fetcher.get(`${BASE_PATH}/${applicationId}/provider_settings`, options);\n\t\t},\n\t\tasync get(applicationId, provider, options) {\n\t\t\tconst encodedProvider = encodeURIComponent(provider);\n\t\t\treturn fetcher.get(`${BASE_PATH}/${applicationId}/provider_settings/${encodedProvider}`, options);\n\t\t},\n\t\tasync create(applicationId, input, options) {\n\t\t\tconst result = request$1.body.safeParse(input);\n\t\t\tif (!result.success) return {\n\t\t\t\tok: false,\n\t\t\t\terror: createValidationError(result.error)\n\t\t\t};\n\t\t\treturn fetcher.post(`${BASE_PATH}/${applicationId}/provider_settings`, input, options);\n\t\t},\n\t\tasync update(applicationId, provider, input, options) {\n\t\t\tconst result = request.body.safeParse(input);\n\t\t\tif (!result.success) return {\n\t\t\t\tok: false,\n\t\t\t\terror: createValidationError(result.error)\n\t\t\t};\n\t\t\tconst encodedProvider = encodeURIComponent(provider);\n\t\t\treturn fetcher.post(`${BASE_PATH}/${applicationId}/provider_settings/${encodedProvider}`, input, options);\n\t\t},\n\t\tasync delete(applicationId, provider, options) {\n\t\t\tconst encodedProvider = encodeURIComponent(provider);\n\t\t\treturn fetcher.deleteNoContent(`${BASE_PATH}/${applicationId}/provider_settings/${encodedProvider}`, options);\n\t\t},\n\t\tasync listApiKeys(applicationId, provider, options) {\n\t\t\tconst encodedProvider = encodeURIComponent(provider);\n\t\t\treturn fetcher.get(`${BASE_PATH}/${applicationId}/provider_settings/${encodedProvider}/api_keys`, options);\n\t\t},\n\t\tasync createApiKey(applicationId, provider, input, options) {\n\t\t\tconst result = request$2.body.safeParse(input);\n\t\t\tif (!result.success) return {\n\t\t\t\tok: false,\n\t\t\t\terror: createValidationError(result.error)\n\t\t\t};\n\t\t\tconst encodedProvider = encodeURIComponent(provider);\n\t\t\treturn fetcher.post(`${BASE_PATH}/${applicationId}/provider_settings/${encodedProvider}/api_keys`, input, options);\n\t\t},\n\t\tasync deleteApiKey(applicationId, provider, apiKeyId, options) {\n\t\t\tconst encodedProvider = encodeURIComponent(provider);\n\t\t\tconst encodedApiKeyId = encodeURIComponent(apiKeyId);\n\t\t\treturn fetcher.deleteNoContent(`${BASE_PATH}/${applicationId}/provider_settings/${encodedProvider}/api_keys/${encodedApiKeyId}`, options);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/public/client.ts\nfunction createApiClient(config) {\n\tconst fetcher = createFetcher(config);\n\treturn {\n\t\tapplications: createApplicationsApi(fetcher),\n\t\tenv: createEnvApi(fetcher),\n\t\tjobs: createJobsApi(fetcher),\n\t\texperts: createExpertsApi(fetcher),\n\t\tproviderSettings: createProviderSettingsApi(fetcher)\n\t};\n}\n\n//#endregion\nexport { StreamConnectionError, StreamError, buildAuthHeaders, buildQueryString, createAbortError, createApiClient, createFetcher, createHttpError, createNetworkError, createTimeoutError, createValidationError, handleHttpError, isAbortError, isClientError, isHttpError, isNetworkError, isTimeoutError, isValidationError, matchExperts, matchOperations, matchWildcard, parseApiKeyPermissions, parseSSE, parseSSEEvents, stringifyApiKeyPermissions };\n//# sourceMappingURL=index.mjs.map","import { createApiClient } from \"@perstack/api-client\"\nimport { type Expert, PerstackError, type RuntimeVersion, type Skill } from \"@perstack/core\"\n\nexport async function resolveExpertToRun(\n expertKey: string,\n experts: Record<string, Expert>,\n clientOptions: {\n perstackApiBaseUrl: string\n perstackApiKey?: string\n },\n): Promise<Expert> {\n if (experts[expertKey]) {\n return experts[expertKey]\n }\n if (!clientOptions.perstackApiKey) {\n throw new PerstackError(\n `PERSTACK_API_KEY is required to resolve published expert \"${expertKey}\"`,\n )\n }\n const client = createApiClient({\n baseUrl: clientOptions.perstackApiBaseUrl,\n apiKey: clientOptions.perstackApiKey,\n })\n const result = await client.experts.get(expertKey)\n if (!result.ok) {\n throw new PerstackError(`Failed to resolve expert \"${expertKey}\": ${result.error.message}`)\n }\n const publishedExpert = result.data.data.definition.experts[expertKey]\n if (!publishedExpert) {\n throw new PerstackError(`Expert \"${expertKey}\" not found in API response`)\n }\n return toRuntimeExpert(expertKey, publishedExpert)\n}\n\nfunction toRuntimeExpert(\n key: string,\n expert: {\n name: string\n version: string\n minRuntimeVersion?: RuntimeVersion\n description?: string\n instruction: string\n skills?: Record<\n string,\n | {\n type: \"mcpStdioSkill\"\n name: string\n description: string\n rule?: string\n pick?: string[]\n omit?: string[]\n command: \"npx\" | \"uvx\"\n packageName: string\n requiredEnv?: string[]\n }\n | {\n type: \"mcpSseSkill\"\n name: string\n description: string\n rule?: string\n pick?: string[]\n omit?: string[]\n endpoint: string\n }\n | {\n type: \"interactiveSkill\"\n name: string\n description: string\n rule?: string\n tools: Record<string, { description: string; inputJsonSchema: string }>\n }\n >\n delegates?: string[]\n tags?: string[]\n },\n): Expert {\n const skills: Record<string, Skill> = Object.fromEntries(\n Object.entries(expert.skills ?? {}).map(([name, skill]) => {\n switch (skill.type) {\n case \"mcpStdioSkill\":\n return [\n name,\n {\n type: skill.type,\n name,\n description: skill.description,\n rule: skill.rule,\n pick: skill.pick ?? [],\n omit: skill.omit ?? [],\n command: skill.command,\n packageName: skill.packageName,\n requiredEnv: skill.requiredEnv ?? [],\n },\n ]\n case \"mcpSseSkill\":\n return [\n name,\n {\n type: skill.type,\n name,\n description: skill.description,\n rule: skill.rule,\n pick: skill.pick ?? [],\n omit: skill.omit ?? [],\n endpoint: skill.endpoint,\n },\n ]\n case \"interactiveSkill\":\n return [\n name,\n {\n type: skill.type,\n name,\n description: skill.description,\n rule: skill.rule,\n tools: Object.fromEntries(\n Object.entries(skill.tools).map(([toolName, tool]) => [\n toolName,\n {\n name: toolName,\n description: tool.description,\n inputSchema: JSON.parse(tool.inputJsonSchema),\n },\n ]),\n ),\n },\n ]\n default: {\n throw new PerstackError(`Unknown skill type: ${(skill as { type: string }).type}`)\n }\n }\n }),\n )\n return {\n key,\n name: expert.name,\n version: expert.version,\n minRuntimeVersion: expert.minRuntimeVersion ?? \"v1.0\",\n description: expert.description ?? \"\",\n instruction: expert.instruction,\n skills,\n delegates: expert.delegates ?? [],\n tags: expert.tags ?? [],\n }\n}\n"],"x_google_ignoreList":[0],"mappings":"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B,oBAAoB,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC;CAClH,MAAM;CACN,CAAC;AAIF,MAAM,yBAAyB;CAC9B;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;AACD,MAAM,sBAAsB;CAC3B;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;AACD,MAAM,sBAAsB;CAC3B;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;AACD,MAAM,wBAAwB,CAAC;CAC9B,SAAS;CACT,SAAS;CACT,UAAU;CACV,eAAe;CACf,EAA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"}
|
|
1
|
+
{"version":3,"file":"resolve-expert-CTnETi9d.js","names":["z.string","z.enum","z.object","z.literal","z.number","z.unknown","z.array","z.preprocess","z.coerce.number","z.boolean","z.record","z.discriminatedUnion","z.coerce.boolean","z.union","z.undefined"],"sources":["../../../node_modules/.pnpm/@perstack+api-client@0.0.55_@perstack+core@packages+core_zod@4.3.6/node_modules/@perstack/api-client/dist/index.mjs","../../../packages/runtime/src/helpers/resolve-expert.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { activityOrGroupSchema, instructionMessageSchema, messageSchema, toolCallSchema, toolMessageSchema, toolResultSchema, usageSchema, userMessageSchema } from \"@perstack/core\";\n\n//#region src/lib/api-key.ts\nfunction matchWildcard(value, pattern) {\n\tif (pattern === \"*\") return true;\n\tif (pattern.endsWith(\"*\")) return value.startsWith(pattern.slice(0, -1));\n\tif (pattern.startsWith(\"*\")) return value.endsWith(pattern.slice(1));\n\treturn value === pattern;\n}\nfunction matchOperations(operations, requiredOperation) {\n\treturn operations.some((pattern) => matchWildcard(requiredOperation, pattern));\n}\nfunction matchExperts(experts, expertId) {\n\tif (experts === void 0 || experts === \"*\") return true;\n\treturn experts.some((pattern) => matchWildcard(expertId, pattern));\n}\nfunction isApiKeyPermissions(parsed) {\n\treturn typeof parsed === \"object\" && parsed !== null && \"operations\" in parsed && Array.isArray(parsed.operations);\n}\nfunction parseApiKeyPermissions(permissionsJson) {\n\tif (!permissionsJson) return null;\n\ttry {\n\t\tconst parsed = JSON.parse(permissionsJson);\n\t\tif (!isApiKeyPermissions(parsed)) return null;\n\t\treturn parsed;\n\t} catch {\n\t\treturn null;\n\t}\n}\nfunction stringifyApiKeyPermissions(permissions) {\n\treturn JSON.stringify(permissions);\n}\n\n//#endregion\n//#region src/lib/auth.ts\nfunction buildAuthHeaders(auth) {\n\tif (auth.type === \"apiKey\") return { Authorization: `Bearer ${auth.apiKey}` };\n\treturn { Cookie: auth.cookie };\n}\n\n//#endregion\n//#region src/lib/errors.ts\nfunction createValidationError(error) {\n\treturn {\n\t\terrorType: \"validation\",\n\t\tcode: 400,\n\t\tmessage: `Validation failed: ${error.issues.map((issue) => `${issue.path.join(\".\")}: ${issue.message}`).join(\"; \")}`,\n\t\treason: error.issues\n\t};\n}\nfunction createAbortError() {\n\treturn {\n\t\terrorType: \"abort\",\n\t\tcode: 0,\n\t\tmessage: \"Request aborted\",\n\t\taborted: true\n\t};\n}\nfunction createTimeoutError() {\n\treturn {\n\t\terrorType: \"timeout\",\n\t\tcode: 0,\n\t\tmessage: \"Request timed out\"\n\t};\n}\nfunction createNetworkError(error) {\n\treturn {\n\t\terrorType: \"network\",\n\t\tcode: 0,\n\t\tmessage: error instanceof Error ? error.message : \"Network error\",\n\t\treason: error,\n\t\tcause: error instanceof Error ? error : void 0\n\t};\n}\nasync function handleHttpError(response) {\n\tlet errorBody;\n\ttry {\n\t\terrorBody = await response.json();\n\t} catch {\n\t\terrorBody = void 0;\n\t}\n\treturn {\n\t\tok: false,\n\t\terror: createHttpError(response.status, response.statusText, errorBody)\n\t};\n}\nfunction createHttpError(status, statusText, body) {\n\tif (typeof body === \"object\" && body !== null) {\n\t\tconst hasReason = \"reason\" in body;\n\t\tif (\"error\" in body && typeof body.error === \"string\") return {\n\t\t\terrorType: \"http\",\n\t\t\tcode: status,\n\t\t\tmessage: body.error,\n\t\t\treason: hasReason ? body.reason : void 0\n\t\t};\n\t\tif (hasReason) return {\n\t\t\terrorType: \"http\",\n\t\t\tcode: status,\n\t\t\tmessage: statusText,\n\t\t\treason: body.reason\n\t\t};\n\t}\n\treturn {\n\t\terrorType: \"http\",\n\t\tcode: status,\n\t\tmessage: statusText\n\t};\n}\nfunction isHttpError(error) {\n\treturn error.errorType === \"http\";\n}\nfunction isNetworkError(error) {\n\treturn error.errorType === \"network\";\n}\nfunction isTimeoutError(error) {\n\treturn error.errorType === \"timeout\";\n}\nfunction isValidationError(error) {\n\treturn error.errorType === \"validation\";\n}\nfunction isAbortError(error) {\n\treturn error.errorType === \"abort\";\n}\nfunction isClientError(error) {\n\treturn error.errorType !== \"http\";\n}\n\n//#endregion\n//#region src/lib/fetcher.ts\nconst DEFAULT_BASE_URL = \"https://api.perstack.ai\";\nconst DEFAULT_TIMEOUT = 3e4;\nfunction createFetcher(config) {\n\tconst baseUrl = config.baseUrl ?? DEFAULT_BASE_URL;\n\tconst timeout = config.timeout ?? DEFAULT_TIMEOUT;\n\tconst useCredentials = \"credentials\" in config && config.credentials === \"include\";\n\tconst apiKey = \"apiKey\" in config ? config.apiKey : void 0;\n\tfunction buildUrl(path) {\n\t\treturn `${baseUrl}${path}`;\n\t}\n\tfunction buildHeaders(options) {\n\t\tconst headers = {};\n\t\tif (options?.hasBody) headers[\"Content-Type\"] = \"application/json\";\n\t\tif (apiKey) headers.Authorization = `Bearer ${apiKey}`;\n\t\treturn headers;\n\t}\n\tfunction getCredentials() {\n\t\treturn useCredentials ? \"include\" : void 0;\n\t}\n\tfunction createTimeoutSignal(externalSignal) {\n\t\tconst controller = new AbortController();\n\t\tlet timedOut = false;\n\t\tconst timeoutId = setTimeout(() => {\n\t\t\ttimedOut = true;\n\t\t\tcontroller.abort();\n\t\t}, timeout);\n\t\tlet abortHandler;\n\t\tif (externalSignal) if (externalSignal.aborted) controller.abort();\n\t\telse {\n\t\t\tabortHandler = () => controller.abort();\n\t\t\texternalSignal.addEventListener(\"abort\", abortHandler);\n\t\t}\n\t\treturn {\n\t\t\tsignal: controller.signal,\n\t\t\tcleanup: () => {\n\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\tif (abortHandler && externalSignal) externalSignal.removeEventListener(\"abort\", abortHandler);\n\t\t\t},\n\t\t\tisTimeout: () => timedOut\n\t\t};\n\t}\n\tfunction wrapStreamWithIdleTimeout(stream, idleTimeoutMs, externalSignal) {\n\t\tconst reader = stream.getReader();\n\t\tconst controller = new AbortController();\n\t\tlet timeoutId;\n\t\tlet abortHandler;\n\t\tif (externalSignal) if (externalSignal.aborted) controller.abort();\n\t\telse {\n\t\t\tabortHandler = () => controller.abort();\n\t\t\texternalSignal.addEventListener(\"abort\", abortHandler);\n\t\t}\n\t\tfunction resetTimeout() {\n\t\t\tif (timeoutId) clearTimeout(timeoutId);\n\t\t\ttimeoutId = setTimeout(() => controller.abort(), idleTimeoutMs);\n\t\t}\n\t\tfunction cleanup() {\n\t\t\tif (timeoutId) clearTimeout(timeoutId);\n\t\t\tif (abortHandler && externalSignal) externalSignal.removeEventListener(\"abort\", abortHandler);\n\t\t}\n\t\treturn new ReadableStream({\n\t\t\tstart() {\n\t\t\t\tresetTimeout();\n\t\t\t},\n\t\t\tasync pull(streamController) {\n\t\t\t\ttry {\n\t\t\t\t\tconst result = await Promise.race([reader.read(), new Promise((_, reject) => {\n\t\t\t\t\t\tif (controller.signal.aborted) reject(new DOMException(\"Stream idle timeout\", \"AbortError\"));\n\t\t\t\t\t\tcontroller.signal.addEventListener(\"abort\", () => {\n\t\t\t\t\t\t\treject(new DOMException(\"Stream idle timeout\", \"AbortError\"));\n\t\t\t\t\t\t});\n\t\t\t\t\t})]);\n\t\t\t\t\tif (result.done) {\n\t\t\t\t\t\tcleanup();\n\t\t\t\t\t\tstreamController.close();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tresetTimeout();\n\t\t\t\t\tstreamController.enqueue(result.value);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tcleanup();\n\t\t\t\t\treader.cancel().catch(() => {});\n\t\t\t\t\tif (error instanceof DOMException && error.name === \"AbortError\") streamController.error(new DOMException(\"Stream idle timeout\", \"AbortError\"));\n\t\t\t\t\telse streamController.error(error);\n\t\t\t\t}\n\t\t\t},\n\t\t\tcancel(reason) {\n\t\t\t\tcleanup();\n\t\t\t\treader.cancel(reason).catch(() => {});\n\t\t\t}\n\t\t});\n\t}\n\tasync function request(method, path, body, options) {\n\t\tconst { signal, cleanup, isTimeout } = createTimeoutSignal(options?.signal);\n\t\ttry {\n\t\t\tconst response = await fetch(buildUrl(path), {\n\t\t\t\tmethod,\n\t\t\t\theaders: buildHeaders(body ? { hasBody: true } : void 0),\n\t\t\t\tbody: body ? JSON.stringify(body) : void 0,\n\t\t\t\tsignal,\n\t\t\t\tcredentials: getCredentials()\n\t\t\t});\n\t\t\tif (!response.ok) return handleHttpError(response);\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: await response.json()\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tif (error instanceof Error && error.name === \"AbortError\") {\n\t\t\t\tif (isTimeout()) return {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createTimeoutError()\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createAbortError()\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createNetworkError(error)\n\t\t\t};\n\t\t} finally {\n\t\t\tcleanup();\n\t\t}\n\t}\n\tasync function requestBlob(path, options) {\n\t\tconst { signal, cleanup, isTimeout } = createTimeoutSignal(options?.signal);\n\t\ttry {\n\t\t\tconst response = await fetch(buildUrl(path), {\n\t\t\t\tmethod: \"GET\",\n\t\t\t\theaders: buildHeaders(),\n\t\t\t\tsignal,\n\t\t\t\tcredentials: getCredentials()\n\t\t\t});\n\t\t\tif (!response.ok) return handleHttpError(response);\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: await response.blob()\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tif (error instanceof Error && error.name === \"AbortError\") {\n\t\t\t\tif (isTimeout()) return {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createTimeoutError()\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createAbortError()\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createNetworkError(error)\n\t\t\t};\n\t\t} finally {\n\t\t\tcleanup();\n\t\t}\n\t}\n\tasync function requestStream(path, options) {\n\t\tconst { signal, cleanup, isTimeout } = createTimeoutSignal(options?.signal);\n\t\ttry {\n\t\t\tconst response = await fetch(buildUrl(path), {\n\t\t\t\tmethod: \"GET\",\n\t\t\t\theaders: buildHeaders(),\n\t\t\t\tsignal,\n\t\t\t\tcredentials: getCredentials()\n\t\t\t});\n\t\t\tif (!response.ok) {\n\t\t\t\tcleanup();\n\t\t\t\treturn handleHttpError(response);\n\t\t\t}\n\t\t\tif (!response.body) {\n\t\t\t\tcleanup();\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createNetworkError(/* @__PURE__ */ new Error(\"Response body is null\"))\n\t\t\t\t};\n\t\t\t}\n\t\t\tcleanup();\n\t\t\tconst idleTimeout = options?.streamIdleTimeout ?? timeout;\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: wrapStreamWithIdleTimeout(response.body, idleTimeout, options?.signal)\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tcleanup();\n\t\t\tif (error instanceof Error && error.name === \"AbortError\") {\n\t\t\t\tif (isTimeout()) return {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createTimeoutError()\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createAbortError()\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createNetworkError(error)\n\t\t\t};\n\t\t}\n\t}\n\tasync function requestNoContent(method, path, options) {\n\t\tconst { signal, cleanup, isTimeout } = createTimeoutSignal(options?.signal);\n\t\ttry {\n\t\t\tconst response = await fetch(buildUrl(path), {\n\t\t\t\tmethod,\n\t\t\t\theaders: buildHeaders(),\n\t\t\t\tsignal,\n\t\t\t\tcredentials: getCredentials()\n\t\t\t});\n\t\t\tif (!response.ok) return handleHttpError(response);\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tdata: void 0\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tif (error instanceof Error && error.name === \"AbortError\") {\n\t\t\t\tif (isTimeout()) return {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createTimeoutError()\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createAbortError()\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\terror: createNetworkError(error)\n\t\t\t};\n\t\t} finally {\n\t\t\tcleanup();\n\t\t}\n\t}\n\treturn {\n\t\tget: (path, options) => request(\"GET\", path, void 0, options),\n\t\tpost: (path, body, options) => request(\"POST\", path, body, options),\n\t\tput: (path, body, options) => request(\"PUT\", path, body, options),\n\t\tdelete: (path, options) => request(\"DELETE\", path, void 0, options),\n\t\tdeleteNoContent: (path, options) => requestNoContent(\"DELETE\", path, options),\n\t\tgetBlob: (path, options) => requestBlob(path, options),\n\t\tgetStream: (path, options) => requestStream(path, options)\n\t};\n}\n\n//#endregion\n//#region src/lib/query-string.ts\nfunction buildQueryString(params) {\n\tif (!params) return \"\";\n\tconst searchParams = new URLSearchParams();\n\tfor (const [key, value] of Object.entries(params)) if (value !== void 0) searchParams.set(key, String(value));\n\tconst queryString = searchParams.toString();\n\treturn queryString ? `?${queryString}` : \"\";\n}\n\n//#endregion\n//#region src/lib/sse.ts\nasync function* parseSSEEvents(reader) {\n\tconst decoder = new TextDecoder();\n\tlet buffer = \"\";\n\twhile (true) {\n\t\tconst { value, done } = await reader.read();\n\t\tif (done) break;\n\t\tbuffer += decoder.decode(value, { stream: true });\n\t\tconst events = buffer.split(\"\\n\\n\");\n\t\tbuffer = events.pop() || \"\";\n\t\tfor (const event of events) {\n\t\t\tif (event.trim() === \"\") continue;\n\t\t\tconst lines = event.split(\"\\n\");\n\t\t\tconst eventType = lines.find((line) => line.startsWith(\"event:\"))?.slice(6).trim();\n\t\t\tconst data = lines.find((line) => line.startsWith(\"data:\"))?.slice(5).trim();\n\t\t\tif (!eventType || !data) continue;\n\t\t\tif (eventType !== \"message\" && eventType !== \"error\" && eventType !== \"complete\") continue;\n\t\t\ttry {\n\t\t\t\tyield {\n\t\t\t\t\tevent: eventType,\n\t\t\t\t\tdata: JSON.parse(data)\n\t\t\t\t};\n\t\t\t} catch {}\n\t\t}\n\t}\n}\nasync function* parseSSE(reader) {\n\tconst decoder = new TextDecoder();\n\tlet buffer = \"\";\n\twhile (true) {\n\t\tconst { value, done } = await reader.read();\n\t\tif (done) break;\n\t\tbuffer += decoder.decode(value, { stream: true });\n\t\tconst events = buffer.split(\"\\n\\n\");\n\t\tbuffer = events.pop() || \"\";\n\t\tfor (const event of events) {\n\t\t\tif (event.trim() === \"\") continue;\n\t\t\tconst lines = event.split(\"\\n\");\n\t\t\tconst eventType = lines.find((line) => line.startsWith(\"event:\"))?.slice(6).trim();\n\t\t\tconst data = lines.find((line) => line.startsWith(\"data:\"))?.slice(5).trim();\n\t\t\tif (eventType !== \"message\" || !data) continue;\n\t\t\ttry {\n\t\t\t\tyield JSON.parse(data);\n\t\t\t} catch {}\n\t\t}\n\t}\n}\n\n//#endregion\n//#region ../constants/index.ts\nconst organizationNameRegex = /^[a-z0-9][a-z0-9_.-]*$/;\nconst maxOrganizationNameLength = 128;\nconst applicationNameRegex = /^[a-z0-9][a-z0-9_.-]*$/;\nconst maxApplicationNameLength = 255;\nconst maxVariableValueLength = 65536;\nconst maxSecretValueLength = 65536;\nconst expertKeyRegex = /^((?:@[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_.-]*))?$/;\nconst expertNameRegex = /^(@[a-z0-9][a-z0-9_-]*\\/)?[a-z0-9][a-z0-9_-]*$/;\nconst scopeNameRegex = /^[a-z0-9][a-z0-9_-]*$/;\nconst scopeNameRefRegex = /^[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_-]*))?$/;\nconst expertVersionRegex = /^(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-[\\w.-]+)?(?:\\+[\\w.-]+)?$/;\nconst tagNameRegex = /^[a-z0-9][a-z0-9_-]*$/;\nconst maxExpertNameLength = 255;\nconst maxExpertVersionTagLength = 255;\nconst maxExpertKeyLength = 511;\nconst maxExpertDescriptionLength = 1024 * 2;\nconst maxExpertInstructionLength = 1024 * 20;\nconst maxExpertDelegateItems = 255;\nconst maxExpertTagItems = 8;\nconst maxExpertJobQueryLength = 1024 * 20;\nconst maxExpertJobFileNameLength = 1024 * 10;\nconst packageWithVersionRegex = /^(?:@[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_.-]*)?$/;\nconst urlSafeRegex = /^[a-z0-9][a-z0-9_-]*$/;\nconst maxSkillNameLength = 255;\nconst maxSkillDescriptionLength = 1024 * 2;\nconst maxSkillRuleLength = 1024 * 2;\nconst maxSkillPickOmitItems = 255;\nconst maxSkillRequiredEnvItems = 255;\nconst maxSkillToolNameLength = 255;\nconst maxSkillEndpointLength = 1024 * 2;\nconst maxSkillInputJsonSchemaLength = 1024 * 20;\nconst maxCheckpointToolCallIdLength = 255;\nconst envNameRegex = /^[a-zA-Z0-9][a-zA-Z0-9_-]*$/;\nconst maxEnvNameLength = 255;\nconst maxProviderBaseUrlLength = 2048;\nconst maxProviderHeaderKeyLength = 255;\nconst maxProviderHeaderValueLength = 2048;\nconst maxProviderHeadersCount = 50;\n\n//#endregion\n//#region ../models/src/domain/common.ts\nconst cuidSchema = z.string().cuid2();\nconst cuidRequestSchema = z.string().min(24).cuid2();\nconst runtimeVersionSchema = z.enum([\"v1.0\"]);\nconst providerSchema = z.enum([\n\t\"anthropic\",\n\t\"google\",\n\t\"openai\",\n\t\"deepseek\",\n\t\"azure-openai\",\n\t\"amazon-bedrock\",\n\t\"google-vertex\"\n]);\nconst datetimeSchema = z.string().datetime({ offset: true });\nconst expertKeyFieldSchema = z.string().min(1).max(maxExpertKeyLength).regex(expertKeyRegex);\nconst expertNameFieldSchema = z.string().min(1).max(maxExpertNameLength).regex(expertNameRegex);\nconst expertVersionFieldSchema = z.string().min(1).max(maxExpertVersionTagLength).regex(expertVersionRegex);\nconst expertTagFieldSchema = z.string().min(1).max(maxExpertVersionTagLength).regex(tagNameRegex);\nconst expertCategoryFieldSchema = z.enum([\n\t\"general\",\n\t\"coding\",\n\t\"research\",\n\t\"writing\",\n\t\"data\",\n\t\"automation\"\n]);\nconst scopeNameSchema = z.string().min(1).max(maxExpertNameLength).regex(scopeNameRegex);\nconst scopeNameRefSchema = z.string().min(1).max(maxExpertNameLength + maxExpertVersionTagLength + 1).regex(scopeNameRefRegex);\nconst draftRefFieldSchema = z.string().min(1).max(30);\n\n//#endregion\n//#region ../models/src/domain/organization.ts\nconst organizationStatusSchema = z.enum([\n\t\"active\",\n\t\"inactive\",\n\t\"deleted\"\n]);\nconst organizationTypeSchema = z.enum([\n\t\"personal\",\n\t\"personalPlus\",\n\t\"team\",\n\t\"serviceAdmin\"\n]);\nconst organizationSchema = z.object({\n\ttype: z.literal(\"organization\"),\n\tid: cuidSchema,\n\tcreatedAt: datetimeSchema,\n\tupdatedAt: datetimeSchema,\n\tname: z.string().min(1).max(maxOrganizationNameLength).regex(organizationNameRegex).optional(),\n\tnameChangedAt: datetimeSchema.optional(),\n\tstatus: organizationStatusSchema,\n\torganizationType: organizationTypeSchema,\n\tmaxApplications: z.number().int().min(0),\n\tmaxApiKeys: z.number().int().min(0),\n\tmaxExperts: z.number().int().min(0)\n});\n\n//#endregion\n//#region ../models/src/lib/dedent.ts\n/**\n* Dedent function for multi-line template strings.\n* Adapted from ts-dedent (MIT License) to provide pure ESM support.\n*\n* Removes leading indentation from multi-line strings while preserving\n* relative indentation between lines.\n*/\nfunction dedent(templ, ...values) {\n\tlet strings = Array.from(typeof templ === \"string\" ? [templ] : templ);\n\tconst lastIndex = strings.length - 1;\n\tstrings[lastIndex] = (strings[lastIndex] ?? \"\").replace(/\\r?\\n([\\t ]*)$/, \"\");\n\tconst indentLengths = strings.reduce((arr, str) => {\n\t\tconst matches = str.match(/\\n([\\t ]+|(?!\\s).)/g);\n\t\tif (matches) return arr.concat(matches.map((match) => match.match(/[\\t ]/g)?.length ?? 0));\n\t\treturn arr;\n\t}, []);\n\tif (indentLengths.length) {\n\t\tconst pattern = new RegExp(`\\n[\\t ]{${Math.min(...indentLengths)}}`, \"g\");\n\t\tstrings = strings.map((str) => str.replace(pattern, \"\\n\"));\n\t}\n\tstrings[0] = (strings[0] ?? \"\").replace(/^\\r?\\n/, \"\");\n\tlet string = strings[0] ?? \"\";\n\tvalues.forEach((value, i) => {\n\t\tconst endentation = string.match(/(?:^|\\n)( *)$/)?.[1] ?? \"\";\n\t\tlet indentedValue = value;\n\t\tif (typeof value === \"string\" && value.includes(\"\\n\")) indentedValue = String(value).split(\"\\n\").map((str, j) => {\n\t\t\treturn j === 0 ? str : `${endentation}${str}`;\n\t\t}).join(\"\\n\");\n\t\tstring += String(indentedValue) + (strings[i + 1] ?? \"\");\n\t});\n\treturn string;\n}\n\n//#endregion\n//#region ../models/src/api/common.ts\nconst errorBadRequest = z.object({\n\tcode: z.literal(400),\n\terror: z.literal(\"Bad Request\"),\n\treason: z.string()\n}).describe(\"Bad Request\");\nconst errorUnauthorized = z.object({\n\tcode: z.literal(401),\n\terror: z.literal(\"Unauthorized\"),\n\treason: z.literal(\"Failed to authenticate\")\n}).describe(dedent`\n Authentication failed. Possible reasons:\n - Authorization header is not provided\n - Invalid API key\n - Session expired\n `);\nconst errorForbidden = z.object({\n\tcode: z.literal(403),\n\terror: z.literal(\"Forbidden\"),\n\treason: z.string()\n}).describe(\"Access denied. The authenticated user does not have permission to perform this action.\");\nconst errorUsageLimitExceeded = z.object({\n\tcode: z.literal(403),\n\terror: z.literal(\"Forbidden\"),\n\treason: z.string(),\n\tdetails: z.object({\n\t\tminutesUsed: z.number(),\n\t\tlimitMinutes: z.number(),\n\t\tupgradeUrl: z.string()\n\t})\n}).describe(\"Usage limit exceeded. Upgrade your plan to continue.\");\nconst errorNotFound = z.object({\n\tcode: z.literal(404),\n\terror: z.literal(\"Not Found\"),\n\treason: z.string()\n}).describe(\"Resource not found.\");\nconst errorConflict = z.object({\n\tcode: z.literal(409),\n\terror: z.literal(\"Conflict\"),\n\treason: z.string()\n}).describe(\"Request conflicts with current state of the resource.\");\nconst errorServiceUnavailable = z.object({\n\tcode: z.literal(503),\n\terror: z.literal(\"Service Unavailable\"),\n\treason: z.string()\n}).describe(\"Service temporarily unavailable. Retry with exponential backoff.\");\nconst errorValidationFailed = z.object({\n\tcode: z.literal(422),\n\terror: z.literal(\"Validation Failed\"),\n\treason: z.unknown()\n}).describe(\"Request validation failed. Check the request body, query parameters, or path parameters.\");\nconst paginationMeta = z.object({\n\ttotal: z.number().int().min(0),\n\ttake: z.number().int().min(1),\n\tskip: z.number().int().min(0)\n});\nconst errorUnauthorizedFlexible = z.object({\n\tcode: z.literal(401),\n\terror: z.literal(\"Unauthorized\"),\n\treason: z.string()\n}).describe(\"Unauthorized\");\n\n//#endregion\n//#region ../models/src/domain/application.ts\nconst applicationNameSchema = z.string().min(1).max(maxApplicationNameLength).regex(applicationNameRegex);\nconst applicationStatusSchema = z.enum([\n\t\"active\",\n\t\"inactive\",\n\t\"deleted\"\n]);\nconst applicationSchema = z.object({\n\ttype: z.literal(\"application\"),\n\tid: cuidSchema,\n\torganizationId: cuidSchema,\n\torganization: organizationSchema,\n\tcreatedAt: datetimeSchema,\n\tupdatedAt: datetimeSchema,\n\tname: applicationNameSchema,\n\tstatus: applicationStatusSchema,\n\texpertCount: z.number().describe(\"Number of expert draft scopes associated with this application\").optional(),\n\tproviders: z.array(providerSchema).describe(\"List of configured providers for this application\").optional(),\n\ttotalJobs: z.number().describe(\"Total number of jobs executed for this application\").optional(),\n\tlastJobExecutionAt: z.string().datetime({ offset: true }).nullable().describe(\"Timestamp of the most recent job execution\").optional()\n});\n\n//#endregion\n//#region ../models/src/api/applications/create.ts\nconst request$17 = { body: z.object({\n\tname: applicationNameSchema,\n\tapplicationGroupId: cuidSchema.optional()\n}) };\nconst response$17 = z.object({ data: z.object({ application: applicationSchema }) });\n\n//#endregion\n//#region ../models/src/api/applications/getAll.ts\nconst request$16 = { query: z.object({\n\tname: z.preprocess((val) => Array.isArray(val) ? val.join(\",\") : val, z.string().optional()),\n\tsort: z.enum([\n\t\t\"name\",\n\t\t\"createdAt\",\n\t\t\"updatedAt\"\n\t]).optional(),\n\torder: z.enum([\"asc\", \"desc\"]).optional(),\n\ttake: z.coerce.number().min(1).max(100).default(20),\n\tskip: z.coerce.number().min(0).default(0)\n}) };\nconst response$16 = z.object({\n\tdata: z.object({ applications: z.array(applicationSchema) }),\n\tmeta: paginationMeta\n});\n\n//#endregion\n//#region ../models/src/api/applications/update.ts\nconst request$15 = {\n\tparams: z.object({ applicationId: cuidSchema }),\n\tbody: z.object({\n\t\tname: applicationNameSchema.optional(),\n\t\tstatus: applicationStatusSchema.exclude([\"deleted\"]).optional()\n\t}).refine((data) => data.name !== void 0 || data.status !== void 0, { message: \"At least one field must be provided\" })\n};\nconst response$15 = z.object({ data: z.object({ application: applicationSchema }) });\n\n//#endregion\n//#region ../models/src/domain/secret.ts\nconst secretNameSchema = z.string().min(1, \"Secret name is required\").max(255, \"Secret name must be 255 characters or less\").regex(/^[A-Z][A-Z0-9_]*$/, \"Secret name must start with uppercase letter and contain only uppercase letters, numbers, and underscores\");\nconst secretValueSchema = z.string().min(1, \"Secret value is required\").max(maxSecretValueLength);\nconst secretMetadataSchema = z.object({\n\tname: z.string(),\n\tcreatedAt: datetimeSchema,\n\tupdatedAt: datetimeSchema\n});\nconst secretSchema = z.object({\n\ttype: z.literal(\"secret\"),\n\tid: cuidSchema,\n\tname: secretNameSchema,\n\tapplicationId: cuidSchema,\n\tcreatedAt: datetimeSchema,\n\tupdatedAt: datetimeSchema\n});\n\n//#endregion\n//#region ../models/src/api/env/secrets/create.ts\nconst request$14 = { body: z.object({\n\tapplicationId: cuidSchema,\n\tname: secretNameSchema,\n\tvalue: secretValueSchema\n}) };\nconst response$14 = z.object({ data: z.object({ secret: secretMetadataSchema }) });\n\n//#endregion\n//#region ../models/src/api/env/secrets/getAll.ts\nconst request$13 = { query: z.object({ applicationId: cuidSchema.optional() }) };\nconst response$13 = z.object({ data: z.object({ secrets: z.array(secretMetadataSchema) }) });\n\n//#endregion\n//#region ../models/src/api/env/secrets/update.ts\nconst request$12 = {\n\tparams: z.object({ name: z.string().min(1) }),\n\tbody: z.object({\n\t\tapplicationId: cuidSchema,\n\t\tvalue: secretValueSchema\n\t})\n};\nconst response$12 = z.object({ data: z.object({ secret: secretMetadataSchema }) });\n\n//#endregion\n//#region ../models/src/domain/variable.ts\nconst variableNameSchema = z.string().min(1).max(255).regex(/^[A-Z][A-Z0-9_]*$/, \"Variable name must start with uppercase letter and contain only uppercase letters, digits, and underscores\");\nconst variableValueSchema = z.string().max(maxVariableValueLength);\nconst variableSchema = z.object({\n\ttype: z.literal(\"variable\"),\n\tid: cuidSchema,\n\tapplicationId: cuidSchema,\n\tcreatedAt: datetimeSchema,\n\tupdatedAt: datetimeSchema,\n\tname: variableNameSchema,\n\tvalue: variableValueSchema\n});\nconst variableResponseSchema = z.object({\n\tname: variableNameSchema,\n\tvalue: variableValueSchema,\n\tcreatedAt: datetimeSchema,\n\tupdatedAt: datetimeSchema\n});\n\n//#endregion\n//#region ../models/src/api/env/variables/create.ts\nconst request$11 = { body: z.object({\n\tapplicationId: cuidSchema,\n\tname: variableNameSchema,\n\tvalue: variableValueSchema\n}) };\nconst response$11 = z.object({ data: z.object({ variable: variableResponseSchema }) });\n\n//#endregion\n//#region ../models/src/api/env/variables/getAll.ts\nconst request$10 = { query: z.object({ applicationId: cuidSchema }) };\nconst response$10 = z.object({ data: z.object({ variables: z.array(variableResponseSchema) }) });\n\n//#endregion\n//#region ../models/src/api/env/variables/update.ts\nconst request$9 = {\n\tparams: z.object({ name: z.string().min(1) }),\n\tbody: z.object({\n\t\tapplicationId: cuidSchema,\n\t\tvalue: variableValueSchema\n\t})\n};\nconst response$9 = z.object({ data: z.object({ variable: variableResponseSchema }) });\n\n//#endregion\n//#region ../models/src/domain/expertScope.ts\nconst expertScopeSchema = z.object({\n\tid: cuidSchema,\n\tname: scopeNameSchema,\n\torganizationId: cuidSchema,\n\texpertDraftScopeId: cuidSchema,\n\tpublished: z.boolean(),\n\tpublishedAt: datetimeSchema.nullable(),\n\tcategory: expertCategoryFieldSchema,\n\ttotalRuns: z.number().int().min(0),\n\ttotalJobs: z.number().int().min(0),\n\ttotalStars: z.number().int().min(0),\n\tcreatedAt: datetimeSchema,\n\tupdatedAt: datetimeSchema,\n\tcreatedBy: cuidSchema,\n\tupdatedBy: cuidSchema\n});\nconst expertVersionSchema = z.object({\n\tid: cuidSchema,\n\texpertScopeId: cuidSchema,\n\tversion: expertVersionFieldSchema,\n\tpublic: z.boolean(),\n\tyanked: z.boolean(),\n\ttotalRuns: z.number().int().min(0),\n\ttotalJobs: z.number().int().min(0),\n\tcreatedAt: datetimeSchema,\n\tupdatedAt: datetimeSchema,\n\tcreatedBy: cuidSchema,\n\tupdatedBy: cuidSchema,\n\ttags: z.array(expertTagFieldSchema),\n\treadmeUrl: z.string().optional()\n});\nconst expertScopeWithVersionsSchema = expertScopeSchema.extend({ versions: z.array(expertVersionSchema) });\n\n//#endregion\n//#region ../models/src/domain/skill.ts\nfunction isPrivateOrLocalIP(hostname) {\n\tif (hostname === \"localhost\" || hostname === \"127.0.0.1\" || hostname === \"::1\" || hostname === \"0.0.0.0\") return true;\n\tconst ipv4Match = hostname.match(/^(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)$/);\n\tif (ipv4Match) {\n\t\tconst a = Number(ipv4Match[1]);\n\t\tconst b = Number(ipv4Match[2]);\n\t\tif (a === 10) return true;\n\t\tif (a === 172 && b >= 16 && b <= 31) return true;\n\t\tif (a === 192 && b === 168) return true;\n\t\tif (a === 169 && b === 254) return true;\n\t\tif (a === 127) return true;\n\t}\n\tif (hostname.includes(\":\")) {\n\t\tif (hostname.startsWith(\"fe80:\") || hostname.startsWith(\"fc\") || hostname.startsWith(\"fd\")) return true;\n\t}\n\tif (hostname.startsWith(\"::ffff:\")) {\n\t\tif (isPrivateOrLocalIP(hostname.slice(7))) return true;\n\t}\n\treturn false;\n}\nconst sseEndpointSchema = z.string().max(maxSkillEndpointLength).url().refine((url) => {\n\ttry {\n\t\tconst parsed = new URL(url);\n\t\tif (parsed.protocol !== \"https:\") return false;\n\t\tif (isPrivateOrLocalIP(parsed.hostname)) return false;\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}, { message: \"Endpoint must be a public HTTPS URL\" });\nconst skillNameSchema = z.string().min(1).max(maxSkillNameLength).regex(packageWithVersionRegex);\nconst mcpStdioSkillCommandSchema = z.enum([\"npx\", \"uvx\"]);\nconst mcpStdioSkillSchema = z.object({\n\ttype: z.literal(\"mcpStdioSkill\"),\n\tname: z.string().min(1),\n\tdescription: z.string().min(1).max(maxSkillDescriptionLength),\n\trule: z.string().min(1).max(maxSkillRuleLength).optional(),\n\tpick: z.array(z.string().min(1).max(maxSkillToolNameLength)).max(maxSkillPickOmitItems).optional().default([]),\n\tomit: z.array(z.string().min(1).max(maxSkillToolNameLength)).max(maxSkillPickOmitItems).optional().default([]),\n\tcommand: mcpStdioSkillCommandSchema,\n\tpackageName: z.string().min(1).max(maxSkillNameLength).regex(packageWithVersionRegex),\n\trequiredEnv: z.array(z.string().min(1).max(maxEnvNameLength).regex(envNameRegex)).max(maxSkillRequiredEnvItems).optional().default([])\n});\nconst mcpSseSkillSchema = z.object({\n\ttype: z.literal(\"mcpSseSkill\"),\n\tname: z.string().min(1),\n\tdescription: z.string().min(1).max(maxSkillDescriptionLength),\n\trule: z.string().min(1).max(maxSkillRuleLength).optional(),\n\tpick: z.array(z.string().min(1).max(maxSkillToolNameLength)).max(maxSkillPickOmitItems).optional().default([]),\n\tomit: z.array(z.string().min(1).max(maxSkillToolNameLength)).max(maxSkillPickOmitItems).optional().default([]),\n\tendpoint: sseEndpointSchema\n});\nconst interactiveSkillSchema = z.object({\n\ttype: z.literal(\"interactiveSkill\"),\n\tname: z.string().min(1),\n\tdescription: z.string().min(1).max(maxSkillDescriptionLength),\n\trule: z.string().min(1).max(maxSkillRuleLength).optional(),\n\ttools: z.record(z.string().min(1).max(maxSkillToolNameLength).regex(urlSafeRegex), z.object({\n\t\tdescription: z.string().min(1).max(maxSkillDescriptionLength),\n\t\tinputJsonSchema: z.string().min(1).max(maxSkillInputJsonSchemaLength)\n\t}))\n});\nconst skillSchema = z.discriminatedUnion(\"type\", [\n\tmcpStdioSkillSchema,\n\tmcpSseSkillSchema,\n\tinteractiveSkillSchema\n]);\n\n//#endregion\n//#region ../models/src/domain/expert.ts\nconst expertSchema = z.object({\n\tkey: expertKeyFieldSchema,\n\tname: expertNameFieldSchema,\n\tversion: expertVersionFieldSchema,\n\tdescription: z.string().max(maxExpertDescriptionLength).optional(),\n\tinstruction: z.string().min(1).max(maxExpertInstructionLength),\n\tskills: z.record(skillNameSchema, skillSchema).optional().default({}),\n\tdelegates: z.array(expertKeyFieldSchema).min(0).max(maxExpertDelegateItems).optional().default([]),\n\ttags: z.array(expertTagFieldSchema).min(0).max(maxExpertTagItems).optional().default([]),\n\tminRuntimeVersion: runtimeVersionSchema.optional()\n});\nconst expertMetadataSchema = z.object({\n\tscope: expertScopeSchema,\n\tversion: expertVersionSchema\n});\nconst expertWithMetadataSchema = expertSchema.extend({\n\tscope: expertScopeSchema,\n\tversion: expertVersionSchema\n});\n\n//#endregion\n//#region ../models/src/api/experts/getAll.ts\nconst request$8 = { query: z.object({\n\tfilter: z.string().describe(\"Filter by scope name (partial match)\").optional(),\n\tcategory: z.enum([\n\t\t\"general\",\n\t\t\"coding\",\n\t\t\"research\",\n\t\t\"writing\",\n\t\t\"data\",\n\t\t\"automation\"\n\t]).describe(\"Filter by category\").optional(),\n\tincludeDrafts: z.coerce.boolean().default(false).describe(\"Include unpublished scopes (owner only)\").optional(),\n\ttake: z.coerce.number().min(1).max(100).default(20),\n\tskip: z.coerce.number().min(0).default(0)\n}) };\nconst response$8 = z.object({\n\tdata: z.object({ experts: z.array(expertScopeSchema.extend({ currentVersion: expertVersionSchema.nullable() })) }),\n\tmeta: paginationMeta\n});\n\n//#endregion\n//#region ../support-models/src/index.ts\nconst anthropicSupportModels = [\n\t{\n\t\tmodelId: \"claude-opus-4-5\",\n\t\tdefault: false,\n\t\tprovider: \"anthropic\",\n\t\tcontextWindow: 2e5\n\t},\n\t{\n\t\tmodelId: \"claude-opus-4-1\",\n\t\tdefault: false,\n\t\tprovider: \"anthropic\",\n\t\tcontextWindow: 2e5\n\t},\n\t{\n\t\tmodelId: \"claude-opus-4-20250514\",\n\t\tdefault: false,\n\t\tprovider: \"anthropic\",\n\t\tcontextWindow: 2e5\n\t},\n\t{\n\t\tmodelId: \"claude-sonnet-4-5\",\n\t\tdefault: true,\n\t\tprovider: \"anthropic\",\n\t\tcontextWindow: 2e5\n\t},\n\t{\n\t\tmodelId: \"claude-sonnet-4-20250514\",\n\t\tdefault: false,\n\t\tprovider: \"anthropic\",\n\t\tcontextWindow: 2e5\n\t},\n\t{\n\t\tmodelId: \"claude-3-7-sonnet-20250219\",\n\t\tdefault: false,\n\t\tprovider: \"anthropic\",\n\t\tcontextWindow: 2e5\n\t},\n\t{\n\t\tmodelId: \"claude-haiku-4-5\",\n\t\tdefault: false,\n\t\tprovider: \"anthropic\",\n\t\tcontextWindow: 2e5\n\t},\n\t{\n\t\tmodelId: \"claude-3-5-haiku-latest\",\n\t\tdefault: false,\n\t\tprovider: \"anthropic\",\n\t\tcontextWindow: 2e5\n\t}\n];\nconst googleSupportModels = [\n\t{\n\t\tmodelId: \"gemini-3-pro-preview\",\n\t\tdefault: false,\n\t\tprovider: \"google\",\n\t\tcontextWindow: 1e6\n\t},\n\t{\n\t\tmodelId: \"gemini-2.5-pro\",\n\t\tdefault: true,\n\t\tprovider: \"google\",\n\t\tcontextWindow: 1e6\n\t},\n\t{\n\t\tmodelId: \"gemini-2.5-flash\",\n\t\tdefault: false,\n\t\tprovider: \"google\",\n\t\tcontextWindow: 1e6\n\t},\n\t{\n\t\tmodelId: \"gemini-2.5-flash-lite\",\n\t\tdefault: false,\n\t\tprovider: \"google\",\n\t\tcontextWindow: 1e6\n\t}\n];\nconst openAiSupportModels = [\n\t{\n\t\tmodelId: \"gpt-5\",\n\t\tdefault: true,\n\t\tprovider: \"openai\",\n\t\tcontextWindow: 4e5\n\t},\n\t{\n\t\tmodelId: \"gpt-5-mini\",\n\t\tdefault: false,\n\t\tprovider: \"openai\",\n\t\tcontextWindow: 4e5\n\t},\n\t{\n\t\tmodelId: \"gpt-5-nano\",\n\t\tdefault: false,\n\t\tprovider: \"openai\",\n\t\tcontextWindow: 4e5\n\t},\n\t{\n\t\tmodelId: \"gpt-5-chat-latest\",\n\t\tdefault: false,\n\t\tprovider: \"openai\",\n\t\tcontextWindow: 128e3\n\t},\n\t{\n\t\tmodelId: \"o4-mini\",\n\t\tdefault: false,\n\t\tprovider: \"openai\",\n\t\tcontextWindow: 2e5\n\t},\n\t{\n\t\tmodelId: \"o3\",\n\t\tdefault: false,\n\t\tprovider: \"openai\",\n\t\tcontextWindow: 2e5\n\t},\n\t{\n\t\tmodelId: \"o3-mini\",\n\t\tdefault: false,\n\t\tprovider: \"openai\",\n\t\tcontextWindow: 2e5\n\t},\n\t{\n\t\tmodelId: \"gpt-4.1\",\n\t\tdefault: false,\n\t\tprovider: \"openai\",\n\t\tcontextWindow: 1e6\n\t}\n];\nconst deepseekSupportModels = [{\n\tmodelId: \"deepseek-chat\",\n\tdefault: true,\n\tprovider: \"deepseek\",\n\tcontextWindow: 128e3\n}, {\n\tmodelId: \"deepseek-reasoner\",\n\tdefault: false,\n\tprovider: \"deepseek\",\n\tcontextWindow: 128e3\n}];\nconst allSupportModels = [\n\t...anthropicSupportModels,\n\t...googleSupportModels,\n\t...openAiSupportModels,\n\t...deepseekSupportModels\n];\nconst supportModels = Object.fromEntries(allSupportModels.map((model) => [model.modelId, model]));\nfunction getSupportModelNames() {\n\treturn Object.keys(supportModels);\n}\n\n//#endregion\n//#region ../models/src/domain/job.ts\nconst reasoningBudgetSchema = z.union([z.enum([\n\t\"none\",\n\t\"minimal\",\n\t\"low\",\n\t\"medium\",\n\t\"high\"\n]), z.number().int().min(0)]);\nconst jobStatusSchema = z.enum([\n\t\"queued\",\n\t\"processing\",\n\t\"completed\",\n\t\"requestInteractiveToolResult\",\n\t\"requestDelegateResult\",\n\t\"exceededMaxSteps\",\n\t\"failed\",\n\t\"canceling\",\n\t\"canceled\",\n\t\"expired\"\n]);\nconst modelNames = getSupportModelNames();\nconst firstModel = modelNames[0];\nif (firstModel === void 0) throw new Error(\"No support models available\");\nconst jobModelSchema = z.enum([firstModel, ...modelNames.slice(1)]);\nconst jobBaseSchema = z.object({\n\ttype: z.literal(\"job\"),\n\tid: cuidSchema,\n\torganizationId: cuidSchema,\n\tapplicationId: cuidSchema,\n\tcreatedAt: datetimeSchema,\n\tupdatedAt: datetimeSchema,\n\tstatus: jobStatusSchema,\n\tcurrentExecutionId: cuidSchema.optional(),\n\tcoordinatorExpertKey: expertKeyFieldSchema,\n\tquery: z.string().min(1).max(maxExpertJobQueryLength).optional(),\n\texpert: expertWithMetadataSchema,\n\tprovider: providerSchema,\n\tmodel: jobModelSchema,\n\treasoningBudget: reasoningBudgetSchema,\n\truntimeVersion: runtimeVersionSchema,\n\tmaxSteps: z.number().int().min(1),\n\tmaxRetries: z.number().int().min(0),\n\tcurrentStep: z.number().int().min(0),\n\ttotalSteps: z.number().int().min(0),\n\ttotalDuration: z.number().int().min(0),\n\tusage: usageSchema,\n\tlastActivity: activityOrGroupSchema.nullable().optional()\n});\nconst publishedJobSchema = jobBaseSchema.extend({\n\texpertVersionId: cuidSchema,\n\texpertDraftRefId: z.undefined()\n});\nconst draftJobSchema = jobBaseSchema.extend({\n\texpertVersionId: z.undefined(),\n\texpertDraftRefId: cuidSchema\n});\nconst jobSchema = z.union([publishedJobSchema, draftJobSchema]);\n\n//#endregion\n//#region ../models/src/api/jobs/continue.ts\nconst request$7 = {\n\tparams: z.object({ jobId: cuidSchema }),\n\tbody: z.object({\n\t\tquery: z.string().min(1).max(maxExpertJobQueryLength),\n\t\tprovider: providerSchema.optional(),\n\t\tmodel: jobModelSchema.optional(),\n\t\treasoningBudget: reasoningBudgetSchema.optional(),\n\t\tmaxSteps: z.coerce.number().optional(),\n\t\tmaxRetries: z.coerce.number().optional()\n\t})\n};\nconst response$7 = z.object({ data: z.object({ job: jobSchema }) });\n\n//#endregion\n//#region ../models/src/api/jobs/create.ts\nconst baseBodySchema = z.object({\n\tapplicationId: cuidSchema.describe(\"Application ID to create the job in\"),\n\tquery: z.string().min(1).max(maxExpertJobQueryLength),\n\tprovider: providerSchema,\n\tmodel: jobModelSchema.optional(),\n\treasoningBudget: reasoningBudgetSchema.optional(),\n\tmaxSteps: z.coerce.number().optional(),\n\tmaxRetries: z.coerce.number().optional()\n});\nconst request$6 = { body: baseBodySchema.extend({\n\texpertKey: expertKeyFieldSchema.optional(),\n\tdraftRefId: cuidSchema.describe(\"Draft ref ID to run the job with\").optional()\n}).refine((data) => {\n\tconst hasExpertKey = data.expertKey !== void 0;\n\tconst hasDraftRefId = data.draftRefId !== void 0;\n\treturn hasExpertKey && !hasDraftRefId || !hasExpertKey && hasDraftRefId;\n}, { message: \"Either expertKey or draftRefId must be provided, but not both\" }) };\nconst response$6 = z.object({ data: z.object({ job: jobSchema }) });\n\n//#endregion\n//#region ../models/src/api/jobs/getAll.ts\nconst request$5 = { query: z.object({\n\tsort: z.enum([\"createdAt\", \"updatedAt\"]).optional(),\n\torder: z.enum([\"asc\", \"desc\"]).optional(),\n\ttake: z.coerce.number().min(1).max(100).default(20),\n\tskip: z.coerce.number().min(0).default(0),\n\texpertScopeId: cuidSchema.optional(),\n\texpertDraftScopeId: cuidSchema.optional(),\n\tapplicationId: cuidSchema.optional(),\n\tstatuses: z.preprocess((val) => typeof val === \"string\" ? val.split(\",\") : val, z.array(jobStatusSchema).optional()),\n\texpertKeyFilter: z.string().max(100).optional()\n}) };\nconst response$5 = z.object({\n\tdata: z.object({ jobs: z.array(jobSchema) }),\n\tmeta: paginationMeta\n});\n\n//#endregion\n//#region ../models/src/domain/checkpoint.ts\nconst delegationTargetSchema = z.object({\n\texpert: expertSchema,\n\ttoolCallId: z.string().min(1).max(maxCheckpointToolCallIdLength),\n\ttoolName: z.string().min(1).max(maxSkillToolNameLength),\n\tquery: z.string().min(1)\n});\n/**\n* API Checkpoint schema - extended checkpoint format for API responses.\n* Includes additional fields computed from runtime checkpoint and step data:\n* - activities: computed via getActivities() from @perstack/core\n* - inputMessages, newMessages, toolCalls, toolResults: step-related data\n* - expert: full Expert type (with instruction, skills, etc.)\n* - startedAt/finishedAt: ISO string format (runtime uses Unix timestamps)\n*/\nconst apiCheckpointSchema = z.object({\n\ttype: z.literal(\"checkpoint\"),\n\tid: cuidSchema,\n\tjobId: cuidSchema,\n\trunId: cuidSchema,\n\tactivities: z.array(activityOrGroupSchema),\n\tstepNumber: z.number().int().min(1),\n\tstatus: z.enum([\n\t\t\"init\",\n\t\t\"proceeding\",\n\t\t\"completed\",\n\t\t\"stoppedByInteractiveTool\",\n\t\t\"stoppedByDelegate\",\n\t\t\"stoppedByExceededMaxSteps\",\n\t\t\"stoppedByError\"\n\t]),\n\texpert: expertSchema,\n\tdelegateTo: z.array(delegationTargetSchema).optional(),\n\tdelegatedBy: z.object({\n\t\texpert: expertSchema,\n\t\ttoolCallId: z.string().min(1).max(maxCheckpointToolCallIdLength),\n\t\ttoolName: z.string().min(1).max(maxSkillToolNameLength),\n\t\tcheckpointId: cuidSchema,\n\t\trunId: cuidSchema\n\t}).optional(),\n\tinputMessages: z.array(z.union([\n\t\tinstructionMessageSchema,\n\t\tuserMessageSchema,\n\t\ttoolMessageSchema\n\t])).optional(),\n\tmessages: z.array(messageSchema),\n\tnewMessages: z.array(messageSchema),\n\ttoolCalls: z.array(toolCallSchema).optional(),\n\ttoolResults: z.array(toolResultSchema).optional(),\n\tpendingToolCalls: z.array(toolCallSchema).optional(),\n\tpartialToolResults: z.array(toolResultSchema).optional(),\n\tusage: usageSchema,\n\tcontextWindow: z.number().int().min(0).optional(),\n\tcontextWindowUsage: z.number().int().min(0).optional(),\n\terror: z.object({\n\t\tname: z.string().min(1),\n\t\tmessage: z.string().min(1),\n\t\tstatusCode: z.number().int().min(100).max(599).optional(),\n\t\tisRetryable: z.boolean()\n\t}).optional(),\n\tretryCount: z.number().int().min(0).optional(),\n\tstartedAt: datetimeSchema,\n\tfinishedAt: datetimeSchema.optional()\n});\n\n//#endregion\n//#region ../models/src/api/jobs/runs/checkpoints/getAll.ts\nconst request$4 = {\n\tparams: z.object({\n\t\tjobId: cuidSchema,\n\t\trunId: cuidSchema\n\t}),\n\tquery: z.object({\n\t\tfilter: z.string().min(1).max(256).optional(),\n\t\tsort: z.enum([\"createdAt\", \"updatedAt\"]).optional(),\n\t\torder: z.enum([\"asc\", \"desc\"]).optional(),\n\t\ttake: z.coerce.number().min(1).max(100).default(20),\n\t\tskip: z.coerce.number().min(0).default(0)\n\t})\n};\nconst response$4 = z.object({\n\tdata: z.object({ checkpoints: z.array(apiCheckpointSchema) }),\n\tmeta: paginationMeta\n});\n\n//#endregion\n//#region ../models/src/domain/run.ts\nconst runStatusSchema = z.enum([\n\t\"queued\",\n\t\"processing\",\n\t\"completed\",\n\t\"stoppedByInteractiveTool\",\n\t\"stoppedByDelegate\",\n\t\"stoppedByExceededMaxSteps\",\n\t\"stoppedByError\"\n]);\nconst runSchema = z.object({\n\ttype: z.literal(\"run\"),\n\tid: cuidSchema,\n\tjobId: cuidSchema,\n\texecutionId: cuidSchema.optional(),\n\tparentRunId: cuidSchema.optional(),\n\torganizationId: cuidSchema,\n\tcreatedAt: datetimeSchema,\n\tupdatedAt: datetimeSchema,\n\tstatus: runStatusSchema,\n\texpertKey: expertKeyFieldSchema,\n\texpert: expertWithMetadataSchema,\n\tstepNumber: z.number().int().min(0),\n\tusage: usageSchema\n});\n\n//#endregion\n//#region ../models/src/api/jobs/runs/getAll.ts\nconst request$3 = {\n\tparams: z.object({ jobId: cuidSchema }),\n\tquery: z.object({\n\t\tsort: z.enum([\"createdAt\", \"updatedAt\"]).optional(),\n\t\torder: z.enum([\"asc\", \"desc\"]).optional(),\n\t\ttake: z.coerce.number().min(1).max(100).default(20),\n\t\tskip: z.coerce.number().min(0).default(0)\n\t})\n};\nconst response$3 = z.object({\n\tdata: z.object({ runs: z.array(runSchema) }),\n\tmeta: paginationMeta\n});\n\n//#endregion\n//#region ../models/src/domain/providerSetting.ts\nconst baseUrlSchema = z.string().url().max(maxProviderBaseUrlLength).optional();\nconst headersSchema = z.record(z.string().min(1).max(maxProviderHeaderKeyLength), z.string().max(maxProviderHeaderValueLength)).refine((headers) => Object.keys(headers).length <= maxProviderHeadersCount, { message: `Headers must have at most ${maxProviderHeadersCount} entries` }).optional();\nconst anthropicProviderSettingsSchema = z.object({\n\tbaseUrl: baseUrlSchema,\n\theaders: headersSchema\n});\nconst googleProviderSettingsSchema = z.object({\n\tbaseUrl: baseUrlSchema,\n\theaders: headersSchema\n});\nconst openaiProviderSettingsSchema = z.object({\n\tbaseUrl: baseUrlSchema,\n\theaders: headersSchema,\n\torganization: z.string().min(1).optional(),\n\tproject: z.string().min(1).optional(),\n\tname: z.string().min(1).optional()\n});\nconst deepseekProviderSettingsSchema = z.object({\n\tbaseUrl: baseUrlSchema,\n\theaders: headersSchema\n});\nconst azureOpenaiProviderSettingsSchema = z.object({\n\tbaseUrl: baseUrlSchema,\n\theaders: headersSchema,\n\tresourceName: z.string().min(1).optional(),\n\tapiVersion: z.string().min(1).optional(),\n\tuseDeploymentBasedUrls: z.boolean().optional()\n});\nconst amazonBedrockProviderSettingsSchema = z.object({ region: z.string().min(1).optional() });\nconst googleVertexProviderSettingsSchema = z.object({\n\tbaseUrl: baseUrlSchema,\n\theaders: headersSchema,\n\tproject: z.string().min(1).optional(),\n\tlocation: z.string().min(1).optional()\n});\nconst providerSettingsSchema = z.union([\n\tanthropicProviderSettingsSchema,\n\tgoogleProviderSettingsSchema,\n\topenaiProviderSettingsSchema,\n\tdeepseekProviderSettingsSchema,\n\tazureOpenaiProviderSettingsSchema,\n\tamazonBedrockProviderSettingsSchema,\n\tgoogleVertexProviderSettingsSchema\n]);\nconst providerSettingSchema = z.object({\n\ttype: z.literal(\"providerSetting\"),\n\tid: cuidSchema,\n\tapplicationId: cuidSchema,\n\tprovider: providerSchema,\n\tsettings: providerSettingsSchema.optional(),\n\tapplication: applicationSchema,\n\tcreatedAt: datetimeSchema,\n\tupdatedAt: datetimeSchema\n});\nconst providerSettingResponseSchema = z.object({\n\ttype: z.literal(\"providerSetting\"),\n\tid: cuidSchema,\n\tprovider: providerSchema,\n\tsettings: providerSettingsSchema.optional(),\n\tcreatedAt: datetimeSchema,\n\tupdatedAt: datetimeSchema\n});\nconst providerApiKeyMetadataSchema = z.object({\n\tid: cuidSchema,\n\tname: z.string(),\n\tcreatedAt: datetimeSchema,\n\tupdatedAt: datetimeSchema,\n\tlastUsedAt: datetimeSchema.nullable(),\n\texpiresAt: datetimeSchema.nullable()\n});\n\n//#endregion\n//#region ../models/src/api/provider-settings/api-keys/create.ts\nconst request$2 = {\n\tparams: z.object({\n\t\tapplicationId: cuidSchema,\n\t\tprovider: providerSchema\n\t}),\n\tbody: z.object({\n\t\tname: z.string().min(1).max(255),\n\t\tvalue: z.string().min(1)\n\t})\n};\nconst response$2 = z.object({ data: z.object({ apiKey: providerApiKeyMetadataSchema }) });\n\n//#endregion\n//#region ../models/src/api/provider-settings/create.ts\nconst request$1 = {\n\tparams: z.object({ applicationId: cuidSchema }),\n\tbody: z.object({\n\t\tprovider: providerSchema,\n\t\tsettings: providerSettingsSchema.optional()\n\t})\n};\nconst response$1 = z.object({ data: z.object({ providerSetting: providerSettingResponseSchema }) });\n\n//#endregion\n//#region ../models/src/api/provider-settings/update.ts\nconst request = {\n\tparams: z.object({\n\t\tapplicationId: cuidSchema,\n\t\tprovider: providerSchema\n\t}),\n\tbody: z.object({ settings: providerSettingsSchema.optional() })\n};\nconst response = z.object({ data: z.object({ providerSetting: providerSettingResponseSchema }) });\n\n//#endregion\n//#region src/endpoints/jobs-runs-checkpoints.ts\nfunction createRunCheckpointsApi(fetcher, basePath) {\n\treturn {\n\t\tasync list(jobId, runId, params, options) {\n\t\t\tif (params) {\n\t\t\t\tconst result = request$4.query.safeParse(params);\n\t\t\t\tif (!result.success) return {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createValidationError(result.error)\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst queryString = buildQueryString(params);\n\t\t\treturn fetcher.get(`${basePath}/${jobId}/runs/${runId}/checkpoints${queryString}`, options);\n\t\t},\n\t\tasync get(jobId, runId, checkpointId, options) {\n\t\t\treturn fetcher.get(`${basePath}/${jobId}/runs/${runId}/checkpoints/${checkpointId}`, options);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/endpoints/jobs-runs.ts\nfunction createRunsApi(fetcher, basePath) {\n\treturn {\n\t\tasync list(jobId, params, options) {\n\t\t\tif (params) {\n\t\t\t\tconst result = request$3.query.safeParse(params);\n\t\t\t\tif (!result.success) return {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createValidationError(result.error)\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst queryString = buildQueryString(params);\n\t\t\treturn fetcher.get(`${basePath}/${jobId}/runs${queryString}`, options);\n\t\t},\n\t\tasync get(jobId, runId, options) {\n\t\t\treturn fetcher.get(`${basePath}/${jobId}/runs/${runId}`, options);\n\t\t},\n\t\tcheckpoints: createRunCheckpointsApi(fetcher, basePath)\n\t};\n}\n\n//#endregion\n//#region src/endpoints/jobs.ts\nconst BASE_PATH$5 = \"/api/v1/jobs\";\n/**\n* Error thrown when stream ends abnormally.\n*/\nvar StreamError = class extends Error {\n\tconstructor(type, jobId, message) {\n\t\tsuper(message ?? `Stream error: ${type}`);\n\t\tthis.type = type;\n\t\tthis.jobId = jobId;\n\t\tthis.name = \"StreamError\";\n\t}\n};\n/**\n* Error thrown when stream connection or reading fails.\n*/\nvar StreamConnectionError = class extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = \"StreamConnectionError\";\n\t}\n};\nfunction isErrorEventData(data) {\n\treturn typeof data === \"object\" && data !== null && \"type\" in data && typeof data.type === \"string\" && \"jobId\" in data && typeof data.jobId === \"string\";\n}\nfunction isCompleteEventData(data) {\n\treturn typeof data === \"object\" && data !== null && \"status\" in data && typeof data.status === \"string\" && \"jobId\" in data && typeof data.jobId === \"string\";\n}\nfunction createJobsApi(fetcher) {\n\treturn {\n\t\tasync list(params, options) {\n\t\t\tif (params) {\n\t\t\t\tconst result = request$5.query.safeParse(params);\n\t\t\t\tif (!result.success) return {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createValidationError(result.error)\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst queryString = buildQueryString(params);\n\t\t\treturn fetcher.get(`${BASE_PATH$5}${queryString}`, options);\n\t\t},\n\t\tasync get(id, options) {\n\t\t\treturn fetcher.get(`${BASE_PATH$5}/${id}`, options);\n\t\t},\n\t\tasync start(input, options) {\n\t\t\tconst result = request$6.body.safeParse(input);\n\t\t\tif (!result.success) return {\n\t\t\t\tok: false,\n\t\t\t\terror: createValidationError(result.error)\n\t\t\t};\n\t\t\treturn fetcher.post(BASE_PATH$5, input, options);\n\t\t},\n\t\tasync continue(id, input, options) {\n\t\t\tconst result = request$7.body.safeParse(input);\n\t\t\tif (!result.success) return {\n\t\t\t\tok: false,\n\t\t\t\terror: createValidationError(result.error)\n\t\t\t};\n\t\t\treturn fetcher.post(`${BASE_PATH$5}/${id}/continue`, input, options);\n\t\t},\n\t\tasync cancel(id, options) {\n\t\t\treturn fetcher.post(`${BASE_PATH$5}/${id}/cancel`, {}, options);\n\t\t},\n\t\tasync *stream(id, options) {\n\t\t\tconst result = await fetcher.getStream(`${BASE_PATH$5}/${id}/stream`, options);\n\t\t\tif (!result.ok) throw new StreamConnectionError(result.error.message);\n\t\t\tconst reader = result.data.getReader();\n\t\t\ttry {\n\t\t\t\tfor await (const sseEvent of parseSSEEvents(reader)) if (sseEvent.event === \"message\") yield sseEvent.data;\n\t\t\t\telse if (sseEvent.event === \"error\" && isErrorEventData(sseEvent.data)) throw new StreamError(sseEvent.data.type, sseEvent.data.jobId, sseEvent.data.message);\n\t\t\t\telse if (sseEvent.event === \"complete\" && isCompleteEventData(sseEvent.data)) return;\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof StreamError || error instanceof StreamConnectionError) throw error;\n\t\t\t\tif (error instanceof DOMException && error.name === \"AbortError\") throw error;\n\t\t\t\tthrow new StreamConnectionError(error instanceof Error ? error.message : \"Stream read error\");\n\t\t\t}\n\t\t},\n\t\truns: createRunsApi(fetcher, BASE_PATH$5)\n\t};\n}\n\n//#endregion\n//#region src/endpoints/applications.ts\nconst BASE_PATH$4 = \"/api/v1/applications\";\nfunction createApplicationsApi(fetcher) {\n\treturn {\n\t\tasync list(params, options) {\n\t\t\tif (params) {\n\t\t\t\tconst result = request$16.query.safeParse(params);\n\t\t\t\tif (!result.success) return {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createValidationError(result.error)\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst queryString = buildQueryString(params);\n\t\t\treturn fetcher.get(`${BASE_PATH$4}${queryString}`, options);\n\t\t},\n\t\tasync get(id, options) {\n\t\t\treturn fetcher.get(`${BASE_PATH$4}/${id}`, options);\n\t\t},\n\t\tasync create(input, options) {\n\t\t\tconst result = request$17.body.safeParse(input);\n\t\t\tif (!result.success) return {\n\t\t\t\tok: false,\n\t\t\t\terror: createValidationError(result.error)\n\t\t\t};\n\t\t\treturn fetcher.post(BASE_PATH$4, input, options);\n\t\t},\n\t\tasync update(id, input, options) {\n\t\t\tconst result = request$15.body.safeParse(input);\n\t\t\tif (!result.success) return {\n\t\t\t\tok: false,\n\t\t\t\terror: createValidationError(result.error)\n\t\t\t};\n\t\t\treturn fetcher.post(`${BASE_PATH$4}/${id}`, input, options);\n\t\t},\n\t\tasync delete(id, options) {\n\t\t\treturn fetcher.delete(`${BASE_PATH$4}/${id}`, options);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/endpoints/env-secrets.ts\nconst BASE_PATH$3 = \"/api/v1/env/secrets\";\nfunction createSecretsApi(fetcher) {\n\treturn {\n\t\tasync list(params, options) {\n\t\t\tif (params) {\n\t\t\t\tconst result = request$13.query.safeParse(params);\n\t\t\t\tif (!result.success) return {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createValidationError(result.error)\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst queryString = buildQueryString(params);\n\t\t\treturn fetcher.get(`${BASE_PATH$3}${queryString}`, options);\n\t\t},\n\t\tasync get(name, options) {\n\t\t\tconst encodedName = encodeURIComponent(name);\n\t\t\treturn fetcher.get(`${BASE_PATH$3}/${encodedName}`, options);\n\t\t},\n\t\tasync create(input, options) {\n\t\t\tconst result = request$14.body.safeParse(input);\n\t\t\tif (!result.success) return {\n\t\t\t\tok: false,\n\t\t\t\terror: createValidationError(result.error)\n\t\t\t};\n\t\t\treturn fetcher.post(BASE_PATH$3, input, options);\n\t\t},\n\t\tasync update(name, input, options) {\n\t\t\tconst result = request$12.body.safeParse(input);\n\t\t\tif (!result.success) return {\n\t\t\t\tok: false,\n\t\t\t\terror: createValidationError(result.error)\n\t\t\t};\n\t\t\tconst encodedName = encodeURIComponent(name);\n\t\t\treturn fetcher.put(`${BASE_PATH$3}/${encodedName}`, input, options);\n\t\t},\n\t\tasync delete(name, options) {\n\t\t\tconst encodedName = encodeURIComponent(name);\n\t\t\treturn fetcher.deleteNoContent(`${BASE_PATH$3}/${encodedName}`, options);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/endpoints/env-variables.ts\nconst BASE_PATH$2 = \"/api/v1/env/variables\";\nfunction createVariablesApi(fetcher) {\n\treturn {\n\t\tasync list(params, options) {\n\t\t\tconst result = request$10.query.safeParse(params);\n\t\t\tif (!result.success) return {\n\t\t\t\tok: false,\n\t\t\t\terror: createValidationError(result.error)\n\t\t\t};\n\t\t\tconst queryString = buildQueryString(params);\n\t\t\treturn fetcher.get(`${BASE_PATH$2}${queryString}`, options);\n\t\t},\n\t\tasync get(name, options) {\n\t\t\tconst encodedName = encodeURIComponent(name);\n\t\t\treturn fetcher.get(`${BASE_PATH$2}/${encodedName}`, options);\n\t\t},\n\t\tasync create(input, options) {\n\t\t\tconst result = request$11.body.safeParse(input);\n\t\t\tif (!result.success) return {\n\t\t\t\tok: false,\n\t\t\t\terror: createValidationError(result.error)\n\t\t\t};\n\t\t\treturn fetcher.post(BASE_PATH$2, input, options);\n\t\t},\n\t\tasync update(name, input, options) {\n\t\t\tconst result = request$9.body.safeParse(input);\n\t\t\tif (!result.success) return {\n\t\t\t\tok: false,\n\t\t\t\terror: createValidationError(result.error)\n\t\t\t};\n\t\t\tconst encodedName = encodeURIComponent(name);\n\t\t\treturn fetcher.put(`${BASE_PATH$2}/${encodedName}`, input, options);\n\t\t},\n\t\tasync delete(name, options) {\n\t\t\tconst encodedName = encodeURIComponent(name);\n\t\t\treturn fetcher.deleteNoContent(`${BASE_PATH$2}/${encodedName}`, options);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/endpoints/env.ts\nfunction createEnvApi(fetcher) {\n\treturn {\n\t\tsecrets: createSecretsApi(fetcher),\n\t\tvariables: createVariablesApi(fetcher)\n\t};\n}\n\n//#endregion\n//#region src/endpoints/experts-versions.ts\nfunction createVersionsApi(fetcher, basePath) {\n\treturn { async list(scopeName, options) {\n\t\tconst encodedScopeName = encodeURIComponent(scopeName);\n\t\treturn fetcher.get(`${basePath}/${encodedScopeName}/versions`, options);\n\t} };\n}\n\n//#endregion\n//#region src/endpoints/experts.ts\nconst BASE_PATH$1 = \"/api/v1/experts\";\nfunction createExpertsApi(fetcher) {\n\treturn {\n\t\tasync list(params, options) {\n\t\t\tif (params) {\n\t\t\t\tconst result = request$8.query.safeParse(params);\n\t\t\t\tif (!result.success) return {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: createValidationError(result.error)\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst queryString = buildQueryString(params);\n\t\t\treturn fetcher.get(`${BASE_PATH$1}${queryString}`, options);\n\t\t},\n\t\tasync get(key, options) {\n\t\t\tconst encodedKey = encodeURIComponent(key);\n\t\t\treturn fetcher.get(`${BASE_PATH$1}/${encodedKey}`, options);\n\t\t},\n\t\tasync getFeatured(options) {\n\t\t\treturn fetcher.get(`${BASE_PATH$1}/featured`, options);\n\t\t},\n\t\tasync getMeta(key, options) {\n\t\t\tconst encodedKey = encodeURIComponent(key);\n\t\t\treturn fetcher.get(`${BASE_PATH$1}/${encodedKey}/meta`, options);\n\t\t},\n\t\tasync publish(scopeName, options) {\n\t\t\tconst encodedScopeName = encodeURIComponent(scopeName);\n\t\t\treturn fetcher.post(`${BASE_PATH$1}/${encodedScopeName}/publish`, {}, options);\n\t\t},\n\t\tasync unpublish(scopeName, options) {\n\t\t\tconst encodedScopeName = encodeURIComponent(scopeName);\n\t\t\treturn fetcher.post(`${BASE_PATH$1}/${encodedScopeName}/unpublish`, {}, options);\n\t\t},\n\t\tasync yank(key, options) {\n\t\t\tconst encodedKey = encodeURIComponent(key);\n\t\t\treturn fetcher.delete(`${BASE_PATH$1}/${encodedKey}`, options);\n\t\t},\n\t\tversions: createVersionsApi(fetcher, BASE_PATH$1)\n\t};\n}\n\n//#endregion\n//#region src/endpoints/provider-settings.ts\nconst BASE_PATH = \"/api/v1/applications\";\nfunction createProviderSettingsApi(fetcher) {\n\treturn {\n\t\tasync list(applicationId, options) {\n\t\t\treturn fetcher.get(`${BASE_PATH}/${applicationId}/provider_settings`, options);\n\t\t},\n\t\tasync get(applicationId, provider, options) {\n\t\t\tconst encodedProvider = encodeURIComponent(provider);\n\t\t\treturn fetcher.get(`${BASE_PATH}/${applicationId}/provider_settings/${encodedProvider}`, options);\n\t\t},\n\t\tasync create(applicationId, input, options) {\n\t\t\tconst result = request$1.body.safeParse(input);\n\t\t\tif (!result.success) return {\n\t\t\t\tok: false,\n\t\t\t\terror: createValidationError(result.error)\n\t\t\t};\n\t\t\treturn fetcher.post(`${BASE_PATH}/${applicationId}/provider_settings`, input, options);\n\t\t},\n\t\tasync update(applicationId, provider, input, options) {\n\t\t\tconst result = request.body.safeParse(input);\n\t\t\tif (!result.success) return {\n\t\t\t\tok: false,\n\t\t\t\terror: createValidationError(result.error)\n\t\t\t};\n\t\t\tconst encodedProvider = encodeURIComponent(provider);\n\t\t\treturn fetcher.post(`${BASE_PATH}/${applicationId}/provider_settings/${encodedProvider}`, input, options);\n\t\t},\n\t\tasync delete(applicationId, provider, options) {\n\t\t\tconst encodedProvider = encodeURIComponent(provider);\n\t\t\treturn fetcher.deleteNoContent(`${BASE_PATH}/${applicationId}/provider_settings/${encodedProvider}`, options);\n\t\t},\n\t\tasync listApiKeys(applicationId, provider, options) {\n\t\t\tconst encodedProvider = encodeURIComponent(provider);\n\t\t\treturn fetcher.get(`${BASE_PATH}/${applicationId}/provider_settings/${encodedProvider}/api_keys`, options);\n\t\t},\n\t\tasync createApiKey(applicationId, provider, input, options) {\n\t\t\tconst result = request$2.body.safeParse(input);\n\t\t\tif (!result.success) return {\n\t\t\t\tok: false,\n\t\t\t\terror: createValidationError(result.error)\n\t\t\t};\n\t\t\tconst encodedProvider = encodeURIComponent(provider);\n\t\t\treturn fetcher.post(`${BASE_PATH}/${applicationId}/provider_settings/${encodedProvider}/api_keys`, input, options);\n\t\t},\n\t\tasync deleteApiKey(applicationId, provider, apiKeyId, options) {\n\t\t\tconst encodedProvider = encodeURIComponent(provider);\n\t\t\tconst encodedApiKeyId = encodeURIComponent(apiKeyId);\n\t\t\treturn fetcher.deleteNoContent(`${BASE_PATH}/${applicationId}/provider_settings/${encodedProvider}/api_keys/${encodedApiKeyId}`, options);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/public/client.ts\nfunction createApiClient(config) {\n\tconst fetcher = createFetcher(config);\n\treturn {\n\t\tapplications: createApplicationsApi(fetcher),\n\t\tenv: createEnvApi(fetcher),\n\t\tjobs: createJobsApi(fetcher),\n\t\texperts: createExpertsApi(fetcher),\n\t\tproviderSettings: createProviderSettingsApi(fetcher)\n\t};\n}\n\n//#endregion\nexport { StreamConnectionError, StreamError, buildAuthHeaders, buildQueryString, createAbortError, createApiClient, createFetcher, createHttpError, createNetworkError, createTimeoutError, createValidationError, handleHttpError, isAbortError, isClientError, isHttpError, isNetworkError, isTimeoutError, isValidationError, matchExperts, matchOperations, matchWildcard, parseApiKeyPermissions, parseSSE, parseSSEEvents, stringifyApiKeyPermissions };\n//# sourceMappingURL=index.mjs.map","import { createApiClient } from \"@perstack/api-client\"\nimport { type Expert, PerstackError, type RuntimeVersion, type Skill } from \"@perstack/core\"\n\nexport async function resolveExpertToRun(\n expertKey: string,\n experts: Record<string, Expert>,\n clientOptions: {\n perstackApiBaseUrl: string\n perstackApiKey?: string\n },\n): Promise<Expert> {\n if (experts[expertKey]) {\n return experts[expertKey]\n }\n if (!clientOptions.perstackApiKey) {\n throw new PerstackError(\n `PERSTACK_API_KEY is required to resolve published expert \"${expertKey}\"`,\n )\n }\n const client = createApiClient({\n baseUrl: clientOptions.perstackApiBaseUrl,\n apiKey: clientOptions.perstackApiKey,\n })\n const result = await client.experts.get(expertKey)\n if (!result.ok) {\n throw new PerstackError(`Failed to resolve expert \"${expertKey}\": ${result.error.message}`)\n }\n const publishedExpert = result.data.data.definition.experts[expertKey]\n if (!publishedExpert) {\n throw new PerstackError(`Expert \"${expertKey}\" not found in API response`)\n }\n return toRuntimeExpert(expertKey, publishedExpert)\n}\n\nfunction toRuntimeExpert(\n key: string,\n expert: {\n name: string\n version: string\n minRuntimeVersion?: RuntimeVersion\n description?: string\n instruction: string\n skills?: Record<\n string,\n | {\n type: \"mcpStdioSkill\"\n name: string\n description: string\n rule?: string\n pick?: string[]\n omit?: string[]\n command: \"npx\" | \"uvx\"\n packageName: string\n requiredEnv?: string[]\n }\n | {\n type: \"mcpSseSkill\"\n name: string\n description: string\n rule?: string\n pick?: string[]\n omit?: string[]\n endpoint: string\n }\n | {\n type: \"interactiveSkill\"\n name: string\n description: string\n rule?: string\n tools: Record<string, { description: string; inputJsonSchema: string }>\n }\n >\n delegates?: string[]\n tags?: string[]\n },\n): Expert {\n const skills: Record<string, Skill> = Object.fromEntries(\n Object.entries(expert.skills ?? {}).map(([name, skill]) => {\n switch (skill.type) {\n case \"mcpStdioSkill\":\n return [\n name,\n {\n type: skill.type,\n name,\n description: skill.description,\n rule: skill.rule,\n pick: skill.pick ?? [],\n omit: skill.omit ?? [],\n command: skill.command,\n packageName: skill.packageName,\n requiredEnv: skill.requiredEnv ?? [],\n },\n ]\n case \"mcpSseSkill\":\n return [\n name,\n {\n type: skill.type,\n name,\n description: skill.description,\n rule: skill.rule,\n pick: skill.pick ?? [],\n omit: skill.omit ?? [],\n endpoint: skill.endpoint,\n },\n ]\n case \"interactiveSkill\":\n return [\n name,\n {\n type: skill.type,\n name,\n description: skill.description,\n rule: skill.rule,\n tools: Object.fromEntries(\n Object.entries(skill.tools).map(([toolName, tool]) => [\n toolName,\n {\n name: toolName,\n description: tool.description,\n inputSchema: JSON.parse(tool.inputJsonSchema),\n },\n ]),\n ),\n },\n ]\n default: {\n throw new PerstackError(`Unknown skill type: ${(skill as { type: string }).type}`)\n }\n }\n }),\n )\n return {\n key,\n name: expert.name,\n version: expert.version,\n minRuntimeVersion: expert.minRuntimeVersion ?? \"v1.0\",\n description: expert.description ?? \"\",\n instruction: expert.instruction,\n skills,\n delegates: expert.delegates ?? [],\n tags: expert.tags ?? [],\n }\n}\n"],"x_google_ignoreList":[0],"mappings":"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B,oBAAoB,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC;CAClH,MAAM;CACN,CAAC;AAIF,MAAM,yBAAyB;CAC9B;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;AACD,MAAM,sBAAsB;CAC3B;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;AACD,MAAM,sBAAsB;CAC3B;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;EACC,SAAS;EACT,SAAS;EACT,UAAU;EACV,eAAe;EACf;CACD;AACD,MAAM,wBAAwB,CAAC;CAC9B,SAAS;CACT,SAAS;CACT,UAAU;CACV,eAAe;CACf,EAA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"}
|