cortico 0.1.0

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 (311) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +47 -0
  3. package/package.json +43 -0
  4. package/src/boot.ts +46 -0
  5. package/src/bot.ts +1342 -0
  6. package/src/config-file.ts +41 -0
  7. package/src/core/README.md +92 -0
  8. package/src/core/billing.ts +26 -0
  9. package/src/core/blobs.ts +106 -0
  10. package/src/core/bus.ts +311 -0
  11. package/src/core/config-schema.ts +201 -0
  12. package/src/core/config.ts +262 -0
  13. package/src/core/core.ts +699 -0
  14. package/src/core/cost.ts +244 -0
  15. package/src/core/event-store.ts +304 -0
  16. package/src/core/fork.ts +113 -0
  17. package/src/core/generation.ts +118 -0
  18. package/src/core/instance-lock.ts +215 -0
  19. package/src/core/ipc-logger.ts +105 -0
  20. package/src/core/language.ts +62 -0
  21. package/src/core/log-context.ts +38 -0
  22. package/src/core/loop.ts +1858 -0
  23. package/src/core/markers.ts +48 -0
  24. package/src/core/prefix.ts +121 -0
  25. package/src/core/run.ts +95 -0
  26. package/src/core/secrets.ts +18 -0
  27. package/src/core/session.ts +56 -0
  28. package/src/core/sessions.ts +261 -0
  29. package/src/core/state.ts +104 -0
  30. package/src/core/template.ts +72 -0
  31. package/src/core/timers.ts +129 -0
  32. package/src/core/tool-log.ts +135 -0
  33. package/src/core/transcript.ts +92 -0
  34. package/src/core/truncate.ts +121 -0
  35. package/src/core/types.ts +1140 -0
  36. package/src/core/usage-log.ts +79 -0
  37. package/src/core/util.ts +386 -0
  38. package/src/deploy-listing.ts +160 -0
  39. package/src/deploy.ts +162 -0
  40. package/src/extensions/README.md +72 -0
  41. package/src/extensions/dry-mount.ts +390 -0
  42. package/src/extensions/manifest.ts +153 -0
  43. package/src/extensions/runtime.ts +42 -0
  44. package/src/extensions.ts +519 -0
  45. package/src/launcher.ts +285 -0
  46. package/src/paths.ts +155 -0
  47. package/src/protocol/open-responses/LICENSE +201 -0
  48. package/src/protocol/open-responses/README.md +14 -0
  49. package/src/protocol/open-responses/context-helpers.ts +27 -0
  50. package/src/protocol/open-responses/context-log.ts +59 -0
  51. package/src/protocol/open-responses/context.ts +89 -0
  52. package/src/protocol/open-responses/generated.ts +115 -0
  53. package/src/protocol/open-responses/index.ts +33 -0
  54. package/src/protocol/open-responses/openapi.json +4230 -0
  55. package/src/protocol/open-responses/stream.ts +146 -0
  56. package/src/protocol/open-responses/tokens.ts +31 -0
  57. package/src/providers/README.md +86 -0
  58. package/src/providers/base.ts +111 -0
  59. package/src/providers/configuration.ts +97 -0
  60. package/src/providers/console/config.ts +21 -0
  61. package/src/providers/console/settings.ts +443 -0
  62. package/src/providers/console/strings.ts +74 -0
  63. package/src/providers/console/types.ts +11 -0
  64. package/src/providers/llamacpp/archive.ts +148 -0
  65. package/src/providers/llamacpp/catalog.ts +247 -0
  66. package/src/providers/llamacpp/config.ts +36 -0
  67. package/src/providers/llamacpp/console/client.ts +6 -0
  68. package/src/providers/llamacpp/console/models-panel.ts +120 -0
  69. package/src/providers/llamacpp/console/runtime-panel.ts +173 -0
  70. package/src/providers/llamacpp/console/server.ts +153 -0
  71. package/src/providers/llamacpp/index.ts +95 -0
  72. package/src/providers/llamacpp/native.ts +51 -0
  73. package/src/providers/llamacpp/options.ts +117 -0
  74. package/src/providers/llamacpp/runtime-store.ts +139 -0
  75. package/src/providers/llamacpp/runtime.ts +214 -0
  76. package/src/providers/llamacpp/server.ts +286 -0
  77. package/src/providers/llamacpp/strings.ts +230 -0
  78. package/src/providers/openai-responses-compat/config.ts +20 -0
  79. package/src/providers/openai-responses-compat/index.ts +89 -0
  80. package/src/providers/openai-responses-compat/native.ts +127 -0
  81. package/src/providers/openai-responses-compat/strings.ts +19 -0
  82. package/src/providers/pricebook.ts +75 -0
  83. package/src/providers/registry.ts +137 -0
  84. package/src/providers/strings.ts +71 -0
  85. package/src/providers/transport/chat.ts +156 -0
  86. package/src/providers/transport/errors.ts +48 -0
  87. package/src/providers/transport/history.ts +68 -0
  88. package/src/providers/transport/native-input.ts +83 -0
  89. package/src/providers/transport/native-types.ts +13 -0
  90. package/src/providers/transport/response-assembly.ts +191 -0
  91. package/src/providers/transport/response-http.ts +196 -0
  92. package/src/providers/transport/response-meters.ts +27 -0
  93. package/src/providers/transport/responses-input.ts +56 -0
  94. package/src/web/README.md +84 -0
  95. package/src/web/client/console-pages/builtins/llm-settings/panel.ts +625 -0
  96. package/src/web/client/console-pages/builtins/llm-settings/pricing-panel.ts +168 -0
  97. package/src/web/client/console-pages/builtins/llm-settings/strings.ts +213 -0
  98. package/src/web/client/console-pages/builtins.ts +10 -0
  99. package/src/web/client/console-pages/context.ts +135 -0
  100. package/src/web/client/console-pages/host.ts +633 -0
  101. package/src/web/client/console-pages/loader.ts +132 -0
  102. package/src/web/client/console-pages/strings.ts +90 -0
  103. package/src/web/client/console-pages/tools/strings.ts +49 -0
  104. package/src/web/client/console-pages/tools/view.ts +215 -0
  105. package/src/web/client/core/api.ts +200 -0
  106. package/src/web/client/core/language.ts +56 -0
  107. package/src/web/client/core/lifecycle.ts +132 -0
  108. package/src/web/client/core/router.ts +199 -0
  109. package/src/web/client/core/stream.ts +157 -0
  110. package/src/web/client/core/websocket.ts +82 -0
  111. package/src/web/client/features/appearance/index.ts +333 -0
  112. package/src/web/client/features/appearance/strings.ts +87 -0
  113. package/src/web/client/features/config/index.ts +11 -0
  114. package/src/web/client/features/config/strings.ts +41 -0
  115. package/src/web/client/features/config/view.ts +428 -0
  116. package/src/web/client/features/core/events.ts +197 -0
  117. package/src/web/client/features/core/index.ts +254 -0
  118. package/src/web/client/features/core/run.ts +56 -0
  119. package/src/web/client/features/core/runlog.ts +214 -0
  120. package/src/web/client/features/core/sessions.ts +53 -0
  121. package/src/web/client/features/core/strings.ts +157 -0
  122. package/src/web/client/features/extensions/index.ts +422 -0
  123. package/src/web/client/features/extensions/strings.ts +164 -0
  124. package/src/web/client/features/feature.ts +93 -0
  125. package/src/web/client/features/live/context.ts +280 -0
  126. package/src/web/client/features/live/fork.ts +156 -0
  127. package/src/web/client/features/live/index.ts +392 -0
  128. package/src/web/client/features/live/onboarding.ts +113 -0
  129. package/src/web/client/features/live/protocol.ts +122 -0
  130. package/src/web/client/features/live/sessions.ts +71 -0
  131. package/src/web/client/features/live/status.ts +68 -0
  132. package/src/web/client/features/live/strings.ts +252 -0
  133. package/src/web/client/features/live/timeline.ts +590 -0
  134. package/src/web/client/features/prompts/editor.ts +292 -0
  135. package/src/web/client/features/prompts/index.ts +346 -0
  136. package/src/web/client/features/prompts/strings.ts +136 -0
  137. package/src/web/client/features/prompts/view.ts +256 -0
  138. package/src/web/client/features/providers/index.ts +100 -0
  139. package/src/web/client/features/providers/strings.ts +23 -0
  140. package/src/web/client/features/settings/general.ts +28 -0
  141. package/src/web/client/features/settings/index.ts +82 -0
  142. package/src/web/client/features/settings/strings.ts +33 -0
  143. package/src/web/client/features/storage/index.ts +1 -0
  144. package/src/web/client/features/storage/strings.ts +45 -0
  145. package/src/web/client/features/storage/view.ts +154 -0
  146. package/src/web/client/features/usage/chart.ts +486 -0
  147. package/src/web/client/features/usage/index.ts +407 -0
  148. package/src/web/client/features/usage/labels.ts +46 -0
  149. package/src/web/client/features/usage/range.ts +36 -0
  150. package/src/web/client/features/usage/state.ts +37 -0
  151. package/src/web/client/features/usage/strings.ts +191 -0
  152. package/src/web/client/features/usage/tooltip.ts +86 -0
  153. package/src/web/client/features/usage/types.ts +96 -0
  154. package/src/web/client/features/worlds/index.ts +424 -0
  155. package/src/web/client/features/worlds/strings.ts +121 -0
  156. package/src/web/client/main.ts +273 -0
  157. package/src/web/client/shell/avatar.ts +233 -0
  158. package/src/web/client/shell/index.ts +549 -0
  159. package/src/web/client/shell/strings.ts +89 -0
  160. package/src/web/client/theme/handoff.ts +43 -0
  161. package/src/web/client/theme/palette.ts +109 -0
  162. package/src/web/client/theme/registry.ts +130 -0
  163. package/src/web/client/theme/storage.ts +72 -0
  164. package/src/web/client/theme/strings.ts +123 -0
  165. package/src/web/client/theme/studio.ts +366 -0
  166. package/src/web/client/ui/actions.ts +109 -0
  167. package/src/web/client/ui/data.ts +185 -0
  168. package/src/web/client/ui/dom.ts +23 -0
  169. package/src/web/client/ui/fields.ts +191 -0
  170. package/src/web/client/ui/format.ts +75 -0
  171. package/src/web/client/ui/icons.ts +183 -0
  172. package/src/web/client/ui/images.ts +91 -0
  173. package/src/web/client/ui/index.ts +89 -0
  174. package/src/web/client/ui/lamp.ts +125 -0
  175. package/src/web/client/ui/log.ts +98 -0
  176. package/src/web/client/ui/overlay.ts +184 -0
  177. package/src/web/client/ui/page.ts +8 -0
  178. package/src/web/client/ui/prompt-input.tsx +311 -0
  179. package/src/web/client/ui/sheet.ts +131 -0
  180. package/src/web/client/ui/strings.ts +71 -0
  181. package/src/web/console-pages.ts +367 -0
  182. package/src/web/files.ts +107 -0
  183. package/src/web/path-picker.ts +296 -0
  184. package/src/web/public/index.html +17 -0
  185. package/src/web/public/styles.css +1715 -0
  186. package/src/web/server.ts +1883 -0
  187. package/src/web/shared/client-panel.ts +603 -0
  188. package/src/web/shared/console-protocol.ts +560 -0
  189. package/src/web/shared/css.d.ts +1 -0
  190. package/src/web/shared/path-picker.ts +23 -0
  191. package/src/web/shared/theme.ts +256 -0
  192. package/src/web/theme-store.ts +37 -0
  193. package/src/world.ts +449 -0
  194. package/src/worlds/bilibili/ENV_PROMPT.md +5 -0
  195. package/src/worlds/bilibili/README.md +176 -0
  196. package/src/worlds/bilibili/audience-admission.ts +995 -0
  197. package/src/worlds/bilibili/client.ts +528 -0
  198. package/src/worlds/bilibili/coalescing-buffer.ts +125 -0
  199. package/src/worlds/bilibili/config.ts +185 -0
  200. package/src/worlds/bilibili/console/client.ts +202 -0
  201. package/src/worlds/bilibili/definition.ts +35 -0
  202. package/src/worlds/bilibili/gift-frame.ts +131 -0
  203. package/src/worlds/bilibili/normalize.ts +452 -0
  204. package/src/worlds/bilibili/overlay/announcement.ts +76 -0
  205. package/src/worlds/bilibili/overlay/assets.ts +82 -0
  206. package/src/worlds/bilibili/overlay/model.ts +494 -0
  207. package/src/worlds/bilibili/overlay/project.ts +202 -0
  208. package/src/worlds/bilibili/overlay/server.ts +286 -0
  209. package/src/worlds/bilibili/overlay/types.ts +217 -0
  210. package/src/worlds/bilibili/overlay/web/app.js +690 -0
  211. package/src/worlds/bilibili/overlay/web/editor.css +297 -0
  212. package/src/worlds/bilibili/overlay/web/editor.html +102 -0
  213. package/src/worlds/bilibili/overlay/web/editor.js +2116 -0
  214. package/src/worlds/bilibili/overlay/web/overlay.html +13 -0
  215. package/src/worlds/bilibili/overlay/web/styles.css +258 -0
  216. package/src/worlds/bilibili/protobuf.ts +123 -0
  217. package/src/worlds/bilibili/wire.ts +94 -0
  218. package/src/worlds/bilibili/world.ts +1389 -0
  219. package/src/worlds/console-fixture/ENV_PROMPT.md +1 -0
  220. package/src/worlds/console-fixture/console/client.ts +72 -0
  221. package/src/worlds/console-fixture/world.ts +73 -0
  222. package/src/worlds/index.ts +15 -0
  223. package/src/worlds/minecraft/ENV_PROMPT.md +32 -0
  224. package/src/worlds/minecraft/ENV_PROMPT_CAMERA.md +2 -0
  225. package/src/worlds/minecraft/LICENSE-mineflayer-pathfinder.txt +21 -0
  226. package/src/worlds/minecraft/README.md +917 -0
  227. package/src/worlds/minecraft/blueprint-plan.ts +915 -0
  228. package/src/worlds/minecraft/blueprint-registry.ts +566 -0
  229. package/src/worlds/minecraft/blueprint-repair.ts +236 -0
  230. package/src/worlds/minecraft/blueprint-resource.ts +272 -0
  231. package/src/worlds/minecraft/blueprint.ts +492 -0
  232. package/src/worlds/minecraft/body-lease.ts +340 -0
  233. package/src/worlds/minecraft/bridge.ts +749 -0
  234. package/src/worlds/minecraft/check.ts +651 -0
  235. package/src/worlds/minecraft/chests.ts +292 -0
  236. package/src/worlds/minecraft/client-launch.ts +272 -0
  237. package/src/worlds/minecraft/client-options.ts +85 -0
  238. package/src/worlds/minecraft/client-skins.ts +164 -0
  239. package/src/worlds/minecraft/client-window.ps1 +91 -0
  240. package/src/worlds/minecraft/client.ts +423 -0
  241. package/src/worlds/minecraft/combat-context.ts +109 -0
  242. package/src/worlds/minecraft/combat.ts +1552 -0
  243. package/src/worlds/minecraft/config.ts +499 -0
  244. package/src/worlds/minecraft/console/access.ts +218 -0
  245. package/src/worlds/minecraft/console/client.ts +244 -0
  246. package/src/worlds/minecraft/console/log.ts +110 -0
  247. package/src/worlds/minecraft/console/mount.ts +420 -0
  248. package/src/worlds/minecraft/console/skin.ts +257 -0
  249. package/src/worlds/minecraft/console/style.css +154 -0
  250. package/src/worlds/minecraft/console/world.ts +449 -0
  251. package/src/worlds/minecraft/deaths.ts +135 -0
  252. package/src/worlds/minecraft/definition.ts +18 -0
  253. package/src/worlds/minecraft/engine-child.ts +274 -0
  254. package/src/worlds/minecraft/engine-ipc.ts +98 -0
  255. package/src/worlds/minecraft/entity-facts.ts +132 -0
  256. package/src/worlds/minecraft/escape.ts +407 -0
  257. package/src/worlds/minecraft/executor.ts +14494 -0
  258. package/src/worlds/minecraft/explored.ts +156 -0
  259. package/src/worlds/minecraft/geometry.ts +205 -0
  260. package/src/worlds/minecraft/goal-plan.ts +647 -0
  261. package/src/worlds/minecraft/item-break.ts +126 -0
  262. package/src/worlds/minecraft/item-facts.ts +146 -0
  263. package/src/worlds/minecraft/item-pick.ts +67 -0
  264. package/src/worlds/minecraft/level-dat.ts +176 -0
  265. package/src/worlds/minecraft/log.ts +132 -0
  266. package/src/worlds/minecraft/mineflayer-fixes.ts +1180 -0
  267. package/src/worlds/minecraft/names.ts +377 -0
  268. package/src/worlds/minecraft/pathfinder-lib.d.ts +13 -0
  269. package/src/worlds/minecraft/pathfinder-perf.ts +796 -0
  270. package/src/worlds/minecraft/piglin.ts +49 -0
  271. package/src/worlds/minecraft/policy.ts +547 -0
  272. package/src/worlds/minecraft/precheck.ts +655 -0
  273. package/src/worlds/minecraft/proxy.ts +445 -0
  274. package/src/worlds/minecraft/ranged.ts +635 -0
  275. package/src/worlds/minecraft/readouts.ts +102 -0
  276. package/src/worlds/minecraft/round.ts +26 -0
  277. package/src/worlds/minecraft/search-observation.ts +92 -0
  278. package/src/worlds/minecraft/server-config.ts +467 -0
  279. package/src/worlds/minecraft/server.ts +658 -0
  280. package/src/worlds/minecraft/show.ts +84 -0
  281. package/src/worlds/minecraft/skills.ts +1763 -0
  282. package/src/worlds/minecraft/terrain.ts +1735 -0
  283. package/src/worlds/minecraft/window.ts +96 -0
  284. package/src/worlds/minecraft/works.ts +179 -0
  285. package/src/worlds/minecraft/world.ts +6438 -0
  286. package/src/worlds/qq/ENV_PROMPT.md +5 -0
  287. package/src/worlds/qq/config.ts +108 -0
  288. package/src/worlds/qq/console/client.ts +126 -0
  289. package/src/worlds/qq/console/events.ts +155 -0
  290. package/src/worlds/qq/console/gate.ts +232 -0
  291. package/src/worlds/qq/console/roster.ts +203 -0
  292. package/src/worlds/qq/console/style.css +65 -0
  293. package/src/worlds/qq/conversation.ts +28 -0
  294. package/src/worlds/qq/definition.ts +62 -0
  295. package/src/worlds/qq/driver.ts +375 -0
  296. package/src/worlds/qq/history-tools.ts +209 -0
  297. package/src/worlds/qq/normalize.ts +323 -0
  298. package/src/worlds/qq/qface-map.ts +282 -0
  299. package/src/worlds/qq/vision-prompt.ts +27 -0
  300. package/src/worlds/qq/vision.ts +642 -0
  301. package/src/worlds/qq/vlm.ts +142 -0
  302. package/src/worlds/qq/world.ts +1503 -0
  303. package/src/worlds/terminal/ENV_PROMPT.md +11 -0
  304. package/src/worlds/terminal/config.ts +9 -0
  305. package/src/worlds/terminal/definition.ts +14 -0
  306. package/src/worlds/terminal/world.ts +700 -0
  307. package/src/worlds/websearch/ENV_PROMPT.md +1 -0
  308. package/src/worlds/websearch/brave-client.ts +261 -0
  309. package/src/worlds/websearch/config.ts +75 -0
  310. package/src/worlds/websearch/definition.ts +20 -0
  311. package/src/worlds/websearch/world.ts +171 -0
