nyxora 26.7.8 → 26.7.9

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 (497) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/packages/core/src/agent/osAgent.js +171 -20
  3. package/dist/packages/core/src/agent/promptBuilder.js +27 -4
  4. package/dist/packages/core/src/agent/reasoning.js +44 -30
  5. package/dist/packages/core/src/agent/web3Agent.js +118 -16
  6. package/dist/packages/core/src/channels/telegram.js +71 -16
  7. package/dist/packages/core/src/channels/whatsappAdapter.js +6 -37
  8. package/dist/packages/core/src/gateway/server.js +1 -1
  9. package/dist/packages/core/src/gateway/setup.js +9 -3
  10. package/dist/packages/core/src/plugin/PluginManager.js +15 -1
  11. package/dist/packages/core/src/system/plugins/SystemWorkspacePlugin.js +5 -0
  12. package/dist/packages/core/src/system/skills/analyzeImage.js +14 -21
  13. package/dist/packages/core/src/system/skills/generateImage.js +63 -0
  14. package/dist/packages/core/src/system/skills/searchWeb.js +44 -1
  15. package/dist/packages/core/src/utils/contextSummarizer.js +29 -2
  16. package/dist/packages/core/src/utils/historySanitizer.js +12 -0
  17. package/dist/packages/core/src/utils/skillManager.js +1 -0
  18. package/dist/packages/core/src/web3/skills/marketAnalysis.js +15 -9
  19. package/dist/packages/core/src/web3/utils/riskIntelligence.js +14 -4
  20. package/package.json +18 -16
  21. package/packages/core/package.json +1 -4
  22. package/packages/core/playbooks/apple/DESCRIPTION.md +2 -0
  23. package/packages/core/playbooks/apple/apple-notes/SKILL.md +90 -0
  24. package/packages/core/playbooks/apple/apple-reminders/SKILL.md +130 -0
  25. package/packages/core/playbooks/apple/findmy/SKILL.md +131 -0
  26. package/packages/core/playbooks/apple/imessage/SKILL.md +102 -0
  27. package/packages/core/playbooks/autonomous-ai-agents/DESCRIPTION.md +3 -0
  28. package/packages/core/playbooks/autonomous-ai-agents/claude-code/SKILL.md +745 -0
  29. package/packages/core/playbooks/autonomous-ai-agents/codex/SKILL.md +149 -0
  30. package/packages/core/playbooks/autonomous-ai-agents/nyxora-agent/SKILL.md +1111 -0
  31. package/packages/core/playbooks/autonomous-ai-agents/nyxora-agent/references/native-mcp.md +344 -0
  32. package/packages/core/playbooks/autonomous-ai-agents/nyxora-agent/references/webhooks.md +194 -0
  33. package/packages/core/playbooks/autonomous-ai-agents/opencode/SKILL.md +219 -0
  34. package/packages/core/playbooks/computer-use/SKILL.md +263 -0
  35. package/packages/core/playbooks/creative/DESCRIPTION.md +3 -0
  36. package/packages/core/playbooks/creative/architecture-diagram/SKILL.md +148 -0
  37. package/packages/core/playbooks/creative/architecture-diagram/templates/template.html +319 -0
  38. package/packages/core/playbooks/creative/ascii-art/SKILL.md +322 -0
  39. package/packages/core/playbooks/creative/ascii-video/README.md +290 -0
  40. package/packages/core/playbooks/creative/ascii-video/SKILL.md +241 -0
  41. package/packages/core/playbooks/creative/ascii-video/references/architecture.md +802 -0
  42. package/packages/core/playbooks/creative/ascii-video/references/composition.md +892 -0
  43. package/packages/core/playbooks/creative/ascii-video/references/effects.md +1865 -0
  44. package/packages/core/playbooks/creative/ascii-video/references/inputs.md +685 -0
  45. package/packages/core/playbooks/creative/ascii-video/references/optimization.md +688 -0
  46. package/packages/core/playbooks/creative/ascii-video/references/scenes.md +1011 -0
  47. package/packages/core/playbooks/creative/ascii-video/references/shaders.md +1385 -0
  48. package/packages/core/playbooks/creative/ascii-video/references/troubleshooting.md +367 -0
  49. package/packages/core/playbooks/creative/baoyu-infographic/PORT_NOTES.md +43 -0
  50. package/packages/core/playbooks/creative/baoyu-infographic/SKILL.md +237 -0
  51. package/packages/core/playbooks/creative/baoyu-infographic/references/analysis-framework.md +182 -0
  52. package/packages/core/playbooks/creative/baoyu-infographic/references/base-prompt.md +43 -0
  53. package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/bento-grid.md +41 -0
  54. package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/binary-comparison.md +48 -0
  55. package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/bridge.md +41 -0
  56. package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/circular-flow.md +41 -0
  57. package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/comic-strip.md +41 -0
  58. package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/comparison-matrix.md +41 -0
  59. package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/dashboard.md +41 -0
  60. package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/dense-modules.md +72 -0
  61. package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/funnel.md +41 -0
  62. package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/hierarchical-layers.md +48 -0
  63. package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/hub-spoke.md +41 -0
  64. package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/iceberg.md +41 -0
  65. package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/isometric-map.md +41 -0
  66. package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/jigsaw.md +41 -0
  67. package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/linear-progression.md +48 -0
  68. package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/periodic-table.md +41 -0
  69. package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/story-mountain.md +41 -0
  70. package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/structural-breakdown.md +48 -0
  71. package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/tree-branching.md +41 -0
  72. package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/venn-diagram.md +41 -0
  73. package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/winding-roadmap.md +41 -0
  74. package/packages/core/playbooks/creative/baoyu-infographic/references/structured-content-template.md +244 -0
  75. package/packages/core/playbooks/creative/baoyu-infographic/references/styles/aged-academia.md +36 -0
  76. package/packages/core/playbooks/creative/baoyu-infographic/references/styles/bold-graphic.md +36 -0
  77. package/packages/core/playbooks/creative/baoyu-infographic/references/styles/chalkboard.md +61 -0
  78. package/packages/core/playbooks/creative/baoyu-infographic/references/styles/claymation.md +29 -0
  79. package/packages/core/playbooks/creative/baoyu-infographic/references/styles/corporate-memphis.md +29 -0
  80. package/packages/core/playbooks/creative/baoyu-infographic/references/styles/craft-handmade.md +44 -0
  81. package/packages/core/playbooks/creative/baoyu-infographic/references/styles/cyberpunk-neon.md +29 -0
  82. package/packages/core/playbooks/creative/baoyu-infographic/references/styles/hand-drawn-edu.md +63 -0
  83. package/packages/core/playbooks/creative/baoyu-infographic/references/styles/ikea-manual.md +29 -0
  84. package/packages/core/playbooks/creative/baoyu-infographic/references/styles/kawaii.md +29 -0
  85. package/packages/core/playbooks/creative/baoyu-infographic/references/styles/knolling.md +29 -0
  86. package/packages/core/playbooks/creative/baoyu-infographic/references/styles/lego-brick.md +29 -0
  87. package/packages/core/playbooks/creative/baoyu-infographic/references/styles/morandi-journal.md +60 -0
  88. package/packages/core/playbooks/creative/baoyu-infographic/references/styles/origami.md +29 -0
  89. package/packages/core/playbooks/creative/baoyu-infographic/references/styles/pixel-art.md +29 -0
  90. package/packages/core/playbooks/creative/baoyu-infographic/references/styles/pop-laboratory.md +48 -0
  91. package/packages/core/playbooks/creative/baoyu-infographic/references/styles/retro-pop-grid.md +47 -0
  92. package/packages/core/playbooks/creative/baoyu-infographic/references/styles/storybook-watercolor.md +29 -0
  93. package/packages/core/playbooks/creative/baoyu-infographic/references/styles/subway-map.md +29 -0
  94. package/packages/core/playbooks/creative/baoyu-infographic/references/styles/technical-schematic.md +36 -0
  95. package/packages/core/playbooks/creative/baoyu-infographic/references/styles/ui-wireframe.md +29 -0
  96. package/packages/core/playbooks/creative/claude-design/SKILL.md +650 -0
  97. package/packages/core/playbooks/creative/comfyui/SKILL.md +612 -0
  98. package/packages/core/playbooks/creative/comfyui/references/official-cli.md +255 -0
  99. package/packages/core/playbooks/creative/comfyui/references/rest-api.md +312 -0
  100. package/packages/core/playbooks/creative/comfyui/references/template-integrity.md +243 -0
  101. package/packages/core/playbooks/creative/comfyui/references/workflow-format.md +226 -0
  102. package/packages/core/playbooks/creative/comfyui/scripts/_common.py +835 -0
  103. package/packages/core/playbooks/creative/comfyui/scripts/auto_fix_deps.py +225 -0
  104. package/packages/core/playbooks/creative/comfyui/scripts/check_deps.py +437 -0
  105. package/packages/core/playbooks/creative/comfyui/scripts/comfyui_setup.sh +286 -0
  106. package/packages/core/playbooks/creative/comfyui/scripts/extract_schema.py +315 -0
  107. package/packages/core/playbooks/creative/comfyui/scripts/fetch_logs.py +157 -0
  108. package/packages/core/playbooks/creative/comfyui/scripts/hardware_check.py +497 -0
  109. package/packages/core/playbooks/creative/comfyui/scripts/health_check.py +223 -0
  110. package/packages/core/playbooks/creative/comfyui/scripts/run_batch.py +243 -0
  111. package/packages/core/playbooks/creative/comfyui/scripts/run_workflow.py +796 -0
  112. package/packages/core/playbooks/creative/comfyui/scripts/ws_monitor.py +267 -0
  113. package/packages/core/playbooks/creative/comfyui/tests/README.md +50 -0
  114. package/packages/core/playbooks/creative/comfyui/tests/conftest.py +64 -0
  115. package/packages/core/playbooks/creative/comfyui/tests/pytest.ini +5 -0
  116. package/packages/core/playbooks/creative/comfyui/tests/test_check_deps.py +68 -0
  117. package/packages/core/playbooks/creative/comfyui/tests/test_cloud_integration.py +95 -0
  118. package/packages/core/playbooks/creative/comfyui/tests/test_common.py +443 -0
  119. package/packages/core/playbooks/creative/comfyui/tests/test_extract_schema.py +184 -0
  120. package/packages/core/playbooks/creative/comfyui/tests/test_run_workflow.py +210 -0
  121. package/packages/core/playbooks/creative/comfyui/workflows/README.md +86 -0
  122. package/packages/core/playbooks/creative/comfyui/workflows/animatediff_video.json +64 -0
  123. package/packages/core/playbooks/creative/comfyui/workflows/flux_dev_txt2img.json +78 -0
  124. package/packages/core/playbooks/creative/comfyui/workflows/sd15_txt2img.json +49 -0
  125. package/packages/core/playbooks/creative/comfyui/workflows/sdxl_img2img.json +54 -0
  126. package/packages/core/playbooks/creative/comfyui/workflows/sdxl_inpaint.json +59 -0
  127. package/packages/core/playbooks/creative/comfyui/workflows/sdxl_txt2img.json +49 -0
  128. package/packages/core/playbooks/creative/comfyui/workflows/upscale_4x.json +27 -0
  129. package/packages/core/playbooks/creative/comfyui/workflows/wan_video_t2v.json +69 -0
  130. package/packages/core/playbooks/creative/design-md/SKILL.md +199 -0
  131. package/packages/core/playbooks/creative/design-md/templates/starter.md +99 -0
  132. package/packages/core/playbooks/creative/excalidraw/SKILL.md +199 -0
  133. package/packages/core/playbooks/creative/excalidraw/references/colors.md +44 -0
  134. package/packages/core/playbooks/creative/excalidraw/references/dark-mode.md +68 -0
  135. package/packages/core/playbooks/creative/excalidraw/references/examples.md +141 -0
  136. package/packages/core/playbooks/creative/excalidraw/scripts/upload.py +133 -0
  137. package/packages/core/playbooks/creative/humanizer/LICENSE +21 -0
  138. package/packages/core/playbooks/creative/humanizer/SKILL.md +578 -0
  139. package/packages/core/playbooks/creative/manim-video/README.md +23 -0
  140. package/packages/core/playbooks/creative/manim-video/SKILL.md +269 -0
  141. package/packages/core/playbooks/creative/manim-video/references/animation-design-thinking.md +161 -0
  142. package/packages/core/playbooks/creative/manim-video/references/animations.md +282 -0
  143. package/packages/core/playbooks/creative/manim-video/references/camera-and-3d.md +135 -0
  144. package/packages/core/playbooks/creative/manim-video/references/decorations.md +202 -0
  145. package/packages/core/playbooks/creative/manim-video/references/equations.md +216 -0
  146. package/packages/core/playbooks/creative/manim-video/references/graphs-and-data.md +163 -0
  147. package/packages/core/playbooks/creative/manim-video/references/mobjects.md +333 -0
  148. package/packages/core/playbooks/creative/manim-video/references/paper-explainer.md +255 -0
  149. package/packages/core/playbooks/creative/manim-video/references/production-quality.md +190 -0
  150. package/packages/core/playbooks/creative/manim-video/references/rendering.md +185 -0
  151. package/packages/core/playbooks/creative/manim-video/references/scene-planning.md +118 -0
  152. package/packages/core/playbooks/creative/manim-video/references/troubleshooting.md +135 -0
  153. package/packages/core/playbooks/creative/manim-video/references/updaters-and-trackers.md +260 -0
  154. package/packages/core/playbooks/creative/manim-video/references/visual-design.md +124 -0
  155. package/packages/core/playbooks/creative/manim-video/scripts/setup.sh +14 -0
  156. package/packages/core/playbooks/creative/p5js/README.md +64 -0
  157. package/packages/core/playbooks/creative/p5js/SKILL.md +556 -0
  158. package/packages/core/playbooks/creative/p5js/references/animation.md +439 -0
  159. package/packages/core/playbooks/creative/p5js/references/color-systems.md +352 -0
  160. package/packages/core/playbooks/creative/p5js/references/core-api.md +410 -0
  161. package/packages/core/playbooks/creative/p5js/references/export-pipeline.md +566 -0
  162. package/packages/core/playbooks/creative/p5js/references/interaction.md +398 -0
  163. package/packages/core/playbooks/creative/p5js/references/shapes-and-geometry.md +300 -0
  164. package/packages/core/playbooks/creative/p5js/references/troubleshooting.md +532 -0
  165. package/packages/core/playbooks/creative/p5js/references/typography.md +302 -0
  166. package/packages/core/playbooks/creative/p5js/references/visual-effects.md +895 -0
  167. package/packages/core/playbooks/creative/p5js/references/webgl-and-3d.md +423 -0
  168. package/packages/core/playbooks/creative/p5js/scripts/export-frames.js +179 -0
  169. package/packages/core/playbooks/creative/p5js/scripts/render.sh +108 -0
  170. package/packages/core/playbooks/creative/p5js/scripts/serve.sh +28 -0
  171. package/packages/core/playbooks/creative/p5js/scripts/setup.sh +87 -0
  172. package/packages/core/playbooks/creative/p5js/templates/viewer.html +395 -0
  173. package/packages/core/playbooks/creative/popular-web-designs/SKILL.md +214 -0
  174. package/packages/core/playbooks/creative/popular-web-designs/templates/airbnb.md +259 -0
  175. package/packages/core/playbooks/creative/popular-web-designs/templates/airtable.md +102 -0
  176. package/packages/core/playbooks/creative/popular-web-designs/templates/apple.md +326 -0
  177. package/packages/core/playbooks/creative/popular-web-designs/templates/bmw.md +193 -0
  178. package/packages/core/playbooks/creative/popular-web-designs/templates/cal.md +272 -0
  179. package/packages/core/playbooks/creative/popular-web-designs/templates/claude.md +325 -0
  180. package/packages/core/playbooks/creative/popular-web-designs/templates/clay.md +317 -0
  181. package/packages/core/playbooks/creative/popular-web-designs/templates/clickhouse.md +294 -0
  182. package/packages/core/playbooks/creative/popular-web-designs/templates/cohere.md +279 -0
  183. package/packages/core/playbooks/creative/popular-web-designs/templates/coinbase.md +142 -0
  184. package/packages/core/playbooks/creative/popular-web-designs/templates/composio.md +320 -0
  185. package/packages/core/playbooks/creative/popular-web-designs/templates/cursor.md +322 -0
  186. package/packages/core/playbooks/creative/popular-web-designs/templates/elevenlabs.md +278 -0
  187. package/packages/core/playbooks/creative/popular-web-designs/templates/expo.md +294 -0
  188. package/packages/core/playbooks/creative/popular-web-designs/templates/figma.md +233 -0
  189. package/packages/core/playbooks/creative/popular-web-designs/templates/framer.md +259 -0
  190. package/packages/core/playbooks/creative/popular-web-designs/templates/hashicorp.md +291 -0
  191. package/packages/core/playbooks/creative/popular-web-designs/templates/ibm.md +345 -0
  192. package/packages/core/playbooks/creative/popular-web-designs/templates/intercom.md +159 -0
  193. package/packages/core/playbooks/creative/popular-web-designs/templates/kraken.md +138 -0
  194. package/packages/core/playbooks/creative/popular-web-designs/templates/linear.app.md +380 -0
  195. package/packages/core/playbooks/creative/popular-web-designs/templates/lovable.md +311 -0
  196. package/packages/core/playbooks/creative/popular-web-designs/templates/minimax.md +270 -0
  197. package/packages/core/playbooks/creative/popular-web-designs/templates/mintlify.md +339 -0
  198. package/packages/core/playbooks/creative/popular-web-designs/templates/miro.md +121 -0
  199. package/packages/core/playbooks/creative/popular-web-designs/templates/mistral.ai.md +274 -0
  200. package/packages/core/playbooks/creative/popular-web-designs/templates/mongodb.md +279 -0
  201. package/packages/core/playbooks/creative/popular-web-designs/templates/notion.md +322 -0
  202. package/packages/core/playbooks/creative/popular-web-designs/templates/nvidia.md +306 -0
  203. package/packages/core/playbooks/creative/popular-web-designs/templates/ollama.md +280 -0
  204. package/packages/core/playbooks/creative/popular-web-designs/templates/opencode.ai.md +294 -0
  205. package/packages/core/playbooks/creative/popular-web-designs/templates/pinterest.md +243 -0
  206. package/packages/core/playbooks/creative/popular-web-designs/templates/posthog.md +269 -0
  207. package/packages/core/playbooks/creative/popular-web-designs/templates/raycast.md +281 -0
  208. package/packages/core/playbooks/creative/popular-web-designs/templates/replicate.md +274 -0
  209. package/packages/core/playbooks/creative/popular-web-designs/templates/resend.md +316 -0
  210. package/packages/core/playbooks/creative/popular-web-designs/templates/revolut.md +198 -0
  211. package/packages/core/playbooks/creative/popular-web-designs/templates/runwayml.md +257 -0
  212. package/packages/core/playbooks/creative/popular-web-designs/templates/sanity.md +370 -0
  213. package/packages/core/playbooks/creative/popular-web-designs/templates/sentry.md +275 -0
  214. package/packages/core/playbooks/creative/popular-web-designs/templates/spacex.md +207 -0
  215. package/packages/core/playbooks/creative/popular-web-designs/templates/spotify.md +259 -0
  216. package/packages/core/playbooks/creative/popular-web-designs/templates/stripe.md +335 -0
  217. package/packages/core/playbooks/creative/popular-web-designs/templates/supabase.md +268 -0
  218. package/packages/core/playbooks/creative/popular-web-designs/templates/superhuman.md +265 -0
  219. package/packages/core/playbooks/creative/popular-web-designs/templates/together.ai.md +276 -0
  220. package/packages/core/playbooks/creative/popular-web-designs/templates/uber.md +308 -0
  221. package/packages/core/playbooks/creative/popular-web-designs/templates/vercel.md +323 -0
  222. package/packages/core/playbooks/creative/popular-web-designs/templates/voltagent.md +336 -0
  223. package/packages/core/playbooks/creative/popular-web-designs/templates/warp.md +266 -0
  224. package/packages/core/playbooks/creative/popular-web-designs/templates/webflow.md +105 -0
  225. package/packages/core/playbooks/creative/popular-web-designs/templates/wise.md +186 -0
  226. package/packages/core/playbooks/creative/popular-web-designs/templates/x.ai.md +270 -0
  227. package/packages/core/playbooks/creative/popular-web-designs/templates/zapier.md +341 -0
  228. package/packages/core/playbooks/creative/pretext/SKILL.md +220 -0
  229. package/packages/core/playbooks/creative/pretext/references/patterns.md +258 -0
  230. package/packages/core/playbooks/creative/pretext/templates/donut-orbit.html +1468 -0
  231. package/packages/core/playbooks/creative/pretext/templates/hello-orb-flow.html +95 -0
  232. package/packages/core/playbooks/creative/sketch/SKILL.md +218 -0
  233. package/packages/core/playbooks/creative/songwriting-and-ai-music/SKILL.md +287 -0
  234. package/packages/core/playbooks/creative/touchdesigner-mcp/SKILL.md +356 -0
  235. package/packages/core/playbooks/creative/touchdesigner-mcp/references/3d-scene.md +275 -0
  236. package/packages/core/playbooks/creative/touchdesigner-mcp/references/animation.md +221 -0
  237. package/packages/core/playbooks/creative/touchdesigner-mcp/references/audio-reactive.md +175 -0
  238. package/packages/core/playbooks/creative/touchdesigner-mcp/references/dat-scripting.md +352 -0
  239. package/packages/core/playbooks/creative/touchdesigner-mcp/references/external-data.md +322 -0
  240. package/packages/core/playbooks/creative/touchdesigner-mcp/references/geometry-comp.md +121 -0
  241. package/packages/core/playbooks/creative/touchdesigner-mcp/references/glsl.md +151 -0
  242. package/packages/core/playbooks/creative/touchdesigner-mcp/references/layout-compositor.md +131 -0
  243. package/packages/core/playbooks/creative/touchdesigner-mcp/references/mcp-tools.md +382 -0
  244. package/packages/core/playbooks/creative/touchdesigner-mcp/references/midi-osc.md +211 -0
  245. package/packages/core/playbooks/creative/touchdesigner-mcp/references/network-patterns.md +966 -0
  246. package/packages/core/playbooks/creative/touchdesigner-mcp/references/operator-tips.md +106 -0
  247. package/packages/core/playbooks/creative/touchdesigner-mcp/references/operators.md +239 -0
  248. package/packages/core/playbooks/creative/touchdesigner-mcp/references/panel-ui.md +281 -0
  249. package/packages/core/playbooks/creative/touchdesigner-mcp/references/particles.md +245 -0
  250. package/packages/core/playbooks/creative/touchdesigner-mcp/references/pitfalls.md +704 -0
  251. package/packages/core/playbooks/creative/touchdesigner-mcp/references/postfx.md +183 -0
  252. package/packages/core/playbooks/creative/touchdesigner-mcp/references/projection-mapping.md +211 -0
  253. package/packages/core/playbooks/creative/touchdesigner-mcp/references/python-api.md +463 -0
  254. package/packages/core/playbooks/creative/touchdesigner-mcp/references/replicator.md +198 -0
  255. package/packages/core/playbooks/creative/touchdesigner-mcp/references/troubleshooting.md +244 -0
  256. package/packages/core/playbooks/creative/touchdesigner-mcp/scripts/setup.sh +115 -0
  257. package/packages/core/playbooks/data-science/DESCRIPTION.md +3 -0
  258. package/packages/core/playbooks/data-science/jupyter-live-kernel/SKILL.md +167 -0
  259. package/packages/core/playbooks/dogfood/SKILL.md +162 -0
  260. package/packages/core/playbooks/dogfood/references/issue-taxonomy.md +109 -0
  261. package/packages/core/playbooks/dogfood/templates/dogfood-report-template.md +86 -0
  262. package/packages/core/playbooks/email/DESCRIPTION.md +3 -0
  263. package/packages/core/playbooks/github/DESCRIPTION.md +3 -0
  264. package/packages/core/playbooks/github/codebase-inspection/SKILL.md +116 -0
  265. package/packages/core/playbooks/github/github-auth/SKILL.md +247 -0
  266. package/packages/core/playbooks/github/github-auth/scripts/gh-env.sh +66 -0
  267. package/packages/core/playbooks/github/github-code-review/SKILL.md +481 -0
  268. package/packages/core/playbooks/github/github-code-review/references/review-output-template.md +74 -0
  269. package/packages/core/playbooks/github/github-issues/SKILL.md +370 -0
  270. package/packages/core/playbooks/github/github-issues/templates/bug-report.md +35 -0
  271. package/packages/core/playbooks/github/github-issues/templates/feature-request.md +31 -0
  272. package/packages/core/playbooks/github/github-pr-workflow/SKILL.md +367 -0
  273. package/packages/core/playbooks/github/github-pr-workflow/references/ci-troubleshooting.md +183 -0
  274. package/packages/core/playbooks/github/github-pr-workflow/references/conventional-commits.md +71 -0
  275. package/packages/core/playbooks/github/github-pr-workflow/templates/pr-body-bugfix.md +35 -0
  276. package/packages/core/playbooks/github/github-pr-workflow/templates/pr-body-feature.md +33 -0
  277. package/packages/core/playbooks/github/github-repo-management/SKILL.md +516 -0
  278. package/packages/core/playbooks/github/github-repo-management/references/github-api-cheatsheet.md +161 -0
  279. package/packages/core/playbooks/index-cache/anthropics_skills_skills_.json +1 -0
  280. package/packages/core/playbooks/index-cache/claude_marketplace_anthropics_skills.json +1 -0
  281. package/packages/core/playbooks/index-cache/lobehub_index.json +1 -0
  282. package/packages/core/playbooks/index-cache/openai_skills_skills_.json +1 -0
  283. package/packages/core/playbooks/media/DESCRIPTION.md +3 -0
  284. package/packages/core/playbooks/media/gif-search/SKILL.md +91 -0
  285. package/packages/core/playbooks/media/heartmula/SKILL.md +171 -0
  286. package/packages/core/playbooks/media/songsee/SKILL.md +83 -0
  287. package/packages/core/playbooks/media/youtube-content/SKILL.md +76 -0
  288. package/packages/core/playbooks/media/youtube-content/references/output-formats.md +56 -0
  289. package/packages/core/playbooks/media/youtube-content/scripts/fetch_transcript.py +124 -0
  290. package/packages/core/playbooks/mlops/DESCRIPTION.md +3 -0
  291. package/packages/core/playbooks/mlops/evaluation/DESCRIPTION.md +3 -0
  292. package/packages/core/playbooks/mlops/evaluation/lm-evaluation-harness/SKILL.md +498 -0
  293. package/packages/core/playbooks/mlops/evaluation/lm-evaluation-harness/references/api-evaluation.md +490 -0
  294. package/packages/core/playbooks/mlops/evaluation/lm-evaluation-harness/references/benchmark-guide.md +488 -0
  295. package/packages/core/playbooks/mlops/evaluation/lm-evaluation-harness/references/custom-tasks.md +602 -0
  296. package/packages/core/playbooks/mlops/evaluation/lm-evaluation-harness/references/distributed-eval.md +519 -0
  297. package/packages/core/playbooks/mlops/evaluation/weights-and-biases/SKILL.md +594 -0
  298. package/packages/core/playbooks/mlops/evaluation/weights-and-biases/references/artifacts.md +584 -0
  299. package/packages/core/playbooks/mlops/evaluation/weights-and-biases/references/integrations.md +700 -0
  300. package/packages/core/playbooks/mlops/evaluation/weights-and-biases/references/sweeps.md +847 -0
  301. package/packages/core/playbooks/mlops/huggingface-hub/SKILL.md +81 -0
  302. package/packages/core/playbooks/mlops/inference/DESCRIPTION.md +3 -0
  303. package/packages/core/playbooks/mlops/inference/llama-cpp/SKILL.md +249 -0
  304. package/packages/core/playbooks/mlops/inference/llama-cpp/references/advanced-usage.md +504 -0
  305. package/packages/core/playbooks/mlops/inference/llama-cpp/references/hub-discovery.md +168 -0
  306. package/packages/core/playbooks/mlops/inference/llama-cpp/references/optimization.md +89 -0
  307. package/packages/core/playbooks/mlops/inference/llama-cpp/references/quantization.md +243 -0
  308. package/packages/core/playbooks/mlops/inference/llama-cpp/references/server.md +150 -0
  309. package/packages/core/playbooks/mlops/inference/llama-cpp/references/troubleshooting.md +442 -0
  310. package/packages/core/playbooks/mlops/inference/vllm/SKILL.md +372 -0
  311. package/packages/core/playbooks/mlops/inference/vllm/references/optimization.md +226 -0
  312. package/packages/core/playbooks/mlops/inference/vllm/references/quantization.md +284 -0
  313. package/packages/core/playbooks/mlops/inference/vllm/references/server-deployment.md +255 -0
  314. package/packages/core/playbooks/mlops/inference/vllm/references/troubleshooting.md +447 -0
  315. package/packages/core/playbooks/mlops/models/DESCRIPTION.md +3 -0
  316. package/packages/core/playbooks/mlops/models/audiocraft/SKILL.md +568 -0
  317. package/packages/core/playbooks/mlops/models/audiocraft/references/advanced-usage.md +666 -0
  318. package/packages/core/playbooks/mlops/models/audiocraft/references/troubleshooting.md +504 -0
  319. package/packages/core/playbooks/mlops/models/segment-anything/SKILL.md +506 -0
  320. package/packages/core/playbooks/mlops/models/segment-anything/references/advanced-usage.md +589 -0
  321. package/packages/core/playbooks/mlops/models/segment-anything/references/troubleshooting.md +484 -0
  322. package/packages/core/playbooks/note-taking/DESCRIPTION.md +3 -0
  323. package/packages/core/playbooks/note-taking/obsidian/SKILL.md +61 -0
  324. package/packages/core/playbooks/productivity/DESCRIPTION.md +3 -0
  325. package/packages/core/playbooks/productivity/airtable/SKILL.md +229 -0
  326. package/packages/core/playbooks/productivity/maps/SKILL.md +195 -0
  327. package/packages/core/playbooks/productivity/maps/scripts/maps_client.py +1297 -0
  328. package/packages/core/playbooks/productivity/nano-pdf/SKILL.md +52 -0
  329. package/packages/core/playbooks/productivity/notion/SKILL.md +448 -0
  330. package/packages/core/playbooks/productivity/notion/references/block-types.md +112 -0
  331. package/packages/core/playbooks/productivity/ocr-and-documents/DESCRIPTION.md +3 -0
  332. package/packages/core/playbooks/productivity/ocr-and-documents/SKILL.md +172 -0
  333. package/packages/core/playbooks/productivity/ocr-and-documents/scripts/extract_marker.py +87 -0
  334. package/packages/core/playbooks/productivity/ocr-and-documents/scripts/extract_pymupdf.py +98 -0
  335. package/packages/core/playbooks/productivity/petdex/SKILL.md +89 -0
  336. package/packages/core/playbooks/productivity/powerpoint/LICENSE.txt +30 -0
  337. package/packages/core/playbooks/productivity/powerpoint/SKILL.md +237 -0
  338. package/packages/core/playbooks/productivity/powerpoint/editing.md +205 -0
  339. package/packages/core/playbooks/productivity/powerpoint/pptxgenjs.md +420 -0
  340. package/packages/core/playbooks/productivity/powerpoint/scripts/__init__.py +0 -0
  341. package/packages/core/playbooks/productivity/powerpoint/scripts/add_slide.py +195 -0
  342. package/packages/core/playbooks/productivity/powerpoint/scripts/clean.py +286 -0
  343. package/packages/core/playbooks/productivity/powerpoint/scripts/office/helpers/__init__.py +0 -0
  344. package/packages/core/playbooks/productivity/powerpoint/scripts/office/helpers/merge_runs.py +199 -0
  345. package/packages/core/playbooks/productivity/powerpoint/scripts/office/helpers/simplify_redlines.py +197 -0
  346. package/packages/core/playbooks/productivity/powerpoint/scripts/office/pack.py +159 -0
  347. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  348. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  349. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  350. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  351. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  352. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  353. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  354. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  355. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  356. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  357. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  358. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  359. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  360. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  361. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  362. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  363. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  364. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  365. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  366. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  367. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  368. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  369. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  370. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  371. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  372. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  373. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  374. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-contentTypes.xsd +42 -0
  375. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-coreProperties.xsd +50 -0
  376. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-digSig.xsd +49 -0
  377. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-relationships.xsd +33 -0
  378. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/mce/mc.xsd +75 -0
  379. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  380. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  381. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  382. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  383. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  384. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  385. package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  386. package/packages/core/playbooks/productivity/teams-meeting-pipeline/SKILL.md +116 -0
  387. package/packages/core/playbooks/research/DESCRIPTION.md +3 -0
  388. package/packages/core/playbooks/research/arxiv/SKILL.md +282 -0
  389. package/packages/core/playbooks/research/arxiv/scripts/search_arxiv.py +114 -0
  390. package/packages/core/playbooks/research/blogwatcher/SKILL.md +137 -0
  391. package/packages/core/playbooks/research/llm-wiki/SKILL.md +507 -0
  392. package/packages/core/playbooks/research/polymarket/SKILL.md +77 -0
  393. package/packages/core/playbooks/research/polymarket/references/api-endpoints.md +220 -0
  394. package/packages/core/playbooks/research/polymarket/scripts/polymarket.py +284 -0
  395. package/packages/core/playbooks/research/research-paper-writing/SKILL.md +2377 -0
  396. package/packages/core/playbooks/research/research-paper-writing/references/autoreason-methodology.md +394 -0
  397. package/packages/core/playbooks/research/research-paper-writing/references/checklists.md +434 -0
  398. package/packages/core/playbooks/research/research-paper-writing/references/citation-workflow.md +564 -0
  399. package/packages/core/playbooks/research/research-paper-writing/references/experiment-patterns.md +728 -0
  400. package/packages/core/playbooks/research/research-paper-writing/references/human-evaluation.md +476 -0
  401. package/packages/core/playbooks/research/research-paper-writing/references/paper-types.md +481 -0
  402. package/packages/core/playbooks/research/research-paper-writing/references/reviewer-guidelines.md +433 -0
  403. package/packages/core/playbooks/research/research-paper-writing/references/sources.md +191 -0
  404. package/packages/core/playbooks/research/research-paper-writing/references/writing-guide.md +474 -0
  405. package/packages/core/playbooks/research/research-paper-writing/templates/README.md +251 -0
  406. package/packages/core/playbooks/research/research-paper-writing/templates/aaai2026/README.md +534 -0
  407. package/packages/core/playbooks/research/research-paper-writing/templates/aaai2026/aaai2026-unified-supp.tex +144 -0
  408. package/packages/core/playbooks/research/research-paper-writing/templates/aaai2026/aaai2026-unified-template.tex +952 -0
  409. package/packages/core/playbooks/research/research-paper-writing/templates/aaai2026/aaai2026.bib +111 -0
  410. package/packages/core/playbooks/research/research-paper-writing/templates/aaai2026/aaai2026.bst +1493 -0
  411. package/packages/core/playbooks/research/research-paper-writing/templates/aaai2026/aaai2026.sty +315 -0
  412. package/packages/core/playbooks/research/research-paper-writing/templates/acl/README.md +50 -0
  413. package/packages/core/playbooks/research/research-paper-writing/templates/acl/acl.sty +312 -0
  414. package/packages/core/playbooks/research/research-paper-writing/templates/acl/acl_latex.tex +377 -0
  415. package/packages/core/playbooks/research/research-paper-writing/templates/acl/acl_lualatex.tex +101 -0
  416. package/packages/core/playbooks/research/research-paper-writing/templates/acl/acl_natbib.bst +1940 -0
  417. package/packages/core/playbooks/research/research-paper-writing/templates/acl/anthology.bib.txt +26 -0
  418. package/packages/core/playbooks/research/research-paper-writing/templates/acl/custom.bib +70 -0
  419. package/packages/core/playbooks/research/research-paper-writing/templates/acl/formatting.md +326 -0
  420. package/packages/core/playbooks/research/research-paper-writing/templates/colm2025/README.md +3 -0
  421. package/packages/core/playbooks/research/research-paper-writing/templates/colm2025/colm2025_conference.bib +11 -0
  422. package/packages/core/playbooks/research/research-paper-writing/templates/colm2025/colm2025_conference.bst +1440 -0
  423. package/packages/core/playbooks/research/research-paper-writing/templates/colm2025/colm2025_conference.pdf +0 -0
  424. package/packages/core/playbooks/research/research-paper-writing/templates/colm2025/colm2025_conference.sty +218 -0
  425. package/packages/core/playbooks/research/research-paper-writing/templates/colm2025/colm2025_conference.tex +305 -0
  426. package/packages/core/playbooks/research/research-paper-writing/templates/colm2025/fancyhdr.sty +485 -0
  427. package/packages/core/playbooks/research/research-paper-writing/templates/colm2025/math_commands.tex +508 -0
  428. package/packages/core/playbooks/research/research-paper-writing/templates/colm2025/natbib.sty +1246 -0
  429. package/packages/core/playbooks/research/research-paper-writing/templates/iclr2026/fancyhdr.sty +485 -0
  430. package/packages/core/playbooks/research/research-paper-writing/templates/iclr2026/iclr2026_conference.bib +24 -0
  431. package/packages/core/playbooks/research/research-paper-writing/templates/iclr2026/iclr2026_conference.bst +1440 -0
  432. package/packages/core/playbooks/research/research-paper-writing/templates/iclr2026/iclr2026_conference.pdf +0 -0
  433. package/packages/core/playbooks/research/research-paper-writing/templates/iclr2026/iclr2026_conference.sty +246 -0
  434. package/packages/core/playbooks/research/research-paper-writing/templates/iclr2026/iclr2026_conference.tex +414 -0
  435. package/packages/core/playbooks/research/research-paper-writing/templates/iclr2026/math_commands.tex +508 -0
  436. package/packages/core/playbooks/research/research-paper-writing/templates/iclr2026/natbib.sty +1246 -0
  437. package/packages/core/playbooks/research/research-paper-writing/templates/icml2026/algorithm.sty +79 -0
  438. package/packages/core/playbooks/research/research-paper-writing/templates/icml2026/algorithmic.sty +201 -0
  439. package/packages/core/playbooks/research/research-paper-writing/templates/icml2026/example_paper.bib +75 -0
  440. package/packages/core/playbooks/research/research-paper-writing/templates/icml2026/example_paper.pdf +0 -0
  441. package/packages/core/playbooks/research/research-paper-writing/templates/icml2026/example_paper.tex +662 -0
  442. package/packages/core/playbooks/research/research-paper-writing/templates/icml2026/fancyhdr.sty +864 -0
  443. package/packages/core/playbooks/research/research-paper-writing/templates/icml2026/icml2026.bst +1443 -0
  444. package/packages/core/playbooks/research/research-paper-writing/templates/icml2026/icml2026.sty +767 -0
  445. package/packages/core/playbooks/research/research-paper-writing/templates/icml2026/icml_numpapers.pdf +0 -0
  446. package/packages/core/playbooks/research/research-paper-writing/templates/neurips2025/Makefile +36 -0
  447. package/packages/core/playbooks/research/research-paper-writing/templates/neurips2025/extra_pkgs.tex +53 -0
  448. package/packages/core/playbooks/research/research-paper-writing/templates/neurips2025/main.tex +38 -0
  449. package/packages/core/playbooks/research/research-paper-writing/templates/neurips2025/neurips.sty +382 -0
  450. package/packages/core/playbooks/smart-home/DESCRIPTION.md +3 -0
  451. package/packages/core/playbooks/smart-home/openhue/SKILL.md +109 -0
  452. package/packages/core/playbooks/social-media/DESCRIPTION.md +3 -0
  453. package/packages/core/playbooks/social-media/social-fetch/social-fetch.md +62 -0
  454. package/packages/core/playbooks/social-media/xurl/SKILL.md +432 -0
  455. package/packages/core/playbooks/software-development/node-inspect-debugger/SKILL.md +319 -0
  456. package/packages/core/playbooks/software-development/nyxora-agent-skill-authoring/SKILL.md +196 -0
  457. package/packages/core/playbooks/software-development/plan/SKILL.md +338 -0
  458. package/packages/core/playbooks/software-development/python-debugpy/SKILL.md +375 -0
  459. package/packages/core/playbooks/software-development/requesting-code-review/SKILL.md +280 -0
  460. package/packages/core/playbooks/software-development/simplify-code/SKILL.md +212 -0
  461. package/packages/core/playbooks/software-development/spike/SKILL.md +197 -0
  462. package/packages/core/playbooks/software-development/systematic-debugging/SKILL.md +411 -0
  463. package/packages/core/playbooks/software-development/test-driven-development/SKILL.md +362 -0
  464. package/packages/core/playbooks/web3/binance-trading.md +119 -0
  465. package/packages/core/playbooks/web3/foundry-deployment.md +42 -0
  466. package/packages/core/playbooks/web3/mexc-trading.md +122 -0
  467. package/packages/core/playbooks/web3/onchainkit/assets/templates/basic-app/.env.local.example +20 -0
  468. package/packages/core/playbooks/web3/smart-contract-audit.md +44 -0
  469. package/packages/core/playbooks/yuanbao/SKILL.md +108 -0
  470. package/packages/core/src/agent/osAgent.ts +184 -20
  471. package/packages/core/src/agent/promptBuilder.ts +27 -4
  472. package/packages/core/src/agent/reasoning.ts +44 -30
  473. package/packages/core/src/agent/web3Agent.ts +130 -16
  474. package/packages/core/src/channels/telegram.ts +73 -16
  475. package/packages/core/src/channels/whatsappAdapter.ts +6 -4
  476. package/packages/core/src/config/parser.ts +2 -1
  477. package/packages/core/src/gateway/server.ts +1 -1
  478. package/packages/core/src/gateway/setup.ts +8 -3
  479. package/packages/core/src/plugin/PluginManager.ts +15 -1
  480. package/packages/core/src/system/plugins/SystemWorkspacePlugin.ts +5 -0
  481. package/packages/core/src/system/skills/analyzeImage.ts +14 -21
  482. package/packages/core/src/system/skills/generateImage.ts +66 -0
  483. package/packages/core/src/system/skills/searchWeb.ts +47 -1
  484. package/packages/core/src/utils/contextSummarizer.ts +33 -2
  485. package/packages/core/src/utils/historySanitizer.ts +11 -0
  486. package/packages/core/src/utils/skillManager.ts +1 -0
  487. package/packages/core/src/web3/skills/marketAnalysis.ts +23 -9
  488. package/packages/core/src/web3/utils/riskIntelligence.ts +12 -4
  489. package/packages/dashboard/dist/assets/index-LAS2_trL.js +26 -0
  490. package/packages/dashboard/dist/index.html +1 -1
  491. package/packages/dashboard/package.json +2 -2
  492. package/packages/mcp-server/package.json +1 -1
  493. package/packages/ml-engine/routers/__pycache__/market.cpython-313.pyc +0 -0
  494. package/packages/ml-engine/routers/market.py +218 -99
  495. package/packages/policy/package.json +1 -1
  496. package/packages/signer/package.json +3 -3
  497. package/packages/dashboard/dist/assets/index-Dq64NWt0.js +0 -26
