opc-agent 4.1.1 → 4.1.3

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 (744) hide show
  1. package/dist/analytics/index.d.ts.map +1 -0
  2. package/dist/analytics/index.js.map +1 -0
  3. package/dist/channels/dingtalk.d.ts.map +1 -0
  4. package/dist/channels/dingtalk.js.map +1 -0
  5. package/dist/channels/discord.d.ts.map +1 -0
  6. package/dist/channels/discord.js.map +1 -0
  7. package/dist/channels/email.d.ts.map +1 -0
  8. package/dist/channels/email.js.map +1 -0
  9. package/dist/channels/feishu.d.ts.map +1 -0
  10. package/dist/channels/feishu.js.map +1 -0
  11. package/dist/channels/googlechat.d.ts.map +1 -0
  12. package/dist/channels/googlechat.js.map +1 -0
  13. package/dist/channels/imessage.d.ts.map +1 -0
  14. package/dist/channels/imessage.js.map +1 -0
  15. package/dist/channels/index.d.ts.map +1 -0
  16. package/dist/channels/index.js.map +1 -0
  17. package/dist/channels/irc.d.ts.map +1 -0
  18. package/dist/channels/irc.js.map +1 -0
  19. package/dist/channels/line.d.ts.map +1 -0
  20. package/dist/channels/line.js.map +1 -0
  21. package/dist/channels/matrix.d.ts.map +1 -0
  22. package/dist/channels/matrix.js.map +1 -0
  23. package/dist/channels/mattermost.d.ts.map +1 -0
  24. package/dist/channels/mattermost.js.map +1 -0
  25. package/dist/channels/msteams.d.ts.map +1 -0
  26. package/dist/channels/msteams.js.map +1 -0
  27. package/dist/channels/nostr.d.ts.map +1 -0
  28. package/dist/channels/nostr.js.map +1 -0
  29. package/dist/channels/qq.d.ts.map +1 -0
  30. package/dist/channels/qq.js.map +1 -0
  31. package/dist/channels/signal.d.ts.map +1 -0
  32. package/dist/channels/signal.js.map +1 -0
  33. package/dist/channels/slack.d.ts.map +1 -0
  34. package/dist/channels/slack.js.map +1 -0
  35. package/dist/channels/sms.d.ts.map +1 -0
  36. package/dist/channels/sms.js.map +1 -0
  37. package/dist/channels/telegram.d.ts.map +1 -0
  38. package/dist/channels/telegram.js.map +1 -0
  39. package/dist/channels/twitch.d.ts.map +1 -0
  40. package/dist/channels/twitch.js.map +1 -0
  41. package/dist/channels/voice-call.d.ts.map +1 -0
  42. package/dist/channels/voice-call.js.map +1 -0
  43. package/dist/channels/voice.d.ts.map +1 -0
  44. package/dist/channels/voice.js.map +1 -0
  45. package/dist/channels/web.d.ts.map +1 -0
  46. package/dist/channels/web.js +8 -2
  47. package/dist/channels/web.js.map +1 -0
  48. package/dist/channels/webhook.d.ts.map +1 -0
  49. package/dist/channels/webhook.js.map +1 -0
  50. package/dist/channels/websocket.d.ts.map +1 -0
  51. package/dist/channels/websocket.js.map +1 -0
  52. package/dist/channels/wechat.d.ts.map +1 -0
  53. package/dist/channels/wechat.js.map +1 -0
  54. package/dist/channels/whatsapp.d.ts.map +1 -0
  55. package/dist/channels/whatsapp.js.map +1 -0
  56. package/dist/cli/chat.d.ts.map +1 -0
  57. package/dist/cli/chat.js.map +1 -0
  58. package/dist/cli/setup.d.ts.map +1 -0
  59. package/dist/cli/setup.js.map +1 -0
  60. package/dist/cli.d.ts.map +1 -0
  61. package/dist/cli.js +261 -85
  62. package/dist/cli.js.map +1 -0
  63. package/dist/core/a2a.d.ts.map +1 -0
  64. package/dist/core/a2a.js.map +1 -0
  65. package/dist/core/agent.d.ts.map +1 -0
  66. package/dist/core/agent.js.map +1 -0
  67. package/dist/core/analytics-engine.d.ts.map +1 -0
  68. package/dist/core/analytics-engine.js.map +1 -0
  69. package/dist/core/api-server.d.ts.map +1 -0
  70. package/dist/core/api-server.js.map +1 -0
  71. package/dist/core/audio.d.ts.map +1 -0
  72. package/dist/core/audio.js.map +1 -0
  73. package/dist/core/auth.d.ts.map +1 -0
  74. package/dist/core/auth.js.map +1 -0
  75. package/dist/core/cache.d.ts.map +1 -0
  76. package/dist/core/cache.js.map +1 -0
  77. package/dist/core/collaboration.d.ts.map +1 -0
  78. package/dist/core/collaboration.js.map +1 -0
  79. package/dist/core/compose.d.ts.map +1 -0
  80. package/dist/core/compose.js.map +1 -0
  81. package/dist/core/config.d.ts.map +1 -0
  82. package/dist/core/config.js.map +1 -0
  83. package/dist/core/context-discovery.d.ts.map +1 -0
  84. package/dist/core/context-discovery.js.map +1 -0
  85. package/dist/core/context-refs.d.ts.map +1 -0
  86. package/dist/core/context-refs.js.map +1 -0
  87. package/dist/core/errors.d.ts.map +1 -0
  88. package/dist/core/errors.js.map +1 -0
  89. package/dist/core/gateway.d.ts.map +1 -0
  90. package/dist/core/gateway.js.map +1 -0
  91. package/dist/core/heartbeat.d.ts.map +1 -0
  92. package/dist/core/heartbeat.js.map +1 -0
  93. package/dist/core/hitl.d.ts.map +1 -0
  94. package/dist/core/hitl.js.map +1 -0
  95. package/dist/core/hooks.d.ts.map +1 -0
  96. package/dist/core/hooks.js.map +1 -0
  97. package/dist/core/ide-bridge.d.ts.map +1 -0
  98. package/dist/core/ide-bridge.js.map +1 -0
  99. package/dist/core/knowledge.d.ts.map +1 -0
  100. package/dist/core/knowledge.js.map +1 -0
  101. package/dist/core/logger.d.ts.map +1 -0
  102. package/dist/core/logger.js.map +1 -0
  103. package/dist/core/node-network.d.ts.map +1 -0
  104. package/dist/core/node-network.js.map +1 -0
  105. package/dist/core/orchestrator.d.ts.map +1 -0
  106. package/dist/core/orchestrator.js.map +1 -0
  107. package/dist/core/performance.d.ts.map +1 -0
  108. package/dist/core/performance.js.map +1 -0
  109. package/dist/core/profiles.d.ts.map +1 -0
  110. package/dist/core/profiles.js.map +1 -0
  111. package/dist/core/rate-limiter.d.ts.map +1 -0
  112. package/dist/core/rate-limiter.js.map +1 -0
  113. package/dist/core/room.d.ts.map +1 -0
  114. package/dist/core/room.js.map +1 -0
  115. package/dist/core/runtime.d.ts.map +1 -0
  116. package/dist/core/runtime.js +37 -15
  117. package/dist/core/runtime.js.map +1 -0
  118. package/dist/core/sandbox.d.ts.map +1 -0
  119. package/dist/core/sandbox.js.map +1 -0
  120. package/dist/core/scheduler.d.ts.map +1 -0
  121. package/dist/core/scheduler.js.map +1 -0
  122. package/dist/core/security.d.ts.map +1 -0
  123. package/dist/core/security.js.map +1 -0
  124. package/dist/core/session-manager.d.ts.map +1 -0
  125. package/dist/core/session-manager.js.map +1 -0
  126. package/dist/core/streaming.d.ts.map +1 -0
  127. package/dist/core/streaming.js.map +1 -0
  128. package/dist/core/subagent.d.ts.map +1 -0
  129. package/dist/core/subagent.js.map +1 -0
  130. package/dist/core/types.d.ts.map +1 -0
  131. package/dist/core/types.js.map +1 -0
  132. package/dist/core/versioning.d.ts.map +1 -0
  133. package/dist/core/versioning.js.map +1 -0
  134. package/dist/core/vision.d.ts.map +1 -0
  135. package/dist/core/vision.js.map +1 -0
  136. package/dist/core/watch.d.ts.map +1 -0
  137. package/dist/core/watch.js.map +1 -0
  138. package/dist/core/workflow-graph.d.ts.map +1 -0
  139. package/dist/core/workflow-graph.js.map +1 -0
  140. package/dist/core/workflow.d.ts.map +1 -0
  141. package/dist/core/workflow.js.map +1 -0
  142. package/dist/daemon.d.ts.map +1 -0
  143. package/dist/daemon.js.map +1 -0
  144. package/dist/deploy/hermes.d.ts.map +1 -0
  145. package/dist/deploy/hermes.js.map +1 -0
  146. package/dist/deploy/index.d.ts.map +1 -0
  147. package/dist/deploy/index.js.map +1 -0
  148. package/dist/deploy/openclaw.d.ts.map +1 -0
  149. package/dist/deploy/openclaw.js.map +1 -0
  150. package/dist/doctor.d.ts +1 -0
  151. package/dist/doctor.d.ts.map +1 -0
  152. package/dist/doctor.js +105 -10
  153. package/dist/doctor.js.map +1 -0
  154. package/dist/eval/index.d.ts.map +1 -0
  155. package/dist/eval/index.js.map +1 -0
  156. package/dist/hub/brain-seed.d.ts.map +1 -0
  157. package/dist/hub/brain-seed.js.map +1 -0
  158. package/dist/hub/client.d.ts.map +1 -0
  159. package/dist/hub/client.js.map +1 -0
  160. package/dist/i18n/index.d.ts.map +1 -0
  161. package/dist/i18n/index.js.map +1 -0
  162. package/dist/index.d.ts.map +1 -0
  163. package/dist/index.js.map +1 -0
  164. package/dist/mcp/servers/calculator-mcp.d.ts.map +1 -0
  165. package/dist/mcp/servers/calculator-mcp.js.map +1 -0
  166. package/dist/mcp/servers/crypto-mcp.d.ts.map +1 -0
  167. package/dist/mcp/servers/crypto-mcp.js.map +1 -0
  168. package/dist/mcp/servers/database-mcp.d.ts.map +1 -0
  169. package/dist/mcp/servers/database-mcp.js.map +1 -0
  170. package/dist/mcp/servers/datetime-mcp.d.ts.map +1 -0
  171. package/dist/mcp/servers/datetime-mcp.js.map +1 -0
  172. package/dist/mcp/servers/filesystem.d.ts.map +1 -0
  173. package/dist/mcp/servers/filesystem.js.map +1 -0
  174. package/dist/mcp/servers/github-mcp.d.ts.map +1 -0
  175. package/dist/mcp/servers/github-mcp.js.map +1 -0
  176. package/dist/mcp/servers/index.d.ts.map +1 -0
  177. package/dist/mcp/servers/index.js.map +1 -0
  178. package/dist/mcp/servers/json-mcp.d.ts.map +1 -0
  179. package/dist/mcp/servers/json-mcp.js.map +1 -0
  180. package/dist/mcp/servers/memory-mcp.d.ts.map +1 -0
  181. package/dist/mcp/servers/memory-mcp.js.map +1 -0
  182. package/dist/mcp/servers/regex-mcp.d.ts.map +1 -0
  183. package/dist/mcp/servers/regex-mcp.js.map +1 -0
  184. package/dist/mcp/servers/web-mcp.d.ts.map +1 -0
  185. package/dist/mcp/servers/web-mcp.js.map +1 -0
  186. package/dist/memory/context-compressor.d.ts.map +1 -0
  187. package/dist/memory/context-compressor.js.map +1 -0
  188. package/dist/memory/deepbrain.d.ts +1 -1
  189. package/dist/memory/deepbrain.d.ts.map +1 -0
  190. package/dist/memory/deepbrain.js +95 -4
  191. package/dist/memory/deepbrain.js.map +1 -0
  192. package/dist/memory/index.d.ts.map +1 -0
  193. package/dist/memory/index.js.map +1 -0
  194. package/dist/memory/seed-loader.d.ts.map +1 -0
  195. package/dist/memory/seed-loader.js.map +1 -0
  196. package/dist/memory/user-profiler.d.ts.map +1 -0
  197. package/dist/memory/user-profiler.js.map +1 -0
  198. package/dist/plugins/content-filter.d.ts.map +1 -0
  199. package/dist/plugins/content-filter.js.map +1 -0
  200. package/dist/plugins/index.d.ts.map +1 -0
  201. package/dist/plugins/index.js.map +1 -0
  202. package/dist/plugins/logger.d.ts.map +1 -0
  203. package/dist/plugins/logger.js.map +1 -0
  204. package/dist/plugins/rate-limiter.d.ts.map +1 -0
  205. package/dist/plugins/rate-limiter.js.map +1 -0
  206. package/dist/protocols/a2a/client.d.ts.map +1 -0
  207. package/dist/protocols/a2a/client.js.map +1 -0
  208. package/dist/protocols/a2a/index.d.ts.map +1 -0
  209. package/dist/protocols/a2a/index.js.map +1 -0
  210. package/dist/protocols/a2a/server.d.ts.map +1 -0
  211. package/dist/protocols/a2a/server.js.map +1 -0
  212. package/dist/protocols/a2a/types.d.ts.map +1 -0
  213. package/dist/protocols/a2a/types.js.map +1 -0
  214. package/dist/protocols/a2a/utils.d.ts.map +1 -0
  215. package/dist/protocols/a2a/utils.js.map +1 -0
  216. package/dist/protocols/agui/client.d.ts.map +1 -0
  217. package/dist/protocols/agui/client.js.map +1 -0
  218. package/dist/protocols/agui/index.d.ts.map +1 -0
  219. package/dist/protocols/agui/index.js.map +1 -0
  220. package/dist/protocols/agui/server.d.ts.map +1 -0
  221. package/dist/protocols/agui/server.js.map +1 -0
  222. package/dist/protocols/agui/types.d.ts.map +1 -0
  223. package/dist/protocols/agui/types.js.map +1 -0
  224. package/dist/protocols/index.d.ts.map +1 -0
  225. package/dist/protocols/index.js.map +1 -0
  226. package/dist/protocols/mcp/agent-tools.d.ts.map +1 -0
  227. package/dist/protocols/mcp/agent-tools.js.map +1 -0
  228. package/dist/protocols/mcp/index.d.ts.map +1 -0
  229. package/dist/protocols/mcp/index.js.map +1 -0
  230. package/dist/protocols/mcp/server.d.ts.map +1 -0
  231. package/dist/protocols/mcp/server.js.map +1 -0
  232. package/dist/protocols/mcp/types.d.ts.map +1 -0
  233. package/dist/protocols/mcp/types.js.map +1 -0
  234. package/dist/providers/index.d.ts.map +1 -0
  235. package/dist/providers/index.js.map +1 -0
  236. package/dist/publish/index.d.ts.map +1 -0
  237. package/dist/publish/index.js.map +1 -0
  238. package/dist/scheduler/cron-engine.d.ts.map +1 -0
  239. package/dist/scheduler/cron-engine.js +3 -36
  240. package/dist/scheduler/cron-engine.js.map +1 -0
  241. package/dist/scheduler/index.d.ts.map +1 -0
  242. package/dist/scheduler/index.js.map +1 -0
  243. package/dist/schema/oad.d.ts.map +1 -0
  244. package/dist/schema/oad.js.map +1 -0
  245. package/dist/security/approval.d.ts.map +1 -0
  246. package/dist/security/approval.js.map +1 -0
  247. package/dist/security/approvals.d.ts.map +1 -0
  248. package/dist/security/approvals.js.map +1 -0
  249. package/dist/security/elevated.d.ts.map +1 -0
  250. package/dist/security/elevated.js.map +1 -0
  251. package/dist/security/guardrails.d.ts.map +1 -0
  252. package/dist/security/guardrails.js.map +1 -0
  253. package/dist/security/index.d.ts.map +1 -0
  254. package/dist/security/index.js.map +1 -0
  255. package/dist/security/keys.d.ts.map +1 -0
  256. package/dist/security/keys.js.map +1 -0
  257. package/dist/security/secrets.d.ts.map +1 -0
  258. package/dist/security/secrets.js.map +1 -0
  259. package/dist/skills/auto-learn.d.ts.map +1 -0
  260. package/dist/skills/auto-learn.js.map +1 -0
  261. package/dist/skills/base.d.ts.map +1 -0
  262. package/dist/skills/base.js.map +1 -0
  263. package/dist/skills/builtin/index.d.ts.map +1 -0
  264. package/dist/skills/builtin/index.js.map +1 -0
  265. package/dist/skills/document.d.ts.map +1 -0
  266. package/dist/skills/document.js.map +1 -0
  267. package/dist/skills/http.d.ts.map +1 -0
  268. package/dist/skills/http.js.map +1 -0
  269. package/dist/skills/index.d.ts.map +1 -0
  270. package/dist/skills/index.js.map +1 -0
  271. package/dist/skills/marketplace.d.ts.map +1 -0
  272. package/dist/skills/marketplace.js.map +1 -0
  273. package/dist/skills/scheduler.d.ts.map +1 -0
  274. package/dist/skills/scheduler.js.map +1 -0
  275. package/dist/skills/types.d.ts.map +1 -0
  276. package/dist/skills/types.js.map +1 -0
  277. package/dist/skills/webhook-trigger.d.ts.map +1 -0
  278. package/dist/skills/webhook-trigger.js.map +1 -0
  279. package/dist/studio/server.d.ts.map +1 -0
  280. package/dist/studio/server.js.map +1 -0
  281. package/dist/studio/templates-data.d.ts.map +1 -0
  282. package/dist/studio/templates-data.js.map +1 -0
  283. package/dist/telemetry/index.d.ts.map +1 -0
  284. package/dist/telemetry/index.js.map +1 -0
  285. package/dist/templates/code-reviewer.d.ts.map +1 -0
  286. package/dist/templates/code-reviewer.js.map +1 -0
  287. package/dist/templates/content-writer.d.ts.map +1 -0
  288. package/dist/templates/content-writer.js.map +1 -0
  289. package/dist/templates/customer-service.d.ts.map +1 -0
  290. package/dist/templates/customer-service.js.map +1 -0
  291. package/dist/templates/data-analyst.d.ts.map +1 -0
  292. package/dist/templates/data-analyst.js.map +1 -0
  293. package/dist/templates/executive-assistant.d.ts.map +1 -0
  294. package/dist/templates/executive-assistant.js.map +1 -0
  295. package/dist/templates/financial-advisor.d.ts.map +1 -0
  296. package/dist/templates/financial-advisor.js.map +1 -0
  297. package/dist/templates/hr-recruiter.d.ts.map +1 -0
  298. package/dist/templates/hr-recruiter.js.map +1 -0
  299. package/dist/templates/knowledge-base.d.ts.map +1 -0
  300. package/dist/templates/knowledge-base.js.map +1 -0
  301. package/dist/templates/legal-assistant.d.ts.map +1 -0
  302. package/dist/templates/legal-assistant.js.map +1 -0
  303. package/dist/templates/project-manager.d.ts.map +1 -0
  304. package/dist/templates/project-manager.js.map +1 -0
  305. package/dist/templates/sales-assistant.d.ts.map +1 -0
  306. package/dist/templates/sales-assistant.js.map +1 -0
  307. package/dist/templates/teacher.d.ts.map +1 -0
  308. package/dist/templates/teacher.js.map +1 -0
  309. package/dist/testing/index.d.ts.map +1 -0
  310. package/dist/testing/index.js.map +1 -0
  311. package/dist/tools/builtin/browser.d.ts.map +1 -0
  312. package/dist/tools/builtin/browser.js.map +1 -0
  313. package/dist/tools/builtin/datetime.d.ts.map +1 -0
  314. package/dist/tools/builtin/datetime.js.map +1 -0
  315. package/dist/tools/builtin/file.d.ts.map +1 -0
  316. package/dist/tools/builtin/file.js.map +1 -0
  317. package/dist/tools/builtin/home-assistant.d.ts.map +1 -0
  318. package/dist/tools/builtin/home-assistant.js.map +1 -0
  319. package/dist/tools/builtin/index.d.ts.map +1 -0
  320. package/dist/tools/builtin/index.js.map +1 -0
  321. package/dist/tools/builtin/rl-tools.d.ts.map +1 -0
  322. package/dist/tools/builtin/rl-tools.js.map +1 -0
  323. package/dist/tools/builtin/shell.d.ts.map +1 -0
  324. package/dist/tools/builtin/shell.js.map +1 -0
  325. package/dist/tools/builtin/vision.d.ts.map +1 -0
  326. package/dist/tools/builtin/vision.js.map +1 -0
  327. package/dist/tools/builtin/web-search.d.ts.map +1 -0
  328. package/dist/tools/builtin/web-search.js.map +1 -0
  329. package/dist/tools/builtin/web.d.ts.map +1 -0
  330. package/dist/tools/builtin/web.js.map +1 -0
  331. package/dist/tools/calculator.d.ts.map +1 -0
  332. package/dist/tools/calculator.js.map +1 -0
  333. package/dist/tools/datetime.d.ts.map +1 -0
  334. package/dist/tools/datetime.js.map +1 -0
  335. package/dist/tools/document-processor.d.ts.map +1 -0
  336. package/dist/tools/document-processor.js.map +1 -0
  337. package/dist/tools/gateway.d.ts.map +1 -0
  338. package/dist/tools/gateway.js.map +1 -0
  339. package/dist/tools/image-generator.d.ts.map +1 -0
  340. package/dist/tools/image-generator.js.map +1 -0
  341. package/dist/tools/integrations/calendar.d.ts.map +1 -0
  342. package/dist/tools/integrations/calendar.js.map +1 -0
  343. package/dist/tools/integrations/code-exec.d.ts.map +1 -0
  344. package/dist/tools/integrations/code-exec.js.map +1 -0
  345. package/dist/tools/integrations/csv-analyzer.d.ts.map +1 -0
  346. package/dist/tools/integrations/csv-analyzer.js.map +1 -0
  347. package/dist/tools/integrations/database.d.ts.map +1 -0
  348. package/dist/tools/integrations/database.js.map +1 -0
  349. package/dist/tools/integrations/email-send.d.ts.map +1 -0
  350. package/dist/tools/integrations/email-send.js.map +1 -0
  351. package/dist/tools/integrations/git-tool.d.ts.map +1 -0
  352. package/dist/tools/integrations/git-tool.js.map +1 -0
  353. package/dist/tools/integrations/github-tool.d.ts.map +1 -0
  354. package/dist/tools/integrations/github-tool.js.map +1 -0
  355. package/dist/tools/integrations/image-gen.d.ts.map +1 -0
  356. package/dist/tools/integrations/image-gen.js.map +1 -0
  357. package/dist/tools/integrations/index.d.ts.map +1 -0
  358. package/dist/tools/integrations/index.js.map +1 -0
  359. package/dist/tools/integrations/jira.d.ts.map +1 -0
  360. package/dist/tools/integrations/jira.js.map +1 -0
  361. package/dist/tools/integrations/notion.d.ts.map +1 -0
  362. package/dist/tools/integrations/notion.js.map +1 -0
  363. package/dist/tools/integrations/npm-tool.d.ts.map +1 -0
  364. package/dist/tools/integrations/npm-tool.js.map +1 -0
  365. package/dist/tools/integrations/pdf-reader.d.ts.map +1 -0
  366. package/dist/tools/integrations/pdf-reader.js.map +1 -0
  367. package/dist/tools/integrations/slack.d.ts.map +1 -0
  368. package/dist/tools/integrations/slack.js.map +1 -0
  369. package/dist/tools/integrations/summarizer.d.ts.map +1 -0
  370. package/dist/tools/integrations/summarizer.js.map +1 -0
  371. package/dist/tools/integrations/translator.d.ts.map +1 -0
  372. package/dist/tools/integrations/translator.js.map +1 -0
  373. package/dist/tools/integrations/trello.d.ts.map +1 -0
  374. package/dist/tools/integrations/trello.js.map +1 -0
  375. package/dist/tools/integrations/vector-search.d.ts.map +1 -0
  376. package/dist/tools/integrations/vector-search.js.map +1 -0
  377. package/dist/tools/integrations/web-scraper.d.ts.map +1 -0
  378. package/dist/tools/integrations/web-scraper.js.map +1 -0
  379. package/dist/tools/integrations/web-search.d.ts.map +1 -0
  380. package/dist/tools/integrations/web-search.js.map +1 -0
  381. package/dist/tools/integrations/webhook.d.ts.map +1 -0
  382. package/dist/tools/integrations/webhook.js.map +1 -0
  383. package/dist/tools/json-transform.d.ts.map +1 -0
  384. package/dist/tools/json-transform.js.map +1 -0
  385. package/dist/tools/mcp-client.d.ts.map +1 -0
  386. package/dist/tools/mcp-client.js.map +1 -0
  387. package/dist/tools/mcp.d.ts.map +1 -0
  388. package/dist/tools/mcp.js.map +1 -0
  389. package/dist/tools/text-analysis.d.ts.map +1 -0
  390. package/dist/tools/text-analysis.js.map +1 -0
  391. package/dist/tools/web-scraper.d.ts.map +1 -0
  392. package/dist/tools/web-scraper.js.map +1 -0
  393. package/dist/tools/web-search.d.ts.map +1 -0
  394. package/dist/tools/web-search.js.map +1 -0
  395. package/dist/traces/index.d.ts.map +1 -0
  396. package/dist/traces/index.js.map +1 -0
  397. package/dist/ui/components.d.ts.map +1 -0
  398. package/dist/ui/components.js.map +1 -0
  399. package/package.json +1 -1
  400. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -20
  401. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -14
  402. package/.github/PULL_REQUEST_TEMPLATE.md +0 -13
  403. package/.github/workflows/ci.yml +0 -24
  404. package/docs/.vitepress/config.ts +0 -103
  405. package/docs/api/cli.md +0 -48
  406. package/docs/api/oad-schema.md +0 -64
  407. package/docs/api/sdk.md +0 -80
  408. package/docs/guide/concepts.md +0 -51
  409. package/docs/guide/configuration.md +0 -79
  410. package/docs/guide/deployment.md +0 -42
  411. package/docs/guide/getting-started.md +0 -44
  412. package/docs/guide/templates.md +0 -28
  413. package/docs/guide/testing.md +0 -84
  414. package/docs/index.md +0 -27
  415. package/docs/zh/api/cli.md +0 -54
  416. package/docs/zh/api/oad-schema.md +0 -87
  417. package/docs/zh/api/sdk.md +0 -102
  418. package/docs/zh/guide/concepts.md +0 -104
  419. package/docs/zh/guide/configuration.md +0 -135
  420. package/docs/zh/guide/deployment.md +0 -81
  421. package/docs/zh/guide/getting-started.md +0 -82
  422. package/docs/zh/guide/templates.md +0 -84
  423. package/docs/zh/guide/testing.md +0 -88
  424. package/docs/zh/index.md +0 -27
  425. package/fix-sidebar.mjs +0 -188
  426. package/serve-studio.js +0 -13
  427. package/serve-test.js +0 -25
  428. package/src/analytics/index.ts +0 -66
  429. package/src/channels/dingtalk.ts +0 -46
  430. package/src/channels/discord.ts +0 -192
  431. package/src/channels/email.ts +0 -351
  432. package/src/channels/feishu.ts +0 -349
  433. package/src/channels/googlechat.ts +0 -42
  434. package/src/channels/imessage.ts +0 -32
  435. package/src/channels/index.ts +0 -15
  436. package/src/channels/irc.ts +0 -82
  437. package/src/channels/line.ts +0 -33
  438. package/src/channels/matrix.ts +0 -34
  439. package/src/channels/mattermost.ts +0 -57
  440. package/src/channels/msteams.ts +0 -33
  441. package/src/channels/nostr.ts +0 -33
  442. package/src/channels/qq.ts +0 -34
  443. package/src/channels/signal.ts +0 -33
  444. package/src/channels/slack.ts +0 -217
  445. package/src/channels/sms.ts +0 -34
  446. package/src/channels/telegram.ts +0 -616
  447. package/src/channels/twitch.ts +0 -65
  448. package/src/channels/voice-call.ts +0 -100
  449. package/src/channels/voice.ts +0 -471
  450. package/src/channels/web.ts +0 -632
  451. package/src/channels/webhook.ts +0 -199
  452. package/src/channels/websocket.ts +0 -399
  453. package/src/channels/wechat.ts +0 -329
  454. package/src/channels/whatsapp.ts +0 -33
  455. package/src/cli/chat.ts +0 -99
  456. package/src/cli/setup.ts +0 -314
  457. package/src/cli.ts +0 -2723
  458. package/src/core/a2a.ts +0 -203
  459. package/src/core/agent.ts +0 -476
  460. package/src/core/analytics-engine.ts +0 -186
  461. package/src/core/api-server.ts +0 -277
  462. package/src/core/audio.ts +0 -98
  463. package/src/core/auth.ts +0 -57
  464. package/src/core/cache.ts +0 -141
  465. package/src/core/collaboration.ts +0 -275
  466. package/src/core/compose.ts +0 -77
  467. package/src/core/config.ts +0 -14
  468. package/src/core/context-discovery.ts +0 -85
  469. package/src/core/context-refs.ts +0 -140
  470. package/src/core/errors.ts +0 -148
  471. package/src/core/gateway.ts +0 -106
  472. package/src/core/heartbeat.ts +0 -51
  473. package/src/core/hitl.ts +0 -138
  474. package/src/core/hooks.ts +0 -105
  475. package/src/core/ide-bridge.ts +0 -133
  476. package/src/core/knowledge.ts +0 -255
  477. package/src/core/logger.ts +0 -57
  478. package/src/core/node-network.ts +0 -86
  479. package/src/core/orchestrator.ts +0 -215
  480. package/src/core/performance.ts +0 -187
  481. package/src/core/profiles.ts +0 -122
  482. package/src/core/rate-limiter.ts +0 -128
  483. package/src/core/room.ts +0 -109
  484. package/src/core/runtime.ts +0 -410
  485. package/src/core/sandbox.ts +0 -344
  486. package/src/core/scheduler.ts +0 -187
  487. package/src/core/security.ts +0 -171
  488. package/src/core/session-manager.ts +0 -137
  489. package/src/core/streaming.ts +0 -195
  490. package/src/core/subagent.ts +0 -98
  491. package/src/core/types.ts +0 -68
  492. package/src/core/versioning.ts +0 -106
  493. package/src/core/vision.ts +0 -180
  494. package/src/core/watch.ts +0 -178
  495. package/src/core/workflow-graph.ts +0 -365
  496. package/src/core/workflow.ts +0 -235
  497. package/src/daemon.ts +0 -96
  498. package/src/deploy/hermes.ts +0 -156
  499. package/src/deploy/index.ts +0 -255
  500. package/src/deploy/openclaw.ts +0 -190
  501. package/src/doctor.ts +0 -156
  502. package/src/eval/index.ts +0 -211
  503. package/src/eval/suites/basic.json +0 -16
  504. package/src/eval/suites/memory.json +0 -12
  505. package/src/eval/suites/safety.json +0 -14
  506. package/src/hub/brain-seed.ts +0 -54
  507. package/src/hub/client.ts +0 -60
  508. package/src/i18n/index.ts +0 -216
  509. package/src/index.ts +0 -283
  510. package/src/mcp/servers/calculator-mcp.ts +0 -65
  511. package/src/mcp/servers/crypto-mcp.ts +0 -73
  512. package/src/mcp/servers/database-mcp.ts +0 -72
  513. package/src/mcp/servers/datetime-mcp.ts +0 -69
  514. package/src/mcp/servers/filesystem.ts +0 -66
  515. package/src/mcp/servers/github-mcp.ts +0 -58
  516. package/src/mcp/servers/index.ts +0 -63
  517. package/src/mcp/servers/json-mcp.ts +0 -102
  518. package/src/mcp/servers/memory-mcp.ts +0 -56
  519. package/src/mcp/servers/regex-mcp.ts +0 -53
  520. package/src/mcp/servers/web-mcp.ts +0 -49
  521. package/src/memory/context-compressor.ts +0 -189
  522. package/src/memory/deepbrain.ts +0 -108
  523. package/src/memory/index.ts +0 -41
  524. package/src/memory/seed-loader.ts +0 -212
  525. package/src/memory/user-profiler.ts +0 -215
  526. package/src/plugins/content-filter.ts +0 -23
  527. package/src/plugins/index.ts +0 -339
  528. package/src/plugins/logger.ts +0 -18
  529. package/src/plugins/rate-limiter.ts +0 -38
  530. package/src/protocols/a2a/client.ts +0 -132
  531. package/src/protocols/a2a/index.ts +0 -8
  532. package/src/protocols/a2a/server.ts +0 -333
  533. package/src/protocols/a2a/types.ts +0 -88
  534. package/src/protocols/a2a/utils.ts +0 -50
  535. package/src/protocols/agui/client.ts +0 -83
  536. package/src/protocols/agui/index.ts +0 -4
  537. package/src/protocols/agui/server.ts +0 -218
  538. package/src/protocols/agui/types.ts +0 -153
  539. package/src/protocols/index.ts +0 -2
  540. package/src/protocols/mcp/agent-tools.ts +0 -134
  541. package/src/protocols/mcp/index.ts +0 -8
  542. package/src/protocols/mcp/server.ts +0 -262
  543. package/src/protocols/mcp/types.ts +0 -69
  544. package/src/providers/index.ts +0 -632
  545. package/src/publish/index.ts +0 -376
  546. package/src/scheduler/cron-engine.ts +0 -191
  547. package/src/scheduler/index.ts +0 -2
  548. package/src/schema/oad.ts +0 -217
  549. package/src/security/approval.ts +0 -131
  550. package/src/security/approvals.ts +0 -143
  551. package/src/security/elevated.ts +0 -105
  552. package/src/security/guardrails.ts +0 -248
  553. package/src/security/index.ts +0 -9
  554. package/src/security/keys.ts +0 -87
  555. package/src/security/secrets.ts +0 -129
  556. package/src/skills/auto-learn.ts +0 -262
  557. package/src/skills/base.ts +0 -16
  558. package/src/skills/builtin/index.ts +0 -408
  559. package/src/skills/document.ts +0 -100
  560. package/src/skills/http.ts +0 -35
  561. package/src/skills/index.ts +0 -27
  562. package/src/skills/marketplace.ts +0 -113
  563. package/src/skills/scheduler.ts +0 -80
  564. package/src/skills/types.ts +0 -42
  565. package/src/skills/webhook-trigger.ts +0 -59
  566. package/src/studio/server.ts +0 -1791
  567. package/src/studio/templates-data.ts +0 -178
  568. package/src/studio-ui/index.html +0 -3076
  569. package/src/telemetry/index.ts +0 -324
  570. package/src/templates/code-reviewer.ts +0 -30
  571. package/src/templates/content-writer.ts +0 -58
  572. package/src/templates/customer-service.ts +0 -76
  573. package/src/templates/data-analyst.ts +0 -66
  574. package/src/templates/executive-assistant.ts +0 -71
  575. package/src/templates/financial-advisor.ts +0 -60
  576. package/src/templates/hr-recruiter.ts +0 -58
  577. package/src/templates/knowledge-base.ts +0 -27
  578. package/src/templates/legal-assistant.ts +0 -71
  579. package/src/templates/project-manager.ts +0 -58
  580. package/src/templates/sales-assistant.ts +0 -75
  581. package/src/templates/teacher.ts +0 -75
  582. package/src/testing/index.ts +0 -181
  583. package/src/tools/builtin/browser.ts +0 -299
  584. package/src/tools/builtin/datetime.ts +0 -41
  585. package/src/tools/builtin/file.ts +0 -107
  586. package/src/tools/builtin/home-assistant.ts +0 -116
  587. package/src/tools/builtin/index.ts +0 -37
  588. package/src/tools/builtin/rl-tools.ts +0 -243
  589. package/src/tools/builtin/shell.ts +0 -43
  590. package/src/tools/builtin/vision.ts +0 -64
  591. package/src/tools/builtin/web-search.ts +0 -126
  592. package/src/tools/builtin/web.ts +0 -35
  593. package/src/tools/calculator.ts +0 -73
  594. package/src/tools/datetime.ts +0 -149
  595. package/src/tools/document-processor.ts +0 -213
  596. package/src/tools/gateway.ts +0 -220
  597. package/src/tools/image-generator.ts +0 -150
  598. package/src/tools/integrations/calendar.ts +0 -73
  599. package/src/tools/integrations/code-exec.ts +0 -39
  600. package/src/tools/integrations/csv-analyzer.ts +0 -92
  601. package/src/tools/integrations/database.ts +0 -44
  602. package/src/tools/integrations/email-send.ts +0 -76
  603. package/src/tools/integrations/git-tool.ts +0 -42
  604. package/src/tools/integrations/github-tool.ts +0 -76
  605. package/src/tools/integrations/image-gen.ts +0 -56
  606. package/src/tools/integrations/index.ts +0 -92
  607. package/src/tools/integrations/jira.ts +0 -83
  608. package/src/tools/integrations/notion.ts +0 -71
  609. package/src/tools/integrations/npm-tool.ts +0 -48
  610. package/src/tools/integrations/pdf-reader.ts +0 -58
  611. package/src/tools/integrations/slack.ts +0 -65
  612. package/src/tools/integrations/summarizer.ts +0 -49
  613. package/src/tools/integrations/translator.ts +0 -48
  614. package/src/tools/integrations/trello.ts +0 -60
  615. package/src/tools/integrations/vector-search.ts +0 -42
  616. package/src/tools/integrations/web-scraper.ts +0 -47
  617. package/src/tools/integrations/web-search.ts +0 -58
  618. package/src/tools/integrations/webhook.ts +0 -38
  619. package/src/tools/json-transform.ts +0 -187
  620. package/src/tools/mcp-client.ts +0 -131
  621. package/src/tools/mcp.ts +0 -76
  622. package/src/tools/text-analysis.ts +0 -116
  623. package/src/tools/web-scraper.ts +0 -179
  624. package/src/tools/web-search.ts +0 -180
  625. package/src/traces/index.ts +0 -132
  626. package/src/types/agent-workstation.d.ts +0 -2
  627. package/src/ui/components.ts +0 -127
  628. package/srv-err.txt +0 -0
  629. package/srv-out.txt +0 -1
  630. package/test-agent/Dockerfile +0 -9
  631. package/test-agent/README.md +0 -50
  632. package/test-agent/agent.yaml +0 -23
  633. package/test-agent/docker-compose.yml +0 -11
  634. package/test-agent/oad.yaml +0 -31
  635. package/test-agent/package-lock.json +0 -1492
  636. package/test-agent/package.json +0 -18
  637. package/test-agent/src/index.ts +0 -24
  638. package/test-agent/src/skills/echo.ts +0 -15
  639. package/test-agent/tsconfig.json +0 -25
  640. package/test-full.js +0 -43
  641. package/test-sidebar.js +0 -22
  642. package/test-studio3.js +0 -75
  643. package/test-studio4.js +0 -41
  644. package/tests/a2a-protocol.test.ts +0 -285
  645. package/tests/a2a.test.ts +0 -66
  646. package/tests/agent.test.ts +0 -72
  647. package/tests/agui-protocol.test.ts +0 -246
  648. package/tests/analytics.test.ts +0 -50
  649. package/tests/api-server.test.ts +0 -148
  650. package/tests/approvals.test.ts +0 -89
  651. package/tests/audio.test.ts +0 -40
  652. package/tests/auto-learn.test.ts +0 -105
  653. package/tests/brain-seed-extended.test.ts +0 -490
  654. package/tests/brain-seed.test.ts +0 -239
  655. package/tests/browser.test.ts +0 -179
  656. package/tests/builtin-tools.test.ts +0 -83
  657. package/tests/channel.test.ts +0 -39
  658. package/tests/channels/discord.test.ts +0 -79
  659. package/tests/channels/email.test.ts +0 -148
  660. package/tests/channels/feishu.test.ts +0 -123
  661. package/tests/channels/telegram.test.ts +0 -129
  662. package/tests/channels/websocket.test.ts +0 -53
  663. package/tests/channels/wechat.test.ts +0 -170
  664. package/tests/channels-extra.test.ts +0 -45
  665. package/tests/chat-cli.test.ts +0 -160
  666. package/tests/cli.test.ts +0 -46
  667. package/tests/collaboration.test.ts +0 -319
  668. package/tests/context-compressor.test.ts +0 -172
  669. package/tests/context-refs.test.ts +0 -121
  670. package/tests/cron-engine.test.ts +0 -101
  671. package/tests/daemon.test.ts +0 -135
  672. package/tests/deepbrain-wire.test.ts +0 -234
  673. package/tests/deploy-and-dag.test.ts +0 -196
  674. package/tests/doctor.test.ts +0 -38
  675. package/tests/document-processor.test.ts +0 -69
  676. package/tests/e2e-nocode.test.ts +0 -442
  677. package/tests/e2e.test.ts +0 -134
  678. package/tests/elevated.test.ts +0 -69
  679. package/tests/errors.test.ts +0 -83
  680. package/tests/eval.test.ts +0 -173
  681. package/tests/gateway.test.ts +0 -63
  682. package/tests/guardrails.test.ts +0 -177
  683. package/tests/hitl.test.ts +0 -71
  684. package/tests/home-assistant.test.ts +0 -40
  685. package/tests/hooks.test.ts +0 -79
  686. package/tests/i18n.test.ts +0 -41
  687. package/tests/ide-bridge.test.ts +0 -38
  688. package/tests/image-generator.test.ts +0 -84
  689. package/tests/init-role.test.ts +0 -124
  690. package/tests/integrations.test.ts +0 -249
  691. package/tests/mcp-client.test.ts +0 -92
  692. package/tests/mcp-server.test.ts +0 -178
  693. package/tests/mcp-servers.test.ts +0 -260
  694. package/tests/mcp.test.ts +0 -54
  695. package/tests/node-network.test.ts +0 -74
  696. package/tests/oad.test.ts +0 -68
  697. package/tests/performance.test.ts +0 -115
  698. package/tests/plugin-a2a-enhanced.test.ts +0 -230
  699. package/tests/plugin.test.ts +0 -74
  700. package/tests/profiles.test.ts +0 -61
  701. package/tests/publish.test.ts +0 -231
  702. package/tests/rl-tools.test.ts +0 -93
  703. package/tests/room.test.ts +0 -106
  704. package/tests/runtime.test.ts +0 -42
  705. package/tests/sandbox-manager.test.ts +0 -46
  706. package/tests/sandbox.test.ts +0 -46
  707. package/tests/scheduler.test.ts +0 -200
  708. package/tests/secrets.test.ts +0 -107
  709. package/tests/security-enhanced.test.ts +0 -233
  710. package/tests/security.test.ts +0 -60
  711. package/tests/settings-api.test.ts +0 -148
  712. package/tests/setup.test.ts +0 -73
  713. package/tests/skill-learner.test.ts +0 -161
  714. package/tests/streaming.test.ts +0 -109
  715. package/tests/studio.test.ts +0 -402
  716. package/tests/subagent.test.ts +0 -193
  717. package/tests/telegram-discord.test.ts +0 -60
  718. package/tests/telemetry.test.ts +0 -186
  719. package/tests/templates.test.ts +0 -77
  720. package/tests/tools/builtin-extended.test.ts +0 -138
  721. package/tests/user-profiler.test.ts +0 -169
  722. package/tests/v070.test.ts +0 -76
  723. package/tests/v090-features.test.ts +0 -254
  724. package/tests/versioning.test.ts +0 -75
  725. package/tests/vision.test.ts +0 -61
  726. package/tests/voice-call.test.ts +0 -47
  727. package/tests/voice-enhanced.test.ts +0 -169
  728. package/tests/voice-interaction.test.ts +0 -38
  729. package/tests/voice.test.ts +0 -61
  730. package/tests/web-search.test.ts +0 -155
  731. package/tests/webhook.test.ts +0 -29
  732. package/tests/workflow-graph.test.ts +0 -279
  733. package/tests/workflow.test.ts +0 -143
  734. package/tmp-js-test.js +0 -1532
  735. package/tmp-sc.js +0 -1716
  736. package/tutorial/customer-service-agent/README.md +0 -612
  737. package/tutorial/customer-service-agent/SOUL.md +0 -26
  738. package/tutorial/customer-service-agent/agent.yaml +0 -63
  739. package/tutorial/customer-service-agent/package.json +0 -19
  740. package/tutorial/customer-service-agent/src/index.ts +0 -69
  741. package/tutorial/customer-service-agent/src/skills/faq.ts +0 -27
  742. package/tutorial/customer-service-agent/src/skills/ticket.ts +0 -22
  743. package/tutorial/customer-service-agent/tsconfig.json +0 -14
  744. package/vitest.config.ts +0 -9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js CHANGED
