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.
- package/CHANGELOG.md +26 -0
- package/dist/packages/core/src/agent/osAgent.js +171 -20
- package/dist/packages/core/src/agent/promptBuilder.js +27 -4
- package/dist/packages/core/src/agent/reasoning.js +44 -30
- package/dist/packages/core/src/agent/web3Agent.js +118 -16
- package/dist/packages/core/src/channels/telegram.js +71 -16
- package/dist/packages/core/src/channels/whatsappAdapter.js +6 -37
- package/dist/packages/core/src/gateway/server.js +1 -1
- package/dist/packages/core/src/gateway/setup.js +9 -3
- package/dist/packages/core/src/plugin/PluginManager.js +15 -1
- package/dist/packages/core/src/system/plugins/SystemWorkspacePlugin.js +5 -0
- package/dist/packages/core/src/system/skills/analyzeImage.js +14 -21
- package/dist/packages/core/src/system/skills/generateImage.js +63 -0
- package/dist/packages/core/src/system/skills/searchWeb.js +44 -1
- package/dist/packages/core/src/utils/contextSummarizer.js +29 -2
- package/dist/packages/core/src/utils/historySanitizer.js +12 -0
- package/dist/packages/core/src/utils/skillManager.js +1 -0
- package/dist/packages/core/src/web3/skills/marketAnalysis.js +15 -9
- package/dist/packages/core/src/web3/utils/riskIntelligence.js +14 -4
- package/package.json +18 -16
- package/packages/core/package.json +1 -4
- package/packages/core/playbooks/apple/DESCRIPTION.md +2 -0
- package/packages/core/playbooks/apple/apple-notes/SKILL.md +90 -0
- package/packages/core/playbooks/apple/apple-reminders/SKILL.md +130 -0
- package/packages/core/playbooks/apple/findmy/SKILL.md +131 -0
- package/packages/core/playbooks/apple/imessage/SKILL.md +102 -0
- package/packages/core/playbooks/autonomous-ai-agents/DESCRIPTION.md +3 -0
- package/packages/core/playbooks/autonomous-ai-agents/claude-code/SKILL.md +745 -0
- package/packages/core/playbooks/autonomous-ai-agents/codex/SKILL.md +149 -0
- package/packages/core/playbooks/autonomous-ai-agents/nyxora-agent/SKILL.md +1111 -0
- package/packages/core/playbooks/autonomous-ai-agents/nyxora-agent/references/native-mcp.md +344 -0
- package/packages/core/playbooks/autonomous-ai-agents/nyxora-agent/references/webhooks.md +194 -0
- package/packages/core/playbooks/autonomous-ai-agents/opencode/SKILL.md +219 -0
- package/packages/core/playbooks/computer-use/SKILL.md +263 -0
- package/packages/core/playbooks/creative/DESCRIPTION.md +3 -0
- package/packages/core/playbooks/creative/architecture-diagram/SKILL.md +148 -0
- package/packages/core/playbooks/creative/architecture-diagram/templates/template.html +319 -0
- package/packages/core/playbooks/creative/ascii-art/SKILL.md +322 -0
- package/packages/core/playbooks/creative/ascii-video/README.md +290 -0
- package/packages/core/playbooks/creative/ascii-video/SKILL.md +241 -0
- package/packages/core/playbooks/creative/ascii-video/references/architecture.md +802 -0
- package/packages/core/playbooks/creative/ascii-video/references/composition.md +892 -0
- package/packages/core/playbooks/creative/ascii-video/references/effects.md +1865 -0
- package/packages/core/playbooks/creative/ascii-video/references/inputs.md +685 -0
- package/packages/core/playbooks/creative/ascii-video/references/optimization.md +688 -0
- package/packages/core/playbooks/creative/ascii-video/references/scenes.md +1011 -0
- package/packages/core/playbooks/creative/ascii-video/references/shaders.md +1385 -0
- package/packages/core/playbooks/creative/ascii-video/references/troubleshooting.md +367 -0
- package/packages/core/playbooks/creative/baoyu-infographic/PORT_NOTES.md +43 -0
- package/packages/core/playbooks/creative/baoyu-infographic/SKILL.md +237 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/analysis-framework.md +182 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/base-prompt.md +43 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/bento-grid.md +41 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/binary-comparison.md +48 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/bridge.md +41 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/circular-flow.md +41 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/comic-strip.md +41 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/comparison-matrix.md +41 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/dashboard.md +41 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/dense-modules.md +72 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/funnel.md +41 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/hierarchical-layers.md +48 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/hub-spoke.md +41 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/iceberg.md +41 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/isometric-map.md +41 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/jigsaw.md +41 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/linear-progression.md +48 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/periodic-table.md +41 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/story-mountain.md +41 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/structural-breakdown.md +48 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/tree-branching.md +41 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/venn-diagram.md +41 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/layouts/winding-roadmap.md +41 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/structured-content-template.md +244 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/styles/aged-academia.md +36 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/styles/bold-graphic.md +36 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/styles/chalkboard.md +61 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/styles/claymation.md +29 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/styles/corporate-memphis.md +29 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/styles/craft-handmade.md +44 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/styles/cyberpunk-neon.md +29 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/styles/hand-drawn-edu.md +63 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/styles/ikea-manual.md +29 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/styles/kawaii.md +29 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/styles/knolling.md +29 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/styles/lego-brick.md +29 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/styles/morandi-journal.md +60 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/styles/origami.md +29 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/styles/pixel-art.md +29 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/styles/pop-laboratory.md +48 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/styles/retro-pop-grid.md +47 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/styles/storybook-watercolor.md +29 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/styles/subway-map.md +29 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/styles/technical-schematic.md +36 -0
- package/packages/core/playbooks/creative/baoyu-infographic/references/styles/ui-wireframe.md +29 -0
- package/packages/core/playbooks/creative/claude-design/SKILL.md +650 -0
- package/packages/core/playbooks/creative/comfyui/SKILL.md +612 -0
- package/packages/core/playbooks/creative/comfyui/references/official-cli.md +255 -0
- package/packages/core/playbooks/creative/comfyui/references/rest-api.md +312 -0
- package/packages/core/playbooks/creative/comfyui/references/template-integrity.md +243 -0
- package/packages/core/playbooks/creative/comfyui/references/workflow-format.md +226 -0
- package/packages/core/playbooks/creative/comfyui/scripts/_common.py +835 -0
- package/packages/core/playbooks/creative/comfyui/scripts/auto_fix_deps.py +225 -0
- package/packages/core/playbooks/creative/comfyui/scripts/check_deps.py +437 -0
- package/packages/core/playbooks/creative/comfyui/scripts/comfyui_setup.sh +286 -0
- package/packages/core/playbooks/creative/comfyui/scripts/extract_schema.py +315 -0
- package/packages/core/playbooks/creative/comfyui/scripts/fetch_logs.py +157 -0
- package/packages/core/playbooks/creative/comfyui/scripts/hardware_check.py +497 -0
- package/packages/core/playbooks/creative/comfyui/scripts/health_check.py +223 -0
- package/packages/core/playbooks/creative/comfyui/scripts/run_batch.py +243 -0
- package/packages/core/playbooks/creative/comfyui/scripts/run_workflow.py +796 -0
- package/packages/core/playbooks/creative/comfyui/scripts/ws_monitor.py +267 -0
- package/packages/core/playbooks/creative/comfyui/tests/README.md +50 -0
- package/packages/core/playbooks/creative/comfyui/tests/conftest.py +64 -0
- package/packages/core/playbooks/creative/comfyui/tests/pytest.ini +5 -0
- package/packages/core/playbooks/creative/comfyui/tests/test_check_deps.py +68 -0
- package/packages/core/playbooks/creative/comfyui/tests/test_cloud_integration.py +95 -0
- package/packages/core/playbooks/creative/comfyui/tests/test_common.py +443 -0
- package/packages/core/playbooks/creative/comfyui/tests/test_extract_schema.py +184 -0
- package/packages/core/playbooks/creative/comfyui/tests/test_run_workflow.py +210 -0
- package/packages/core/playbooks/creative/comfyui/workflows/README.md +86 -0
- package/packages/core/playbooks/creative/comfyui/workflows/animatediff_video.json +64 -0
- package/packages/core/playbooks/creative/comfyui/workflows/flux_dev_txt2img.json +78 -0
- package/packages/core/playbooks/creative/comfyui/workflows/sd15_txt2img.json +49 -0
- package/packages/core/playbooks/creative/comfyui/workflows/sdxl_img2img.json +54 -0
- package/packages/core/playbooks/creative/comfyui/workflows/sdxl_inpaint.json +59 -0
- package/packages/core/playbooks/creative/comfyui/workflows/sdxl_txt2img.json +49 -0
- package/packages/core/playbooks/creative/comfyui/workflows/upscale_4x.json +27 -0
- package/packages/core/playbooks/creative/comfyui/workflows/wan_video_t2v.json +69 -0
- package/packages/core/playbooks/creative/design-md/SKILL.md +199 -0
- package/packages/core/playbooks/creative/design-md/templates/starter.md +99 -0
- package/packages/core/playbooks/creative/excalidraw/SKILL.md +199 -0
- package/packages/core/playbooks/creative/excalidraw/references/colors.md +44 -0
- package/packages/core/playbooks/creative/excalidraw/references/dark-mode.md +68 -0
- package/packages/core/playbooks/creative/excalidraw/references/examples.md +141 -0
- package/packages/core/playbooks/creative/excalidraw/scripts/upload.py +133 -0
- package/packages/core/playbooks/creative/humanizer/LICENSE +21 -0
- package/packages/core/playbooks/creative/humanizer/SKILL.md +578 -0
- package/packages/core/playbooks/creative/manim-video/README.md +23 -0
- package/packages/core/playbooks/creative/manim-video/SKILL.md +269 -0
- package/packages/core/playbooks/creative/manim-video/references/animation-design-thinking.md +161 -0
- package/packages/core/playbooks/creative/manim-video/references/animations.md +282 -0
- package/packages/core/playbooks/creative/manim-video/references/camera-and-3d.md +135 -0
- package/packages/core/playbooks/creative/manim-video/references/decorations.md +202 -0
- package/packages/core/playbooks/creative/manim-video/references/equations.md +216 -0
- package/packages/core/playbooks/creative/manim-video/references/graphs-and-data.md +163 -0
- package/packages/core/playbooks/creative/manim-video/references/mobjects.md +333 -0
- package/packages/core/playbooks/creative/manim-video/references/paper-explainer.md +255 -0
- package/packages/core/playbooks/creative/manim-video/references/production-quality.md +190 -0
- package/packages/core/playbooks/creative/manim-video/references/rendering.md +185 -0
- package/packages/core/playbooks/creative/manim-video/references/scene-planning.md +118 -0
- package/packages/core/playbooks/creative/manim-video/references/troubleshooting.md +135 -0
- package/packages/core/playbooks/creative/manim-video/references/updaters-and-trackers.md +260 -0
- package/packages/core/playbooks/creative/manim-video/references/visual-design.md +124 -0
- package/packages/core/playbooks/creative/manim-video/scripts/setup.sh +14 -0
- package/packages/core/playbooks/creative/p5js/README.md +64 -0
- package/packages/core/playbooks/creative/p5js/SKILL.md +556 -0
- package/packages/core/playbooks/creative/p5js/references/animation.md +439 -0
- package/packages/core/playbooks/creative/p5js/references/color-systems.md +352 -0
- package/packages/core/playbooks/creative/p5js/references/core-api.md +410 -0
- package/packages/core/playbooks/creative/p5js/references/export-pipeline.md +566 -0
- package/packages/core/playbooks/creative/p5js/references/interaction.md +398 -0
- package/packages/core/playbooks/creative/p5js/references/shapes-and-geometry.md +300 -0
- package/packages/core/playbooks/creative/p5js/references/troubleshooting.md +532 -0
- package/packages/core/playbooks/creative/p5js/references/typography.md +302 -0
- package/packages/core/playbooks/creative/p5js/references/visual-effects.md +895 -0
- package/packages/core/playbooks/creative/p5js/references/webgl-and-3d.md +423 -0
- package/packages/core/playbooks/creative/p5js/scripts/export-frames.js +179 -0
- package/packages/core/playbooks/creative/p5js/scripts/render.sh +108 -0
- package/packages/core/playbooks/creative/p5js/scripts/serve.sh +28 -0
- package/packages/core/playbooks/creative/p5js/scripts/setup.sh +87 -0
- package/packages/core/playbooks/creative/p5js/templates/viewer.html +395 -0
- package/packages/core/playbooks/creative/popular-web-designs/SKILL.md +214 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/airbnb.md +259 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/airtable.md +102 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/apple.md +326 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/bmw.md +193 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/cal.md +272 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/claude.md +325 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/clay.md +317 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/clickhouse.md +294 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/cohere.md +279 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/coinbase.md +142 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/composio.md +320 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/cursor.md +322 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/elevenlabs.md +278 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/expo.md +294 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/figma.md +233 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/framer.md +259 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/hashicorp.md +291 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/ibm.md +345 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/intercom.md +159 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/kraken.md +138 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/linear.app.md +380 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/lovable.md +311 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/minimax.md +270 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/mintlify.md +339 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/miro.md +121 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/mistral.ai.md +274 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/mongodb.md +279 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/notion.md +322 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/nvidia.md +306 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/ollama.md +280 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/opencode.ai.md +294 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/pinterest.md +243 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/posthog.md +269 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/raycast.md +281 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/replicate.md +274 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/resend.md +316 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/revolut.md +198 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/runwayml.md +257 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/sanity.md +370 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/sentry.md +275 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/spacex.md +207 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/spotify.md +259 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/stripe.md +335 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/supabase.md +268 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/superhuman.md +265 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/together.ai.md +276 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/uber.md +308 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/vercel.md +323 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/voltagent.md +336 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/warp.md +266 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/webflow.md +105 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/wise.md +186 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/x.ai.md +270 -0
- package/packages/core/playbooks/creative/popular-web-designs/templates/zapier.md +341 -0
- package/packages/core/playbooks/creative/pretext/SKILL.md +220 -0
- package/packages/core/playbooks/creative/pretext/references/patterns.md +258 -0
- package/packages/core/playbooks/creative/pretext/templates/donut-orbit.html +1468 -0
- package/packages/core/playbooks/creative/pretext/templates/hello-orb-flow.html +95 -0
- package/packages/core/playbooks/creative/sketch/SKILL.md +218 -0
- package/packages/core/playbooks/creative/songwriting-and-ai-music/SKILL.md +287 -0
- package/packages/core/playbooks/creative/touchdesigner-mcp/SKILL.md +356 -0
- package/packages/core/playbooks/creative/touchdesigner-mcp/references/3d-scene.md +275 -0
- package/packages/core/playbooks/creative/touchdesigner-mcp/references/animation.md +221 -0
- package/packages/core/playbooks/creative/touchdesigner-mcp/references/audio-reactive.md +175 -0
- package/packages/core/playbooks/creative/touchdesigner-mcp/references/dat-scripting.md +352 -0
- package/packages/core/playbooks/creative/touchdesigner-mcp/references/external-data.md +322 -0
- package/packages/core/playbooks/creative/touchdesigner-mcp/references/geometry-comp.md +121 -0
- package/packages/core/playbooks/creative/touchdesigner-mcp/references/glsl.md +151 -0
- package/packages/core/playbooks/creative/touchdesigner-mcp/references/layout-compositor.md +131 -0
- package/packages/core/playbooks/creative/touchdesigner-mcp/references/mcp-tools.md +382 -0
- package/packages/core/playbooks/creative/touchdesigner-mcp/references/midi-osc.md +211 -0
- package/packages/core/playbooks/creative/touchdesigner-mcp/references/network-patterns.md +966 -0
- package/packages/core/playbooks/creative/touchdesigner-mcp/references/operator-tips.md +106 -0
- package/packages/core/playbooks/creative/touchdesigner-mcp/references/operators.md +239 -0
- package/packages/core/playbooks/creative/touchdesigner-mcp/references/panel-ui.md +281 -0
- package/packages/core/playbooks/creative/touchdesigner-mcp/references/particles.md +245 -0
- package/packages/core/playbooks/creative/touchdesigner-mcp/references/pitfalls.md +704 -0
- package/packages/core/playbooks/creative/touchdesigner-mcp/references/postfx.md +183 -0
- package/packages/core/playbooks/creative/touchdesigner-mcp/references/projection-mapping.md +211 -0
- package/packages/core/playbooks/creative/touchdesigner-mcp/references/python-api.md +463 -0
- package/packages/core/playbooks/creative/touchdesigner-mcp/references/replicator.md +198 -0
- package/packages/core/playbooks/creative/touchdesigner-mcp/references/troubleshooting.md +244 -0
- package/packages/core/playbooks/creative/touchdesigner-mcp/scripts/setup.sh +115 -0
- package/packages/core/playbooks/data-science/DESCRIPTION.md +3 -0
- package/packages/core/playbooks/data-science/jupyter-live-kernel/SKILL.md +167 -0
- package/packages/core/playbooks/dogfood/SKILL.md +162 -0
- package/packages/core/playbooks/dogfood/references/issue-taxonomy.md +109 -0
- package/packages/core/playbooks/dogfood/templates/dogfood-report-template.md +86 -0
- package/packages/core/playbooks/email/DESCRIPTION.md +3 -0
- package/packages/core/playbooks/github/DESCRIPTION.md +3 -0
- package/packages/core/playbooks/github/codebase-inspection/SKILL.md +116 -0
- package/packages/core/playbooks/github/github-auth/SKILL.md +247 -0
- package/packages/core/playbooks/github/github-auth/scripts/gh-env.sh +66 -0
- package/packages/core/playbooks/github/github-code-review/SKILL.md +481 -0
- package/packages/core/playbooks/github/github-code-review/references/review-output-template.md +74 -0
- package/packages/core/playbooks/github/github-issues/SKILL.md +370 -0
- package/packages/core/playbooks/github/github-issues/templates/bug-report.md +35 -0
- package/packages/core/playbooks/github/github-issues/templates/feature-request.md +31 -0
- package/packages/core/playbooks/github/github-pr-workflow/SKILL.md +367 -0
- package/packages/core/playbooks/github/github-pr-workflow/references/ci-troubleshooting.md +183 -0
- package/packages/core/playbooks/github/github-pr-workflow/references/conventional-commits.md +71 -0
- package/packages/core/playbooks/github/github-pr-workflow/templates/pr-body-bugfix.md +35 -0
- package/packages/core/playbooks/github/github-pr-workflow/templates/pr-body-feature.md +33 -0
- package/packages/core/playbooks/github/github-repo-management/SKILL.md +516 -0
- package/packages/core/playbooks/github/github-repo-management/references/github-api-cheatsheet.md +161 -0
- package/packages/core/playbooks/index-cache/anthropics_skills_skills_.json +1 -0
- package/packages/core/playbooks/index-cache/claude_marketplace_anthropics_skills.json +1 -0
- package/packages/core/playbooks/index-cache/lobehub_index.json +1 -0
- package/packages/core/playbooks/index-cache/openai_skills_skills_.json +1 -0
- package/packages/core/playbooks/media/DESCRIPTION.md +3 -0
- package/packages/core/playbooks/media/gif-search/SKILL.md +91 -0
- package/packages/core/playbooks/media/heartmula/SKILL.md +171 -0
- package/packages/core/playbooks/media/songsee/SKILL.md +83 -0
- package/packages/core/playbooks/media/youtube-content/SKILL.md +76 -0
- package/packages/core/playbooks/media/youtube-content/references/output-formats.md +56 -0
- package/packages/core/playbooks/media/youtube-content/scripts/fetch_transcript.py +124 -0
- package/packages/core/playbooks/mlops/DESCRIPTION.md +3 -0
- package/packages/core/playbooks/mlops/evaluation/DESCRIPTION.md +3 -0
- package/packages/core/playbooks/mlops/evaluation/lm-evaluation-harness/SKILL.md +498 -0
- package/packages/core/playbooks/mlops/evaluation/lm-evaluation-harness/references/api-evaluation.md +490 -0
- package/packages/core/playbooks/mlops/evaluation/lm-evaluation-harness/references/benchmark-guide.md +488 -0
- package/packages/core/playbooks/mlops/evaluation/lm-evaluation-harness/references/custom-tasks.md +602 -0
- package/packages/core/playbooks/mlops/evaluation/lm-evaluation-harness/references/distributed-eval.md +519 -0
- package/packages/core/playbooks/mlops/evaluation/weights-and-biases/SKILL.md +594 -0
- package/packages/core/playbooks/mlops/evaluation/weights-and-biases/references/artifacts.md +584 -0
- package/packages/core/playbooks/mlops/evaluation/weights-and-biases/references/integrations.md +700 -0
- package/packages/core/playbooks/mlops/evaluation/weights-and-biases/references/sweeps.md +847 -0
- package/packages/core/playbooks/mlops/huggingface-hub/SKILL.md +81 -0
- package/packages/core/playbooks/mlops/inference/DESCRIPTION.md +3 -0
- package/packages/core/playbooks/mlops/inference/llama-cpp/SKILL.md +249 -0
- package/packages/core/playbooks/mlops/inference/llama-cpp/references/advanced-usage.md +504 -0
- package/packages/core/playbooks/mlops/inference/llama-cpp/references/hub-discovery.md +168 -0
- package/packages/core/playbooks/mlops/inference/llama-cpp/references/optimization.md +89 -0
- package/packages/core/playbooks/mlops/inference/llama-cpp/references/quantization.md +243 -0
- package/packages/core/playbooks/mlops/inference/llama-cpp/references/server.md +150 -0
- package/packages/core/playbooks/mlops/inference/llama-cpp/references/troubleshooting.md +442 -0
- package/packages/core/playbooks/mlops/inference/vllm/SKILL.md +372 -0
- package/packages/core/playbooks/mlops/inference/vllm/references/optimization.md +226 -0
- package/packages/core/playbooks/mlops/inference/vllm/references/quantization.md +284 -0
- package/packages/core/playbooks/mlops/inference/vllm/references/server-deployment.md +255 -0
- package/packages/core/playbooks/mlops/inference/vllm/references/troubleshooting.md +447 -0
- package/packages/core/playbooks/mlops/models/DESCRIPTION.md +3 -0
- package/packages/core/playbooks/mlops/models/audiocraft/SKILL.md +568 -0
- package/packages/core/playbooks/mlops/models/audiocraft/references/advanced-usage.md +666 -0
- package/packages/core/playbooks/mlops/models/audiocraft/references/troubleshooting.md +504 -0
- package/packages/core/playbooks/mlops/models/segment-anything/SKILL.md +506 -0
- package/packages/core/playbooks/mlops/models/segment-anything/references/advanced-usage.md +589 -0
- package/packages/core/playbooks/mlops/models/segment-anything/references/troubleshooting.md +484 -0
- package/packages/core/playbooks/note-taking/DESCRIPTION.md +3 -0
- package/packages/core/playbooks/note-taking/obsidian/SKILL.md +61 -0
- package/packages/core/playbooks/productivity/DESCRIPTION.md +3 -0
- package/packages/core/playbooks/productivity/airtable/SKILL.md +229 -0
- package/packages/core/playbooks/productivity/maps/SKILL.md +195 -0
- package/packages/core/playbooks/productivity/maps/scripts/maps_client.py +1297 -0
- package/packages/core/playbooks/productivity/nano-pdf/SKILL.md +52 -0
- package/packages/core/playbooks/productivity/notion/SKILL.md +448 -0
- package/packages/core/playbooks/productivity/notion/references/block-types.md +112 -0
- package/packages/core/playbooks/productivity/ocr-and-documents/DESCRIPTION.md +3 -0
- package/packages/core/playbooks/productivity/ocr-and-documents/SKILL.md +172 -0
- package/packages/core/playbooks/productivity/ocr-and-documents/scripts/extract_marker.py +87 -0
- package/packages/core/playbooks/productivity/ocr-and-documents/scripts/extract_pymupdf.py +98 -0
- package/packages/core/playbooks/productivity/petdex/SKILL.md +89 -0
- package/packages/core/playbooks/productivity/powerpoint/LICENSE.txt +30 -0
- package/packages/core/playbooks/productivity/powerpoint/SKILL.md +237 -0
- package/packages/core/playbooks/productivity/powerpoint/editing.md +205 -0
- package/packages/core/playbooks/productivity/powerpoint/pptxgenjs.md +420 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/__init__.py +0 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/add_slide.py +195 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/clean.py +286 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/helpers/__init__.py +0 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/helpers/merge_runs.py +199 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/helpers/simplify_redlines.py +197 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/pack.py +159 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-contentTypes.xsd +42 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-coreProperties.xsd +50 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-digSig.xsd +49 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-relationships.xsd +33 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/mce/mc.xsd +75 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/packages/core/playbooks/productivity/powerpoint/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/packages/core/playbooks/productivity/teams-meeting-pipeline/SKILL.md +116 -0
- package/packages/core/playbooks/research/DESCRIPTION.md +3 -0
- package/packages/core/playbooks/research/arxiv/SKILL.md +282 -0
- package/packages/core/playbooks/research/arxiv/scripts/search_arxiv.py +114 -0
- package/packages/core/playbooks/research/blogwatcher/SKILL.md +137 -0
- package/packages/core/playbooks/research/llm-wiki/SKILL.md +507 -0
- package/packages/core/playbooks/research/polymarket/SKILL.md +77 -0
- package/packages/core/playbooks/research/polymarket/references/api-endpoints.md +220 -0
- package/packages/core/playbooks/research/polymarket/scripts/polymarket.py +284 -0
- package/packages/core/playbooks/research/research-paper-writing/SKILL.md +2377 -0
- package/packages/core/playbooks/research/research-paper-writing/references/autoreason-methodology.md +394 -0
- package/packages/core/playbooks/research/research-paper-writing/references/checklists.md +434 -0
- package/packages/core/playbooks/research/research-paper-writing/references/citation-workflow.md +564 -0
- package/packages/core/playbooks/research/research-paper-writing/references/experiment-patterns.md +728 -0
- package/packages/core/playbooks/research/research-paper-writing/references/human-evaluation.md +476 -0
- package/packages/core/playbooks/research/research-paper-writing/references/paper-types.md +481 -0
- package/packages/core/playbooks/research/research-paper-writing/references/reviewer-guidelines.md +433 -0
- package/packages/core/playbooks/research/research-paper-writing/references/sources.md +191 -0
- package/packages/core/playbooks/research/research-paper-writing/references/writing-guide.md +474 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/README.md +251 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/aaai2026/README.md +534 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/aaai2026/aaai2026-unified-supp.tex +144 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/aaai2026/aaai2026-unified-template.tex +952 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/aaai2026/aaai2026.bib +111 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/aaai2026/aaai2026.bst +1493 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/aaai2026/aaai2026.sty +315 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/acl/README.md +50 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/acl/acl.sty +312 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/acl/acl_latex.tex +377 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/acl/acl_lualatex.tex +101 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/acl/acl_natbib.bst +1940 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/acl/anthology.bib.txt +26 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/acl/custom.bib +70 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/acl/formatting.md +326 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/colm2025/README.md +3 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/colm2025/colm2025_conference.bib +11 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/colm2025/colm2025_conference.bst +1440 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/colm2025/colm2025_conference.pdf +0 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/colm2025/colm2025_conference.sty +218 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/colm2025/colm2025_conference.tex +305 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/colm2025/fancyhdr.sty +485 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/colm2025/math_commands.tex +508 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/colm2025/natbib.sty +1246 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/iclr2026/fancyhdr.sty +485 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/iclr2026/iclr2026_conference.bib +24 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/iclr2026/iclr2026_conference.bst +1440 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/iclr2026/iclr2026_conference.pdf +0 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/iclr2026/iclr2026_conference.sty +246 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/iclr2026/iclr2026_conference.tex +414 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/iclr2026/math_commands.tex +508 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/iclr2026/natbib.sty +1246 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/icml2026/algorithm.sty +79 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/icml2026/algorithmic.sty +201 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/icml2026/example_paper.bib +75 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/icml2026/example_paper.pdf +0 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/icml2026/example_paper.tex +662 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/icml2026/fancyhdr.sty +864 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/icml2026/icml2026.bst +1443 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/icml2026/icml2026.sty +767 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/icml2026/icml_numpapers.pdf +0 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/neurips2025/Makefile +36 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/neurips2025/extra_pkgs.tex +53 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/neurips2025/main.tex +38 -0
- package/packages/core/playbooks/research/research-paper-writing/templates/neurips2025/neurips.sty +382 -0
- package/packages/core/playbooks/smart-home/DESCRIPTION.md +3 -0
- package/packages/core/playbooks/smart-home/openhue/SKILL.md +109 -0
- package/packages/core/playbooks/social-media/DESCRIPTION.md +3 -0
- package/packages/core/playbooks/social-media/social-fetch/social-fetch.md +62 -0
- package/packages/core/playbooks/social-media/xurl/SKILL.md +432 -0
- package/packages/core/playbooks/software-development/node-inspect-debugger/SKILL.md +319 -0
- package/packages/core/playbooks/software-development/nyxora-agent-skill-authoring/SKILL.md +196 -0
- package/packages/core/playbooks/software-development/plan/SKILL.md +338 -0
- package/packages/core/playbooks/software-development/python-debugpy/SKILL.md +375 -0
- package/packages/core/playbooks/software-development/requesting-code-review/SKILL.md +280 -0
- package/packages/core/playbooks/software-development/simplify-code/SKILL.md +212 -0
- package/packages/core/playbooks/software-development/spike/SKILL.md +197 -0
- package/packages/core/playbooks/software-development/systematic-debugging/SKILL.md +411 -0
- package/packages/core/playbooks/software-development/test-driven-development/SKILL.md +362 -0
- package/packages/core/playbooks/web3/binance-trading.md +119 -0
- package/packages/core/playbooks/web3/foundry-deployment.md +42 -0
- package/packages/core/playbooks/web3/mexc-trading.md +122 -0
- package/packages/core/playbooks/web3/onchainkit/assets/templates/basic-app/.env.local.example +20 -0
- package/packages/core/playbooks/web3/smart-contract-audit.md +44 -0
- package/packages/core/playbooks/yuanbao/SKILL.md +108 -0
- package/packages/core/src/agent/osAgent.ts +184 -20
- package/packages/core/src/agent/promptBuilder.ts +27 -4
- package/packages/core/src/agent/reasoning.ts +44 -30
- package/packages/core/src/agent/web3Agent.ts +130 -16
- package/packages/core/src/channels/telegram.ts +73 -16
- package/packages/core/src/channels/whatsappAdapter.ts +6 -4
- package/packages/core/src/config/parser.ts +2 -1
- package/packages/core/src/gateway/server.ts +1 -1
- package/packages/core/src/gateway/setup.ts +8 -3
- package/packages/core/src/plugin/PluginManager.ts +15 -1
- package/packages/core/src/system/plugins/SystemWorkspacePlugin.ts +5 -0
- package/packages/core/src/system/skills/analyzeImage.ts +14 -21
- package/packages/core/src/system/skills/generateImage.ts +66 -0
- package/packages/core/src/system/skills/searchWeb.ts +47 -1
- package/packages/core/src/utils/contextSummarizer.ts +33 -2
- package/packages/core/src/utils/historySanitizer.ts +11 -0
- package/packages/core/src/utils/skillManager.ts +1 -0
- package/packages/core/src/web3/skills/marketAnalysis.ts +23 -9
- package/packages/core/src/web3/utils/riskIntelligence.ts +12 -4
- package/packages/dashboard/dist/assets/index-LAS2_trL.js +26 -0
- package/packages/dashboard/dist/index.html +1 -1
- package/packages/dashboard/package.json +2 -2
- package/packages/mcp-server/package.json +1 -1
- package/packages/ml-engine/routers/__pycache__/market.cpython-313.pyc +0 -0
- package/packages/ml-engine/routers/market.py +218 -99
- package/packages/policy/package.json +1 -1
- package/packages/signer/package.json +3 -3
- 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 = ['
|
|
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
|
|
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 || '
|
|
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:
|
|
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
|
-
|
|
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
|
|
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 || '
|
|
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
|
-
//
|
|
418
|
-
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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
|
-
|
|
495
|
-
|
|
496
|
-
|
|
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
|
|
150
|
-
The user has a complex request
|
|
151
|
-
|
|
152
|
-
|
|
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: `
|
|
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
|
|
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.
|
|
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.
|
|
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
|
|
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:
|
|
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
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
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
|
-
|
|
297
|
-
|
|
298
|
-
|
|
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.
|
|
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.
|
|
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
|
|
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:
|
|
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
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
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
|
-
|
|
459
|
-
|
|
460
|
-
|
|
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);
|