package/CHANGELOG.md CHANGED
@@ -4,6 +4,32 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepashangelog.com/en/1.0.0/),
6
6
 
7
+ ## [26.7.9]
8
+ ### Features & Architecture
9
+
10
+ - **Deep Market Analysis Upgrade**: Significantly enhanced the Python ML Engine (`market.py`) to compute a comprehensive suite of advanced technical indicators including MACD, Bollinger Bands, EMA-20, ATR-14, and OBV using live OHLCV data.
11
+ - **Smart Trend Classification**: The ML Engine now runs deterministic trend scoring (`STRONG_BULLISH` to `STRONG_BEARISH`) and generates an AI narrative summary of the market structure to prevent LLM hallucination and provide highly accurate context.
12
+ - **Anti-Blocker Data Pipeline**: Bypassed Indonesian ISP blocks (e.g., internetsehat/ICON+) that previously blocked major crypto exchange APIs (Binance, Bybit, KuCoin, OKX) by routing historical candle data through `data-api.binance.vision`.
13
+
14
+ ### Refactor — Dependency & NPM Warning Cleanup
15
+
16
+ - **Removed Unused & Problematic Dependencies**: Completely uninstalled `@google/genai`, `baileys`, and `@matrix-org/matrix-sdk-crypto-nodejs` from the workspace. This fully eliminates the annoying `npm warn allow-scripts` warnings that users previously encountered when running `npm install -g nyxora` or standard `npm install`.
17
+ - **Migrated Image Analysis SDK**: Refactored `analyzeImage.ts` (Dynamic Require) to use `@google/generative-ai` (which has no install scripts) instead of the newer `@google/genai` (which triggers NPM security warnings), maintaining full Gemini 2.5 Flash compatibility.
18
+
19
+ ### Bug Fix — Playbooks Missing for Global npm Users
20
+
21
+ - **Playbooks Not Distributed to Global Users (Critical Fix)**: Resolved a packaging omission where `packages/core/playbooks/` (containing 70 bundled SKILL.md playbooks) was missing from the `files[]` array in `package.json`. Global users running `npm install -g nyxora` never received any playbooks, causing `search_playbook` to always return "No playbooks available." and the system prompt to never list available skills. Fixed by adding `"packages/core/playbooks"` to the `files[]` field.
22
+
23
+ ### Bug Fix — "No response generated." Crash on Complex Multi-Step Prompts
24
+
25
+ - **ContextSummarizer Redundant 4x LLM Calls (Critical Fix)**: Fixed a severe loop bug where `compressHistory()` was called once per nudge iteration (up to 4x per request) instead of once per session turn. The compressed result was never persisted back to the logger, so every iteration re-fetched the full uncompressed history and triggered another full LLM summarization call. Added a per-session in-memory cache keyed by text message count: if no new user/assistant messages have arrived, the cached compressed result is reused immediately — eliminating the redundant LLM calls entirely.
26
+ - **TaskPlanner Context Bloat**: Refactored the TaskPlanner to inject its execution plan as a `role: 'system'` logger entry instead of prepending it to the user input string. Previously, the plan was concatenated into the user message body (`planInjection + "\n\nUSER REQUEST: " + input`), which inflated the user message size stored in logger and compounded context bloat on every subsequent turn. Also capped generated plans at 120 words to prevent runaway context consumption.
27
+ - **Nudge Messages Now Actionable**: Replaced the generic `"[SYSTEM NUDGE] You did not output any tool calls..."` message with a structured, actionable prompt that includes: the original user task (truncated to 200 chars), the list of relevant available tools, and explicit instruction to either call a tool or output a final text answer. Applies to both OS Agent and Web3 Agent.
28
+ - **Dead-End Fallback Replaced**: Replaced `"No response generated."` (which leaves the user with no actionable path) with `"⚠️ I encountered an issue processing your request. This can happen with very complex multi-step tasks. Please try rephrasing or breaking the request into smaller steps."` in all 4 abort paths across `osAgent.ts` and `web3Agent.ts`.
29
+ - **Thinking-Prefill Continuation (Critical Fix)**: Ported the core silent-stop recovery technique used by the Hermes agent framework. When a reasoning model (e.g. Gemini 2.5 Pro with `reasoning_effort: high`) produces internal thinking content but no visible text or tool calls, Nyxora now appends the assistant's reasoning turn as-is and continues the loop — allowing the model to see its own reasoning on the next turn and naturally produce a tool call or text response. This is a fundamentally different approach from system nudges (which restart the reasoning chain from scratch). Prefill is attempted up to 2 times before falling back to the nudge path. Applies to both OS Agent and Web3 Agent.
30
+ - **Anti-Silent-Stop System Prompt Rule**: Added `CRITICAL RULE 6` to the OS agent system prompt explicitly forbidding silent stops: after reasoning is complete, the model MUST produce either tool calls or a visible text answer. Ending a turn with only internal thinking is explicitly stated as not acceptable.
31
+ - **MAX_TURNS Raised (OS Agent)**: Increased the stream loop iteration cap from 10 to 15 to give complex multi-step tasks (e.g. write file → send to Telegram) sufficient room to complete without hitting the ceiling.
32
+
7
33
  ## [26.7.8]
