downcity 1.1.485 → 1.1.486

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.
Files changed (183) hide show
  1. package/bin/city/agent/AgentChat.js +2 -2
  2. package/bin/city/agent/AgentChat.js.map +1 -1
  3. package/bin/city/agent/AgentChatHelpers.d.ts +25 -20
  4. package/bin/city/agent/AgentChatHelpers.d.ts.map +1 -1
  5. package/bin/city/agent/AgentChatHelpers.js +190 -169
  6. package/bin/city/agent/AgentChatHelpers.js.map +1 -1
  7. package/bin/city/agent/AgentChatRemote.d.ts +22 -19
  8. package/bin/city/agent/AgentChatRemote.d.ts.map +1 -1
  9. package/bin/city/agent/AgentChatRemote.js +131 -65
  10. package/bin/city/agent/AgentChatRemote.js.map +1 -1
  11. package/bin/city/agent/AgentChatTypes.d.ts +2 -17
  12. package/bin/city/agent/AgentChatTypes.d.ts.map +1 -1
  13. package/bin/city/agent/AgentChatTypes.js +1 -8
  14. package/bin/city/agent/AgentChatTypes.js.map +1 -1
  15. package/bin/city/agent/AgentHttpGateway.d.ts +1 -1
  16. package/bin/city/agent/AgentHttpGateway.js +4 -4
  17. package/bin/city/agent/AgentHttpGateway.js.map +1 -1
  18. package/bin/city/agent/AgentManager.d.ts +1 -1
  19. package/bin/city/agent/AgentManager.d.ts.map +1 -1
  20. package/bin/city/agent/AgentManager.js +9 -8
  21. package/bin/city/agent/AgentManager.js.map +1 -1
  22. package/bin/city/agent/AgentManagerHelpers.d.ts.map +1 -1
  23. package/bin/city/agent/AgentManagerHelpers.js +7 -4
  24. package/bin/city/agent/AgentManagerHelpers.js.map +1 -1
  25. package/bin/city/agent/AgentManagerTypes.d.ts +2 -0
  26. package/bin/city/agent/AgentManagerTypes.d.ts.map +1 -1
  27. package/bin/city/agent/AgentSelection.d.ts +17 -1
  28. package/bin/city/agent/AgentSelection.d.ts.map +1 -1
  29. package/bin/city/agent/AgentSelection.js +20 -5
  30. package/bin/city/agent/AgentSelection.js.map +1 -1
  31. package/bin/city/agent/CityLifecycle.d.ts +1 -1
  32. package/bin/city/agent/CityLifecycle.d.ts.map +1 -1
  33. package/bin/city/agent/CityLifecycle.js +1 -1
  34. package/bin/city/agent/CityLifecycle.js.map +1 -1
  35. package/bin/city/agent/CliAgentContext.d.ts +8 -8
  36. package/bin/city/agent/CliAgentContext.d.ts.map +1 -1
  37. package/bin/city/agent/CliCityRuntime.js +16 -16
  38. package/bin/city/agent/CliCityRuntime.js.map +1 -1
  39. package/bin/city/agent/Init.d.ts +1 -1
  40. package/bin/city/agent/Init.js +3 -3
  41. package/bin/city/agent/Init.js.map +1 -1
  42. package/bin/city/agent/Run.d.ts +1 -1
  43. package/bin/city/agent/Run.js +1 -1
  44. package/bin/city/agent/control/ExecuteBySession.d.ts +1 -1
  45. package/bin/city/agent/control/ExecuteBySession.js +1 -1
  46. package/bin/city/agent/http/control/ControlApiRoutes.js +2 -2
  47. package/bin/city/agent/http/control/ControlApiRoutes.js.map +1 -1
  48. package/bin/city/agent/http/control/ControlMessengerAccessRoutes.d.ts +17 -0
  49. package/bin/city/agent/http/control/ControlMessengerAccessRoutes.d.ts.map +1 -0
  50. package/bin/city/agent/http/control/{ControlChatAccessRoutes.js → ControlMessengerAccessRoutes.js} +26 -26
  51. package/bin/city/agent/http/control/ControlMessengerAccessRoutes.js.map +1 -0
  52. package/bin/city/agent/http/control/OverviewRoutes.d.ts +2 -2
  53. package/bin/city/agent/http/control/OverviewRoutes.js +8 -8
  54. package/bin/city/agent/http/control/OverviewRoutes.js.map +1 -1
  55. package/bin/city/agent/http/control/SessionRoutes.js +2 -2
  56. package/bin/city/agent/http/control/SessionRoutes.js.map +1 -1
  57. package/bin/city/agent/http/control/TaskRoutes.d.ts +1 -1
  58. package/bin/city/agent/http/control/TaskRoutes.js +16 -16
  59. package/bin/city/agent/http/control/TaskRoutes.js.map +1 -1
  60. package/bin/city/agent/http/control/types/{ChatAccessRoutes.d.ts → MessengerAccessRoutes.d.ts} +5 -5
  61. package/bin/city/agent/http/control/types/MessengerAccessRoutes.d.ts.map +1 -0
  62. package/bin/city/agent/http/control/types/{ChatAccessRoutes.js → MessengerAccessRoutes.js} +1 -1
  63. package/bin/city/agent/http/control/types/MessengerAccessRoutes.js.map +1 -0
  64. package/bin/city/agent/http/powers/powers.d.ts +25 -0
  65. package/bin/city/agent/http/powers/powers.d.ts.map +1 -0
  66. package/bin/city/agent/http/powers/powers.js +63 -0
  67. package/bin/city/agent/http/powers/powers.js.map +1 -0
  68. package/bin/city/agent/tui/AgentChatTuiCoordinator.d.ts.map +1 -1
  69. package/bin/city/agent/tui/AgentChatTuiCoordinator.js +11 -8
  70. package/bin/city/agent/tui/AgentChatTuiCoordinator.js.map +1 -1
  71. package/bin/city/agent/tui/components/AssistantMessage.d.ts.map +1 -1
  72. package/bin/city/agent/tui/components/AssistantMessage.js +1 -2
  73. package/bin/city/agent/tui/components/AssistantMessage.js.map +1 -1
  74. package/bin/city/agent/tui/dialogs/QuestionDialog.js +8 -8
  75. package/bin/city/agent/tui/dialogs/QuestionDialog.js.map +1 -1
  76. package/bin/city/agent/tui/presentation/ToolActivityPresentation.js +11 -7
  77. package/bin/city/agent/tui/presentation/ToolActivityPresentation.js.map +1 -1
  78. package/bin/city/command/CityResetCommand.js +1 -1
  79. package/bin/city/command/CityResetCommand.js.map +1 -1
  80. package/bin/city/command/PowerCommand.d.ts +11 -0
  81. package/bin/city/command/PowerCommand.d.ts.map +1 -0
  82. package/bin/city/command/{PluginCommand.js → PowerCommand.js} +67 -69
  83. package/bin/city/command/PowerCommand.js.map +1 -0
  84. package/bin/city/index.js +2 -2
  85. package/bin/city/index.js.map +1 -1
  86. package/bin/city/process/daemon/Api.d.ts +2 -2
  87. package/bin/city/process/daemon/Api.js +1 -1
  88. package/bin/city/process/power/InteractivePowerManager.d.ts +4 -0
  89. package/bin/city/process/power/InteractivePowerManager.d.ts.map +1 -0
  90. package/bin/city/process/power/InteractivePowerManager.js +104 -0
  91. package/bin/city/process/power/InteractivePowerManager.js.map +1 -0
  92. package/bin/city/process/power/PowerCatalog.d.ts +11 -0
  93. package/bin/city/process/power/PowerCatalog.d.ts.map +1 -0
  94. package/bin/city/process/power/PowerCatalog.js +57 -0
  95. package/bin/city/process/power/PowerCatalog.js.map +1 -0
  96. package/bin/city/process/power/PowerInstaller.d.ts +16 -0
  97. package/bin/city/process/power/PowerInstaller.d.ts.map +1 -0
  98. package/bin/city/process/{plugin/PluginInstaller.js → power/PowerInstaller.js} +115 -115
  99. package/bin/city/process/power/PowerInstaller.js.map +1 -0
  100. package/bin/city/process/registry/CityPaths.d.ts +1 -1
  101. package/bin/city/process/registry/CityPaths.js +1 -1
  102. package/bin/city/process/registry/PowerRepository.d.ts +24 -0
  103. package/bin/city/process/registry/PowerRepository.d.ts.map +1 -0
  104. package/bin/city/process/registry/PowerRepository.js +53 -0
  105. package/bin/city/process/registry/PowerRepository.js.map +1 -0
  106. package/bin/city/runtime/AgentAssembly.d.ts +9 -9
  107. package/bin/city/runtime/AgentAssembly.d.ts.map +1 -1
  108. package/bin/city/runtime/AgentAssembly.js +17 -11
  109. package/bin/city/runtime/AgentAssembly.js.map +1 -1
  110. package/bin/city/runtime/CityReset.d.ts +1 -1
  111. package/bin/city/runtime/CityReset.js +1 -1
  112. package/bin/city/runtime/LocalCliSchema.d.ts +1 -1
  113. package/bin/city/runtime/LocalCliSchema.js +1 -1
  114. package/bin/city/runtime/LocalData.d.ts +4 -4
  115. package/bin/city/runtime/LocalData.d.ts.map +1 -1
  116. package/bin/city/runtime/LocalData.js +4 -4
  117. package/bin/city/runtime/LocalData.js.map +1 -1
  118. package/bin/city/sandbox/PlatformSandbox.d.ts +5 -3
  119. package/bin/city/sandbox/PlatformSandbox.d.ts.map +1 -1
  120. package/bin/city/sandbox/PlatformSandbox.js +5 -3
  121. package/bin/city/sandbox/PlatformSandbox.js.map +1 -1
  122. package/bin/city/shared/CityManager.d.ts +1 -1
  123. package/bin/city/shared/CityManager.js +4 -4
  124. package/bin/city/shared/CityManager.js.map +1 -1
  125. package/bin/city/shared/PowerTargetSupport.d.ts +14 -0
  126. package/bin/city/shared/PowerTargetSupport.d.ts.map +1 -0
  127. package/bin/city/shared/{PluginTargetSupport.js → PowerTargetSupport.js} +3 -21
  128. package/bin/city/shared/PowerTargetSupport.js.map +1 -0
  129. package/bin/city/types/ChatSessionSubscription.d.ts +2 -2
  130. package/bin/city/types/agent/AgentSelection.d.ts +3 -1
  131. package/bin/city/types/agent/AgentSelection.d.ts.map +1 -1
  132. package/bin/city/types/config/DowncityConfig.d.ts +1 -1
  133. package/bin/city/types/power/PowerCatalog.d.ts +29 -0
  134. package/bin/city/types/power/PowerCatalog.d.ts.map +1 -0
  135. package/bin/city/types/power/PowerCatalog.js +3 -0
  136. package/bin/city/types/power/PowerCatalog.js.map +1 -0
  137. package/bin/city/types/power/PowerDefinition.d.ts +31 -0
  138. package/bin/city/types/power/PowerDefinition.d.ts.map +1 -0
  139. package/bin/city/types/power/PowerDefinition.js +6 -0
  140. package/bin/city/types/power/PowerDefinition.js.map +1 -0
  141. package/bin/federation/fedman/assets/{index-C8ByvzW3.css → index-D8k7vCvK.css} +1 -1
  142. package/bin/federation/fedman/assets/index-Du-ZeylJ.js +248 -0
  143. package/bin/federation/fedman/index.html +2 -2
  144. package/package.json +8 -8
  145. package/bin/city/agent/http/control/ControlChatAccessRoutes.d.ts +0 -17
  146. package/bin/city/agent/http/control/ControlChatAccessRoutes.d.ts.map +0 -1
  147. package/bin/city/agent/http/control/ControlChatAccessRoutes.js.map +0 -1
  148. package/bin/city/agent/http/control/types/ChatAccessRoutes.d.ts.map +0 -1
  149. package/bin/city/agent/http/control/types/ChatAccessRoutes.js.map +0 -1
  150. package/bin/city/agent/http/plugins/plugins.d.ts +0 -25
  151. package/bin/city/agent/http/plugins/plugins.d.ts.map +0 -1
  152. package/bin/city/agent/http/plugins/plugins.js +0 -63
  153. package/bin/city/agent/http/plugins/plugins.js.map +0 -1
  154. package/bin/city/command/PluginCommand.d.ts +0 -11
  155. package/bin/city/command/PluginCommand.d.ts.map +0 -1
  156. package/bin/city/command/PluginCommand.js.map +0 -1
  157. package/bin/city/process/plugin/InteractivePluginManager.d.ts +0 -4
  158. package/bin/city/process/plugin/InteractivePluginManager.d.ts.map +0 -1
  159. package/bin/city/process/plugin/InteractivePluginManager.js +0 -104
  160. package/bin/city/process/plugin/InteractivePluginManager.js.map +0 -1
  161. package/bin/city/process/plugin/PluginCatalog.d.ts +0 -11
  162. package/bin/city/process/plugin/PluginCatalog.d.ts.map +0 -1
  163. package/bin/city/process/plugin/PluginCatalog.js +0 -57
  164. package/bin/city/process/plugin/PluginCatalog.js.map +0 -1
  165. package/bin/city/process/plugin/PluginInstaller.d.ts +0 -16
  166. package/bin/city/process/plugin/PluginInstaller.d.ts.map +0 -1
  167. package/bin/city/process/plugin/PluginInstaller.js.map +0 -1
  168. package/bin/city/process/registry/PluginRepository.d.ts +0 -24
  169. package/bin/city/process/registry/PluginRepository.d.ts.map +0 -1
  170. package/bin/city/process/registry/PluginRepository.js +0 -53
  171. package/bin/city/process/registry/PluginRepository.js.map +0 -1
  172. package/bin/city/shared/PluginTargetSupport.d.ts +0 -25
  173. package/bin/city/shared/PluginTargetSupport.d.ts.map +0 -1
  174. package/bin/city/shared/PluginTargetSupport.js.map +0 -1
  175. package/bin/city/types/plugin/PluginCatalog.d.ts +0 -29
  176. package/bin/city/types/plugin/PluginCatalog.d.ts.map +0 -1
  177. package/bin/city/types/plugin/PluginCatalog.js +0 -3
  178. package/bin/city/types/plugin/PluginCatalog.js.map +0 -1
  179. package/bin/city/types/plugin/PluginDefinition.d.ts +0 -31
  180. package/bin/city/types/plugin/PluginDefinition.d.ts.map +0 -1
  181. package/bin/city/types/plugin/PluginDefinition.js +0 -6
  182. package/bin/city/types/plugin/PluginDefinition.js.map +0 -1
  183. package/bin/federation/fedman/assets/index-BY57VGUE.js +0 -10