@@ -37,6 +37,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
37
37
  const commander_1 = require("commander");
38
38
  const fs = __importStar(require("fs"));
39
39
  const path = __importStar(require("path"));
40
+ const os = __importStar(require("os"));
40
41
  const yaml = __importStar(require("js-yaml"));
41
42
  const readline = __importStar(require("readline"));
42
43
  const runtime_1 = require("./core/runtime");
@@ -124,7 +125,7 @@ async function select(question, options) {
124
125
  program
125
126
  .name('opc')
126
127
  .description('OPC Agent - Open Agent Framework for business workstations')
127
- .version('2.0.0');
128
+ .version(require('../package.json').version);
128
129
  // ── Init command ─────────────────────────────────────────────
129
130
  program
130
131
  .command('init')
@@ -186,7 +187,7 @@ program
186
187
  }
187
188
  const roleDisplayName = roleMeta.name || matched.role;
188
189
  const roleDescription = roleMeta.name_zh ? `${roleMeta.name} (${roleMeta.name_zh})` : (roleMeta.name || matched.role);
189
- console.log(` ${icon.info} Matched role: ${color.cyan(matched.category + '/' + matched.role)} ${roleDisplayName}`);
190
+ console.log(` ${icon.info} Matched role: ${color.cyan(matched.category + '/' + matched.role)} - ${roleDisplayName}`);
190
191
  // Create directories
