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
|
@@ -68,7 +68,7 @@ async function processWeb3Intent(input, role = 'user', onProgress, sessionId) {
|
|
|
68
68
|
const currentHistory = exports.logger.getHistory(sessionId);
|
|
69
69
|
// P6: Compress history if conversation is too long
|
|
70
70
|
const historyToUse = (0, contextSummarizer_1.needsCompression)(currentHistory)
|
|
71
|
-
? await (0, contextSummarizer_1.compressHistory)(currentHistory)
|
|
71
|
+
? await (0, contextSummarizer_1.compressHistory)(currentHistory, sessionId)
|
|
72
72
|
: currentHistory;
|
|
73
73
|
const sanitizedHistory = sanitizeHistoryForLLM(historyToUse, activeTools, config.llm.provider);
|
|
74
74
|
// P1: Inject scratchpad into system prompt for turns > 1
|
|
@@ -105,6 +105,7 @@ async function processWeb3Intent(input, role = 'user', onProgress, sessionId) {
|
|
|
105
105
|
// --- LLM FALLBACK COMMAND PARSER (Minimax/Open-weight fix) ---
|
|
106
106
|
if ((!responseMessage.tool_calls || responseMessage.tool_calls.length === 0) && responseMessage.content) {
|
|
107
107
|
const fallbacks = [];
|
|
108
|
+
// 1. Slash commands (/swap amount="100")
|
|
108
109
|
const regex = /^\/([a-zA-Z0-9_]+)\s+(.*)$/gm;
|
|
109
110
|
let match;
|
|
110
111
|
while ((match = regex.exec(responseMessage.content)) !== null) {
|
|
@@ -133,9 +134,25 @@ async function processWeb3Intent(input, role = 'user', onProgress, sessionId) {
|
|
|
133
134
|
}
|
|
134
135
|
});
|
|
135
136
|
}
|
|
137
|
+
// 2. Markdown bash blocks (```bash ... ```)
|
|
138
|
+
const mdRegex = /```(?:bash|sh|zsh)?\n([\s\S]*?)```/g;
|
|
139
|
+
let mdMatch;
|
|
140
|
+
while ((mdMatch = mdRegex.exec(responseMessage.content)) !== null) {
|
|
141
|
+
const bashCmd = mdMatch[1].trim();
|
|
142
|
+
if (bashCmd) {
|
|
143
|
+
fallbacks.push({
|
|
144
|
+
id: 'call_fallback_' + Math.random().toString(36).substr(2, 9),
|
|
145
|
+
type: 'function',
|
|
146
|
+
function: {
|
|
147
|
+
name: 'run_terminal_command',
|
|
148
|
+
arguments: JSON.stringify({ command: bashCmd })
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}
|
|
136
153
|
if (fallbacks.length > 0) {
|
|
137
154
|
responseMessage.tool_calls = fallbacks;
|
|
138
|
-
responseMessage.content = responseMessage.content.replace(/^\/[a-zA-Z0-9_]+\s+.*$/gm, '').trim();
|
|
155
|
+
responseMessage.content = responseMessage.content.replace(/^\/[a-zA-Z0-9_]+\s+.*$/gm, '').replace(/```(?:bash|sh|zsh)?\n([\s\S]*?)```/g, '').trim();
|
|
139
156
|
console.log(picocolors_1.default.cyan(`[Fallback Parser] Intercepted ${fallbacks.length} raw text commands and converted to tool_calls.`));
|
|
140
157
|
// Update logger entry with the intercepted tool calls
|
|
141
158
|
exports.logger.addEntry({
|
|
@@ -145,17 +162,17 @@ async function processWeb3Intent(input, role = 'user', onProgress, sessionId) {
|
|
|
145
162
|
}, sessionId);
|
|
146
163
|
}
|
|
147
164
|
}
|
|
148
|
-
//
|
|
165
|
+
// ---------------------------------------------------------------
|
|
149
166
|
if (!responseMessage.tool_calls || responseMessage.tool_calls.length === 0) {
|
|
150
|
-
return cleanedContent || '
|
|
167
|
+
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.';
|
|
151
168
|
}
|
|
152
169
|
let canFastReturnAll = true;
|
|
153
170
|
let accumulatedResults = [];
|
|
154
|
-
// FIX:
|
|
171
|
+
// FIX: Re-added send_telegram_file to prevent "typing" loop after file upload.
|
|
155
172
|
const fastReturnTools = [
|
|
156
173
|
'transfer_token', 'transfer_native', 'swap_token', 'bridge_token',
|
|
157
174
|
'mint_nft', 'custom_tx', 'revoke_approval', 'supply_aave',
|
|
158
|
-
'deposit_yield_vault', 'provide_liquidity_v3', 'confirm_pending_tx'
|
|
175
|
+
'deposit_yield_vault', 'provide_liquidity_v3', 'confirm_pending_tx', 'send_telegram_file'
|
|
159
176
|
];
|
|
160
177
|
for (const _toolCall of responseMessage.tool_calls) {
|
|
161
178
|
const toolCall = _toolCall;
|
|
@@ -310,12 +327,17 @@ async function processWeb3IntentStream(input, onChunk, onProgress, sessionId) {
|
|
|
310
327
|
const { sanitizeHistoryForLLM } = require('../utils/historySanitizer');
|
|
311
328
|
try {
|
|
312
329
|
let turnCount = 0;
|
|
330
|
+
let nudgeCount = 0;
|
|
313
331
|
const MAX_TURNS = 20;
|
|
332
|
+
let thinkingPrefillRetries = 0; // Prefill-continuation retries for think-only silent stops
|
|
314
333
|
let fullResponse = '';
|
|
315
334
|
while (turnCount < MAX_TURNS) {
|
|
316
335
|
turnCount++;
|
|
317
336
|
const currentHistory = exports.logger.getHistory(sessionId);
|
|
318
|
-
const
|
|
337
|
+
const historyToUse = (0, contextSummarizer_1.needsCompression)(currentHistory)
|
|
338
|
+
? await (0, contextSummarizer_1.compressHistory)(currentHistory, sessionId)
|
|
339
|
+
: currentHistory;
|
|
340
|
+
const sanitizedHistory = sanitizeHistoryForLLM(historyToUse, activeTools, config.llm.provider);
|
|
319
341
|
// FIX: Use cached system prompt — no longer rebuilt every turn
|
|
320
342
|
const messages = [
|
|
321
343
|
{ role: 'system', content: cachedWeb3SystemPrompt },
|
|
@@ -346,27 +368,103 @@ async function processWeb3IntentStream(input, onChunk, onProgress, sessionId) {
|
|
|
346
368
|
tool_calls: responseMessage.tool_calls,
|
|
347
369
|
}, sessionId);
|
|
348
370
|
if (!responseMessage.tool_calls || responseMessage.tool_calls.length === 0) {
|
|
349
|
-
let finalContent = responseMessage.content || '
|
|
371
|
+
let finalContent = responseMessage.content || '';
|
|
350
372
|
finalContent = finalContent.replace(/<(think|thought|thinking|reasoning|analysis|reflection)[\s\S]*?<\/\1>\n?/gi, '').trim();
|
|
351
373
|
finalContent = finalContent.replace(/^\s*(?:\*\*)?(?:think|thought|thinking|reasoning|analysis|reflection)(?:\*\*)?\s*?\n[\s\S]*?\n\n/i, '').trim();
|
|
374
|
+
// Support global languages: English, Indonesian, Spanish, French, German filler words
|
|
375
|
+
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());
|
|
376
|
+
if (finalContent === '' || isConversationalFiller) {
|
|
377
|
+
const hasNativeReasoning = !!responseMessage.reasoning_content;
|
|
378
|
+
const hasThinkTagInStream = /<(think|thought|thinking|reasoning)[\s\S]*?<\//i.test(streamedContent);
|
|
379
|
+
const isThinkOnlyResponse = hasNativeReasoning || hasThinkTagInStream;
|
|
380
|
+
// ── THINKING-PREFILL CONTINUATION ──
|
|
381
|
+
if (isThinkOnlyResponse && thinkingPrefillRetries < 2) {
|
|
382
|
+
thinkingPrefillRetries++;
|
|
383
|
+
console.warn(`[Web3AgentStream] ⚠️ Think-only silent stop — prefilling to continue (${thinkingPrefillRetries}/2)...`);
|
|
384
|
+
continue;
|
|
385
|
+
}
|
|
386
|
+
// ── NUDGE FALLBACK (after prefill exhaustion or truly empty) ──
|
|
387
|
+
if (nudgeCount < 3) {
|
|
388
|
+
nudgeCount++;
|
|
389
|
+
const recentUserMsg = exports.logger.getHistory(sessionId)
|
|
390
|
+
.filter((m) => m.role === 'user').slice(-1)[0]?.content || 'the user request';
|
|
391
|
+
let nudgeContent;
|
|
392
|
+
if (isThinkOnlyResponse) {
|
|
393
|
+
console.warn(`[Web3AgentStream] ⚠️ Think-only prefill exhausted. System nudge (${nudgeCount}/3)...`);
|
|
394
|
+
nudgeContent = `[SYSTEM NUDGE ${nudgeCount}/3 — SILENT STOP DETECTED]
|
|
395
|
+
You completed your internal reasoning but produced NO output (no tool call, no text).
|
|
396
|
+
This is a silent stop — it is not acceptable.
|
|
397
|
+
|
|
398
|
+
Task: "${recentUserMsg.substring(0, 200)}"
|
|
399
|
+
|
|
400
|
+
You MUST act RIGHT NOW. Do one of these:
|
|
401
|
+
A) Call the first required tool immediately (e.g., get_price, analyze_market, get_balance)
|
|
402
|
+
B) Output a final text answer
|
|
403
|
+
|
|
404
|
+
Do NOT think again. Execute step 1 of the task NOW.`;
|
|
405
|
+
}
|
|
406
|
+
else {
|
|
407
|
+
console.warn(`[Web3AgentStream] ⚠️ Empty or filler response. System nudge (${nudgeCount}/3)...`);
|
|
408
|
+
nudgeContent = `[SYSTEM NUDGE ${nudgeCount}/3] Your last response was empty or contained conversational filler without tool calls. You MUST take action now.
|
|
409
|
+
|
|
410
|
+
Task: "${recentUserMsg.substring(0, 200)}"
|
|
411
|
+
|
|
412
|
+
Available tools: swap_token, get_portfolio, etc.
|
|
413
|
+
You MUST either:
|
|
414
|
+
A) Call one or more tools, OR
|
|
415
|
+
B) Output a complete final text answer
|
|
416
|
+
|
|
417
|
+
Do NOT output filler text like "Wait, I will check". Act now.`;
|
|
418
|
+
}
|
|
419
|
+
exports.logger.addEntry({
|
|
420
|
+
role: 'system',
|
|
421
|
+
content: nudgeContent
|
|
422
|
+
}, sessionId);
|
|
423
|
+
continue;
|
|
424
|
+
}
|
|
425
|
+
else {
|
|
426
|
+
console.error('[Web3AgentStream] ❌ LLM failed to recover after prefill + 3 nudges. Aborting.');
|
|
427
|
+
const reasoningContent = responseMessage.reasoning_content || '';
|
|
428
|
+
if (reasoningContent && reasoningContent.length > 50) {
|
|
429
|
+
console.warn('[Web3AgentStream] Using reasoning_content as fallback response.');
|
|
430
|
+
finalContent = reasoningContent.replace(/<(think|thought|thinking)[\s\S]*?<\/\1>/gi, '').trim()
|
|
431
|
+
|| '⚠️ 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.';
|
|
432
|
+
}
|
|
433
|
+
else {
|
|
434
|
+
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.';
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
// Reset prefill counter on successful response
|
|
439
|
+
thinkingPrefillRetries = 0;
|
|
352
440
|
fullResponse = finalContent;
|
|
353
441
|
break;
|
|
354
442
|
}
|
|
355
443
|
// Tool calls detected — pause stream visually and execute tools
|
|
356
444
|
// BUG#1 FIX: Wipe turn-1 planning text. See osAgent.ts for full explanation.
|
|
357
|
-
onChunk('[TOOL_CALL_DETECTED]');
|
|
358
|
-
// FIX:
|
|
359
|
-
const fastReturnTools = ['transfer_token', 'transfer_native', 'swap_token', 'bridge_token', 'mint_nft', 'custom_tx', 'revoke_approval', 'supply_aave', 'deposit_yield_vault', 'provide_liquidity_v3', 'confirm_pending_tx'];
|
|
445
|
+
await onChunk('[TOOL_CALL_DETECTED]');
|
|
446
|
+
// FIX: Re-added send_telegram_file to prevent "typing" loop after file upload.
|
|
447
|
+
const fastReturnTools = ['transfer_token', 'transfer_native', 'swap_token', 'bridge_token', 'mint_nft', 'custom_tx', 'revoke_approval', 'supply_aave', 'deposit_yield_vault', 'provide_liquidity_v3', 'confirm_pending_tx', 'send_telegram_file'];
|
|
360
448
|
let canFastReturnAll = true;
|
|
361
449
|
const accumulatedResults = [];
|
|
362
|
-
|
|
450
|
+
// Deduplicate identical tool calls to prevent double execution bugs
|
|
451
|
+
const uniqueToolCalls = [];
|
|
452
|
+
const seenToolCalls = new Set();
|
|
453
|
+
for (const tc of responseMessage.tool_calls) {
|
|
454
|
+
const sig = `${tc.function.name}:${tc.function.arguments}`;
|
|
455
|
+
if (!seenToolCalls.has(sig)) {
|
|
456
|
+
seenToolCalls.add(sig);
|
|
457
|
+
uniqueToolCalls.push(tc);
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
for (const _toolCall of uniqueToolCalls) {
|
|
363
461
|
const toolCall = _toolCall;
|
|
364
462
|
const toolName = toolCall.function.name;
|
|
365
463
|
let result = '';
|
|
366
464
|
let args = {};
|
|
367
465
|
console.log(picocolors_1.default.yellow(`[⚡ Tool Execution] AI is calling ${toolName}...`));
|
|
368
466
|
if (onProgress)
|
|
369
|
-
onProgress(
|
|
467
|
+
onProgress(`⚡ Running tool: ${toolName}...`);
|
|
370
468
|
try {
|
|
371
469
|
let argStr = toolCall.function.arguments;
|
|
372
470
|
if (argStr && !argStr.trim().endsWith('}'))
|
|
@@ -402,11 +500,15 @@ async function processWeb3IntentStream(input, onChunk, onProgress, sessionId) {
|
|
|
402
500
|
if (!fastReturnTools.includes(toolName))
|
|
403
501
|
canFastReturnAll = false;
|
|
404
502
|
}
|
|
503
|
+
await onChunk('[TOOL_CALL_FINISHED]');
|
|
405
504
|
if (canFastReturnAll && accumulatedResults.length > 0) {
|
|
406
505
|
const finalContent = accumulatedResults.join('\n\n---\n\n');
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
506
|
+
const cleanContent = finalContent.replace(/\[SILENT_FAST_RETURN\] /g, '');
|
|
507
|
+
exports.logger.addEntry({ role: 'assistant', content: cleanContent }, sessionId);
|
|
508
|
+
if (!finalContent.includes('[SILENT_FAST_RETURN]')) {
|
|
509
|
+
await onChunk(finalContent);
|
|
510
|
+
}
|
|
511
|
+
fullResponse = cleanContent;
|
|
410
512
|
break;
|
|
411
513
|
}
|
|
412
514
|
}
|
|
@@ -124,7 +124,8 @@ function startTelegramBot() {
|
|
|
124
124
|
return;
|
|
125
125
|
});
|
|
126
126
|
bot.command('clear', async (ctx) => {
|
|
127
|
-
|
|
127
|
+
const threadId = ctx.message?.message_thread_id ? `_${ctx.message.message_thread_id}` : '';
|
|
128
|
+
reasoning_1.logger.clear(`telegram_${ctx.chat?.id}${threadId}`);
|
|
128
129
|
await ctx.reply("✅ AI memory has been cleared. Let's start a new chat!");
|
|
129
130
|
});
|
|
130
131
|
bot.command('reasoning', async (ctx) => {
|
|
@@ -203,17 +204,32 @@ function startTelegramBot() {
|
|
|
203
204
|
buffer = '⏳ Processing...';
|
|
204
205
|
finalContentAlreadyStreamed = false;
|
|
205
206
|
}
|
|
206
|
-
else if (chunk === '[TOOL_CALL_DETECTED]') {
|
|
207
|
-
//
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
buffer = '
|
|
207
|
+
else if (chunk === '[TOOL_CALL_DETECTED]' || chunk === '[TOOL_CALL_FINISHED]') {
|
|
208
|
+
// Hermes-Agent tool boundary: Finalize the current message synchronously to avoid race conditions.
|
|
209
|
+
const htmlToSave = formatToTelegramHTML(buffer);
|
|
210
|
+
const msgIdToSave = progressMsgId;
|
|
211
|
+
progressMsgId = null;
|
|
212
|
+
buffer = '';
|
|
212
213
|
finalContentAlreadyStreamed = false;
|
|
213
|
-
|
|
214
|
+
if (pendingEdit) {
|
|
215
|
+
clearTimeout(pendingEdit);
|
|
216
|
+
pendingEdit = null;
|
|
217
|
+
}
|
|
218
|
+
if (msgIdToSave && htmlToSave) {
|
|
219
|
+
await ctx.api.editMessageText(ctx.chat.id, msgIdToSave, htmlToSave, { parse_mode: 'HTML' }).catch(() => { });
|
|
220
|
+
}
|
|
221
|
+
else if (!msgIdToSave && htmlToSave) {
|
|
222
|
+
await ctx.reply(htmlToSave, { parse_mode: 'HTML', reply_parameters: { message_id: ctx.message.message_id } }).catch(() => { });
|
|
223
|
+
}
|
|
224
|
+
return;
|
|
214
225
|
}
|
|
215
226
|
else {
|
|
216
|
-
buffer
|
|
227
|
+
if (buffer === '⏳ Processing...') {
|
|
228
|
+
buffer = chunk;
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
buffer += chunk;
|
|
232
|
+
}
|
|
217
233
|
}
|
|
218
234
|
scheduleEdit();
|
|
219
235
|
};
|
|
@@ -222,7 +238,9 @@ function startTelegramBot() {
|
|
|
222
238
|
scheduleEdit();
|
|
223
239
|
};
|
|
224
240
|
try {
|
|
225
|
-
const
|
|
241
|
+
const threadId = ctx.message.message_thread_id ? `_${ctx.message.message_thread_id}` : '';
|
|
242
|
+
const sessionId = `telegram_${ctx.chat?.id}${threadId}`;
|
|
243
|
+
const response = await (0, reasoning_1.processUserInputStream)(text, onChunk, onProgress, sessionId);
|
|
226
244
|
isFinalized = true;
|
|
227
245
|
if (pendingEdit) {
|
|
228
246
|
clearTimeout(pendingEdit);
|
|
@@ -394,8 +412,30 @@ function startTelegramBot() {
|
|
|
394
412
|
if (chunk === '[CLEAR_STREAM]') {
|
|
395
413
|
buffer = '⏳ Processing...';
|
|
396
414
|
}
|
|
415
|
+
else if (chunk === '[TOOL_CALL_DETECTED]' || chunk === '[TOOL_CALL_FINISHED]') {
|
|
416
|
+
const htmlToSave = formatToTelegramHTML(buffer);
|
|
417
|
+
const msgIdToSave = progressMsgId;
|
|
418
|
+
progressMsgId = null;
|
|
419
|
+
buffer = '';
|
|
420
|
+
if (pendingEdit) {
|
|
421
|
+
clearTimeout(pendingEdit);
|
|
422
|
+
pendingEdit = null;
|
|
423
|
+
}
|
|
424
|
+
if (msgIdToSave && htmlToSave) {
|
|
425
|
+
await ctx.api.editMessageText(ctx.chat.id, msgIdToSave, htmlToSave, { parse_mode: 'HTML' }).catch(() => { });
|
|
426
|
+
}
|
|
427
|
+
else if (!msgIdToSave && htmlToSave) {
|
|
428
|
+
await ctx.reply(htmlToSave, { parse_mode: 'HTML', reply_parameters: { message_id: ctx.message.message_id } }).catch(() => { });
|
|
429
|
+
}
|
|
430
|
+
return;
|
|
431
|
+
}
|
|
397
432
|
else {
|
|
398
|
-
buffer
|
|
433
|
+
if (buffer === '⏳ Processing...') {
|
|
434
|
+
buffer = chunk;
|
|
435
|
+
}
|
|
436
|
+
else {
|
|
437
|
+
buffer += chunk;
|
|
438
|
+
}
|
|
399
439
|
}
|
|
400
440
|
scheduleEdit();
|
|
401
441
|
};
|
|
@@ -404,7 +444,10 @@ function startTelegramBot() {
|
|
|
404
444
|
scheduleEdit();
|
|
405
445
|
};
|
|
406
446
|
try {
|
|
407
|
-
const
|
|
447
|
+
const msg = ctx.callbackQuery.message;
|
|
448
|
+
const threadId = msg?.message_thread_id ? `_${msg.message_thread_id}` : '';
|
|
449
|
+
const sessionId = `telegram_${ctx.chat.id}${threadId}`;
|
|
450
|
+
const response = await (0, reasoning_1.processUserInputStream)(simulatedText, onChunk, onProgress, sessionId);
|
|
408
451
|
isFinalized = true;
|
|
409
452
|
if (pendingEdit) {
|
|
410
453
|
clearTimeout(pendingEdit);
|
|
@@ -485,7 +528,9 @@ function startTelegramBot() {
|
|
|
485
528
|
}
|
|
486
529
|
catch { }
|
|
487
530
|
};
|
|
488
|
-
const
|
|
531
|
+
const threadId = ctx.message?.message_thread_id ? `_${ctx.message.message_thread_id}` : '';
|
|
532
|
+
const sessionId = `telegram_${ctx.chat?.id}${threadId}`;
|
|
533
|
+
const response = await (0, reasoning_1.processUserInput)(prompt, 'user', onProgress, sessionId);
|
|
489
534
|
if (progressMsgId) {
|
|
490
535
|
await ctx.api.deleteMessage(ctx.chat.id, progressMsgId).catch(() => { });
|
|
491
536
|
}
|
|
@@ -528,7 +573,9 @@ function startTelegramBot() {
|
|
|
528
573
|
}
|
|
529
574
|
catch { }
|
|
530
575
|
};
|
|
531
|
-
const
|
|
576
|
+
const threadId = ctx.message?.message_thread_id ? `_${ctx.message.message_thread_id}` : '';
|
|
577
|
+
const sessionId = `telegram_${ctx.chat?.id}${threadId}`;
|
|
578
|
+
const response = await (0, reasoning_1.processUserInput)(prompt, 'user', onProgress, sessionId);
|
|
532
579
|
if (progressMsgId) {
|
|
533
580
|
await ctx.api.deleteMessage(ctx.chat.id, progressMsgId).catch(() => { });
|
|
534
581
|
}
|
|
@@ -584,8 +631,16 @@ async function sendTelegramDocument(absolutePath) {
|
|
|
584
631
|
return `[Error] File not found: ${absolutePath}`;
|
|
585
632
|
try {
|
|
586
633
|
const file = new grammy_1.InputFile(absolutePath);
|
|
587
|
-
|
|
588
|
-
|
|
634
|
+
// Wait for the stream to flush the "⚡ Running tool..." message so the file appears after it
|
|
635
|
+
await new Promise(r => setTimeout(r, 1500));
|
|
636
|
+
const ext = absolutePath.toLowerCase();
|
|
637
|
+
if (ext.endsWith('.png') || ext.endsWith('.jpg') || ext.endsWith('.jpeg') || ext.endsWith('.gif') || ext.endsWith('.webp')) {
|
|
638
|
+
await globalBotInstance.api.sendPhoto(chatId, file);
|
|
639
|
+
}
|
|
640
|
+
else {
|
|
641
|
+
await globalBotInstance.api.sendDocument(chatId, file);
|
|
642
|
+
}
|
|
643
|
+
return `[SILENT_FAST_RETURN] Success! File has been uploaded directly to the Telegram chat.`;
|
|
589
644
|
}
|
|
590
645
|
catch (err) {
|
|
591
646
|
return `[Error] Failed to upload document to Telegram: ${err.message}`;
|
|
@@ -1,37 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
3
|
exports.adapter = exports.WhatsappAdapter = void 0;
|
|
37
4
|
class WhatsappAdapter {
|
|
@@ -42,18 +9,20 @@ class WhatsappAdapter {
|
|
|
42
9
|
console.log(`[WhatsApp] Initializing...`);
|
|
43
10
|
}
|
|
44
11
|
async start() {
|
|
45
|
-
// Lazy
|
|
46
|
-
// Install
|
|
12
|
+
// Lazy require — baileys is a runtime-optional dependency not bundled with Nyxora.
|
|
13
|
+
// Install separately if you want WhatsApp support: npm install baileys
|
|
14
|
+
// Using require() instead of import() to bypass TypeScript type resolution for optional packages.
|
|
47
15
|
let makeWASocket, useMultiFileAuthState, DisconnectReason;
|
|
48
16
|
try {
|
|
49
|
-
|
|
17
|
+
// @ts-ignore — intentional: baileys is optional and may not be installed
|
|
18
|
+
const baileys = require('baileys');
|
|
50
19
|
makeWASocket = baileys.default || baileys;
|
|
51
20
|
useMultiFileAuthState = baileys.useMultiFileAuthState;
|
|
52
21
|
DisconnectReason = baileys.DisconnectReason;
|
|
53
22
|
}
|
|
54
23
|
catch (e) {
|
|
55
24
|
console.error('[WhatsApp] Cannot start: missing optional dependency "baileys".');
|
|
56
|
-
console.error('[WhatsApp] Install it with: npm install
|
|
25
|
+
console.error('[WhatsApp] Install it with: npm install baileys');
|
|
57
26
|
return;
|
|
58
27
|
}
|
|
59
28
|
const { state, saveCreds } = await useMultiFileAuthState('whatsapp_auth_info');
|
|
@@ -66,7 +66,7 @@ const nyxDaemon_1 = require("../agent/nyxDaemon");
|
|
|
66
66
|
(0, googleAuthModule_1.initGoogleAuth)();
|
|
67
67
|
// Start Background Nyx Daemon
|
|
68
68
|
nyxDaemon_1.nyxDaemon.start();
|
|
69
|
-
// Synchronize playbooks using Smart Sync Engine
|
|
69
|
+
// Synchronize playbooks using Smart Sync Engine
|
|
70
70
|
(0, playbookManager_1.ensurePlaybookDir)();
|
|
71
71
|
// Synchronize all active skills to config.yaml on startup
|
|
72
72
|
(0, skillManager_1.syncAllSkillsToConfig)();
|
|
@@ -337,14 +337,17 @@ Provider: ${config.llm.provider}`;
|
|
|
337
337
|
{ value: 'dashboard', label: 'Local Web Dashboard', hint: 'enabled by default' },
|
|
338
338
|
];
|
|
339
339
|
try {
|
|
340
|
-
const { channelManager } = require('../channels/index');
|
|
340
|
+
const { channelManager, registerAllAdapters } = require('../channels/index');
|
|
341
|
+
await registerAllAdapters();
|
|
341
342
|
channelManager.getAllAdapters().forEach((adapter) => {
|
|
342
343
|
if (adapter.id !== 'telegram' && adapter.id !== 'discord') {
|
|
343
344
|
channelOptions.push({ value: adapter.id, label: adapter.name, hint: 'New Integration' });
|
|
344
345
|
}
|
|
345
346
|
});
|
|
346
347
|
}
|
|
347
|
-
catch (err) {
|
|
348
|
+
catch (err) {
|
|
349
|
+
console.error('Error loading dynamic channels:', err);
|
|
350
|
+
}
|
|
348
351
|
const activeChannels = await (0, prompts_1.multiselect)({
|
|
349
352
|
message: '💬 Select Integration Channels to enable:',
|
|
350
353
|
options: channelOptions,
|
|
@@ -362,6 +365,7 @@ Provider: ${config.llm.provider}`;
|
|
|
362
365
|
options: [
|
|
363
366
|
{ value: 'tavily', label: 'Tavily Search (Built for AI - 1000 free/mo)' },
|
|
364
367
|
{ value: 'brave', label: 'Brave Search (Privacy focused - 2000 free/mo)' },
|
|
368
|
+
{ value: 'serpapi', label: 'SerpApi (Google Search - 100 free/mo)' },
|
|
365
369
|
{ value: 'duckduckgo', label: 'DuckDuckGo (Free & Built-in)' },
|
|
366
370
|
],
|
|
367
371
|
});
|
|
@@ -369,7 +373,7 @@ Provider: ${config.llm.provider}`;
|
|
|
369
373
|
return process.exit(0);
|
|
370
374
|
if (searchProvider !== 'duckduckgo') {
|
|
371
375
|
searchApiKey = (await (0, prompts_1.password)({
|
|
372
|
-
message: `Enter API Key for ${searchProvider} (Get it free at ${searchProvider === 'tavily' ? 'tavily.com' : 'search.brave.com'}):`,
|
|
376
|
+
message: `Enter API Key for ${searchProvider} (Get it free at ${searchProvider === 'tavily' ? 'tavily.com' : searchProvider === 'serpapi' ? 'serpapi.com' : 'search.brave.com'}):`,
|
|
373
377
|
}));
|
|
374
378
|
if ((0, prompts_1.isCancel)(searchApiKey))
|
|
375
379
|
return process.exit(0);
|
|
@@ -504,6 +508,8 @@ Provider: ${config.llm.provider}`;
|
|
|
504
508
|
newApiKeys.tavily_key = searchApiKey;
|
|
505
509
|
if (searchProvider === 'brave')
|
|
506
510
|
newApiKeys.brave_key = searchApiKey;
|
|
511
|
+
if (searchProvider === 'serpapi')
|
|
512
|
+
newApiKeys.serpapi_key = searchApiKey;
|
|
507
513
|
}
|
|
508
514
|
}
|
|
509
515
|
else {
|
|
@@ -26,7 +26,21 @@ class PluginManager {
|
|
|
26
26
|
getAllToolDefinitions() {
|
|
27
27
|
const pluginTools = this.plugins.flatMap(p => p.tools);
|
|
28
28
|
const agentTools = this.agentSkills.getToolSchemas();
|
|
29
|
-
|
|
29
|
+
const allTools = [...pluginTools, ...agentTools];
|
|
30
|
+
const uniqueTools = [];
|
|
31
|
+
const seenNames = new Set();
|
|
32
|
+
for (const t of allTools) {
|
|
33
|
+
if (t?.function?.name) {
|
|
34
|
+
if (!seenNames.has(t.function.name)) {
|
|
35
|
+
seenNames.add(t.function.name);
|
|
36
|
+
uniqueTools.push(t);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
uniqueTools.push(t);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return uniqueTools;
|
|
30
44
|
}
|
|
31
45
|
async triggerBeforeHooks(toolName, args, context) {
|
|
32
46
|
for (const hook of this.hooks) {
|
|
@@ -10,6 +10,7 @@ const createCognitiveSkill_1 = require("../skills/createCognitiveSkill");
|
|
|
10
10
|
const playbookManager_1 = require("../skills/playbookManager");
|
|
11
11
|
const fileDownloader_1 = require("../skills/fileDownloader");
|
|
12
12
|
const analyzeImage_1 = require("../skills/analyzeImage");
|
|
13
|
+
const generateImage_1 = require("../skills/generateImage");
|
|
13
14
|
const telegramUpload_1 = require("../skills/telegramUpload");
|
|
14
15
|
class SystemWorkspacePlugin {
|
|
15
16
|
name = 'SystemWorkspacePlugin';
|
|
@@ -26,6 +27,7 @@ class SystemWorkspacePlugin {
|
|
|
26
27
|
playbookManager_1.readPlaybookToolDefinition,
|
|
27
28
|
fileDownloader_1.generateDownloadLinkToolDefinition,
|
|
28
29
|
analyzeImage_1.analyzeLocalImageToolDefinition,
|
|
30
|
+
generateImage_1.generateImageToolDefinition,
|
|
29
31
|
telegramUpload_1.sendTelegramFileToolDefinition
|
|
30
32
|
];
|
|
31
33
|
handlers = {
|
|
@@ -59,6 +61,9 @@ class SystemWorkspacePlugin {
|
|
|
59
61
|
['analyze_local_image']: async (args) => {
|
|
60
62
|
return await (0, analyzeImage_1.analyzeLocalImage)(args.imagePath, args.prompt);
|
|
61
63
|
},
|
|
64
|
+
['generate_image']: async (args) => {
|
|
65
|
+
return await (0, generateImage_1.generateImage)(args.prompt);
|
|
66
|
+
},
|
|
62
67
|
['send_telegram_file']: async (args) => {
|
|
63
68
|
return await (0, telegramUpload_1.sendTelegramFile)(args.absolutePath);
|
|
64
69
|
}
|
|
@@ -34,13 +34,17 @@ async function analyzeLocalImage(imagePath, prompt) {
|
|
|
34
34
|
return `[Error] Image file not found at path: ${imagePath}`;
|
|
35
35
|
}
|
|
36
36
|
try {
|
|
37
|
-
const {
|
|
37
|
+
const { GoogleGenerativeAI } = require('@google/generative-ai');
|
|
38
38
|
const keys = await (0, parser_1.loadApiKeys)();
|
|
39
39
|
const geminiKey = keys['gemini_key'];
|
|
40
40
|
if (!geminiKey) {
|
|
41
41
|
return `[Security Error] No gemini_key found in the vault. Please run 'nyxora set-key gemini' first.`;
|
|
42
42
|
}
|
|
43
|
-
const
|
|
43
|
+
const genAI = new GoogleGenerativeAI(geminiKey);
|
|
44
|
+
const model = genAI.getGenerativeModel({
|
|
45
|
+
model: 'gemini-2.5-flash',
|
|
46
|
+
generationConfig: { temperature: 0.1 }
|
|
47
|
+
});
|
|
44
48
|
// Read file and determine mime type
|
|
45
49
|
const buffer = fs_1.default.readFileSync(imagePath);
|
|
46
50
|
const base64Data = buffer.toString('base64');
|
|
@@ -54,27 +58,16 @@ async function analyzeLocalImage(imagePath, prompt) {
|
|
|
54
58
|
mimeType = 'image/heic';
|
|
55
59
|
else if (ext === '.heif')
|
|
56
60
|
mimeType = 'image/heif';
|
|
57
|
-
const response = await
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
{
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
{ text: prompt },
|
|
64
|
-
{
|
|
65
|
-
inlineData: {
|
|
66
|
-
data: base64Data,
|
|
67
|
-
mimeType: mimeType
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
]
|
|
61
|
+
const response = await model.generateContent([
|
|
62
|
+
prompt,
|
|
63
|
+
{
|
|
64
|
+
inlineData: {
|
|
65
|
+
data: base64Data,
|
|
66
|
+
mimeType: mimeType
|
|
71
67
|
}
|
|
72
|
-
],
|
|
73
|
-
config: {
|
|
74
|
-
temperature: 0.1
|
|
75
68
|
}
|
|
76
|
-
|
|
77
|
-
return response.text || "[Error] No content generated.";
|
|
69
|
+
]);
|
|
70
|
+
return response.response.text() || "[Error] No content generated.";
|
|
78
71
|
}
|
|
79
72
|
catch (error) {
|
|
80
73
|
return `[System Error] Failed to analyze image: ${error.message}`;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.generateImageToolDefinition = void 0;
|
|
7
|
+
exports.generateImage = generateImage;
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const os_1 = __importDefault(require("os"));
|
|
10
|
+
const path_1 = __importDefault(require("path"));
|
|
11
|
+
const openai_1 = require("openai");
|
|
12
|
+
const parser_1 = require("../../config/parser");
|
|
13
|
+
exports.generateImageToolDefinition = {
|
|
14
|
+
type: 'function',
|
|
15
|
+
function: {
|
|
16
|
+
name: 'generate_image',
|
|
17
|
+
description: 'Generates an image using OpenAI DALL-E 3 based on a text prompt. The image is downloaded locally and the absolute file path is returned.',
|
|
18
|
+
parameters: {
|
|
19
|
+
type: 'object',
|
|
20
|
+
properties: {
|
|
21
|
+
prompt: {
|
|
22
|
+
type: 'string',
|
|
23
|
+
description: 'A highly detailed text prompt describing the image you want to generate.'
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
required: ['prompt']
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
async function generateImage(prompt) {
|
|
31
|
+
try {
|
|
32
|
+
const keys = await (0, parser_1.loadApiKeys)();
|
|
33
|
+
const openAIKey = keys['openai_key'];
|
|
34
|
+
if (!openAIKey) {
|
|
35
|
+
return `[Security Error] No openai_key found in the vault. Please run 'nyxora set-key openai' first.`;
|
|
36
|
+
}
|
|
37
|
+
const openai = new openai_1.OpenAI({ apiKey: openAIKey });
|
|
38
|
+
const response = await openai.images.generate({
|
|
39
|
+
model: "dall-e-3",
|
|
40
|
+
prompt: prompt,
|
|
41
|
+
n: 1,
|
|
42
|
+
size: "1024x1024",
|
|
43
|
+
});
|
|
44
|
+
const imageUrl = response.data[0].url;
|
|
45
|
+
if (!imageUrl) {
|
|
46
|
+
return `[Error] Failed to get image URL from OpenAI.`;
|
|
47
|
+
}
|
|
48
|
+
const res = await fetch(imageUrl);
|
|
49
|
+
const buffer = await res.arrayBuffer();
|
|
50
|
+
const imagesDir = path_1.default.join(os_1.default.homedir(), '.nyxora', 'images');
|
|
51
|
+
if (!fs_1.default.existsSync(imagesDir)) {
|
|
52
|
+
fs_1.default.mkdirSync(imagesDir, { recursive: true });
|
|
53
|
+
}
|
|
54
|
+
const safeName = prompt.substring(0, 30).replace(/[^a-zA-Z0-9]/g, '_').toLowerCase();
|
|
55
|
+
const filename = `dalle-${Date.now()}-${safeName}.png`;
|
|
56
|
+
const localFilePath = path_1.default.join(imagesDir, filename);
|
|
57
|
+
fs_1.default.writeFileSync(localFilePath, Buffer.from(buffer));
|
|
58
|
+
return `Success! Image generated and saved locally at: ${localFilePath}`;
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
return `[System Error] Failed to generate image: ${error.message}`;
|
|
62
|
+
}
|
|
63
|
+
}
|