downcity 1.1.130 → 1.1.145

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 (156) hide show
  1. package/city/admin/commands/accounts.d.ts +2 -1
  2. package/city/admin/commands/accounts.d.ts.map +1 -1
  3. package/city/admin/commands/accounts.js +26 -25
  4. package/city/admin/commands/accounts.js.map +1 -1
  5. package/city/admin/commands/balance.d.ts +2 -1
  6. package/city/admin/commands/balance.d.ts.map +1 -1
  7. package/city/admin/commands/balance.js +88 -74
  8. package/city/admin/commands/balance.js.map +1 -1
  9. package/city/admin/commands/custom.d.ts +2 -1
  10. package/city/admin/commands/custom.d.ts.map +1 -1
  11. package/city/admin/commands/custom.js +16 -19
  12. package/city/admin/commands/custom.js.map +1 -1
  13. package/city/admin/commands/instruction.d.ts +2 -1
  14. package/city/admin/commands/instruction.d.ts.map +1 -1
  15. package/city/admin/commands/instruction.js +3 -2
  16. package/city/admin/commands/instruction.js.map +1 -1
  17. package/city/admin/commands/models.d.ts +2 -1
  18. package/city/admin/commands/models.d.ts.map +1 -1
  19. package/city/admin/commands/models.js +35 -31
  20. package/city/admin/commands/models.js.map +1 -1
  21. package/city/admin/commands/payment.d.ts +2 -1
  22. package/city/admin/commands/payment.d.ts.map +1 -1
  23. package/city/admin/commands/payment.js +28 -28
  24. package/city/admin/commands/payment.js.map +1 -1
  25. package/city/admin/commands/service-env.d.ts +2 -1
  26. package/city/admin/commands/service-env.d.ts.map +1 -1
  27. package/city/admin/commands/service-env.js +72 -74
  28. package/city/admin/commands/service-env.js.map +1 -1
  29. package/city/admin/commands/towns.d.ts +2 -1
  30. package/city/admin/commands/towns.d.ts.map +1 -1
  31. package/city/admin/commands/towns.js +39 -41
  32. package/city/admin/commands/towns.js.map +1 -1
  33. package/city/admin/commands/usage.d.ts +2 -1
  34. package/city/admin/commands/usage.d.ts.map +1 -1
  35. package/city/admin/commands/usage.js +27 -25
  36. package/city/admin/commands/usage.js.map +1 -1
  37. package/city/admin/loop.d.ts +6 -2
  38. package/city/admin/loop.d.ts.map +1 -1
  39. package/city/admin/loop.js +124 -90
  40. package/city/admin/loop.js.map +1 -1
  41. package/city/app.d.ts.map +1 -1
  42. package/city/app.js +101 -70
  43. package/city/app.js.map +1 -1
  44. package/city/auth/admin.js +2 -2
  45. package/city/auth/admin.js.map +1 -1
  46. package/city/auth/server-switch.d.ts.map +1 -1
  47. package/city/auth/server-switch.js +3 -39
  48. package/city/auth/server-switch.js.map +1 -1
  49. package/city/core/env.d.ts +1 -1
  50. package/city/core/env.d.ts.map +1 -1
  51. package/city/core/env.js +4 -3
  52. package/city/core/env.js.map +1 -1
  53. package/city/core/ui.d.ts +1 -1
  54. package/city/core/ui.d.ts.map +1 -1
  55. package/city/core/ui.js +1 -1
  56. package/city/core/ui.js.map +1 -1
  57. package/city/create/commands/create.js +1 -1
  58. package/city/create/commands/create.js.map +1 -1
  59. package/city/deploy/runtime/CloudflareAccountResolver.js +1 -1
  60. package/city/deploy/runtime/CloudflareAccountResolver.js.map +1 -1
  61. package/city/home/HomeMenu.js +1 -1
  62. package/city/home/HomeMenu.js.map +1 -1
  63. package/city/index.d.ts +1 -0
  64. package/city/index.d.ts.map +1 -1
  65. package/city/index.js +14 -2
  66. package/city/index.js.map +1 -1
  67. package/city/tui/AdminTuiRuntime.d.ts +13 -0
  68. package/city/tui/AdminTuiRuntime.d.ts.map +1 -0
  69. package/city/tui/AdminTuiRuntime.js +559 -0
  70. package/city/tui/AdminTuiRuntime.js.map +1 -0
  71. package/city/tui/CityDashboard.d.ts +22 -0
  72. package/city/tui/CityDashboard.d.ts.map +1 -0
  73. package/city/tui/CityDashboard.js +280 -0
  74. package/city/tui/CityDashboard.js.map +1 -0
  75. package/city/tui/Prompts.d.ts +61 -0
  76. package/city/tui/Prompts.d.ts.map +1 -0
  77. package/city/tui/Prompts.js +394 -0
  78. package/city/tui/Prompts.js.map +1 -0
  79. package/city/types/AdminTui.d.ts +68 -0
  80. package/city/types/AdminTui.d.ts.map +1 -0
  81. package/city/types/AdminTui.js +9 -0
  82. package/city/types/AdminTui.js.map +1 -0
  83. package/city/types/Interactive.d.ts +2 -6
  84. package/city/types/Interactive.d.ts.map +1 -1
  85. package/city/types/Tui.d.ts +25 -0
  86. package/city/types/Tui.d.ts.map +1 -0
  87. package/city/types/Tui.js +9 -0
  88. package/city/types/Tui.js.map +1 -0
  89. package/city/workspace/ServerWorkspace.d.ts +3 -2
  90. package/city/workspace/ServerWorkspace.d.ts.map +1 -1
  91. package/city/workspace/ServerWorkspace.js +262 -7
  92. package/city/workspace/ServerWorkspace.js.map +1 -1
  93. package/package.json +4 -4
  94. package/town/agent/AgentChat.d.ts.map +1 -1
  95. package/town/agent/AgentChat.js +21 -88
  96. package/town/agent/AgentChat.js.map +1 -1
  97. package/town/agent/AgentChatInteractiveRenderer.d.ts +2 -2
  98. package/town/agent/AgentChatInteractiveRenderer.d.ts.map +1 -1
  99. package/town/agent/AgentChatInteractiveRenderer.js.map +1 -1
  100. package/town/agent/AgentChatTui.d.ts +25 -0
  101. package/town/agent/AgentChatTui.d.ts.map +1 -0
  102. package/town/agent/AgentChatTui.js +253 -0
  103. package/town/agent/AgentChatTui.js.map +1 -0
  104. package/town/agent/AgentManager.js +1 -1
  105. package/town/agent/AgentManager.js.map +1 -1
  106. package/town/agent/AgentReset.js +1 -1
  107. package/town/agent/AgentReset.js.map +1 -1
  108. package/town/agent/AgentSelection.js +1 -1
  109. package/town/agent/AgentSelection.js.map +1 -1
  110. package/town/agent/Init.js +1 -1
  111. package/town/agent/Init.js.map +1 -1
  112. package/town/command/ChatAuthCommand.js +1 -1
  113. package/town/command/ChatAuthCommand.js.map +1 -1
  114. package/town/command/PluginCommand.js +1 -1
  115. package/town/command/PluginCommand.js.map +1 -1
  116. package/town/command/RootCommand.d.ts.map +1 -1
  117. package/town/command/RootCommand.js +1 -3
  118. package/town/command/RootCommand.js.map +1 -1
  119. package/town/command/TokenCommand.js +1 -1
  120. package/town/command/TokenCommand.js.map +1 -1
  121. package/town/index.d.ts +1 -0
  122. package/town/index.d.ts.map +1 -1
  123. package/town/index.js +14 -2
  124. package/town/index.js.map +1 -1
  125. package/town/shared/ChatManager.d.ts.map +1 -1
  126. package/town/shared/ChatManager.js +1 -1
  127. package/town/shared/ChatManager.js.map +1 -1
  128. package/town/shared/CityConnection.js +1 -1
  129. package/town/shared/CityConnection.js.map +1 -1
  130. package/town/shared/CityUserLogin.js +1 -1
  131. package/town/shared/CityUserLogin.js.map +1 -1
  132. package/town/shared/InteractiveLocale.js +1 -1
  133. package/town/shared/InteractiveLocale.js.map +1 -1
  134. package/town/shared/TownManager.d.ts.map +1 -1
  135. package/town/shared/TownManager.js +65 -57
  136. package/town/shared/TownManager.js.map +1 -1
  137. package/town/tui/Prompts.d.ts +42 -0
  138. package/town/tui/Prompts.d.ts.map +1 -0
  139. package/town/tui/Prompts.js +510 -0
  140. package/town/tui/Prompts.js.map +1 -0
  141. package/town/tui/TownDashboard.d.ts +20 -0
  142. package/town/tui/TownDashboard.d.ts.map +1 -0
  143. package/town/tui/TownDashboard.js +386 -0
  144. package/town/tui/TownDashboard.js.map +1 -0
  145. package/town/types/AgentChatInteractive.d.ts +17 -0
  146. package/town/types/AgentChatInteractive.d.ts.map +1 -1
  147. package/town/types/AgentChatInteractive.js +0 -7
  148. package/town/types/AgentChatInteractive.js.map +1 -1
  149. package/town/types/Tui.d.ts +25 -0
  150. package/town/types/Tui.d.ts.map +1 -0
  151. package/town/types/Tui.js +9 -0
  152. package/town/types/Tui.js.map +1 -0
  153. package/city/workspace/ServerManagement.d.ts +0 -13
  154. package/city/workspace/ServerManagement.d.ts.map +0 -1
  155. package/city/workspace/ServerManagement.js +0 -144
  156. package/city/workspace/ServerManagement.js.map +0 -1