191
192
  fs.mkdirSync(dir, { recursive: true });
192
193
  fs.mkdirSync(path.join(dir, 'src', 'skills'), { recursive: true });
@@ -205,9 +206,9 @@ program
205
206
  // Company-specific knowledge belongs to Desk (closed-source), not here.
206
207
  const workstationSeedFromRole = workstationMatch?.[0]?.trim() || '';
207
208
  fs.writeFileSync(path.join(dir, 'brain-seeds', 'workstation.md'), workstationSeedFromRole || `# Workstation Knowledge\n\n## Tools & Environment\n\nCommon tools and setup for this workstation role.\n\n## Workflows\n\nStandard operating procedures and workflows.\n\n## Best Practices\n\nIndustry best practices for this role.\n`);
208
- // agent.yaml with role system prompt and brain seeds
209
+ // oad.yaml with role system prompt and brain seeds(不再生成 agent.yaml)
209
210
  const firstLine = systemPromptContent.split('\n').find((l) => l.trim() && !l.startsWith('#'))?.trim() || 'You are a helpful AI assistant.';
210
- fs.writeFileSync(path.join(dir, 'agent.yaml'), `apiVersion: opc/v1
211
+ fs.writeFileSync(path.join(dir, 'oad.yaml'), `apiVersion: opc/v1
211
212
  kind: Agent
212
213
  metadata:
213
214
  name: ${name}
@@ -251,14 +252,14 @@ spec:
251
252
  if (roleData.files['oad.yaml']) {
252
253
  fs.writeFileSync(path.join(dir, 'oad.yaml'), roleData.files['oad.yaml']);
253
254
  }
254
- // src/index.ts entry point (same as generic)
255
+ // src/index.ts - entry point (same as generic)
255
256
  fs.writeFileSync(path.join(dir, 'src', 'index.ts'), `import { AgentRuntime } from 'opc-agent';
256
257
  import { EchoSkill } from './skills/echo';
257
258
  import { readFileSync, existsSync } from 'fs';
258
259
 
259
260
  async function main() {
260
261
  const runtime = new AgentRuntime();
261
- const config = await runtime.loadConfig('./agent.yaml');
262
+ const config = await runtime.loadConfig('./oad.yaml');
262
263
 
263
264
  const soul = existsSync('./SOUL.md') ? readFileSync('./SOUL.md', 'utf-8') : '';
264
265
  const context = existsSync('./CONTEXT.md') ? readFileSync('./CONTEXT.md', 'utf-8') : '';
@@ -305,15 +306,15 @@ export class EchoSkill extends BaseSkill {
305
306
  fs.writeFileSync(path.join(dir, 'package.json'), JSON.stringify({ name, version: '1.0.0', private: true, scripts: { start: 'opc run', dev: 'opc dev', chat: 'opc chat', build: 'tsc' }, dependencies: { 'opc-agent': '^1.3.0' }, devDependencies: { typescript: '^5.5.0', tsx: '^4.0.0' } }, null, 2));
306
307
  // .gitignore, .env.example, .env
307
308
  fs.writeFileSync(path.join(dir, '.gitignore'), 'node_modules\ndist\n.env\n.opc-knowledge.json\ndata/\n');
308
- fs.writeFileSync(path.join(dir, '.env.example'), `# LLM API Configuration\nOPC_LLM_API_KEY=your-api-key-here\nOPC_LLM_BASE_URL=https://api.openai.com/v1\nOPC_LLM_MODEL=gpt-4o-mini\n`);
309
- fs.writeFileSync(path.join(dir, '.env'), `OPC_LLM_API_KEY=your-api-key-here\nOPC_LLM_BASE_URL=https://api.openai.com/v1\nOPC_LLM_MODEL=gpt-4o-mini\n`);
309
+ fs.writeFileSync(path.join(dir, '.env.example'), `# LLM API Configuration\n# Ollama (免费本地,默认,无需 API key):\nOPC_LLM_BASE_URL=http://localhost:11434/v1\nOPC_LLM_MODEL=qwen2.5\n\n# 如需使用商业模型,取消以下注释:\n# OPC_LLM_API_KEY=your-api-key-here\n# OPC_LLM_BASE_URL=https://api.deepseek.com/v1\n# OPC_LLM_MODEL=deepseek-chat\n`);
310
+ fs.writeFileSync(path.join(dir, '.env'), `# Ollama (免费本地) - 无需 API key\nOPC_LLM_BASE_URL=http://localhost:11434/v1\nOPC_LLM_MODEL=qwen2.5\n`);
310
311
  // README.md
311
312
  fs.writeFileSync(path.join(dir, 'README.md'), `# ${name}\n\nCreated with [OPC Agent](https://github.com/Deepleaper/opc-agent) using the \`${matched.category}/${matched.role}\` workstation role.\n\n## Quick Start\n\n\`\`\`bash\nnpm install\nollama pull qwen2.5\nnpx tsx src/index.ts\n\`\`\`\n\nOpen [http://localhost:3000](http://localhost:3000)\n`);
312
313
  // Dockerfile + docker-compose
313
- fs.writeFileSync(path.join(dir, 'Dockerfile'), `FROM node:22-alpine\nWORKDIR /app\nCOPY package.json package-lock.json* ./\nRUN npm ci --production 2>/dev/null || npm install --production\nCOPY oad.yaml agent.yaml .env* ./\nCOPY src/ ./src/\nCOPY prompts/ ./prompts/ 2>/dev/null || true\nEXPOSE 3000\nCMD ["npx", "opc", "run"]\n`);
314
- fs.writeFileSync(path.join(dir, 'docker-compose.yml'), `version: '3.8'\nservices:\n agent:\n build: .\n ports:\n - "3000:3000"\n env_file:\n - .env\n volumes:\n - ./agent.yaml:/app/agent.yaml:ro\n restart: unless-stopped\n`);
314
+ fs.writeFileSync(path.join(dir, 'Dockerfile'), `FROM node:22-alpine\nWORKDIR /app\nCOPY package.json package-lock.json* ./\nRUN npm ci --production 2>/dev/null || npm install --production\nCOPY oad.yaml .env* ./\nCOPY src/ ./src/\nCOPY prompts/ ./prompts/ 2>/dev/null || true\nEXPOSE 3000\nCMD ["npx", "opc", "run"]\n`);
315
+ fs.writeFileSync(path.join(dir, 'docker-compose.yml'), `version: '3.8'\nservices:\n agent:\n build: .\n ports:\n - "3000:3000"\n env_file:\n - .env\n volumes:\n - ./oad.yaml:/app/oad.yaml:ro\n restart: unless-stopped\n`);
315
316
  console.log(`\n${icon.success} Created agent project: ${color.bold(name + '/')} from role ${color.cyan(matched.category + '/' + matched.role)}`);
316
- console.log(` ${icon.file} agent.yaml - Agent definition with role system prompt`);
317
+ console.log(` ${icon.file} oad.yaml - Agent definition with role system prompt`);
317
318
  console.log(` ${icon.file} SOUL.md - Role personality (${systemPromptContent.split('\n').length} lines)`);
318
319
  console.log(` ${icon.file} CONTEXT.md - Role context & documentation`);
319
320
  console.log(` ${icon.file} brain-seeds/ - 3-tier brain seed knowledge`);
@@ -344,7 +345,7 @@ export class EchoSkill extends BaseSkill {
344
345
  }
345
346
  }
346
347
  catch {
347
- // Hub unreachable fall back to bundled templates
348
+ // Hub unreachable - fall back to bundled templates
348
349
  }
349
350
  let template;
350
351
  let selectedHubTemplate;
@@ -364,6 +365,176 @@ export class EchoSkill extends BaseSkill {
364
365
  else {
365
366
  template = await select('Select a template:', Object.entries(TEMPLATES).map(([value, { label }]) => ({ value, label })));
366
367
  }
368
+ // ── 硬件检测 + 智能模型推荐 ──
369
+ const totalRAM = Math.round(os.totalmem() / (1024 ** 3)); // GB
370
+ const freeMem = Math.round(os.freemem() / (1024 ** 3));
371
+ const cpuCount = os.cpus().length;
372
+ const MODEL_RECOMMENDATIONS = [
373
+ // Tier 1: 超轻量 (≤4GB RAM)
374
+ { name: 'qwen2.5:0.5b', size: '0.4GB', minRAM: 2, desc: '超轻量,适合低配机器', priority: 1 },
375
+ { name: 'qwen2.5:1.5b', size: '1.0GB', minRAM: 4, desc: '轻量但更智能', priority: 2 },
376
+ // Tier 2: 轻量 (4-8GB RAM)
377
+ { name: 'qwen2.5:3b', size: '2.0GB', minRAM: 6, desc: '性价比最优', priority: 3 },
378
+ { name: 'llama3.2:3b', size: '2.0GB', minRAM: 6, desc: 'Meta 最新轻量模型', priority: 3 },
379
+ { name: 'phi3:mini', size: '2.3GB', minRAM: 6, desc: '微软高效小模型', priority: 3 },
380
+ // Tier 3: 标准 (8-16GB RAM)
381
+ { name: 'qwen2.5:7b', size: '4.7GB', minRAM: 8, desc: '推荐:中文最强 7B', priority: 4 },
382
+ { name: 'llama3.1:8b', size: '4.7GB', minRAM: 8, desc: 'Meta 通用 8B', priority: 4 },
383
+ { name: 'mistral:7b', size: '4.1GB', minRAM: 8, desc: 'Mistral 经典 7B', priority: 4 },
384
+ { name: 'gemma2:9b', size: '5.4GB', minRAM: 10, desc: 'Google 高效 9B', priority: 4 },
385
+ // Tier 4: 高配 (16-32GB RAM)
386
+ { name: 'qwen2.5:14b', size: '9.0GB', minRAM: 16, desc: '中文强力 14B', priority: 5 },
387
+ { name: 'deepseek-coder-v2:16b', size: '9.0GB', minRAM: 16, desc: '编程专用', priority: 5 },
388
+ // Tier 5: 旗舰 (32GB+ RAM)
389
+ { name: 'qwen2.5:32b', size: '20GB', minRAM: 32, desc: '接近 GPT-4 水平', priority: 6 },
390
+ { name: 'llama3.1:70b', size: '40GB', minRAM: 64, desc: '开源最强', priority: 7 },
391
+ ];
392
+ // 根据可用内存筛选合适的模型
393
+ const suitableModels = MODEL_RECOMMENDATIONS.filter(m => m.minRAM <= freeMem + 2); // +2GB 容差
394
+ const bestRec = suitableModels.length > 0 ? suitableModels[suitableModels.length - 1] : MODEL_RECOMMENDATIONS[0];
395
+ // ── LLM Provider 选择(Ollama-first)──
396
+ let llmProvider = 'ollama';
397
+ let llmModel = 'qwen2.5';
398
+ let llmBaseUrl = 'http://localhost:11434/v1';
399
+ let llmApiKey = '';
400
+ let ollamaRunning = false;
401
+ let modelNames = [];
402
+ // 无论 --yes 还是交互式,都先检测 Ollama
403
+ try {
404
+ const controller = new AbortController();
405
+ const ollamaTimeout = setTimeout(() => controller.abort(), 3000);
406
+ const ollamaRes = await fetch('http://localhost:11434/api/tags', { signal: controller.signal });
407
+ clearTimeout(ollamaTimeout);
408
+ const ollamaData = await ollamaRes.json();
409
+ modelNames = (ollamaData.models || []).map((m) => m.name || m.model);
410
+ ollamaRunning = true;
411
+ if (opts.yes && modelNames.length > 0) {
412
+ // --yes 模式:优先用推荐模型(如果已安装),否则用第一个已有模型
413
+ const bestInstalled = suitableModels.reverse().find(m => modelNames.includes(m.name));
414
+ llmModel = bestInstalled ? bestInstalled.name : modelNames[0];
415
+ }
416
+ }
417
+ catch {
418
+ ollamaRunning = false;
419
+ }
420
+ if (!opts.yes) {
421
+ if (ollamaRunning) {
422
+ console.log(`\n ${icon.info} ${color.dim('正在检测 Ollama...')}`);
423
+ console.log(` ${icon.success} Ollama 已运行,发现 ${modelNames.length} 个模型`);
424
+ console.log(` ${icon.info} 系统: ${totalRAM}GB RAM (${freeMem}GB 可用), ${cpuCount} CPU cores`);
425
+ console.log(` ${icon.info} 推荐模型: ${color.cyan(bestRec.name)} (${bestRec.size}) - ${bestRec.desc}`);
426
+ // 选择 provider
427
+ llmProvider = await select('选择 LLM 引擎:', [
428
+ { value: 'ollama', label: '🟢 Ollama (免费本地,推荐) - 已检测到运行中' },
429
+ { value: 'deepseek', label: '🔵 DeepSeek - 高性价比国产模型' },
430
+ { value: 'openai', label: '⚪ OpenAI (GPT-4o)' },
431
+ { value: 'anthropic', label: '🟣 Anthropic (Claude)' },
432
+ { value: 'custom', label: '⚙️ 自定义 (手动输入 Base URL)' },
433
+ ]);
434
+ if (llmProvider === 'ollama') {
435
+ // 已有模型 + 推荐未下载的模型
436
+ const existingSet = new Set(modelNames);
437
+ const recommendedNotInstalled = suitableModels.filter(m => !existingSet.has(m.name)).slice(-3); // 推荐最多3个未下载的
438
+ const modelOptions = [
439
+ ...modelNames.map((m) => {
440
+ const rec = MODEL_RECOMMENDATIONS.find(r => r.name === m);
441
+ const recLabel = rec ? ` (${rec.size}, ${rec.desc})` : '';
442
+ const isBest = m === bestRec.name ? ' ⭐推荐' : '';
443
+ return { value: m, label: `${m}${recLabel}${isBest} [已安装]` };
444
+ }),
445
+ ...recommendedNotInstalled.map(m => ({
446
+ value: `pull:${m.name}`,
447
+ label: `${m.name} (${m.size}, ${m.desc}) [需下载]`,
448
+ })),
449
+ ];
450
+ if (modelOptions.length > 0) {
451
+ const chosen = await select('选择 Ollama 模型:', modelOptions);
452
+ if (chosen.startsWith('pull:')) {
453
+ const pullModel = chosen.slice(5);
454
+ console.log(`\n ${icon.info} 正在下载 ${color.cyan(pullModel)}...`);
455
+ console.log(` 运行 ${color.cyan(`ollama pull ${pullModel}`)} 下载`);
456
+ console.log(` 下载完成后运行 ${color.cyan('opc run')} 启动\n`);
457
+ llmModel = pullModel;
458
+ }
459
+ else {
460
+ llmModel = chosen;
461
+ }
462
+ }
463
+ else {
464
+ // 没有本地模型,推荐下载
465
+ console.log(` ${color.yellow('⚠️')} 没有发现已下载的模型`);
466
+ console.log(` ${icon.info} 根据你的硬件 (${freeMem}GB 可用),推荐下载:`);
467
+ for (const m of suitableModels.slice(-3)) {
468
+ console.log(` ${color.cyan(`ollama pull ${m.name}`)} (${m.size}, ${m.desc})`);
469
+ }
470
+ llmModel = bestRec.name;
471
+ }
472
+ }
473
+ }
474
+ else {
475
+ // Ollama not running
476
+ console.log(`\n ${icon.info} ${color.dim('正在检测 Ollama...')}`);
477
+ console.log(` ${color.yellow('⚠️')} Ollama 未运行或未安装`);
478
+ llmProvider = await select('选择 LLM 引擎:', [
479
+ { value: 'ollama', label: '🟢 Ollama (免费本地,推荐) - 需先安装: https://ollama.ai' },
480
+ { value: 'deepseek', label: '🔵 DeepSeek - 高性价比国产模型' },
481
+ { value: 'openai', label: '⚪ OpenAI (GPT-4o)' },
482
+ { value: 'anthropic', label: '🟣 Anthropic (Claude)' },
483
+ { value: 'custom', label: '⚙️ 自定义 (手动输入 Base URL)' },
484
+ ]);
485
+ if (llmProvider === 'ollama') {
486
+ console.log(`\n ${icon.info} Ollama 安装指南:`);
487
+ console.log(` 1. 访问 ${color.cyan('https://ollama.ai')} 下载并安装`);
488
+ console.log(` ${icon.info} 根据你的硬件 (${totalRAM}GB RAM, ${freeMem}GB 可用),推荐:`);
489
+ for (const m of suitableModels.slice(-3)) {
490
+ console.log(` ${color.cyan(`ollama pull ${m.name}`)} (${m.size}, ${m.desc})`);
491
+ }
492
+ console.log(` 3. 然后 ${color.cyan('opc run')} 即可开始对话\n`);
493
+ llmModel = bestRec.name;
494
+ }
495
+ }
496
+ // 商业模型需要 API key
497
+ if (llmProvider === 'deepseek') {
498
+ llmBaseUrl = 'https://api.deepseek.com/v1';
499
+ llmModel = 'deepseek-chat';
500
+ llmApiKey = await promptUser('输入 DeepSeek API Key (可稍后在 .env 中配置,直接回车跳过)');
501
+ if (!llmApiKey) {
502
+ console.log(` ${icon.info} 稍后在 ${color.cyan('.env')} 文件中设置 ${color.bold('OPC_LLM_API_KEY')}`);
503
+ }
504
+ }
505
+ else if (llmProvider === 'openai') {
506
+ llmBaseUrl = 'https://api.openai.com/v1';
507
+ llmModel = 'gpt-4o-mini';
508
+ llmApiKey = await promptUser('输入 OpenAI API Key (可稍后在 .env 中配置,直接回车跳过)');
509
+ if (!llmApiKey) {
510
+ console.log(` ${icon.info} 稍后在 ${color.cyan('.env')} 文件中设置 ${color.bold('OPC_LLM_API_KEY')}`);
511
+ }
512
+ }
513
+ else if (llmProvider === 'anthropic') {
514
+ llmBaseUrl = 'https://api.anthropic.com/v1';
515
+ llmModel = 'claude-sonnet-4-20250514';
516
+ llmApiKey = await promptUser('输入 Anthropic API Key (可稍后在 .env 中配置,直接回车跳过)');
517
+ if (!llmApiKey) {
518
+ console.log(` ${icon.info} 稍后在 ${color.cyan('.env')} 文件中设置 ${color.bold('OPC_LLM_API_KEY')}`);
519
+ }
520
+ }
521
+ else if (llmProvider === 'custom') {
522
+ llmBaseUrl = await promptUser('输入 Base URL', 'http://localhost:11434/v1');
523
+ llmModel = await promptUser('输入模型名称', 'qwen2.5');
524
+ llmApiKey = await promptUser('输入 API Key (可选,直接回车跳过)');
525
+ // 尝试推断 provider
526
+ if (llmBaseUrl.includes('deepseek.com'))
527
+ llmProvider = 'deepseek';
528
+ else if (llmBaseUrl.includes('openai.com'))
529
+ llmProvider = 'openai';
530
+ else if (llmBaseUrl.includes('anthropic.com'))
531
+ llmProvider = 'anthropic';
532
+ else if (llmBaseUrl.includes('localhost:11434'))
533
+ llmProvider = 'ollama';
534
+ else
535
+ llmProvider = 'openai'; // OpenAI-compatible fallback
536
+ }
537
+ }
367
538
  const dir = path.resolve(name);
368
539
  if (fs.existsSync(dir)) {
369
540
  console.error(`\n${icon.error} Directory ${color.bold(name)} already exists.`);
@@ -374,37 +545,16 @@ export class EchoSkill extends BaseSkill {
374
545
  const factory = TEMPLATES[template]?.factory ?? customer_service_1.createCustomerServiceConfig;
375
546
  const config = factory();
376
547
  config.metadata.name = name;
548
+ // 用用户选择的 provider 和 model 覆盖模板默认值
549
+ config.spec.model = llmModel;
550
+ config.spec.provider = { default: llmProvider };
377
551
  // Ensure web channel exists
378
552
  if (!config.spec.channels.some((c) => c.type === 'web')) {
379
553
  config.spec.channels.push({ type: 'web', port: 3000 });
380
554
  }
555
+ // 只生成 oad.yaml,不生成 agent.yaml
381
556
  fs.writeFileSync(path.join(dir, 'oad.yaml'), yaml.dump(config, { lineWidth: 120 }));
382
- // agent.yaml standalone OAD config for runtime usage
383
- fs.writeFileSync(path.join(dir, 'agent.yaml'), `apiVersion: opc/v1
384
- kind: Agent
385
- metadata:
386
- name: ${name}
387
- version: 1.0.0
388
- description: My AI Agent
389
- spec:
390
- model: qwen2.5
391
- provider:
392
- default: ollama
393
- systemPrompt: |
394
- You are a helpful AI assistant named ${name}.
395
- Be concise, helpful, and friendly.
396
- channels:
397
- - type: web
398
- port: 3000
399
- memory:
400
- shortTerm: true
401
- longTerm:
402
- provider: deepbrain
403
- skills:
404
- - name: echo
405
- description: Echo test skill
406
- `);
407
- // src/index.ts — entry point
557
+ // src/index.ts - entry point
408
558
  fs.writeFileSync(path.join(dir, 'src', 'index.ts'), `import { AgentRuntime } from 'opc-agent';
409
559
  import { EchoSkill } from './skills/echo';
410
560
  import { readFileSync, existsSync } from 'fs';
@@ -413,7 +563,7 @@ async function main() {
413
563
  const runtime = new AgentRuntime();
414
564
 
415
565
  // Load OAD config
416
- const config = await runtime.loadConfig('./agent.yaml');
566
+ const config = await runtime.loadConfig('./oad.yaml');
417
567
 
418
568
  // Load personality and context files
419
569
  const soul = existsSync('./SOUL.md') ? readFileSync('./SOUL.md', 'utf-8') : '';
@@ -439,7 +589,7 @@ async function main() {
439
589
 
440
590
  main().catch(console.error);
441
591
  `);
442
- // src/skills/echo.ts example skill
592
+ // src/skills/echo.ts - example skill
443
593
  fs.writeFileSync(path.join(dir, 'src', 'skills', 'echo.ts'), `import { BaseSkill } from 'opc-agent';
444
594
  import type { AgentContext, Message, SkillResult } from 'opc-agent';
445
595
 
@@ -477,23 +627,39 @@ export class EchoSkill extends BaseSkill {
477
627
  }, null, 2));
478
628
  // .env.example
479
629
  fs.writeFileSync(path.join(dir, '.env.example'), `# LLM API Configuration
480
- OPC_LLM_API_KEY=your-api-key-here
481
- OPC_LLM_BASE_URL=https://api.openai.com/v1
482
- OPC_LLM_MODEL=gpt-4o-mini
630
+ # Ollama (免费本地,默认):
631
+ # OPC_LLM_BASE_URL=http://localhost:11434/v1
632
+ # OPC_LLM_MODEL=qwen2.5
633
+ # (Ollama 无需 API key)
483
634
 
484
- # For DeepSeek:
635
+ # DeepSeek:
636
+ # OPC_LLM_API_KEY=your-deepseek-key
485
637
  # OPC_LLM_BASE_URL=https://api.deepseek.com/v1
486
638
  # OPC_LLM_MODEL=deepseek-chat
487
639
 
488
- # For local Ollama (default in agent.yaml):
489
- # OPC_LLM_BASE_URL=http://localhost:11434/v1
490
- # OPC_LLM_MODEL=qwen2.5
491
- `);
492
- // .env (copy of example)
493
- fs.writeFileSync(path.join(dir, '.env'), `OPC_LLM_API_KEY=your-api-key-here
494
- OPC_LLM_BASE_URL=https://api.openai.com/v1
495
- OPC_LLM_MODEL=gpt-4o-mini
640
+ # OpenAI:
641
+ # OPC_LLM_API_KEY=your-openai-key
642
+ # OPC_LLM_BASE_URL=https://api.openai.com/v1
643
+ # OPC_LLM_MODEL=gpt-4o-mini
644
+
645
+ # Anthropic:
646
+ # OPC_LLM_API_KEY=your-anthropic-key
647
+ # OPC_LLM_BASE_URL=https://api.anthropic.com/v1
648
+ # OPC_LLM_MODEL=claude-sonnet-4-20250514
496
649
  `);
650
+ // .env - 根据用户选择生成正确的配置
651
+ const envLines = [];
652
+ if (llmProvider === 'ollama') {
653
+ envLines.push('# Ollama (免费本地) - 无需 API key');
654
+ envLines.push(`OPC_LLM_BASE_URL=${llmBaseUrl}`);
655
+ envLines.push(`OPC_LLM_MODEL=${llmModel}`);
656
+ }
657
+ else {
658
+ envLines.push(`OPC_LLM_API_KEY=${llmApiKey || 'your-api-key-here'}`);
659
+ envLines.push(`OPC_LLM_BASE_URL=${llmBaseUrl}`);
660
+ envLines.push(`OPC_LLM_MODEL=${llmModel}`);
661
+ }
662
+ fs.writeFileSync(path.join(dir, '.env'), envLines.join('\n') + '\n');
497
663
  // package.json
498
664
  fs.writeFileSync(path.join(dir, 'package.json'), JSON.stringify({
499
665
  name,
@@ -520,7 +686,7 @@ OPC_LLM_MODEL=gpt-4o-mini
520
686
  WORKDIR /app
521
687
  COPY package.json package-lock.json* ./
522
688
  RUN npm ci --production 2>/dev/null || npm install --production
523
- COPY oad.yaml agent.yaml .env* ./
689
+ COPY oad.yaml .env* ./
524
690
  COPY src/ ./src/
525
691
  COPY prompts/ ./prompts/ 2>/dev/null || true
526
692
  EXPOSE 3000
@@ -536,7 +702,7 @@ services:
536
702
  env_file:
537
703
  - .env
538
704
  volumes:
539
- - ./agent.yaml:/app/agent.yaml:ro
705
+ - ./oad.yaml:/app/oad.yaml:ro
540
706
  restart: unless-stopped
541
707
  `);
542
708
  // README.md
@@ -577,8 +743,7 @@ npx opc chat # CLI chat
577
743
 
578
744
  \`\`\`
579
745
  ${name}/
580
- ├── agent.yaml # OAD agent config (used by src/index.ts)
581
- ├── oad.yaml # OAD config (used by opc CLI)
746
+ ├── oad.yaml # Agent 配置 (唯一配置文件)
582
747
  ├── src/
583
748
  │ ├── index.ts # Entry point
584
749
  │ └── skills/
@@ -589,9 +754,9 @@ ${name}/
589
754
 
590
755
  ## Configuration
591
756
 
592
- Edit \`agent.yaml\` to customize your agent's personality, skills, and behavior.
757
+ Edit \`oad.yaml\` to customize your agent's personality, skills, and behavior.
593
758
  `);
594
- // SOUL.md agent personality
759
+ // SOUL.md - agent personality
595
760
  const createdDate = new Date().toISOString().split('T')[0];
596
761
  fs.writeFileSync(path.join(dir, 'SOUL.md'), `# ${name} Personality
597
762
 
@@ -607,7 +772,7 @@ Edit \`agent.yaml\` to customize your agent's personality, skills, and behavior.
607
772
 
608
773
  ## Communication Style
609
774
  - Use clear, simple language
610
- - Be direct answer the question first, then explain
775
+ - Be direct - answer the question first, then explain
611
776
  - Use markdown formatting when helpful
612
777
 
613
778
  ## Rules
@@ -615,7 +780,7 @@ Edit \`agent.yaml\` to customize your agent's personality, skills, and behavior.
615
780
  - Ask for clarification when the request is ambiguous
616
781
  - Never make up information
617
782
  `);
618
- // CONTEXT.md project context
783
+ // CONTEXT.md - project context
619
784
  fs.writeFileSync(path.join(dir, 'CONTEXT.md'), `# Project Context
620
785
 
621
786
  ## About This Agent
@@ -631,7 +796,8 @@ on startup to understand the project context.
631
796
  - Add company policies here
632
797
  `);
633
798
  console.log(`\n${icon.success} Created agent project: ${color.bold(name + '/')}`);
634
- console.log(` ${icon.file} agent.yaml - Agent definition (OAD)`);
799
+ console.log(` ${icon.file} oad.yaml - Agent 配置 (${llmProvider}/${llmModel})`);
800
+ console.log(` ${icon.file} .env - 环境变量${llmProvider === 'ollama' ? '' : ' (API Key)'}`);
635
801
  console.log(` ${icon.file} src/index.ts - Entry point`);
636
802
  console.log(` ${icon.file} src/skills/echo.ts - Example skill`);
637
803
  console.log(` ${icon.file} SOUL.md - Agent personality`);
@@ -656,14 +822,24 @@ on startup to understand the project context.
656
822
  }
657
823
  }
658
824
  catch {
659
- // Brain-seed download failed non-fatal, project still usable
825
+ // Brain-seed download failed - non-fatal, project still usable
660
826
  }
661
827
  }
