@downcity/city 1.1.11 → 1.1.14

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 (33) hide show
  1. package/README.md +22 -4
  2. package/bin/cli/agent/Run.d.ts.map +1 -1
  3. package/bin/cli/agent/Run.js +56 -56
  4. package/bin/cli/agent/Run.js.map +1 -1
  5. package/bin/cli/model/ModelManageCommand.js +2 -2
  6. package/bin/cli/model/ModelManageCommand.js.map +1 -1
  7. package/bin/cli/model/ModelManager.js +2 -2
  8. package/bin/cli/model/ModelManager.js.map +1 -1
  9. package/bin/control/ModelPoolService.js +2 -2
  10. package/bin/control/ModelPoolService.js.map +1 -1
  11. package/bin/control/PluginApiRoutes.d.ts.map +1 -1
  12. package/bin/control/PluginApiRoutes.js +2 -4
  13. package/bin/control/PluginApiRoutes.js.map +1 -1
  14. package/bin/control/instant/InstantSessionService.d.ts.map +1 -1
  15. package/bin/control/instant/InstantSessionService.js +16 -13
  16. package/bin/control/instant/InstantSessionService.js.map +1 -1
  17. package/bin/control/instant/InstantSystemComposer.d.ts +2 -2
  18. package/bin/control/instant/InstantSystemComposer.d.ts.map +1 -1
  19. package/bin/control/instant/InstantSystemComposer.js +2 -3
  20. package/bin/control/instant/InstantSystemComposer.js.map +1 -1
  21. package/bin/model/runtime/CreateRuntimeModel.d.ts +52 -0
  22. package/bin/model/runtime/CreateRuntimeModel.d.ts.map +1 -0
  23. package/bin/model/runtime/CreateRuntimeModel.js +371 -0
  24. package/bin/model/runtime/CreateRuntimeModel.js.map +1 -0
  25. package/package.json +2 -2
  26. package/src/cli/agent/Run.ts +63 -68
  27. package/src/cli/model/ModelManageCommand.ts +2 -2
  28. package/src/cli/model/ModelManager.ts +2 -2
  29. package/src/control/ModelPoolService.ts +2 -2
  30. package/src/control/PluginApiRoutes.ts +3 -7
  31. package/src/control/instant/InstantSessionService.ts +19 -17
  32. package/src/control/instant/InstantSystemComposer.ts +2 -3
  33. package/src/model/runtime/CreateRuntimeModel.ts +462 -0
@@ -10,8 +10,9 @@ import fs from "fs-extra";
10
10
  import path from "node:path";
11
11
  import os from "node:os";
12
12
  import { mkdtemp } from "node:fs/promises";
13
- import { createModel, drainDeferredPersistedUserMessages, getLogger, JsonlSessionCompactionComposer, JsonlSessionHistoryComposer, LocalSessionExecutor, pickLastSuccessfulChatSendText, resolveAssistantMessageForPersistence, Session, } from "@downcity/agent";
13
+ import { drainDeferredPersistedUserMessages, Executor, getLogger, JsonlSessionCompactionComposer, JsonlSessionHistoryComposer, JsonlSessionHistoryStore, pickLastSuccessfulChatSendText, resolveAssistantMessageForPersistence, } from "@downcity/agent";
14
14
  import { InstantSystemComposer } from "../../control/instant/InstantSystemComposer.js";