@@ -2,5 +2,6 @@
2
2
  * Admin Accounts 管理命令。
3
3
  */
4
4
  import { City } from "@downcity/city";
5
- export declare function manageAccounts(a: City): Promise<void>;
5
+ import type { admin_tui_runtime } from "../../types/AdminTui.js";
6
+ export declare function manageAccounts(a: City, _baseUrl: string, runtime: admin_tui_runtime): Promise<void>;
6
7
  //# sourceMappingURL=accounts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../../src/admin/commands/accounts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAKtC,wBAAsB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC3D"}
1
+ {"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../../src/admin/commands/accounts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,wBAAsB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqCzG"}
@@ -1,43 +1,44 @@
1
1
  /**
2
2
  * Admin Accounts 管理命令。
3
3
  */
4
- import { select, isCancel } from "@clack/prompts";
5
- import { showError } from "../../core/ui.js";
6
4
  import { adminErrorMessage, rethrowAdminAuthError } from "../auth-error.js";
7
- export async function manageAccounts(a) {
5
+ export async function manageAccounts(a, _baseUrl, runtime) {
8
6
  const svc = a.service("accounts");
9
7
  while (true) {
10
- const act = await select({
11
- message: "Accounts",
12
- options: [
13
- { label: "List users", value: "users" },
14
- { label: "List sessions", value: "sessions" },
15
- { label: "Back", value: "back" },
16
- ],
17
- });
18
- if (!act || isCancel(act) || act === "back")
8
+ const act = await runtime.select("Accounts", [
9
+ { label: "List users", value: "users" },
10
+ { label: "List sessions", value: "sessions" },
11
+ { label: "Back", value: "back" },
12
+ ]);
13
+ if (!act || act === "back")
19
14
  return;
20
15
  try {
21
16
  if (act === "users") {
22
- const b = await svc.get("users");
23
- console.log(`\n${b.items.length} users:\n`);
24
- for (const u of b.items) {
25
- console.log(` ${u.user_id.padEnd(30)} ${u.email.padEnd(30)} ${u.created_at.slice(0, 10)}`);
26
- }
27
- console.log("");
17
+ const b = await runtime.with_loading("Users", async () => await svc.get("users"));
18
+ await runtime.show_table({
19
+ title: `${b.items.length} Users`,
20
+ columns: ["User ID", "Email", "Created"],
21
+ rows: b.items.map((u) => ({
22
+ cells: [u.user_id, u.email, u.created_at.slice(0, 10)],
23
+ })),
24
+ empty_message: "No users.",
25
+ });
28
26
  }
29
27
  else {
30
- const b = await svc.get("sessions");
31
- console.log(`\n${b.items.length} sessions:\n`);
32
- for (const s of b.items) {
33
- console.log(` ${s.session_id.padEnd(36)} ${s.user_id.padEnd(30)} [${s.status}]`);
34
- }
35
- console.log("");
28
+ const b = await runtime.with_loading("Sessions", async () => await svc.get("sessions"));
29
+ await runtime.show_table({
30
+ title: `${b.items.length} Sessions`,
31
+ columns: ["Session ID", "User ID", "Status"],
32
+ rows: b.items.map((s) => ({
33
+ cells: [s.session_id, s.user_id, s.status],
34
+ })),
35
+ empty_message: "No sessions.",
36
+ });
36
37
  }
37
38
  }
38
39
  catch (e) {
39
40
  rethrowAdminAuthError(e);
40
- showError(adminErrorMessage(e));
41
+ await runtime.show_message("error", adminErrorMessage(e));
41
42
  }
42
43
  }
43
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../src/admin/commands/accounts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE5E,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,CAAO;IAC1C,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAClC,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC;YACvB,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE;gBACvC,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE;gBAC7C,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;aACjC;SACF,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO;QAEpD,IAAI,CAAC;YACH,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBACpB,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAsE,OAAO,CAAC,CAAC;gBACtG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,WAAW,CAAC,CAAC;gBAC5C,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;oBACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC9F,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAuE,UAAU,CAAC,CAAC;gBAC1G,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,cAAc,CAAC,CAAC;gBAC/C,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;oBACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;gBACpF,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACzB,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../src/admin/commands/accounts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAG5E,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,CAAO,EAAE,QAAgB,EAAE,OAA0B;IACxF,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAClC,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE;YACzC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE;YACvC,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE;YAC7C,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;SACjC,CAAC,CAAC;QACL,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO;QAEnC,IAAI,CAAC;YACH,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBACpB,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAsE,OAAO,CAAC,CAAC,CAAC;gBACvJ,MAAM,OAAO,CAAC,UAAU,CAAC;oBACvB,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,QAAQ;oBAChC,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC;oBACxC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACxB,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;qBACvD,CAAC,CAAC;oBACH,aAAa,EAAE,WAAW;iBAC3B,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAuE,UAAU,CAAC,CAAC,CAAC;gBAC9J,MAAM,OAAO,CAAC,UAAU,CAAC;oBACvB,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,WAAW;oBACnC,OAAO,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC;oBAC5C,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACxB,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;qBAC3C,CAAC,CAAC;oBACH,aAAa,EAAE,cAAc;iBAC9B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -2,5 +2,6 @@
2
2
  * Admin Balance 管理命令。
3
3
  */
4
4
  import { City } from "@downcity/city";
5
- export declare function manageBalance(a: City): Promise<void>;
5
+ import type { admin_tui_runtime } from "../../types/AdminTui.js";
6
+ export declare function manageBalance(a: City, _baseUrl: string, runtime: admin_tui_runtime): Promise<void>;
6
7
  //# sourceMappingURL=balance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../../src/admin/commands/balance.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAKtC,wBAAsB,aAAa,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA6I1D"}
1
+ {"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../../src/admin/commands/balance.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,wBAAsB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6JxG"}
@@ -1,143 +1,157 @@
1
1
  /**
2
2
  * Admin Balance 管理命令。
3
3
  */
4
- import { isCancel, select } from "@clack/prompts";
5
- import { askText, showError, showSuccess } from "../../core/ui.js";
6
4
  import { adminErrorMessage, rethrowAdminAuthError } from "../auth-error.js";
7
- export async function manageBalance(a) {
5
+ export async function manageBalance(a, _baseUrl, runtime) {
8
6
  while (true) {
9
- const act = await select({
10
- message: "Balance",
11
- options: [
12
- { label: "List users", value: "users" },
13
- { label: "History", value: "history" },
14
- { label: "Topups", value: "topups" },
15
- { label: "Redeem codes", value: "redeem_codes" },
16
- { label: "Add balance", value: "add" },
17
- { label: "Subtract balance", value: "sub" },
18
- { label: "Finish topup", value: "finish" },
19
- { label: "Cancel topup", value: "cancel" },
20
- { label: "Create redeem code", value: "create_redeem_code" },
21
- { label: "Disable redeem code", value: "disable_redeem_code" },
22
- { label: "Back", value: "back" },
23
- ],
24
- });
25
- if (!act || isCancel(act) || act === "back")
7
+ const act = await runtime.select("Balance", [
8
+ { label: "List users", value: "users" },
9
+ { label: "History", value: "history" },
10
+ { label: "Topups", value: "topups" },
11
+ { label: "Redeem codes", value: "redeem_codes" },
12
+ { label: "Add balance", value: "add" },
13
+ { label: "Subtract balance", value: "sub" },
14
+ { label: "Finish topup", value: "finish" },
15
+ { label: "Cancel topup", value: "cancel" },
16
+ { label: "Create redeem code", value: "create_redeem_code" },
17
+ { label: "Disable redeem code", value: "disable_redeem_code" },
18
+ { label: "Back", value: "back" },
19
+ ]);
20
+ if (!act || act === "back")
26
21
  return;
27
22
  try {
28
23
  if (act === "users") {
29
- const items = await a.balance.listUsers(30);
30
- console.log(`\n${items.length} balance accounts:\n`);
31
- for (const item of items) {
32
- console.log(` ${item.user_id.padEnd(28)} ${String(item.balance).padStart(8)} ${item.unit.padEnd(10)} ${item.updated_at.slice(0, 19)}`);
33
- }
34
- console.log("");
24
+ const items = await runtime.with_loading("Balance Accounts", async () => await a.balance.listUsers(30));
25
+ await runtime.show_table({
26
+ title: `${items.length} Balance Accounts`,
27
+ columns: ["User", "Balance", "Unit", "Updated"],
28
+ rows: items.map((item) => ({
29
+ cells: [item.user_id, String(item.balance), item.unit, item.updated_at.slice(0, 19)],
30
+ })),
31
+ empty_message: "No balance accounts.",
32
+ });
35
33
  continue;
36
34
  }
37
35
  if (act === "history") {
38
- const userId = await askText("user_id (optional)");
39
- const items = await a.balance.listHistory({
36
+ const userId = await runtime.text("user_id (optional)");
37
+ const items = await runtime.with_loading("Balance History", async () => await a.balance.listHistory({
40
38
  limit: 30,
41
39
  user_id: userId ?? "",
40
+ }));
41
+ await runtime.show_table({
42
+ title: `${items.length} Balance History`,
43
+ columns: ["Created", "User", "Kind", "Amount", "Balance After", "Note"],
44
+ rows: items.map((item) => ({
45
+ cells: [item.created_at.slice(0, 19), item.user_id, item.kind, String(item.amount), String(item.balance_after), item.note],
46
+ })),
47
+ empty_message: "No balance history.",
42
48
  });
43
- console.log(`\n${items.length} balance history entries:\n`);
44
- for (const item of items) {
45
- console.log(` ${item.created_at.slice(0, 19)} ${item.user_id.padEnd(20)} ${item.kind.padEnd(8)} ${String(item.amount).padStart(6)} -> ${String(item.balance_after).padStart(6)} ${item.note}`);
46
- }
47
- console.log("");
48
49
  continue;
49
50
  }
50
51
  if (act === "topups") {
51
- const userId = await askText("user_id (optional)");
52
- const items = await a.balance.listTopups({
52
+ const userId = await runtime.text("user_id (optional)");
53
+ const items = await runtime.with_loading("Topups", async () => await a.balance.listTopups({
53
54
  limit: 30,
54
55
  user_id: userId ?? "",
56
+ }));
57
+ await runtime.show_table({
58
+ title: `${items.length} Topups`,
59
+ columns: ["Topup ID", "User", "Amount", "Unit", "Status", "Note"],
60
+ rows: items.map((item) => ({
61
+ cells: [item.topup_id, item.user_id, String(item.amount), item.unit, item.status, item.note],
62
+ })),
63
+ empty_message: "No topups.",
55
64
  });
56
- console.log(`\n${items.length} topup orders:\n`);
57
- for (const item of items) {
58
- console.log(` ${item.topup_id.padEnd(24)} ${item.user_id.padEnd(20)} ${String(item.amount).padStart(6)} ${item.unit.padEnd(10)} [${item.status}] ${item.note}`);
59
- }
60
- console.log("");
61
65
  continue;
62
66
  }
63
67
  if (act === "redeem_codes") {
64
- const status = await askText("status (optional: active/redeemed/disabled)");
65
- const userId = await askText("redeemed_by_user_id (optional)");
66
- const items = await a.balance.redeemCodes.list({
68
+ const status = await runtime.text("status (optional: active/redeemed/disabled)");
69
+ const userId = await runtime.text("redeemed_by_user_id (optional)");
70
+ const items = await runtime.with_loading("Redeem Codes", async () => await a.balance.redeemCodes.list({
67
71
  limit: 30,
68
72
  status: normalizeRedeemCodeStatus(status),
69
73
  user_id: userId ?? "",
74
+ }));
75
+ await runtime.show_table({
76
+ title: `${items.length} Redeem Codes`,
77
+ columns: ["Redeem Code ID", "Code", "Amount", "Unit", "Status", "Owner", "Note"],
78
+ rows: items.map((item) => ({
79
+ cells: [
80
+ item.redeem_code_id,
81
+ item.code_mask,
82
+ String(item.amount),
83
+ item.unit,
84
+ item.status,
85
+ item.redeemed_by_user_id || "-",
86
+ item.note,
87
+ ],
88
+ })),
89
+ empty_message: "No redeem codes.",
70
90
  });
71
- console.log(`\n${items.length} redeem codes:\n`);
72
- for (const item of items) {
73
- const owner = item.redeemed_by_user_id || "-";
74
- console.log(` ${item.redeem_code_id.padEnd(24)} ${item.code_mask.padEnd(22)} ${String(item.amount).padStart(6)} ${item.unit.padEnd(10)} [${item.status.padEnd(8)}] ${owner.padEnd(20)} ${item.note}`);
75
- }
76
- console.log("");
77
91
  continue;
78
92
  }
79
93
  if (act === "add" || act === "sub") {
80
- const userId = await askText("user_id");
94
+ const userId = await runtime.text("user_id");
81
95
  if (!userId)
82
96
  continue;
83
- const rawAmount = await askText("amount");
97
+ const rawAmount = await runtime.text("amount");
84
98
  if (!rawAmount)
85
99
  continue;
86
100
  const amount = Number(rawAmount);
87
101
  if (!Number.isInteger(amount) || amount <= 0) {
88
- showError("amount must be a positive integer");
102
+ await runtime.show_message("error", "amount must be a positive integer");
89
103
  continue;
90
104
  }
91
- const note = await askText("note (optional)");
92
- const account = act === "add"
105
+ const note = await runtime.text("note (optional)");
106
+ const account = await runtime.with_loading("Update Balance", async () => act === "add"
93
107
  ? await a.balance.add({ user_id: userId, amount, note: note ?? "" })
94
- : await a.balance.sub({ user_id: userId, amount, note: note ?? "" });
95
- showSuccess(`balance updated: ${account.user_id} -> ${account.balance} ${account.unit}`);
108
+ : await a.balance.sub({ user_id: userId, amount, note: note ?? "" }));
109
+ await runtime.show_message("success", `balance updated: ${account.user_id} -> ${account.balance} ${account.unit}`);
96
110
  continue;
97
111
  }
98
112
  if (act === "create_redeem_code") {
99
- const rawAmount = await askText("amount");
113
+ const rawAmount = await runtime.text("amount");
100
114
  if (!rawAmount)
101
115
  continue;
102
116
  const amount = Number(rawAmount);
103
117
  if (!Number.isInteger(amount) || amount <= 0) {
104
- showError("amount must be a positive integer");
118
+ await runtime.show_message("error", "amount must be a positive integer");
105
119
  continue;
106
120
  }
107
- const code = await askText("custom redeem_code (optional)");
108
- const note = await askText("note (optional)");
109
- const issued = await a.balance.redeemCodes.create({
121
+ const code = await runtime.text("custom redeem_code (optional)");
122
+ const note = await runtime.text("note (optional)");
123
+ const issued = await runtime.with_loading("Create Redeem Code", async () => await a.balance.redeemCodes.create({
110
124
  amount,
111
125
  code: code ?? "",
112
126
  note: note ?? "",
113
- });
114
- showSuccess(`redeem_code created: ${issued.redeem_code_id} -> ${issued.code} (+${issued.amount} ${issued.unit})`);
127
+ }));
128
+ await runtime.show_text("Redeem Code Created", `redeem_code created: ${issued.redeem_code_id}\ncode: ${issued.code}\namount: +${issued.amount} ${issued.unit}`);
115
129
  continue;
116
130
  }
117
131
  if (act === "disable_redeem_code") {
118
- const redeemCodeId = await askText("redeem_code_id");
132
+ const redeemCodeId = await runtime.text("redeem_code_id");
119
133
  if (!redeemCodeId)
120
134
  continue;
121
- const note = await askText("note (optional)");
122
- const item = await a.balance.redeemCodes.disable({
135
+ const note = await runtime.text("note (optional)");
136
+ const item = await runtime.with_loading("Disable Redeem Code", async () => await a.balance.redeemCodes.disable({
123
137
  redeem_code_id: redeemCodeId,
124
138
  note: note ?? "",
125
- });
126
- showSuccess(`redeem_code updated: ${item.redeem_code_id} -> ${item.status}`);
139
+ }));
140
+ await runtime.show_message("success", `redeem_code updated: ${item.redeem_code_id} -> ${item.status}`);
127
141
  continue;
128
142
  }
129
- const topupId = await askText("topup_id");
143
+ const topupId = await runtime.text("topup_id");
130
144
  if (!topupId)
131
145
  continue;
132
- const note = await askText("note (optional)");
133
- const topup = act === "finish"
146
+ const note = await runtime.text("note (optional)");
147
+ const topup = await runtime.with_loading("Update Topup", async () => act === "finish"
134
148
  ? await a.balance.finishTopup({ topup_id: topupId, note: note ?? "" })
135
- : await a.balance.cancelTopup({ topup_id: topupId, note: note ?? "" });
136
- showSuccess(`topup updated: ${topup.topup_id} -> ${topup.status}`);
149
+ : await a.balance.cancelTopup({ topup_id: topupId, note: note ?? "" }));
150
+ await runtime.show_message("success", `topup updated: ${topup.topup_id} -> ${topup.status}`);
137
151
  }
138
152
  catch (e) {
139
153
  rethrowAdminAuthError(e);
140
- showError(adminErrorMessage(e));
154
+ await runtime.show_message("error", adminErrorMessage(e));
141
155
  }
142
156
  }
143
157
  }
@@ -1 +1 @@
1
- {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../../src/admin/commands/balance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../../src/admin/commands/balance.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,6 @@
2
2
  * Admin Custom Service 命令。
3
3
  */
4
4
  import { City } from "@downcity/city";
5
- export declare function manageCustom(a: City): Promise<void>;
5
+ import type { admin_tui_runtime } from "../../types/AdminTui.js";
6
+ export declare function manageCustom(a: City, _baseUrl: string, runtime: admin_tui_runtime): Promise<void>;
6
7
  //# sourceMappingURL=custom.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"custom.d.ts","sourceRoot":"","sources":["../../../src/admin/commands/custom.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAKtC,wBAAsB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCzD"}
1
+ {"version":3,"file":"custom.d.ts","sourceRoot":"","sources":["../../../src/admin/commands/custom.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,wBAAsB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmCvG"}
@@ -1,46 +1,43 @@
1
1
  /**
2
2
  * Admin Custom Service 命令。
3
3
  */
4
- import { select, isCancel } from "@clack/prompts";
5
- import { askText, showError } from "../../core/ui.js";
6
4
  import { adminErrorMessage, rethrowAdminAuthError } from "../auth-error.js";
7
- export async function manageCustom(a) {
5
+ export async function manageCustom(a, _baseUrl, runtime) {
8
6
  while (true) {
9
- const name = await askText("service name (empty to go back)");
7
+ const name = await runtime.text("service name (empty to go back)");
10
8
  if (!name)
11
9
  return;
12
- const act = await select({
13
- message: name,
14
- options: [
15
- { label: "GET", value: "get" },
16
- { label: "POST", value: "post" },
17
- { label: "Back", value: "back" },
18
- ],
19
- });
20
- if (!act || isCancel(act) || act === "back")
10
+ const act = await runtime.select(name, [
11
+ { label: "GET", value: "get" },
12
+ { label: "POST", value: "post" },
13
+ { label: "Back", value: "back" },
14
+ ]);
15
+ if (!act || act === "back")
21
16
  return;
22
17
  try {
23
18
  const svc = a.service(name);
24
19
  if (act === "get") {
25
- const path = await askText("path") ?? "";
26
- console.log(JSON.stringify(await svc.get(path), null, 2));
20
+ const path = await runtime.text("path") ?? "";
21
+ const result = await runtime.with_loading(`${name} GET`, async () => await svc.get(path));
22
+ await runtime.show_json(`${name} GET ${path || "/"}`, result);
27
23
  }
28
24
  else {
29
- const raw = await askText("body (JSON)") ?? "{}";
25
+ const raw = await runtime.text("body (JSON)") ?? "{}";
30
26
  let body;
31
27
  try {
32
28
  body = JSON.parse(raw);
33
29
  }
34
30
  catch {
35
- showError("Invalid JSON body");
31
+ await runtime.show_message("error", "Invalid JSON body");
36
32
  continue;
37
33
  }
38
- console.log(JSON.stringify(await svc.action("").invoke(body), null, 2));
34
+ const result = await runtime.with_loading(`${name} POST`, async () => await svc.action("").invoke(body));
35
+ await runtime.show_json(`${name} POST`, result);
39
36
  }
40
37
  }
41
38
  catch (e) {
42
39
  rethrowAdminAuthError(e);
43
- showError(adminErrorMessage(e));
40
+ await runtime.show_message("error", adminErrorMessage(e));
44
41
  }
45
42
  }
46
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"custom.js","sourceRoot":"","sources":["../../../src/admin/commands/custom.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE5E,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,CAAO;IACxC,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,iCAAiC,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC;YACvB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;gBAC9B,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;gBAChC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;aACjC;SACF,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO;QAEpD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBAClB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACzC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;gBACjD,IAAI,IAA6B,CAAC;gBAClC,IAAI,CAAC;oBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACzB,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS,CAAC,mBAAmB,CAAC,CAAC;oBAC/B,SAAS;gBACX,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACzB,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"custom.js","sourceRoot":"","sources":["../../../src/admin/commands/custom.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAG5E,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,CAAO,EAAE,QAAgB,EAAE,OAA0B;IACtF,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;YACnC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;YAC9B,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YAChC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;SACjC,CAAC,CAAC;QACL,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO;QAEnC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBAClB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC9C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC1F,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,QAAQ,IAAI,IAAI,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;gBACtD,IAAI,IAA6B,CAAC;gBAClC,IAAI,CAAC;oBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACzB,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;oBACzD,SAAS;gBACX,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBACzG,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,OAAO,EAAE,MAAM,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -2,8 +2,9 @@
2
2
  * Admin City 说明文档查看命令。
3
3
  */
4
4
  import { City } from "@downcity/city";
5
+ import type { admin_tui_runtime } from "../../types/AdminTui.js";
5
6
  /**
6
7
  * 展示当前 City 聚合后的说明文档。
7
8
  */
8
- export declare function manageInstruction(a: City): Promise<void>;
9
+ export declare function manageInstruction(a: City, _baseUrl: string, runtime: admin_tui_runtime): Promise<void>;
9
10
  //# sourceMappingURL=instruction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"instruction.d.ts","sourceRoot":"","sources":["../../../src/admin/commands/instruction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9D"}
1
+ {"version":3,"file":"instruction.d.ts","sourceRoot":"","sources":["../../../src/admin/commands/instruction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,CAAC,EAAE,IAAI,EACP,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAGf"}
@@ -4,7 +4,8 @@
4
4
  /**
5
5
  * 展示当前 City 聚合后的说明文档。
6
6
  */
7
- export async function manageInstruction(a) {
8
- console.log(`\n${await a.instruction()}\n`);
7
+ export async function manageInstruction(a, _baseUrl, runtime) {
8
+ const content = await runtime.with_loading("City Instruction", async () => await a.instruction());
9
+ await runtime.show_text("City Instruction", content);
9
10
  }
10
11
  //# sourceMappingURL=instruction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"instruction.js","sourceRoot":"","sources":["../../../src/admin/commands/instruction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,CAAO;IAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"instruction.js","sourceRoot":"","sources":["../../../src/admin/commands/instruction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,CAAO,EACP,QAAgB,EAChB,OAA0B;IAE1B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAClG,MAAM,OAAO,CAAC,SAAS,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;AACvD,CAAC"}
@@ -7,8 +7,9 @@
7
7
  * - 如果模型缺少 provider key,会在这里直接显示缺失项。
8
8
  */
9
9
  import { City } from "@downcity/city";
10
+ import type { admin_tui_runtime } from "../../types/AdminTui.js";
10
11
  /**
11
12
  * 展示全部代码注册模型及其运行状态。
12
13
  */
13
- export declare function manageModels(a: City): Promise<void>;
14
+ export declare function manageModels(a: City, _baseUrl: string, runtime: admin_tui_runtime): Promise<void>;
14
15
  //# sourceMappingURL=models.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/admin/commands/models.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAKtC;;GAEG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAqDzD"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/admin/commands/models.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAGtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;GAEG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0DvG"}