662
828
  console.log(`\n${color.bold('Next steps:')}`);
663
829
  console.log(` 1. cd ${name}`);
664
830
  console.log(` 2. npm install`);
665
- console.log(` 3. npx tsx src/index.ts ${color.dim('# or: npx opc run')}`);
666
- console.log(` 4. Open http://localhost:3000\n`);
831
+ if (llmProvider === 'ollama' && !ollamaRunning) {
832
+ console.log(` 3. ollama pull ${llmModel} ${color.dim('# 下载模型')}`);
833
+ console.log(` 4. npx opc run ${color.dim('# 启动 Agent')}`);
834
+ }
835
+ else if (llmProvider !== 'ollama' && !llmApiKey) {
836
+ console.log(` 3. 编辑 .env 设置 OPC_LLM_API_KEY`);
837
+ console.log(` 4. npx opc run`);
838
+ }
839
+ else {
840
+ console.log(` 3. npx opc run ${color.dim('# 启动 Agent')}`);
841
+ }
842
+ console.log(` Open http://localhost:3000\n`);
667
843
  console.log(`${color.dim('💡 Tip: Use --role to start from a workstation template:')}`);
668
844
  console.log(`${color.dim(' opc init my-agent --role customer-service')}`);
669
845
  console.log(`${color.dim(' opc init --list-roles (see all roles)')}\n`);
