perstack 0.0.109 → 0.0.110
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 +18 -32
- package/dist/bin/cli.js.map +1 -1
- package/dist/{dist-DmYKrkiR.js → dist-C-YhEwlg.js} +3 -3
- package/dist/{dist-DmYKrkiR.js.map → dist-C-YhEwlg.js.map} +1 -1
- package/dist/{resolve-expert-B7umXJIc.js → resolve-expert-CVjfQVXn.js} +2 -2
- package/dist/{resolve-expert-B7umXJIc.js.map → resolve-expert-CVjfQVXn.js.map} +1 -1
- package/package.json +7 -7
package/dist/bin/cli.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { a as __toCommonJS, i as __require, n as __esmMin, o as __toESM, r as __exportAll, t as __commonJSMin } from "../chunk-D_gEzPfs.js";
|
|
3
|
-
import { $ as lazy, A as runCommandInputSchema, At as PerstackError, B as resolveModelTier, C as runSettingSchema, Ct as safeParse$1, D as stopRunByDelegate, Dt as normalizeParams, E as startRun, Et as defineLazy, F as expertSchema, G as _instanceof, H as ZodIssueCode$1, I as isCoordinatorExpert, J as array$1, K as _null, L as validateDelegation, M as perstackConfigSchema, Mt as defaultPerstackApiBaseUrl, N as lockfileSchema, Nt as defaultTimeout, O as stopRunByError, Ot as $constructor, P as jobSchema, Pt as createId, Q as intersection, R as checkpointSchema, S as runParamsSchema, St as parseAsync, T as startGeneration, Tt as clone, U as ZodOptional$1, V as number$1, W as _enum, X as custom, Y as boolean, Z as discriminatedUnion, _ as parseExpertKey, _t as describe$1, a as validateEventFilter, at as optional, b as resumeFromStop, bt as $ZodType, c as createBaseToolActivity, ct as strictObject, d as completeRun, dt as union, et as literal, f as continueToNextStep, ft as unknown, g as finishToolCall, gt as toJSONSchema, h as finishMcpTools, ht as datetime, i as createFilteredEventListener, it as object$2, j as startCommandInputSchema, jt as defaultMaxRetries, k as stopRunByInteractiveTool, kt as NEVER, l as createGeneralToolActivity, lt as string, m as createStreamingEvent, mt as safeParseAsync$2, n as parseWithFriendlyError, nt as never, o as getFilteredEnv, ot as preprocess, p as createRuntimeEvent, pt as url, q as any, r as truncateText$1, rt as number, s as BASE_SKILL_PREFIX, st as record, t as createApiClient, tt as looseObject, u as callTools, ut as tuple, v as proceedToInteractiveTools, vt as meta$1, w as skipDelegates, wt as safeParseAsync$1, x as retry, xt as parse$1, y as resolveToolResults, yt as $ZodObject, z as knownModels } from "../dist-
|
|
3
|
+
import { $ as lazy, A as runCommandInputSchema, At as PerstackError, B as resolveModelTier, C as runSettingSchema, Ct as safeParse$1, D as stopRunByDelegate, Dt as normalizeParams, E as startRun, Et as defineLazy, F as expertSchema, G as _instanceof, H as ZodIssueCode$1, I as isCoordinatorExpert, J as array$1, K as _null, L as validateDelegation, M as perstackConfigSchema, Mt as defaultPerstackApiBaseUrl, N as lockfileSchema, Nt as defaultTimeout, O as stopRunByError, Ot as $constructor, P as jobSchema, Pt as createId, Q as intersection, R as checkpointSchema, S as runParamsSchema, St as parseAsync, T as startGeneration, Tt as clone, U as ZodOptional$1, V as number$1, W as _enum, X as custom, Y as boolean, Z as discriminatedUnion, _ as parseExpertKey, _t as describe$1, a as validateEventFilter, at as optional, b as resumeFromStop, bt as $ZodType, c as createBaseToolActivity, ct as strictObject, d as completeRun, dt as union, et as literal, f as continueToNextStep, ft as unknown, g as finishToolCall, gt as toJSONSchema, h as finishMcpTools, ht as datetime, i as createFilteredEventListener, it as object$2, j as startCommandInputSchema, jt as defaultMaxRetries, k as stopRunByInteractiveTool, kt as NEVER, l as createGeneralToolActivity, lt as string, m as createStreamingEvent, mt as safeParseAsync$2, n as parseWithFriendlyError, nt as never, o as getFilteredEnv, ot as preprocess, p as createRuntimeEvent, pt as url, q as any, r as truncateText$1, rt as number, s as BASE_SKILL_PREFIX, st as record, t as createApiClient, tt as looseObject, u as callTools, ut as tuple, v as proceedToInteractiveTools, vt as meta$1, w as skipDelegates, wt as safeParseAsync$1, x as retry, xt as parse$1, y as resolveToolResults, yt as $ZodObject, z as knownModels } from "../dist-C-YhEwlg.js";
|
|
4
4
|
import { t as require_token_error } from "../token-error-_b-fOBh2.js";
|
|
5
5
|
import fs, { constants, lstat, mkdir, open, readFile, stat, writeFile } from "node:fs/promises";
|
|
6
6
|
import path, { dirname, extname } from "node:path";
|
|
@@ -16302,7 +16302,7 @@ const EMPTY_COMPLETION_RESULT = { completion: {
|
|
|
16302
16302
|
//#endregion
|
|
16303
16303
|
//#region ../base/package.json
|
|
16304
16304
|
var name$5 = "@perstack/base";
|
|
16305
|
-
var version$2 = "0.0.
|
|
16305
|
+
var version$2 = "0.0.72";
|
|
16306
16306
|
|
|
16307
16307
|
//#endregion
|
|
16308
16308
|
//#region ../base/src/tools/todo.ts
|
|
@@ -21310,7 +21310,7 @@ async function expertVersionsHandler(scopeName, options) {
|
|
|
21310
21310
|
|
|
21311
21311
|
//#endregion
|
|
21312
21312
|
//#region ../../packages/runtime/package.json
|
|
21313
|
-
var version$1 = "0.0.
|
|
21313
|
+
var version$1 = "0.0.125";
|
|
21314
21314
|
|
|
21315
21315
|
//#endregion
|
|
21316
21316
|
//#region ../../packages/runtime/src/helpers/usage.ts
|
|
@@ -77271,7 +77271,7 @@ function validateRuntimeVersion(experts) {
|
|
|
77271
77271
|
//#endregion
|
|
77272
77272
|
//#region ../../packages/runtime/src/helpers/setup-experts.ts
|
|
77273
77273
|
async function setupExperts(setting, resolveExpertToRun) {
|
|
77274
|
-
const resolveFn = resolveExpertToRun ?? (await import("../resolve-expert-
|
|
77274
|
+
const resolveFn = resolveExpertToRun ?? (await import("../resolve-expert-CVjfQVXn.js")).resolveExpertToRun;
|
|
77275
77275
|
const { expertKey } = setting;
|
|
77276
77276
|
const experts = { ...setting.experts };
|
|
77277
77277
|
const clientOptions = {
|
|
@@ -90819,11 +90819,13 @@ var CoordinatorExecutor = class {
|
|
|
90819
90819
|
}
|
|
90820
90820
|
async execute(setting, checkpoint) {
|
|
90821
90821
|
const adapter = await createProviderAdapter(setting.providerConfig, { proxyUrl: setting.proxyUrl });
|
|
90822
|
-
const llmExecutor = new LLMExecutor(adapter, adapter.createModel(setting.model));
|
|
90823
|
-
const contextWindow = getContextWindow(setting.providerConfig.providerName, setting.model);
|
|
90824
90822
|
const { expertToRun, experts } = await setupExperts(setting, this.options.resolveExpertToRun);
|
|
90825
90823
|
validateRuntimeVersion(experts);
|
|
90826
|
-
|
|
90824
|
+
const resolvedModel = setting.model ?? (expertToRun.defaultModelTier ? resolveModelTier(setting.providerConfig.providerName, expertToRun.defaultModelTier) : void 0) ?? resolveModelTier(setting.providerConfig.providerName, "middle");
|
|
90825
|
+
if (!resolvedModel) throw new PerstackError(`Cannot resolve model for provider "${setting.providerConfig.providerName}". Specify a model explicitly with --model.`);
|
|
90826
|
+
const llmExecutor = new LLMExecutor(adapter, adapter.createModel(resolvedModel));
|
|
90827
|
+
const contextWindow = getContextWindow(setting.providerConfig.providerName, resolvedModel);
|
|
90828
|
+
this.emitInitEvent(setting, resolvedModel, expertToRun, experts);
|
|
90827
90829
|
const onLifecycleEvent = this.createLifecycleEventBridge(setting);
|
|
90828
90830
|
const lockfileExpert = this.options.lockfile?.experts[setting.expertKey];
|
|
90829
90831
|
const skillManager = lockfileExpert ? await SkillManager.fromLockfile(expertToRun, experts, {
|
|
@@ -90852,6 +90854,7 @@ var CoordinatorExecutor = class {
|
|
|
90852
90854
|
checkpoint: await executeStateMachine({
|
|
90853
90855
|
setting: {
|
|
90854
90856
|
...setting,
|
|
90857
|
+
model: resolvedModel,
|
|
90855
90858
|
experts
|
|
90856
90859
|
},
|
|
90857
90860
|
initialCheckpoint,
|
|
@@ -90912,13 +90915,13 @@ var CoordinatorExecutor = class {
|
|
|
90912
90915
|
}
|
|
90913
90916
|
};
|
|
90914
90917
|
}
|
|
90915
|
-
emitInitEvent(setting, expertToRun, experts) {
|
|
90918
|
+
emitInitEvent(setting, resolvedModel, expertToRun, experts) {
|
|
90916
90919
|
if (!this.options.eventListener) return;
|
|
90917
90920
|
const initEvent = createRuntimeEvent("initializeRuntime", setting.jobId, setting.runId, {
|
|
90918
90921
|
runtimeVersion: version$1,
|
|
90919
90922
|
expertName: expertToRun.name,
|
|
90920
90923
|
experts: Object.keys(experts),
|
|
90921
|
-
model:
|
|
90924
|
+
model: resolvedModel,
|
|
90922
90925
|
maxRetries: setting.maxRetries,
|
|
90923
90926
|
timeout: setting.timeout,
|
|
90924
90927
|
query: setting.input.text,
|
|
@@ -91373,7 +91376,6 @@ function getAllEventContentsForJob(jobId) {
|
|
|
91373
91376
|
//#endregion
|
|
91374
91377
|
//#region ../../packages/tui/src/lib/context.ts
|
|
91375
91378
|
const defaultProvider = "anthropic";
|
|
91376
|
-
const defaultModel = "claude-sonnet-4-5";
|
|
91377
91379
|
async function resolveRunContext(input) {
|
|
91378
91380
|
const perstackConfig = input.perstackConfig;
|
|
91379
91381
|
let checkpoint;
|
|
@@ -91386,7 +91388,7 @@ async function resolveRunContext(input) {
|
|
|
91386
91388
|
if (checkpoint && input.expertKey && checkpoint.expert.key !== input.expertKey) throw new PerstackError(`Checkpoint expert key ${checkpoint.expert.key} does not match input expert key ${input.expertKey}`);
|
|
91387
91389
|
const env = getEnv(input.envPath && input.envPath.length > 0 ? input.envPath : perstackConfig.envPath ?? [".env", ".env.local"]);
|
|
91388
91390
|
const provider = input.provider ?? perstackConfig.provider?.providerName ?? defaultProvider;
|
|
91389
|
-
const model = input.model ?? perstackConfig.model
|
|
91391
|
+
const model = input.model ?? perstackConfig.model;
|
|
91390
91392
|
const providerConfig = getProviderConfig(provider, env, perstackConfig.provider);
|
|
91391
91393
|
const experts = Object.fromEntries(Object.entries(perstackConfig.experts ?? {}).map(([name, expert]) => {
|
|
91392
91394
|
return [name, {
|
|
@@ -91460,14 +91462,6 @@ async function runHandler(expertKey, query, options, handlerOptions) {
|
|
|
91460
91462
|
resumeFrom: input.options.resumeFrom,
|
|
91461
91463
|
expertKey: input.expertKey
|
|
91462
91464
|
});
|
|
91463
|
-
let resolvedModel = model;
|
|
91464
|
-
if (!input.options.model) {
|
|
91465
|
-
const expertConfig = perstackConfig.experts?.[input.expertKey];
|
|
91466
|
-
if (expertConfig?.defaultModelTier) {
|
|
91467
|
-
const tierModel = resolveModelTier(providerConfig.providerName, expertConfig.defaultModelTier);
|
|
91468
|
-
if (tierModel) resolvedModel = tierModel;
|
|
91469
|
-
}
|
|
91470
|
-
}
|
|
91471
91465
|
if (handlerOptions?.additionalEnv) Object.assign(env, handlerOptions.additionalEnv(env));
|
|
91472
91466
|
const lockfile = handlerOptions.lockfile;
|
|
91473
91467
|
await run({
|
|
@@ -91477,7 +91471,7 @@ async function runHandler(expertKey, query, options, handlerOptions) {
|
|
|
91477
91471
|
expertKey: input.expertKey,
|
|
91478
91472
|
input: input.options.interactiveToolCallResult ? parseInteractiveToolCallResultJson(input.query) ?? (checkpoint ? parseInteractiveToolCallResult(input.query, checkpoint) : { text: input.query }) : { text: input.query },
|
|
91479
91473
|
experts,
|
|
91480
|
-
model
|
|
91474
|
+
model,
|
|
91481
91475
|
providerConfig,
|
|
91482
91476
|
reasoningBudget: input.options.reasoningBudget ?? perstackConfig.reasoningBudget,
|
|
91483
91477
|
maxRetries: input.options.maxRetries ?? perstackConfig.maxRetries,
|
|
@@ -118038,7 +118032,7 @@ const useRuntimeInfo = (options) => {
|
|
|
118038
118032
|
status: "initializing",
|
|
118039
118033
|
runtimeVersion: options.initialConfig.runtimeVersion,
|
|
118040
118034
|
expertName: options.initialExpertName,
|
|
118041
|
-
model: options.initialConfig.model,
|
|
118035
|
+
model: options.initialConfig.model ?? "",
|
|
118042
118036
|
maxRetries: options.initialConfig.maxRetries,
|
|
118043
118037
|
timeout: options.initialConfig.timeout,
|
|
118044
118038
|
activeSkills: [],
|
|
@@ -119706,14 +119700,6 @@ async function startHandler(expertKey, query, options, handlerOptions) {
|
|
|
119706
119700
|
console.error(`Checkpoint expert key ${currentCheckpoint.expert.key} does not match input expert key ${selection.expertKey}`);
|
|
119707
119701
|
return;
|
|
119708
119702
|
}
|
|
119709
|
-
let resolvedModel = model;
|
|
119710
|
-
if (!input.options.model) {
|
|
119711
|
-
const expertConfig = perstackConfig.experts?.[selection.expertKey];
|
|
119712
|
-
if (expertConfig?.defaultModelTier) {
|
|
119713
|
-
const tierModel = resolveModelTier(providerConfig.providerName, expertConfig.defaultModelTier);
|
|
119714
|
-
if (tierModel) resolvedModel = tierModel;
|
|
119715
|
-
}
|
|
119716
|
-
}
|
|
119717
119703
|
const lockfile = handlerOptions.lockfile;
|
|
119718
119704
|
let currentQuery = input.query ?? null;
|
|
119719
119705
|
let currentJobId = currentCheckpoint?.jobId ?? input.options.jobId ?? createId();
|
|
@@ -119728,7 +119714,7 @@ async function startHandler(expertKey, query, options, handlerOptions) {
|
|
|
119728
119714
|
query: currentQuery ?? void 0,
|
|
119729
119715
|
config: {
|
|
119730
119716
|
runtimeVersion,
|
|
119731
|
-
model
|
|
119717
|
+
model,
|
|
119732
119718
|
maxRetries,
|
|
119733
119719
|
timeout,
|
|
119734
119720
|
contextWindowUsage: currentCheckpoint?.contextWindowUsage ?? 0
|
|
@@ -119743,7 +119729,7 @@ async function startHandler(expertKey, query, options, handlerOptions) {
|
|
|
119743
119729
|
expertKey: selection.expertKey,
|
|
119744
119730
|
input: isNextQueryInteractiveToolResult && currentCheckpoint ? parseInteractiveToolCallResult(resolvedQuery, currentCheckpoint) : { text: resolvedQuery },
|
|
119745
119731
|
experts,
|
|
119746
|
-
model
|
|
119732
|
+
model,
|
|
119747
119733
|
providerConfig,
|
|
119748
119734
|
reasoningBudget: input.options.reasoningBudget ?? perstackConfig.reasoningBudget,
|
|
119749
119735
|
maxRetries: input.options.maxRetries ?? perstackConfig.maxRetries,
|
|
@@ -119780,7 +119766,7 @@ async function startHandler(expertKey, query, options, handlerOptions) {
|
|
|
119780
119766
|
//#endregion
|
|
119781
119767
|
//#region package.json
|
|
119782
119768
|
var name = "perstack";
|
|
119783
|
-
var version = "0.0.
|
|
119769
|
+
var version = "0.0.110";
|
|
119784
119770
|
var description = "PerStack CLI";
|
|
119785
119771
|
|
|
119786
119772
|
//#endregion
|