@mininglamp-oss/octo-runtime 1.1.0 → 1.1.2

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 (149) hide show
  1. package/README.md +4 -2
  2. package/apps/cli/README.md +3 -1
  3. package/apps/cli/dist/build-info.json +2 -2
  4. package/apps/cli/dist/extras.d.ts +4 -2
  5. package/apps/cli/dist/extras.js +20 -21
  6. package/apps/cli/dist/help.js +3 -0
  7. package/apps/cli/dist/logs.d.ts +10 -0
  8. package/apps/cli/dist/logs.js +186 -0
  9. package/apps/cli/dist/main.d.ts +1 -0
  10. package/apps/cli/dist/main.js +94 -19
  11. package/apps/cli/dist/{default_adapters.json → manifest.json} +10 -0
  12. package/apps/cli/dist/module-manifest.d.ts +3 -0
  13. package/apps/cli/dist/module-manifest.js +11 -0
  14. package/apps/cli/dist/openclaw.js +30 -6
  15. package/apps/cli/dist/output.js +3 -0
  16. package/apps/cli/dist/playboard.js +10 -8
  17. package/apps/cli/dist/status-output.d.ts +10 -0
  18. package/apps/cli/dist/status-output.js +65 -0
  19. package/apps/cli/dist/worker.d.ts +1 -0
  20. package/apps/cli/dist/worker.js +18 -0
  21. package/dist/public/host.d.ts +1 -0
  22. package/node_modules/@mininglamp-oss/octo-runtime-acp-client/package.json +3 -3
  23. package/node_modules/@mininglamp-oss/octo-runtime-adapter-acp/package.json +4 -4
  24. package/node_modules/@mininglamp-oss/octo-runtime-adapter-antigravity/package.json +3 -3
  25. package/node_modules/@mininglamp-oss/octo-runtime-adapter-claude-code/package.json +3 -3
  26. package/node_modules/@mininglamp-oss/octo-runtime-adapter-codebuddy/package.json +4 -4
  27. package/node_modules/@mininglamp-oss/octo-runtime-adapter-codex/package.json +3 -3
  28. package/node_modules/@mininglamp-oss/octo-runtime-adapter-grok-build/dist/adapter.d.ts +54 -0
  29. package/node_modules/@mininglamp-oss/octo-runtime-adapter-grok-build/dist/adapter.js +399 -0
  30. package/node_modules/@mininglamp-oss/octo-runtime-adapter-grok-build/dist/client.d.ts +14 -0
  31. package/node_modules/@mininglamp-oss/octo-runtime-adapter-grok-build/dist/client.js +156 -0
  32. package/node_modules/@mininglamp-oss/octo-runtime-adapter-grok-build/dist/index.d.ts +29 -0
  33. package/node_modules/@mininglamp-oss/octo-runtime-adapter-grok-build/dist/index.js +273 -0
  34. package/node_modules/@mininglamp-oss/octo-runtime-adapter-grok-build/dist/interactions.d.ts +27 -0
  35. package/node_modules/@mininglamp-oss/octo-runtime-adapter-grok-build/dist/interactions.js +161 -0
  36. package/node_modules/@mininglamp-oss/octo-runtime-adapter-grok-build/package.json +17 -0
  37. package/node_modules/@mininglamp-oss/octo-runtime-adapter-hermes/package.json +2 -2
  38. package/node_modules/@mininglamp-oss/octo-runtime-adapter-kimi-code/package.json +2 -2
  39. package/node_modules/@mininglamp-oss/octo-runtime-adapter-mcode/package.json +2 -2
  40. package/node_modules/@mininglamp-oss/octo-runtime-adapter-openclaw/dist/compatibility.d.ts +24 -0
  41. package/node_modules/@mininglamp-oss/octo-runtime-adapter-openclaw/dist/compatibility.js +181 -0
  42. package/node_modules/@mininglamp-oss/octo-runtime-adapter-openclaw/dist/gateway.d.ts +9 -0
  43. package/node_modules/@mininglamp-oss/octo-runtime-adapter-openclaw/dist/gateway.js +24 -8
  44. package/node_modules/@mininglamp-oss/octo-runtime-adapter-openclaw/dist/index.js +229 -225
  45. package/node_modules/@mininglamp-oss/octo-runtime-adapter-openclaw/package.json +3 -3
  46. package/node_modules/@mininglamp-oss/octo-runtime-adapter-opencode/package.json +4 -4
  47. package/node_modules/@mininglamp-oss/octo-runtime-adapter-qodercli/package.json +2 -2
  48. package/node_modules/@mininglamp-oss/octo-runtime-adapter-qoderclicn/package.json +2 -2
  49. package/node_modules/@mininglamp-oss/octo-runtime-adapter-sdk/dist/approval.d.ts +4 -0
  50. package/node_modules/@mininglamp-oss/octo-runtime-adapter-sdk/dist/approval.js +5 -6
  51. package/node_modules/@mininglamp-oss/octo-runtime-adapter-sdk/dist/index.d.ts +1 -0
  52. package/node_modules/@mininglamp-oss/octo-runtime-adapter-sdk/dist/index.js +1 -0
  53. package/node_modules/@mininglamp-oss/octo-runtime-adapter-sdk/dist/module-manifest.d.ts +33 -0
  54. package/node_modules/@mininglamp-oss/octo-runtime-adapter-sdk/dist/module-manifest.js +118 -0
  55. package/node_modules/@mininglamp-oss/octo-runtime-adapter-sdk/dist/runtime-log-worker.js +7 -5
  56. package/node_modules/@mininglamp-oss/octo-runtime-adapter-sdk/dist/runtime-log.d.ts +3 -0
  57. package/node_modules/@mininglamp-oss/octo-runtime-adapter-sdk/dist/runtime-log.js +45 -10
  58. package/node_modules/@mininglamp-oss/octo-runtime-adapter-sdk/dist/service-status.d.ts +11 -0
  59. package/node_modules/@mininglamp-oss/octo-runtime-adapter-sdk/dist/service-status.js +70 -0
  60. package/node_modules/@mininglamp-oss/octo-runtime-adapter-sdk/package.json +5 -3
  61. package/node_modules/@mininglamp-oss/octo-runtime-adapter-zcode-gui/package.json +3 -3
  62. package/node_modules/@mininglamp-oss/octo-runtime-cli/dist/build-info.json +2 -2
  63. package/node_modules/@mininglamp-oss/octo-runtime-cli/dist/extras.d.ts +4 -2
  64. package/node_modules/@mininglamp-oss/octo-runtime-cli/dist/extras.js +20 -21
  65. package/node_modules/@mininglamp-oss/octo-runtime-cli/dist/help.js +3 -0
  66. package/node_modules/@mininglamp-oss/octo-runtime-cli/dist/logs.d.ts +10 -0
  67. package/node_modules/@mininglamp-oss/octo-runtime-cli/dist/logs.js +186 -0
  68. package/node_modules/@mininglamp-oss/octo-runtime-cli/dist/main.d.ts +1 -0
  69. package/node_modules/@mininglamp-oss/octo-runtime-cli/dist/main.js +94 -19
  70. package/node_modules/@mininglamp-oss/octo-runtime-cli/dist/{default_adapters.json → manifest.json} +10 -0
  71. package/node_modules/@mininglamp-oss/octo-runtime-cli/dist/module-manifest.d.ts +3 -0
  72. package/node_modules/@mininglamp-oss/octo-runtime-cli/dist/module-manifest.js +11 -0
  73. package/node_modules/@mininglamp-oss/octo-runtime-cli/dist/openclaw.js +30 -6
  74. package/node_modules/@mininglamp-oss/octo-runtime-cli/dist/output.js +3 -0
  75. package/node_modules/@mininglamp-oss/octo-runtime-cli/dist/playboard.js +10 -8
  76. package/node_modules/@mininglamp-oss/octo-runtime-cli/dist/status-output.d.ts +10 -0
  77. package/node_modules/@mininglamp-oss/octo-runtime-cli/dist/status-output.js +65 -0
  78. package/node_modules/@mininglamp-oss/octo-runtime-cli/dist/worker.d.ts +1 -0
  79. package/node_modules/@mininglamp-oss/octo-runtime-cli/dist/worker.js +18 -0
  80. package/node_modules/@mininglamp-oss/octo-runtime-cli/package.json +23 -9
  81. package/node_modules/@mininglamp-oss/octo-runtime-cross-service/package.json +2 -2
  82. package/node_modules/@mininglamp-oss/octo-runtime-executor-core/dist/model-input.d.ts +1 -1
  83. package/node_modules/@mininglamp-oss/octo-runtime-executor-core/dist/model-input.js +13 -9
  84. package/node_modules/@mininglamp-oss/octo-runtime-executor-core/package.json +3 -3
  85. package/node_modules/@mininglamp-oss/octo-runtime-executor-kernel/dist/heartbeat.d.ts +16 -0
  86. package/node_modules/@mininglamp-oss/octo-runtime-executor-kernel/dist/heartbeat.js +59 -0
  87. package/node_modules/@mininglamp-oss/octo-runtime-executor-kernel/dist/invocation-manifest.d.ts +1 -0
  88. package/node_modules/@mininglamp-oss/octo-runtime-executor-kernel/dist/invocation-manifest.js +4 -1
  89. package/node_modules/@mininglamp-oss/octo-runtime-executor-kernel/dist/manifest-adapters.d.ts +6 -0
  90. package/node_modules/@mininglamp-oss/octo-runtime-executor-kernel/dist/manifest-adapters.js +88 -0
  91. package/node_modules/@mininglamp-oss/octo-runtime-executor-kernel/dist/module-specifier.d.ts +1 -2
  92. package/node_modules/@mininglamp-oss/octo-runtime-executor-kernel/dist/module-specifier.js +2 -9
  93. package/node_modules/@mininglamp-oss/octo-runtime-executor-kernel/dist/process.d.ts +7 -2
  94. package/node_modules/@mininglamp-oss/octo-runtime-executor-kernel/dist/process.js +138 -9
  95. package/node_modules/@mininglamp-oss/octo-runtime-executor-kernel/dist/runner.js +3 -92
  96. package/node_modules/@mininglamp-oss/octo-runtime-executor-kernel/dist/serve.js +36 -12
  97. package/node_modules/@mininglamp-oss/octo-runtime-executor-kernel/dist/server.d.ts +4 -1
  98. package/node_modules/@mininglamp-oss/octo-runtime-executor-kernel/dist/server.js +14 -6
  99. package/node_modules/@mininglamp-oss/octo-runtime-executor-kernel/dist/service.js +2 -1
  100. package/node_modules/@mininglamp-oss/octo-runtime-executor-kernel/dist/supervisor.d.ts +2 -2
  101. package/node_modules/@mininglamp-oss/octo-runtime-executor-kernel/dist/supervisor.js +57 -34
  102. package/node_modules/@mininglamp-oss/octo-runtime-executor-kernel/package.json +8 -16
  103. package/node_modules/@mininglamp-oss/octo-runtime-extra-channel-gateway/config-schema.json +2 -2
  104. package/node_modules/@mininglamp-oss/octo-runtime-extra-channel-gateway/dist/application/im-channel.js +18 -18
  105. package/node_modules/@mininglamp-oss/octo-runtime-extra-channel-gateway/dist/contracts.d.ts +1 -0
  106. package/node_modules/@mininglamp-oss/octo-runtime-extra-channel-gateway/dist/execution/dispatcher.js +24 -0
  107. package/node_modules/@mininglamp-oss/octo-runtime-extra-channel-gateway/dist/transport/contexts.js +2 -2
  108. package/node_modules/@mininglamp-oss/octo-runtime-extra-channel-gateway/dist/transport/mentions.d.ts +5 -2
  109. package/node_modules/@mininglamp-oss/octo-runtime-extra-channel-gateway/dist/transport/mentions.js +19 -5
  110. package/node_modules/@mininglamp-oss/octo-runtime-extra-channel-gateway/dist/transport/normalize.js +1 -0
  111. package/node_modules/@mininglamp-oss/octo-runtime-extra-channel-gateway/package.json +6 -6
  112. package/node_modules/@mininglamp-oss/octo-runtime-extra-channel-wecom/config-schema.json +2 -2
  113. package/node_modules/@mininglamp-oss/octo-runtime-extra-channel-wecom/package.json +5 -5
  114. package/node_modules/@mininglamp-oss/octo-runtime-extra-webui/config-schema.json +2 -2
  115. package/node_modules/@mininglamp-oss/octo-runtime-extra-webui/dist/index.js +1 -1
  116. package/node_modules/@mininglamp-oss/octo-runtime-extra-webui/dist/store.d.ts +4 -1
  117. package/node_modules/@mininglamp-oss/octo-runtime-extra-webui/dist/store.js +54 -4
  118. package/node_modules/@mininglamp-oss/octo-runtime-extra-webui/package.json +2 -2
  119. package/node_modules/@mininglamp-oss/octo-runtime-host-sdk/dist/extra-config.d.ts +8 -1
  120. package/node_modules/@mininglamp-oss/octo-runtime-host-sdk/dist/extra-config.js +27 -12
  121. package/node_modules/@mininglamp-oss/octo-runtime-host-sdk/dist/extra-service.js +39 -2
  122. package/node_modules/@mininglamp-oss/octo-runtime-host-sdk/dist/index.d.ts +1 -0
  123. package/node_modules/@mininglamp-oss/octo-runtime-host-sdk/package.json +4 -4
  124. package/node_modules/@mininglamp-oss/octo-runtime-protocol/package.json +1 -1
  125. package/node_modules/import-meta-resolve/index.d.ts +19 -0
  126. package/node_modules/import-meta-resolve/index.d.ts.map +1 -0
  127. package/node_modules/import-meta-resolve/index.js +47 -0
  128. package/node_modules/import-meta-resolve/lib/errors.d.ts +24 -0
  129. package/node_modules/import-meta-resolve/lib/errors.d.ts.map +1 -0
  130. package/node_modules/import-meta-resolve/lib/errors.js +504 -0
  131. package/node_modules/import-meta-resolve/lib/get-format.d.ts +13 -0
  132. package/node_modules/import-meta-resolve/lib/get-format.d.ts.map +1 -0
  133. package/node_modules/import-meta-resolve/lib/get-format.js +159 -0
  134. package/node_modules/import-meta-resolve/lib/package-json-reader.d.ts +31 -0
  135. package/node_modules/import-meta-resolve/lib/package-json-reader.d.ts.map +1 -0
  136. package/node_modules/import-meta-resolve/lib/package-json-reader.js +177 -0
  137. package/node_modules/import-meta-resolve/lib/resolve.d.ts +29 -0
  138. package/node_modules/import-meta-resolve/lib/resolve.d.ts.map +1 -0
  139. package/node_modules/import-meta-resolve/lib/resolve.js +1301 -0
  140. package/node_modules/import-meta-resolve/lib/utils.d.ts +6 -0
  141. package/node_modules/import-meta-resolve/lib/utils.d.ts.map +1 -0
  142. package/node_modules/import-meta-resolve/lib/utils.js +47 -0
  143. package/node_modules/import-meta-resolve/license +74 -0
  144. package/node_modules/import-meta-resolve/package.json +78 -0
  145. package/node_modules/import-meta-resolve/readme.md +252 -0
  146. package/package.json +30 -26
  147. package/packages/octo-runtime-extra-channel-gateway/config-schema.json +2 -2
  148. package/packages/octo-runtime-extra-channel-wecom/config-schema.json +2 -2
  149. package/packages/octo-runtime-extra-webui/config-schema.json +2 -2