@@ -713,7 +889,7 @@ program
713
889
  // Print startup banner
714
890
  const bannerLines = [
715
891
  '╔══════════════════════════════════════╗',
716
- '║ 🤖 OPC Agent Interactive Chat ║',
892
+ '║ 🤖 OPC Agent - Interactive Chat ║',
717
893
  `║ Agent: ${(agentName + ' v' + agentVersion).padEnd(27)}║`,
718
894
  `║ Model: ${((providerName + '/' + (model ?? 'default')).slice(0, 27)).padEnd(27)}║`,
719
895
  `║ Skills: ${(String(skillNames.length) + ' loaded').padEnd(26)}║`,
@@ -740,12 +916,12 @@ program
740
916
  }
741
917
  if (lower === '/help') {
742
918
  console.log(`\n ${color.bold('Available commands:')}`);
743
- console.log(` ${color.cyan('/help')} Show this help`);
744
- console.log(` ${color.cyan('/quit')} Exit chat (/exit also works)`);
745
- console.log(` ${color.cyan('/clear')} Clear conversation history`);
746
- console.log(` ${color.cyan('/skills')} List registered skills`);
747
- console.log(` ${color.cyan('/memory')} Show memory stats`);
748
- console.log(` ${color.cyan('/info')} Show agent info\n`);
919
+ console.log(` ${color.cyan('/help')} - Show this help`);
920
+ console.log(` ${color.cyan('/quit')} - Exit chat (/exit also works)`);
921
+ console.log(` ${color.cyan('/clear')} - Clear conversation history`);
922
+ console.log(` ${color.cyan('/skills')} - List registered skills`);
923
+ console.log(` ${color.cyan('/memory')} - Show memory stats`);
924
+ console.log(` ${color.cyan('/info')} - Show agent info\n`);
749
925
  return true;
750
926
  }
