oasis_test_v2 2.2.29 → 2.2.30
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/index.js +37 -14
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -25935,11 +25935,19 @@ var init_codex = __esm({
|
|
|
25935
25935
|
active: false,
|
|
25936
25936
|
pendingInputs: /* @__PURE__ */ new Set(),
|
|
25937
25937
|
codex: createCodexNormalizeState(),
|
|
25938
|
-
// 本次 run
|
|
25939
|
-
|
|
25940
|
-
|
|
25941
|
-
//
|
|
25942
|
-
|
|
25938
|
+
// 本次 run 的用量:`thread/tokenUsage/updated` 的 `last`(见该解析函数注释)按轮次记下,
|
|
25939
|
+
// 结算时只加**本次 run 发起的轮次**(runTurnIds)。原因:`thread/resume` 之后 codex 会把线程
|
|
25940
|
+
// **上一轮**的用量通知重放一遍(本机 codex 0.154.0 实测,turnId 是上一轮的),照单全收的话
|
|
25941
|
+
// 每次续接都把上一轮的 token 再记一遍。没带 turnId 的通知(老版本)照旧直接计入。
|
|
25942
|
+
usageByTurn: [],
|
|
25943
|
+
runTurnIds: /* @__PURE__ */ new Set(),
|
|
25944
|
+
// 已经发出本次 run 的 `turn/start`:在这之前出现的 `turn/started` 不是本次的轮次。
|
|
25945
|
+
turnRequested: false,
|
|
25946
|
+
// 会话 rollout 的绝对路径:新开线程时 `thread/started` 通知会给;**续接(thread/resume)不发这条通知**,
|
|
25947
|
+
// 只能从 resume 的响应里取(同上实测)。取不到它就读不到实际模型。
|
|
25948
|
+
rolloutPath: void 0,
|
|
25949
|
+
// thread/start / thread/resume 响应里 codex 报的线程模型:rollout 读不到时的兜底。
|
|
25950
|
+
threadModel: void 0
|
|
25943
25951
|
}),
|
|
25944
25952
|
initialCommand: () => ({
|
|
25945
25953
|
jsonrpc: "2.0",
|
|
@@ -25956,12 +25964,16 @@ var init_codex = __esm({
|
|
|
25956
25964
|
const threadId = thread.thread?.id ?? thread.id;
|
|
25957
25965
|
if (typeof threadId !== "string" || !threadId) throw new Error("codex app-server returned no thread id");
|
|
25958
25966
|
state.threadId = threadId;
|
|
25967
|
+
if (typeof thread.thread?.path === "string" && thread.thread.path) state.rolloutPath ??= thread.thread.path;
|
|
25968
|
+
const responseModel = typeof thread.model === "string" && thread.model ? thread.model : typeof thread.thread?.model === "string" && thread.thread.model ? thread.thread.model : void 0;
|
|
25969
|
+
if (responseModel) state.threadModel = responseModel;
|
|
25959
25970
|
const text5 = currentJob.systemPrompt ? `${currentJob.systemPrompt}
|
|
25960
25971
|
|
|
25961
25972
|
---
|
|
25962
25973
|
|
|
25963
25974
|
${task}` : task;
|
|
25964
25975
|
state.active = true;
|
|
25976
|
+
state.turnRequested = true;
|
|
25965
25977
|
const turn = await send({
|
|
25966
25978
|
jsonrpc: "2.0",
|
|
25967
25979
|
method: "turn/start",
|
|
@@ -25974,7 +25986,10 @@ ${task}` : task;
|
|
|
25974
25986
|
}
|
|
25975
25987
|
});
|
|
25976
25988
|
const turnId = turn.turn?.id ?? turn.id;
|
|
25977
|
-
if (typeof turnId === "string" && turnId)
|
|
25989
|
+
if (typeof turnId === "string" && turnId) {
|
|
25990
|
+
state.turnId = turnId;
|
|
25991
|
+
state.runTurnIds.add(turnId);
|
|
25992
|
+
}
|
|
25978
25993
|
if (!state.turnId) throw new Error("codex app-server returned no turn id");
|
|
25979
25994
|
},
|
|
25980
25995
|
liveEvents(message, state) {
|
|
@@ -26015,16 +26030,14 @@ ${task}` : task;
|
|
|
26015
26030
|
}
|
|
26016
26031
|
if (method === "thread/tokenUsage/updated") {
|
|
26017
26032
|
const turn = parseCodexAppServerTurnUsage(params);
|
|
26018
|
-
if (turn) {
|
|
26019
|
-
addCodexBuckets(state.usage, turn);
|
|
26020
|
-
state.sawUsage = true;
|
|
26021
|
-
}
|
|
26033
|
+
if (turn) state.usageByTurn.push({ turnId: typeof params?.turnId === "string" ? params.turnId : void 0, buckets: turn });
|
|
26022
26034
|
}
|
|
26023
26035
|
if (method === "turn/started") {
|
|
26024
26036
|
const turn = params?.turn;
|
|
26025
26037
|
if (typeof turn?.id === "string") {
|
|
26026
26038
|
state.turnId = turn.id;
|
|
26027
26039
|
state.active = true;
|
|
26040
|
+
if (state.turnRequested) state.runTurnIds.add(turn.id);
|
|
26028
26041
|
}
|
|
26029
26042
|
}
|
|
26030
26043
|
if (method === "item/agentMessage/delta" || method === "item/reasoning/textDelta") {
|
|
@@ -26056,9 +26069,16 @@ ${task}` : task;
|
|
|
26056
26069
|
} catch {
|
|
26057
26070
|
}
|
|
26058
26071
|
}
|
|
26059
|
-
model ??= resolvedModel2;
|
|
26072
|
+
model ??= state.threadModel ?? resolvedModel2;
|
|
26073
|
+
const usage = { input: 0, cacheRead: 0, cacheWrite: 0, output: 0 };
|
|
26074
|
+
let sawUsage = false;
|
|
26075
|
+
for (const entry of state.usageByTurn) {
|
|
26076
|
+
if (entry.turnId !== void 0 && !state.runTurnIds.has(entry.turnId)) continue;
|
|
26077
|
+
addCodexBuckets(usage, entry.buckets);
|
|
26078
|
+
sawUsage = true;
|
|
26079
|
+
}
|
|
26060
26080
|
return {
|
|
26061
|
-
...
|
|
26081
|
+
...sawUsage ? { usage: codexUsageFromBuckets(usage) } : {},
|
|
26062
26082
|
...model ? { model } : {}
|
|
26063
26083
|
};
|
|
26064
26084
|
},
|
|
@@ -26068,7 +26088,10 @@ ${task}` : task;
|
|
|
26068
26088
|
await send({ jsonrpc: "2.0", method: "turn/interrupt", params: { threadId: state.threadId, turnId: state.turnId } });
|
|
26069
26089
|
const next = await send({ jsonrpc: "2.0", method: "turn/start", params: { threadId: state.threadId, input: [{ type: "text", text: input.text }] } });
|
|
26070
26090
|
const nextId = next.turn?.id;
|
|
26071
|
-
if (typeof nextId === "string")
|
|
26091
|
+
if (typeof nextId === "string") {
|
|
26092
|
+
state.turnId = nextId;
|
|
26093
|
+
state.runTurnIds.add(nextId);
|
|
26094
|
+
}
|
|
26072
26095
|
state.active = true;
|
|
26073
26096
|
return { accepted: true, interrupt: "unknown" };
|
|
26074
26097
|
}
|
|
@@ -273755,7 +273778,7 @@ function shimScript() {
|
|
|
273755
273778
|
}
|
|
273756
273779
|
|
|
273757
273780
|
// src/index.ts
|
|
273758
|
-
var PKG_VERSION = true ? "2.2.
|
|
273781
|
+
var PKG_VERSION = true ? "2.2.30" : "dev";
|
|
273759
273782
|
var LOCAL_BIN = localBin();
|
|
273760
273783
|
var NPM_PREFIX = npmPrefix();
|
|
273761
273784
|
var INSTANCE = DEFAULT_INSTANCE;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oasis_test_v2",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.30",
|
|
4
4
|
"description": "Oasis node daemon + CLI — background daemon, auto-start, full server CLI",
|
|
5
5
|
"bin": {
|
|
6
6
|
"oasis": "./dist/index.js"
|
|
@@ -26,6 +26,6 @@
|
|
|
26
26
|
"node": ">=20"
|
|
27
27
|
},
|
|
28
28
|
"oasisRelease": {
|
|
29
|
-
"sourceHead": "
|
|
29
|
+
"sourceHead": "013d645f571ea8a12f1a119c0dae1cc1f4c3caac"
|
|
30
30
|
}
|
|
31
31
|
}
|