staklink 0.4.20 → 0.4.22
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/proxy-server.cjs +78 -10
- package/dist/staklink-cli.cjs +1 -1
- package/package.json +1 -1
package/dist/proxy-server.cjs
CHANGED
|
@@ -60927,7 +60927,7 @@ var SSEManager = class {
|
|
|
60927
60927
|
var sseManager = new SSEManager();
|
|
60928
60928
|
|
|
60929
60929
|
// src/proxy/version.ts
|
|
60930
|
-
var VERSION = "0.4.
|
|
60930
|
+
var VERSION = "0.4.22";
|
|
60931
60931
|
|
|
60932
60932
|
// node_modules/uuid/dist/esm/stringify.js
|
|
60933
60933
|
var byteToHex = [];
|
|
@@ -137626,6 +137626,9 @@ function sanitizeShellArg2(arg) {
|
|
|
137626
137626
|
}
|
|
137627
137627
|
|
|
137628
137628
|
// src/agent/goose.ts
|
|
137629
|
+
function isStreamDecodeError(output) {
|
|
137630
|
+
return output.includes("Stream decode error: error decoding response body.") && output.includes("Please retry if you think this is a transient or recoverable error.");
|
|
137631
|
+
}
|
|
137629
137632
|
var MODELS2 = {
|
|
137630
137633
|
sonnet: GooseModels["claude-sonnet-4-6"],
|
|
137631
137634
|
opus: GooseModels["claude-opus-4-6"],
|
|
@@ -137645,6 +137648,27 @@ function goose_env(apiKey, model = "sonnet") {
|
|
|
137645
137648
|
PATH: `${path7.join(os.homedir(), ".local", "bin")}:${process.env.PATH}`
|
|
137646
137649
|
};
|
|
137647
137650
|
}
|
|
137651
|
+
async function extractSessionUsage(session) {
|
|
137652
|
+
try {
|
|
137653
|
+
const safeName = session.replaceAll(" ", "_");
|
|
137654
|
+
const res = await executeCommand(
|
|
137655
|
+
`goose session export --name ${safeName} --format json`,
|
|
137656
|
+
process.cwd(),
|
|
137657
|
+
{}
|
|
137658
|
+
);
|
|
137659
|
+
const data = JSON.parse(res.stdout);
|
|
137660
|
+
if (typeof data.input_tokens === "number" && typeof data.output_tokens === "number") {
|
|
137661
|
+
return {
|
|
137662
|
+
inputTokens: data.input_tokens,
|
|
137663
|
+
outputTokens: data.output_tokens,
|
|
137664
|
+
totalTokens: data.total_tokens ?? data.input_tokens + data.output_tokens
|
|
137665
|
+
};
|
|
137666
|
+
}
|
|
137667
|
+
return void 0;
|
|
137668
|
+
} catch {
|
|
137669
|
+
return void 0;
|
|
137670
|
+
}
|
|
137671
|
+
}
|
|
137648
137672
|
async function runAgent({
|
|
137649
137673
|
prompt,
|
|
137650
137674
|
apiKey,
|
|
@@ -137679,14 +137703,38 @@ ${prompt}` : prompt;
|
|
|
137679
137703
|
} catch {
|
|
137680
137704
|
}
|
|
137681
137705
|
}
|
|
137682
|
-
|
|
137706
|
+
let res = await executeCommand(cmd, cwd, env2, (l) => console.log(l));
|
|
137707
|
+
if (session && isStreamDecodeError(res.stdout)) {
|
|
137708
|
+
const maxRetries = 2;
|
|
137709
|
+
for (let attempt = 1; attempt <= maxRetries; attempt++) {
|
|
137710
|
+
console.log(`Stream decode error detected, retrying (${attempt}/${maxRetries})...`);
|
|
137711
|
+
await new Promise((r) => setTimeout(r, 2e3 * attempt));
|
|
137712
|
+
const retryCmd = `goose run --with-builtin developer -t "continue" --system "${system}" --name ${session} --resume`;
|
|
137713
|
+
res = await executeCommand(retryCmd, cwd, env2, (l) => console.log(l));
|
|
137714
|
+
if (!isStreamDecodeError(res.stdout)) break;
|
|
137715
|
+
}
|
|
137716
|
+
}
|
|
137683
137717
|
const output = res.stdout;
|
|
137718
|
+
const resolvedModel = getGooseModel(model || "sonnet");
|
|
137719
|
+
const provider = resolvedModel.includes("/") ? resolvedModel.split("/")[0] : "unknown";
|
|
137720
|
+
const usage = session ? await extractSessionUsage(session) : void 0;
|
|
137684
137721
|
if (summarize && session) {
|
|
137685
137722
|
const sessionData = exportSession(session, "assistant");
|
|
137686
137723
|
const summary = await summarizeSession(sessionData, summaryApiKey || apiKey);
|
|
137687
|
-
return {
|
|
137724
|
+
return {
|
|
137725
|
+
output,
|
|
137726
|
+
summary,
|
|
137727
|
+
model: resolvedModel,
|
|
137728
|
+
provider,
|
|
137729
|
+
...usage && { usage }
|
|
137730
|
+
};
|
|
137688
137731
|
}
|
|
137689
|
-
return
|
|
137732
|
+
return {
|
|
137733
|
+
output,
|
|
137734
|
+
model: resolvedModel,
|
|
137735
|
+
provider,
|
|
137736
|
+
...usage && { usage }
|
|
137737
|
+
};
|
|
137690
137738
|
}
|
|
137691
137739
|
function createGooseConfig(exaApiKey, mcpServers) {
|
|
137692
137740
|
const configDir = path7.join(os.homedir(), ".config", "goose");
|
|
@@ -137804,7 +137852,18 @@ async function runAgent2({
|
|
|
137804
137852
|
cwd,
|
|
137805
137853
|
executablePath: findClaudePath()
|
|
137806
137854
|
});
|
|
137807
|
-
return
|
|
137855
|
+
return {
|
|
137856
|
+
output: res.text,
|
|
137857
|
+
model: "claude_code",
|
|
137858
|
+
provider: "anthropic",
|
|
137859
|
+
...res.usage && {
|
|
137860
|
+
usage: {
|
|
137861
|
+
inputTokens: res.usage.inputTokens,
|
|
137862
|
+
outputTokens: res.usage.outputTokens,
|
|
137863
|
+
totalTokens: res.usage.totalTokens
|
|
137864
|
+
}
|
|
137865
|
+
}
|
|
137866
|
+
};
|
|
137808
137867
|
} catch (error88) {
|
|
137809
137868
|
console.log("Model error:", error88);
|
|
137810
137869
|
throw error88;
|
|
@@ -139311,15 +139370,20 @@ async function runAgent3({
|
|
|
139311
139370
|
};
|
|
139312
139371
|
}
|
|
139313
139372
|
const model = codexCli(MODEL, settings);
|
|
139314
|
-
const { text: text3 } = await generateText({
|
|
139373
|
+
const { text: text3, usage } = await generateText({
|
|
139315
139374
|
model,
|
|
139316
139375
|
prompt,
|
|
139317
139376
|
system
|
|
139318
139377
|
});
|
|
139378
|
+
const agentUsage = {
|
|
139379
|
+
inputTokens: usage.inputTokens ?? 0,
|
|
139380
|
+
outputTokens: usage.outputTokens ?? 0,
|
|
139381
|
+
totalTokens: usage.totalTokens ?? 0
|
|
139382
|
+
};
|
|
139319
139383
|
if (summarize) {
|
|
139320
|
-
return text3;
|
|
139384
|
+
return { output: text3, model: MODEL, provider: "openai", usage: agentUsage };
|
|
139321
139385
|
}
|
|
139322
|
-
return text3;
|
|
139386
|
+
return { output: text3, model: MODEL, provider: "openai", usage: agentUsage };
|
|
139323
139387
|
}
|
|
139324
139388
|
|
|
139325
139389
|
// src/agent/repair.ts
|
|
@@ -139985,7 +140049,11 @@ var createAsyncAgentHandler = (getParams, transformResult) => {
|
|
|
139985
140049
|
const recordings = await collectRecordings(startTime);
|
|
139986
140050
|
finishReq(request_id, {
|
|
139987
140051
|
success: true,
|
|
139988
|
-
result: finalResult,
|
|
140052
|
+
result: finalResult.output ?? finalResult,
|
|
140053
|
+
...finalResult.summary && { summary: finalResult.summary },
|
|
140054
|
+
...finalResult.usage && { usage: finalResult.usage },
|
|
140055
|
+
...finalResult.model && { model: finalResult.model },
|
|
140056
|
+
...finalResult.provider && { provider: finalResult.provider },
|
|
139989
140057
|
...screenshots.length > 0 && { screenshots },
|
|
139990
140058
|
...recordings.length > 0 && { recordings }
|
|
139991
140059
|
});
|
|
@@ -142691,7 +142759,7 @@ async function startProxyServer() {
|
|
|
142691
142759
|
system: repair_exports.SYSTEM
|
|
142692
142760
|
};
|
|
142693
142761
|
},
|
|
142694
|
-
(result) => repair_exports.parseXML(result)
|
|
142762
|
+
(result) => repair_exports.parseXML(result.output)
|
|
142695
142763
|
)
|
|
142696
142764
|
);
|
|
142697
142765
|
app.post(
|
package/dist/staklink-cli.cjs
CHANGED
|
@@ -11004,7 +11004,7 @@ var glob = Object.assign(glob_, {
|
|
|
11004
11004
|
glob.glob = glob;
|
|
11005
11005
|
|
|
11006
11006
|
// src/proxy/version.ts
|
|
11007
|
-
var VERSION = "0.4.
|
|
11007
|
+
var VERSION = "0.4.22";
|
|
11008
11008
|
|
|
11009
11009
|
// src/deps.ts
|
|
11010
11010
|
var import_child_process = require("child_process");
|