nodmix 2026.5.25

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 (827) hide show
  1. package/CHANGELOG.md +11573 -0
  2. package/LICENSE +21 -0
  3. package/README.md +486 -0
  4. package/docs/.i18n/README.md +81 -0
  5. package/docs/.i18n/ar-navigation.json +18 -0
  6. package/docs/.i18n/de-navigation.json +18 -0
  7. package/docs/.i18n/es-navigation.json +18 -0
  8. package/docs/.i18n/fr-navigation.json +18 -0
  9. package/docs/.i18n/glossary.ar.json +78 -0
  10. package/docs/.i18n/glossary.de.json +78 -0
  11. package/docs/.i18n/glossary.es.json +78 -0
  12. package/docs/.i18n/glossary.fa.json +78 -0
  13. package/docs/.i18n/glossary.fr.json +78 -0
  14. package/docs/.i18n/glossary.id.json +78 -0
  15. package/docs/.i18n/glossary.it.json +78 -0
  16. package/docs/.i18n/glossary.ja-JP.json +98 -0
  17. package/docs/.i18n/glossary.ko.json +78 -0
  18. package/docs/.i18n/glossary.nl.json +78 -0
  19. package/docs/.i18n/glossary.pl.json +78 -0
  20. package/docs/.i18n/glossary.pt-BR.json +78 -0
  21. package/docs/.i18n/glossary.th.json +78 -0
  22. package/docs/.i18n/glossary.tr.json +78 -0
  23. package/docs/.i18n/glossary.uk.json +78 -0
  24. package/docs/.i18n/glossary.vi.json +78 -0
  25. package/docs/.i18n/glossary.zh-CN.json +1002 -0
  26. package/docs/.i18n/glossary.zh-TW.json +78 -0
  27. package/docs/.i18n/id-navigation.json +18 -0
  28. package/docs/.i18n/it-navigation.json +18 -0
  29. package/docs/.i18n/ja-navigation.json +18 -0
  30. package/docs/.i18n/ko-navigation.json +18 -0
  31. package/docs/.i18n/pl-navigation.json +18 -0
  32. package/docs/.i18n/pt-BR-navigation.json +18 -0
  33. package/docs/.i18n/tr-navigation.json +18 -0
  34. package/docs/.i18n/translation-workflow.md +111 -0
  35. package/docs/.i18n/zh-Hans-navigation.json +542 -0
  36. package/docs/AGENTS.md +36 -0
  37. package/docs/announcements/bluebubbles-imessage.md +79 -0
  38. package/docs/assets/install-script.svg +1 -0
  39. package/docs/assets/macos-onboarding/01-macos-warning.jpeg +0 -0
  40. package/docs/assets/macos-onboarding/02-local-networks.jpeg +0 -0
  41. package/docs/assets/macos-onboarding/03-security-notice.png +0 -0
  42. package/docs/assets/macos-onboarding/04-choose-gateway.png +0 -0
  43. package/docs/assets/macos-onboarding/05-permissions.png +0 -0
  44. package/docs/assets/openclaw-logo-text-dark.png +0 -0
  45. package/docs/assets/openclaw-logo-text-dark.svg +418 -0
  46. package/docs/assets/openclaw-logo-text.png +0 -0
  47. package/docs/assets/openclaw-logo-text.svg +418 -0
  48. package/docs/assets/pixel-lobster.svg +60 -0
  49. package/docs/assets/pr/quick-settings-browser-tools.png +0 -0
  50. package/docs/assets/showcase/agents-ui.jpg +0 -0
  51. package/docs/assets/showcase/bambu-cli.png +0 -0
  52. package/docs/assets/showcase/codexmonitor.png +0 -0
  53. package/docs/assets/showcase/gohome-grafana.png +0 -0
  54. package/docs/assets/showcase/ios-testflight.jpg +0 -0
  55. package/docs/assets/showcase/oura-health.png +0 -0
  56. package/docs/assets/showcase/padel-cli.svg +11 -0
  57. package/docs/assets/showcase/padel-screenshot.jpg +0 -0
  58. package/docs/assets/showcase/papla-tts.jpg +0 -0
  59. package/docs/assets/showcase/pr-review-telegram.jpg +0 -0
  60. package/docs/assets/showcase/roborock-screenshot.jpg +0 -0
  61. package/docs/assets/showcase/roborock-status.svg +13 -0
  62. package/docs/assets/showcase/roof-camera-sky.jpg +0 -0
  63. package/docs/assets/showcase/snag.png +0 -0
  64. package/docs/assets/showcase/tesco-shop.jpg +0 -0
  65. package/docs/assets/showcase/wienerlinien.png +0 -0
  66. package/docs/assets/showcase/wine-cellar-skill.jpg +0 -0
  67. package/docs/assets/showcase/winix-air-purifier.jpg +0 -0
  68. package/docs/assets/showcase/xuezh-pronunciation.jpeg +0 -0
  69. package/docs/assets/sponsors/blacksmith-light.svg +14 -0
  70. package/docs/assets/sponsors/blacksmith.svg +14 -0
  71. package/docs/assets/sponsors/convex-light.svg +16 -0
  72. package/docs/assets/sponsors/convex.svg +16 -0
  73. package/docs/assets/sponsors/github-light.svg +3 -0
  74. package/docs/assets/sponsors/github.svg +3 -0
  75. package/docs/assets/sponsors/nvidia-dark.svg +9 -0
  76. package/docs/assets/sponsors/nvidia.svg +9 -0
  77. package/docs/assets/sponsors/openai-light.svg +3 -0
  78. package/docs/assets/sponsors/openai.svg +3 -0
  79. package/docs/assets/sponsors/vercel-light.svg +5 -0
  80. package/docs/assets/sponsors/vercel.svg +5 -0
  81. package/docs/auth-credential-semantics.md +124 -0
  82. package/docs/automation/auth-monitoring.md +11 -0
  83. package/docs/automation/clawflow.md +12 -0
  84. package/docs/automation/cron-jobs.md +500 -0
  85. package/docs/automation/cron-vs-heartbeat.md +11 -0
  86. package/docs/automation/gmail-pubsub.md +11 -0
  87. package/docs/automation/hooks.md +365 -0
  88. package/docs/automation/index.md +135 -0
  89. package/docs/automation/poll.md +12 -0
  90. package/docs/automation/standing-orders.md +250 -0
  91. package/docs/automation/taskflow.md +155 -0
  92. package/docs/automation/tasks.md +374 -0
  93. package/docs/automation/troubleshooting.md +12 -0
  94. package/docs/automation/webhook.md +12 -0
  95. package/docs/brave-search.md +11 -0
  96. package/docs/channels/access-groups.md +201 -0
  97. package/docs/channels/ambient-room-events.md +214 -0
  98. package/docs/channels/bot-loop-protection.md +131 -0
  99. package/docs/channels/broadcast-groups.md +472 -0
  100. package/docs/channels/channel-routing.md +162 -0
  101. package/docs/channels/clickclack.md +138 -0
  102. package/docs/channels/discord.md +1762 -0
  103. package/docs/channels/feishu.md +502 -0
  104. package/docs/channels/googlechat.md +284 -0
  105. package/docs/channels/group-messages.md +95 -0
  106. package/docs/channels/groups.md +519 -0
  107. package/docs/channels/imessage-from-bluebubbles.md +259 -0
  108. package/docs/channels/imessage.md +813 -0
  109. package/docs/channels/index.md +64 -0
  110. package/docs/channels/irc.md +253 -0
  111. package/docs/channels/line.md +243 -0
  112. package/docs/channels/location.md +71 -0
  113. package/docs/channels/matrix-migration.md +370 -0
  114. package/docs/channels/matrix-presentation.md +77 -0
  115. package/docs/channels/matrix-push-rules.md +150 -0
  116. package/docs/channels/matrix.md +921 -0
  117. package/docs/channels/mattermost.md +542 -0
  118. package/docs/channels/msteams.md +1042 -0
  119. package/docs/channels/nextcloud-talk.md +176 -0
  120. package/docs/channels/nostr.md +253 -0
  121. package/docs/channels/pairing.md +214 -0
  122. package/docs/channels/qqbot.md +309 -0
  123. package/docs/channels/signal.md +400 -0
  124. package/docs/channels/slack.md +1564 -0
  125. package/docs/channels/synology-chat.md +187 -0
  126. package/docs/channels/telegram.md +1107 -0
  127. package/docs/channels/tlon.md +296 -0
  128. package/docs/channels/troubleshooting.md +161 -0
  129. package/docs/channels/twitch.md +431 -0
  130. package/docs/channels/wechat.md +171 -0
  131. package/docs/channels/whatsapp.md +739 -0
  132. package/docs/channels/yuanbao.md +416 -0
  133. package/docs/channels/zalo.md +253 -0
  134. package/docs/channels/zalouser.md +199 -0
  135. package/docs/ci.md +612 -0
  136. package/docs/clawhub/publishing.md +96 -0
  137. package/docs/cli/acp.md +370 -0
  138. package/docs/cli/agent.md +103 -0
  139. package/docs/cli/agents.md +232 -0
  140. package/docs/cli/approvals.md +190 -0
  141. package/docs/cli/backup.md +97 -0
  142. package/docs/cli/browser.md +307 -0
  143. package/docs/cli/channels.md +154 -0
  144. package/docs/cli/clawbot.md +25 -0
  145. package/docs/cli/commitments.md +90 -0
  146. package/docs/cli/completion.md +39 -0
  147. package/docs/cli/config.md +504 -0
  148. package/docs/cli/configure.md +77 -0
  149. package/docs/cli/crestodian.md +332 -0
  150. package/docs/cli/cron.md +281 -0
  151. package/docs/cli/daemon.md +67 -0
  152. package/docs/cli/dashboard.md +33 -0
  153. package/docs/cli/devices.md +204 -0
  154. package/docs/cli/directory.md +68 -0
  155. package/docs/cli/dns.md +53 -0
  156. package/docs/cli/docs.md +73 -0
  157. package/docs/cli/doctor.md +237 -0
  158. package/docs/cli/flows.md +52 -0
  159. package/docs/cli/gateway.md +567 -0
  160. package/docs/cli/health.md +43 -0
  161. package/docs/cli/hooks.md +345 -0
  162. package/docs/cli/index.md +396 -0
  163. package/docs/cli/infer.md +364 -0
  164. package/docs/cli/logs.md +65 -0
  165. package/docs/cli/mcp.md +529 -0
  166. package/docs/cli/memory.md +183 -0
  167. package/docs/cli/message.md +317 -0
  168. package/docs/cli/migrate.md +290 -0
  169. package/docs/cli/models.md +224 -0
  170. package/docs/cli/node.md +177 -0
  171. package/docs/cli/nodes.md +76 -0
  172. package/docs/cli/onboard.md +245 -0
  173. package/docs/cli/pairing.md +77 -0
  174. package/docs/cli/path.md +502 -0
  175. package/docs/cli/plugins.md +454 -0
  176. package/docs/cli/policy.md +418 -0
  177. package/docs/cli/proxy.md +89 -0
  178. package/docs/cli/qr.md +56 -0
  179. package/docs/cli/reset.md +39 -0
  180. package/docs/cli/sandbox.md +208 -0
  181. package/docs/cli/secrets.md +202 -0
  182. package/docs/cli/security.md +124 -0
  183. package/docs/cli/sessions.md +164 -0
  184. package/docs/cli/setup.md +59 -0
  185. package/docs/cli/skills.md +102 -0
  186. package/docs/cli/status.md +45 -0
  187. package/docs/cli/system.md +89 -0
  188. package/docs/cli/tasks.md +111 -0
  189. package/docs/cli/tui.md +89 -0
  190. package/docs/cli/uninstall.md +44 -0
  191. package/docs/cli/update.md +242 -0
  192. package/docs/cli/voicecall.md +204 -0
  193. package/docs/cli/webhooks.md +117 -0
  194. package/docs/cli/wiki.md +256 -0
  195. package/docs/concepts/active-memory.md +856 -0
  196. package/docs/concepts/agent-loop.md +185 -0
  197. package/docs/concepts/agent-runtimes.md +243 -0
  198. package/docs/concepts/agent-workspace.md +230 -0
  199. package/docs/concepts/agent.md +136 -0
  200. package/docs/concepts/architecture.md +154 -0
  201. package/docs/concepts/channel-docking.md +145 -0
  202. package/docs/concepts/commitments.md +150 -0
  203. package/docs/concepts/compaction.md +203 -0
  204. package/docs/concepts/context-engine.md +306 -0
  205. package/docs/concepts/context.md +199 -0
  206. package/docs/concepts/delegate-architecture.md +319 -0
  207. package/docs/concepts/dreaming.md +261 -0
  208. package/docs/concepts/experimental-features.md +108 -0
  209. package/docs/concepts/features.md +91 -0
  210. package/docs/concepts/mantis-slack-desktop-runbook.md +202 -0
  211. package/docs/concepts/mantis.md +740 -0
  212. package/docs/concepts/markdown-formatting.md +139 -0
  213. package/docs/concepts/memory-builtin.md +146 -0
  214. package/docs/concepts/memory-honcho.md +144 -0
  215. package/docs/concepts/memory-qmd.md +271 -0
  216. package/docs/concepts/memory-search.md +166 -0
  217. package/docs/concepts/memory.md +258 -0
  218. package/docs/concepts/message-lifecycle-refactor.md +1128 -0
  219. package/docs/concepts/messages.md +214 -0
  220. package/docs/concepts/model-failover.md +385 -0
  221. package/docs/concepts/model-providers.md +715 -0
  222. package/docs/concepts/models.md +370 -0
  223. package/docs/concepts/multi-agent.md +619 -0
  224. package/docs/concepts/oauth.md +198 -0
  225. package/docs/concepts/openclaw-sdk.md +323 -0
  226. package/docs/concepts/parallel-specialist-lanes.md +127 -0
  227. package/docs/concepts/personal-agent-benchmark-pack.md +74 -0
  228. package/docs/concepts/presence.md +117 -0
  229. package/docs/concepts/progress-drafts.md +362 -0
  230. package/docs/concepts/qa-e2e-automation.md +820 -0
  231. package/docs/concepts/qa-matrix.md +139 -0
  232. package/docs/concepts/queue-steering.md +90 -0
  233. package/docs/concepts/queue.md +122 -0
  234. package/docs/concepts/retry.md +86 -0
  235. package/docs/concepts/session-pruning.md +104 -0
  236. package/docs/concepts/session-tool.md +190 -0
  237. package/docs/concepts/session.md +164 -0
  238. package/docs/concepts/soul.md +116 -0
  239. package/docs/concepts/streaming.md +251 -0
  240. package/docs/concepts/system-prompt.md +310 -0
  241. package/docs/concepts/timezone.md +47 -0
  242. package/docs/concepts/typebox.md +309 -0
  243. package/docs/concepts/typing-indicators.md +88 -0
  244. package/docs/concepts/usage-tracking.md +66 -0
  245. package/docs/date-time.md +126 -0
  246. package/docs/debug/node-issue.md +90 -0
  247. package/docs/diagnostics/flags.md +138 -0
  248. package/docs/docs.json +1832 -0
  249. package/docs/gateway/authentication.md +239 -0
  250. package/docs/gateway/background-process.md +147 -0
  251. package/docs/gateway/bonjour.md +303 -0
  252. package/docs/gateway/bridge-protocol.md +94 -0
  253. package/docs/gateway/cli-backends.md +420 -0
  254. package/docs/gateway/config-agents.md +1514 -0
  255. package/docs/gateway/config-channels.md +945 -0
  256. package/docs/gateway/config-tools.md +769 -0
  257. package/docs/gateway/configuration-examples.md +705 -0
  258. package/docs/gateway/configuration-reference.md +1393 -0
  259. package/docs/gateway/configuration.md +737 -0
  260. package/docs/gateway/diagnostics.md +213 -0
  261. package/docs/gateway/discovery.md +154 -0
  262. package/docs/gateway/doctor.md +574 -0
  263. package/docs/gateway/gateway-lock.md +37 -0
  264. package/docs/gateway/health.md +73 -0
  265. package/docs/gateway/heartbeat.md +493 -0
  266. package/docs/gateway/index.md +383 -0
  267. package/docs/gateway/local-model-services.md +205 -0
  268. package/docs/gateway/local-models.md +355 -0
  269. package/docs/gateway/logging.md +149 -0
  270. package/docs/gateway/multiple-gateways.md +178 -0
  271. package/docs/gateway/network-model.md +15 -0
  272. package/docs/gateway/openai-http-api.md +350 -0
  273. package/docs/gateway/openresponses-http-api.md +347 -0
  274. package/docs/gateway/openshell.md +316 -0
  275. package/docs/gateway/opentelemetry.md +404 -0
  276. package/docs/gateway/operator-scopes.md +111 -0
  277. package/docs/gateway/pairing.md +207 -0
  278. package/docs/gateway/prometheus.md +230 -0
  279. package/docs/gateway/protocol.md +803 -0
  280. package/docs/gateway/remote-gateway-readme.md +169 -0
  281. package/docs/gateway/remote.md +280 -0
  282. package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +146 -0
  283. package/docs/gateway/sandboxing.md +545 -0
  284. package/docs/gateway/secrets-plan-contract.md +114 -0
  285. package/docs/gateway/secrets.md +609 -0
  286. package/docs/gateway/security/audit-checks.md +127 -0
  287. package/docs/gateway/security/index.md +1326 -0
  288. package/docs/gateway/security/secure-file-operations.md +76 -0
  289. package/docs/gateway/tailscale.md +156 -0
  290. package/docs/gateway/tools-invoke-http-api.md +169 -0
  291. package/docs/gateway/troubleshooting.md +772 -0
  292. package/docs/gateway/trusted-proxy-auth.md +451 -0
  293. package/docs/help/debugging.md +344 -0
  294. package/docs/help/environment.md +214 -0
  295. package/docs/help/faq-first-run.md +867 -0
  296. package/docs/help/faq-models.md +553 -0
  297. package/docs/help/faq.md +1975 -0
  298. package/docs/help/gpt55-codex-agentic-parity-maintainers.md +196 -0
  299. package/docs/help/gpt55-codex-agentic-parity.md +230 -0
  300. package/docs/help/index.md +39 -0
  301. package/docs/help/scripts.md +56 -0
  302. package/docs/help/testing-live.md +580 -0
  303. package/docs/help/testing-updates-plugins.md +291 -0
  304. package/docs/help/testing.md +928 -0
  305. package/docs/help/troubleshooting.md +424 -0
  306. package/docs/images/configure-model-picker-unsearchable.png +0 -0
  307. package/docs/images/feishu-get-group-id.png +0 -0
  308. package/docs/images/groups-flow.svg +52 -0
  309. package/docs/images/mobile-ui-screenshot.png +0 -0
  310. package/docs/index.md +196 -0
  311. package/docs/install/ansible.md +233 -0
  312. package/docs/install/azure.md +315 -0
  313. package/docs/install/bun.md +59 -0
  314. package/docs/install/clawdock.md +112 -0
  315. package/docs/install/development-channels.md +135 -0
  316. package/docs/install/digitalocean.md +174 -0
  317. package/docs/install/docker-vm-runtime.md +154 -0
  318. package/docs/install/docker.md +562 -0
  319. package/docs/install/exe-dev.md +201 -0
  320. package/docs/install/fly.md +524 -0
  321. package/docs/install/gcp.md +418 -0
  322. package/docs/install/hetzner.md +285 -0
  323. package/docs/install/hostinger.md +98 -0
  324. package/docs/install/index.md +221 -0
  325. package/docs/install/installer.md +455 -0
  326. package/docs/install/kubernetes.md +196 -0
  327. package/docs/install/macos-vm.md +281 -0
  328. package/docs/install/migrating-claude.md +165 -0
  329. package/docs/install/migrating-hermes.md +177 -0
  330. package/docs/install/migrating.md +137 -0
  331. package/docs/install/nix.md +112 -0
  332. package/docs/install/node.md +142 -0
  333. package/docs/install/northflank.mdx +44 -0
  334. package/docs/install/oracle.md +218 -0
  335. package/docs/install/podman.md +210 -0
  336. package/docs/install/railway.mdx +92 -0
  337. package/docs/install/raspberry-pi.md +234 -0
  338. package/docs/install/render.mdx +167 -0
  339. package/docs/install/uninstall.md +131 -0
  340. package/docs/install/updating.md +280 -0
  341. package/docs/logging.md +318 -0
  342. package/docs/nav-tabs-underline.js +100 -0
  343. package/docs/network.md +72 -0
  344. package/docs/nodes/audio.md +215 -0
  345. package/docs/nodes/camera.md +166 -0
  346. package/docs/nodes/images.md +77 -0
  347. package/docs/nodes/index.md +439 -0
  348. package/docs/nodes/location-command.md +102 -0
  349. package/docs/nodes/media-understanding.md +469 -0
  350. package/docs/nodes/talk.md +154 -0
  351. package/docs/nodes/troubleshooting.md +123 -0
  352. package/docs/nodes/voicewake.md +93 -0
  353. package/docs/perplexity.md +11 -0
  354. package/docs/pi-dev.md +82 -0
  355. package/docs/pi.md +573 -0
  356. package/docs/plan/codex-context-engine-harness.md +624 -0
  357. package/docs/plan/ui-channels.md +284 -0
  358. package/docs/platforms/android.md +285 -0
  359. package/docs/platforms/digitalocean.md +12 -0
  360. package/docs/platforms/index.md +60 -0
  361. package/docs/platforms/ios.md +283 -0
  362. package/docs/platforms/linux.md +141 -0
  363. package/docs/platforms/mac/bundled-gateway.md +79 -0
  364. package/docs/platforms/mac/canvas.md +128 -0
  365. package/docs/platforms/mac/child-process.md +72 -0
  366. package/docs/platforms/mac/dev-setup.md +112 -0
  367. package/docs/platforms/mac/health.md +39 -0
  368. package/docs/platforms/mac/icon.md +36 -0
  369. package/docs/platforms/mac/logging.md +62 -0
  370. package/docs/platforms/mac/menu-bar.md +93 -0
  371. package/docs/platforms/mac/peekaboo.md +92 -0
  372. package/docs/platforms/mac/permissions.md +53 -0
  373. package/docs/platforms/mac/remote.md +123 -0
  374. package/docs/platforms/mac/signing.md +52 -0
  375. package/docs/platforms/mac/skills.md +43 -0
  376. package/docs/platforms/mac/voice-overlay.md +66 -0
  377. package/docs/platforms/mac/voicewake.md +73 -0
  378. package/docs/platforms/mac/webchat.md +54 -0
  379. package/docs/platforms/mac/xpc.md +66 -0
  380. package/docs/platforms/macos.md +226 -0
  381. package/docs/platforms/oracle.md +12 -0
  382. package/docs/platforms/raspberry-pi.md +13 -0
  383. package/docs/platforms/windows.md +286 -0
  384. package/docs/plugins/adding-capabilities.md +133 -0
  385. package/docs/plugins/admin-http-rpc.md +216 -0
  386. package/docs/plugins/agent-tools.md +13 -0
  387. package/docs/plugins/architecture-internals.md +1195 -0
  388. package/docs/plugins/architecture.md +481 -0
  389. package/docs/plugins/building-extensions.md +13 -0
  390. package/docs/plugins/building-plugins.md +330 -0
  391. package/docs/plugins/bundles.md +310 -0
  392. package/docs/plugins/cli-backend-plugins.md +310 -0
  393. package/docs/plugins/codex-computer-use.md +293 -0
  394. package/docs/plugins/codex-harness-reference.md +409 -0
  395. package/docs/plugins/codex-harness-runtime.md +247 -0
  396. package/docs/plugins/codex-harness.md +746 -0
  397. package/docs/plugins/codex-native-plugins.md +276 -0
  398. package/docs/plugins/community.md +77 -0
  399. package/docs/plugins/compatibility.md +164 -0
  400. package/docs/plugins/dependency-resolution.md +143 -0
  401. package/docs/plugins/google-meet.md +1737 -0
  402. package/docs/plugins/hooks.md +459 -0
  403. package/docs/plugins/install-overrides.md +80 -0
  404. package/docs/plugins/manage-plugins.md +210 -0
  405. package/docs/plugins/manifest.md +1359 -0
  406. package/docs/plugins/memory-lancedb.md +385 -0
  407. package/docs/plugins/memory-wiki.md +529 -0
  408. package/docs/plugins/message-presentation.md +473 -0
  409. package/docs/plugins/oc-path.md +166 -0
  410. package/docs/plugins/plugin-inventory.md +182 -0
  411. package/docs/plugins/reference/acpx.md +23 -0
  412. package/docs/plugins/reference/admin-http-rpc.md +23 -0
  413. package/docs/plugins/reference/alibaba.md +23 -0
  414. package/docs/plugins/reference/amazon-bedrock-mantle.md +23 -0
  415. package/docs/plugins/reference/amazon-bedrock.md +23 -0
  416. package/docs/plugins/reference/anthropic-vertex.md +19 -0
  417. package/docs/plugins/reference/anthropic.md +23 -0
  418. package/docs/plugins/reference/arcee.md +23 -0
  419. package/docs/plugins/reference/azure-speech.md +23 -0
  420. package/docs/plugins/reference/bonjour.md +19 -0
  421. package/docs/plugins/reference/brave.md +23 -0
  422. package/docs/plugins/reference/browser.md +23 -0
  423. package/docs/plugins/reference/byteplus.md +19 -0
  424. package/docs/plugins/reference/canvas.md +19 -0
  425. package/docs/plugins/reference/cerebras.md +23 -0
  426. package/docs/plugins/reference/chutes.md +23 -0
  427. package/docs/plugins/reference/clickclack.md +23 -0
  428. package/docs/plugins/reference/cloudflare-ai-gateway.md +23 -0
  429. package/docs/plugins/reference/codex.md +23 -0
  430. package/docs/plugins/reference/comfy.md +23 -0
  431. package/docs/plugins/reference/copilot-proxy.md +19 -0
  432. package/docs/plugins/reference/deepgram.md +23 -0
  433. package/docs/plugins/reference/deepinfra.md +23 -0
  434. package/docs/plugins/reference/deepseek.md +23 -0
  435. package/docs/plugins/reference/diagnostics-otel.md +19 -0
  436. package/docs/plugins/reference/diagnostics-prometheus.md +19 -0
  437. package/docs/plugins/reference/diffs.md +19 -0
  438. package/docs/plugins/reference/discord.md +23 -0
  439. package/docs/plugins/reference/document-extract.md +23 -0
  440. package/docs/plugins/reference/duckduckgo.md +23 -0
  441. package/docs/plugins/reference/elevenlabs.md +23 -0
  442. package/docs/plugins/reference/exa.md +23 -0
  443. package/docs/plugins/reference/fal.md +23 -0
  444. package/docs/plugins/reference/feishu.md +23 -0
  445. package/docs/plugins/reference/file-transfer.md +19 -0
  446. package/docs/plugins/reference/firecrawl.md +23 -0
  447. package/docs/plugins/reference/fireworks.md +23 -0
  448. package/docs/plugins/reference/github-copilot.md +23 -0
  449. package/docs/plugins/reference/google-meet.md +23 -0
  450. package/docs/plugins/reference/google.md +23 -0
  451. package/docs/plugins/reference/googlechat.md +23 -0
  452. package/docs/plugins/reference/gradium.md +23 -0
  453. package/docs/plugins/reference/groq.md +23 -0
  454. package/docs/plugins/reference/huggingface.md +23 -0
  455. package/docs/plugins/reference/imessage.md +23 -0
  456. package/docs/plugins/reference/inworld.md +23 -0
  457. package/docs/plugins/reference/irc.md +23 -0
  458. package/docs/plugins/reference/kilocode.md +23 -0
  459. package/docs/plugins/reference/kimi.md +23 -0
  460. package/docs/plugins/reference/line.md +23 -0
  461. package/docs/plugins/reference/litellm.md +23 -0
  462. package/docs/plugins/reference/llm-task.md +19 -0
  463. package/docs/plugins/reference/lmstudio.md +23 -0
  464. package/docs/plugins/reference/lobster.md +19 -0
  465. package/docs/plugins/reference/matrix.md +23 -0
  466. package/docs/plugins/reference/mattermost.md +23 -0
  467. package/docs/plugins/reference/memory-core.md +19 -0
  468. package/docs/plugins/reference/memory-lancedb.md +23 -0
  469. package/docs/plugins/reference/memory-wiki.md +23 -0
  470. package/docs/plugins/reference/microsoft-foundry.md +19 -0
  471. package/docs/plugins/reference/microsoft.md +19 -0
  472. package/docs/plugins/reference/migrate-claude.md +19 -0
  473. package/docs/plugins/reference/migrate-hermes.md +19 -0
  474. package/docs/plugins/reference/minimax.md +23 -0
  475. package/docs/plugins/reference/mistral.md +23 -0
  476. package/docs/plugins/reference/moonshot.md +23 -0
  477. package/docs/plugins/reference/msteams.md +23 -0
  478. package/docs/plugins/reference/nextcloud-talk.md +23 -0
  479. package/docs/plugins/reference/nostr.md +23 -0
  480. package/docs/plugins/reference/nvidia.md +23 -0
  481. package/docs/plugins/reference/oc-path.md +23 -0
  482. package/docs/plugins/reference/ollama.md +23 -0
  483. package/docs/plugins/reference/open-prose.md +19 -0
  484. package/docs/plugins/reference/openai.md +23 -0
  485. package/docs/plugins/reference/opencode-go.md +23 -0
  486. package/docs/plugins/reference/opencode.md +23 -0
  487. package/docs/plugins/reference/openrouter.md +23 -0
  488. package/docs/plugins/reference/openshell.md +19 -0
  489. package/docs/plugins/reference/perplexity.md +23 -0
  490. package/docs/plugins/reference/policy.md +23 -0
  491. package/docs/plugins/reference/qa-channel.md +23 -0
  492. package/docs/plugins/reference/qa-lab.md +19 -0
  493. package/docs/plugins/reference/qa-matrix.md +19 -0
  494. package/docs/plugins/reference/qianfan.md +23 -0
  495. package/docs/plugins/reference/qqbot.md +23 -0
  496. package/docs/plugins/reference/qwen.md +23 -0
  497. package/docs/plugins/reference/runway.md +23 -0
  498. package/docs/plugins/reference/searxng.md +19 -0
  499. package/docs/plugins/reference/senseaudio.md +23 -0
  500. package/docs/plugins/reference/sglang.md +23 -0
  501. package/docs/plugins/reference/signal.md +23 -0
  502. package/docs/plugins/reference/skill-workshop.md +23 -0
  503. package/docs/plugins/reference/slack.md +23 -0
  504. package/docs/plugins/reference/stepfun.md +23 -0
  505. package/docs/plugins/reference/synology-chat.md +23 -0
  506. package/docs/plugins/reference/synthetic.md +23 -0
  507. package/docs/plugins/reference/tavily.md +23 -0
  508. package/docs/plugins/reference/telegram.md +23 -0
  509. package/docs/plugins/reference/tencent.md +23 -0
  510. package/docs/plugins/reference/tlon.md +23 -0
  511. package/docs/plugins/reference/together.md +23 -0
  512. package/docs/plugins/reference/tokenjuice.md +23 -0
  513. package/docs/plugins/reference/tts-local-cli.md +19 -0
  514. package/docs/plugins/reference/twitch.md +23 -0
  515. package/docs/plugins/reference/venice.md +23 -0
  516. package/docs/plugins/reference/vercel-ai-gateway.md +23 -0
  517. package/docs/plugins/reference/vllm.md +23 -0
  518. package/docs/plugins/reference/voice-call.md +23 -0
  519. package/docs/plugins/reference/volcengine.md +23 -0
  520. package/docs/plugins/reference/voyage.md +19 -0
  521. package/docs/plugins/reference/vydra.md +23 -0
  522. package/docs/plugins/reference/web-readability.md +19 -0
  523. package/docs/plugins/reference/webhooks.md +23 -0
  524. package/docs/plugins/reference/whatsapp.md +23 -0
  525. package/docs/plugins/reference/xai.md +23 -0
  526. package/docs/plugins/reference/xiaomi.md +23 -0
  527. package/docs/plugins/reference/zai.md +23 -0
  528. package/docs/plugins/reference/zalo.md +23 -0
  529. package/docs/plugins/reference/zalouser.md +24 -0
  530. package/docs/plugins/reference.md +138 -0
  531. package/docs/plugins/sdk-agent-harness.md +339 -0
  532. package/docs/plugins/sdk-channel-ingress.md +137 -0
  533. package/docs/plugins/sdk-channel-message.md +458 -0
  534. package/docs/plugins/sdk-channel-plugins.md +762 -0
  535. package/docs/plugins/sdk-channel-turn.md +580 -0
  536. package/docs/plugins/sdk-entrypoints.md +333 -0
  537. package/docs/plugins/sdk-migration.md +949 -0
  538. package/docs/plugins/sdk-overview.md +501 -0
  539. package/docs/plugins/sdk-provider-plugins.md +807 -0
  540. package/docs/plugins/sdk-runtime.md +676 -0
  541. package/docs/plugins/sdk-setup.md +550 -0
  542. package/docs/plugins/sdk-subpaths.md +396 -0
  543. package/docs/plugins/sdk-testing.md +401 -0
  544. package/docs/plugins/skill-workshop.md +713 -0
  545. package/docs/plugins/tool-plugins.md +411 -0
  546. package/docs/plugins/voice-call.md +943 -0
  547. package/docs/plugins/webhooks.md +192 -0
  548. package/docs/plugins/zalouser.md +86 -0
  549. package/docs/prose.md +137 -0
  550. package/docs/providers/alibaba.md +158 -0
  551. package/docs/providers/anthropic.md +344 -0
  552. package/docs/providers/arcee.md +144 -0
  553. package/docs/providers/azure-speech.md +119 -0
  554. package/docs/providers/bedrock-mantle.md +211 -0
  555. package/docs/providers/bedrock.md +414 -0
  556. package/docs/providers/cerebras.md +130 -0
  557. package/docs/providers/chutes.md +153 -0
  558. package/docs/providers/claude-max-api-proxy.md +188 -0
  559. package/docs/providers/cloudflare-ai-gateway.md +119 -0
  560. package/docs/providers/comfy.md +362 -0
  561. package/docs/providers/deepgram.md +184 -0
  562. package/docs/providers/deepinfra.md +87 -0
  563. package/docs/providers/deepseek.md +146 -0
  564. package/docs/providers/ds4.md +309 -0
  565. package/docs/providers/elevenlabs.md +130 -0
  566. package/docs/providers/fal.md +204 -0
  567. package/docs/providers/fireworks.md +144 -0
  568. package/docs/providers/github-copilot.md +225 -0
  569. package/docs/providers/glm.md +137 -0
  570. package/docs/providers/google.md +472 -0
  571. package/docs/providers/gradium.md +123 -0
  572. package/docs/providers/groq.md +180 -0
  573. package/docs/providers/huggingface.md +235 -0
  574. package/docs/providers/index.md +102 -0
  575. package/docs/providers/inferrs.md +272 -0
  576. package/docs/providers/inworld.md +120 -0
  577. package/docs/providers/kilocode.md +135 -0
  578. package/docs/providers/litellm.md +234 -0
  579. package/docs/providers/lmstudio.md +224 -0
  580. package/docs/providers/minimax.md +505 -0
  581. package/docs/providers/mistral.md +235 -0
  582. package/docs/providers/models.md +65 -0
  583. package/docs/providers/moonshot.md +413 -0
  584. package/docs/providers/nvidia.md +140 -0
  585. package/docs/providers/ollama.md +1180 -0
  586. package/docs/providers/openai.md +1057 -0
  587. package/docs/providers/opencode-go.md +123 -0
  588. package/docs/providers/opencode.md +149 -0
  589. package/docs/providers/openrouter.md +349 -0
  590. package/docs/providers/perplexity-provider.md +123 -0
  591. package/docs/providers/qianfan.md +132 -0
  592. package/docs/providers/qwen.md +332 -0
  593. package/docs/providers/runway.md +103 -0
  594. package/docs/providers/senseaudio.md +68 -0
  595. package/docs/providers/sglang.md +161 -0
  596. package/docs/providers/stepfun.md +229 -0
  597. package/docs/providers/synthetic.md +154 -0
  598. package/docs/providers/tencent.md +130 -0
  599. package/docs/providers/together.md +141 -0
  600. package/docs/providers/venice.md +315 -0
  601. package/docs/providers/vercel-ai-gateway.md +128 -0
  602. package/docs/providers/vllm.md +383 -0
  603. package/docs/providers/volcengine.md +199 -0
  604. package/docs/providers/vydra.md +180 -0
  605. package/docs/providers/xai.md +560 -0
  606. package/docs/providers/xiaomi.md +188 -0
  607. package/docs/providers/zai.md +203 -0
  608. package/docs/refactor/access.md +9 -0
  609. package/docs/refactor/acp.md +298 -0
  610. package/docs/refactor/canvas.md +131 -0
  611. package/docs/refactor/ingress-core.md +341 -0
  612. package/docs/reference/AGENTS.default.md +129 -0
  613. package/docs/reference/RELEASING.md +767 -0
  614. package/docs/reference/api-usage-costs.md +202 -0
  615. package/docs/reference/application-modernization-plan.md +208 -0
  616. package/docs/reference/code-mode.md +757 -0
  617. package/docs/reference/credits.md +33 -0
  618. package/docs/reference/device-models.md +50 -0
  619. package/docs/reference/full-release-validation.md +202 -0
  620. package/docs/reference/memory-config.md +630 -0
  621. package/docs/reference/openclaw-sdk-api-design.md +390 -0
  622. package/docs/reference/prompt-caching.md +358 -0
  623. package/docs/reference/rich-output-protocol.md +79 -0
  624. package/docs/reference/rpc.md +43 -0
  625. package/docs/reference/secretref-credential-surface.md +159 -0
  626. package/docs/reference/secretref-user-supplied-credentials-matrix.json +663 -0
  627. package/docs/reference/session-management-compaction.md +461 -0
  628. package/docs/reference/templates/AGENTS.dev.md +89 -0
  629. package/docs/reference/templates/AGENTS.md +225 -0
  630. package/docs/reference/templates/BOOT.md +16 -0
  631. package/docs/reference/templates/BOOTSTRAP.md +66 -0
  632. package/docs/reference/templates/HEARTBEAT.md +16 -0
  633. package/docs/reference/templates/IDENTITY.dev.md +52 -0
  634. package/docs/reference/templates/IDENTITY.md +34 -0
  635. package/docs/reference/templates/SOUL.dev.md +82 -0
  636. package/docs/reference/templates/SOUL.md +49 -0
  637. package/docs/reference/templates/TOOLS.dev.md +29 -0
  638. package/docs/reference/templates/TOOLS.md +51 -0
  639. package/docs/reference/templates/USER.dev.md +23 -0
  640. package/docs/reference/templates/USER.md +28 -0
  641. package/docs/reference/test.md +239 -0
  642. package/docs/reference/token-use.md +233 -0
  643. package/docs/reference/transcript-hygiene.md +214 -0
  644. package/docs/reference/wizard.md +252 -0
  645. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +101 -0
  646. package/docs/security/THREAT-MODEL-ATLAS.md +611 -0
  647. package/docs/security/formal-verification.md +170 -0
  648. package/docs/security/incident-response.md +59 -0
  649. package/docs/security/network-proxy.md +268 -0
  650. package/docs/snippets/plugin-publish/minimal-openclaw.plugin.json +12 -0
  651. package/docs/snippets/plugin-publish/minimal-package.json +16 -0
  652. package/docs/start/bootstrapping.md +49 -0
  653. package/docs/start/docs-directory.md +69 -0
  654. package/docs/start/getting-started.md +152 -0
  655. package/docs/start/hubs.md +201 -0
  656. package/docs/start/lore.md +223 -0
  657. package/docs/start/onboarding-overview.md +72 -0
  658. package/docs/start/onboarding.md +95 -0
  659. package/docs/start/openclaw.md +244 -0
  660. package/docs/start/quickstart.md +25 -0
  661. package/docs/start/setup.md +178 -0
  662. package/docs/start/showcase.md +383 -0
  663. package/docs/start/wizard-cli-automation.md +232 -0
  664. package/docs/start/wizard-cli-reference.md +331 -0
  665. package/docs/start/wizard.md +141 -0
  666. package/docs/style.css +184 -0
  667. package/docs/superpowers/specs/2026-04-22-tweakcn-custom-theme-import-design.md +316 -0
  668. package/docs/tools/acp-agents-setup.md +352 -0
  669. package/docs/tools/acp-agents.md +847 -0
  670. package/docs/tools/agent-send.md +112 -0
  671. package/docs/tools/apply-patch.md +64 -0
  672. package/docs/tools/brave-search.md +139 -0
  673. package/docs/tools/browser-control.md +391 -0
  674. package/docs/tools/browser-linux-troubleshooting.md +173 -0
  675. package/docs/tools/browser-login.md +77 -0
  676. package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +219 -0
  677. package/docs/tools/browser.md +769 -0
  678. package/docs/tools/btw.md +159 -0
  679. package/docs/tools/capability-cookbook.md +12 -0
  680. package/docs/tools/clawhub.md +5 -0
  681. package/docs/tools/code-execution.md +173 -0
  682. package/docs/tools/creating-skills.md +120 -0
  683. package/docs/tools/diffs.md +506 -0
  684. package/docs/tools/duckduckgo-search.md +109 -0
  685. package/docs/tools/elevated.md +128 -0
  686. package/docs/tools/exa-search.md +152 -0
  687. package/docs/tools/exec-approvals-advanced.md +360 -0
  688. package/docs/tools/exec-approvals.md +474 -0
  689. package/docs/tools/exec.md +282 -0
  690. package/docs/tools/firecrawl.md +155 -0
  691. package/docs/tools/gemini-search.md +114 -0
  692. package/docs/tools/grok-search.md +113 -0
  693. package/docs/tools/image-generation.md +433 -0
  694. package/docs/tools/index.md +178 -0
  695. package/docs/tools/kimi-search.md +105 -0
  696. package/docs/tools/llm-task.md +137 -0
  697. package/docs/tools/lobster.md +365 -0
  698. package/docs/tools/loop-detection.md +154 -0
  699. package/docs/tools/media-overview.md +157 -0
  700. package/docs/tools/minimax-search.md +102 -0
  701. package/docs/tools/multi-agent-sandbox-tools.md +409 -0
  702. package/docs/tools/music-generation.md +371 -0
  703. package/docs/tools/ollama-search.md +153 -0
  704. package/docs/tools/pdf.md +195 -0
  705. package/docs/tools/perplexity-search.md +220 -0
  706. package/docs/tools/plugin.md +327 -0
  707. package/docs/tools/reactions.md +100 -0
  708. package/docs/tools/searxng-search.md +141 -0
  709. package/docs/tools/skills-config.md +195 -0
  710. package/docs/tools/skills.md +535 -0
  711. package/docs/tools/slash-commands.md +488 -0
  712. package/docs/tools/steer.md +84 -0
  713. package/docs/tools/subagents.md +650 -0
  714. package/docs/tools/tavily.md +162 -0
  715. package/docs/tools/thinking.md +140 -0
  716. package/docs/tools/tokenjuice.md +81 -0
  717. package/docs/tools/tool-search.md +269 -0
  718. package/docs/tools/trajectory.md +229 -0
  719. package/docs/tools/tts.md +1004 -0
  720. package/docs/tools/video-generation.md +552 -0
  721. package/docs/tools/web-fetch.md +195 -0
  722. package/docs/tools/web.md +459 -0
  723. package/docs/tts.md +11 -0
  724. package/docs/vps.md +139 -0
  725. package/docs/web/control-ui.md +503 -0
  726. package/docs/web/dashboard.md +107 -0
  727. package/docs/web/index.md +133 -0
  728. package/docs/web/tui.md +246 -0
  729. package/docs/web/webchat.md +99 -0
  730. package/docs/whatsapp-openclaw-ai-zh.jpg +0 -0
  731. package/docs/whatsapp-openclaw.jpg +0 -0
  732. package/nodmix.mjs +487 -0
  733. package/package.json +1852 -0
  734. package/patches/.gitkeep +0 -0
  735. package/patches/@agentclientprotocol__claude-agent-acp@0.36.1.patch +41 -0
  736. package/pnpm-workspace.yaml +63 -0
  737. package/scripts/crabbox-wrapper.mjs +353 -0
  738. package/scripts/lib/official-external-channel-catalog.json +559 -0
  739. package/scripts/lib/official-external-plugin-catalog.json +192 -0
  740. package/scripts/lib/official-external-provider-catalog.json +117 -0
  741. package/scripts/lib/package-dist-imports.mjs +171 -0
  742. package/scripts/npm-runner.mjs +91 -0
  743. package/scripts/postinstall-bundled-plugins.mjs +978 -0
  744. package/scripts/preinstall-package-manager-warning.mjs +64 -0
  745. package/scripts/windows-cmd-helpers.mjs +20 -0
  746. package/skills/1password/SKILL.md +70 -0
  747. package/skills/1password/references/cli-examples.md +29 -0
  748. package/skills/1password/references/get-started.md +17 -0
  749. package/skills/apple-notes/SKILL.md +77 -0
  750. package/skills/apple-reminders/SKILL.md +118 -0
  751. package/skills/bear-notes/SKILL.md +107 -0
  752. package/skills/blogwatcher/SKILL.md +69 -0
  753. package/skills/blucli/SKILL.md +47 -0
  754. package/skills/camsnap/SKILL.md +45 -0
  755. package/skills/canvas/SKILL.md +78 -0
  756. package/skills/clawhub/SKILL.md +77 -0
  757. package/skills/coding-agent/SKILL.md +149 -0
  758. package/skills/diagram-maker/SKILL.md +53 -0
  759. package/skills/diagram-maker/references/excalidraw-patterns.md +85 -0
  760. package/skills/diagram-maker/references/svg-template.md +112 -0
  761. package/skills/discord/SKILL.md +136 -0
  762. package/skills/eightctl/SKILL.md +50 -0
  763. package/skills/gemini/SKILL.md +47 -0
  764. package/skills/gh-issues/SKILL.md +213 -0
  765. package/skills/gifgrep/SKILL.md +85 -0
  766. package/skills/github/SKILL.md +84 -0
  767. package/skills/gog/SKILL.md +116 -0
  768. package/skills/goplaces/SKILL.md +52 -0
  769. package/skills/healthcheck/SKILL.md +105 -0
  770. package/skills/himalaya/SKILL.md +80 -0
  771. package/skills/himalaya/references/configuration.md +184 -0
  772. package/skills/himalaya/references/message-composition.md +199 -0
  773. package/skills/imsg/SKILL.md +122 -0
  774. package/skills/mcporter/SKILL.md +61 -0
  775. package/skills/meme-maker/SKILL.md +42 -0
  776. package/skills/meme-maker/references/templates.json +358 -0
  777. package/skills/meme-maker/scripts/meme.mjs +398 -0
  778. package/skills/model-usage/SKILL.md +69 -0
  779. package/skills/model-usage/references/codexbar-cli.md +33 -0
  780. package/skills/model-usage/scripts/model_usage.py +319 -0
  781. package/skills/model-usage/scripts/test_model_usage.py +40 -0
  782. package/skills/nano-pdf/SKILL.md +38 -0
  783. package/skills/node-connect/SKILL.md +142 -0
  784. package/skills/node-inspect-debugger/SKILL.md +85 -0
  785. package/skills/notion/SKILL.md +150 -0
  786. package/skills/obsidian/SKILL.md +119 -0
  787. package/skills/openai-whisper/SKILL.md +38 -0
  788. package/skills/openai-whisper-api/SKILL.md +71 -0
  789. package/skills/openai-whisper-api/scripts/transcribe.sh +154 -0
  790. package/skills/openhue/SKILL.md +112 -0
  791. package/skills/oracle/SKILL.md +126 -0
  792. package/skills/ordercli/SKILL.md +78 -0
  793. package/skills/peekaboo/SKILL.md +190 -0
  794. package/skills/pyproject.toml +10 -0
  795. package/skills/python-debugpy/SKILL.md +73 -0
  796. package/skills/sag/SKILL.md +87 -0
  797. package/skills/session-logs/SKILL.md +151 -0
  798. package/skills/sherpa-onnx-tts/SKILL.md +109 -0
  799. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
  800. package/skills/skill-creator/SKILL.md +78 -0
  801. package/skills/skill-creator/license.txt +202 -0
  802. package/skills/skill-creator/scripts/init_skill.py +378 -0
  803. package/skills/skill-creator/scripts/package_skill.py +139 -0
  804. package/skills/skill-creator/scripts/quick_validate.py +169 -0
  805. package/skills/skill-creator/scripts/test_package_skill.py +161 -0
  806. package/skills/skill-creator/scripts/test_quick_validate.py +116 -0
  807. package/skills/slack/SKILL.md +78 -0
  808. package/skills/songsee/SKILL.md +49 -0
  809. package/skills/sonoscli/SKILL.md +65 -0
  810. package/skills/spike/SKILL.md +51 -0
  811. package/skills/spotify-player/SKILL.md +64 -0
  812. package/skills/summarize/SKILL.md +87 -0
  813. package/skills/taskflow/SKILL.md +149 -0
  814. package/skills/taskflow/examples/inbox-triage.lobster +33 -0
  815. package/skills/taskflow/examples/pr-intake.lobster +32 -0
  816. package/skills/taskflow-inbox-triage/SKILL.md +119 -0
  817. package/skills/things-mac/SKILL.md +86 -0
  818. package/skills/tmux/SKILL.md +91 -0
  819. package/skills/tmux/scripts/find-sessions.sh +112 -0
  820. package/skills/tmux/scripts/wait-for-text.sh +83 -0
  821. package/skills/trello/SKILL.md +108 -0
  822. package/skills/video-frames/SKILL.md +46 -0
  823. package/skills/video-frames/scripts/frame.sh +81 -0
  824. package/skills/voice-call/SKILL.md +45 -0
  825. package/skills/wacli/SKILL.md +72 -0
  826. package/skills/weather/SKILL.md +64 -0
  827. package/skills/xurl/SKILL.md +120 -0