@@ -0,0 +1 @@
1
+ 这是控制台边界的验收模组,不参与任何真实交互。
@@ -0,0 +1,72 @@
1
+ /** World 面板示例;浏览器扩展通过 client-panel.ts 使用共享接口。 */
2
+
3
+ import type {
4
+ ConsoleClientBundle,
5
+ ConsolePanelContext,
6
+ } from '../../../web/shared/client-panel.ts';
7
+
8
+ const bundle: ConsoleClientBundle = {
9
+ panels: {
10
+ // 局部面板 id 须与服务端 console().panels 对应。
11
+ hello: {
12
+ mount(ctx: ConsolePanelContext) {
13
+ const { ui } = ctx;
14
+ const card = ui.sheet({ title: '握手', en: 'hello' });
15
+ const bar = ui.rowbar();
16
+ const msg = ui.msgline('还没握过手。');
17
+
18
+ bar.appendChild(ui.button('ping', {
19
+ variant: 'primary',
20
+ size: 'sm',
21
+ onClick: () => {
22
+ void ctx.invoke<{ pings: number; at: string }>('ping')
23
+ .then((r) => {
24
+ msg.textContent = `第 ${r.pings} 次握手,服务端时间 ${ui.fmt.clock(r.at)}`;
25
+ // 刷新服务端声明的徽标。
26
+ void ctx.refresh();
27
+ })
28
+ .catch((err: unknown) => {
29
+ msg.textContent = String(err);
30
+ msg.classList.add('bad');
31
+ });
32
+ },
33
+ }));
34
+ bar.appendChild(ui.h('span', 'grow'));
35
+ card.body.append(bar, msg);
36
+
37
+ // 用定时器验证面板卸载时的资源释放。
38
+ let ticks = 0;
39
+ const beat = ui.msgline('');
40
+ ctx.interval(() => {
41
+ ticks++;
42
+ beat.textContent = `面板已打开 ${ticks} 秒`;
43
+ }, 1000);
44
+ card.body.appendChild(beat);
45
+
46
+ ctx.root.appendChild(card.el);
47
+ },
48
+ },
49
+
50
+ echo: {
51
+ mount(ctx: ConsolePanelContext) {
52
+ const { ui } = ctx;
53
+ const card = ui.sheet({ title: '回声', en: 'echo' });
54
+ const field = ui.input({ placeholder: '输入文本' });
55
+ const out = ui.msgline('');
56
+ const bar = ui.rowbar();
57
+ bar.append(field, ui.button('发送', {
58
+ size: 'sm',
59
+ onClick: () => {
60
+ void ctx.invoke<{ echoed: unknown[] }>('echo', [field.value])
61
+ .then((r) => { out.textContent = JSON.stringify(r.echoed); })
62
+ .catch((err: unknown) => { out.textContent = String(err); });
63
+ },
64
+ }));
65
+ card.body.append(bar, out);
66
+ ctx.root.appendChild(card.el);
67
+ },
68
+ },
69
+ },
70
+ };
71
+
72
+ export default bundle;
@@ -0,0 +1,73 @@
1
+ /** 用于验证 World 面板的自动发现、调用、徽标更新与资源释放;未列入默认 World 列表。 */
2
+
3
+ import { fileURLToPath } from 'node:url';
4
+ import type { World, WorldHost, WorldConsoleDecl, ToolDef } from '../../core/types.ts';
5
+
6
+ const ENV_PROMPT_FILE = fileURLToPath(new URL('./ENV_PROMPT.md', import.meta.url));
7
+
8
+ interface ConsoleFixtureOptions {
9
+ id?: string;
10
+ label?: string;
11
+ }
12
+
13
+ export class ConsoleFixtureWorld implements World {
14
+ readonly id: string;
15
+ private readonly label: string;
16
+ private host: WorldHost | null = null;
17
+ private pings = 0;
18
+
19
+ constructor(opts: ConsoleFixtureOptions = {}) {
20
+ this.id = opts.id ?? 'console-fixture';
21
+ this.label = opts.label ?? '控制台验收件';
22
+ }
23
+
24
+ envPromptVars(): Record<string, string> {
25
+ return {};
26
+ }
27
+
28
+ tools(): ToolDef[] {
29
+ return [];
30
+ }
31
+
32
+ console(): WorldConsoleDecl {
33
+ return {
34
+ lamps: [{
35
+ label: '握手',
36
+ state: 'online',
37
+ ...(this.pings > 0 ? { hint: `${this.pings} 次` } : {}),
38
+ }],
39
+ badges: [{ label: '握手', value: this.pings, tone: this.pings > 0 ? 'on' : 'plain' }],
40
+ panels: [
41
+ { id: 'hello', title: '握手', description: '调用后更新握手次数。' },
42
+ { id: 'echo', title: '回声', description: '原样返回参数。' },
43
+ ],
44
+ invoke: async (panel, method, args) => {
45
+ if (panel === 'hello' && method === 'ping') {
46
+ this.pings++;
47
+ return { ok: true, pings: this.pings, at: new Date().toISOString() };
48
+ }
49
+ if (panel === 'echo' && method === 'echo') {
50
+ return { echoed: args };
51
+ }
52
+ throw new Error(`未知面板方法: ${panel}.${method}`);
53
+ },
54
+ promptDocs: [
55
+ {
56
+ key: `worlds.${this.id}.envPrompt`,
57
+ title: `${this.label} · 环境提示词`,
58
+ description: '验收环境说明。',
59
+ path: ENV_PROMPT_FILE,
60
+ role: 'envPrompt',
61
+ },
62
+ ],
63
+ };
64
+ }
65
+
66
+ async start(host: WorldHost): Promise<void> {
67
+ this.host = host;
68
+ }
69
+
70
+ async stop(): Promise<void> {
71
+ this.host = null;
72
+ }
73
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * 仓内 World 目录。启动器把它与扩展装进来的 World 并成一张表,经 `withWorlds()` 交给 bot 定义;
3
+ * bot 只声明它为之设计的渠道,哪些真挂由部署的 `worlds.<id>.enabled` 决定。
4
+ * `console-fixture` 是控制台边界的验收件,不在这里。
5
+ */
6
+ import type { WorldDefinition, WorldSection } from '../world.ts';
7
+ import { TERMINAL } from './terminal/definition.ts';
8
+ import { QQ } from './qq/definition.ts';
9
+ import { BILIBILI } from './bilibili/definition.ts';
10
+ import { MINECRAFT } from './minecraft/definition.ts';
11
+ import { WEBSEARCH } from './websearch/definition.ts';
12
+
13
+ export const BUILTIN_WORLDS: readonly WorldDefinition<WorldSection>[] = [
14
+ TERMINAL, QQ, BILIBILI, MINECRAFT, WEBSEARCH,
15
+ ] as WorldDefinition<WorldSection>[];
@@ -0,0 +1,32 @@
1
+ 你正在玩 Minecraft。版本 1.20.6 原版无 MOD。
2
+ {{minecraft.world}}
3
+ 活是排着队做的:受理回执只说这件事收下了、开始做了,做没做成要等它自己的结果送过来。
4
+ 进度看回执和快照末尾的 [队列] 行——走到第几步、这一步是什么、跑了多久;「还没做完」和「没进展」靠这几个数分辨。一件活跑上二三十秒是常态,而你醒来比它做完快得多,想催进度先读那一行,别拿新单去顶一件正跑着的活。
5
+ 读数有三个只读入口,问它们不用重下单:mc_bag 是包里现在有什么(占了几格、都是什么、手上和身上穿的),mc_queue 是队列现状加最近一单的下场,mc_blocked 是最近几步没做成的原话。三个都是纯读,不动世界也不动队列。一轮里同一个问一次就够,答案在这一轮内不会变,再问只会拿回一句「上面已经答过了」。
6
+ 埋在石头里的、隔着墙的东西不进你的感知(隔着玻璃和铁栏杆算看得见)。找不到就挖开、绕过去、或者走近点再看。
7
+
8
+ ## 直播
9
+ 下矿之前身上带够火把,不然观众抓瞎什么都看不见。
10
+ 挨打还手是自动的,打起来你只管解说;要不要主动上去打是你说了算的,那一格是 mc_policy 的 fight。
11
+ 观众不知道你在游戏里的能力边界,他们以为你像真人一样在玩游戏,你就接受这个设定。做不到的事可以适度解释,解释不了的归结为【插件的问题】。
12
+ 用 mc_blueprint 的 design 想一份设计要跑上几分钟,开工前先跟观众说一声。
13
+
14
+ ## 闭包原则
15
+ 对外说话的唯一事实是你正在直接操作这个游戏。禁止暴露内部接口或工具回执。
16
+ 自动合成说「我合成了」,寻路说「我走到了」,自保反射说「我赶快跑」。
17
+ 意外就糊弄:游戏卡了、发呆、搞错了、头晕。禁止说系统、自动、等他跑完。
18
+
19
+ ## 做笔记
20
+ * 地图:地标的名称、坐标、辨认特征。工地第一次正式开工后,把名称和锚点登记成路标。
21
+ * 路线:长途拆成短段,记起点、终点、途经点、危险段。
22
+ * 目标与进度:在做的、排队的、做完的;位置和进度带世界名。
23
+ * 机制与教训:验证过的规律,带依据;错了标「已证伪」。
24
+
25
+ 什么在哪、有没有、成没成——写进笔记之前先用 mc_check 对一眼世界。对不上的、来不及对的,照实写成「我以为」「还没核对」,别写成看见过。
26
+ 记录时要使用生动的叙述性语言,不要压缩内容。系统设置不记笔记。
27
+
28
+ {{minecraft.explored}}
29
+
30
+ {{minecraft.policy}}
31
+
32
+ {{minecraft.camera}}
@@ -0,0 +1,2 @@
1
+ - 有一台观察者摄像机以旁观模式跟着你,画面就是你的视角(含光影与材质),观众看到的和你自己看画面时看到的都是它。它不是玩家,不会挡路也不用管它。
2
+ - 你开箱子、用工作台、装熔炉时,那张操作界面会同步到直播画面上:观众能看着你逐格摆料、产物出现、收进包里。徒手 2x2 合成没有界面,观众看不到过程,只见东西到手。
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2020 Karang
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.