15
+ import { createRuntimeModel } from "../../model/runtime/CreateRuntimeModel.js";
15
16
  function buildInstantPrompt(input) {
16
17
  const prompt = String(input.prompt || "").trim();
17
18
  const pageContext = String(input.pageContext || "").trim();
@@ -65,7 +66,7 @@ export class InstantSessionService {
65
66
  }
66
67
  async createTempHistoryComposer(params) {
67
68
  const tempDirPath = await mkdtemp(path.join(os.tmpdir(), "downcity-inline-instant-"));
68
- const historyComposer = new JsonlSessionHistoryComposer({
69
+ const historyStore = new JsonlSessionHistoryStore({
69
70
  rootPath: params.rootPath,
70
71
  sessionId: params.sessionId,
71
72
  paths: {
@@ -76,8 +77,12 @@ export class InstantSessionService {
76
77
  archiveDirPath: path.join(tempDirPath, "archive"),
77
78
  },
78
79
  });
80
+ const historyComposer = new JsonlSessionHistoryComposer({
81
+ store: historyStore,
82
+ });
79
83
  return {
80
84
  tempDirPath,
85
+ historyStore,
81
86
  historyComposer,
82
87
  };
83
88
  }
@@ -130,11 +135,11 @@ export class InstantSessionService {
130
135
  throw new Error("modelId is required for inline model executor");
131
136
  const sessionId = this.buildSessionId();
132
137
  const rootPath = process.cwd();
133
- const { tempDirPath, historyComposer } = await this.createTempHistoryComposer({
138
+ const { tempDirPath, historyStore, historyComposer } = await this.createTempHistoryComposer({
134
139
  rootPath,
135
140
  sessionId,
136
141
  });
137
- const model = await createModel({
142
+ const model = await createRuntimeModel({
138
143
  config: {
139
144
  name: "console-inline-instant-model",
140
145
  version: "1.0.0",
@@ -149,17 +154,15 @@ export class InstantSessionService {
149
154
  prompts: [String(input.system || "").trim()].filter(Boolean),
150
155
  projectRoot: rootPath,
151
156
  });
152
- const session = new Session({
157
+ const session = new Executor({
153
158
  sessionId,
159
+ historyStore,
154
160
  historyComposer,
155
- createExecutor: (sessionHistoryComposer) => new LocalSessionExecutor({
156
- model,
157
- logger: this.logger,
158
- historyComposer: sessionHistoryComposer,
159
- compactionComposer,
160
- systemComposer,
161
- getTools: () => ({}),
162
- }),
161
+ getModel: () => model,
162
+ logger: this.logger,
163
+ compactionComposer,
164
+ systemComposer,
165
+ getTools: () => ({}),
163
166
  });
164
167
  const text = await this.executeTempSession({
165
168
  sessionRuntime: {
@@ -1 +1 @@
1
- {"version":3,"file":"InstantSessionService.js","sourceRoot":"","sources":["../../../src/control/instant/InstantSessionService.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,EACL,WAAW,EACX,kCAAkC,EAClC,SAAS,EACT,8BAA8B,EAC9B,2BAA2B,EAE3B,oBAAoB,EACpB,8BAA8B,EAC9B,qCAAqC,EACrC,OAAO,GACR,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAgCnF,SAAS,kBAAkB,CAAC,KAG3B;IACC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACjD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3D,IAAI,CAAC,WAAW;QAAE,OAAO,MAAM,CAAC;IAChC,OAAO;QACL,MAAM;QACN,EAAE;QACF,uBAAuB;QACvB,EAAE;QACF,aAAa;QACb,WAAW;QACX,KAAK;KACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAGD,SAAS,yBAAyB,CAAC,IAAY,EAAE,UAAkB;IACjE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACzC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,OAAO,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,wBAAwB,CAAC,MAOd;IAClB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,CAAC;QAC1D,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK;QAC/B,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAC5D;SACA,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC;SACV,IAAI,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,qBAAqB;IACf,gBAAgB,CAAmD;IACnE,MAAM,CAAS;IAEhC,YAAY,OAAsC;QAChD,IAAI,CAAC,gBAAgB,GAAG,OAAO,EAAE,gBAAgB,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,GAAG,CACP,KAAoC;QAEpC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7D,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;YAC7B,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC;gBAChC,GAAG,KAAK;gBACR,YAAY,EAAE,OAAO;aACtB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,wCAAwC,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9F,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAC,MAGvC;QAIC,MAAM,WAAW,GAAG,MAAM,OAAO,CAC/B,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,0BAA0B,CAAC,CACnD,CAAC;QACF,MAAM,eAAe,GAAG,IAAI,2BAA2B,CAAC;YACtD,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,KAAK,EAAE;gBACL,cAAc,EAAE,WAAW;gBAC3B,eAAe,EAAE,WAAW;gBAC5B,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC;gBAC1D,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC;gBACjD,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC;aAClD;SACF,CAAC,CAAC;QACH,OAAO;YACL,WAAW;YACX,eAAe;SAChB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,MAGhC;QACC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAE9D,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,cAAc,CAAC,OAAO,CAAC,iBAAiB,CAAC;gBAC7C,IAAI,EAAE,KAAK;aACZ,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC;gBAC9C,KAAK;aACN,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,8BAA8B,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC;YACnF,MAAM,aAAa,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;YACvD,MAAM,qBAAqB,GAAG,qCAAqC,CACjE,MAAM,CAAC,gBAAgB,CACxB,CAAC;YACF,IAAI,qBAAqB,EAAE,CAAC;gBAC1B,MAAM,cAAc,CAAC,OAAO,CAAC,sBAAsB,CAAC;oBAClD,OAAO,EAAE,qBAAqB;oBAC9B,YAAY,EAAE,yBAAyB,CAAC,WAAW,EAAE,aAAa,CAAC;oBACnE,KAAK,EAAE;wBACL,GAAG,EAAE,uBAAuB;qBAC7B;iBACF,CAAC,CAAC;YACL,CAAC;YACD,MAAM,wBAAwB,GAAG,kCAAkC,CACjE,cAAc,CAAC,SAAS,CACzB,CAAC;YACF,KAAK,MAAM,OAAO,IAAI,wBAAwB,EAAE,CAAC;gBAC/C,MAAM,cAAc,CAAC,OAAO,CAAC,iBAAiB,CAAC;oBAC7C,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;YACD,OAAO;gBACL,SAAS,EAAE,cAAc,CAAC,SAAS;gBACnC,IAAI,EAAE,yBAAyB,CAAC,WAAW,EAAE,aAAa,CAAC;aAC5D,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,cAAc,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YACvC,MAAM,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAEO,cAAc;QACpB,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,KAAgE;QAEhE,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAE/E,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC/B,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC;YAC5E,QAAQ;YACR,SAAS;SACV,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC;YAC9B,MAAM,EAAE;gBACN,IAAI,EAAE,8BAA8B;gBACpC,OAAO,EAAE,OAAO;gBAChB,SAAS,EAAE;oBACT,IAAI,EAAE,KAAK;oBACX,OAAO;iBACR;aACF;SACF,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAG,IAAI,8BAA8B,EAAE,CAAC;QAChE,MAAM,cAAc,GAAG,IAAI,qBAAqB,CAAC;YAC/C,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YAC5D,WAAW,EAAE,QAAQ;SACtB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,SAAS;YACT,eAAe;YACf,cAAc,EAAE,CAAC,sBAAsB,EAAE,EAAE,CACzC,IAAI,oBAAoB,CAAC;gBACvB,KAAK;gBACL,MAAM,EAAE,IAAI,CAAC,MAAgC;gBAC7C,eAAe,EAAE,sBAAsB;gBACvC,kBAAkB;gBAClB,cAAc;gBACd,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;aACrB,CAAC;SACL,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC;YACzC,cAAc,EAAE;gBACd,SAAS;gBACT,WAAW;gBACX,OAAO;aACR;YACD,KAAK,EAAE,kBAAkB,CAAC;gBACxB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;gBACzC,WAAW,EAAE,KAAK,CAAC,WAAW;aAC/B,CAAC;SACH,CAAC,CAAC;QAEH,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,YAAY,EAAE,OAAO;YACrB,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC;CAEF"}
1
+ {"version":3,"file":"InstantSessionService.js","sourceRoot":"","sources":["../../../src/control/instant/InstantSessionService.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  * - 不依赖完整 AgentContext,避免为了即时模式拉起正式 runtime。
7
7
  * - 支持项目路径与 sessionId 变量替换,保留 PROFILE/SOUL 等静态提示的可用性。
8
8
  */
9
- import { SessionSystemComposer } from "@downcity/agent";
9
+ import type { SessionSystemComposer } from "@downcity/agent";
10
10
  type InstantSystemComposerOptions = {
11
11
  /**
12
12
  * 当前要注入的静态 prompt 文本集合。
@@ -23,7 +23,7 @@ type InstantSystemComposerOptions = {
23
23
  /**
24
24
  * 即时模式 system composer 默认实现。
25
25
  */
26
- export declare class InstantSystemComposer extends SessionSystemComposer {
26
+ export declare class InstantSystemComposer implements SessionSystemComposer {
27
27
  readonly name = "inline_instant_system";
28
28
  private readonly prompts;
29
29
  private readonly projectRoot;
@@ -1 +1 @@
1
- {"version":3,"file":"InstantSystemComposer.d.ts","sourceRoot":"","sources":["../../../src/control/instant/InstantSystemComposer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAEL,qBAAqB,EAEtB,MAAM,iBAAiB,CAAC;AAEzB,KAAK,4BAA4B,GAAG;IAClC;;OAEG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,qBAAqB;IAC9D,QAAQ,CAAC,IAAI,2BAA2B;IAExC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,OAAO,EAAE,4BAA4B;IAU3C,OAAO;CAUd"}
1
+ {"version":3,"file":"InstantSystemComposer.d.ts","sourceRoot":"","sources":["../../../src/control/instant/InstantSystemComposer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,KAAK,4BAA4B,GAAG;IAClC;;OAEG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,qBAAa,qBAAsB,YAAW,qBAAqB;IACjE,QAAQ,CAAC,IAAI,2BAA2B;IAExC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,OAAO,EAAE,4BAA4B;IAS3C,OAAO;CAUd"}
@@ -6,16 +6,15 @@
6
6
  * - 不依赖完整 AgentContext,避免为了即时模式拉起正式 runtime。
7
7
  * - 支持项目路径与 sessionId 变量替换,保留 PROFILE/SOUL 等静态提示的可用性。
8
8
  */
9
- import { getSessionRunScope, SessionSystemComposer, transformPromptsIntoSystemMessages, } from "@downcity/agent";
9
+ import { getSessionRunScope, transformPromptsIntoSystemMessages, } from "@downcity/agent";
10
10
  /**
11
11
  * 即时模式 system composer 默认实现。
12
12
  */
13
- export class InstantSystemComposer extends SessionSystemComposer {
13
+ export class InstantSystemComposer {
14
14
  name = "inline_instant_system";
15
15
  prompts;
16
16
  projectRoot;
17
17
  constructor(options) {
18
- super();
19
18
  this.prompts = Array.isArray(options.prompts)
20
19
  ? options.prompts
21
20
  .map((item) => String(item || "").trim())
@@ -1 +1 @@
1
- {"version":3,"file":"InstantSystemComposer.js","sourceRoot":"","sources":["../../../src/control/instant/InstantSystemComposer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,kCAAkC,GACnC,MAAM,iBAAiB,CAAC;AAiBzB;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,qBAAqB;IACrD,IAAI,GAAG,uBAAuB,CAAC;IAEvB,OAAO,CAAW;IAClB,WAAW,CAAS;IAErC,YAAY,OAAqC;QAC/C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;YAC3C,CAAC,CAAC,OAAO,CAAC,OAAO;iBACZ,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;iBACxC,MAAM,CAAC,OAAO,CAAC;YACpB,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;QACnC,OAAO,MAAM,kCAAkC,CAAC,IAAI,CAAC,OAAO,EAAE;YAC5D,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;gBACvC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;gBACtD,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"InstantSystemComposer.js","sourceRoot":"","sources":["../../../src/control/instant/InstantSystemComposer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,kBAAkB,EAClB,kCAAkC,GACnC,MAAM,iBAAiB,CAAC;AAkBzB;;GAEG;AACH,MAAM,OAAO,qBAAqB;IACvB,IAAI,GAAG,uBAAuB,CAAC;IAEvB,OAAO,CAAW;IAClB,WAAW,CAAS;IAErC,YAAY,OAAqC;QAC/C,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;YAC3C,CAAC,CAAC,OAAO,CAAC,OAAO;iBACZ,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;iBACxC,MAAM,CAAC,OAAO,CAAC;YACpB,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;QACnC,OAAO,MAAM,kCAAkC,CAAC,IAAI,CAAC,OAAO,EAAE;YAC5D,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;gBACvC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;gBACtD,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * CreateRuntimeModel:city 宿主侧 LanguageModel 工厂。
3
+ *
4
+ * 关键点(中文)
5
+ * - `@downcity/agent` 只消费 `LanguageModel`,不再负责模型池解析。
6
+ * - `city` 负责把 `execution.modelId` 解析成平台模型池中的 provider/model 配置。
7
+ * - 这里统一承接 CLI、control plane、inline instant 等宿主场景的模型创建逻辑。
8
+ */
9
+ import type { LanguageModel } from "ai";
10
+ import { type AgentPlatformRuntime, type DowncityConfig } from "@downcity/agent";
11
+ type ModelLogContext = {
12
+ /**
13
+ * 当前 session 标识,用于 LLM 请求日志追踪。
14
+ */
15
+ sessionId?: string;
16
+ };
17
+ type RuntimeModelFactoryInput = {
18
+ /**
19
+ * 当前项目配置。
20
+ *
21
+ * 关键点(中文)
22
+ * - 这里只依赖 `execution.modelId` 与 `llm.logMessages`。
23
+ * - provider/model 详情统一从平台模型池读取。
24
+ */
25
+ config: DowncityConfig;
26
+ /**
27
+ * 可选 session run scope。
28
+ *
29
+ * 关键点(中文)
30
+ * - 仅用于把 sessionId 透传到 LLM 请求日志元数据。
31
+ */
32
+ getSessionRunScope?: () => ModelLogContext | undefined;
33
+ /**
34
+ * 可选宿主平台能力。
35
+ *
36
+ * 关键点(中文)
37
+ * - 若传入,则优先通过平台端口读取 provider/model。
38
+ * - 未传入时回退到 city 自己的 `PlatformStore`。
39
+ */
40
+ platform?: AgentPlatformRuntime;
41
+ };
42
+ /**
43
+ * 创建 LanguageModel 实例。
44
+ *
45
+ * 解析策略(中文)
46
+ * 1) 读取 `execution.modelId`。
47
+ * 2) 从宿主平台或 `PlatformStore` 解析 provider/model。
48
+ * 3) 按 provider type 分发到对应 AI SDK 工厂。
49
+ */
50
+ export declare function createRuntimeModel(input: RuntimeModelFactoryInput): Promise<LanguageModel>;
51
+ export {};
52
+ //# sourceMappingURL=CreateRuntimeModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateRuntimeModel.d.ts","sourceRoot":"","sources":["../../../src/model/runtime/CreateRuntimeModel.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,cAAc,EAIpB,MAAM,iBAAiB,CAAC;AAGzB,KAAK,eAAe,GAAG;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAOF,KAAK,wBAAwB,GAAG;IAC9B;;;;;;OAMG;IACH,MAAM,EAAE,cAAc,CAAC;IACvB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,eAAe,GAAG,SAAS,CAAC;IACvD;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC,CAAC;AAoNF;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,aAAa,CAAC,CA8KxB"}
@@ -0,0 +1,371 @@
1
+ /**
2
+ * CreateRuntimeModel:city 宿主侧 LanguageModel 工厂。
3
+ *
4
+ * 关键点(中文)
5
+ * - `@downcity/agent` 只消费 `LanguageModel`,不再负责模型池解析。
6
+ * - `city` 负责把 `execution.modelId` 解析成平台模型池中的 provider/model 配置。
7
+ * - 这里统一承接 CLI、control plane、inline instant 等宿主场景的模型创建逻辑。
8
+ */
9
+ import { createAnthropic } from "@ai-sdk/anthropic";
10
+ import { createGoogleGenerativeAI } from "@ai-sdk/google";
11
+ import { createHuggingFace } from "@ai-sdk/huggingface";
12
+ import { createMoonshotAI } from "@ai-sdk/moonshotai";
13
+ import { createOpenResponses } from "@ai-sdk/open-responses";
14
+ import { createOpenAI } from "@ai-sdk/openai";
15
+ import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
16
+ import { createXai } from "@ai-sdk/xai";
17
+ import { createOpenRouter } from "@openrouter/ai-sdk-provider";
18
+ import { getLogger, } from "@downcity/agent";
19
+ import { PlatformStore } from "../../platform/store/index.js";
20
+ function readProjectExecutionBinding(config) {
21
+ const execution = config.execution;
22
+ if (!execution || typeof execution !== "object")
23
+ return null;
24
+ if (execution.type !== "api")
25
+ return null;
26
+ const modelId = String(execution.modelId || "").trim();
27
+ if (!modelId)
28
+ return null;
29
+ return {
30
+ type: "api",
31
+ modelId,
32
+ };
33
+ }
34
+ function buildResponsesUrl(baseUrl) {
35
+ const trimmed = String(baseUrl || "")
36
+ .trim()
37
+ .replace(/\/+$/, "");
38
+ if (!trimmed)
39
+ return "https://api.openai.com/v1/responses";
40
+ if (trimmed.endsWith("/responses"))
41
+ return trimmed;
42
+ return `${trimmed}/responses`;
43
+ }
44
+ function normalizeOptionalBaseUrl(value) {
45
+ const trimmed = String(value || "")
46
+ .trim()
47
+ .replace(/\/+$/, "");
48
+ return trimmed || undefined;
49
+ }
50
+ function resolveProviderDefaultBaseUrl(providerType) {
51
+ if (providerType === "deepseek")
52
+ return "https://api.deepseek.com/v1";
53
+ if (providerType === "moonshot-cn")
54
+ return "https://api.moonshot.cn/v1";
55
+ if (providerType === "moonshot-ai")
56
+ return "https://api.moonshot.ai/v1";
57
+ if (providerType === "kimi-code")
58
+ return "https://api.kimi.com/coding/v1";
59
+ if (providerType === "xai")
60
+ return "https://api.x.ai/v1";
61
+ if (providerType === "openrouter")
62
+ return "https://openrouter.ai/api/v1";
63
+ return undefined;
64
+ }
65
+ function resolveEnvPlaceholder(value) {
66
+ if (!value)
67
+ return value;
68
+ if (value.startsWith("${") && value.endsWith("}")) {
69
+ const envVar = value.slice(2, -1);
70
+ return process.env[envVar];
71
+ }
72
+ return value;
73
+ }
74
+ function resolveApiKeyFallback(providerType) {
75
+ if (providerType === "gemini") {
76
+ return (process.env.GEMINI_API_KEY ||
77
+ process.env.GOOGLE_API_KEY ||
78
+ process.env.GOOGLE_GENERATIVE_AI_API_KEY ||
79
+ process.env.API_KEY);
80
+ }
81
+ if (providerType === "anthropic") {
82
+ return process.env.ANTHROPIC_API_KEY || process.env.API_KEY;
83
+ }
84
+ if (providerType === "deepseek") {
85
+ return (process.env.DEEPSEEK_API_KEY ||
86
+ process.env.OPENAI_API_KEY ||
87
+ process.env.API_KEY);
88
+ }
89
+ if (providerType === "xai") {
90
+ return process.env.XAI_API_KEY || process.env.API_KEY;
91
+ }
92
+ if (providerType === "huggingface") {
93
+ return (process.env.HUGGINGFACE_API_KEY ||
94
+ process.env.HF_TOKEN ||
95
+ process.env.API_KEY);
96
+ }
97
+ if (providerType === "openrouter") {
98
+ return process.env.OPENROUTER_API_KEY || process.env.API_KEY;
99
+ }
100
+ if (providerType === "moonshot-cn" || providerType === "moonshot-ai") {
101
+ return (process.env.MOONSHOT_API_KEY ||
102
+ process.env.KIMI_API_KEY ||
103
+ process.env.API_KEY);
104
+ }
105
+ if (providerType === "kimi-code") {
106
+ return (process.env.KIMI_CODE_API_KEY ||
107
+ process.env.KIMI_API_KEY ||
108
+ process.env.MOONSHOT_API_KEY ||
109
+ process.env.API_KEY);
110
+ }
111
+ return process.env.OPENAI_API_KEY || process.env.API_KEY;
112
+ }
113
+ function normalizeProviderType(value) {
114
+ if (value === "anthropic")
115
+ return value;
116
+ if (value === "openai")
117
+ return value;
118
+ if (value === "deepseek")
119
+ return value;
120
+ if (value === "gemini")
121
+ return value;
122
+ if (value === "open-compatible")
123
+ return value;
124
+ if (value === "open-responses")
125
+ return value;
126
+ if (value === "moonshot-cn")
127
+ return value;
128
+ if (value === "moonshot-ai")
129
+ return value;
130
+ if (value === "kimi-code")
131
+ return value;
132
+ if (value === "xai")
133
+ return value;
134
+ if (value === "huggingface")
135
+ return value;
136
+ if (value === "openrouter")
137
+ return value;
138
+ return null;
139
+ }
140
+ function readFetchUrl(input) {
141
+ if (typeof input === "string")
142
+ return input;
143
+ if (input instanceof URL)
144
+ return input.toString();
145
+ return input.url;
146
+ }
147
+ function readFetchMethod(input, init) {
148
+ const methodFromInit = String(init?.method || "").trim().toUpperCase();
149
+ if (methodFromInit)
150
+ return methodFromInit;
151
+ if (typeof input === "object" && "method" in input) {
152
+ const requestMethod = String(input.method || "").trim().toUpperCase();
153
+ if (requestMethod)
154
+ return requestMethod;
155
+ }
156
+ return "POST";
157
+ }
158
+ function createRuntimeModelLoggingFetch(args) {
159
+ const logger = getLogger();
160
+ const baseFetch = globalThis.fetch.bind(globalThis);
161
+ return async (input, init) => {
162
+ const sessionId = args.getSessionRunScope?.()?.sessionId;
163
+ const url = readFetchUrl(input);
164
+ const method = readFetchMethod(input, init);
165
+ try {
166
+ const response = await baseFetch(input, init);
167
+ if (args.enabled) {
168
+ void logger.log("info", "[city] llm.fetch", {
169
+ kind: "llm_fetch",
170
+ url,
171
+ method,
172
+ status: response.status,
173
+ ...(sessionId ? { sessionId } : {}),
174
+ });
175
+ }
176
+ return response;
177
+ }
178
+ catch (error) {
179
+ if (args.enabled) {
180
+ void logger.log("error", "[city] llm.fetch.error", {
181
+ kind: "llm_fetch_error",
182
+ url,
183
+ method,
184
+ error: String(error || "unknown_error"),
185
+ ...(sessionId ? { sessionId } : {}),
186
+ });
187
+ }
188
+ throw error;
189
+ }
190
+ };
191
+ }
192
+ async function resolveConfiguredModel(input) {
193
+ const platform = input.platform;
194
+ if (platform) {
195
+ const model = platform.getModel(input.primaryModelId);
196
+ const providers = await (platform.listProviders?.() || Promise.resolve([]));
197
+ const providerMap = new Map(providers.map((item) => [item.id, item]));
198
+ const provider = model
199
+ ? providerMap.get(String(model.providerId || "").trim()) || null
200
+ : null;
201
+ if (model && provider) {
202
+ return {
203
+ model,
204
+ provider,
205
+ };
206
+ }
207
+ }
208
+ const store = new PlatformStore();
209
+ try {
210
+ const resolved = await store.getResolvedModel(input.primaryModelId);
211
+ if (!resolved) {
212
+ throw new Error(`LLM model config not found in platform store: ${input.primaryModelId}`);
213
+ }
214
+ return resolved;
215
+ }
216
+ finally {
217
+ store.close();
218
+ }
219
+ }
220
+ /**
221
+ * 创建 LanguageModel 实例。
222
+ *
223
+ * 解析策略(中文)
224
+ * 1) 读取 `execution.modelId`。
225
+ * 2) 从宿主平台或 `PlatformStore` 解析 provider/model。
226
+ * 3) 按 provider type 分发到对应 AI SDK 工厂。
227
+ */
228
+ export async function createRuntimeModel(input) {
229
+ const logger = getLogger();
230
+ const execution = readProjectExecutionBinding(input.config);
231
+ if (!execution) {
232
+ await logger.log("warn", "No agent execution configured");
233
+ throw new Error("No agent execution configured");
234
+ }
235
+ const configLog = input.config.llm?.logMessages;
236
+ const logLlmMessages = typeof configLog === "boolean" ? configLog : true;
237
+ const loggingFetch = createRuntimeModelLoggingFetch({
238
+ enabled: logLlmMessages,
239
+ getSessionRunScope: input.getSessionRunScope,
240
+ });
241
+ const primaryModelId = execution.modelId;
242
+ const { model: modelConfig, provider: providerConfig } = await resolveConfiguredModel({
243
+ ...input,
244
+ primaryModelId,
245
+ });
246
+ if (modelConfig.isPaused === true) {
247
+ await logger.log("warn", `LLM model is paused in platform store: ${primaryModelId}`);
248
+ throw new Error(`LLM model is paused: ${primaryModelId}`);
249
+ }
250
+ const providerKey = providerConfig.id;
251
+ const providerType = normalizeProviderType(providerConfig.type);
252
+ if (!providerType) {
253
+ await logger.log("warn", `Unsupported LLM provider type: ${providerConfig.type}`);
254
+ throw new Error(`Unsupported LLM provider type: ${providerConfig.type}`);
255
+ }
256
+ const resolvedModel = resolveEnvPlaceholder(modelConfig.name);
257
+ if (!resolvedModel || resolvedModel === "${}") {
258
+ await logger.log("warn", "No LLM model name configured");
259
+ throw new Error("No LLM model name configured");
260
+ }
261
+ const resolvedBaseUrl = normalizeOptionalBaseUrl(resolveEnvPlaceholder(providerConfig.baseUrl) ||
262
+ resolveProviderDefaultBaseUrl(providerType));
263
+ let resolvedApiKey = resolveEnvPlaceholder(providerConfig.apiKey);
264
+ if (!resolvedApiKey) {
265
+ resolvedApiKey = resolveApiKeyFallback(providerType);
266
+ }
267
+ if (!resolvedApiKey) {
268
+ await logger.log("warn", "No API Key configured, will use simulation mode");
269
+ throw new Error("No API Key configured, will use simulation mode");
270
+ }
271
+ await logger.log("info", `[main] model primary=${primaryModelId} provider=${providerType}/${providerKey} name=${resolvedModel}${resolvedBaseUrl ? ` baseUrl=${resolvedBaseUrl}` : ""}`, {
272
+ kind: "llm_model_ready",
273
+ primaryModel: primaryModelId,
274
+ providerType,
275
+ providerKey,
276
+ model: resolvedModel,
277
+ ...(resolvedBaseUrl ? { baseUrl: resolvedBaseUrl } : {}),
278
+ logMessages: logLlmMessages,
279
+ });
280
+ if (providerType === "anthropic") {
281
+ const anthropicProvider = createAnthropic({
282
+ apiKey: resolvedApiKey,
283
+ baseURL: resolvedBaseUrl,
284
+ fetch: loggingFetch,
285
+ });
286
+ return anthropicProvider(resolvedModel);
287
+ }
288
+ if (providerType === "gemini") {
289
+ const googleProvider = createGoogleGenerativeAI({
290
+ apiKey: resolvedApiKey,
291
+ baseURL: resolvedBaseUrl,
292
+ fetch: loggingFetch,
293
+ });
294
+ return googleProvider(resolvedModel);
295
+ }
296
+ if (providerType === "open-responses") {
297
+ const responsesProvider = createOpenResponses({
298
+ url: buildResponsesUrl(resolvedBaseUrl),
299
+ name: providerKey,
300
+ apiKey: resolvedApiKey,
301
+ fetch: loggingFetch,
302
+ });
303
+ return responsesProvider(resolvedModel);
304
+ }
305
+ if (providerType === "open-compatible") {
306
+ const compatibleProvider = createOpenAICompatible({
307
+ name: providerKey,
308
+ baseURL: resolvedBaseUrl || "https://api.openai.com/v1",
309
+ apiKey: resolvedApiKey,
310
+ fetch: loggingFetch,
311
+ });
312
+ return compatibleProvider(resolvedModel);
313
+ }
314
+ if (providerType === "kimi-code") {
315
+ const compatibleProvider = createOpenAICompatible({
316
+ name: providerKey,
317
+ baseURL: resolvedBaseUrl || "https://api.kimi.com/coding/v1",
318
+ apiKey: resolvedApiKey,
319
+ fetch: loggingFetch,
320
+ });
321
+ return compatibleProvider(resolvedModel);
322
+ }
323
+ if (providerType === "moonshot-cn" || providerType === "moonshot-ai") {
324
+ const moonshotProvider = createMoonshotAI({
325
+ baseURL: resolvedBaseUrl,
326
+ apiKey: resolvedApiKey,
327
+ fetch: loggingFetch,
328
+ });
329
+ return moonshotProvider(resolvedModel);
330
+ }
331
+ if (providerType === "xai") {
332
+ const xaiProvider = createXai({
333
+ baseURL: resolvedBaseUrl,
334
+ apiKey: resolvedApiKey,
335
+ fetch: loggingFetch,
336
+ });
337
+ return xaiProvider(resolvedModel);
338
+ }
339
+ if (providerType === "huggingface") {
340
+ const huggingFaceProvider = createHuggingFace({
341
+ baseURL: resolvedBaseUrl,
342
+ apiKey: resolvedApiKey,
343
+ fetch: loggingFetch,
344
+ });
345
+ return huggingFaceProvider(resolvedModel);
346
+ }
347
+ if (providerType === "openrouter") {
348
+ const openRouterProvider = createOpenRouter({
349
+ baseURL: resolvedBaseUrl,
350
+ apiKey: resolvedApiKey,
351
+ fetch: loggingFetch,
352
+ });
353
+ return openRouterProvider(resolvedModel);
354
+ }
355
+ if (providerType === "deepseek") {
356
+ const deepseekCompatibleProvider = createOpenAICompatible({
357
+ name: providerKey,
358
+ baseURL: resolvedBaseUrl || "https://api.deepseek.com/v1",
359
+ apiKey: resolvedApiKey,
360
+ fetch: loggingFetch,
361
+ });
362
+ return deepseekCompatibleProvider(resolvedModel);
363
+ }
364
+ const openaiProvider = createOpenAI({
365
+ apiKey: resolvedApiKey,
366
+ baseURL: resolvedBaseUrl,
367
+ fetch: loggingFetch,
368
+ });
369
+ return openaiProvider(resolvedModel);
370
+ }
371
+ //# sourceMappingURL=CreateRuntimeModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateRuntimeModel.js","sourceRoot":"","sources":["../../../src/model/runtime/CreateRuntimeModel.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@downcity/city",
3
- "version": "1.1.11",
3
+ "version": "1.1.14",
4
4
  "type": "module",
5
5
  "description": "Downcity City 平台 — CLI、daemon 管理、Console 网关、能力平台",
6
6
  "bin": {
@@ -36,7 +36,7 @@
36
36
  "prompts": "^2.4.0",
37
37
  "ws": "^8.19.0",
38
38
  "zod": "^3.24.0",
39
- "@downcity/agent": "^1.1.10"
39
+ "@downcity/agent": "^1.1.17"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@types/better-sqlite3": "^7.6.13",