@@ -0,0 +1,624 @@
1
+ ---
2
+ title: "Codex Harness Context Engine Port"
3
+ summary: "Specification for making the bundled Codex app-server harness honor Nodmix context-engine plugins"
4
+ read_when:
5
+ - You are wiring context-engine lifecycle behavior into the Codex harness
6
+ - You need lossless-claw or another context-engine plugin to work with codex/* embedded harness sessions
7
+ - You are comparing embedded PI and Codex app-server context behavior
8
+ ---
9
+
10
+ ## Status
11
+
12
+ Draft implementation specification.
13
+
14
+ ## Goal
15
+
16
+ Make the bundled Codex app-server harness honor the same Nodmix context-engine
17
+ lifecycle contract that embedded PI turns already honor.
18
+
19
+ A session using `agents.defaults.embeddedHarness.runtime: "codex"` or a
20
+ `codex/*` model should still let the selected context-engine plugin, such as
21
+ `lossless-claw`, control context assembly, post-turn ingest, maintenance, and
22
+ Nodmix-level compaction policy as far as the Codex app-server boundary allows.
23
+
24
+ ## Non-goals
25
+
26
+ - Do not reimplement Codex app-server internals.
27
+ - Do not make Codex native thread compaction produce a lossless-claw summary.
28
+ - Do not require non-Codex models to use the Codex harness.
29
+ - Do not change ACP/acpx session behavior. This specification is for the
30
+ non-ACP embedded agent harness path only.
31
+ - Do not make third-party plugins register Codex app-server extension factories;
32
+ the existing bundled-plugin trust boundary remains unchanged.
33
+
34
+ ## Current architecture
35
+
36
+ The embedded run loop resolves the configured context engine once per run before
37
+ selecting a concrete low-level harness:
38
+
39
+ - `src/agents/pi-embedded-runner/run.ts`
40
+ - initializes context-engine plugins
41
+ - calls `resolveContextEngine(params.config)`
42
+ - passes `contextEngine` and `contextTokenBudget` into
43
+ `runEmbeddedAttemptWithBackend(...)`
44
+
45
+ `runEmbeddedAttemptWithBackend(...)` delegates to the selected agent harness:
46
+
47
+ - `src/agents/pi-embedded-runner/run/backend.ts`
48
+ - `src/agents/harness/selection.ts`
49
+
50
+ The Codex app-server harness is registered by the bundled Codex plugin:
51
+
52
+ - `extensions/codex/index.ts`
53
+ - `extensions/codex/harness.ts`
54
+
55
+ The Codex harness implementation receives the same `EmbeddedRunAttemptParams`
56
+ as PI-backed attempts:
57
+
58
+ - `extensions/codex/src/app-server/run-attempt.ts`
59
+
60
+ That means the required hook point is in Nodmix-controlled code. The external
61
+ boundary is the Codex app-server protocol itself: Nodmix can control what it
62
+ sends to `thread/start`, `thread/resume`, and `turn/start`, and can observe
63
+ notifications, but it cannot change Codex's internal thread store or native
64
+ compactor.
65
+
66
+ ## Current gap
67
+
68
+ Embedded PI attempts call the context-engine lifecycle directly:
69
+
70
+ - bootstrap/maintenance before the attempt
71
+ - assemble before the model call
72
+ - afterTurn or ingest after the attempt
73
+ - maintenance after a successful turn
74
+ - context-engine compaction for engines that own compaction
75
+
76
+ Relevant PI code:
77
+
78
+ - `src/agents/pi-embedded-runner/run/attempt.ts`
79
+ - `src/agents/pi-embedded-runner/run/attempt.context-engine-helpers.ts`
80
+ - `src/agents/pi-embedded-runner/context-engine-maintenance.ts`
81
+
82
+ Codex app-server attempts currently run generic agent-harness hooks and mirror
83
+ the transcript, but do not call `params.contextEngine.bootstrap`,
84
+ `params.contextEngine.assemble`, `params.contextEngine.afterTurn`,
85
+ `params.contextEngine.ingestBatch`, `params.contextEngine.ingest`, or
86
+ `params.contextEngine.maintain`.
87
+
88
+ Relevant Codex code:
89
+
90
+ - `extensions/codex/src/app-server/run-attempt.ts`
91
+ - `extensions/codex/src/app-server/thread-lifecycle.ts`
92
+ - `extensions/codex/src/app-server/event-projector.ts`
93
+ - `extensions/codex/src/app-server/compact.ts`
94
+
95
+ ## Desired behavior
96
+
97
+ For Codex harness turns, Nodmix should preserve this lifecycle:
98
+
99
+ 1. Read the mirrored Nodmix session transcript.
100
+ 2. Bootstrap the active context engine when a previous session file exists.
101
+ 3. Run bootstrap maintenance when available.
102
+ 4. Assemble context using the active context engine.
103
+ 5. Convert the assembled context into Codex-compatible inputs.
104
+ 6. Start or resume the Codex thread with developer instructions that include any
105
+ context-engine `systemPromptAddition`.
106
+ 7. Start the Codex turn with the assembled user-facing prompt.
107
+ 8. Mirror the Codex result back into the Nodmix transcript.
108
+ 9. Call `afterTurn` if implemented, otherwise `ingestBatch`/`ingest`, using the
109
+ mirrored transcript snapshot.
110
+ 10. Run turn maintenance after successful non-aborted turns.
111
+ 11. Preserve Codex native compaction signals and Nodmix compaction hooks.
112
+
113
+ ## Design constraints
114
+
115
+ ### Codex app-server remains canonical for native thread state
116
+
117
+ Codex owns its native thread and any internal extended history. Nodmix should
118
+ not try to mutate the app-server's internal history except through supported
119
+ protocol calls.
120
+
121
+ Nodmix's transcript mirror remains the source for Nodmix features:
122
+
123
+ - chat history
124
+ - search
125
+ - `/new` and `/reset` bookkeeping
126
+ - future model or harness switching
127
+ - context-engine plugin state
128
+
129
+ ### Context engine assembly must be projected into Codex inputs
130
+
131
+ The context-engine interface returns Nodmix `AgentMessage[]`, not a Codex
132
+ thread patch. Codex app-server `turn/start` accepts a current user input, while
133
+ `thread/start` and `thread/resume` accept developer instructions.
134
+
135
+ Therefore the implementation needs a projection layer. The safe first version
136
+ should avoid pretending it can replace Codex internal history. It should inject
137
+ assembled context as deterministic prompt/developer-instruction material around
138
+ the current turn.
139
+
140
+ ### Prompt-cache stability matters
141
+
142
+ For engines like lossless-claw, the assembled context should be deterministic
143
+ for unchanged inputs. Do not add timestamps, random ids, or nondeterministic
144
+ ordering to generated context text.
145
+
146
+ ### Runtime selection semantics do not change
147
+
148
+ Harness selection remains as-is:
149
+
150
+ - `runtime: "pi"` forces PI
151
+ - `runtime: "codex"` selects the registered Codex harness
152
+ - `runtime: "auto"` lets plugin harnesses claim supported providers
153
+ - unmatched `auto` runs use PI
154
+
155
+ This work changes what happens after the Codex harness is selected.
156
+
157
+ ## Implementation plan
158
+
159
+ ### 1. Export or relocate reusable context-engine attempt helpers
160
+
161
+ Today the reusable lifecycle helpers live under the PI runner:
162
+
163
+ - `src/agents/pi-embedded-runner/run/attempt.context-engine-helpers.ts`
164
+ - `src/agents/pi-embedded-runner/run/attempt.prompt-helpers.ts`
165
+ - `src/agents/pi-embedded-runner/context-engine-maintenance.ts`
166
+
167
+ Codex should not import from an implementation path whose name implies PI if we
168
+ can avoid it.
169
+
170
+ Create a harness-neutral module, for example:
171
+
172
+ - `src/agents/harness/context-engine-lifecycle.ts`
173
+
174
+ Move or re-export:
175
+
176
+ - `runAttemptContextEngineBootstrap`
177
+ - `assembleAttemptContextEngine`
178
+ - `finalizeAttemptContextEngineTurn`
179
+ - `buildAfterTurnRuntimeContext`
180
+ - `buildAfterTurnRuntimeContextFromUsage`
181
+ - a small wrapper around `runContextEngineMaintenance`
182
+
183
+ Keep PI imports working either by re-exporting from the old files or updating PI
184
+ call sites in the same PR.
185
+
186
+ The neutral helper names should not mention PI.
187
+
188
+ Suggested names:
189
+
190
+ - `bootstrapHarnessContextEngine`
191
+ - `assembleHarnessContextEngine`
192
+ - `finalizeHarnessContextEngineTurn`
193
+ - `buildHarnessContextEngineRuntimeContext`
194
+ - `runHarnessContextEngineMaintenance`
195
+
196
+ ### 2. Add a Codex context projection helper
197
+
198
+ Add a new module:
199
+
200
+ - `extensions/codex/src/app-server/context-engine-projection.ts`
201
+
202
+ Responsibilities:
203
+
204
+ - Accept the assembled `AgentMessage[]`, original mirrored history, and current
205
+ prompt.
206
+ - Determine which context belongs in developer instructions vs current user
207
+ input.
208
+ - Preserve the current user prompt as the final actionable request.
209
+ - Render prior messages in a stable, explicit format.
210
+ - Avoid volatile metadata.
211
+
212
+ Proposed API:
213
+
214
+ ```ts
215
+ export type CodexContextProjection = {
216
+ developerInstructionAddition?: string;
217
+ promptText: string;
218
+ assembledMessages: AgentMessage[];
219
+ prePromptMessageCount: number;
220
+ };
221
+
222
+ export function projectContextEngineAssemblyForCodex(params: {
223
+ assembledMessages: AgentMessage[];
224
+ originalHistoryMessages: AgentMessage[];
225
+ prompt: string;
226
+ systemPromptAddition?: string;
227
+ }): CodexContextProjection;
228
+ ```
229
+
230
+ Recommended first projection:
231
+
232
+ - Put `systemPromptAddition` into developer instructions.
233
+ - Put the assembled transcript context before the current prompt in `promptText`.
234
+ - Label it clearly as Nodmix assembled context.
235
+ - Keep current prompt last.
236
+ - Exclude duplicate current user prompt if it already appears at the tail.
237
+
238
+ Example prompt shape:
239
+
240
+ ```text
241
+ Nodmix assembled context for this turn:
242
+
243
+ <conversation_context>
244
+ [user]
245
+ ...
246
+
247
+ [assistant]
248
+ ...
249
+ </conversation_context>
250
+
251
+ Current user request:
252
+ ...
253
+ ```
254
+
255
+ This is less elegant than native Codex history surgery, but it is implementable
256
+ inside Nodmix and preserves context-engine semantics.
257
+
258
+ Future improvement: if Codex app-server exposes a protocol for replacing or
259
+ supplementing thread history, swap this projection layer to use that API.
260
+
261
+ ### 3. Wire bootstrap before Codex thread startup
262
+
263
+ In `extensions/codex/src/app-server/run-attempt.ts`:
264
+
265
+ - Read mirrored session history as today.
266
+ - Determine whether the session file existed before this run. Prefer a helper
267
+ that checks `fs.stat(params.sessionFile)` before mirroring writes.
268
+ - Open a `SessionManager` or use a narrow session manager adapter if the helper
269
+ requires it.
270
+ - Call the neutral bootstrap helper when `params.contextEngine` exists.
271
+
272
+ Pseudo-flow:
273
+
274
+ ```ts
275
+ const hadSessionFile = await fileExists(params.sessionFile);
276
+ const sessionManager = SessionManager.open(params.sessionFile);
277
+ const historyMessages = sessionManager.buildSessionContext().messages;
278
+
279
+ await bootstrapHarnessContextEngine({
280
+ hadSessionFile,
281
+ contextEngine: params.contextEngine,
282
+ sessionId: params.sessionId,
283
+ sessionKey: sandboxSessionKey,
284
+ sessionFile: params.sessionFile,
285
+ sessionManager,
286
+ runtimeContext: buildHarnessContextEngineRuntimeContext(...),
287
+ runMaintenance: runHarnessContextEngineMaintenance,
288
+ warn,
289
+ });
290
+ ```
291
+
292
+ Use the same `sessionKey` convention as the Codex tool bridge and transcript
293
+ mirror. Today Codex computes `sandboxSessionKey` from `params.sessionKey` or
294
+ `params.sessionId`; use that consistently unless there is a reason to preserve
295
+ raw `params.sessionKey`.
296
+
297
+ ### 4. Wire assemble before `thread/start` / `thread/resume` and `turn/start`
298
+
299
+ In `runCodexAppServerAttempt`:
300
+
301
+ 1. Build dynamic tools first, so the context engine sees the actual available
302
+ tool names.
303
+ 2. Read mirrored session history.
304
+ 3. Run context-engine `assemble(...)` when `params.contextEngine` exists.
305
+ 4. Project the assembled result into:
306
+ - developer instruction addition
307
+ - prompt text for `turn/start`
308
+
309
+ The existing hook call:
310
+
311
+ ```ts
312
+ resolveAgentHarnessBeforePromptBuildResult({
313
+ prompt: params.prompt,
314
+ developerInstructions: buildDeveloperInstructions(params),
315
+ messages: historyMessages,
316
+ ctx: hookContext,
317
+ });
318
+ ```
319
+
320
+ should become context-aware:
321
+
322
+ 1. compute base developer instructions with `buildDeveloperInstructions(params)`
323
+ 2. apply context-engine assembly/projection
324
+ 3. run `before_prompt_build` with the projected prompt/developer instructions
325
+
326
+ This order lets generic prompt hooks see the same prompt Codex will receive. If
327
+ we need strict PI parity, run context-engine assembly before hook composition,
328
+ because PI applies context-engine `systemPromptAddition` to the final system
329
+ prompt after its prompt pipeline. The important invariant is that both context
330
+ engine and hooks get a deterministic, documented order.
331
+
332
+ Recommended order for first implementation:
333
+
334
+ 1. `buildDeveloperInstructions(params)`
335
+ 2. context-engine `assemble()`
336
+ 3. append/prepend `systemPromptAddition` to developer instructions
337
+ 4. project assembled messages into prompt text
338
+ 5. `resolveAgentHarnessBeforePromptBuildResult(...)`
339
+ 6. pass final developer instructions to `startOrResumeThread(...)`
340
+ 7. pass final prompt text to `buildTurnStartParams(...)`
341
+
342
+ The spec should be encoded in tests so future changes do not reorder it by
343
+ accident.
344
+
345
+ ### 5. Preserve prompt-cache stable formatting
346
+
347
+ The projection helper must produce byte-stable output for identical inputs:
348
+
349
+ - stable message order
350
+ - stable role labels
351
+ - no generated timestamps
352
+ - no object key order leakage
353
+ - no random delimiters
354
+ - no per-run ids
355
+
356
+ Use fixed delimiters and explicit sections.
357
+
358
+ ### 6. Wire post-turn after transcript mirroring
359
+
360
+ Codex's `CodexAppServerEventProjector` builds a local `messagesSnapshot` for the
361
+ current turn. `mirrorTranscriptBestEffort(...)` writes that snapshot into the
362
+ Nodmix transcript mirror.
363
+
364
+ After mirroring succeeds or fails, call the context-engine finalizer with the
365
+ best available message snapshot:
366
+
367
+ - Prefer full mirrored session context after the write, because `afterTurn`
368
+ expects the session snapshot, not only the current turn.
369
+ - Fall back to `historyMessages + result.messagesSnapshot` if the session file
370
+ cannot be reopened.
371
+
372
+ Pseudo-flow:
373
+
374
+ ```ts
375
+ const prePromptMessageCount = historyMessages.length;
376
+ await mirrorTranscriptBestEffort(...);
377
+ const finalMessages = readMirroredSessionHistoryMessages(params.sessionFile)
378
+ ?? [...historyMessages, ...result.messagesSnapshot];
379
+
380
+ await finalizeHarnessContextEngineTurn({
381
+ contextEngine: params.contextEngine,
382
+ promptError: Boolean(finalPromptError),
383
+ aborted: finalAborted,
384
+ yieldAborted,
385
+ sessionIdUsed: params.sessionId,
386
+ sessionKey: sandboxSessionKey,
387
+ sessionFile: params.sessionFile,
388
+ messagesSnapshot: finalMessages,
389
+ prePromptMessageCount,
390
+ tokenBudget: params.contextTokenBudget,
391
+ runtimeContext: buildHarnessContextEngineRuntimeContextFromUsage({
392
+ attempt: params,
393
+ workspaceDir: effectiveWorkspace,
394
+ agentDir,
395
+ tokenBudget: params.contextTokenBudget,
396
+ lastCallUsage: result.attemptUsage,
397
+ promptCache: result.promptCache,
398
+ }),
399
+ runMaintenance: runHarnessContextEngineMaintenance,
400
+ sessionManager,
401
+ warn,
402
+ });
403
+ ```
404
+
405
+ If mirroring fails, still call `afterTurn` with the fallback snapshot, but log
406
+ that the context engine is ingesting from fallback turn data.
407
+
408
+ ### 7. Normalize usage and prompt-cache runtime context
409
+
410
+ Codex results include normalized usage from app-server token notifications when
411
+ available. Pass that usage into the context-engine runtime context.
412
+
413
+ If Codex app-server eventually exposes cache read/write details, map them into
414
+ `ContextEnginePromptCacheInfo`. Until then, omit `promptCache` rather than
415
+ inventing zeros.
416
+
417
+ ### 8. Compaction policy
418
+
419
+ There are two compaction systems:
420
+
421
+ 1. Nodmix context-engine `compact()`
422
+ 2. Codex app-server native `thread/compact/start`
423
+
424
+ Do not silently conflate them.
425
+
426
+ #### `/compact` and explicit Nodmix compaction
427
+
428
+ When the selected context engine has `info.ownsCompaction === true`, explicit
429
+ Nodmix compaction should prefer the context engine's `compact()` result for
430
+ the Nodmix transcript mirror and plugin state.
431
+
432
+ When the selected Codex harness has a native thread binding, we may additionally
433
+ request Codex native compaction to keep the app-server thread healthy, but this
434
+ must be reported as a separate backend action in details.
435
+
436
+ Recommended behavior:
437
+
438
+ - If `contextEngine.info.ownsCompaction === true`:
439
+ - call context-engine `compact()` first
440
+ - then best-effort call Codex native compaction when a thread binding exists
441
+ - return the context-engine result as the primary result
442
+ - include Codex native compaction status in `details.codexNativeCompaction`
443
+ - If the active context engine does not own compaction:
444
+ - preserve current Codex native compaction behavior
445
+
446
+ This likely requires changing `extensions/codex/src/app-server/compact.ts` or
447
+ wrapping it from the generic compaction path, depending on where
448
+ `maybeCompactAgentHarnessSession(...)` is invoked.
449
+
450
+ #### In-turn Codex native contextCompaction events
451
+
452
+ Codex may emit `contextCompaction` item events during a turn. Keep the current
453
+ before/after compaction hook emission in `event-projector.ts`, but do not treat
454
+ that as a completed context-engine compaction.
455
+
456
+ For engines that own compaction, emit an explicit diagnostic when Codex performs
457
+ native compaction anyway:
458
+
459
+ - stream/event name: existing `compaction` stream is acceptable
460
+ - details: `{ backend: "codex-app-server", ownsCompaction: true }`
461
+
462
+ This makes the split auditable.
463
+
464
+ ### 9. Session reset and binding behavior
465
+
466
+ The existing Codex harness `reset(...)` clears the Codex app-server binding from
467
+ the Nodmix session file. Preserve that behavior.
468
+
469
+ Also ensure context-engine state cleanup continues to happen through existing
470
+ Nodmix session lifecycle paths. Do not add Codex-specific cleanup unless the
471
+ context-engine lifecycle currently misses reset/delete events for all harnesses.
472
+
473
+ ### 10. Error handling
474
+
475
+ Follow PI semantics:
476
+
477
+ - bootstrap failures warn and continue
478
+ - assemble failures warn and fall back to unassembled pipeline messages/prompt
479
+ - afterTurn/ingest failures warn and mark post-turn finalization unsuccessful
480
+ - maintenance runs only after successful, non-aborted, non-yield turns
481
+ - compaction errors should not be retried as fresh prompts
482
+
483
+ Codex-specific additions:
484
+
485
+ - If context projection fails, warn and fall back to the original prompt.
486
+ - If transcript mirror fails, still attempt context-engine finalization with
487
+ fallback messages.
488
+ - If Codex native compaction fails after context-engine compaction succeeds,
489
+ do not fail the whole Nodmix compaction when the context engine is primary.
490
+
491
+ ## Test plan
492
+
493
+ ### Unit tests
494
+
495
+ Add tests under `extensions/codex/src/app-server`:
496
+
497
+ 1. `run-attempt.context-engine.test.ts`
498
+ - Codex calls `bootstrap` when a session file exists.
499
+ - Codex calls `assemble` with mirrored messages, token budget, tool names,
500
+ citations mode, model id, and prompt.
501
+ - `systemPromptAddition` is included in developer instructions.
502
+ - Assembled messages are projected into the prompt before current request.
503
+ - Codex calls `afterTurn` after transcript mirroring.
504
+ - Without `afterTurn`, Codex calls `ingestBatch` or per-message `ingest`.
505
+ - Turn maintenance runs after successful turns.
506
+ - Turn maintenance does not run on prompt error, abort, or yield abort.
507
+
508
+ 2. `context-engine-projection.test.ts`
509
+ - stable output for identical inputs
510
+ - no duplicate current prompt when assembled history includes it
511
+ - handles empty history
512
+ - preserves role order
513
+ - includes system prompt addition only in developer instructions
514
+
515
+ 3. `compact.context-engine.test.ts`
516
+ - owning context engine primary result wins
517
+ - Codex native compaction status appears in details when also attempted
518
+ - Codex native failure does not fail owning context-engine compaction
519
+ - non-owning context engine preserves current native compaction behavior
520
+
521
+ ### Existing tests to update
522
+
523
+ - `extensions/codex/src/app-server/run-attempt.test.ts` if present, otherwise
524
+ nearest Codex app-server run tests.
525
+ - `extensions/codex/src/app-server/event-projector.test.ts` only if compaction
526
+ event details change.
527
+ - `src/agents/harness/selection.test.ts` should not need changes unless config
528
+ behavior changes; it should remain stable.
529
+ - PI context-engine tests should continue to pass unchanged.
530
+
531
+ ### Integration / live tests
532
+
533
+ Add or extend live Codex harness smoke tests:
534
+
535
+ - configure `plugins.slots.contextEngine` to a test engine
536
+ - configure `agents.defaults.model` to a `codex/*` model
537
+ - configure `agents.defaults.embeddedHarness.runtime = "codex"`
538
+ - assert test engine observed:
539
+ - bootstrap
540
+ - assemble
541
+ - afterTurn or ingest
542
+ - maintenance
543
+
544
+ Avoid requiring lossless-claw in Nodmix core tests. Use a small in-repo fake
545
+ context engine plugin.
546
+
547
+ ## Observability
548
+
549
+ Add debug logs around Codex context-engine lifecycle calls:
550
+
551
+ - `codex context engine bootstrap started/completed/failed`
552
+ - `codex context engine assemble applied`
553
+ - `codex context engine finalize completed/failed`
554
+ - `codex context engine maintenance skipped` with reason
555
+ - `codex native compaction completed alongside context-engine compaction`
556
+
557
+ Avoid logging full prompts or transcript contents.
558
+
559
+ Add structured fields where useful:
560
+
561
+ - `sessionId`
562
+ - `sessionKey` redacted or omitted according to existing logging practice
563
+ - `engineId`
564
+ - `threadId`
565
+ - `turnId`
566
+ - `assembledMessageCount`
567
+ - `estimatedTokens`
568
+ - `hasSystemPromptAddition`
569
+
570
+ ## Migration / compatibility
571
+
572
+ This should be backward-compatible:
573
+
574
+ - If no context engine is configured, legacy context engine behavior should be
575
+ equivalent to today's Codex harness behavior.
576
+ - If context-engine `assemble` fails, Codex should continue with the original
577
+ prompt path.
578
+ - Existing Codex thread bindings should remain valid.
579
+ - Dynamic tool fingerprinting should not include context-engine output; otherwise
580
+ every context change could force a new Codex thread. Only the tool catalog
581
+ should affect the dynamic tool fingerprint.
582
+
583
+ ## Open questions
584
+
585
+ 1. Should assembled context be injected entirely into the user prompt, entirely
586
+ into developer instructions, or split?
587
+
588
+ Recommendation: split. Put `systemPromptAddition` in developer instructions;
589
+ put assembled transcript context in the user prompt wrapper. This best matches
590
+ the current Codex protocol without mutating native thread history.
591
+
592
+ 2. Should Codex native compaction be disabled when a context engine owns
593
+ compaction?
594
+
595
+ Recommendation: no, not initially. Codex native compaction may still be
596
+ necessary to keep the app-server thread alive. But it must be reported as
597
+ native Codex compaction, not as context-engine compaction.
598
+
599
+ 3. Should `before_prompt_build` run before or after context-engine assembly?
600
+
601
+ Recommendation: after context-engine projection for Codex, so generic harness
602
+ hooks see the actual prompt/developer instructions Codex will receive. If PI
603
+ parity requires the opposite, encode the chosen order in tests and document it
604
+ here.
605
+
606
+ 4. Can Codex app-server accept a future structured context/history override?
607
+
608
+ Unknown. If it can, replace the text projection layer with that protocol and
609
+ keep the lifecycle calls unchanged.
610
+
611
+ ## Acceptance criteria
612
+
613
+ - A `codex/*` embedded harness turn invokes the selected context engine's
614
+ assemble lifecycle.
615
+ - A context-engine `systemPromptAddition` affects Codex developer instructions.
616
+ - Assembled context affects the Codex turn input deterministically.
617
+ - Successful Codex turns call `afterTurn` or ingest fallback.
618
+ - Successful Codex turns run context-engine turn maintenance.
619
+ - Failed/aborted/yield-aborted turns do not run turn maintenance.
620
+ - Context-engine-owned compaction remains primary for Nodmix/plugin state.
621
+ - Codex native compaction remains auditable as native Codex behavior.
622
+ - Existing PI context-engine behavior is unchanged.
623
+ - Existing Codex harness behavior is unchanged when no non-legacy context engine
624
+ is selected or when assembly fails.