751
927
  if (lower === '/clear') {
@@ -1460,7 +1636,7 @@ protocolCmd.command('list')
1460
1636
  const protocols = config?.spec?.protocols || {};
1461
1637
  const items = [
1462
1638
  { name: 'a2a', description: 'Agent-to-Agent protocol', enabled: !!protocols.a2a?.enabled, detail: protocols.a2a?.port ? `port ${protocols.a2a.port}` : '' },
1463
- { name: 'agui', description: 'AG-UI Agent-User Interaction (SSE)', enabled: !!protocols.agui?.enabled, detail: protocols.agui?.path || '/agui' },
1639
+ { name: 'agui', description: 'AG-UI - Agent-User Interaction (SSE)', enabled: !!protocols.agui?.enabled, detail: protocols.agui?.path || '/agui' },
1464
1640
  ];
1465
1641
  console.log(`\n${icon.gear} ${color.bold('Protocols')}\n`);
1466
1642
  for (const p of items) {
@@ -1593,7 +1769,7 @@ brainCmd
1593
1769
  .description('Show brain stats (pages, tiers, last evolve)')
1594
1770
  .option('--url <url>', 'DeepBrain server URL', 'http://localhost:3333')
1595
1771
  .action(async (opts) => {
1596
- console.log(`\n${icon.gear} ${color.bold('DeepBrain Status')} ${color.dim(opts.url)}\n`);
1772
+ console.log(`\n${icon.gear} ${color.bold('DeepBrain Status')} - ${color.dim(opts.url)}\n`);
1597
1773
  try {
1598
1774
  const res = await fetch(`${opts.url}/api/stats`);
1599
1775
  if (!res.ok)
@@ -1626,7 +1802,7 @@ brainCmd
1626
1802
  brainCmd
1627
1803
  .command('seed')
1628
1804
  .description('Import brain seed files into memory')
1629
- .option('-f, --file <file>', 'OAD file', 'agent.yaml')
1805
+ .option('-f, --file <file>', 'OAD file', 'oad.yaml')
1630
1806
  .option('--status', 'Check if seeds have been imported')
1631
1807
  .option('--reset', 'Re-import seeds (clear marker and re-seed)')
1632
1808
  .action(async (opts) => {
@@ -1696,7 +1872,7 @@ brainCmd
1696
1872
  console.log(` ${color.cyan(c.slug)} → ${c.fromTier} → ${c.toTier} (confidence: ${(c.confidence * 100).toFixed(0)}%)`);
1697
1873
  }
1698
1874
  if (opts.dryRun) {
1699
- console.log(`\n ${icon.info} Dry run no changes made.\n`);
1875
+ console.log(`\n ${icon.info} Dry run - no changes made.\n`);
1700
1876
  }
1701
1877
  else {
1702
1878
  console.log(`\n ${icon.success} Promoted ${result.promoted} knowledge entries.\n`);
@@ -2145,7 +2321,7 @@ program
2145
2321
  return;
2146
2322
  }
2147
2323
  // Create a minimal mock agent for eval (real usage would load from OAD)
2148
- const oadPath = path.resolve('agent.yaml');
2324
+ const oadPath = path.resolve(fs.existsSync('oad.yaml') ? 'oad.yaml' : 'agent.yaml');
2149
2325
  let agent;
2150
2326
  if (fs.existsSync(oadPath)) {
2151
2327
  const runtime = new runtime_1.AgentRuntime();
@@ -2154,7 +2330,7 @@ program
2154
2330
  agent = runtime.agent;
2155
2331
  }
2156
2332
  if (!agent) {
2157
- console.log(`${icon.warn} No agent.yaml found running with dry-run mock agent.`);
2333
+ console.log(`${icon.warn} No oad.yaml or agent.yaml found - running with dry-run mock agent.`);
2158
2334
  agent = { chat: async (input) => `[mock response to: ${input}]` };
2159
2335
  }
2160
2336
  const evaluator = new eval_1.AgentEvaluator(agent);
@@ -2214,7 +2390,7 @@ guardrailsCmd
2214
2390
  console.log();
2215
2391
  const result = await manager.checkInput(message);
2216
2392
  if (result.passed) {
2217
- console.log(color.green('✓ PASSED no violations'));
2393
+ console.log(color.green('✓ PASSED - no violations'));
2218
2394
  }
2219
2395
  else {
2220
2396
  if (result.blocked)
@@ -2243,7 +2419,7 @@ program
2243
2419
  .action(async (opts) => {
2244
2420
  console.log(color.bold('🎤 Voice Conversation Mode'));
2245
2421
  console.log(` STT: ${opts.stt} | TTS: ${opts.tts} | Voice: ${opts.voice ?? 'default'} | Language: ${opts.language}`);
2246
- console.log(color.dim(' (Voice conversation requires audio input integration use as library)'));
2422
+ console.log(color.dim(' (Voice conversation requires audio input integration - use as library)'));
2247
2423
  console.log();
2248
2424
  console.log('To use voice in your agent:');
2249
2425
  console.log(color.cyan(`
@@ -2307,7 +2483,7 @@ keysCmd
2307
2483
  });
2308
2484
  // ── Approve command ───────────────────────────────────────────
2309
2485
  const approveCmd = program.command('approve').description('Manage command approvals');
2310
- // Singleton for CLI in real usage this would be loaded from daemon state
2486
+ // Singleton for CLI - in real usage this would be loaded from daemon state
2311
2487
  const approvalManager = new approval_1.ApprovalManager();
2312
2488
  approveCmd
2313
2489
  .command('list')
@@ -2439,7 +2615,7 @@ a2aCmd
2439
2615
  const { oadToAgentCard } = require('./protocols/a2a');
2440
2616
  const oad = loadOADFile();
2441
2617
  if (!oad) {
2442
- console.log(`${icon.error} No agent.yaml found`);
2618
+ console.log(`${icon.error} No oad.yaml or agent.yaml found`);
2443
2619
  return;
2444
2620
  }
2445
2621
  const card = oadToAgentCard(oad, 'http://localhost:3001');
@@ -2479,7 +2655,7 @@ a2aCmd
2479
2655
  function loadOADFile() {
2480
2656
  const fs = require('fs');
2481
2657
  const yaml = require('js-yaml');
2482
- for (const name of ['agent.yaml', 'agent.yml']) {
2658
+ for (const name of ['oad.yaml', 'agent.yaml', 'agent.yml']) {
2483
2659
  if (fs.existsSync(name)) {
2484
2660
  return yaml.load(fs.readFileSync(name, 'utf-8'));
2485
2661
  }
@@ -2487,7 +2663,7 @@ function loadOADFile() {
2487
2663
  return null;
2488
2664
  }
2489
2665
  // ── MCP Server Commands ────────────────────────────────────
2490
- const mcpCmd = program.command('mcp').description('MCP server commands expose agent as MCP tools');
2666
+ const mcpCmd = program.command('mcp').description('MCP server commands - expose agent as MCP tools');
2491
2667
  mcpCmd
2492
2668
  .command('serve')
2493
2669
  .option('--http <port>', 'Start HTTP+SSE mode on given port')
@@ -2516,7 +2692,7 @@ mcpCmd
2516
2692
  console.log(`${icon.info} Tools: ${server.getToolCount()}`);
2517
2693
  }
2518
2694
  else {
2519
- console.error(`${icon.success} MCP server (stdio) started ${server.getToolCount()} tools`);
2695
+ console.error(`${icon.success} MCP server (stdio) started - ${server.getToolCount()} tools`);
2520
2696
  await server.serveStdio();
2521
2697
  }
2522
2698
  });
@@ -2565,7 +2741,7 @@ mcpCmd
2565
2741
  console.log(`${icon.info} Tools: ${server.getToolCount()}`);
2566
2742
  }
2567
2743
  else {
2568
- console.error(`${icon.success} MCP server ${color.cyan(name)} (stdio) ${server.getToolCount()} tools`);
2744
+ console.error(`${icon.success} MCP server ${color.cyan(name)} (stdio) - ${server.getToolCount()} tools`);
2569
2745
  await server.serveStdio();
2570
2746
  }
2571
2747
  });