8
34
  ### Bug Fixes — Global Compatibility & Dashboard Crash
9
35
 
@@ -19,8 +19,8 @@ const picocolors_1 = __importDefault(require("picocolors"));
19
19
  registry_1.pluginManager.registerHook({
20
20
  name: 'ReasoningGate',
21
21
  beforeToolCall: async (toolName, args, context) => {
22
- // FIX: Use actual Nyxora tool names (not legacy names)
23
- const toolsRequiringReasoning = ['run_terminal_command', 'write_local_file', 'edit_local_file', 'execute_script'];
22
+ // FIX: Use actual Nyxora tool names (not legacy names). Removed run_terminal_command to prevent infinite loops.
23
+ const toolsRequiringReasoning = ['write_local_file', 'edit_local_file', 'execute_script'];
24
24
  if (toolsRequiringReasoning.includes(toolName)) {
25
25
  const responseMessage = context.responseMessage || {};
26
26
  const hasThinkingTag = /<(think|thought|thinking|reasoning|analysis|reflection)>[\s\S]*?<\/\1>/i.test(responseMessage.content || '');
@@ -37,8 +37,8 @@ registry_1.pluginManager.registerHook({
37
37
  name: 'Web3FastReturn',
38
38
  afterToolCall: async (toolName, args, result, context) => {
39
39
  // FIX: Only financial Web3 transactions need fast-return (to show approval popup ASAP).
40
- // send_telegram_file is NOT a financial transaction removed from this list.
41
- const fastReturnTools = ['transfer_token', 'transfer_native', 'swap_token', 'bridge_token', 'mint_nft', 'custom_tx', 'revoke_approval', 'supply_aave', 'deposit_yield_vault', 'provide_liquidity_v3'];
40
+ // FIX: Re-added send_telegram_file so the agent stops "typing" after file is successfully uploaded.
41
+ const fastReturnTools = ['transfer_token', 'transfer_native', 'swap_token', 'bridge_token', 'mint_nft', 'custom_tx', 'revoke_approval', 'supply_aave', 'deposit_yield_vault', 'provide_liquidity_v3', 'send_telegram_file'];
42
42
  if (fastReturnTools.includes(toolName)) {
43
43
  return { terminate: true };
44
44
  }
@@ -142,7 +142,7 @@ CRITICAL INSTRUCTIONS:
142
142
  const currentHistory = exports.logger.getHistory(sessionId);
143
143
  // P6: Compress history if conversation is too long
144
144
  const historyToUse = (0, contextSummarizer_1.needsCompression)(currentHistory)
145
- ? await (0, contextSummarizer_1.compressHistory)(currentHistory)
145
+ ? await (0, contextSummarizer_1.compressHistory)(currentHistory, sessionId)
146
146
  : currentHistory;
147
147
  const sanitizedHistory = sanitizeHistoryForLLM(historyToUse, activeTools, config.llm.provider);
148
148
  // P1: Inject scratchpad into system prompt for turns > 1
@@ -177,21 +177,82 @@ CRITICAL INSTRUCTIONS:
177
177
  content: cleanedContent || '',
178
178
  tool_calls: responseMessage.tool_calls,
179
179
  }, sessionId);
180
+ // --- LLM FALLBACK COMMAND PARSER (Minimax/Open-weight fix) ---
181
+ if ((!responseMessage.tool_calls || responseMessage.tool_calls.length === 0) && responseMessage.content) {
182
+ const fallbacks = [];
183
+ // 1. Slash commands (/swap amount="100")
184
+ const regex = /^\/([a-zA-Z0-9_]+)\s+(.*)$/gm;
185
+ let match;
186
+ while ((match = regex.exec(responseMessage.content)) !== null) {
187
+ const toolName = match[1];
188
+ let argsStr = match[2];
189
+ const argsObj = {};
190
+ const kvRegex = /([a-zA-Z0-9_]+)=(".*?"|'.*?'|[^\s]+)/g;
191
+ let kvMatch;
192
+ while ((kvMatch = kvRegex.exec(argsStr)) !== null) {
193
+ let key = kvMatch[1];
194
+ let val = kvMatch[2].replace(/^["']|["']$/g, '');
195
+ argsObj[key] = val;
196
+ }
197
+ // Map generic names if needed
198
+ let mappedToolName = toolName;
199
+ if (toolName === 'transfer' && argsObj.mode === 'bridge')
200
+ mappedToolName = 'bridge_token';
201
+ if (toolName === 'swap')
202
+ mappedToolName = 'swap_token';
203
+ fallbacks.push({
204
+ id: 'call_fallback_' + Math.random().toString(36).substr(2, 9),
205
+ type: 'function',
206
+ function: {
207
+ name: mappedToolName,
208
+ arguments: JSON.stringify(argsObj)
209
+ }
210
+ });
211
+ }
212
+ // 2. Markdown bash blocks (```bash ... ```)
213
+ const mdRegex = /```(?:bash|sh|zsh)?\n([\s\S]*?)```/g;
214
+ let mdMatch;
215
+ while ((mdMatch = mdRegex.exec(responseMessage.content)) !== null) {
216
+ const bashCmd = mdMatch[1].trim();
217
+ if (bashCmd) {
218
+ fallbacks.push({
219
+ id: 'call_fallback_' + Math.random().toString(36).substr(2, 9),
220
+ type: 'function',
221
+ function: {
222
+ name: 'run_terminal_command',
223
+ arguments: JSON.stringify({ command: bashCmd })
224
+ }
225
+ });
226
+ }
227
+ }
228
+ if (fallbacks.length > 0) {
229
+ responseMessage.tool_calls = fallbacks;
230
+ responseMessage.content = responseMessage.content.replace(/^\/[a-zA-Z0-9_]+\s+.*$/gm, '').replace(/```(?:bash|sh|zsh)?\n([\s\S]*?)```/g, '').trim();
231
+ console.log(picocolors_1.default.cyan(`[Fallback Parser] Intercepted ${fallbacks.length} raw text commands and converted to tool_calls.`));
232
+ // Update logger entry with the intercepted tool calls
233
+ exports.logger.addEntry({
234
+ role: 'assistant',
235
+ content: responseMessage.content || "",
236
+ tool_calls: responseMessage.tool_calls,
237
+ }, sessionId);
238
+ }
239
+ }
240
+ // -----------------------------------------------------
180
241
  if (!responseMessage.tool_calls || responseMessage.tool_calls.length === 0) {
181
242
  // --- CRITIC PASS REMOVED ---
182
243
  // The new PromptBuilder handles robust reasoning. Post-generation critic
183
244
  // causes aggressive loops and UI artifacts.
184
245
  triggerBackgroundReview(sessionId);
185
- return cleanedContent || 'No response generated.';
246
+ return cleanedContent || '⚠️ I encountered an issue processing your request. This can happen with very complex multi-step tasks. Please try rephrasing or breaking the request into smaller steps.';
186
247
  }
187
248
  let canFastReturnAll = true;
188
249
  let accumulatedResults = [];
189
250
  // Enabled fastReturnTools to eliminate 2nd LLM latency for transaction popups
190
- // FIX: Removed send_telegram_file not a financial transaction
251
+ // FIX: Re-added send_telegram_file to prevent "typing" loop after file upload.
191
252
  const fastReturnTools = [
192
253
  'transfer_token', 'transfer_native', 'swap_token', 'bridge_token',
193
254
  'mint_nft', 'custom_tx', 'revoke_approval', 'supply_aave',
194
- 'deposit_yield_vault', 'provide_liquidity_v3'
255
+ 'deposit_yield_vault', 'provide_liquidity_v3', 'send_telegram_file'
195
256
  ];
196
257
  for (const _toolCall of responseMessage.tool_calls) {
197
258
  const toolCall = _toolCall;
@@ -373,13 +434,18 @@ CRITICAL INSTRUCTIONS:
373
434
  const { sanitizeHistoryForLLM } = require('../utils/historySanitizer');
374
435
  try {
375
436
  let turnCount = 0;
376
- const MAX_TURNS = 10;
437
+ let nudgeCount = 0;
438
+ const MAX_TURNS = 15; // Increased from 10 — complex tasks need more turns
439
+ let thinkingPrefillRetries = 0; // Prefill-continuation retries for think-only silent stops
377
440
  let fullResponse = '';
378
441
  let criticHasFiredStream = false; // Critic Pass hanya aktif 1x per request
379
442
  while (turnCount < MAX_TURNS) {
380
443
  turnCount++;
381
444
  const currentHistory = exports.logger.getHistory(sessionId);
382
- const sanitizedHistory = sanitizeHistoryForLLM(currentHistory, activeTools, config.llm.provider);
445
+ const historyToUse = (0, contextSummarizer_1.needsCompression)(currentHistory)
446
+ ? await (0, contextSummarizer_1.compressHistory)(currentHistory, sessionId)
447
+ : currentHistory;
448
+ const sanitizedHistory = sanitizeHistoryForLLM(historyToUse, activeTools, config.llm.provider);
383
449
  // FIX: Use cached system prompt — no longer rebuilt every turn
384
450
  const messages = [
385
451
  { role: 'system', content: cachedSystemPromptStream },
@@ -411,11 +477,82 @@ CRITICAL INSTRUCTIONS:
411
477
  tool_calls: responseMessage.tool_calls,
412
478
  }, sessionId);
413
479
  if (!responseMessage.tool_calls || responseMessage.tool_calls.length === 0) {
414
- let finalContent = responseMessage.content || 'No response generated.';
480
+ let finalContent = responseMessage.content || '';
415
481
  finalContent = finalContent.replace(/<(think|thought|thinking|reasoning|analysis|reflection)[\s\S]*?<\/\1>\n?/gi, '').trim();
416
482
  finalContent = finalContent.replace(/^\s*(?:\*\*)?(?:think|thought|thinking|reasoning|analysis|reflection)(?:\*\*)?\s*?\n[\s\S]*?\n\n/i, '').trim();
417
- // --- CRITIC PASS REMOVED ---
418
- // Prevents leaking internal reasoning into the stream and confusing the user.
483
+ // Support global languages: English, Indonesian, Spanish, French, German filler words
484
+ const isConversationalFiller = finalContent.length > 0 && finalContent.length < 250 && /(wait|checking|executing|processing|give me a moment|let me check|one moment|hold on|tunggu|sebentar|lagi proses|lanjut cek|gue cek|aku cek|un momento|attendez|bitte warten)[\s\.\!a-z]*$/i.test(finalContent.trim());
485
+ if (finalContent === '' || isConversationalFiller) {
486
+ // Detect think-only response: model reasoned but produced no tool calls or visible text.
487
+ const hasNativeReasoning = !!responseMessage.reasoning_content;
488
+ const hasThinkTagInStream = /<(think|thought|thinking|reasoning)[\s\S]*?<\//i.test(streamedContent);
489
+ const isThinkOnlyResponse = hasNativeReasoning || hasThinkTagInStream;
490
+ // ── THINKING-PREFILL CONTINUATION ──
491
+ // If model produced reasoning but no visible output, append the assistant message as-is
492
+ // so the model sees its own reasoning on the next turn and continues naturally.
493
+ // This avoids restarting the reasoning chain from scratch (which is what nudges do).
494
+ if (isThinkOnlyResponse && thinkingPrefillRetries < 2) {
495
+ thinkingPrefillRetries++;
496
+ console.warn(`[OsAgentStream] ⚠️ Think-only silent stop — prefilling to continue (${thinkingPrefillRetries}/2)...`);
497
+ // The assistant message is already in logger from the addEntry above.
498
+ // The model will see its own reasoning and produce a tool call or text next turn.
499
+ continue;
500
+ }
501
+ // ── NUDGE FALLBACK (after prefill exhaustion or truly empty) ──
502
+ if (nudgeCount < 3) {
503
+ nudgeCount++;
504
+ const recentUserMsg = exports.logger.getHistory(sessionId)
505
+ .filter((m) => m.role === 'user').slice(-1)[0]?.content || 'the user request';
506
+ let nudgeContent;
507
+ if (isThinkOnlyResponse) {
508
+ console.warn(`[OsAgentStream] ⚠️ Think-only prefill exhausted. System nudge (${nudgeCount}/3)...`);
509
+ nudgeContent = `[SYSTEM NUDGE ${nudgeCount}/3 — SILENT STOP DETECTED]
510
+ You completed your internal reasoning but produced NO output (no tool call, no text).
511
+ This is a silent stop — it is not acceptable.
512
+
513
+ Task: "${recentUserMsg.substring(0, 200)}"
514
+
515
+ You MUST act RIGHT NOW. Do one of these:
516
+ A) Call the first required tool immediately (e.g., write_local_file, run_terminal_command, send_telegram_file)
517
+ B) Output a final text answer
518
+
519
+ Do NOT think again. Execute step 1 of the task NOW.`;
520
+ }
521
+ else {
522
+ console.warn(`[OsAgentStream] ⚠️ Empty or filler response. System nudge (${nudgeCount}/3)...`);
523
+ nudgeContent = `[SYSTEM NUDGE ${nudgeCount}/3] Your last response was empty or contained conversational filler without tool calls. You MUST take action now.
524
+
525
+ Task: "${recentUserMsg.substring(0, 200)}"
526
+
527
+ Available tools: write_local_file, run_terminal_command, send_telegram_file, search_web and others.
528
+ You MUST either:
529
+ A) Call one or more tools, OR
530
+ B) Output a complete final text answer
531
+
532
+ Do NOT output filler text like "Wait, I will check". Act now.`;
533
+ }
534
+ exports.logger.addEntry({
535
+ role: 'system',
536
+ content: nudgeContent
537
+ }, sessionId);
538
+ continue;
539
+ }
540
+ else {
541
+ console.error('[OsAgentStream] ❌ LLM failed to recover after prefill + 3 nudges. Aborting.');
542
+ // Last-resort recovery: surface reasoning_content if available
543
+ const reasoningContent = responseMessage.reasoning_content || '';
544
+ if (reasoningContent && reasoningContent.length > 50) {
545
+ console.warn('[OsAgentStream] Using reasoning_content as fallback response.');
546
+ finalContent = reasoningContent.replace(/<(think|thought|thinking)[\s\S]*?<\/\1>/gi, '').trim()
547
+ || '⚠️ I encountered an issue processing your request. This can happen with very complex multi-step tasks. Please try rephrasing or breaking the request into smaller steps.';
548
+ }
549
+ else {
550
+ finalContent = '⚠️ I encountered an issue processing your request. This can happen with very complex multi-step tasks. Please try rephrasing or breaking the request into smaller steps.';
551
+ }
552
+ }
553
+ }
554
+ // Reset prefill counter on successful response
555
+ thinkingPrefillRetries = 0;
419
556
  fullResponse = finalContent;
420
557
  triggerBackgroundReview(sessionId);
421
558
  break;
@@ -425,10 +562,20 @@ CRITICAL INSTRUCTIONS:
425
562
  // LLM often generates "thinking out loud" text before calling a tool (e.g. "Let me check...").
426
563
  // This text should NOT be shown to users. [TOOL_CALL_DETECTED] resets the buffer to a
427
564
  // clean progress indicator, hiding the planning text without losing the message handle.
428
- onChunk('[TOOL_CALL_DETECTED]');
565
+ await onChunk('[TOOL_CALL_DETECTED]');
429
566
  let shouldFastReturn = false;
430
567
  const accumulatedResults = [];
431
- const promises = responseMessage.tool_calls.map(async (_toolCall) => {
568
+ // Deduplicate identical tool calls to prevent double execution bugs
569
+ const uniqueToolCalls = [];
570
+ const seenToolCalls = new Set();
571
+ for (const tc of responseMessage.tool_calls) {
572
+ const sig = `${tc.function.name}:${tc.function.arguments}`;
573
+ if (!seenToolCalls.has(sig)) {
574
+ seenToolCalls.add(sig);
575
+ uniqueToolCalls.push(tc);
576
+ }
577
+ }
578
+ const promises = uniqueToolCalls.map(async (_toolCall) => {
432
579
  const toolCall = _toolCall;
433
580
  const toolName = toolCall.function.name;
434
581
  let result = '';
@@ -436,7 +583,7 @@ CRITICAL INSTRUCTIONS:
436
583
  const context = { sessionId, toolCallId: toolCall.id, responseMessage };
437
584
  console.log(picocolors_1.default.yellow(`[⚡ Tool Execution] AI is calling ${toolName}...`));
438
585
  if (onProgress)
439
- onProgress(`_⚡ Running tool: ${toolName}..._`);
586
+ onProgress(`⚡ Running tool: ${toolName}...`);
440
587
  try {
441
588
  let argStr = toolCall.function.arguments;
442
589
  if (argStr && !argStr.trim().endsWith('}'))
@@ -464,7 +611,7 @@ CRITICAL INSTRUCTIONS:
464
611
  const pluginResult = await registry_1.pluginManager.executeTool(toolName, args, context, (partialResult) => {
465
612
  // Partial Streaming callback
466
613
  if (onProgress)
467
- onProgress(`_⏳ [${toolName}] ${partialResult}..._`);
614
+ onProgress(`⏳ [${toolName}] ${partialResult}...`);
468
615
  });
469
616
  result = pluginResult !== null ? pluginResult : `Error: Tool ${toolName} is not implemented.`;
470
617
  if (typeof result === 'string' && (result.includes('[Security Blocked]') || result.startsWith('Error:'))) {
@@ -489,11 +636,15 @@ CRITICAL INSTRUCTIONS:
489
636
  });
490
637
  const results = await Promise.all(promises);
491
638
  results.forEach(r => accumulatedResults.push(r.result));
639
+ await onChunk('[TOOL_CALL_FINISHED]');
492
640
  if (shouldFastReturn && accumulatedResults.length > 0) {
493
641
  const finalContent = accumulatedResults.join('\n\n---\n\n');
494
- exports.logger.addEntry({ role: 'assistant', content: finalContent }, sessionId);
495
- onChunk(finalContent);
496
- fullResponse = finalContent;
642
+ const cleanContent = finalContent.replace(/\[SILENT_FAST_RETURN\] /g, '');
643
+ exports.logger.addEntry({ role: 'assistant', content: cleanContent }, sessionId);
644
+ if (!finalContent.includes('[SILENT_FAST_RETURN]')) {
645
+ await onChunk(finalContent);
646
+ }
647
+ fullResponse = cleanContent;
497
648
  triggerBackgroundReview(sessionId);
498
649
  break;
499
650
  }
@@ -86,7 +86,9 @@ This tool runs in a NON-INTERACTIVE shell (no TTY). Therefore:
86
86
  - If a command fails with "sudo: a password is required" or similar, DO NOT promise to retry without actually retrying.
87
87
  - Instead, try running the command WITHOUT sudo if possible (e.g. for user-space tools).
88
88
  - If sudo is truly required and unavailable, clearly tell the user EXACTLY what command to run manually in their terminal, with a copy-paste ready command. Do not just say it failed without providing a solution.
89
- - NEVER promise to retry ("let me try again", "I'll run it again", etc.) without immediately making another tool_call in the same response.`;
89
+ - NEVER promise to retry ("let me try again", "I'll run it again", etc.) without immediately making another tool_call in the same response.
90
+
91
+ CRITICAL RULE 6: NO SILENT STOPS. After your internal reasoning/thinking is complete, you MUST produce output: either one or more tool calls OR a visible text answer. Ending your turn with ONLY thinking content and no tool calls or text is strictly forbidden. If you have finished thinking, the NEXT thing you output must be a concrete action (tool call) or a final answer.`;
90
92
  }
91
93
  return identity;
92
94
  }
@@ -102,6 +104,7 @@ CRITICAL: You MUST use your tools to take action — do not describe what you wo
102
104
  When you say you will perform an action, you MUST immediately make the corresponding tool call in the SAME response.
103
105
  Never end your turn with a promise of future action — execute it now.
104
106
  Every response should either (a) contain tool calls that make progress, or (b) deliver a final result to the user. Responses that only describe intentions without acting are NOT acceptable.
107
+ IF YOU NEED TO USE MULTIPLE TOOLS IN SEQUENCE, DO NOT OUTPUT CONVERSATIONAL FILLER TEXT BETWEEN TOOL CALLS (e.g., "Wait, I will check your portfolio now"). JUST OUTPUT THE NEXT TOOL CALL IMMEDIATELY.
105
108
  </tool_enforcement>
106
109
 
107
110
  <prerequisite_checks>
@@ -143,13 +146,27 @@ CRITICAL: NEVER fabricate blockchain data, transaction history, or wallet addres
143
146
  If a tool parameter is required and you don't have it, ALWAYS check if there is a helper tool to fetch it.
144
147
  If you still cannot find it, ask the user clearly. DO NOT invent fake data, fake hashes, or fake file names.
145
148
  </anti_hallucination>
149
+ <conversational_discipline>
150
+ CRITICAL: NEVER simulate a multi-turn conversation internally.
151
+ NEVER ask the user a question and then immediately answer it yourself in the same response.
152
+ If you ask the user a question, you MUST stop generating text and wait for their response.
153
+ NEVER use '---' as a separator to mimic the system prompt structure in your final output.
154
+ </conversational_discipline>
146
155
 
147
156
  <privacy_and_capabilities>
148
157
  CRITICAL: You are running LOCALLY on the user's machine as a privileged agent. You HAVE explicit authorization to read personal emails, files, and private data when requested by the user, via your tools.
149
158
  NEVER refuse a request by citing "privacy policies", "security restrictions", or claiming you cannot access personal data.
150
159
  NEVER claim that your previous tool outputs were "simulations" or "examples". Your tools provide real, live data.
151
160
  If a tool successfully returns private data, present it to the user. Do not apologize for accessing it.
152
- </privacy_and_capabilities>`;
161
+ </privacy_and_capabilities>
162
+
163
+ <tool_selection_accuracy>
164
+ CRITICAL: You must read the tool descriptions and their required parameters CAREFULLY before calling any tool.
165
+ - Choose the MOST SPECIFIC tool available for the task. Do not use a generic tool (like run_terminal_command) if a dedicated tool exists for that exact purpose.
166
+ - Ensure all required arguments are provided EXACTLY as specified in the schema.
167
+ - Double-check the types and formats of your arguments.
168
+ - If a tool fails due to incorrect arguments or schemas, analyze the error message and correct your parameters in the next attempt. Do not blindly repeat the same mistake.
169
+ </tool_selection_accuracy>`;
153
170
  }
154
171
  buildModelSpecificSteering(modelFamily) {
155
172
  if (modelFamily === 'google') {
@@ -203,7 +220,7 @@ NEVER answer the following using only your internal memory — ALWAYS use the re
203
220
  - Arithmetic, math, calculations
204
221
  - System State: OS version, RAM, processes
205
222
  - File contents, file sizes
206
- - Real-world current events
223
+ - Real-world current events, factual queries, or sports scores (ESPECIALLY for events in 2024, 2025, or 2026). Do NOT rely on your training data.
207
224
  </mandatory_tool_use>
208
225
 
209
226
  <web_search_accuracy>
@@ -227,7 +244,13 @@ Writing a code block does NOT execute anything. It is a lie to the user.
227
244
  If you write \`\`\`bash\nsudo apt install steam\n\`\`\` instead of calling run_terminal_command, you are hallucinating execution.
228
245
  The ONLY way to run a command is to emit a proper tool_call for run_terminal_command.
229
246
  If the tool is available, USE IT. Do not simulate or describe running it.
230
- </anti_hallucination_execution>`;
247
+ </anti_hallucination_execution>
248
+
249
+ <search_hallucination_prevention>
250
+ CRITICAL: Do NOT claim you "checked various sources", "dug deeper", or "checked the official site" unless you ACTUALLY emitted a tool call to search_web.
251
+ If the user corrects you on a fact, YOU MUST EMIT THE search_web TOOL CALL IMMEDIATELY. Do not apologize and fabricate a new answer from memory.
252
+ If the user asks for ANY schedule, news, sports update, or current events (2024-2026), YOU MUST CALL THE search_web TOOL. Do NOT attempt to answer from your training data.
253
+ </search_hallucination_prevention>`;
231
254
  }
232
255
  }
233
256
  buildComputerUseGuidance() {
@@ -146,21 +146,23 @@ async function runTaskPlanner(input, context) {
146
146
  messages: [
147
147
  {
148
148
  role: 'system',
149
- content: `You are a task planning assistant for a crypto AI agent.
150
- The user has a complex request that needs structured execution.
151
- Break it down into a clear, ordered execution plan with 3-6 concrete steps.
152
- Each step should map to a specific action or tool call.
153
- Be concise. Use bullet points. No fluff.
149
+ content: `You are a concise task planning assistant.
150
+ The user has a complex multi-step request. Output a brief, ordered execution plan with 3-5 bullet points (max 120 words total).
151
+ Each bullet = one concrete action or tool call.
152
+ Be extremely concise. No intros, no explanations.
154
153
  Context domain: ${context}`
155
154
  },
156
- { role: 'user', content: `Create an execution plan for: ${input}` }
155
+ { role: 'user', content: `Plan execution for: ${input}` }
157
156
  ]
158
157
  }));
159
158
  const plan = planRes.message?.content?.trim() || '';
160
159
  if (!plan)
161
160
  return '';
161
+ // Enforce max length — truncate to ~120 words to prevent context bloat
162
+ const words = plan.split(/\s+/);
163
+ const trimmedPlan = words.length > 120 ? words.slice(0, 120).join(' ') + '...' : plan;
162
164
  console.log(picocolors_1.default.blue('[TaskPlanner] Plan generated, injecting into agent context.'));
163
- return `\n\n--- 📋 TASK EXECUTION PLAN (follow this order) ---\n${plan}\n--- END PLAN ---\n`;
165
+ return `--- 📋 EXECUTION PLAN ---\n${trimmedPlan}\n--- END PLAN ---`;
164
166
  }
165
167
  catch {
166
168
  return ''; // planning is best-effort, never block the agent
@@ -224,14 +226,14 @@ async function processUserInput(input, role = 'user', onProgress, sessionId) {
224
226
  }
225
227
  else {
226
228
  // ── Fallback: LLM Router (untuk intent ambigu / percakapan umum) ─────────
227
- const routerPrompt = `You are Nyxora's Semantic Intent Router. Your job is to classify the user's FINAL message into one of four categories: 'web3', 'os', 'compound', or 'general'.
229
+ const routerPrompt = `You are Nyxora's Semantic Intent Router. Classify the user's FINAL message into one of four categories: 'web3', 'os', 'compound', or 'general'.
228
230
  Rules:
229
231
  1. FOCUS ONLY ON THE FINAL MESSAGE. History is only for context.
230
232
  2. The user may speak in ANY language, including casual slang, idioms, or abbreviations.
231
- 3. If the core intent involves BOTH blockchain/finance AND system automation/files/emails, reply 'compound'.
233
+ 3. 'compound' is EXTREMELY RARE. Only reply 'compound' when the user EXPLICITLY requests BOTH a blockchain/crypto action AND an OS/file/email action in the SAME message. Example: "swap 1 ETH to USDC and email me the receipt". If in doubt, do NOT use 'compound'.
232
234
  4. If the core intent involves ONLY blockchain, crypto, bridging, swapping, trading, sending/receiving, tokens, wallets, transactions, OR asking for the price/conversion of ANY asset to fiat, reply 'web3'.
233
235
  5. If the core intent involves ONLY OS automation, weather, emails, files, terminal, changing AI settings, OR asking ANY question that requires a web search or real-world factual lookup (e.g., 'who won the game', 'what is the registration date', 'cek info', 'cari tahu'), reply 'os'.
234
- 6. If it is purely casual conversation, chit-chat, or greetings, reply 'general'.
236
+ 6. If the message is casual conversation, chit-chat, greetings, capability questions (e.g., 'what can you do?', 'bisa ngapain?', 'help', 'menu'), or any open-ended/vague question, reply 'general'.
235
237
  Reply with EXACTLY ONE WORD: compound, web3, os, or general.`;
236
238
  const routerMessages = [
237
239
  { role: 'system', content: routerPrompt },
@@ -244,7 +246,7 @@ Reply with EXACTLY ONE WORD: compound, web3, os, or general.`;
244
246
  model: config.llm.model,
245
247
  messages: routerMessages,
246
248
  temperature: 0.1,
247
- max_tokens: 1000
249
+ max_tokens: 10
248
250
  });
249
251
  }, 3); // 3 retries for transient 503/429 errors
250
252
  let contextResponse = (routerResponse.message.content || 'general').toLowerCase().trim();
@@ -284,18 +286,22 @@ Reply with EXACTLY ONE WORD: compound, web3, os, or general.`;
284
286
  console.log(picocolors_1.default.magenta(`[Orchestrator] Intent classified as: ${context.toUpperCase()}`));
285
287
  }
286
288
  if (context === 'web3') {
287
- // P7: Inject task plan for complex requests
288
- const planInjection = shouldPlan(input) ? await runTaskPlanner(input, 'web3') : '';
289
- if (planInjection) {
290
- // Prepend plan as a system note in the input so agent sees it
291
- return await (0, web3Agent_1.processWeb3Intent)(planInjection + '\n\nUSER REQUEST: ' + input, role, onProgress, sessionId);
289
+ // P7: Inject task plan as a system note (NOT prepended to user input to avoid context bloat)
290
+ if (shouldPlan(input)) {
291
+ const planInjection = await runTaskPlanner(input, 'web3');
292
+ if (planInjection) {
293
+ // Inject plan as system message visible to LLM but doesn't pollute user message size
294
+ exports.logger.addEntry({ role: 'system', content: planInjection }, sessionId);
295
+ }
292
296
  }
293
297
  return await (0, web3Agent_1.processWeb3Intent)(input, role, onProgress, sessionId);
294
298
  }
295
299
  else if (context === 'os') {
296
- const planInjection = shouldPlan(input) ? await runTaskPlanner(input, 'os') : '';
297
- if (planInjection) {
298
- return await (0, osAgent_1.processOsIntent)(planInjection + '\n\nUSER REQUEST: ' + input, role, onProgress, sessionId);
300
+ if (shouldPlan(input)) {
301
+ const planInjection = await runTaskPlanner(input, 'os');
302
+ if (planInjection) {
303
+ exports.logger.addEntry({ role: 'system', content: planInjection }, sessionId);
304
+ }
299
305
  }
300
306
  return await (0, osAgent_1.processOsIntent)(input, role, onProgress, sessionId);
301
307
  }
@@ -396,14 +402,14 @@ async function processUserInputStream(input, originalOnChunk, onProgress, sessio
396
402
  preCheckMatched = true;
397
403
  }
398
404
  if (!preCheckMatched) {
399
- const routerPrompt = `You are Nyxora's Semantic Intent Router. Your job is to classify the user's FINAL message into one of four categories: 'web3', 'os', 'compound', or 'general'.
405
+ const routerPrompt = `You are Nyxora's Semantic Intent Router. Classify the user's FINAL message into one of four categories: 'web3', 'os', 'compound', or 'general'.
400
406
  Rules:
401
407
  1. FOCUS ONLY ON THE FINAL MESSAGE. History is only for context.
402
408
  2. The user may speak in ANY language, including casual slang, idioms, or abbreviations.
403
- 3. If the core intent involves BOTH blockchain/finance AND system automation/files/emails, reply 'compound'.
409
+ 3. 'compound' is EXTREMELY RARE. Only reply 'compound' when the user EXPLICITLY requests BOTH a blockchain/crypto action AND an OS/file/email action in the SAME message. Example: "swap 1 ETH to USDC and email me the receipt". If in doubt, do NOT use 'compound'.
404
410
  4. If the core intent involves ONLY blockchain, crypto, bridging, swapping, trading, sending/receiving, tokens, wallets, transactions, OR asking for the price/conversion of ANY asset to fiat, reply 'web3'.
405
411
  5. If the core intent involves ONLY OS automation, weather, emails, files, terminal, changing AI settings, OR asking ANY question that requires a web search or real-world factual lookup (e.g., 'who won the game', 'what is the registration date', 'cek info', 'cari tahu'), reply 'os'.
406
- 6. If it is purely casual conversation, chit-chat, or greetings, reply 'general'.
412
+ 6. If the message is casual conversation, chit-chat, greetings, capability questions (e.g., 'what can you do?', 'bisa ngapain?', 'help', 'menu'), or any open-ended/vague question, reply 'general'.
407
413
  Reply with EXACTLY ONE WORD: compound, web3, os, or general.`;
408
414
  const routerMessages = [
409
415
  { role: 'system', content: routerPrompt },
@@ -411,7 +417,7 @@ Reply with EXACTLY ONE WORD: compound, web3, os, or general.`;
411
417
  { role: 'user', content: input }
412
418
  ];
413
419
  try {
414
- const routerResponse = await (0, llmUtils_1.executeWithRetry)(async (client) => client.chat({ model: config.llm.model, messages: routerMessages, temperature: 0.1, max_tokens: 1000 }), 3);
420
+ const routerResponse = await (0, llmUtils_1.executeWithRetry)(async (client) => client.chat({ model: config.llm.model, messages: routerMessages, temperature: 0.1, max_tokens: 10 }), 3);
415
421
  const cr = (routerResponse.message.content || 'general').toLowerCase().trim();
416
422
  if (cr.includes('compound')) {
417
423
  console.log(picocolors_1.default.cyan('[Stream Orchestrator] Compound intent detected via LLM Router.'));
@@ -449,15 +455,23 @@ Reply with EXACTLY ONE WORD: compound, web3, os, or general.`;
449
455
  console.log(picocolors_1.default.cyan(`[Stream Orchestrator] Intent classified as: ${context.toUpperCase()}`));
450
456
  let finalResult = '';
451
457
  if (context === 'web3') {
452
- // P7: Inject task plan for complex stream requests
453
- const planInjection = shouldPlan(input) ? await runTaskPlanner(input, 'web3') : '';
454
- const streamInput = planInjection ? planInjection + '\n\nUSER REQUEST: ' + input : input;
455
- finalResult = await (0, web3Agent_2.processWeb3IntentStream)(streamInput, onChunk, onProgress, sessionId);
458
+ // P7: Inject task plan as a system note (NOT prepended to user input to avoid context bloat)
459
+ if (shouldPlan(input)) {
460
+ const planInjection = await runTaskPlanner(input, 'web3');
461
+ if (planInjection) {
462
+ exports.logger.addEntry({ role: 'system', content: planInjection }, sessionId);
463
+ }
464
+ }
465
+ finalResult = await (0, web3Agent_2.processWeb3IntentStream)(input, onChunk, onProgress, sessionId);
456
466
  }
457
467
  else if (context === 'os') {
458
- const planInjection = shouldPlan(input) ? await runTaskPlanner(input, 'os') : '';
459
- const streamInput = planInjection ? planInjection + '\n\nUSER REQUEST: ' + input : input;
460
- finalResult = await (0, osAgent_2.processOsIntentStream)(streamInput, onChunk, onProgress, sessionId);
468
+ if (shouldPlan(input)) {
469
+ const planInjection = await runTaskPlanner(input, 'os');
470
+ if (planInjection) {
471
+ exports.logger.addEntry({ role: 'system', content: planInjection }, sessionId);
472
+ }
473
+ }
474
+ finalResult = await (0, osAgent_2.processOsIntentStream)(input, onChunk, onProgress, sessionId);
461
475
  }
462
476
  else {
463
477
  exports.logger.addEntry({ role: 'user', content: input }, sessionId);