oasis_test_v2 2.2.47 → 2.2.48
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 +131 -43
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -5952,6 +5952,9 @@ var init_protocol_session = __esm({
|
|
|
5952
5952
|
function codexNum(v2) {
|
|
5953
5953
|
return typeof v2 === "number" && Number.isFinite(v2) ? v2 : 0;
|
|
5954
5954
|
}
|
|
5955
|
+
function codexOutputTokens(output, reasoning) {
|
|
5956
|
+
return Math.max(codexNum(output), codexNum(reasoning));
|
|
5957
|
+
}
|
|
5955
5958
|
function parseCodexAppServerTurnUsage(params) {
|
|
5956
5959
|
const p2 = params;
|
|
5957
5960
|
const last = p2?.tokenUsage?.last;
|
|
@@ -5960,7 +5963,7 @@ function parseCodexAppServerTurnUsage(params) {
|
|
|
5960
5963
|
input: codexNum(last["inputTokens"]),
|
|
5961
5964
|
cacheRead: codexNum(last["cachedInputTokens"]),
|
|
5962
5965
|
cacheWrite: codexNum(last["cacheWriteInputTokens"]),
|
|
5963
|
-
output:
|
|
5966
|
+
output: codexOutputTokens(last["outputTokens"], last["reasoningOutputTokens"])
|
|
5964
5967
|
};
|
|
5965
5968
|
}
|
|
5966
5969
|
function addCodexBuckets(acc, add) {
|
|
@@ -5992,8 +5995,8 @@ function bucketsOf(usage) {
|
|
|
5992
5995
|
// cache 字段名跨版本有两种
|
|
5993
5996
|
cacheRead: codexNum(usage["cached_input_tokens"]) || codexNum(usage["cache_read_input_tokens"]),
|
|
5994
5997
|
cacheWrite: codexNum(usage["cache_write_input_tokens"]),
|
|
5995
|
-
//
|
|
5996
|
-
output:
|
|
5998
|
+
// output_tokens 已含 reasoning,见 codexOutputTokens。
|
|
5999
|
+
output: codexOutputTokens(usage["output_tokens"], usage["reasoning_output_tokens"])
|
|
5997
6000
|
};
|
|
5998
6001
|
}
|
|
5999
6002
|
function usageFromBuckets(b2) {
|
|
@@ -10505,6 +10508,11 @@ var init_chat_item_ledger = __esm({
|
|
|
10505
10508
|
const ord = this.rows.get(itemId)?.ord;
|
|
10506
10509
|
return ord === null ? void 0 : ord;
|
|
10507
10510
|
}
|
|
10511
|
+
/** 展示时间与持久行同源;不以浏览器收到帧的时间代替。 */
|
|
10512
|
+
timestampsFor(itemId) {
|
|
10513
|
+
const row = this.rows.get(itemId);
|
|
10514
|
+
return row ? { createdAt: row.createdAt, completedAt: row.completedAt } : void 0;
|
|
10515
|
+
}
|
|
10508
10516
|
get failures() {
|
|
10509
10517
|
return this.failureCount;
|
|
10510
10518
|
}
|
|
@@ -10708,6 +10716,8 @@ var init_chat_item_ledger = __esm({
|
|
|
10708
10716
|
if (this.rows.has(row.id)) continue;
|
|
10709
10717
|
const { text: text6, attrs } = restoredTextAndAttrs(row);
|
|
10710
10718
|
const item = {
|
|
10719
|
+
createdAt: row.createdAt,
|
|
10720
|
+
completedAt: row.completedAt,
|
|
10711
10721
|
id: row.id,
|
|
10712
10722
|
seq: ++this.seqCounter,
|
|
10713
10723
|
ord: row.ord,
|
|
@@ -10962,7 +10972,10 @@ var init_chat_item_ledger = __esm({
|
|
|
10962
10972
|
const id = input.deterministicId ?? this.newId();
|
|
10963
10973
|
const startedVersion = this.tick();
|
|
10964
10974
|
const writeVersion = this.tick();
|
|
10975
|
+
const createdAt = this.now();
|
|
10965
10976
|
const row = {
|
|
10977
|
+
createdAt,
|
|
10978
|
+
completedAt: null,
|
|
10966
10979
|
id,
|
|
10967
10980
|
seq: ++this.seqCounter,
|
|
10968
10981
|
ord: null,
|
|
@@ -10986,7 +10999,6 @@ var init_chat_item_ledger = __esm({
|
|
|
10986
10999
|
if (!input.forceNullMessage) this.segmentItemCount += 1;
|
|
10987
11000
|
if (!input.persist || !this.persistEnabled) return id;
|
|
10988
11001
|
const messageId = row.messageId;
|
|
10989
|
-
const createdAt = this.now();
|
|
10990
11002
|
const payload2 = input.payload ?? this.payloadOf(row);
|
|
10991
11003
|
const metadata = input.metadata ?? { [CHAT_ITEM_META_LEGACY_CONTENT]: input.inContent };
|
|
10992
11004
|
this.enqueue(async () => {
|
|
@@ -11054,9 +11066,11 @@ var init_chat_item_ledger = __esm({
|
|
|
11054
11066
|
persist(row, op, what) {
|
|
11055
11067
|
const version2 = this.tick();
|
|
11056
11068
|
row.wireVersion = version2;
|
|
11069
|
+
const at = this.now();
|
|
11070
|
+
if (op.op === "set_status" && op.status !== "streaming") row.completedAt = at;
|
|
11057
11071
|
if (!row.persist || !this.persistEnabled) return;
|
|
11058
11072
|
this.enqueue(async () => {
|
|
11059
|
-
await this.deps.items.applyOp(row.id, op, { at
|
|
11073
|
+
await this.deps.items.applyOp(row.id, op, { at, version: version2 });
|
|
11060
11074
|
}, what);
|
|
11061
11075
|
}
|
|
11062
11076
|
/** 串行链 + 失败吞掉计数。**串行是必须的**:append_text 依赖建行已经落地。 */
|
|
@@ -121002,11 +121016,11 @@ var require_lib2 = __commonJS({
|
|
|
121002
121016
|
var DEFAULT_INITIAL = "Thinking...";
|
|
121003
121017
|
var DEFAULT_EMPTY = "(no content)";
|
|
121004
121018
|
var INITIAL_SUMMARY = "[Generating...]";
|
|
121005
|
-
var
|
|
121019
|
+
var SUMMARY_MAX_CHARS2 = 50;
|
|
121006
121020
|
var ERROR_FOOTER = "\n\n\u2014 _(Generation interrupted)_";
|
|
121007
121021
|
var DEFAULT_MAX_ELEMENT_CHARS = 3e4;
|
|
121008
121022
|
var ELEMENT_ID = "stream_md";
|
|
121009
|
-
function truncateSummary(text6, max =
|
|
121023
|
+
function truncateSummary(text6, max = SUMMARY_MAX_CHARS2) {
|
|
121010
121024
|
if (!text6)
|
|
121011
121025
|
return "";
|
|
121012
121026
|
const cleaned = text6.replace(/\s+/g, " ").trim();
|
|
@@ -162579,8 +162593,12 @@ var init_live_chat = __esm({
|
|
|
162579
162593
|
payload: item.payload
|
|
162580
162594
|
});
|
|
162581
162595
|
}
|
|
162582
|
-
assignV3Seq(turn, frame) {
|
|
162583
|
-
|
|
162596
|
+
assignV3Seq(turn, frame, times = turn.items?.timestampsFor(frame.itemId)) {
|
|
162597
|
+
const payload2 = times ? {
|
|
162598
|
+
...frame.payload && typeof frame.payload === "object" && !Array.isArray(frame.payload) ? frame.payload : {},
|
|
162599
|
+
...times
|
|
162600
|
+
} : frame.payload;
|
|
162601
|
+
return { ...frame, ...payload2 !== void 0 ? { payload: payload2 } : {}, epoch: turn.liveEpoch, seq: ++turn.v3Seq };
|
|
162584
162602
|
}
|
|
162585
162603
|
/**
|
|
162586
162604
|
* v3 帧的**唯一**发布出口:按 24ms 窗口合并同一 item 上相邻的 `append_text`,其余一律是顺序屏障。
|
|
@@ -162733,7 +162751,7 @@ var init_live_chat = __esm({
|
|
|
162733
162751
|
operation: item.status === "completed" ? "completed" : "failed",
|
|
162734
162752
|
itemVersion: item.version,
|
|
162735
162753
|
...item.ord !== null ? { ord: item.ord } : {}
|
|
162736
|
-
}));
|
|
162754
|
+
}, { createdAt: item.createdAt, completedAt: item.completedAt }));
|
|
162737
162755
|
return true;
|
|
162738
162756
|
}
|
|
162739
162757
|
emitV3TurnTerminal(turn, status) {
|
|
@@ -200837,7 +200855,34 @@ function registerDelegatedChildTurn(liveChat, childSessionId, session, deps = {}
|
|
|
200837
200855
|
} catch {
|
|
200838
200856
|
}
|
|
200839
200857
|
});
|
|
200840
|
-
const
|
|
200858
|
+
const recordFailure = (err) => {
|
|
200859
|
+
const chatExit = err instanceof Error ? err.chatExit : void 0;
|
|
200860
|
+
const text6 = chatExit?.summary ?? (err instanceof Error ? err.message : String(err));
|
|
200861
|
+
const extra = {
|
|
200862
|
+
...chatExit?.reason ? { reason: chatExit.reason } : {},
|
|
200863
|
+
...chatExit?.detail ? { detail: chatExit.detail } : {}
|
|
200864
|
+
};
|
|
200865
|
+
try {
|
|
200866
|
+
ctrl.emit({ type: "error", text: text6, ...extra });
|
|
200867
|
+
} catch {
|
|
200868
|
+
}
|
|
200869
|
+
try {
|
|
200870
|
+
const outcome = ledger.recordError(text6, extra);
|
|
200871
|
+
ctrl.publishServerItem({
|
|
200872
|
+
itemId: outcome.itemId,
|
|
200873
|
+
itemType: "control",
|
|
200874
|
+
startedVersion: outcome.startedVersion,
|
|
200875
|
+
version: outcome.version,
|
|
200876
|
+
ord: outcome.ord,
|
|
200877
|
+
status: "failed",
|
|
200878
|
+
payload: { code: "error", note: text6, ...extra }
|
|
200879
|
+
});
|
|
200880
|
+
} catch (e) {
|
|
200881
|
+
log3(`[delegation] \u5B50\u4F1A\u8BDD ${childSessionId} \u5931\u8D25\u539F\u56E0\u843D\u8D26\u5931\u8D25: ${String(e)}`);
|
|
200882
|
+
}
|
|
200883
|
+
};
|
|
200884
|
+
const settle = async (signal, err) => {
|
|
200885
|
+
if (signal === "failed") recordFailure(err);
|
|
200841
200886
|
try {
|
|
200842
200887
|
normalized4?.finishTurn(signal);
|
|
200843
200888
|
} catch {
|
|
@@ -200845,12 +200890,12 @@ function registerDelegatedChildTurn(liveChat, childSessionId, session, deps = {}
|
|
|
200845
200890
|
try {
|
|
200846
200891
|
ledger.finish(signal);
|
|
200847
200892
|
await ledger.drain();
|
|
200848
|
-
} catch (
|
|
200849
|
-
log3(`[delegation] \u5B50\u4F1A\u8BDD ${childSessionId} \u8D26\u672C\u6536\u5C3E\u5931\u8D25: ${String(
|
|
200893
|
+
} catch (err2) {
|
|
200894
|
+
log3(`[delegation] \u5B50\u4F1A\u8BDD ${childSessionId} \u8D26\u672C\u6536\u5C3E\u5931\u8D25: ${String(err2)}`);
|
|
200850
200895
|
}
|
|
200851
200896
|
ctrl.finish(signal === "completed" ? "done" : "error");
|
|
200852
200897
|
};
|
|
200853
|
-
void session.done.then(() => settle("completed"), () => settle("failed"));
|
|
200898
|
+
void session.done.then(() => settle("completed"), (err) => settle("failed", err));
|
|
200854
200899
|
}
|
|
200855
200900
|
var init_child_live_turn = __esm({
|
|
200856
200901
|
"../server/src/domains/delegations/child-live-turn.ts"() {
|
|
@@ -239394,6 +239439,25 @@ var init_escalation_opening = __esm({
|
|
|
239394
239439
|
}
|
|
239395
239440
|
});
|
|
239396
239441
|
|
|
239442
|
+
// ../server/src/domains/delegations/reply-anchors.ts
|
|
239443
|
+
function delegationReplyAnchors(record8) {
|
|
239444
|
+
const bySequence = /* @__PURE__ */ new Map();
|
|
239445
|
+
for (const summary of record8.roundSummaries) {
|
|
239446
|
+
const sequence = summary.settledSeq;
|
|
239447
|
+
if (typeof sequence !== "number" || !Number.isSafeInteger(sequence) || sequence < 1 || !Number.isSafeInteger(summary.round) || summary.round < 1) continue;
|
|
239448
|
+
const ids2 = bySequence.get(sequence) ?? /* @__PURE__ */ new Set();
|
|
239449
|
+
ids2.add(childRoundMessageIds(record8.childSessionId, summary.round).placeholderId);
|
|
239450
|
+
bySequence.set(sequence, ids2);
|
|
239451
|
+
}
|
|
239452
|
+
return [...bySequence].flatMap(([settledSeq, ids2]) => ids2.size === 1 ? [{ settledSeq, childMessageId: [...ids2][0] }] : []);
|
|
239453
|
+
}
|
|
239454
|
+
var init_reply_anchors = __esm({
|
|
239455
|
+
"../server/src/domains/delegations/reply-anchors.ts"() {
|
|
239456
|
+
"use strict";
|
|
239457
|
+
init_service3();
|
|
239458
|
+
}
|
|
239459
|
+
});
|
|
239460
|
+
|
|
239397
239461
|
// ../server/src/domains/chat-sessions/project-bundle.ts
|
|
239398
239462
|
async function buildChatProjectBundle(projectId2, projects, readBlob) {
|
|
239399
239463
|
const project = await projects.getProject(projectId2);
|
|
@@ -239493,7 +239557,11 @@ function mapChatItemToSnapshotEntry(row) {
|
|
|
239493
239557
|
ord: row.ord,
|
|
239494
239558
|
messageId: row.messageId,
|
|
239495
239559
|
updatedAt: row.updatedAt,
|
|
239496
|
-
payload:
|
|
239560
|
+
payload: {
|
|
239561
|
+
...row.payload && typeof row.payload === "object" && !Array.isArray(row.payload) ? row.payload : {},
|
|
239562
|
+
createdAt: row.createdAt,
|
|
239563
|
+
completedAt: row.completedAt
|
|
239564
|
+
}
|
|
239497
239565
|
};
|
|
239498
239566
|
}
|
|
239499
239567
|
function throwWorkdirError(code2) {
|
|
@@ -240015,6 +240083,7 @@ function createChatSessionsDomain(opts) {
|
|
|
240015
240083
|
/* 与协调者读口**同一个函数**——两侧 artifacts 有「逐字同源」的既有断言。它顺带给每份产物
|
|
240016
240084
|
填上 `childMessageId`(子会话面板把产出卡挂到产出它的那一轮下面要用)。 */
|
|
240017
240085
|
artifacts: delegationArtifactsView(record8),
|
|
240086
|
+
replyAnchors: delegationReplyAnchors(record8),
|
|
240018
240087
|
createdAt: record8.createdAt,
|
|
240019
240088
|
...record8.settledAt ? { settledAt: record8.settledAt } : {}
|
|
240020
240089
|
});
|
|
@@ -240402,6 +240471,7 @@ var init_chat_sessions2 = __esm({
|
|
|
240402
240471
|
init_workorders();
|
|
240403
240472
|
init_chat_parts();
|
|
240404
240473
|
init_service3();
|
|
240474
|
+
init_reply_anchors();
|
|
240405
240475
|
init_injected_context();
|
|
240406
240476
|
init_deletion();
|
|
240407
240477
|
init_chat_turn_gate();
|
|
@@ -263800,6 +263870,16 @@ function pickDecisionContent(d) {
|
|
|
263800
263870
|
|
|
263801
263871
|
// ../server/src/domains/discussions/context.ts
|
|
263802
263872
|
init_project_bundle();
|
|
263873
|
+
var decisionLabels = {
|
|
263874
|
+
proposed: "\u63D0\u8BAE\u4E2D",
|
|
263875
|
+
accepted: "\u5DF2\u786E\u8BA4",
|
|
263876
|
+
rejected: "\u5DF2\u5426\u51B3",
|
|
263877
|
+
superseded: "\u5DF2\u88AB\u66FF\u4EE3",
|
|
263878
|
+
withdrawn: "\u5DF2\u64A4\u9500"
|
|
263879
|
+
};
|
|
263880
|
+
function listField(label, items) {
|
|
263881
|
+
return items.length > 1 ? [`- ${label}\uFF1A`, ...items.map((item) => ` - ${item}`)] : [`- ${label}\uFF1A${items[0] ?? "\u65E0"}`];
|
|
263882
|
+
}
|
|
263803
263883
|
function renderDiscussionContext(input) {
|
|
263804
263884
|
const lines = [
|
|
263805
263885
|
"# \u5F53\u524D\u4F1A\u8BDD\u4E0A\u4E0B\u6587",
|
|
@@ -263820,44 +263900,37 @@ function renderDiscussionContext(input) {
|
|
|
263820
263900
|
if (!input.discussions.length) lines.push("\u5F53\u524D\u6682\u65E0\u5386\u53F2\u8BA8\u8BBA\u8BB0\u5F55\u3002", "");
|
|
263821
263901
|
for (const row of input.discussions) {
|
|
263822
263902
|
const d = row.value.record;
|
|
263903
|
+
const topicNames = d.topics.map((t) => input.topics.find((topic) => topic.value.projectId === d.project_id && topic.value.topicId === t.topic_id)?.value.title ?? "\u8BAE\u9898\u540D\u79F0\u7F3A\u5931");
|
|
263823
263904
|
lines.push(
|
|
263824
|
-
`### ${d.
|
|
263825
|
-
|
|
263826
|
-
`- \
|
|
263827
|
-
`- \
|
|
263828
|
-
`- \u6700\u540E\u8986\u76D6\u7684\u5BF9\u8BDD\u65F6\u95F4\uFF1A${row.value.discussedAt}`,
|
|
263829
|
-
`- \u6D88\u606F\u622A\u6B62\u70B9\uFF1A${d.source_cutoff}`,
|
|
263905
|
+
`### ${d.title}`,
|
|
263906
|
+
"",
|
|
263907
|
+
...!input.projectId ? [`- \u9879\u76EE\u5F52\u5C5E\uFF1A${d.project_id ?? "\u975E\u9879\u76EE\u8BA8\u8BBA"}`] : [],
|
|
263908
|
+
`- \u8BA8\u8BBA\u65E5\u671F\uFF1A${row.value.discussedAt.slice(0, 10)}`,
|
|
263830
263909
|
`- \u6458\u8981\uFF1A${d.summary}`,
|
|
263831
|
-
|
|
263832
|
-
...
|
|
263833
|
-
"
|
|
263834
|
-
...d.open_questions.map((q2) => ` - ${q2}`),
|
|
263835
|
-
"- \u4E0B\u4E00\u6B65\uFF1A",
|
|
263836
|
-
...d.next_steps.map((n) => ` - ${n}`),
|
|
263910
|
+
`- \u6D89\u53CA\u8BAE\u9898\uFF1A${topicNames.join("\u3001") || "\u65E0"}`,
|
|
263911
|
+
...listField("\u672A\u51B3\u95EE\u9898", d.open_questions),
|
|
263912
|
+
...listField("\u4E0B\u4E00\u6B65", d.next_steps),
|
|
263837
263913
|
""
|
|
263838
263914
|
);
|
|
263839
263915
|
}
|
|
263840
263916
|
if (input.projectId) {
|
|
263841
|
-
lines.push("## \u9879\u76EE\u8BAE\u9898\u4E0E\u51B3\u7B56", "", "\u4EC5
|
|
263917
|
+
lines.push("## \u9879\u76EE\u8BAE\u9898\u4E0E\u51B3\u7B56", "", "\u4EC5\u201C\u5DF2\u786E\u8BA4\u201D\u8868\u793A\u5DF2\u786E\u8BA4\u65B9\u6848\uFF1B\u201C\u63D0\u8BAE\u4E2D\u201D\u5C1A\u672A\u786E\u8BA4\uFF1B\u201C\u5DF2\u5426\u51B3\u201D\u201C\u5DF2\u64A4\u9500\u201D\u201C\u5DF2\u88AB\u66FF\u4EE3\u201D\u4E3A\u5931\u6548\u6216\u5386\u53F2\u65B9\u6848\u3002", "");
|
|
263842
263918
|
if (!input.topics.length) lines.push("\u5F53\u524D\u6682\u65E0\u9879\u76EE\u8BAE\u9898\u4E0E\u51B3\u7B56\u3002", "");
|
|
263843
263919
|
for (const t of input.topics) {
|
|
263844
|
-
lines.push(`###
|
|
263920
|
+
lines.push(`### \u8BAE\u9898\uFF1A${t.value.title}`, "");
|
|
263845
263921
|
const decisions = input.decisions.filter((d) => d.value.topicId === t.value.topicId);
|
|
263846
263922
|
if (!decisions.length) lines.push("\u6682\u65E0\u51B3\u7B56\u3002", "");
|
|
263847
|
-
for (const d of decisions) {
|
|
263923
|
+
for (const [index2, d] of decisions.entries()) {
|
|
263848
263924
|
const r = d.value.record;
|
|
263849
263925
|
lines.push(
|
|
263850
|
-
`#### ${
|
|
263851
|
-
|
|
263852
|
-
`- \
|
|
263853
|
-
`- \u539F\u56E0\uFF1A${r.rationale}`,
|
|
263926
|
+
`#### \u51B3\u7B56 ${index2 + 1}\uFF1A${r.statement}`,
|
|
263927
|
+
"",
|
|
263928
|
+
`- \u72B6\u6001\uFF1A${decisionLabels[r.state]}`,
|
|
263929
|
+
`- \u539F\u56E0\uFF1A${r.rationale || "\u672A\u8BF4\u660E"}`,
|
|
263854
263930
|
`- \u786E\u8BA4\u4EBA\uFF1A${r.confirmer ?? "\u672A\u786E\u8BA4"}`,
|
|
263855
|
-
"
|
|
263856
|
-
...r.
|
|
263857
|
-
|
|
263858
|
-
...r.source_refs.map((s2) => ` - ${s2.session_id} / ${s2.message_id}\uFF1A${JSON.stringify(s2.content)}`),
|
|
263859
|
-
`- \u66FF\u4EE3\u5173\u7CFB\uFF1A${r.supersedes.join("\u3001") || "\u65E0"}`,
|
|
263860
|
-
`- \u6700\u8FD1\u66F4\u65B0\u65F6\u95F4\uFF1A${r.updated_at}`,
|
|
263931
|
+
...listField("\u5907\u9009\u65B9\u6848", r.alternatives.map((a) => `${a.statement}\uFF0C${a.reason || "\u672A\u8BF4\u660E\u539F\u56E0"}`)),
|
|
263932
|
+
...r.supersedes.length ? listField("\u66FF\u4EE3\u51B3\u7B56", r.supersedes.map((id) => input.decisions.find((other) => other.value.decisionId === id)?.value.record.statement ?? "\u672A\u627E\u5230\u5BF9\u5E94\u51B3\u7B56")) : [],
|
|
263933
|
+
`- \u66F4\u65B0\u65F6\u95F4\uFF1A${r.updated_at.slice(0, 10)}`,
|
|
263861
263934
|
""
|
|
263862
263935
|
);
|
|
263863
263936
|
}
|
|
@@ -263890,7 +263963,12 @@ var DiscussionContext = class {
|
|
|
263890
263963
|
let discussions = (await tx.list("discussion")).filter((r) => r.value.userId === session.humanActorId);
|
|
263891
263964
|
discussions.sort((a, b2) => Date.parse(a.value.discussedAt) - Date.parse(b2.value.discussedAt) || a.id.localeCompare(b2.id));
|
|
263892
263965
|
discussions = projectId2 ? discussions.filter((r) => r.value.record.project_id === projectId2) : discussions.slice(-10);
|
|
263893
|
-
const
|
|
263966
|
+
const discussionProjects = new Set(discussions.map((d) => d.value.record.project_id));
|
|
263967
|
+
const view = projectId2 ? await this.service.view(projectId2, tx) : {
|
|
263968
|
+
// Resolve names for the selected personal history without loading project decisions.
|
|
263969
|
+
topics: (await tx.list("topic")).filter((t) => discussionProjects.has(t.value.projectId)),
|
|
263970
|
+
decisions: []
|
|
263971
|
+
};
|
|
263894
263972
|
const markdown = renderDiscussionContext({
|
|
263895
263973
|
userName,
|
|
263896
263974
|
projectId: projectId2,
|
|
@@ -264568,6 +264646,15 @@ function transcriptTail(ref2) {
|
|
|
264568
264646
|
return "";
|
|
264569
264647
|
}
|
|
264570
264648
|
}
|
|
264649
|
+
var SUMMARY_MAX_CHARS = 500;
|
|
264650
|
+
function clipLine(line) {
|
|
264651
|
+
return line.length > SUMMARY_MAX_CHARS ? `${line.slice(0, SUMMARY_MAX_CHARS)}\u2026` : line;
|
|
264652
|
+
}
|
|
264653
|
+
function providerMessage(line) {
|
|
264654
|
+
const m2 = /['"]message['"]\s*:\s*(?:'((?:[^'\\]|\\.)*)'|"((?:[^"\\]|\\.)*)")/.exec(line);
|
|
264655
|
+
const text6 = (m2?.[1] ?? m2?.[2])?.trim();
|
|
264656
|
+
return text6 ? text6 : void 0;
|
|
264657
|
+
}
|
|
264571
264658
|
function buildChatExitError(info) {
|
|
264572
264659
|
const genericLine = `runtime exited with code ${info.code ?? "null"}${info.reason ? ` (${info.reason})` : ""}`;
|
|
264573
264660
|
let detail = "";
|
|
@@ -264577,8 +264664,9 @@ function buildChatExitError(info) {
|
|
|
264577
264664
|
}
|
|
264578
264665
|
const firstDetailLine = detail.split("\n").map((line) => line.trim()).find(Boolean) ?? "";
|
|
264579
264666
|
const firstErrorLine = info.errorMessage?.split("\n").map((line) => line.trim()).find(Boolean) ?? "";
|
|
264667
|
+
const readableError = firstErrorLine ? clipLine(providerMessage(firstErrorLine) ?? firstErrorLine) : "";
|
|
264580
264668
|
const fixed = info.reason ? SUMMARY_BY_REASON[info.reason] : void 0;
|
|
264581
|
-
const summary = fixed ?
|
|
264669
|
+
const summary = fixed ? readableError && info.reason !== "cancelled" && info.reason !== "timeout" ? `${fixed}\uFF1A${readableError}` : fixed : readableError ? `\u5BF9\u8BDD\u5931\u8D25\uFF1A${readableError}` : firstDetailLine ? `\u5BF9\u8BDD\u5931\u8D25\uFF1A${clipLine(firstDetailLine)}` : `\u5BF9\u8BDD\u5931\u8D25\uFF08${genericLine}\uFF09`;
|
|
264582
264670
|
const chatExit = {
|
|
264583
264671
|
...info.reason ? { reason: info.reason } : {},
|
|
264584
264672
|
summary,
|
|
@@ -279037,7 +279125,7 @@ function shimScript() {
|
|
|
279037
279125
|
}
|
|
279038
279126
|
|
|
279039
279127
|
// src/index.ts
|
|
279040
|
-
var PKG_VERSION = true ? "2.2.
|
|
279128
|
+
var PKG_VERSION = true ? "2.2.48" : "dev";
|
|
279041
279129
|
var LOCAL_BIN = localBin();
|
|
279042
279130
|
var NPM_PREFIX = npmPrefix();
|
|
279043
279131
|
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.48",
|
|
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": "e73f3d47b4a699e20634f714e27dd2dd31e4082c"
|
|
30
30
|
}
|
|
31
31
|
}
|