@perstack/runtime 0.0.87 → 0.0.88

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.
@@ -86,6 +86,7 @@ function toRuntimeExpert(key, expert) {
86
86
  key,
87
87
  name: expert.name,
88
88
  version: expert.version,
89
+ minRuntimeVersion: expert.minRuntimeVersion ?? "v1.0",
89
90
  description: expert.description ?? "",
90
91
  instruction: expert.instruction,
91
92
  skills,
@@ -95,5 +96,5 @@ function toRuntimeExpert(key, expert) {
95
96
  }
96
97
 
97
98
  export { resolveExpertToRun };
98
- //# sourceMappingURL=resolve-expert-G6O7UMYS.js.map
99
- //# sourceMappingURL=resolve-expert-G6O7UMYS.js.map
99
+ //# sourceMappingURL=resolve-expert-H4T7TFDV.js.map
100
+ //# sourceMappingURL=resolve-expert-H4T7TFDV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/helpers/resolve-expert.ts"],"names":[],"mappings":"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","file":"resolve-expert-H4T7TFDV.js","sourcesContent":["import { createApiClient } from \"@perstack/api-client\"\nimport type { Expert, RuntimeVersion, 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 Error(`PERSTACK_API_KEY is required to resolve published expert \"${expertKey}\"`)\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 Error(`Failed to resolve expert \"${expertKey}\": ${result.error.message}`)\n }\n const publishedExpert = result.data.data.definition.experts[expertKey]\n if (!publishedExpert) {\n throw new Error(`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 lazyInit: false,\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 lazyInit: false,\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 Error(`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"]}
package/dist/src/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { package_default, findLockfile, loadLockfile, run } from '../chunk-PQFJNRP3.js';
2
- export { findLockfile, getLockfileExpertToolDefinitions, getModel, loadLockfile, run, runtimeStateMachine } from '../chunk-PQFJNRP3.js';
1
+ import { package_default, findLockfile, loadLockfile, run } from '../chunk-L3CHFDPV.js';
2
+ export { findLockfile, getLockfileExpertToolDefinitions, getModel, loadLockfile, run, runtimeStateMachine } from '../chunk-L3CHFDPV.js';
3
3
  export { collectToolDefinitionsForExpert } from '../chunk-RG4QHAGG.js';
4
4
  import { registerAdapter, getFilteredEnv, checkpointSchema } from '@perstack/core';
5
5
  import { spawn } from 'child_process';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@perstack/runtime",
3
- "version": "0.0.87",
3
+ "version": "0.0.88",
4
4
  "description": "Perstack Runtime",
5
5
  "author": "Wintermute Technologies, Inc.",
6
6
  "license": "Apache-2.0",
@@ -36,8 +36,8 @@
36
36
  "ts-dedent": "^2.2.0",
37
37
  "undici": "^7.16.0",
38
38
  "xstate": "^5.25.0",
39
- "@perstack/base": "0.0.48",
40
- "@perstack/core": "0.0.39"
39
+ "@perstack/base": "0.0.49",
40
+ "@perstack/core": "0.0.40"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@tsconfig/node22": "^22.0.5",
@@ -46,16 +46,16 @@
46
46
  "tsup": "^8.5.1",
47
47
  "typescript": "^5.9.3",
48
48
  "vitest": "^4.0.16",
49
- "@perstack/adapter-base": "0.0.6",
50
- "@perstack/anthropic-provider": "0.0.9",
51
- "@perstack/azure-openai-provider": "0.0.9",
52
- "@perstack/bedrock-provider": "0.0.9",
53
- "@perstack/deepseek-provider": "0.0.9",
54
- "@perstack/google-provider": "0.0.9",
55
- "@perstack/ollama-provider": "0.0.9",
56
- "@perstack/openai-provider": "0.0.9",
57
- "@perstack/provider-core": "0.0.9",
58
- "@perstack/vertex-provider": "0.0.9"
49
+ "@perstack/anthropic-provider": "0.0.10",
50
+ "@perstack/azure-openai-provider": "0.0.10",
51
+ "@perstack/adapter-base": "0.0.7",
52
+ "@perstack/bedrock-provider": "0.0.10",
53
+ "@perstack/deepseek-provider": "0.0.10",
54
+ "@perstack/google-provider": "0.0.10",
55
+ "@perstack/ollama-provider": "0.0.10",
56
+ "@perstack/provider-core": "0.0.10",
57
+ "@perstack/openai-provider": "0.0.10",
58
+ "@perstack/vertex-provider": "0.0.10"
59
59
  },
60
60
  "engines": {
61
61
  "node": ">=22.0.0"