@@ -11,7 +11,7 @@
11
11
  import { emitCliBlock } from "../../shared/CliReporter.js";
12
12
  import { run_agent_chat_navigation } from "./AgentChatNavigation.js";
13
13
  import { run_agent_configuration } from "./AgentConfiguration.js";
14
- import { normalizeChatMessage, resolveAgentChatSessionOptions, resolveChatTargetAgentId, resolveInteractiveChatSession, runOneShotChat, } from "./AgentChatHelpers.js";
14
+ import { normalizeChatMessage, resolveAgentChatEntry, resolveAgentChatSessionOptions, resolveChatTargetAgentId, runOneShotChat, } from "./AgentChatHelpers.js";
15
15
  /**
16
16
  * `city agent chat` 统一入口。
17
17
  */
@@ -53,7 +53,7 @@ export async function chatCommand(options) {
53
53
  });
54
54
  return;
55
55
  }
56
- const interactive = await resolveInteractiveChatSession({
56
+ const interactive = await resolveAgentChatEntry({
57
57
  agent_id,
58
58
  options,
59
59
  transport: {
@@ -1 +1 @@
1
- {"version":3,"file":"AgentChat.js","sourceRoot":"","sources":["../../../src/city/agent/AgentChat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,OAAO,EACL,oBAAoB,EACpB,8BAA8B,EAC9B,wBAAwB,EACxB,6BAA6B,EAC7B,cAAc,GACf,MAAM,kCAAkC,CAAC;AAE1C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA4B;IAC5D,MAAM,gBAAgB,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;IACjE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAC9B,YAAY,CAAC;YACX,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,8BAA8B;YACrC,IAAI,EAAE,gBAAgB,CAAC,KAAK;SAC7B,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEtB,MAAM,cAAc,GAAG,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3E,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,cAAc,CAAC;YACnB,QAAQ;YACR,OAAO,EAAE,cAAc;YACvB,OAAO;SACR,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC1B,YAAY,CAAC;YACX,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,8BAA8B;YACrC,IAAI,EAAE,+EAA+E;SACtF,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClD,YAAY,CAAC;YACX,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,+BAA+B;YACtC,IAAI,EAAE,+FAA+F;SACtG,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,6BAA6B,CAAC;QACtD,QAAQ;QACR,OAAO;QACP,SAAS,EAAE;YACT,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB;KACF,CAAC,CAAC;IACH,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACzB,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;YACtB,YAAY,CAAC;gBACX,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,mBAAmB;gBAC1B,IAAI,EAAE,WAAW,CAAC,KAAK;aACxB,CAAC,CAAC;QACL,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,yBAAyB,CAAC;YAC9B,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,UAAU;YACzC,YAAY,EAAE,WAAW,CAAC,YAAY;YACtC,eAAe,EAAE,uBAAuB;SACzC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,WAAW,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IACzC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"AgentChat.js","sourceRoot":"","sources":["../../../src/city/agent/AgentChat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,8BAA8B,EAC9B,wBAAwB,EACxB,cAAc,GACf,MAAM,kCAAkC,CAAC;AAE1C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA4B;IAC5D,MAAM,gBAAgB,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;IACjE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAC9B,YAAY,CAAC;YACX,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,8BAA8B;YACrC,IAAI,EAAE,gBAAgB,CAAC,KAAK;SAC7B,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEtB,MAAM,cAAc,GAAG,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3E,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,cAAc,CAAC;YACnB,QAAQ;YACR,OAAO,EAAE,cAAc;YACvB,OAAO;SACR,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC1B,YAAY,CAAC;YACX,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,8BAA8B;YACrC,IAAI,EAAE,+EAA+E;SACtF,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClD,YAAY,CAAC;YACX,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,+BAA+B;YACtC,IAAI,EAAE,+FAA+F;SACtG,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,qBAAqB,CAAC;QAC9C,QAAQ;QACR,OAAO;QACP,SAAS,EAAE;YACT,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB;KACF,CAAC,CAAC;IACH,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACzB,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;YACtB,YAAY,CAAC;gBACX,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,mBAAmB;gBAC1B,IAAI,EAAE,WAAW,CAAC,KAAK;aACxB,CAAC,CAAC;QACL,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,yBAAyB,CAAC;YAC9B,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,UAAU;YACzC,YAAY,EAAE,WAAW,CAAC,YAAY;YACtC,eAAe,EAAE,uBAAuB;SACzC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,WAAW,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IACzC,CAAC;AACH,CAAC"}
@@ -4,54 +4,59 @@
4
4
  * 关键点(中文)
5
5
  * - 统一覆盖交互式持续对话与一次性消息模式,不再保留独立 `quest` 命令。
6
6
  * - 目标 Agent 始终按持久化 Agent 配置解析,不依赖当前工作目录。
7
- * - 交互模式无显式选择时直接复用最近会话;Session 列表留在 Chat 内按需打开。
8
- * - 远程访问统一走 `RemoteAgent({ url })`,不再在 CLI 侧维护第二套 HTTP SDK transport。
9
- * - 远程连接、session 创建/列表等操作委托给 `AgentChatRemote.ts`。
7
+ * - 无显式选择时跟随最近会话所属 Workspace;没有历史会话才在当前 Workspace 新建。
8
+ * - 会话发现走 Agent 级只读读取器,读写仍必须进入确定的 Workspace。
9
+ * - 远程访问统一走 `RemoteAgent({ url })`,连接与会话操作委托给 `AgentChatRemote.ts`。
10
10
  */
11
11
  import { type AgentChatClient } from "./AgentChatRemote.js";
12
12
  import type { AgentChatCliOptions, AgentChatExecutionOutcome, AgentChatSessionOptions } from "./AgentChatTypes.js";
13
+ /**
14
+ * 一次 chat 执行解析后的入口目标。
15
+ */
13
16
  export type ResolvedAgentChatTarget = {
14
17
  /** 目标 agent id。 */
15
18
  agent_id: string;
16
- /** 目标项目根目录。 */
19
+ /** 本次执行进入的 Workspace ID。 */
20
+ workspace_id: string;
21
+ /** 本次执行进入的 Workspace 绝对路径。 */
17
22
  project_root: string;
18
- /** 当前 chat 绑定的 session_id。 */
23
+ /** 当前 chat 使用的 session_id。 */
19
24
  session_id: string;
20
- /** 当前 chat 是否要求创建全新的 session。 */
21
- createNewSession: boolean;
22
25
  };
23
26
  export declare function normalizeChatMessage(input: string): string;
24
27
  /**
25
- * 解析 `city agent chat` 的 session 选择语义。
28
+ * 解析 `city agent chat` 的显式 session 选择语义。
26
29
  *
27
30
  * 关键点(中文)
28
- * - 无显式选择时使用最近活跃会话,没有历史时才创建默认会话。
29
- * - `--new-session` 生成不可预测的新 ID,避免用户手动清理旧上下文。
31
+ * - 无显式选择时返回空 session,由入口解析器跟随最近会话。
30
32
  * - `--session-id` 与 `--new-session` 互斥,避免“复用”和“新建”语义冲突。
31
33
  */
32
34
  export declare function resolveAgentChatSessionOptions(input?: AgentChatSessionOptions): {
33
35
  success: true;
34
- session_id: string;
36
+ /** 显式指定的 session_id;为空表示未指定。 */
37
+ explicit_session_id: string;
38
+ /** 是否要求创建全新的 session。 */
35
39
  create_new_session: boolean;
36
40
  } | {
37
41
  success: false;
38
42
  error: string;
39
43
  };
40
- export declare function hasExplicitSessionSelection(input: AgentChatSessionOptions): boolean;
41
44
  export declare function resolveChatTargetAgentId(inputId?: string): Promise<string | null>;
42
- export declare function resolveAgentChatTarget(agentIdInput: string, sessionOptions?: AgentChatSessionOptions): Promise<{
43
- success: true;
44
- target: ResolvedAgentChatTarget;
45
- } | {
46
- success: false;
47
- outcome: AgentChatExecutionOutcome;
48
- }>;
49
45
  export declare function printAssistantReply(replyText: string): void;
50
46
  export declare function printAgentChatFailure(params: {
51
47
  agent_id: string;
52
48
  error?: string;
53
49
  }): void;
54
- export declare function resolveInteractiveChatSession(params: {
50
+ /**
51
+ * 解析一次 chat 的入口目标,并返回已绑定正确 Workspace 的远程客户端。
52
+ *
53
+ * 关键点(中文)
54
+ * - 显式 `--session-id` 必须存在,并按该 Session 的 Workspace 进入。
55
+ * - 无显式选择时跟随最近 chat Session 所属 Workspace。
56
+ * - 只有在没有任何历史会话时,才在 `--workspace` 或当前目录 Workspace 中新建 Session。
57
+ * - Session 所属 Workspace 已注销时回落到入口 Workspace 并新建会话。
58
+ */
59
+ export declare function resolveAgentChatEntry(params: {
55
60
  agent_id: string;
56
61
  options: AgentChatCliOptions;
57
62
  transport?: {
@@ -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":"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"}
@@ -4,26 +4,23 @@
4
4
  * 关键点(中文)
5
5
  * - 统一覆盖交互式持续对话与一次性消息模式,不再保留独立 `quest` 命令。
6
6
  * - 目标 Agent 始终按持久化 Agent 配置解析,不依赖当前工作目录。
7
- * - 交互模式无显式选择时直接复用最近会话;Session 列表留在 Chat 内按需打开。
8
- * - 远程访问统一走 `RemoteAgent({ url })`,不再在 CLI 侧维护第二套 HTTP SDK transport。
9
- * - 远程连接、session 创建/列表等操作委托给 `AgentChatRemote.ts`。
7
+ * - 无显式选择时跟随最近会话所属 Workspace;没有历史会话才在当前 Workspace 新建。
8
+ * - 会话发现走 Agent 级只读读取器,读写仍必须进入确定的 Workspace。
9
+ * - 远程访问统一走 `RemoteAgent({ url })`,连接与会话操作委托给 `AgentChatRemote.ts`。
10
10
  */
11
11
  import prompts from "../tui/Prompts.js";
12
12
  import { emitCliBlock } from "../../shared/CliReporter.js";
13
13
  import { printResult } from "../utils/cli/CliOutput.js";
14
- import { resolveProjectRootByAgentId, validateAgentProjectRoot, } from "../shared/PluginTargetSupport.js";
15
- import { list_registered_agents_for_cli } from "./AgentSelection.js";
16
- import { createAgentChatSessionId, createRemoteAgent, createRemoteChatSession, getOrCreateRemoteSession, buildAgentChatFailureText, listRemoteChatSessions, } from "./AgentChatRemote.js";
17
- import { AGENT_CHAT_DEFAULT_SESSION_ID, } from "./AgentChatTypes.js";
14
+ import { format_agent_display_label, list_registered_agents_for_cli, resolve_cli_agent_target, resolve_cli_workspace, } from "./AgentSelection.js";
15
+ import { buildAgentChatFailureText, createAgentSessionReader, createRemoteAgent, createRemoteChatSession, listRemoteChatSessions, } from "./AgentChatRemote.js";
18
16
  export function normalizeChatMessage(input) {
19
17
  return String(input || "").trim();
20
18
  }
21
19
  /**
22
- * 解析 `city agent chat` 的 session 选择语义。
20
+ * 解析 `city agent chat` 的显式 session 选择语义。
23
21
  *
24
22
  * 关键点(中文)
25
- * - 无显式选择时使用最近活跃会话,没有历史时才创建默认会话。
26
- * - `--new-session` 生成不可预测的新 ID,避免用户手动清理旧上下文。
23
+ * - 无显式选择时返回空 session,由入口解析器跟随最近会话。
27
24
  * - `--session-id` 与 `--new-session` 互斥,避免“复用”和“新建”语义冲突。
28
25
  */
29
26
  export function resolveAgentChatSessionOptions(input) {
@@ -35,22 +32,12 @@ export function resolveAgentChatSessionOptions(input) {
35
32
  error: "`--session-id` and `--new-session` cannot be used together.",
36
33
  };
37
34
  }
38
- if (should_create_new_session) {
39
- return {
40
- success: true,
41
- session_id: createAgentChatSessionId(),
42
- create_new_session: true,
43
- };
44
- }
45
35
  return {
46
36
  success: true,
47
- session_id: explicit_session_id || AGENT_CHAT_DEFAULT_SESSION_ID,
48
- create_new_session: false,
37
+ explicit_session_id,
38
+ create_new_session: should_create_new_session,
49
39
  };
50
40
  }
51
- export function hasExplicitSessionSelection(input) {
52
- return Boolean(String(input.session_id || "").trim() || input.newSession === true);
53
- }
54
41
  export async function resolveChatTargetAgentId(inputId) {
55
42
  const explicit = String(inputId || "").trim();
56
43
  if (explicit)
@@ -77,7 +64,7 @@ export async function resolveChatTargetAgentId(inputId) {
77
64
  name: "agent_id",
78
65
  message: "选择要聊天的 Agent",
79
66
  choices: registered_agents.map((agent) => ({
80
- title: agent.agent_id,
67
+ title: format_agent_display_label(agent),
81
68
  description: agent.status === "loaded" ? "City active" : "City inactive",
82
69
  value: agent.agent_id,
83
70
  })),
@@ -93,69 +80,6 @@ export async function resolveChatTargetAgentId(inputId) {
93
80
  }
94
81
  return agent_id;
95
82
  }
96
- export async function resolveAgentChatTarget(agentIdInput, sessionOptions) {
97
- const agent_id = String(agentIdInput || "").trim();
98
- const resolved_session = resolveAgentChatSessionOptions(sessionOptions);
99
- const session_id = resolved_session.success
100
- ? resolved_session.session_id
101
- : AGENT_CHAT_DEFAULT_SESSION_ID;
102
- if (!resolved_session.success) {
103
- return {
104
- success: false,
105
- outcome: {
106
- agent_id,
107
- session_id,
108
- success: false,
109
- error: resolved_session.error,
110
- },
111
- };
112
- }
113
- if (!agent_id) {
114
- return {
115
- success: false,
116
- outcome: {
117
- agent_id: "",
118
- session_id,
119
- success: false,
120
- error: "Missing target agent id.",
121
- },
122
- };
123
- }
124
- const resolved = await resolveProjectRootByAgentId(agent_id);
125
- if (!resolved.project_root) {
126
- return {
127
- success: false,
128
- outcome: {
129
- agent_id,
130
- session_id,
131
- success: false,
132
- error: resolved.error || "Failed to resolve agent project path",
133
- },
134
- };
135
- }
136
- const pathError = validateAgentProjectRoot(resolved.project_root);
137
- if (pathError) {
138
- return {
139
- success: false,
140
- outcome: {
141
- agent_id,
142
- project_root: resolved.project_root,
143
- session_id,
144
- success: false,
145
- error: pathError,
146
- },
147
- };
148
- }
149
- return {
150
- success: true,
151
- target: {
152
- agent_id,
153
- project_root: resolved.project_root,
154
- session_id,
155
- createNewSession: resolved_session.create_new_session,
156
- },
157
- };
158
- }
159
83
  export function printAssistantReply(replyText) {
160
84
  const text = String(replyText || "").trim();
161
85
  if (!text) {
@@ -184,122 +108,223 @@ export function printAgentChatFailure(params) {
184
108
  ],
185
109
  });
186
110
  }
187
- export async function resolveInteractiveChatSession(params) {
188
- const preselected_session = resolveAgentChatSessionOptions(params.options);
189
- if (!preselected_session.success) {
190
- return {
191
- success: false,
192
- error: preselected_session.error,
193
- };
111
+ /**
112
+ * 解析一次 chat 的入口目标,并返回已绑定正确 Workspace 的远程客户端。
113
+ *
114
+ * 关键点(中文)
115
+ * - 显式 `--session-id` 必须存在,并按该 Session 的 Workspace 进入。
116
+ * - 无显式选择时跟随最近 chat Session 所属 Workspace。
117
+ * - 只有在没有任何历史会话时,才在 `--workspace` 或当前目录 Workspace 中新建 Session。
118
+ * - Session 所属 Workspace 已注销时回落到入口 Workspace 并新建会话。
119
+ */
120
+ export async function resolveAgentChatEntry(params) {
121
+ const agent_id = String(params.agent_id || "").trim();
122
+ if (!agent_id)
123
+ return { success: false, error: "Missing target agent id." };
124
+ const selected = resolveAgentChatSessionOptions(params.options);
125
+ if (!selected.success)
126
+ return { success: false, error: selected.error };
127
+ try {
128
+ return await open_agent_chat_entry({
129
+ agent_id: agent_id,
130
+ selected: selected,
131
+ options: params.options,
132
+ transport: params.transport,
133
+ });
194
134
  }
195
- const resolved = await resolveAgentChatTarget(params.agent_id, {
196
- session_id: preselected_session.session_id,
197
- newSession: false,
198
- });
199
- if (!resolved.success) {
135
+ catch (error) {
200
136
  return {
201
137
  success: false,
202
- error: resolved.outcome.error,
138
+ error: error instanceof Error ? error.message : String(error),
203
139
  };
204
140
  }
205
- resolved.target.createNewSession = preselected_session.create_new_session;
141
+ }
142
+ /** 打开 chat 入口;失败时抛出,由公开入口统一转为结果。 */
143
+ async function open_agent_chat_entry(params) {
144
+ const agent_id = params.agent_id;
145
+ const explicit_workspace = String(params.options.workspace || "").trim();
146
+ const discovery = { agent_id: agent_id, transport: params.transport };
147
+ let session_id = "";
148
+ let workspace_id = "";
149
+ let create_new_session = params.selected.create_new_session;
150
+ if (!create_new_session && params.selected.explicit_session_id) {
151
+ const session = await find_chat_session({
152
+ ...discovery,
153
+ session_id: params.selected.explicit_session_id,
154
+ });
155
+ if (!session) {
156
+ return { success: false, error: `Session not found: ${params.selected.explicit_session_id}` };
157
+ }
158
+ if (explicit_workspace && session.workspace_id && session.workspace_id !== explicit_workspace) {
159
+ return {
160
+ success: false,
161
+ error: `Session "${session.session_id}" belongs to Workspace "${session.workspace_id}", which does not match --workspace "${explicit_workspace}".`,
162
+ };
163
+ }
164
+ if (!session.workspace_id) {
165
+ return {
166
+ success: false,
167
+ error: `Session "${session.session_id}" is not bound to a Workspace.`,
168
+ };
169
+ }
170
+ session_id = session.session_id;
171
+ workspace_id = session.workspace_id;
172
+ }
173
+ else if (!create_new_session) {
174
+ // 未指定 `--workspace` 时跟随最近会话所属 Workspace;显式指定时只在该 Workspace 内查找。
175
+ const scoped_workspace_id = explicit_workspace
176
+ ? (await resolve_cli_workspace(explicit_workspace)).workspace_id
177
+ : undefined;
178
+ const latest = await find_latest_chat_session({
179
+ ...discovery,
180
+ ...(scoped_workspace_id ? { workspace_id: scoped_workspace_id } : {}),
181
+ });
182
+ if (latest?.workspace_id) {
183
+ session_id = latest.session_id;
184
+ workspace_id = latest.workspace_id;
185
+ }
186
+ else {
187
+ create_new_session = true;
188
+ }
189
+ }
190
+ const target = await resolve_chat_entry_target({
191
+ agent_id: agent_id,
192
+ workspace_id: workspace_id,
193
+ fallback_workspace_input: explicit_workspace,
194
+ });
206
195
  const remote_agent = await createRemoteAgent({
207
- agent_id: resolved.target.agent_id,
208
- workspace: params.options.workspace,
196
+ agent_id: target.agent_id,
197
+ workspace: target.workspace_id,
209
198
  transport: params.transport,
210
199
  });
211
- if (hasExplicitSessionSelection(params.options)) {
212
- if (resolved.target.createNewSession) {
213
- const created = await createRemoteChatSession({
214
- remote_agent,
215
- session_id: preselected_session.session_id,
216
- });
217
- resolved.target.session_id = created.session_id;
218
- resolved.target.createNewSession = false;
200
+ if (create_new_session) {
201
+ try {
202
+ session_id = (await createRemoteChatSession({ remote_agent })).session_id;
203
+ }
204
+ catch (error) {
205
+ await remote_agent.close().catch(() => undefined);
206
+ throw error;
219
207
  }
220
- return {
221
- success: true,
222
- target: resolved.target,
223
- remote_agent,
224
- };
225
- }
226
- // 关键点(中文):未显式指定 session 时,直接复用最近活跃的会话,
227
- // 不再弹出 SessionPicker;没有任何历史会话时回落到默认 session。
228
- // 用户仍可在 TUI 内通过 /session 命令随时切换。
229
- const latest_session_id = await resolveLatestChatSessionId({ remote_agent });
230
- if (latest_session_id) {
231
- resolved.target.session_id = latest_session_id;
232
208
  }
233
209
  return {
234
210
  success: true,
235
- target: resolved.target,
211
+ target: {
212
+ agent_id: target.agent_id,
213
+ workspace_id: target.workspace_id,
214
+ project_root: target.workspace_path,
215
+ session_id: session_id,
216
+ },
236
217
  remote_agent,
237
218
  };
238
219
  }
239
220
  /**
240
- * 解析最近活跃的 chat session id。
221
+ * 解析本次 chat 要进入的 Workspace。
241
222
  *
242
223
  * 说明(中文)
243
- * - 按 `updated_at` 取最新的会话;缺失 `updated_at` 视为最旧。
244
- * - 列表为空时返回 null,由调用方回落到默认 session。
224
+ * - 优先使用 Session 绑定的 Workspace;该 Workspace 已注销时回落到入口 Workspace。
225
+ * - 入口 Workspace 由 `--workspace`、当前目录或唯一已登记 Workspace 决定。
226
+ */
227
+ async function resolve_chat_entry_target(params) {
228
+ const preferred = String(params.workspace_id || "").trim();
229
+ if (preferred) {
230
+ try {
231
+ return await resolve_cli_agent_target(params.agent_id, preferred);
232
+ }
233
+ catch {
234
+ // Session 绑定的 Workspace 已注销:回落到入口 Workspace。
235
+ }
236
+ }
237
+ return await resolve_cli_agent_target(params.agent_id, params.fallback_workspace_input);
238
+ }
239
+ /** 读取指定 Agent 的 chat Session;省略 `workspace_id` 时不限定 Workspace。 */
240
+ async function read_agent_chat_sessions(params) {
241
+ const reader = await createAgentSessionReader({
242
+ agent_id: params.agent_id,
243
+ transport: params.transport,
244
+ });
245
+ try {
246
+ return await listRemoteChatSessions({
247
+ remote_agent: reader,
248
+ input: {
249
+ ...(params.workspace_id ? { workspace_id: params.workspace_id } : {}),
250
+ ...(params.session_id ? { query: params.session_id } : {}),
251
+ },
252
+ });
253
+ }
254
+ finally {
255
+ await reader.close().catch(() => undefined);
256
+ }
257
+ }
258
+ /**
259
+ * 在全部 Workspace 中查找最近一次 chat Session。
245
260
  *
246
- * @param params.remote_agent 远程 agent 句柄。
247
- * @returns 最近活跃的 session id;无历史会话时为 null。
261
+ * 说明(中文)
262
+ * - Session 列表已按 `updated_at` 倒序,首项即最近会话。
263
+ * - 发现失败时返回 null,由调用方回落到入口 Workspace 新建会话。
248
264
  */
249
- async function resolveLatestChatSessionId(params) {
250
- let sessions;
265
+ async function find_latest_chat_session(params) {
251
266
  try {
252
- sessions = await listRemoteChatSessions({ remote_agent: params.remote_agent });
267
+ const sessions = await read_agent_chat_sessions(params);
268
+ return sessions[0] ?? null;
253
269
  }
254
270
  catch {
255
271
  return null;
256
272
  }
257
- if (sessions.length === 0) {
258
- return null;
259
- }
260
- let latest = sessions[0];
261
- for (const candidate of sessions) {
262
- if ((candidate.updated_at ?? 0) > (latest.updated_at ?? 0)) {
263
- latest = candidate;
264
- }
265
- }
266
- return latest.session_id;
273
+ }
274
+ /** 在全部 Workspace 中按 session_id 查找 chat Session。 */
275
+ async function find_chat_session(params) {
276
+ const sessions = await read_agent_chat_sessions({
277
+ agent_id: params.agent_id,
278
+ session_id: params.session_id,
279
+ transport: params.transport,
280
+ });
281
+ return sessions.find((item) => item.session_id === params.session_id) ?? null;
267
282
  }
268
283
  export async function runSdkPromptTurn(params) {
269
284
  const message = normalizeChatMessage(params.message);
270
- const resolved_session = resolveAgentChatSessionOptions(params.sessionOptions);
271
285
  if (!message) {
272
286
  return {
273
287
  success: false,
274
288
  error: "Chat message is required.",
275
289
  emittedVisibleText: false,
276
- session_id: resolved_session.success
277
- ? resolved_session.session_id
278
- : AGENT_CHAT_DEFAULT_SESSION_ID,
290
+ session_id: "",
279
291
  text: "",
280
292
  };
281
293
  }
282
- const resolved = await resolveAgentChatTarget(params.agent_id, params.sessionOptions);
283
- if (!resolved.success) {
294
+ const entry = await resolveAgentChatEntry({
295
+ agent_id: params.agent_id,
296
+ options: {
297
+ workspace: params.workspace,
298
+ session_id: params.sessionOptions?.session_id,
299
+ newSession: params.sessionOptions?.newSession,
300
+ },
301
+ transport: params.transport,
302
+ });
303
+ if (!entry.success) {
284
304
  return {
285
305
  success: false,
286
- error: resolved.outcome.error,
306
+ error: entry.error,
287
307
  emittedVisibleText: false,
288
- session_id: resolved.outcome.session_id,
289
- ...(resolved.outcome.project_root ? { project_root: resolved.outcome.project_root } : {}),
308
+ session_id: "",
309
+ text: "",
310
+ };
311
+ }
312
+ const remote_agent = entry.remote_agent;
313
+ let session;
314
+ try {
315
+ session = await remote_agent.sessions.get(entry.target.session_id);
316
+ }
317
+ catch (error) {
318
+ await remote_agent.close().catch(() => undefined);
319
+ return {
320
+ success: false,
321
+ error: error instanceof Error ? error.message : String(error),
322
+ emittedVisibleText: false,
323
+ session_id: entry.target.session_id,
324
+ project_root: entry.target.project_root,
290
325
  text: "",
291
326
  };
292
327
  }
293
- const remote_agent = await createRemoteAgent({
294
- agent_id: resolved.target.agent_id,
295
- workspace: params.workspace,
296
- transport: params.transport,
297
- });
298
- const session = await getOrCreateRemoteSession({
299
- remote_agent,
300
- session_id: resolved.target.session_id,
301
- create_new_session: resolved.target.createNewSession,
302
- });
303
328
  let printed_leading_newline = false;
304
329
  let emitted_visible_text = false;
305
330
  let final_text = "";
@@ -349,8 +374,8 @@ export async function runSdkPromptTurn(params) {
349
374
  success: result.success,
350
375
  ...(result.error ? { error: result.error } : {}),
351
376
  emittedVisibleText: emitted_visible_text,
352
- session_id: resolved.target.session_id,
353
- project_root: resolved.target.project_root,
377
+ session_id: entry.target.session_id,
378
+ project_root: entry.target.project_root,
354
379
  text: final_text,
355
380
  };
356
381
  }
@@ -362,8 +387,8 @@ export async function runSdkPromptTurn(params) {
362
387
  success: false,
363
388
  error: error instanceof Error ? error.message : String(error),
364
389
  emittedVisibleText: emitted_visible_text,
365
- session_id: resolved.target.session_id,
366
- project_root: resolved.target.project_root,
390
+ session_id: entry.target.session_id,
391
+ project_root: entry.target.project_root,
367
392
  text: final_text,
368
393
  };
369
394
  }
@@ -377,14 +402,10 @@ export async function runSdkPromptTurn(params) {
377
402
  */
378
403
  export async function executeAgentChatTurn(params) {
379
404
  const message = normalizeChatMessage(params.message);
380
- const resolved_session = resolveAgentChatSessionOptions(params.sessionOptions);
381
- const session_id = resolved_session.success
382
- ? resolved_session.session_id
383
- : AGENT_CHAT_DEFAULT_SESSION_ID;
384
405
  if (!message) {
385
406
  return {
386
407
  agent_id: String(params.agent_id || "").trim(),
387
- session_id,
408
+ session_id: "",
388
409
  success: false,
389
410
  error: "Chat message is required.",
390
411
  };
@@ -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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"}