perstack 0.0.114 → 0.0.116
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 +123 -40
- package/dist/bin/cli.js.map +1 -1
- package/dist/{dist-Dbqn18AZ.js → dist-ByKamhCW.js} +67 -38
- package/dist/{dist-Dbqn18AZ.js.map → dist-ByKamhCW.js.map} +1 -1
- package/dist/{resolve-expert-BZR9BBkj.js → resolve-expert-NYqP4qog.js} +4 -3
- package/dist/resolve-expert-NYqP4qog.js.map +1 -0
- package/package.json +7 -7
- package/dist/resolve-expert-BZR9BBkj.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jt as PerstackError, t as createApiClient } from "./dist-
|
|
1
|
+
import { jt as PerstackError, t as createApiClient } from "./dist-ByKamhCW.js";
|
|
2
2
|
|
|
3
3
|
//#region ../../packages/runtime/src/helpers/resolve-expert.ts
|
|
4
4
|
async function resolveExpertToRun(expertKey, experts, clientOptions) {
|
|
@@ -59,10 +59,11 @@ function toRuntimeExpert(key, expert) {
|
|
|
59
59
|
instruction: expert.instruction,
|
|
60
60
|
skills,
|
|
61
61
|
delegates: expert.delegates ?? [],
|
|
62
|
-
tags: expert.tags ?? []
|
|
62
|
+
tags: expert.tags ?? [],
|
|
63
|
+
defaultModelTier: expert.defaultModelTier
|
|
63
64
|
};
|
|
64
65
|
}
|
|
65
66
|
|
|
66
67
|
//#endregion
|
|
67
68
|
export { resolveExpertToRun };
|
|
68
|
-
//# sourceMappingURL=resolve-expert-
|
|
69
|
+
//# sourceMappingURL=resolve-expert-NYqP4qog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-expert-NYqP4qog.js","names":[],"sources":["../../../packages/runtime/src/helpers/resolve-expert.ts"],"sourcesContent":["import { createApiClient } from \"@perstack/api-client\"\nimport {\n type Expert,\n type ModelTier,\n PerstackError,\n type RuntimeVersion,\n type Skill,\n} 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 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 allExperts = result.data.data.definition.experts\n if (!allExperts[expertKey]) {\n throw new PerstackError(`Expert \"${expertKey}\" not found in API response`)\n }\n // Store all experts from the definition (coordinator + delegates)\n for (const [key, expert] of Object.entries(allExperts)) {\n if (!experts[key]) {\n experts[key] = toRuntimeExpert(key, expert)\n }\n }\n return experts[expertKey]\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 defaultModelTier?: ModelTier\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 defaultModelTier: expert.defaultModelTier,\n }\n}\n"],"mappings":";;;AASA,eAAsB,mBACpB,WACA,SACA,eAIiB;AACjB,KAAI,QAAQ,WACV,QAAO,QAAQ;CAMjB,MAAM,SAAS,MAJA,gBAAgB;EAC7B,SAAS,cAAc;EACvB,QAAQ,cAAc,kBAAkB;EACzC,CAAC,CAC0B,QAAQ,IAAI,UAAU;AAClD,KAAI,CAAC,OAAO,GACV,OAAM,IAAI,cAAc,6BAA6B,UAAU,KAAK,OAAO,MAAM,UAAU;CAE7F,MAAM,aAAa,OAAO,KAAK,KAAK,WAAW;AAC/C,KAAI,CAAC,WAAW,WACd,OAAM,IAAI,cAAc,WAAW,UAAU,6BAA6B;AAG5E,MAAK,MAAM,CAAC,KAAK,WAAW,OAAO,QAAQ,WAAW,CACpD,KAAI,CAAC,QAAQ,KACX,SAAQ,OAAO,gBAAgB,KAAK,OAAO;AAG/C,QAAO,QAAQ;;AAGjB,SAAS,gBACP,KACA,QAwCQ;CACR,MAAM,SAAgC,OAAO,YAC3C,OAAO,QAAQ,OAAO,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,WAAW;AACzD,UAAQ,MAAM,MAAd;GACE,KAAK,gBACH,QAAO,CACL,MACA;IACE,MAAM,MAAM;IACZ;IACA,aAAa,MAAM;IACnB,MAAM,MAAM;IACZ,MAAM,MAAM,QAAQ,EAAE;IACtB,MAAM,MAAM,QAAQ,EAAE;IACtB,SAAS,MAAM;IACf,aAAa,MAAM;IACnB,aAAa,MAAM,eAAe,EAAE;IACrC,CACF;GACH,KAAK,cACH,QAAO,CACL,MACA;IACE,MAAM,MAAM;IACZ;IACA,aAAa,MAAM;IACnB,MAAM,MAAM;IACZ,MAAM,MAAM,QAAQ,EAAE;IACtB,MAAM,MAAM,QAAQ,EAAE;IACtB,UAAU,MAAM;IACjB,CACF;GACH,KAAK,mBACH,QAAO,CACL,MACA;IACE,MAAM,MAAM;IACZ;IACA,aAAa,MAAM;IACnB,MAAM,MAAM;IACZ,OAAO,OAAO,YACZ,OAAO,QAAQ,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,UAAU,CACpD,UACA;KACE,MAAM;KACN,aAAa,KAAK;KAClB,aAAa,KAAK,MAAM,KAAK,gBAAgB;KAC9C,CACF,CAAC,CACH;IACF,CACF;GACH,QACE,OAAM,IAAI,cAAc,uBAAwB,MAA2B,OAAO;;GAGtF,CACH;AACD,QAAO;EACL;EACA,MAAM,OAAO;EACb,SAAS,OAAO;EAChB,mBAAmB,OAAO,qBAAqB;EAC/C,aAAa,OAAO,eAAe;EACnC,aAAa,OAAO;EACpB;EACA,WAAW,OAAO,aAAa,EAAE;EACjC,MAAM,OAAO,QAAQ,EAAE;EACvB,kBAAkB,OAAO;EAC1B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "perstack",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.116",
|
|
4
4
|
"description": "PerStack CLI",
|
|
5
5
|
"author": "Wintermute Technologies, Inc.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -18,12 +18,12 @@
|
|
|
18
18
|
"@tsconfig/node22": "^22.0.5",
|
|
19
19
|
"@types/node": "^25.3.0",
|
|
20
20
|
"typescript": "^5.9.3",
|
|
21
|
-
"@perstack/core": "0.0.
|
|
22
|
-
"@perstack/installer": "0.0.
|
|
23
|
-
"@perstack/log": "0.0.
|
|
24
|
-
"@perstack/perstack-toml": "0.0.
|
|
25
|
-
"@perstack/studio": "0.0.
|
|
26
|
-
"@perstack/tui": "0.0.
|
|
21
|
+
"@perstack/core": "0.0.64",
|
|
22
|
+
"@perstack/installer": "0.0.35",
|
|
23
|
+
"@perstack/log": "0.0.21",
|
|
24
|
+
"@perstack/perstack-toml": "0.0.21",
|
|
25
|
+
"@perstack/studio": "0.0.16",
|
|
26
|
+
"@perstack/tui": "0.0.27"
|
|
27
27
|
},
|
|
28
28
|
"engines": {
|
|
29
29
|
"bun": ">=1.2.0"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-expert-BZR9BBkj.js","names":[],"sources":["../../../packages/runtime/src/helpers/resolve-expert.ts"],"sourcesContent":["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 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 allExperts = result.data.data.definition.experts\n if (!allExperts[expertKey]) {\n throw new PerstackError(`Expert \"${expertKey}\" not found in API response`)\n }\n // Store all experts from the definition (coordinator + delegates)\n for (const [key, expert] of Object.entries(allExperts)) {\n if (!experts[key]) {\n experts[key] = toRuntimeExpert(key, expert)\n }\n }\n return experts[expertKey]\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"],"mappings":";;;AAGA,eAAsB,mBACpB,WACA,SACA,eAIiB;AACjB,KAAI,QAAQ,WACV,QAAO,QAAQ;CAMjB,MAAM,SAAS,MAJA,gBAAgB;EAC7B,SAAS,cAAc;EACvB,QAAQ,cAAc,kBAAkB;EACzC,CAAC,CAC0B,QAAQ,IAAI,UAAU;AAClD,KAAI,CAAC,OAAO,GACV,OAAM,IAAI,cAAc,6BAA6B,UAAU,KAAK,OAAO,MAAM,UAAU;CAE7F,MAAM,aAAa,OAAO,KAAK,KAAK,WAAW;AAC/C,KAAI,CAAC,WAAW,WACd,OAAM,IAAI,cAAc,WAAW,UAAU,6BAA6B;AAG5E,MAAK,MAAM,CAAC,KAAK,WAAW,OAAO,QAAQ,WAAW,CACpD,KAAI,CAAC,QAAQ,KACX,SAAQ,OAAO,gBAAgB,KAAK,OAAO;AAG/C,QAAO,QAAQ;;AAGjB,SAAS,gBACP,KACA,QAuCQ;CACR,MAAM,SAAgC,OAAO,YAC3C,OAAO,QAAQ,OAAO,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,WAAW;AACzD,UAAQ,MAAM,MAAd;GACE,KAAK,gBACH,QAAO,CACL,MACA;IACE,MAAM,MAAM;IACZ;IACA,aAAa,MAAM;IACnB,MAAM,MAAM;IACZ,MAAM,MAAM,QAAQ,EAAE;IACtB,MAAM,MAAM,QAAQ,EAAE;IACtB,SAAS,MAAM;IACf,aAAa,MAAM;IACnB,aAAa,MAAM,eAAe,EAAE;IACrC,CACF;GACH,KAAK,cACH,QAAO,CACL,MACA;IACE,MAAM,MAAM;IACZ;IACA,aAAa,MAAM;IACnB,MAAM,MAAM;IACZ,MAAM,MAAM,QAAQ,EAAE;IACtB,MAAM,MAAM,QAAQ,EAAE;IACtB,UAAU,MAAM;IACjB,CACF;GACH,KAAK,mBACH,QAAO,CACL,MACA;IACE,MAAM,MAAM;IACZ;IACA,aAAa,MAAM;IACnB,MAAM,MAAM;IACZ,OAAO,OAAO,YACZ,OAAO,QAAQ,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,UAAU,CACpD,UACA;KACE,MAAM;KACN,aAAa,KAAK;KAClB,aAAa,KAAK,MAAM,KAAK,gBAAgB;KAC9C,CACF,CAAC,CACH;IACF,CACF;GACH,QACE,OAAM,IAAI,cAAc,uBAAwB,MAA2B,OAAO;;GAGtF,CACH;AACD,QAAO;EACL;EACA,MAAM,OAAO;EACb,SAAS,OAAO;EAChB,mBAAmB,OAAO,qBAAqB;EAC/C,aAAa,OAAO,eAAe;EACnC,aAAa,OAAO;EACpB;EACA,WAAW,OAAO,aAAa,EAAE;EACjC,MAAM,OAAO,QAAQ,EAAE;EACxB"}
|