downcity 1.1.308 → 1.1.312

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.
@@ -1 +1 @@
1
- {"version":3,"file":"AgentChat.d.ts","sourceRoot":"","sources":["../../../src/city/agent/AgentChat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAa1E;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4I7E"}
1
+ {"version":3,"file":"AgentChat.d.ts","sourceRoot":"","sources":["../../../src/city/agent/AgentChat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAY1E;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2I7E"}
@@ -12,7 +12,7 @@ import { emitCliBlock } from "../../shared/CliReporter.js";
12
12
  import { createRemoteChatSession, listRemoteChatSessions, } from "./AgentChatRemote.js";
13
13
  import { run_agent_chat_tui } from "./AgentChatTui.js";
14
14
  import { normalizeChatMessage, resolveAgentChatSessionOptions, resolveChatTargetAgentId, resolveInteractiveChatSession, runOneShotChat, runSdkPromptTurn, } from "./AgentChatHelpers.js";
15
- import { timeline_events_to_entries } from "./tui/history/HistoryLoader.js";
15
+ import { session_messages_to_entries } from "./tui/history/HistoryLoader.js";
16
16
  import { listPlatformModelChoices } from "../runtime/city-model/ExecutionModelBinding.js";
17
17
  /**
18
18
  * `city agent chat` 统一入口。
@@ -98,13 +98,14 @@ export async function chatCommand(options) {
98
98
  },
99
99
  load_session_history: async (session_id) => {
100
100
  const session = await interactive.remote_agent.sessions.get(session_id);
101
- const records = await session.records({
102
- view: "timeline",
103
- order: "asc",
104
- limit: 200,
105
- });
106
- const title = records.session.title?.trim() || "Untitled";
107
- const model_id = String(records.session.modelId || "").trim() || undefined;
101
+ const [info, messages] = await Promise.all([
102
+ session.get_info(),
103
+ session.messages({
104
+ limit: 200,
105
+ }),
106
+ ]);
107
+ const title = info.title?.trim() || "Untitled";
108
+ const model_id = String(info.modelId || "").trim() || undefined;
108
109
  let model_name = model_id;
109
110
  if (model_id) {
110
111
  try {
@@ -115,7 +116,7 @@ export async function chatCommand(options) {
115
116
  // 关键点(中文):目录查询失败不阻塞历史加载,footer 回退展示稳定 model id。
116
117
  }
117
118
  }
118
- const entries = timeline_events_to_entries(records.items);
119
+ const entries = session_messages_to_entries(messages.items);
119
120
  return { title, model_id, model_name, entries };
120
121
  },
121
122
  approve: async (approval_id) => await interactive.remote_agent.approve({ approval_id }),
@@ -1 +1 @@
1
- {"version":3,"file":"AgentChat.js","sourceRoot":"","sources":["../../../src/city/agent/AgentChat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentChat.js","sourceRoot":"","sources":["../../../src/city/agent/AgentChat.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AgentChatHelpers.d.ts","sourceRoot":"","sources":["../../../src/city/agent/AgentChatHelpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentChatHelpers.d.ts","sourceRoot":"","sources":["../../../src/city/agent/AgentChatHelpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EACL,WAAW,EAEZ,MAAM,iBAAiB,CAAC;AAgBzB,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,gCAAgC,CAAC;AAIxC,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,sCAAsC,CAAC;AAE7F,MAAM,MAAM,uBAAuB,GAAG;IACpC,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,CAAC,EAAE,uBAAuB,GAE7B;IACE,OAAO,EAAE,IAAI,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,OAAO,CAAC;CAC7B,GACD;IACE,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAwBJ;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAEnF;AAED,wBAAsB,wBAAwB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA6CvF;AAED,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,MAAM,EACpB,cAAc,CAAC,EAAE,uBAAuB,GACvC,OAAO,CACN;IACE,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,uBAAuB,CAAC;CACjC,GACD;IACE,OAAO,EAAE,KAAK,CAAC;IACf,OAAO,EAAE,yBAAyB,CAAC;CACpC,CACJ,CAoFA;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAW3D;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,IAAI,CAeP;AAED,wBAAsB,6BAA6B,CAAC,MAAM,EAAE;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,SAAS,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C,GAAG,OAAO,CACP;IACE,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,uBAAuB,CAAC;IAChC,YAAY,EAAE,WAAW,CAAC;CAC3B,GACD;IACE,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CACJ,CAsDA;AAiCD,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,uBAAuB,CAAC;IACzC,SAAS,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mBAAmB,CAAC,EAAE,gCAAgC,CAAC;CACxD,GAAG,OAAO,CAAC;IACV,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,OAAO,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC,CA0HD;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,uBAAuB,CAAC;IACzC,SAAS,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAyCrC;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,mBAAmB,CAAC;CAC9B,GAAG,OAAO,CAAC,IAAI,CAAC,CAmDhB"}
@@ -322,41 +322,10 @@ export async function runSdkPromptTurn(params) {
322
322
  params.interactiveRenderer.render_event(event);
323
323
  return;
324
324
  }
325
- if (event.type === "tool-approval-request") {
326
- const operation = event.operation || (event.toolName === "shell_write" ? "write" : "exec");
327
- const command_label = operation === "write" ? "input_preview" : "cmd";
328
- const command_value = operation === "write" ? event.inputPreview || event.cmd : event.cmd;
329
- emitCliBlock({
330
- tone: "info",
331
- title: "Unrestricted sandbox approval requested",
332
- facts: [
333
- { label: "approval_id", value: event.approvalId },
334
- { label: "tool", value: event.toolName },
335
- { label: "operation", value: operation },
336
- ...(event.shellId ? [{ label: "shell_id", value: event.shellId }] : []),
337
- { label: command_label, value: command_value },
338
- ...(typeof event.inputChars === "number"
339
- ? [{ label: "input_chars", value: String(event.inputChars) }]
340
- : []),
341
- { label: "cwd", value: event.cwd },
342
- { label: "reason", value: event.reason },
343
- ],
344
- note: "Approve or deny this request from a client that calls agent.approve({ approval_id }) or agent.deny({ approval_id }).",
345
- });
346
- return;
347
- }
348
- if (event.type === "tool-approval-result") {
349
- emitCliBlock({
350
- tone: event.decision === "approved" ? "success" : "error",
351
- title: "Unrestricted sandbox approval resolved",
352
- facts: [
353
- { label: "approval_id", value: event.approvalId },
354
- { label: "decision", value: event.decision },
355
- ],
356
- });
357
- return;
358
- }
359
- if (event.type !== "text-delta" || event.turnId !== target_turn_id || !event.text) {
325
+ if (event.variant !== "delta" ||
326
+ event.type !== "text" ||
327
+ event.turn_id !== target_turn_id ||
328
+ !event.delta) {
360
329
  return;
361
330
  }
362
331
  if (params.renderText === false)
@@ -365,7 +334,7 @@ export async function runSdkPromptTurn(params) {
365
334
  process.stdout.write("\n");
366
335
  printed_leading_newline = true;
367
336
  }
368
- process.stdout.write(event.text);
337
+ process.stdout.write(event.delta);
369
338
  emitted_visible_text = true;
370
339
  };
371
340
  const unsubscribe = session.subscribe((event) => {
@@ -373,13 +342,9 @@ export async function runSdkPromptTurn(params) {
373
342
  pending_events.push(event);
374
343
  return;
375
344
  }
376
- const is_approval_event = event.type === "tool-approval-request" || event.type === "tool-approval-result";
377
- if (!is_approval_event && "turnId" in event && event.turnId && event.turnId !== target_turn_id)
345
+ if (event.turn_id && event.turn_id !== target_turn_id)
378
346
  return;
379
347
  renderEvent(event);
380
- if (event.type === "turn-finish") {
381
- final_text = event.text;
382
- }
383
348
  });
384
349
  try {
385
350
  params.interactiveRenderer?.start_turn();
@@ -387,13 +352,9 @@ export async function runSdkPromptTurn(params) {
387
352
  target_turn_id = turn.id;
388
353
  params.interactiveRenderer?.attach_turn_id(target_turn_id);
389
354
  for (const event of pending_events) {
390
- const is_approval_event = event.type === "tool-approval-request" || event.type === "tool-approval-result";
391
- if (!is_approval_event && "turnId" in event && event.turnId && event.turnId !== target_turn_id)
355
+ if (event.turn_id && event.turn_id !== target_turn_id)
392
356
  continue;
393
357
  renderEvent(event);
394
- if (event.type === "turn-finish") {
395
- final_text = event.text;
396
- }
397
358
  }
398
359
  const result = await turn.finished;
399
360
  final_text = result.text;
@@ -1 +1 @@
1
- {"version":3,"file":"AgentChatHelpers.js","sourceRoot":"","sources":["../../../src/city/agent/AgentChatHelpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentChatHelpers.js","sourceRoot":"","sources":["../../../src/city/agent/AgentChatHelpers.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  * - 负责 spinner 生命周期、tool 事件可见性,以及 assistant 文本流式渲染。
7
7
  * - 把“终端展示状态机”从主命令流程中拆出,降低 `AgentChat.ts` 复杂度。
8
8
  */
9
- import type { AgentSessionEvent } from "@downcity/agent";
9
+ import type { SessionMessageMutation } from "@downcity/agent";
10
10
  import type { AgentChatInteractiveRenderSnapshot, AgentChatInteractiveRendererPort } from "../types/AgentChatInteractive.js";
11
11
  /**
12
12
  * 交互式单轮渲染器。
@@ -18,6 +18,7 @@ export declare class AgentChatInteractiveRenderer implements AgentChatInteractiv
18
18
  private text_stream_open;
19
19
  private has_block_output;
20
20
  private active_turn_id;
21
+ private readonly tool_call_ids;
21
22
  private readonly spinner_enabled;
22
23
  constructor();
23
24
  /**
@@ -31,7 +32,7 @@ export declare class AgentChatInteractiveRenderer implements AgentChatInteractiv
31
32
  /**
32
33
  * 渲染单个 session 事件。
33
34
  */
34
- render_event(event: AgentSessionEvent): void;
35
+ render_event(event: SessionMessageMutation): void;
35
36
  /**
36
37
  * 结束当前一轮渲染,补齐末尾换行。
37
38
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AgentChatInteractiveRenderer.d.ts","sourceRoot":"","sources":["../../../src/city/agent/AgentChatInteractiveRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EACV,kCAAkC,EAClC,gCAAgC,EACjC,MAAM,sCAAsC,CAAC;AAyD9C;;GAEG;AACH,qBAAa,4BAA6B,YAAW,gCAAgC;IACnF,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;;IAM1C;;OAEG;IACH,UAAU,IAAI,IAAI;IAQlB;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIrC;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAyD5C;;OAEG;IACH,WAAW,IAAI,kCAAkC;IAYjD,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,gBAAgB;CAmBzB"}
1
+ {"version":3,"file":"AgentChatInteractiveRenderer.d.ts","sourceRoot":"","sources":["../../../src/city/agent/AgentChatInteractiveRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EACV,kCAAkC,EAClC,gCAAgC,EACjC,MAAM,sCAAsC,CAAC;AAW9C;;GAEG;AACH,qBAAa,4BAA6B,YAAW,gCAAgC;IACnF,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;;IAM1C;;OAEG;IACH,UAAU,IAAI,IAAI;IAQlB;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIrC;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI;IA6CjD;;OAEG;IACH,WAAW,IAAI,kCAAkC;IAYjD,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,gBAAgB;CAmBzB"}
@@ -9,43 +9,6 @@
9
9
  import chalk from "chalk";
10
10
  import { createSpinner, shouldRenderSpinner, } from "../utils/cli/Spinner.js";
11
11
  import { format_tool_call_block, format_tool_result_block, } from "./AgentChatToolFormatter.js";
12
- function format_approval_request_block(event) {
13
- const operation = event.operation || (event.toolName === "shell_write" ? "write" : "exec");
14
- const command_label = operation === "write" ? "input_preview" : "cmd";
15
- const command_value = operation === "write" ? event.inputPreview || event.cmd : event.cmd;
16
- return {
17
- title: `[approval] ${event.toolName} requests unrestricted sandbox`,
18
- detail_lines: [
19
- `approval_id: ${event.approvalId}`,
20
- `operation: ${operation}`,
21
- ...(event.shellId ? [`shell_id: ${event.shellId}`] : []),
22
- `${command_label}: ${command_value}`,
23
- ...(typeof event.inputChars === "number" ? [`input_chars: ${event.inputChars}`] : []),
24
- `cwd: ${event.cwd}`,
25
- `reason: ${event.reason}`,
26
- "approve: call agent.approve({ approval_id })",
27
- "deny: call agent.deny({ approval_id })",
28
- ],
29
- };
30
- }
31
- function format_approval_result_block(event) {
32
- return {
33
- title: `[approval] ${event.decision}`,
34
- detail_lines: [
35
- `approval_id: ${event.approvalId}`,
36
- `tool: ${event.toolName}`,
37
- ],
38
- };
39
- }
40
- function extract_event_turn_id(event) {
41
- if (event.type === "tool-approval-request" || event.type === "tool-approval-result") {
42
- return "";
43
- }
44
- if ("turnId" in event && typeof event.turnId === "string") {
45
- return event.turnId;
46
- }
47
- return "";
48
- }
49
12
  /**
50
13
  * 交互式单轮渲染器。
51
14
  */
@@ -56,6 +19,7 @@ export class AgentChatInteractiveRenderer {
56
19
  text_stream_open = false;
57
20
  has_block_output = false;
58
21
  active_turn_id = "";
22
+ tool_call_ids = new Set();
59
23
  spinner_enabled;
60
24
  constructor() {
61
25
  this.spinner_enabled = shouldRenderSpinner();
@@ -80,55 +44,46 @@ export class AgentChatInteractiveRenderer {
80
44
  * 渲染单个 session 事件。
81
45
  */
82
46
  render_event(event) {
83
- const event_turn_id = extract_event_turn_id(event);
47
+ const event_turn_id = event.turn_id || "";
84
48
  if (event_turn_id && this.active_turn_id && event_turn_id !== this.active_turn_id) {
85
49
  return;
86
50
  }
87
- switch (event.type) {
88
- case "turn-start":
89
- this.attach_turn_id(event.turnId);
90
- this.set_spinner_text("Thinking...");
91
- return;
92
- case "tool-call":
93
- this.print_tool_block(format_tool_call_block({
94
- tool_name: event.toolName,
95
- args: event.args,
96
- }));
97
- this.set_spinner_text(`Running ${event.toolName}...`);
98
- return;
99
- case "tool-result":
100
- this.print_tool_block(format_tool_result_block({
101
- tool_name: event.toolName,
102
- result: event.result,
103
- }));
51
+ if (event.variant === "delta") {
52
+ if (event.type === "text")
53
+ this.print_text_delta(event.delta);
54
+ else
104
55
  this.set_spinner_text("Thinking...");
105
- return;
106
- case "tool-approval-request":
107
- this.print_tool_block(format_approval_request_block(event));
108
- this.set_spinner_text("Waiting for approval...");
109
- return;
110
- case "tool-approval-result":
111
- this.print_tool_block(format_approval_result_block(event));
112
- this.set_spinner_text("Thinking...");
113
- return;
114
- case "error":
115
- this.stop_spinner();
116
- return;
117
- case "turn-finish":
56
+ return;
57
+ }
58
+ if (event.variant === "message") {
59
+ if (event.type === "error" ||
60
+ event.type === "assistant" && event.message.status !== "streaming")
118
61
  this.stop_spinner();
119
- return;
120
- case "assistant-step":
121
- case "session-title":
122
- return;
123
- case "reasoning-delta":
124
- this.set_spinner_text("Thinking...");
125
- return;
126
- case "text-delta":
127
- this.print_text_delta(event.text);
128
- return;
129
- default:
130
- return;
62
+ return;
63
+ }
64
+ if (event.type !== "tool")
65
+ return;
66
+ const part = event.part;
67
+ if (!this.tool_call_ids.has(part.tool_call_id)) {
68
+ this.tool_call_ids.add(part.tool_call_id);
69
+ this.print_tool_block(format_tool_call_block({
70
+ tool_name: part.tool_name,
71
+ args: part.input || {},
72
+ }));
73
+ }
74
+ if (part.state === "completed" || part.state === "failed") {
75
+ this.print_tool_block(format_tool_result_block({
76
+ tool_name: part.tool_name,
77
+ result: part.state === "completed"
78
+ ? part.output ?? null
79
+ : part.error || "Tool failed",
80
+ }));
131
81
  }
82
+ this.set_spinner_text(part.state === "approval-required"
83
+ ? "Waiting for approval..."
84
+ : part.state === "completed" || part.state === "failed"
85
+ ? "Thinking..."
86
+ : `Running ${part.tool_name}...`);
132
87
  }
133
88
  /**
134
89
  * 结束当前一轮渲染,补齐末尾换行。
@@ -1 +1 @@
1
- {"version":3,"file":"AgentChatInteractiveRenderer.js","sourceRoot":"","sources":["../../../src/city/agent/AgentChatInteractiveRenderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentChatInteractiveRenderer.js","sourceRoot":"","sources":["../../../src/city/agent/AgentChatInteractiveRenderer.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  * - 实现 AgentChatInteractiveRendererPort,接入 AgentChat 的 runSdkPromptTurn。
6
6
  * - 把 SDK 事件转交给 StreamingUIController,驱动消息流更新。
7
7
  */
8
- import type { AgentSessionEvent } from "@downcity/agent";
8
+ import type { SessionMessageMutation } from "@downcity/agent";
9
9
  import type { AgentChatInteractiveRenderSnapshot, AgentChatInteractiveRendererPort } from "../../types/AgentChatInteractive.js";
10
10
  import type { MessageListComponent } from "./components/MessageList.js";
11
11
  /**
@@ -36,7 +36,7 @@ export declare class PiTuiChatRenderer implements AgentChatInteractiveRendererPo
36
36
  *
37
37
  * @param event AgentSessionEvent。
38
38
  */
39
- render_event(event: AgentSessionEvent): void;
39
+ render_event(event: SessionMessageMutation): void;
40
40
  /**
41
41
  * 结束当前一轮渲染。
42
42
  *
@@ -1 +1 @@
1
- {"version":3,"file":"PiTuiChatRenderer.d.ts","sourceRoot":"","sources":["../../../../src/city/agent/tui/PiTuiChatRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,KAAK,EACV,kCAAkC,EAClC,gCAAgC,EACjC,MAAM,sCAAsC,CAAC;AAE9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAEvF;;GAEG;AACH,qBAAa,iBAAkB,YAAW,gCAAgC;IACxE,OAAO,CAAC,YAAY,CAAwB;IAC5C,OAAO,CAAC,oBAAoB,CAAS;IACrC,mBAAmB,CAAC,EAAE,gCAAgC,CAAC,qBAAqB,CAAC,CAAC;IAE9E;;;;OAIG;gBAED,YAAY,EAAE,oBAAoB,EAClC,cAAc,EAAE,MAAM,IAAI,EAC1B,mBAAmB,CAAC,EAAE,gCAAgC,CAAC,qBAAqB,CAAC;IAS/E;;OAEG;IACH,UAAU,IAAI,IAAI;IAKlB;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIrC;;;;OAIG;IACH,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAgB5C;;;;OAIG;IACH,WAAW,IAAI,kCAAkC;CAMlD"}
1
+ {"version":3,"file":"PiTuiChatRenderer.d.ts","sourceRoot":"","sources":["../../../../src/city/agent/tui/PiTuiChatRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAE9D,OAAO,KAAK,EACV,kCAAkC,EAClC,gCAAgC,EACjC,MAAM,sCAAsC,CAAC;AAE9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAEvF;;GAEG;AACH,qBAAa,iBAAkB,YAAW,gCAAgC;IACxE,OAAO,CAAC,YAAY,CAAwB;IAC5C,OAAO,CAAC,oBAAoB,CAAS;IACrC,mBAAmB,CAAC,EAAE,gCAAgC,CAAC,qBAAqB,CAAC,CAAC;IAE9E;;;;OAIG;gBAED,YAAY,EAAE,oBAAoB,EAClC,cAAc,EAAE,MAAM,IAAI,EAC1B,mBAAmB,CAAC,EAAE,gCAAgC,CAAC,qBAAqB,CAAC;IAS/E;;OAEG;IACH,UAAU,IAAI,IAAI;IAKlB;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIrC;;;;OAIG;IACH,YAAY,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI;IAyBjD;;;;OAIG;IACH,WAAW,IAAI,kCAAkC;CAMlD"}
@@ -47,16 +47,21 @@ export class PiTuiChatRenderer {
47
47
  */
48
48
  render_event(event) {
49
49
  this.streaming_ui.handle_event(event);
50
- if (event.type === "text-delta" && (event.text || "").trim()) {
50
+ if (event.variant === "delta" &&
51
+ event.type === "text" &&
52
+ event.delta.trim()) {
51
53
  this.emitted_visible_text = true;
52
54
  }
53
- if (event.type === "tool-approval-request") {
55
+ if (event.variant === "part" &&
56
+ event.part.type === "tool" &&
57
+ event.part.state === "approval-required" &&
58
+ event.part.approval_id) {
54
59
  this.on_approval_request?.({
55
- approval_id: event.approvalId,
56
- tool_name: event.toolName,
57
- cmd: event.cmd,
58
- cwd: event.cwd,
59
- reason: event.reason,
60
+ approval_id: event.part.approval_id,
61
+ tool_name: event.part.tool_name,
62
+ cmd: "",
63
+ cwd: "",
64
+ reason: "Tool execution requires approval.",
60
65
  });
61
66
  }
62
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PiTuiChatRenderer.js","sourceRoot":"","sources":["../../../../src/city/agent/tui/PiTuiChatRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAGpF;;GAEG;AACH,MAAM,OAAO,iBAAiB;IACpB,YAAY,CAAwB;IACpC,oBAAoB,GAAG,KAAK,CAAC;IACrC,mBAAmB,CAA2D;IAE9E;;;;OAIG;IACH,YACE,YAAkC,EAClC,cAA0B,EAC1B,mBAA6E;QAE7E,IAAI,CAAC,YAAY,GAAG,IAAI,qBAAqB,CAAC;YAC5C,YAAY;YACZ,cAAc;SACf,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,OAAe;QAC5B,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACH,YAAY,CAAC,KAAwB;QACnC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7D,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACnC,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;YAC3C,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,WAAW,EAAE,KAAK,CAAC,UAAU;gBAC7B,SAAS,EAAE,KAAK,CAAC,QAAQ;gBACzB,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,WAAW;QACT,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QAChC,OAAO;YACL,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;SAChD,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"PiTuiChatRenderer.js","sourceRoot":"","sources":["../../../../src/city/agent/tui/PiTuiChatRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAGpF;;GAEG;AACH,MAAM,OAAO,iBAAiB;IACpB,YAAY,CAAwB;IACpC,oBAAoB,GAAG,KAAK,CAAC;IACrC,mBAAmB,CAA2D;IAE9E;;;;OAIG;IACH,YACE,YAAkC,EAClC,cAA0B,EAC1B,mBAA6E;QAE7E,IAAI,CAAC,YAAY,GAAG,IAAI,qBAAqB,CAAC;YAC5C,YAAY;YACZ,cAAc;SACf,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,OAAe;QAC5B,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACH,YAAY,CAAC,KAA6B;QACxC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACtC,IACE,KAAK,CAAC,OAAO,KAAK,OAAO;YACzB,KAAK,CAAC,IAAI,KAAK,MAAM;YACrB,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAClB,CAAC;YACD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACnC,CAAC;QACD,IACE,KAAK,CAAC,OAAO,KAAK,MAAM;YACxB,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM;YAC1B,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,mBAAmB;YACxC,KAAK,CAAC,IAAI,CAAC,WAAW,EACtB,CAAC;YACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW;gBACnC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS;gBAC/B,GAAG,EAAE,EAAE;gBACP,GAAG,EAAE,EAAE;gBACP,MAAM,EAAE,mCAAmC;aAC5C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,WAAW;QACT,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QAChC,OAAO;YACL,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;SAChD,CAAC;IACJ,CAAC;CACF"}
@@ -7,7 +7,7 @@
7
7
  * - 用 _streaming_block 维护当前 assistant 条目,保证增量只更新同一个组件。
8
8
  * - flush 节拍合并高频 text-delta,降低终端重绘开销。
9
9
  */
10
- import type { AgentSessionEvent } from "@downcity/agent";
10
+ import type { SessionMessageMutation } from "@downcity/agent";
11
11
  import type { MessageListComponent } from "../components/MessageList.js";
12
12
  /**
13
13
  * StreamingUIController 构造选项。
@@ -31,6 +31,7 @@ export declare class StreamingUIController {
31
31
  private flush_timer;
32
32
  private last_flush_at;
33
33
  private pending_render;
34
+ private readonly tool_call_ids;
34
35
  /**
35
36
  * @param options 构造选项。
36
37
  */
@@ -50,7 +51,7 @@ export declare class StreamingUIController {
50
51
  *
51
52
  * @param event AgentSessionEvent。
52
53
  */
53
- handle_event(event: AgentSessionEvent): void;
54
+ handle_event(event: SessionMessageMutation): void;
54
55
  /**
55
56
  * 结束当前一轮渲染。
56
57
  */
@@ -78,10 +79,7 @@ export declare class StreamingUIController {
78
79
  */
79
80
  private finalize_assistant;
80
81
  private add_tool_call;
81
- private add_approval_request;
82
- private add_approval_result;
83
82
  private add_error;
84
- private extract_event_turn_id;
85
83
  /**
86
84
  * 调度一次重绘。多次调用会被合并到下一个 STREAMING_UI_FLUSH_MS 节拍。
87
85
  */
@@ -1 +1 @@
1
- {"version":3,"file":"StreamingUI.d.ts","sourceRoot":"","sources":["../../../../../src/city/agent/tui/controllers/StreamingUI.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAKvF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,aAAa;IACb,YAAY,EAAE,oBAAoB,CAAC;IACnC,0CAA0C;IAC1C,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AASD;;GAEG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,WAAW,CAA8C;IACjE,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,cAAc,CAAS;IAE/B;;OAEG;gBACS,OAAO,EAAE,kBAAkB;IAKvC;;OAEG;IACH,UAAU,IAAI,IAAI;IASlB;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIrC;;;;OAIG;IACH,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IA+C5C;;OAEG;IACH,WAAW,IAAI,IAAI;IAKnB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAS9B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAc/B;;OAEG;IACH,OAAO,CAAC,KAAK;IAuBb;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,oBAAoB;IAqB5B,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,qBAAqB;IAU7B;;OAEG;IACH,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,iBAAiB;CAO1B"}
1
+ {"version":3,"file":"StreamingUI.d.ts","sourceRoot":"","sources":["../../../../../src/city/agent/tui/controllers/StreamingUI.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAG9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAKvF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,aAAa;IACb,YAAY,EAAE,oBAAoB,CAAC;IACnC,0CAA0C;IAC1C,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AASD;;GAEG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,WAAW,CAA8C;IACjE,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IAEnD;;OAEG;gBACS,OAAO,EAAE,kBAAkB;IAKvC;;OAEG;IACH,UAAU,IAAI,IAAI;IASlB;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIrC;;;;OAIG;IACH,YAAY,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI;IAwCjD;;OAEG;IACH,WAAW,IAAI,IAAI;IAKnB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAS9B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAc/B;;OAEG;IACH,OAAO,CAAC,KAAK;IAuBb;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,SAAS;IAWjB;;OAEG;IACH,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,iBAAiB;CAO1B"}
@@ -23,6 +23,7 @@ export class StreamingUIController {
23
23
  flush_timer = null;
24
24
  last_flush_at = 0;
25
25
  pending_render = false;
26
+ tool_call_ids = new Set();
26
27
  /**
27
28
  * @param options 构造选项。
28
29
  */
@@ -55,48 +56,36 @@ export class StreamingUIController {
55
56
  * @param event AgentSessionEvent。
56
57
  */
57
58
  handle_event(event) {
58
- const event_turn_id = this.extract_event_turn_id(event);
59
+ const event_turn_id = event.turn_id || "";
59
60
  if (event_turn_id && this.active_turn_id && event_turn_id !== this.active_turn_id) {
60
61
  return;
61
62
  }
62
- switch (event.type) {
63
- case "turn-start":
64
- this.attach_turn_id(event.turnId);
65
- // 对齐 Kimi Code:不在 turn-start 预创建 assistant entry,
66
- // 第一个 text-delta 到达时才创建,保证 entry 位置与文本实际出现位置一致。
67
- break;
68
- case "text-delta":
69
- this.append_assistant_delta(event.text || "");
70
- break;
71
- case "tool-call":
72
- this.finalize_assistant();
73
- this.add_tool_call(event.toolName, event.toolCallId, event.args);
74
- break;
75
- case "tool-result":
76
- this.message_list.update_tool_result(event.toolCallId, event.result);
77
- break;
78
- case "tool-approval-request":
79
- this.finalize_assistant();
80
- this.add_approval_request(event);
81
- break;
82
- case "tool-approval-result":
83
- this.add_approval_result(event);
84
- break;
85
- case "reasoning-delta":
86
- // reasoning 不在 TUI 中直接展示。
87
- break;
88
- case "error":
89
- this.add_error(event.message || "unknown error");
90
- break;
91
- case "turn-finish":
63
+ if (event.variant === "delta") {
64
+ if (event.type === "text")
65
+ this.append_assistant_delta(event.delta);
66
+ return;
67
+ }
68
+ if (event.variant === "message") {
69
+ if (event.type === "error")
70
+ this.add_error(event.message.message);
71
+ if (event.type === "assistant" &&
72
+ event.message.status !== "streaming")
92
73
  this.finalize_assistant();
93
- break;
94
- case "assistant-step":
95
- // 不拆分 assistant 文本块;step 边界对当前 TUI 渲染无影响。
96
- break;
97
- case "session-title":
98
- default:
99
- break;
74
+ return;
75
+ }
76
+ if (event.type !== "tool")
77
+ return;
78
+ const part = event.part;
79
+ this.finalize_assistant();
80
+ if (!this.tool_call_ids.has(part.tool_call_id)) {
81
+ this.tool_call_ids.add(part.tool_call_id);
82
+ this.add_tool_call(part.tool_name, part.tool_call_id, part.input || {});
83
+ }
84
+ if (part.state === "completed") {
85
+ this.message_list.update_tool_result(part.tool_call_id, part.output);
86
+ }
87
+ if (part.state === "failed") {
88
+ this.message_list.update_tool_result(part.tool_call_id, part.error || "Tool failed");
100
89
  }
101
90
  }
102
91
  /**
@@ -188,35 +177,6 @@ export class StreamingUIController {
188
177
  this.message_list.add_entry(entry);
189
178
  this.schedule_render();
190
179
  }
191
- add_approval_request(event) {
192
- const operation = event.operation || (event.toolName === "shell_write" ? "write" : "exec");
193
- const command_value = operation === "write" ? event.inputPreview || event.cmd : event.cmd;
194
- const entry = {
195
- id: generateTuiId(),
196
- kind: "tool-approval-request",
197
- approval_id: event.approvalId,
198
- tool_name: event.toolName,
199
- operation,
200
- command_value,
201
- cwd: event.cwd,
202
- reason: event.reason,
203
- created_at: Date.now(),
204
- };
205
- this.message_list.add_entry(entry);
206
- this.schedule_render();
207
- }
208
- add_approval_result(event) {
209
- const entry = {
210
- id: generateTuiId(),
211
- kind: "tool-approval-result",
212
- approval_id: event.approvalId,
213
- tool_name: event.toolName,
214
- decision: event.decision,
215
- created_at: Date.now(),
216
- };
217
- this.message_list.add_entry(entry);
218
- this.schedule_render();
219
- }
220
180
  add_error(text) {
221
181
  const entry = {
222
182
  id: generateTuiId(),
@@ -227,15 +187,6 @@ export class StreamingUIController {
227
187
  this.message_list.add_entry(entry);
228
188
  this.schedule_render();
229
189
  }
230
- extract_event_turn_id(event) {
231
- if (event.type === "tool-approval-request" || event.type === "tool-approval-result") {
232
- return "";
233
- }
234
- if ("turnId" in event && typeof event.turnId === "string") {
235
- return event.turnId;
236
- }
237
- return "";
238
- }
239
190
  /**
240
191
  * 调度一次重绘。多次调用会被合并到下一个 STREAMING_UI_FLUSH_MS 节拍。
241
192
  */
@@ -1 +1 @@
1
- {"version":3,"file":"StreamingUI.js","sourceRoot":"","sources":["../../../../../src/city/agent/tui/controllers/StreamingUI.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StreamingUI.js","sourceRoot":"","sources":["../../../../../src/city/agent/tui/controllers/StreamingUI.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,10 @@
1
1
  /**
2
- * Agent Chat TUI 历史记录加载器。
2
+ * Agent Chat TUI canonical Session Message 历史加载器。
3
3
  *
4
- * 关键点(中文)
5
- * - 把远程 session 的 timeline 视图事件映射为 TUI 可渲染的 TranscriptEntry。
6
- * - 负责 tool-call / tool-result 的相邻配对,以及 action 事件的可读化。
7
- * - 纯函数,不依赖 pi-tui 实例,便于单元测试。
4
+ * 直接按 Message sequence 和 assistant parts 顺序生成条目,不构造第二套 timeline。
8
5
  */
9
- import type { AgentSessionTimelineEvent } from "@downcity/agent";
6
+ import type { SessionMessage } from "@downcity/agent";
10
7
  import type { TranscriptEntry } from "../types.js";
11
- /**
12
- * 将 timeline 事件列表转换为 transcript 条目列表。
13
- *
14
- * 关键点(中文)
15
- * - 按时间线顺序逐个处理,遇到 user / assistant 时先收尾 pending 的 tool-call。
16
- * - tool-result 会尝试合并到前一条未闭合的 tool-call;无匹配时降级为 status 提示。
17
- * - action 事件使用 actionTitle / actionDescription / actionState 组合展示。
18
- *
19
- * @param events 来自 `session.records({ view: "timeline" })` 的事件。
20
- * @returns 可直接送入 MessageList 的条目。
21
- */
22
- export declare function timeline_events_to_entries(events: AgentSessionTimelineEvent[]): TranscriptEntry[];
8
+ /** 将 canonical Session Message 列表转换为 transcript 条目。 */
9
+ export declare function session_messages_to_entries(messages: SessionMessage[]): TranscriptEntry[];
23
10
  //# sourceMappingURL=HistoryLoader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HistoryLoader.d.ts","sourceRoot":"","sources":["../../../../../src/city/agent/tui/history/HistoryLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,KAAK,EAAiB,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEhF;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,yBAAyB,EAAE,GAClC,eAAe,EAAE,CA2FnB"}
1
+ {"version":3,"file":"HistoryLoader.d.ts","sourceRoot":"","sources":["../../../../../src/city/agent/tui/history/HistoryLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,uDAAuD;AACvD,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,cAAc,EAAE,GACzB,eAAe,EAAE,CAInB"}
@@ -1,133 +1,89 @@
1
1
  /**
2
- * Agent Chat TUI 历史记录加载器。
2
+ * Agent Chat TUI canonical Session Message 历史加载器。
3
3
  *
4
- * 关键点(中文)
5
- * - 把远程 session 的 timeline 视图事件映射为 TUI 可渲染的 TranscriptEntry。
6
- * - 负责 tool-call / tool-result 的相邻配对,以及 action 事件的可读化。
7
- * - 纯函数,不依赖 pi-tui 实例,便于单元测试。
4
+ * 直接按 Message sequence 和 assistant parts 顺序生成条目,不构造第二套 timeline。
8
5
  */
9
- /**
10
- * 将 timeline 事件列表转换为 transcript 条目列表。
11
- *
12
- * 关键点(中文)
13
- * - 按时间线顺序逐个处理,遇到 user / assistant 时先收尾 pending 的 tool-call。
14
- * - tool-result 会尝试合并到前一条未闭合的 tool-call;无匹配时降级为 status 提示。
15
- * - action 事件使用 actionTitle / actionDescription / actionState 组合展示。
16
- *
17
- * @param events 来自 `session.records({ view: "timeline" })` 的事件。
18
- * @returns 可直接送入 MessageList 的条目。
19
- */
20
- export function timeline_events_to_entries(events) {
21
- const entries = [];
22
- let pending_tool_call = null;
23
- for (const event of events) {
24
- const created_at = event.ts ?? Date.now();
25
- switch (event.role) {
26
- case "user": {
27
- flush_pending_tool_call(entries, pending_tool_call);
28
- pending_tool_call = null;
29
- entries.push({
30
- id: event.id,
31
- kind: "user",
32
- text: event.text,
33
- created_at,
34
- });
35
- break;
36
- }
37
- case "assistant": {
38
- flush_pending_tool_call(entries, pending_tool_call);
39
- pending_tool_call = null;
40
- entries.push({
41
- id: event.id,
42
- kind: "assistant",
43
- text: event.text,
44
- streaming: false,
45
- created_at,
46
- });
47
- break;
48
- }
49
- case "tool-call": {
50
- flush_pending_tool_call(entries, pending_tool_call);
51
- pending_tool_call = {
52
- id: event.id,
6
+ /** 将 canonical Session Message 列表转换为 transcript 条目。 */
7
+ export function session_messages_to_entries(messages) {
8
+ return [...messages]
9
+ .sort((left, right) => left.sequence - right.sequence)
10
+ .flatMap((message) => message_to_entries(message));
11
+ }
12
+ function message_to_entries(message) {
13
+ if (message.type === "user") {
14
+ return [{
15
+ id: message.message_id,
16
+ kind: "user",
17
+ text: message.parts
18
+ .flatMap((part) => part.type === "text" ? [part.text] : [])
19
+ .join(""),
20
+ created_at: message.created_at,
21
+ }];
22
+ }
23
+ if (message.type === "action") {
24
+ return [{
25
+ id: message.message_id,
26
+ kind: "status",
27
+ text: [message.title, message.description, message.status]
28
+ .filter(Boolean)
29
+ .join(" · "),
30
+ created_at: message.created_at,
31
+ }];
32
+ }
33
+ if (message.type === "error") {
34
+ return [{
35
+ id: message.message_id,
36
+ kind: "error",
37
+ text: message.message,
38
+ created_at: message.created_at,
39
+ }];
40
+ }
41
+ return message.parts.flatMap((part) => {
42
+ if (part.type === "text") {
43
+ return part.text
44
+ ? [{
45
+ id: `${message.message_id}:${part.part_id}`,
46
+ kind: "assistant",
47
+ text: part.text,
48
+ streaming: false,
49
+ created_at: message.created_at,
50
+ }]
51
+ : [];
52
+ }
53
+ if (part.type === "tool") {
54
+ return [{
55
+ id: `${message.message_id}:${part.part_id}`,
53
56
  kind: "tool-call",
54
- tool_call_id: event.id,
55
- tool_name: event.toolName || "tool",
56
- args: safe_parse_json_object(event.text),
57
- status: "pending",
58
- created_at,
59
- };
60
- break;
61
- }
62
- case "tool-result": {
63
- if (pending_tool_call) {
64
- pending_tool_call.result = event.text;
65
- pending_tool_call.status = "success";
66
- entries.push(pending_tool_call);
67
- pending_tool_call = null;
68
- }
69
- else {
70
- entries.push({
71
- id: event.id,
72
- kind: "status",
73
- text: `Tool result: ${event.text}`,
74
- created_at,
75
- });
76
- }
77
- break;
78
- }
79
- case "action": {
80
- flush_pending_tool_call(entries, pending_tool_call);
81
- pending_tool_call = null;
82
- const action_text = [
83
- event.actionTitle,
84
- event.actionDescription,
85
- event.actionState,
86
- ].filter(Boolean).join(" · ");
87
- entries.push({
88
- id: event.id,
89
- kind: "status",
90
- text: action_text || event.text,
91
- created_at,
92
- });
93
- break;
94
- }
95
- default: {
96
- flush_pending_tool_call(entries, pending_tool_call);
97
- pending_tool_call = null;
98
- entries.push({
99
- id: event.id,
100
- kind: "status",
101
- text: event.text,
102
- created_at,
103
- });
104
- }
57
+ tool_call_id: part.tool_call_id,
58
+ tool_name: part.tool_name,
59
+ args: to_json_object(part.input),
60
+ ...(part.output !== undefined
61
+ ? { result: stringify_value(part.output) }
62
+ : part.error ? { result: part.error } : {}),
63
+ status: part.state === "completed"
64
+ ? "success"
65
+ : part.state === "failed"
66
+ ? "error"
67
+ : "pending",
68
+ created_at: message.created_at,
69
+ }];
105
70
  }
106
- }
107
- flush_pending_tool_call(entries, pending_tool_call);
108
- return entries;
71
+ return [];
72
+ });
109
73
  }
110
- /**
111
- * 将 pending 的 tool-call 刷入 entries。
112
- */
113
- function flush_pending_tool_call(entries, pending) {
114
- if (!pending)
115
- return;
116
- entries.push(pending);
74
+ function to_json_object(input) {
75
+ return input && typeof input === "object" && !Array.isArray(input)
76
+ ? input
77
+ : {};
117
78
  }
118
- /**
119
- * 安全地把文本解析为对象,失败时返回空对象。
120
- */
121
- function safe_parse_json_object(text) {
79
+ function stringify_value(input) {
80
+ if (typeof input === "string")
81
+ return input;
122
82
  try {
123
- const parsed = JSON.parse(text);
124
- if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
125
- return parsed;
126
- }
83
+ return JSON.stringify(input);
127
84
  }
128
85
  catch {
129
- // 忽略解析失败,降级为空参数对象。
86
+ return String(input);
130
87
  }
131
- return {};
132
88
  }
133
89
  //# sourceMappingURL=HistoryLoader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HistoryLoader.js","sourceRoot":"","sources":["../../../../../src/city/agent/tui/history/HistoryLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HistoryLoader.js","sourceRoot":"","sources":["../../../../../src/city/agent/tui/history/HistoryLoader.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { AgentSessionEvent } from "@downcity/agent";
1
+ import type { SessionMessageMutation } from "@downcity/agent";
2
2
  /**
3
3
  * `city agent chat` 交互式渲染相关类型。
4
4
  *
@@ -17,7 +17,7 @@ export interface AgentChatInteractiveRenderSnapshot {
17
17
  * 交互式 chat 渲染器协议。
18
18
  *
19
19
  * 关键点(中文)
20
- * - 统一约束 stdout 版与 TUI 版渲染器,便于复用同一套 SDK 事件消费逻辑。
20
+ * - 统一约束 stdout 版与 TUI 版渲染器,直接消费 canonical Mutation。
21
21
  */
22
22
  export interface AgentChatInteractiveRendererPort {
23
23
  /** 启动一轮新渲染。 */
@@ -25,7 +25,7 @@ export interface AgentChatInteractiveRendererPort {
25
25
  /** 绑定当前 turn id。 */
26
26
  attach_turn_id: (turn_id: string) => void;
27
27
  /** 渲染单个 session 事件。 */
28
- render_event: (event: AgentSessionEvent) => void;
28
+ render_event: (event: SessionMessageMutation) => void;
29
29
  /**
30
30
  * 当 unrestricted sandbox 审批请求到达时触发。
31
31
  *
@@ -1 +1 @@
1
- {"version":3,"file":"AgentChatInteractive.d.ts","sourceRoot":"","sources":["../../../src/city/types/AgentChatInteractive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,WAAW,kCAAkC;IACjD,iCAAiC;IACjC,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,gCAAgC;IAC/C,eAAe;IACf,UAAU,EAAE,MAAM,IAAI,CAAC;IAEvB,oBAAoB;IACpB,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C,uBAAuB;IACvB,YAAY,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAEjD;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE;QAC7B,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;KAChB,KAAK,IAAI,CAAC;IAEX,gBAAgB;IAChB,WAAW,EAAE,MAAM,kCAAkC,CAAC;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB"}
1
+ {"version":3,"file":"AgentChatInteractive.d.ts","sourceRoot":"","sources":["../../../src/city/types/AgentChatInteractive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAE9D;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,WAAW,kCAAkC;IACjD,iCAAiC;IACjC,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,gCAAgC;IAC/C,eAAe;IACf,UAAU,EAAE,MAAM,IAAI,CAAC;IAEvB,oBAAoB;IACpB,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C,uBAAuB;IACvB,YAAY,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAEtD;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE;QAC7B,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;KAChB,KAAK,IAAI,CAAC;IAEX,gBAAgB;IAChB,WAAW,EAAE,MAAM,kCAAkC,CAAC;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "downcity",
3
- "version": "1.1.308",
3
+ "version": "1.1.312",
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.217",
27
- "@downcity/city": "^0.2.159",
28
- "@downcity/plugins": "^1.0.159",
29
- "@downcity/server": "^0.1.63",
30
- "@downcity/shell": "^0.1.81",
31
- "@downcity/type": "0.1.114",
26
+ "@downcity/agent": "^1.1.222",
27
+ "@downcity/city": "^0.2.163",
28
+ "@downcity/plugins": "^1.0.163",
29
+ "@downcity/server": "^0.1.67",
30
+ "@downcity/shell": "^0.1.85",
31
+ "@downcity/type": "0.1.118",
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",