@@ -1,7 +1,6 @@
1
1
  import { readFile, mkdir, writeFile, rename, lstat, chmod, rm } from "node:fs/promises";
2
2
  import { parseEnv, promisify } from "node:util";
3
3
  import { execFile } from "node:child_process";
4
- import { configuredCredential, validateImBots, octoCliEnvironment } from "@mininglamp-oss/octo-runtime-extra-channel-gateway";
5
4
  import { randomUUID } from "node:crypto";
6
5
  import { isIP } from "node:net";
7
6
  import { homedir, networkInterfaces } from "node:os";
@@ -103,15 +102,40 @@ export async function syncCliOpenClawToolEnvironment(runtimeRoot, extras) {
103
102
  if (!channel || channel.config.bots === undefined)
104
103
  return { written: false, restartRequired: false };
105
104
  const bots = channel.config.bots;
106
- validateImBots(bots);
105
+ if (!Array.isArray(bots) || bots.length > 64)
106
+ throw new Error("IM_CONFIG_LIST_REQUIRED");
107
107
  let values;
108
- for (const bot of bots) {
109
- if (bot.enabled === false || bot.adapter.adapter_type !== "openclaw")
108
+ for (const value of bots) {
109
+ const bot = record(value);
110
+ if (!bot)
111
+ throw new Error("IM_CONFIG_INVALID");
112
+ if (bot.enabled === false || record(bot.adapter)?.adapter_type !== "openclaw")
110
113
  continue;
111
- const token = configuredCredential(bot);
114
+ const token = typeof bot.bf_token === "string" ? bot.bf_token.trim() : undefined;
112
115
  if (!token)
113
116
  throw new Error("IM_CREDENTIALS_REQUIRED");
114
- values = Object.fromEntries(octoCliEnvironment(bot.api_url, token).env_variables.map(({ key, value }) => [key, value]));
117
+ // CLI 仅校验自己要写入的工具身份;完整 Bot 配置由启动后的 Extra 校验。
118
+ // 不为 Kernel 的 dotenv 同步导入整个业务 Extra,否则未启动 Extra 缺包也会阻塞 Kernel。
119
+ if (!/^bf_[A-Za-z0-9_-]+$/.test(token))
120
+ throw new Error("IM_BOT_TOKEN_INVALID");
121
+ let url;
122
+ try {
123
+ if (typeof bot.api_url !== "string")
124
+ throw new Error();
125
+ url = new URL(bot.api_url);
126
+ }
127
+ catch {
128
+ throw new Error("IM_API_URL_INVALID");
129
+ }
130
+ if (url.username ||
131
+ url.password ||
132
+ url.search ||
133
+ url.hash ||
134
+ (url.protocol !== "https:" &&
135
+ !(url.protocol === "http:" && ["127.0.0.1", "localhost", "[::1]"].includes(url.hostname))))
136
+ throw new Error("IM_API_URL_INVALID");
137
+ url.pathname = url.pathname.replace(/\/+$/, "").replace(/\/api$/, "");
138
+ values = { OCTO_BOT_TOKEN: token, OCTO_API_BASE_URL: url.href.replace(/\/+$/, "") };
115
139
  }
116
140
  if (!values)
117
141
  return { written: false, restartRequired: false };
@@ -102,6 +102,9 @@ export function describeError(error, fallback = "COMMAND_FAILED") {
102
102
  SERVICE_NOT_INSTALLED: "Run this component's install command, then start it.",
103
103
  NOT_INSTALLED: "Run this component's install command, then start it.",
104
104
  EXTRA_NOT_REGISTERED: "Save this Extra's declaration with extraset before starting it.",
105
+ EXTRA_MANIFEST_DECLARATION_REQUIRED: "Add this Extra's name and module to the selected Home manifest.json (extras array), then retry.",
106
+ EXTRA_MODULE_MIGRATION_REQUIRED: "The saved module differs from manifest.json. Review both declarations, then save matching module text or omit module from the Extra configuration.",
107
+ MANIFEST_INVALID: "Check manifest.json: version must be 1 and adapters/extras must be valid arrays without duplicate keys.",
105
108
  MANAGER_UNAVAILABLE: "Run doctor and check the current user's native service manager.",
106
109
  COMPONENT_UNAVAILABLE: "Check component status and the service logs; the IPC or worker is not ready.",
107
110
  SERVICE_PROCESS_EXITED: "The service exited unexpectedly. Check its logs and configuration.",
@@ -1,7 +1,7 @@
1
1
  import { defaultRuntimeHome, runtimePaths, readJsonFile } from "./state.js";
2
- import { initializeCliOpenClaw } from "./openclaw.js";
2
+ import { loadCliManifest } from "./module-manifest.js";
3
+ import { resolveAdapterModules } from "@mininglamp-oss/octo-runtime-adapter-sdk/module-manifest";
3
4
  import { readAdapterConfigurations, createKernelService } from "@mininglamp-oss/octo-runtime-executor-kernel";
4
- import { resolve } from "node:path";
5
5
  import { fileURLToPath } from "node:url";
6
6
  import { componentEndpoint } from "@mininglamp-oss/octo-runtime-host-sdk";
7
7
  import { mkdtemp, rm } from "node:fs/promises";
@@ -67,15 +67,17 @@ export async function runPlayboard(options) {
67
67
  const temporary = await mkdtemp(join(tmpdir(), "octo-playboard-"));
68
68
  try {
69
69
  const paths = runtimePaths(home, profile);
70
- await initializeCliOpenClaw(paths.profileRoot, options.env ?? process.env);
70
+ const manifest = await loadCliManifest(home, options.manifest);
71
71
  const configuration = await readJsonFile(paths.profileConfig);
72
72
  kernel = createKernelService({
73
73
  endpoint: process.platform === "win32" ? componentEndpoint(temporary) : join(temporary, "k.sock"),
74
- workerEntrypoint: fileURLToPath(import.meta.resolve("@mininglamp-oss/octo-runtime-executor-kernel/runner")),
75
- manifest: options.manifest
76
- ? resolve(options.manifest)
77
- : fileURLToPath(new URL("./default_adapters.json", import.meta.url)),
78
- env: options.env ?? process.env,
74
+ workerEntrypoint: fileURLToPath(new URL("./worker.js", import.meta.url)),
75
+ adapterModules: resolveAdapterModules(manifest),
76
+ env: {
77
+ ...(options.env ?? process.env),
78
+ OCTO_RUNTIME_CLI_PROFILE_ROOT: paths.profileRoot,
79
+ OCTO_RUNTIME_CLI_SYNC_OPENCLAW_TOOLS: "0"
80
+ },
79
81
  adapterConfigurations: readAdapterConfigurations(paths.profileRoot, configuration?.adapters)
80
82
  });
81
83
  await kernel.initialize({ signal: controller.signal });
@@ -0,0 +1,10 @@
1
+ import type { Writable } from "node:stream";
2
+ import { type ExtraStatusRecord } from "@mininglamp-oss/octo-runtime-adapter-sdk";
3
+ /** Bound stdout buffering without blocking Extras; report dropped records when the pipe drains. */
4
+ export declare class StatusOutput {
5
+ #private;
6
+ private readonly output;
7
+ constructor(output: Writable);
8
+ readonly write: (record: ExtraStatusRecord) => void;
9
+ readonly close: () => void;
10
+ }
@@ -0,0 +1,65 @@
1
+ import { extraStatusRecord } from "@mininglamp-oss/octo-runtime-adapter-sdk";
2
+ /** Bound stdout buffering without blocking Extras; report dropped records when the pipe drains. */
3
+ export class StatusOutput {
4
+ output;
5
+ #queue = [];
6
+ #bytes = 0;
7
+ #blocked = false;
8
+ #closed = false;
9
+ #dropped = 0;
10
+ #extra = "extra";
11
+ constructor(output) {
12
+ this.output = output;
13
+ output.on("error", this.close);
14
+ }
15
+ write = (record) => {
16
+ if (this.#closed)
17
+ return;
18
+ this.#extra = record.extra_type;
19
+ const line = `${JSON.stringify(record)}\n`;
20
+ if (this.#queue.length >= 128 || this.#bytes + Buffer.byteLength(line) > 1024 * 1024) {
21
+ this.#dropped = Math.min(Number.MAX_SAFE_INTEGER, this.#dropped + 1);
22
+ return;
23
+ }
24
+ this.#queue.push(line);
25
+ this.#bytes += Buffer.byteLength(line);
26
+ this.#flush();
27
+ };
28
+ #drain = () => {
29
+ this.#blocked = false;
30
+ this.#flush();
31
+ };
32
+ #flush() {
33
+ if (this.#closed || this.#blocked)
34
+ return;
35
+ while (this.#queue.length) {
36
+ const line = this.#queue.shift();
37
+ this.#bytes -= Buffer.byteLength(line);
38
+ try {
39
+ if (!this.output.write(line)) {
40
+ this.#blocked = true;
41
+ this.output.once("drain", this.#drain);
42
+ return;
43
+ }
44
+ }
45
+ catch {
46
+ this.close();
47
+ return;
48
+ }
49
+ }
50
+ if (this.#dropped) {
51
+ const record = extraStatusRecord(this.#extra, "warn", "service.output_dropped", {
52
+ dropped_count: this.#dropped
53
+ });
54
+ this.#dropped = 0;
55
+ this.write(record);
56
+ }
57
+ }
58
+ close = () => {
59
+ this.#closed = true;
60
+ this.#queue = [];
61
+ this.#bytes = 0;
62
+ this.output.off("drain", this.#drain);
63
+ this.output.off("error", this.close);
64
+ };
65
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,18 @@
1
+ // CLI 自有执行 worker。顶层 Kernel 仍由 CLI 调用进程创建;SDK 原生入口不使用此装配。
2
+ import { loadManifestAdapters } from "@mininglamp-oss/octo-runtime-executor-kernel/manifest-adapters";
3
+ import { serveWorker } from "@mininglamp-oss/octo-runtime-executor-kernel";
4
+ import { readExtraDirectory } from "@mininglamp-oss/octo-runtime-host-sdk";
5
+ import { dirname, join } from "node:path";
6
+ const adapters = await loadManifestAdapters();
7
+ // 旧显式清单允许省略 type;以所选实例真实类型判断,不猜包名,也不在父进程重复实例化。
8
+ if (adapters.some((adapter) => adapter.metadata.type === "openclaw")) {
9
+ const profileRoot = process.env.OCTO_RUNTIME_CLI_PROFILE_ROOT;
10
+ if (!profileRoot)
11
+ throw new Error("CLI_PROFILE_ROOT_REQUIRED");
12
+ const { initializeCliOpenClaw, syncCliOpenClawToolEnvironment } = await import("./openclaw.js");
13
+ await initializeCliOpenClaw(profileRoot);
14
+ if (process.env.OCTO_RUNTIME_CLI_SYNC_OPENCLAW_TOOLS === "1")
15
+ await syncCliOpenClawToolEnvironment(profileRoot, await readExtraDirectory(join(dirname(profileRoot), "extras")));
16
+ }
17
+ // 产品连接准备完成后才建立既有 list/probe 握手;所有实例仅交给唯一 Core 注册一次。
18
+ serveWorker(adapters);
@@ -2,5 +2,6 @@ export { createExtraService, ComponentStartError, componentEndpoint, componentSe
2
2
  export type { ExtraService, ExtraServiceOptions, ExtraServiceStatus, CleanupResult } from "@mininglamp-oss/octo-runtime-host-sdk";
3
3
  export { startNativeComponent } from "@mininglamp-oss/octo-runtime-host-sdk";
4
4
  export type { NativeComponentOptions } from "@mininglamp-oss/octo-runtime-host-sdk";
5
+ export type { RuntimeLoggingOptions, ExtraStatusRecord } from "@mininglamp-oss/octo-runtime-host-sdk";
5
6
  export { createKernelService, ServiceInitializationError } from "./executor-kernel.js";
6
7
  export type { KernelService, KernelServiceOptions, KernelServiceStatus, ServiceCleanupResult, ServiceLifecycle, ServicePhase } from "./executor-kernel.js";
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mininglamp-oss/octo-runtime-acp-client",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "exports": "./dist/index.js",
@@ -9,7 +9,7 @@
9
9
  "dist"
10
10
  ],
11
11
  "dependencies": {
12
- "@mininglamp-oss/octo-runtime-adapter-sdk": "1.1.0",
13
- "@mininglamp-oss/octo-runtime-protocol": "1.1.0"
12
+ "@mininglamp-oss/octo-runtime-adapter-sdk": "1.1.2",
13
+ "@mininglamp-oss/octo-runtime-protocol": "1.1.2"
14
14
  }
15
15
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mininglamp-oss/octo-runtime-adapter-acp",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "exports": "./dist/index.js",
@@ -9,8 +9,8 @@
9
9
  "dist"
10
10
  ],
11
11
  "dependencies": {
12
- "@mininglamp-oss/octo-runtime-protocol": "1.1.0",
13
- "@mininglamp-oss/octo-runtime-acp-client": "1.1.0",
14
- "@mininglamp-oss/octo-runtime-adapter-sdk": "1.1.0"
12
+ "@mininglamp-oss/octo-runtime-protocol": "1.1.2",
13
+ "@mininglamp-oss/octo-runtime-acp-client": "1.1.2",
14
+ "@mininglamp-oss/octo-runtime-adapter-sdk": "1.1.2"
15
15
  }
16
16
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mininglamp-oss/octo-runtime-adapter-antigravity",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "exports": "./dist/index.js",
@@ -10,7 +10,7 @@
10
10
  "README.md"
11
11
  ],
12
12
  "dependencies": {
13
- "@mininglamp-oss/octo-runtime-adapter-sdk": "1.1.0",
14
- "@mininglamp-oss/octo-runtime-protocol": "1.1.0"
13
+ "@mininglamp-oss/octo-runtime-adapter-sdk": "1.1.2",
14
+ "@mininglamp-oss/octo-runtime-protocol": "1.1.2"
15
15
  }
16
16
  }
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@mininglamp-oss/octo-runtime-adapter-claude-code",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "exports": "./dist/index.js",
7
7
  "dependencies": {
8
- "@mininglamp-oss/octo-runtime-protocol": "1.1.0",
9
- "@mininglamp-oss/octo-runtime-adapter-sdk": "1.1.0"
8
+ "@mininglamp-oss/octo-runtime-protocol": "1.1.2",
9
+ "@mininglamp-oss/octo-runtime-adapter-sdk": "1.1.2"
10
10
  },
11
11
  "types": "./dist/index.d.ts",
12
12
  "files": [
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@mininglamp-oss/octo-runtime-adapter-codebuddy",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "exports": "./dist/index.js",
7
7
  "dependencies": {
8
- "@mininglamp-oss/octo-runtime-protocol": "1.1.0",
9
- "@mininglamp-oss/octo-runtime-acp-client": "1.1.0",
10
- "@mininglamp-oss/octo-runtime-adapter-sdk": "1.1.0"
8
+ "@mininglamp-oss/octo-runtime-protocol": "1.1.2",
9
+ "@mininglamp-oss/octo-runtime-acp-client": "1.1.2",
10
+ "@mininglamp-oss/octo-runtime-adapter-sdk": "1.1.2"
11
11
  },
12
12
  "types": "./dist/index.d.ts",
13
13
  "files": [
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@mininglamp-oss/octo-runtime-adapter-codex",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "exports": "./dist/index.js",
7
7
  "dependencies": {
8
- "@mininglamp-oss/octo-runtime-protocol": "1.1.0",
9
- "@mininglamp-oss/octo-runtime-adapter-sdk": "1.1.0"
8
+ "@mininglamp-oss/octo-runtime-protocol": "1.1.2",
9
+ "@mininglamp-oss/octo-runtime-adapter-sdk": "1.1.2"
10
10
  },
11
11
  "types": "./dist/index.d.ts",
12
12
  "files": [
@@ -0,0 +1,54 @@
1
+ import { spawnGrokBuildAcpClient as spawnAcpClient, type SpawnGrokBuildClientOptions as SpawnAcpClientOptions } from "./client.js";
2
+ import { GrokBuildInteractionBridge as AcpApprovalBridge } from "./interactions.js";
3
+ import { acpActmodeSelectionRequest } from "@mininglamp-oss/octo-runtime-adapter-acp";
4
+ import { type AcpClient, type AcpUpdate } from "@mininglamp-oss/octo-runtime-acp-client";
5
+ import { type ProbeResult, type ReasoningLevelMap, type AdapterInvocationContext, type CanonicalEvent, type InvokeRequest } from "@mininglamp-oss/octo-runtime-adapter-sdk";
6
+ import { type InteractionResponse } from "@mininglamp-oss/octo-runtime-protocol";
7
+ type JsonRecord = Record<string, unknown>;
8
+ export interface AcpAdapterDefinition {
9
+ type: string;
10
+ provider: string;
11
+ command: string;
12
+ args?: readonly string[] | ((request: InvokeRequest) => readonly string[]);
13
+ env?: (request: InvokeRequest) => NodeJS.ProcessEnv;
14
+ protocolVersion?: string | number;
15
+ emptyLoadResultMeansMissing?: boolean;
16
+ probe?: () => Promise<ProbeResult>;
17
+ /** Grok Build 专用的握手、会话配置与交互策略,只在本包消费。 */
18
+ initialize?: (client: AcpClient, initialization: JsonRecord, request: InvokeRequest, env: NodeJS.ProcessEnv) => Promise<void>;
19
+ sessionParams?: (params: JsonRecord, request: InvokeRequest, fresh: boolean) => JsonRecord;
20
+ isMissingSessionError?: (error: unknown) => boolean;
21
+ configureSession?: (client: AcpClient, session: JsonRecord, sessionId: string, request: InvokeRequest) => AsyncIterable<CanonicalEvent>;
22
+ selectActmode?: typeof acpActmodeSelectionRequest;
23
+ controlInstructions?: "session";
24
+ reasoningLevels?: ReasoningLevelMap;
25
+ clientOptions?: (request: InvokeRequest, bridge: AcpApprovalBridge) => Pick<SpawnAcpClientOptions, "requestHandler" | "onRequestResponseWritten" | "onRequestResponseFailed">;
26
+ validatePromptResult?: (update: StandardAcpUpdate) => CanonicalEvent[];
27
+ }
28
+ export interface StandardAcpUpdate extends AcpUpdate {
29
+ sessionUpdate?: string;
30
+ content?: unknown;
31
+ text?: string;
32
+ toolCallId?: string;
33
+ name?: string;
34
+ title?: string;
35
+ rawInput?: unknown;
36
+ input?: unknown;
37
+ rawOutput?: unknown;
38
+ output?: unknown;
39
+ status?: string;
40
+ }
41
+ export declare function createGrokBuildAcpAdapter(definition: AcpAdapterDefinition, { acpClientFactory, command }?: {
42
+ acpClientFactory?: typeof spawnAcpClient;
43
+ command?: string;
44
+ }): Readonly<{
45
+ metadata: {
46
+ mcp: true;
47
+ type: string;
48
+ agentSources: "provisioned"[];
49
+ };
50
+ probe: () => Promise<ProbeResult>;
51
+ respondInteraction(invocationId: string, response: InteractionResponse): Promise<void>;
52
+ invoke(request: InvokeRequest, context?: AdapterInvocationContext): AsyncGenerator<CanonicalEvent>;
53
+ }>;
54
+ export {};