@moxt-ai/mobius 0.0.136 → 0.0.137
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/acp/codex/agent.d.ts.map +1 -1
- package/dist/acp/codex/agent.js +13 -5
- package/dist/acp/codex/agent.js.map +1 -1
- package/dist/cli.js +41 -8
- package/dist/cli.js.map +2 -2
- package/dist/index.js +40 -7
- package/dist/index.js.map +2 -2
- package/dist/native-sessions/codex-history.d.ts.map +1 -1
- package/dist/native-sessions/codex-history.js +25 -2
- package/dist/native-sessions/codex-history.js.map +1 -1
- package/dist/runtime.js +40 -7
- package/dist/runtime.js.map +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -20959,6 +20959,8 @@ var assistantHistoryMessage = external_exports.strictObject({
|
|
|
20959
20959
|
activities: external_exports.array(nativeMessageActivitySchema).max(100).readonly().default([]),
|
|
20960
20960
|
content: external_exports.array(displayContentSchema).max(100).readonly().default([]),
|
|
20961
20961
|
role: external_exports.literal("assistant"),
|
|
20962
|
+
// Absent when the source Agent does not report a terminal outcome.
|
|
20963
|
+
outcome: external_exports.enum(["succeeded", "cancelled", "failed"]).optional(),
|
|
20962
20964
|
text: external_exports.string().max(SESSION_HISTORY_CHARACTER_LIMIT),
|
|
20963
20965
|
images: external_exports.array(historyImage).max(8).readonly().optional()
|
|
20964
20966
|
}).readonly();
|
|
@@ -34156,7 +34158,7 @@ var CodexAcpAgent = class {
|
|
|
34156
34158
|
#settings;
|
|
34157
34159
|
#nativeSessionId = "";
|
|
34158
34160
|
#streamedReasoningItemIds = /* @__PURE__ */ new Set();
|
|
34159
|
-
#
|
|
34161
|
+
#agentMessages = /* @__PURE__ */ new Map();
|
|
34160
34162
|
#noticeRevisions = /* @__PURE__ */ new Map();
|
|
34161
34163
|
#turn = null;
|
|
34162
34164
|
#nativeTurnId = null;
|
|
@@ -34491,9 +34493,11 @@ var CodexAcpAgent = class {
|
|
|
34491
34493
|
if (method === "item/agentMessage/delta") {
|
|
34492
34494
|
const decoded = reasoningTextDeltaParamsSchema.safeParse(params);
|
|
34493
34495
|
if (decoded.success && decoded.data.threadId === this.#nativeSessionId && this.#turn !== null && decoded.data.turnId === this.#turn.turn.id && decoded.data.delta.length > 0) {
|
|
34494
|
-
this.#
|
|
34496
|
+
const phase = this.#agentMessages.get(decoded.data.itemId)?.phase;
|
|
34497
|
+
this.#agentMessages.set(decoded.data.itemId, { phase, kind: "streaming" });
|
|
34495
34498
|
await this.#enqueue(async () => {
|
|
34496
34499
|
await this.#emit({
|
|
34500
|
+
_meta: agentMessageMeta(phase),
|
|
34497
34501
|
content: { text: decoded.data.delta, type: "text" },
|
|
34498
34502
|
messageId: decoded.data.itemId,
|
|
34499
34503
|
sessionUpdate: "agent_message_chunk"
|
|
@@ -34510,7 +34514,13 @@ var CodexAcpAgent = class {
|
|
|
34510
34514
|
return;
|
|
34511
34515
|
}
|
|
34512
34516
|
if (item.type === "agentMessage") {
|
|
34513
|
-
if (method === "item/started"
|
|
34517
|
+
if (method === "item/started") {
|
|
34518
|
+
this.#agentMessages.set(item.id, { phase: item.phase, kind: "started" });
|
|
34519
|
+
return;
|
|
34520
|
+
}
|
|
34521
|
+
const message = this.#agentMessages.get(item.id);
|
|
34522
|
+
this.#agentMessages.delete(item.id);
|
|
34523
|
+
if (message?.kind === "streaming") {
|
|
34514
34524
|
return;
|
|
34515
34525
|
}
|
|
34516
34526
|
await this.#enqueue(async () => {
|
|
@@ -34673,7 +34683,7 @@ var CodexAcpAgent = class {
|
|
|
34673
34683
|
};
|
|
34674
34684
|
signal.addEventListener("abort", aborted2, { once: true });
|
|
34675
34685
|
const turn = { completion, turn: { id: "" } };
|
|
34676
|
-
this.#
|
|
34686
|
+
this.#agentMessages.clear();
|
|
34677
34687
|
this.#streamedReasoningItemIds.clear();
|
|
34678
34688
|
this.#turn = turn;
|
|
34679
34689
|
this.#nativeTurnId = null;
|
|
@@ -34698,7 +34708,7 @@ var CodexAcpAgent = class {
|
|
|
34698
34708
|
signal.removeEventListener("abort", aborted2);
|
|
34699
34709
|
if (this.#turn === turn) {
|
|
34700
34710
|
this.#turn = null;
|
|
34701
|
-
this.#
|
|
34711
|
+
this.#agentMessages.clear();
|
|
34702
34712
|
this.#streamedReasoningItemIds.clear();
|
|
34703
34713
|
}
|
|
34704
34714
|
}
|
|
@@ -38913,6 +38923,7 @@ var turnsSchema = external_exports.object({
|
|
|
38913
38923
|
data: external_exports.array(
|
|
38914
38924
|
external_exports.object({
|
|
38915
38925
|
id: external_exports.string().min(1),
|
|
38926
|
+
status: external_exports.enum(["completed", "interrupted", "failed", "inProgress"]),
|
|
38916
38927
|
error: external_exports.unknown().nullish(),
|
|
38917
38928
|
items: external_exports.array(external_exports.unknown()).max(1e5)
|
|
38918
38929
|
})
|
|
@@ -38973,6 +38984,22 @@ function errorMessage(value) {
|
|
|
38973
38984
|
function messageSize(message) {
|
|
38974
38985
|
return message.text.length + (message.role === "assistant" ? JSON.stringify(message.activities).length + JSON.stringify(message.content).length : 0);
|
|
38975
38986
|
}
|
|
38987
|
+
function turnOutcome(status) {
|
|
38988
|
+
switch (status) {
|
|
38989
|
+
case "completed":
|
|
38990
|
+
return "succeeded";
|
|
38991
|
+
case "interrupted":
|
|
38992
|
+
return "cancelled";
|
|
38993
|
+
case "failed":
|
|
38994
|
+
return "failed";
|
|
38995
|
+
case "inProgress":
|
|
38996
|
+
return void 0;
|
|
38997
|
+
default: {
|
|
38998
|
+
const unhandled = status;
|
|
38999
|
+
throw new Error(`Unknown Codex turn status: ${String(unhandled)}`);
|
|
39000
|
+
}
|
|
39001
|
+
}
|
|
39002
|
+
}
|
|
38976
39003
|
function decodeHistory(thread, value, options) {
|
|
38977
39004
|
const page = turnsSchema.parse(value);
|
|
38978
39005
|
const nativeTurn = options.nativeTurn?.();
|
|
@@ -38981,6 +39008,7 @@ function decodeHistory(thread, value, options) {
|
|
|
38981
39008
|
let characters = 0;
|
|
38982
39009
|
let truncated = page.nextCursor != null;
|
|
38983
39010
|
for (const turn of page.data.toReversed()) {
|
|
39011
|
+
const outcome = turnOutcome(turn.status);
|
|
38984
39012
|
const activities = [];
|
|
38985
39013
|
let sequence = 0;
|
|
38986
39014
|
let assistantMessageIndex = null;
|
|
@@ -39091,15 +39119,20 @@ function decodeHistory(thread, value, options) {
|
|
|
39091
39119
|
const assistant = messages[assistantMessageIndex];
|
|
39092
39120
|
if (assistant?.role === "assistant") {
|
|
39093
39121
|
characters -= messageSize(assistant);
|
|
39094
|
-
const updated = {
|
|
39122
|
+
const updated = {
|
|
39123
|
+
...assistant,
|
|
39124
|
+
...outcome === void 0 ? {} : { outcome },
|
|
39125
|
+
activities: activities.slice(-100)
|
|
39126
|
+
};
|
|
39095
39127
|
messages[assistantMessageIndex] = updated;
|
|
39096
39128
|
characters += messageSize(updated);
|
|
39097
39129
|
}
|
|
39098
|
-
} else if (activities.length > 0) {
|
|
39130
|
+
} else if (activities.length > 0 || outcome !== void 0) {
|
|
39099
39131
|
const message = {
|
|
39100
39132
|
activities: activities.slice(-100),
|
|
39101
39133
|
content: [],
|
|
39102
39134
|
role: "assistant",
|
|
39135
|
+
...outcome === void 0 ? {} : { outcome },
|
|
39103
39136
|
text: ""
|
|
39104
39137
|
};
|
|
39105
39138
|
messages.push(message);
|