downcity 1.1.285 → 1.1.288
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/bin/city/agent/control/ExecuteBySession.d.ts +1 -1
- package/bin/city/agent/control/MessageTimeline.d.ts.map +1 -1
- package/bin/city/agent/control/MessageTimeline.js +30 -1
- package/bin/city/agent/control/MessageTimeline.js.map +1 -1
- package/bin/city/agent/control/SessionSummaryStore.d.ts.map +1 -1
- package/bin/city/agent/control/SessionSummaryStore.js +19 -3
- package/bin/city/agent/control/SessionSummaryStore.js.map +1 -1
- package/bin/city/agent/control/types/ControlViewData.d.ts +14 -2
- package/bin/city/agent/control/types/ControlViewData.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -19,7 +19,7 @@ export declare function executeBySessionId(params: {
|
|
|
19
19
|
instructions: string;
|
|
20
20
|
attachments?: ControlSessionExecuteAttachmentInput[];
|
|
21
21
|
}): Promise<{
|
|
22
|
-
assistantMessage: import("@downcity/agent/internal/executor/types/SessionMessages.js").
|
|
22
|
+
assistantMessage: import("@downcity/agent/internal/executor/types/SessionMessages.js").SessionModelMessageV1 | undefined;
|
|
23
23
|
userVisible: string;
|
|
24
24
|
queued: boolean;
|
|
25
25
|
error?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageTimeline.d.ts","sourceRoot":"","sources":["../../../../src/city/agent/control/MessageTimeline.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"MessageTimeline.d.ts","sourceRoot":"","sources":["../../../../src/city/agent/control/MessageTimeline.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,KAAK,EAEV,gBAAgB,EAGjB,MAAM,4DAA4D,CAAC;AAOpE,OAAO,KAAK,EAAE,oBAAoB,EAAuB,MAAM,+CAA+C,CAAC;AAuJ/G;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,gBAAgB,GACxB,oBAAoB,EAAE,CAsFxB;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAuB7B;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAEzE"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import fs from "fs-extra";
|
|
9
9
|
import { getToolName, isTextUIPart, isToolUIPart, } from "ai";
|
|
10
|
+
import { isSessionActionMessage, isSessionModelMessage, } from "@downcity/agent/internal/executor/types/SessionMessages.js";
|
|
10
11
|
import { pickLastSuccessfulChatSendText } from "@downcity/agent";
|
|
11
12
|
import { extractToolCallsFromUiMessage } from "@downcity/agent/internal/executor/messages/UIMessageTransformer.js";
|
|
12
13
|
import { truncateText } from "./CommonHelpers.js";
|
|
@@ -110,7 +111,26 @@ function toUiMessageEvent(params) {
|
|
|
110
111
|
...(toolName ? { toolName } : {}),
|
|
111
112
|
};
|
|
112
113
|
}
|
|
114
|
+
function toActionEvent(message) {
|
|
115
|
+
const metadata = message.metadata || null;
|
|
116
|
+
return {
|
|
117
|
+
id: `${String(message.id || "")}:0`,
|
|
118
|
+
role: "action",
|
|
119
|
+
...(typeof metadata?.ts === "number" ? { ts: metadata.ts } : {}),
|
|
120
|
+
text: resolveUiMessageText(message),
|
|
121
|
+
actionTitle: message.title,
|
|
122
|
+
...(message.description ? { actionDescription: message.description } : {}),
|
|
123
|
+
actionState: message.state,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
113
126
|
function resolveUiMessageText(message) {
|
|
127
|
+
if (isSessionActionMessage(message)) {
|
|
128
|
+
return message.description
|
|
129
|
+
? `${message.title}\n${message.description}`
|
|
130
|
+
: message.title;
|
|
131
|
+
}
|
|
132
|
+
if (!isSessionModelMessage(message))
|
|
133
|
+
return "";
|
|
114
134
|
const plainText = extractMessageText(message.parts);
|
|
115
135
|
if (plainText)
|
|
116
136
|
return plainText;
|
|
@@ -125,6 +145,11 @@ function resolveUiMessageText(message) {
|
|
|
125
145
|
* 转成 control 时间线。
|
|
126
146
|
*/
|
|
127
147
|
export function toUiMessageTimeline(message) {
|
|
148
|
+
if (isSessionActionMessage(message)) {
|
|
149
|
+
return [toActionEvent(message)];
|
|
150
|
+
}
|
|
151
|
+
if (!isSessionModelMessage(message))
|
|
152
|
+
return [];
|
|
128
153
|
if (message.role !== "assistant") {
|
|
129
154
|
return [
|
|
130
155
|
toUiMessageEvent({
|
|
@@ -207,8 +232,12 @@ export async function loadSessionMessagesFromFile(filePath) {
|
|
|
207
232
|
const item = JSON.parse(line);
|
|
208
233
|
if (!item || typeof item !== "object")
|
|
209
234
|
continue;
|
|
210
|
-
|
|
235
|
+
const candidate = item;
|
|
236
|
+
if (candidate.type !== "action" &&
|
|
237
|
+
candidate.role !== "user" &&
|
|
238
|
+
candidate.role !== "assistant") {
|
|
211
239
|
continue;
|
|
240
|
+
}
|
|
212
241
|
out.push(item);
|
|
213
242
|
}
|
|
214
243
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageTimeline.js","sourceRoot":"","sources":["../../../../src/city/agent/control/MessageTimeline.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,GAEb,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"MessageTimeline.js","sourceRoot":"","sources":["../../../../src/city/agent/control/MessageTimeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionSummaryStore.d.ts","sourceRoot":"","sources":["../../../../src/city/agent/control/SessionSummaryStore.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"SessionSummaryStore.d.ts","sourceRoot":"","sources":["../../../../src/city/agent/control/SessionSummaryStore.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAmB3F;;GAEG;AACH,wBAAsB,2BAA2B,CAAC,MAAM,EAAE;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACnC,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAqDnC"}
|
|
@@ -8,7 +8,14 @@
|
|
|
8
8
|
import fs from "fs-extra";
|
|
9
9
|
import { getDowncitySessionMessagesPath, getDowncitySessionRootDirPath, } from "../../config/Paths.js";
|
|
10
10
|
import { decodeMaybe, truncateText } from "./CommonHelpers.js";
|
|
11
|
-
import { loadSessionMessagesFromFile, resolveUiMessagePreview } from "./MessageTimeline.js";
|
|
11
|
+
import { loadSessionMessagesFromFile, resolveUiMessagePreview, toUiMessageTimeline, } from "./MessageTimeline.js";
|
|
12
|
+
function to_summary_role(role) {
|
|
13
|
+
if (!role)
|
|
14
|
+
return undefined;
|
|
15
|
+
if (role === "tool-call" || role === "tool-result")
|
|
16
|
+
return "assistant";
|
|
17
|
+
return role;
|
|
18
|
+
}
|
|
12
19
|
/**
|
|
13
20
|
* 枚举控制面所需的 session 摘要。
|
|
14
21
|
*/
|
|
@@ -26,7 +33,14 @@ export async function listControlSessionSummaries(params) {
|
|
|
26
33
|
continue;
|
|
27
34
|
const filePath = getDowncitySessionMessagesPath(params.projectRoot, params.agentId, sessionId);
|
|
28
35
|
const messages = await loadSessionMessagesFromFile(filePath);
|
|
29
|
-
const
|
|
36
|
+
const last_pair = [...messages]
|
|
37
|
+
.reverse()
|
|
38
|
+
.map((message) => ({
|
|
39
|
+
message,
|
|
40
|
+
event: toUiMessageTimeline(message)[0],
|
|
41
|
+
}))
|
|
42
|
+
.find((item) => item.event);
|
|
43
|
+
const last = last_pair?.message;
|
|
30
44
|
const lastTs = typeof last?.metadata?.ts === "number" ? last.metadata.ts : undefined;
|
|
31
45
|
const stat = await fs
|
|
32
46
|
.stat(filePath)
|
|
@@ -37,7 +51,9 @@ export async function listControlSessionSummaries(params) {
|
|
|
37
51
|
sessionId,
|
|
38
52
|
messageCount: messages.length,
|
|
39
53
|
...(typeof updatedAt === "number" ? { updatedAt } : {}),
|
|
40
|
-
...(
|
|
54
|
+
...(to_summary_role(last_pair?.event?.role)
|
|
55
|
+
? { lastRole: to_summary_role(last_pair?.event?.role) }
|
|
56
|
+
: {}),
|
|
41
57
|
...(last
|
|
42
58
|
? { lastText: truncateText(resolveUiMessagePreview(last), 180) }
|
|
43
59
|
: {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionSummaryStore.js","sourceRoot":"","sources":["../../../../src/city/agent/control/SessionSummaryStore.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EACL,8BAA8B,EAC9B,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,
|
|
1
|
+
{"version":3,"file":"SessionSummaryStore.js","sourceRoot":"","sources":["../../../../src/city/agent/control/SessionSummaryStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import type { JsonObject } from "@downcity/agent";
|
|
|
9
9
|
/**
|
|
10
10
|
* Control 时间线消息角色。
|
|
11
11
|
*/
|
|
12
|
-
export type ControlTimelineRole = "user" | "assistant" | "tool-call" | "tool-result" | "system";
|
|
12
|
+
export type ControlTimelineRole = "user" | "assistant" | "tool-call" | "tool-result" | "system" | "action";
|
|
13
13
|
/**
|
|
14
14
|
* Control 时间线事件。
|
|
15
15
|
*/
|
|
@@ -42,6 +42,18 @@ export interface ControlTimelineEvent {
|
|
|
42
42
|
* 工具名称。
|
|
43
43
|
*/
|
|
44
44
|
toolName?: string;
|
|
45
|
+
/**
|
|
46
|
+
* action 标题。
|
|
47
|
+
*/
|
|
48
|
+
actionTitle?: string;
|
|
49
|
+
/**
|
|
50
|
+
* action 描述。
|
|
51
|
+
*/
|
|
52
|
+
actionDescription?: string;
|
|
53
|
+
/**
|
|
54
|
+
* action 状态。
|
|
55
|
+
*/
|
|
56
|
+
actionState?: string;
|
|
45
57
|
}
|
|
46
58
|
/**
|
|
47
59
|
* Control 会话摘要。
|
|
@@ -65,7 +77,7 @@ export interface ControlSessionSummary {
|
|
|
65
77
|
/**
|
|
66
78
|
* 最后一条消息角色。
|
|
67
79
|
*/
|
|
68
|
-
lastRole?: "user" | "assistant" | "system";
|
|
80
|
+
lastRole?: "user" | "assistant" | "system" | "action";
|
|
69
81
|
/**
|
|
70
82
|
* 最后一条消息摘要。
|
|
71
83
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControlViewData.d.ts","sourceRoot":"","sources":["../../../../../src/city/agent/control/types/ControlViewData.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC3B,MAAM,GACN,WAAW,GACX,WAAW,GACX,aAAa,GACb,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,mBAAmB,CAAC;IAE1B;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ControlViewData.d.ts","sourceRoot":"","sources":["../../../../../src/city/agent/control/types/ControlViewData.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC3B,MAAM,GACN,WAAW,GACX,WAAW,GACX,aAAa,GACb,QAAQ,GACR,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,mBAAmB,CAAC;IAE1B;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAEtD;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,EAAE;QACT;;WAEG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;QAEjB;;WAEG;QACH,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB;;WAEG;QACH,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;QAEjB;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf;;WAEG;QACH,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB;;WAEG;QACH,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB;;WAEG;QACH,eAAe,CAAC,EAAE,MAAM,CAAC;QAEzB;;WAEG;QACH,YAAY,CAAC,EAAE,MAAM,CAAC;QAEtB;;WAEG;QACH,MAAM,CAAC,EAAE,KAAK,CAAC;YACb;;eAEG;YACH,EAAE,CAAC,EAAE,MAAM,CAAC;YAEZ;;eAEG;YACH,KAAK,CAAC,EAAE,MAAM,CAAC;YAEf;;eAEG;YACH,OAAO,CAAC,EAAE,MAAM,CAAC;YAEjB;;eAEG;YACH,KAAK,CAAC,EAAE,MAAM,CAAC;YAEf;;eAEG;YACH,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,CAAC,CAAC;KACJ,CAAC;IAEF;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC;;OAEG;IACH,SAAS,EAAE;QACT;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf;;WAEG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB;;WAEG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB;;WAEG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAElB;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF;;OAEG;IACH,QAAQ,EAAE,oBAAoB,EAAE,CAAC;CAClC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "downcity",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.288",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Downcity CLI — unified City and Agent host management",
|
|
6
6
|
"bin": {
|
|
@@ -23,12 +23,12 @@
|
|
|
23
23
|
"@ai-sdk/openai": "^3.0.67",
|
|
24
24
|
"@ai-sdk/openai-compatible": "^2.0.48",
|
|
25
25
|
"@ai-sdk/xai": "^3.0.93",
|
|
26
|
-
"@downcity/agent": "^1.1.
|
|
27
|
-
"@downcity/city": "^0.2.
|
|
28
|
-
"@downcity/plugins": "^1.0.
|
|
29
|
-
"@downcity/server": "^0.1.
|
|
30
|
-
"@downcity/shell": "^0.1.
|
|
31
|
-
"@downcity/type": "0.1.
|
|
26
|
+
"@downcity/agent": "^1.1.200",
|
|
27
|
+
"@downcity/city": "^0.2.147",
|
|
28
|
+
"@downcity/plugins": "^1.0.145",
|
|
29
|
+
"@downcity/server": "^0.1.51",
|
|
30
|
+
"@downcity/shell": "^0.1.69",
|
|
31
|
+
"@downcity/type": "0.1.102",
|
|
32
32
|
"@earendil-works/pi-tui": "^0.74.2",
|
|
33
33
|
"@larksuiteoapi/node-sdk": "^1.66.0",
|
|
34
34
|
"@openrouter/ai-sdk-provider": "^2.9.0",
|