openclaw-node-harness 2.0.0
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/LICENSE +21 -0
- package/README.md +184 -0
- package/bin/discord-read.js +228 -0
- package/bin/fleet-deploy.js +365 -0
- package/bin/lane-watchdog.js +232 -0
- package/bin/mesh-agent.js +714 -0
- package/bin/mesh-bridge.js +535 -0
- package/bin/mesh-deploy-listener.js +322 -0
- package/bin/mesh-deploy.js +1048 -0
- package/bin/mesh-health-publisher.js +247 -0
- package/bin/mesh-task-daemon.js +451 -0
- package/bin/mesh-tool-discord.js +293 -0
- package/bin/mesh.js +649 -0
- package/boot/manifest.yaml +187 -0
- package/cli.js +35 -0
- package/config/daemon.json.template +16 -0
- package/config/obsidian-sync.json.template +39 -0
- package/config/openclaw.json.template +124 -0
- package/config/transcript-sources.json.template +22 -0
- package/identity/AGENTS.md +201 -0
- package/identity/CLAUDE.md +64 -0
- package/identity/DELEGATION.md +304 -0
- package/identity/HEARTBEAT.md +163 -0
- package/identity/MEMORY_SPEC.md +368 -0
- package/identity/PRINCIPLES.md +81 -0
- package/identity/SOUL.md +48 -0
- package/identity/TOOLS.md +47 -0
- package/install.sh +895 -0
- package/lib/agent-activity.js +390 -0
- package/lib/kanban-io.js +352 -0
- package/lib/mesh-registry.js +194 -0
- package/lib/mesh-roles.js +13 -0
- package/lib/mesh-tasks.js +306 -0
- package/lib/nats-resolve.js +108 -0
- package/mission-control/README.md +36 -0
- package/mission-control/drizzle/0000_simple_silhouette.sql +62 -0
- package/mission-control/drizzle/meta/0000_snapshot.json +413 -0
- package/mission-control/drizzle/meta/_journal.json +13 -0
- package/mission-control/drizzle.config.ts +13 -0
- package/mission-control/eslint.config.mjs +18 -0
- package/mission-control/next.config.ts +7 -0
- package/mission-control/package-lock.json +10518 -0
- package/mission-control/package.json +49 -0
- package/mission-control/postcss.config.mjs +7 -0
- package/mission-control/public/file.svg +1 -0
- package/mission-control/public/globe.svg +1 -0
- package/mission-control/public/next.svg +1 -0
- package/mission-control/public/vercel.svg +1 -0
- package/mission-control/public/window.svg +1 -0
- package/mission-control/scripts/enrich-descriptions.js +193 -0
- package/mission-control/scripts/gen-chronology.js +102 -0
- package/mission-control/scripts/import-pipeline-v2.js +523 -0
- package/mission-control/scripts/import-pipeline.js +295 -0
- package/mission-control/src/app/api/activity/live/route.ts +27 -0
- package/mission-control/src/app/api/activity/route.ts +47 -0
- package/mission-control/src/app/api/burndown/route.ts +112 -0
- package/mission-control/src/app/api/critical-path/route.ts +159 -0
- package/mission-control/src/app/api/dependencies/route.ts +176 -0
- package/mission-control/src/app/api/memory/categories/route.ts +93 -0
- package/mission-control/src/app/api/memory/consolidate/route.ts +107 -0
- package/mission-control/src/app/api/memory/doc/route.ts +89 -0
- package/mission-control/src/app/api/memory/flush/route.ts +129 -0
- package/mission-control/src/app/api/memory/graph/route.ts +105 -0
- package/mission-control/src/app/api/memory/items/route.ts +86 -0
- package/mission-control/src/app/api/memory/list/route.ts +48 -0
- package/mission-control/src/app/api/memory/retrieve/route.ts +51 -0
- package/mission-control/src/app/api/memory/search/route.ts +143 -0
- package/mission-control/src/app/api/memory/sync/route.ts +23 -0
- package/mission-control/src/app/api/memory/wikilinks/route.ts +75 -0
- package/mission-control/src/app/api/mesh/events/route.ts +67 -0
- package/mission-control/src/app/api/mesh/nodes/route.ts +221 -0
- package/mission-control/src/app/api/mesh/tokens/route.ts +133 -0
- package/mission-control/src/app/api/projects/route.ts +102 -0
- package/mission-control/src/app/api/resolve-path/route.ts +92 -0
- package/mission-control/src/app/api/scheduler/tick/route.ts +38 -0
- package/mission-control/src/app/api/scheduler/waves/route.ts +54 -0
- package/mission-control/src/app/api/screenshot/route.ts +127 -0
- package/mission-control/src/app/api/settings/gateway/route.ts +92 -0
- package/mission-control/src/app/api/skills/[id]/health/route.ts +57 -0
- package/mission-control/src/app/api/skills/list/route.ts +41 -0
- package/mission-control/src/app/api/souls/[id]/evolution/route.ts +253 -0
- package/mission-control/src/app/api/souls/[id]/prompt/route.ts +205 -0
- package/mission-control/src/app/api/souls/[id]/propagate/route.ts +146 -0
- package/mission-control/src/app/api/souls/route.ts +174 -0
- package/mission-control/src/app/api/tasks/[id]/handoff/route.ts +115 -0
- package/mission-control/src/app/api/tasks/[id]/route.ts +266 -0
- package/mission-control/src/app/api/tasks/[id]/tree/route.ts +94 -0
- package/mission-control/src/app/api/tasks/route.ts +253 -0
- package/mission-control/src/app/api/tts/route.ts +47 -0
- package/mission-control/src/app/api/workspace/files/route.ts +88 -0
- package/mission-control/src/app/api/workspace/read/route.ts +73 -0
- package/mission-control/src/app/burndown/page.tsx +309 -0
- package/mission-control/src/app/calendar/page.tsx +839 -0
- package/mission-control/src/app/favicon.ico +0 -0
- package/mission-control/src/app/globals.css +67 -0
- package/mission-control/src/app/graph/page.tsx +352 -0
- package/mission-control/src/app/layout.tsx +35 -0
- package/mission-control/src/app/live/page.tsx +232 -0
- package/mission-control/src/app/memory/page.tsx +154 -0
- package/mission-control/src/app/mesh/page.tsx +457 -0
- package/mission-control/src/app/obsidian/page.tsx +252 -0
- package/mission-control/src/app/page.tsx +70 -0
- package/mission-control/src/app/roadmap/page.tsx +1757 -0
- package/mission-control/src/app/settings/page.tsx +260 -0
- package/mission-control/src/app/souls/page.tsx +573 -0
- package/mission-control/src/components/board/activity-timeline.tsx +96 -0
- package/mission-control/src/components/board/daily-board.tsx +373 -0
- package/mission-control/src/components/board/kanban-board.tsx +364 -0
- package/mission-control/src/components/board/kanban-column.tsx +105 -0
- package/mission-control/src/components/board/live-stream.tsx +116 -0
- package/mission-control/src/components/board/skill-health-card.tsx +128 -0
- package/mission-control/src/components/board/status-banner.tsx +124 -0
- package/mission-control/src/components/board/task-card.tsx +454 -0
- package/mission-control/src/components/board/unified-task-dialog.tsx +1043 -0
- package/mission-control/src/components/layout/resizable-layout.tsx +68 -0
- package/mission-control/src/components/layout/sidebar.tsx +90 -0
- package/mission-control/src/components/live/audio-spectrum.tsx +106 -0
- package/mission-control/src/components/live/chat-bubble.tsx +52 -0
- package/mission-control/src/components/live/chat-input.tsx +92 -0
- package/mission-control/src/components/memory/doc-reader.tsx +172 -0
- package/mission-control/src/components/memory/memory-list.tsx +169 -0
- package/mission-control/src/components/memory/search-bar.tsx +67 -0
- package/mission-control/src/components/memory/search-results.tsx +149 -0
- package/mission-control/src/components/obsidian/backlinks-panel.tsx +52 -0
- package/mission-control/src/components/obsidian/file-tree.tsx +186 -0
- package/mission-control/src/components/obsidian/local-graph.tsx +107 -0
- package/mission-control/src/components/obsidian/obsidian-graph.tsx +192 -0
- package/mission-control/src/components/obsidian/obsidian-reader.tsx +246 -0
- package/mission-control/src/lib/activity.ts +29 -0
- package/mission-control/src/lib/config.ts +21 -0
- package/mission-control/src/lib/db/index.ts +429 -0
- package/mission-control/src/lib/db/schema.ts +218 -0
- package/mission-control/src/lib/gateway-notify.ts +113 -0
- package/mission-control/src/lib/hooks.ts +536 -0
- package/mission-control/src/lib/memory/categories.ts +125 -0
- package/mission-control/src/lib/memory/entities.ts +482 -0
- package/mission-control/src/lib/memory/extract.ts +369 -0
- package/mission-control/src/lib/memory/retrieval.ts +281 -0
- package/mission-control/src/lib/memory/wikilinks.ts +147 -0
- package/mission-control/src/lib/nats.ts +126 -0
- package/mission-control/src/lib/parsers/clawvault-doc.ts +98 -0
- package/mission-control/src/lib/parsers/daily-log.ts +73 -0
- package/mission-control/src/lib/parsers/memory-md.ts +81 -0
- package/mission-control/src/lib/parsers/task-markdown.ts +459 -0
- package/mission-control/src/lib/parsers/transcript.ts +209 -0
- package/mission-control/src/lib/scheduler.ts +394 -0
- package/mission-control/src/lib/speech/use-speech-pipeline.ts +176 -0
- package/mission-control/src/lib/sync/memory.ts +224 -0
- package/mission-control/src/lib/sync/tasks.ts +271 -0
- package/mission-control/src/lib/tts/edge.ts +31 -0
- package/mission-control/src/lib/tts/google.ts +78 -0
- package/mission-control/src/lib/tts/index.ts +39 -0
- package/mission-control/src/lib/tts/types.ts +18 -0
- package/mission-control/tsconfig.json +42 -0
- package/obsidian-vault/.obsidian/app.json +10 -0
- package/obsidian-vault/.obsidian/community-plugins.json +8 -0
- package/obsidian-vault/.obsidian/graph.json +40 -0
- package/obsidian-vault/.obsidian/plugins/obsidian-local-rest-api/main.js +58769 -0
- package/obsidian-vault/.obsidian/plugins/obsidian-local-rest-api/manifest.json +10 -0
- package/obsidian-vault/.obsidian/plugins/obsidian-local-rest-api/styles.css +47 -0
- package/obsidian-vault/00-meta/.gitkeep +0 -0
- package/obsidian-vault/01-architecture/.gitkeep +0 -0
- package/obsidian-vault/02-smart-contracts/.gitkeep +0 -0
- package/obsidian-vault/03-backend/.gitkeep +0 -0
- package/obsidian-vault/04-mobile/.gitkeep +0 -0
- package/obsidian-vault/05-ar-mapping/.gitkeep +0 -0
- package/obsidian-vault/06-3d-assets/.gitkeep +0 -0
- package/obsidian-vault/07-sound-music/.gitkeep +0 -0
- package/obsidian-vault/08-lore/.gitkeep +0 -0
- package/obsidian-vault/09-quests-playthrough/.gitkeep +0 -0
- package/obsidian-vault/10-economy/.gitkeep +0 -0
- package/obsidian-vault/11-nft-assets/.gitkeep +0 -0
- package/obsidian-vault/12-nft-mechanics/.gitkeep +0 -0
- package/obsidian-vault/13-dao-guild-social/.gitkeep +0 -0
- package/obsidian-vault/14-game-progression/.gitkeep +0 -0
- package/obsidian-vault/15-analytics/.gitkeep +0 -0
- package/obsidian-vault/16-security/.gitkeep +0 -0
- package/obsidian-vault/17-devops/.gitkeep +0 -0
- package/obsidian-vault/18-marketplace/.gitkeep +0 -0
- package/obsidian-vault/19-decisions/.gitkeep +0 -0
- package/obsidian-vault/20-business-strategy/.gitkeep +0 -0
- package/obsidian-vault/21-legal-regulatory/.gitkeep +0 -0
- package/obsidian-vault/nodes/.gitkeep +0 -0
- package/openclaw.env.example +17 -0
- package/package.json +45 -0
- package/services/launchd/ai.openclaw.gateway.plist +59 -0
- package/services/launchd/ai.openclaw.lane-watchdog.plist +32 -0
- package/services/launchd/ai.openclaw.log-rotate.plist +28 -0
- package/services/launchd/ai.openclaw.memory-daemon.plist +36 -0
- package/services/launchd/ai.openclaw.mesh-agent.plist +38 -0
- package/services/launchd/ai.openclaw.mesh-bridge.plist +36 -0
- package/services/launchd/ai.openclaw.mesh-deploy-listener.plist +33 -0
- package/services/launchd/ai.openclaw.mesh-health-publisher.plist +29 -0
- package/services/launchd/ai.openclaw.mesh-task-daemon.plist +36 -0
- package/services/launchd/ai.openclaw.mesh-tool-discord.plist +36 -0
- package/services/launchd/ai.openclaw.mission-control.plist +41 -0
- package/services/service-manifest.json +13 -0
- package/services/systemd/openclaw-gateway.service +21 -0
- package/services/systemd/openclaw-lane-watchdog.service +21 -0
- package/services/systemd/openclaw-log-rotate.service +13 -0
- package/services/systemd/openclaw-log-rotate.timer +9 -0
- package/services/systemd/openclaw-memory-daemon.service +21 -0
- package/services/systemd/openclaw-mesh-agent.service +19 -0
- package/services/systemd/openclaw-mesh-bridge.service +21 -0
- package/services/systemd/openclaw-mesh-deploy-listener.service +23 -0
- package/services/systemd/openclaw-mesh-health-publisher.service +21 -0
- package/services/systemd/openclaw-mesh-task-daemon.service +21 -0
- package/services/systemd/openclaw-mesh-tool-discord.service +21 -0
- package/services/systemd/openclaw-mission-control.service +22 -0
- package/skills/1password/.clawhub/origin.json +7 -0
- package/skills/1password/SKILL.md +63 -0
- package/skills/1password/references/cli-examples.md +29 -0
- package/skills/1password/references/get-started.md +17 -0
- package/skills/acquisition-channel-advisor/SKILL.md +643 -0
- package/skills/acquisition-channel-advisor/examples/conversation-flow.md +531 -0
- package/skills/agent-browser/.clawhub/origin.json +7 -0
- package/skills/agent-browser/CONTRIBUTING.md +63 -0
- package/skills/agent-browser/SKILL.md +338 -0
- package/skills/agentic-compass/.clawhub/origin.json +7 -0
- package/skills/agentic-compass/README.md +96 -0
- package/skills/agentic-compass/SKILL.md +112 -0
- package/skills/agentic-compass/references/README.md +5 -0
- package/skills/agentic-compass/scripts/agentic-compass.py +196 -0
- package/skills/arcane-dev-ops/SKILL.md +61 -0
- package/skills/arcane-dev-ops/references/checklist.md +22 -0
- package/skills/arcane-dev-ops/references/validation-cases.md +11 -0
- package/skills/arcane-dev-ops/scripts/prepush_check.sh +41 -0
- package/skills/auto-updater/.clawhub/origin.json +7 -0
- package/skills/auto-updater/SKILL.md +158 -0
- package/skills/auto-updater/references/agent-guide.md +152 -0
- package/skills/auto-updater/references/summary-examples.md +109 -0
- package/skills/business-health-diagnostic/SKILL.md +782 -0
- package/skills/byterover/.clawhub/origin.json +7 -0
- package/skills/byterover/SKILL.md +105 -0
- package/skills/byterover/TROUBLESHOOTING.md +50 -0
- package/skills/byterover/WORKFLOWS.md +229 -0
- package/skills/capability-evolver/.clawhub/origin.json +7 -0
- package/skills/capability-evolver/CONTRIBUTING.md +11 -0
- package/skills/capability-evolver/README.md +157 -0
- package/skills/capability-evolver/README.zh-CN.md +112 -0
- package/skills/capability-evolver/SKILL.md +93 -0
- package/skills/capability-evolver/assets/gep/capsules.json +5 -0
- package/skills/capability-evolver/assets/gep/genes.json +104 -0
- package/skills/capability-evolver/index.js +59 -0
- package/skills/capability-evolver/package.json +22 -0
- package/skills/capability-evolver/scripts/analyze_by_skill.js +121 -0
- package/skills/capability-evolver/scripts/build_public.js +350 -0
- package/skills/capability-evolver/scripts/export_history.js +98 -0
- package/skills/capability-evolver/scripts/extract_log.js +85 -0
- package/skills/capability-evolver/scripts/generate_history.js +75 -0
- package/skills/capability-evolver/scripts/human_report.js +147 -0
- package/skills/capability-evolver/scripts/publish_public.js +516 -0
- package/skills/capability-evolver/scripts/suggest_version.js +89 -0
- package/skills/capability-evolver/src/evolve.js +594 -0
- package/skills/capability-evolver/src/gep/assetStore.js +204 -0
- package/skills/capability-evolver/src/gep/candidates.js +134 -0
- package/skills/capability-evolver/src/gep/paths.js +23 -0
- package/skills/capability-evolver/src/gep/prompt.js +254 -0
- package/skills/capability-evolver/src/gep/selector.js +89 -0
- package/skills/capability-evolver/src/gep/signals.js +27 -0
- package/skills/cc-godmode/.clawhub/origin.json +7 -0
- package/skills/cc-godmode/CHANGELOG.md +66 -0
- package/skills/cc-godmode/README.md +293 -0
- package/skills/cc-godmode/SKILL.md +242 -0
- package/skills/cc-godmode/docs/AGENTS.md +332 -0
- package/skills/cc-godmode/docs/MIGRATION.md +206 -0
- package/skills/cc-godmode/docs/TROUBLESHOOTING.md +357 -0
- package/skills/cc-godmode/docs/WORKFLOWS.md +329 -0
- package/skills/cc-godmode/references/agents.md +433 -0
- package/skills/cc-godmode/scripts/build-skill.js +232 -0
- package/skills/clawdbot-filesystem/.clawhub/origin.json +7 -0
- package/skills/clawdbot-filesystem/LICENSE.md +21 -0
- package/skills/clawdbot-filesystem/README.md +322 -0
- package/skills/clawdbot-filesystem/SKILL.md +219 -0
- package/skills/clawdbot-filesystem/config.json +41 -0
- package/skills/clawdbot-filesystem/package.json +69 -0
- package/skills/clawdbot-security-check/.clawhub/origin.json +7 -0
- package/skills/clawdbot-security-check/README.md +168 -0
- package/skills/clawdbot-security-check/SKILL.md +145 -0
- package/skills/clawdbot-security-check/references/audit-checks.md +521 -0
- package/skills/clawdbot-security-check/skill.json +42 -0
- package/skills/clawddocs/.clawhub/origin.json +7 -0
- package/skills/clawddocs/SKILL.md +176 -0
- package/skills/clawddocs/package.json +9 -0
- package/skills/clawddocs/scripts/build-index.sh +17 -0
- package/skills/clawddocs/scripts/cache.sh +13 -0
- package/skills/clawddocs/scripts/fetch-doc.sh +7 -0
- package/skills/clawddocs/scripts/recent.sh +5 -0
- package/skills/clawddocs/scripts/search.sh +8 -0
- package/skills/clawddocs/scripts/sitemap.sh +23 -0
- package/skills/clawddocs/scripts/track-changes.sh +16 -0
- package/skills/clawddocs/snippets/common-configs.md +69 -0
- package/skills/clawguard/.clawhub/origin.json +7 -0
- package/skills/clawguard/SKILL.md +137 -0
- package/skills/company-research/SKILL.md +393 -0
- package/skills/company-research/examples/sample.md +164 -0
- package/skills/company-research/template.md +60 -0
- package/skills/crypto-price/.clawhub/origin.json +7 -0
- package/skills/crypto-price/ARCHITECTURE.md +437 -0
- package/skills/crypto-price/README.md +194 -0
- package/skills/crypto-price/SKILL.md +61 -0
- package/skills/crypto-price/requirements.txt +1 -0
- package/skills/crypto-price/scripts/get_price_chart.py +988 -0
- package/skills/customer-journey-map/SKILL.md +343 -0
- package/skills/customer-journey-map/examples/sample.md +33 -0
- package/skills/customer-journey-map/template.md +28 -0
- package/skills/customer-journey-mapping-workshop/SKILL.md +522 -0
- package/skills/deep-research/.clawhub/origin.json +7 -0
- package/skills/deep-research/SKILL.md +93 -0
- package/skills/deep-research/rules/logic.md +32 -0
- package/skills/discord-telegram-triage/SKILL.md +59 -0
- package/skills/discord-telegram-triage/references/discord-runbook.md +28 -0
- package/skills/discord-telegram-triage/references/validation-cases.md +11 -0
- package/skills/discord-telegram-triage/scripts/triage_snapshot.sh +23 -0
- package/skills/discovery-interview-prep/SKILL.md +408 -0
- package/skills/discovery-process/SKILL.md +503 -0
- package/skills/discovery-process/examples/sample.md +60 -0
- package/skills/discovery-process/template.md +39 -0
- package/skills/dist/arcane-dev-ops.skill +0 -0
- package/skills/dist/discord-telegram-triage.skill +0 -0
- package/skills/dist/founder-brief-summarizer.skill +0 -0
- package/skills/epic-breakdown-advisor/SKILL.md +664 -0
- package/skills/epic-hypothesis/SKILL.md +285 -0
- package/skills/epic-hypothesis/examples/sample.md +104 -0
- package/skills/epic-hypothesis/template.md +30 -0
- package/skills/excel/.clawhub/origin.json +7 -0
- package/skills/excel/SKILL.md +332 -0
- package/skills/excel/scripts/excel.py +1120 -0
- package/skills/fast-browser-use/.clawhub/origin.json +7 -0
- package/skills/fast-browser-use/CODEBUDDY.md +142 -0
- package/skills/fast-browser-use/Cargo.toml +77 -0
- package/skills/fast-browser-use/README.md +62 -0
- package/skills/fast-browser-use/SKILL.md +217 -0
- package/skills/fast-browser-use/package-lock.json +28 -0
- package/skills/fast-browser-use/package.json +8 -0
- package/skills/fast-browser-use/rustfmt.toml +10 -0
- package/skills/fast-browser-use/src/bin/cli.rs +373 -0
- package/skills/fast-browser-use/src/bin/mcp_server.rs +203 -0
- package/skills/fast-browser-use/src/browser/config.rs +136 -0
- package/skills/fast-browser-use/src/browser/debug.rs +16 -0
- package/skills/fast-browser-use/src/browser/mod.rs +61 -0
- package/skills/fast-browser-use/src/browser/session.rs +478 -0
- package/skills/fast-browser-use/src/dom/element.rs +442 -0
- package/skills/fast-browser-use/src/dom/extract_dom.js +849 -0
- package/skills/fast-browser-use/src/dom/mod.rs +14 -0
- package/skills/fast-browser-use/src/dom/tree.rs +296 -0
- package/skills/fast-browser-use/src/dom/yaml.rs +149 -0
- package/skills/fast-browser-use/src/error.rs +115 -0
- package/skills/fast-browser-use/src/lib.rs +17 -0
- package/skills/fast-browser-use/src/mcp/handler.rs +63 -0
- package/skills/fast-browser-use/src/mcp/mod.rs +81 -0
- package/skills/fast-browser-use/src/tools/Readability.min.js +1480 -0
- package/skills/fast-browser-use/src/tools/annotate.rs +165 -0
- package/skills/fast-browser-use/src/tools/click.rs +84 -0
- package/skills/fast-browser-use/src/tools/close.rs +35 -0
- package/skills/fast-browser-use/src/tools/close_tab.rs +45 -0
- package/skills/fast-browser-use/src/tools/convert_to_markdown.js +117 -0
- package/skills/fast-browser-use/src/tools/cookies.rs +58 -0
- package/skills/fast-browser-use/src/tools/debug.rs +44 -0
- package/skills/fast-browser-use/src/tools/evaluate.rs +40 -0
- package/skills/fast-browser-use/src/tools/extract.rs +66 -0
- package/skills/fast-browser-use/src/tools/go_back.rs +35 -0
- package/skills/fast-browser-use/src/tools/go_forward.rs +35 -0
- package/skills/fast-browser-use/src/tools/hover.js +33 -0
- package/skills/fast-browser-use/src/tools/hover.rs +97 -0
- package/skills/fast-browser-use/src/tools/html_to_markdown.rs +99 -0
- package/skills/fast-browser-use/src/tools/input.rs +93 -0
- package/skills/fast-browser-use/src/tools/local_storage.rs +159 -0
- package/skills/fast-browser-use/src/tools/markdown.rs +181 -0
- package/skills/fast-browser-use/src/tools/mod.rs +326 -0
- package/skills/fast-browser-use/src/tools/navigate.rs +55 -0
- package/skills/fast-browser-use/src/tools/new_tab.rs +60 -0
- package/skills/fast-browser-use/src/tools/press_key.rs +78 -0
- package/skills/fast-browser-use/src/tools/read_links.rs +59 -0
- package/skills/fast-browser-use/src/tools/readability_script.rs +8 -0
- package/skills/fast-browser-use/src/tools/screenshot.rs +47 -0
- package/skills/fast-browser-use/src/tools/scroll.js +22 -0
- package/skills/fast-browser-use/src/tools/scroll.rs +95 -0
- package/skills/fast-browser-use/src/tools/select.js +23 -0
- package/skills/fast-browser-use/src/tools/select.rs +129 -0
- package/skills/fast-browser-use/src/tools/sitemap.rs +426 -0
- package/skills/fast-browser-use/src/tools/snapshot.rs +324 -0
- package/skills/fast-browser-use/src/tools/switch_tab.rs +69 -0
- package/skills/fast-browser-use/src/tools/tab_list.rs +76 -0
- package/skills/fast-browser-use/src/tools/utils.rs +92 -0
- package/skills/fast-browser-use/src/tools/wait.rs +53 -0
- package/skills/fast-browser-use/test_auth.json +3 -0
- package/skills/fast-browser-use/test_state.json +6 -0
- package/skills/fast-browser-use/tests/browser_tools_integration.rs +233 -0
- package/skills/fast-browser-use/tests/cli_recipes_integration.rs +112 -0
- package/skills/fast-browser-use/tests/cookies_integration.rs +56 -0
- package/skills/fast-browser-use/tests/debug_integration.rs +83 -0
- package/skills/fast-browser-use/tests/dom_integration.rs +170 -0
- package/skills/fast-browser-use/tests/local_storage_integration.rs +75 -0
- package/skills/fast-browser-use/tests/markdown_integration.rs +448 -0
- package/skills/fast-browser-use/tests/navigation_integration.rs +241 -0
- package/skills/fast-browser-use/tests/sitemap_integration.rs +326 -0
- package/skills/fast-browser-use/tests/tab_management_integration.rs +300 -0
- package/skills/feature-investment-advisor/SKILL.md +639 -0
- package/skills/feature-investment-advisor/examples/conversation-flow.md +538 -0
- package/skills/finance-based-pricing-advisor/SKILL.md +763 -0
- package/skills/finance-metrics-quickref/SKILL.md +309 -0
- package/skills/find-skills/.clawhub/origin.json +7 -0
- package/skills/find-skills/SKILL.md +143 -0
- package/skills/flavor-text-writer/SKILL.md +27 -0
- package/skills/founder-brief-summarizer/SKILL.md +52 -0
- package/skills/founder-brief-summarizer/references/response-templates.md +15 -0
- package/skills/founder-brief-summarizer/references/validation-cases.md +11 -0
- package/skills/founder-brief-summarizer/scripts/brief_template.sh +28 -0
- package/skills/frontend-design/.clawhub/origin.json +7 -0
- package/skills/frontend-design/LICENSE.txt +190 -0
- package/skills/frontend-design/SKILL.md +53 -0
- package/skills/gemini/.clawhub/origin.json +7 -0
- package/skills/gemini/SKILL.md +33 -0
- package/skills/gemini-deep-research/.clawhub/origin.json +7 -0
- package/skills/gemini-deep-research/SKILL.md +78 -0
- package/skills/gemini-deep-research/scripts/deep_research.py +176 -0
- package/skills/git-essentials/.clawhub/origin.json +7 -0
- package/skills/git-essentials/SKILL.md +239 -0
- package/skills/git-essentials/references/advanced.md +211 -0
- package/skills/github/.clawhub/origin.json +7 -0
- package/skills/github/SKILL.md +57 -0
- package/skills/google-drive/.clawhub/origin.json +7 -0
- package/skills/google-drive/LICENSE.txt +21 -0
- package/skills/google-drive/SKILL.md +320 -0
- package/skills/growth-loop/SKILL.md +270 -0
- package/skills/growth-loop/_meta.json +9 -0
- package/skills/growth-loop/references/diagnosis-framework.md +84 -0
- package/skills/growth-loop/references/platform-benchmarks.md +79 -0
- package/skills/growth-loop/scripts/init-campaign.sh +274 -0
- package/skills/humanize-ai-text/.clawhub/origin.json +7 -0
- package/skills/humanize-ai-text/SKILL.md +192 -0
- package/skills/humanize-ai-text/scripts/compare.py +58 -0
- package/skills/humanize-ai-text/scripts/detect.py +160 -0
- package/skills/humanize-ai-text/scripts/patterns.json +191 -0
- package/skills/humanize-ai-text/scripts/transform.py +127 -0
- package/skills/humanizer/.clawhub/origin.json +7 -0
- package/skills/humanizer/README.md +82 -0
- package/skills/humanizer/SKILL.md +443 -0
- package/skills/jobs-to-be-done/SKILL.md +378 -0
- package/skills/jobs-to-be-done/examples/sample.md +80 -0
- package/skills/jobs-to-be-done/template.md +65 -0
- package/skills/lean-ux-canvas/SKILL.md +561 -0
- package/skills/lean-ux-canvas/examples/sample.md +88 -0
- package/skills/lean-ux-canvas/template.md +32 -0
- package/skills/markdown-formatter/.clawhub/origin.json +7 -0
- package/skills/markdown-formatter/README.md +137 -0
- package/skills/markdown-formatter/SKILL.md +369 -0
- package/skills/markdown-formatter/config.json +20 -0
- package/skills/markdown-formatter/index.js +439 -0
- package/skills/markdown-formatter/package.json +23 -0
- package/skills/markdown-formatter/test.js +23 -0
- package/skills/marketing-mode/.clawhub/origin.json +7 -0
- package/skills/marketing-mode/README.md +49 -0
- package/skills/marketing-mode/SKILL.md +703 -0
- package/skills/marketing-mode/mode-prompt.md +39 -0
- package/skills/marketing-mode/skill.json +51 -0
- package/skills/memory-hygiene/.clawhub/origin.json +7 -0
- package/skills/memory-hygiene/SKILL.md +91 -0
- package/skills/memory-setup/.clawhub/origin.json +7 -0
- package/skills/memory-setup/SKILL.md +180 -0
- package/skills/memorylayer/.clawhub/origin.json +7 -0
- package/skills/memorylayer/README.md +197 -0
- package/skills/memorylayer/SKILL.md +227 -0
- package/skills/memorylayer/examples/agent-integration.js +145 -0
- package/skills/memorylayer/examples/basic-usage.js +87 -0
- package/skills/memorylayer/examples/token-savings-demo.js +183 -0
- package/skills/memorylayer/index.js +115 -0
- package/skills/memorylayer/package-lock.json +295 -0
- package/skills/memorylayer/package.json +27 -0
- package/skills/memorylayer/python/memorylayer_skill.py +230 -0
- package/skills/memorylayer/python/requirements.txt +7 -0
- package/skills/mesh/SKILL.md +184 -0
- package/skills/model-usage/.clawhub/origin.json +7 -0
- package/skills/model-usage/SKILL.md +54 -0
- package/skills/model-usage/references/codexbar-cli.md +28 -0
- package/skills/model-usage/scripts/model_usage.py +310 -0
- package/skills/moltbook-interact/.clawhub/origin.json +7 -0
- package/skills/moltbook-interact/INSTALL.md +139 -0
- package/skills/moltbook-interact/README.md +198 -0
- package/skills/moltbook-interact/SKILL.md +72 -0
- package/skills/moltbook-interact/references/api.md +106 -0
- package/skills/moltbook-interact/scripts/moltbook.sh +142 -0
- package/skills/moltbook-registry/.clawhub/origin.json +7 -0
- package/skills/moltbook-registry/README.md +26 -0
- package/skills/moltbook-registry/SKILL.md +82 -0
- package/skills/moltbook-registry/index.js +180 -0
- package/skills/moltbook-registry/package.json +11 -0
- package/skills/mythril-scanner/SKILL.md +27 -0
- package/skills/n8n/.clawhub/origin.json +7 -0
- package/skills/n8n/SKILL.md +141 -0
- package/skills/n8n/references/api.md +156 -0
- package/skills/n8n/scripts/n8n_api.py +158 -0
- package/skills/n8n-workflow-automation/.clawhub/origin.json +7 -0
- package/skills/n8n-workflow-automation/SKILL.md +103 -0
- package/skills/n8n-workflow-automation/assets/runbook-template.md +32 -0
- package/skills/narrative-designer/SKILL.md +27 -0
- package/skills/ontology/.clawhub/origin.json +7 -0
- package/skills/ontology/SKILL.md +236 -0
- package/skills/ontology/references/queries.md +211 -0
- package/skills/ontology/references/schema.md +322 -0
- package/skills/ontology/scripts/ontology.py +374 -0
- package/skills/openai-image-gen/.clawhub/origin.json +7 -0
- package/skills/openai-image-gen/SKILL.md +45 -0
- package/skills/openai-image-gen/scripts/gen.py +227 -0
- package/skills/openclaw-agent-optimize/.clawhub/origin.json +7 -0
- package/skills/openclaw-agent-optimize/SKILL.md +33 -0
- package/skills/openclaw-agent-optimize/references/agent-orchestration.md +20 -0
- package/skills/openclaw-agent-optimize/references/context-management.md +15 -0
- package/skills/openclaw-agent-optimize/references/continuous-learning.md +14 -0
- package/skills/openclaw-agent-optimize/references/cron-optimization.md +16 -0
- package/skills/openclaw-agent-optimize/references/memory-patterns.md +14 -0
- package/skills/openclaw-agent-optimize/references/model-selection.md +18 -0
- package/skills/openclaw-skill-scanner/.clawhub/origin.json +7 -0
- package/skills/openclaw-skill-scanner/SKILL.md +88 -0
- package/skills/openclaw-skill-scanner/install-hook.sh +294 -0
- package/skills/openclaw-skill-scanner/report-template.md +53 -0
- package/skills/openclaw-skill-scanner/scanner.py +929 -0
- package/skills/openclaw-skill-scanner/whitelist.json +18 -0
- package/skills/opportunity-solution-tree/SKILL.md +428 -0
- package/skills/opportunity-solution-tree/examples/sample.md +104 -0
- package/skills/opportunity-solution-tree/template.md +33 -0
- package/skills/pdf/.clawhub/origin.json +7 -0
- package/skills/pdf/SKILL.md +304 -0
- package/skills/pestel-analysis/SKILL.md +384 -0
- package/skills/pestel-analysis/examples/sample.md +143 -0
- package/skills/pestel-analysis/template.md +53 -0
- package/skills/pol-probe/SKILL.md +217 -0
- package/skills/pol-probe/examples/sample.md +136 -0
- package/skills/pol-probe/template.md +59 -0
- package/skills/pol-probe-advisor/SKILL.md +492 -0
- package/skills/positioning-statement/SKILL.md +229 -0
- package/skills/positioning-statement/examples/sample.md +51 -0
- package/skills/positioning-statement/template.md +25 -0
- package/skills/positioning-workshop/SKILL.md +424 -0
- package/skills/prd-development/SKILL.md +654 -0
- package/skills/prd-development/examples/sample.md +43 -0
- package/skills/prd-development/template.md +55 -0
- package/skills/press-release/SKILL.md +277 -0
- package/skills/press-release/examples/sample.md +73 -0
- package/skills/press-release/template.md +39 -0
- package/skills/prioritization-advisor/SKILL.md +451 -0
- package/skills/proactive-messages/.clawhub/origin.json +7 -0
- package/skills/proactive-messages/SKILL.md +91 -0
- package/skills/problem-framing-canvas/SKILL.md +466 -0
- package/skills/problem-framing-canvas/examples/sample.md +58 -0
- package/skills/problem-framing-canvas/template.md +22 -0
- package/skills/problem-statement/SKILL.md +255 -0
- package/skills/problem-statement/examples/sample.md +82 -0
- package/skills/problem-statement/template.md +37 -0
- package/skills/product-strategy-session/SKILL.md +434 -0
- package/skills/product-strategy-session/examples/sample.md +67 -0
- package/skills/product-strategy-session/template.md +38 -0
- package/skills/prompt-guard/.clawhub/origin.json +7 -0
- package/skills/prompt-guard/ARCHITECTURE.md +364 -0
- package/skills/prompt-guard/CHANGELOG.md +200 -0
- package/skills/prompt-guard/README.md +215 -0
- package/skills/prompt-guard/SECURITY.md +66 -0
- package/skills/prompt-guard/SKILL.md +174 -0
- package/skills/prompt-guard/blog/how-i-secured-my-ai-agent.md +185 -0
- package/skills/prompt-guard/config.example.yaml +56 -0
- package/skills/prompt-guard/references/detection-patterns.md +298 -0
- package/skills/prompt-guard/requirements.txt +1 -0
- package/skills/prompt-guard/scripts/analyze_log.py +224 -0
- package/skills/prompt-guard/scripts/audit.py +344 -0
- package/skills/prompt-guard/scripts/detect.py +1587 -0
- package/skills/prompt-guard/scripts/hivefence.py +345 -0
- package/skills/proto-persona/SKILL.md +336 -0
- package/skills/proto-persona/examples/sample.md +97 -0
- package/skills/proto-persona/template.md +45 -0
- package/skills/recommendation-canvas/SKILL.md +382 -0
- package/skills/recommendation-canvas/examples/sample.md +94 -0
- package/skills/recommendation-canvas/template.md +86 -0
- package/skills/refactor-suggest/.clawhub/origin.json +7 -0
- package/skills/refactor-suggest/SKILL.md +94 -0
- package/skills/roadmap-planning/SKILL.md +506 -0
- package/skills/roadmap-planning/examples/sample.md +62 -0
- package/skills/roadmap-planning/template.md +30 -0
- package/skills/saas-economics-efficiency-metrics/SKILL.md +694 -0
- package/skills/saas-economics-efficiency-metrics/examples/cash-trap.md +365 -0
- package/skills/saas-economics-efficiency-metrics/examples/healthy-unit-economics.md +279 -0
- package/skills/saas-economics-efficiency-metrics/template.md +263 -0
- package/skills/saas-revenue-growth-metrics/SKILL.md +629 -0
- package/skills/saas-revenue-growth-metrics/examples/healthy-saas.md +131 -0
- package/skills/saas-revenue-growth-metrics/examples/warning-signs.md +229 -0
- package/skills/saas-revenue-growth-metrics/template.md +192 -0
- package/skills/save-money/.clawhub/origin.json +7 -0
- package/skills/save-money/SKILL.md +173 -0
- package/skills/scripts/golden_skills_v3.sh +32 -0
- package/skills/search/.clawhub/origin.json +7 -0
- package/skills/search/SKILL.md +18 -0
- package/skills/search/skill.json +1 -0
- package/skills/second-brain/.clawhub/origin.json +7 -0
- package/skills/second-brain/SKILL.md +278 -0
- package/skills/second-brain/scripts/ensue-api.sh +37 -0
- package/skills/self-improving-agent/.clawhub/origin.json +7 -0
- package/skills/self-improving-agent/.learnings/ERRORS.md +5 -0
- package/skills/self-improving-agent/.learnings/FEATURE_REQUESTS.md +5 -0
- package/skills/self-improving-agent/.learnings/LEARNINGS.md +5 -0
- package/skills/self-improving-agent/SKILL.md +130 -0
- package/skills/self-improving-agent/assets/LEARNINGS.md +45 -0
- package/skills/self-improving-agent/assets/SKILL-TEMPLATE.md +177 -0
- package/skills/self-improving-agent/hooks/openclaw/HOOK.md +23 -0
- package/skills/self-improving-agent/hooks/openclaw/handler.js +56 -0
- package/skills/self-improving-agent/hooks/openclaw/handler.ts +62 -0
- package/skills/self-improving-agent/references/examples.md +374 -0
- package/skills/self-improving-agent/references/hooks-setup.md +223 -0
- package/skills/self-improving-agent/references/openclaw-integration.md +248 -0
- package/skills/self-improving-agent/references/templates.md +480 -0
- package/skills/self-improving-agent/scripts/activator.sh +20 -0
- package/skills/self-improving-agent/scripts/error-detector.sh +55 -0
- package/skills/self-improving-agent/scripts/extract-skill.sh +203 -0
- package/skills/self-improving-agent-1-0-2/.clawhub/origin.json +7 -0
- package/skills/self-improving-agent-1-0-2/SKILL.md +562 -0
- package/skills/self-improving-agent-1-0-2/assets/LEARNINGS.md +45 -0
- package/skills/self-improving-agent-1-0-2/assets/SKILL-TEMPLATE.md +182 -0
- package/skills/self-improving-agent-1-0-2/references/clawdbot-integration.md +311 -0
- package/skills/self-improving-agent-1-0-2/references/examples.md +374 -0
- package/skills/self-improving-agent-1-0-2/references/hooks-setup.md +223 -0
- package/skills/self-improving-agent-1-0-2/scripts/activator.sh +20 -0
- package/skills/self-improving-agent-1-0-2/scripts/error-detector.sh +55 -0
- package/skills/self-improving-agent-1-0-2/scripts/extract-skill.sh +203 -0
- package/skills/self-love-confidence/.clawhub/origin.json +7 -0
- package/skills/self-love-confidence/SKILL.md +79 -0
- package/skills/self-reflection/.clawhub/origin.json +7 -0
- package/skills/self-reflection/README.md +292 -0
- package/skills/self-reflection/SKILL.md +110 -0
- package/skills/self-reflection/self-reflection.example.json +6 -0
- package/skills/slither-analyzer/SKILL.md +27 -0
- package/skills/solidity-audit/SKILL.md +27 -0
- package/skills/soulcraft/.clawhub/origin.json +7 -0
- package/skills/soulcraft/README.md +123 -0
- package/skills/soulcraft/SKILL.md +340 -0
- package/skills/soulcraft/references/question-bank.md +154 -0
- package/skills/soulcraft/references/soul-examples.md +207 -0
- package/skills/soulcraft/research/RESEARCH_REPORT.md +317 -0
- package/skills/spotify-player/.clawhub/origin.json +7 -0
- package/skills/spotify-player/SKILL.md +44 -0
- package/skills/storyboard/SKILL.md +259 -0
- package/skills/storyboard/examples/sample.md +71 -0
- package/skills/storyboard/template.md +41 -0
- package/skills/summarize/.clawhub/origin.json +7 -0
- package/skills/summarize/SKILL.md +59 -0
- package/skills/superdesign/.clawhub/origin.json +7 -0
- package/skills/superdesign/SKILL.md +224 -0
- package/skills/tam-sam-som-calculator/SKILL.md +399 -0
- package/skills/tam-sam-som-calculator/examples/sample.md +142 -0
- package/skills/tam-sam-som-calculator/scripts/market-sizing.py +95 -0
- package/skills/tam-sam-som-calculator/template.md +35 -0
- package/skills/tavily-search/.clawhub/origin.json +7 -0
- package/skills/tavily-search/SKILL.md +49 -0
- package/skills/tavily-search/scripts/extract.mjs +59 -0
- package/skills/tavily-search/scripts/search.mjs +101 -0
- package/skills/twitter/SKILL.md +74 -0
- package/skills/twitter/_meta.json +9 -0
- package/skills/twitter/references/validation-cases.md +53 -0
- package/skills/twitter/scripts/twitter.sh +421 -0
- package/skills/ui-ux-pro-max/.clawhub/origin.json +7 -0
- package/skills/ui-ux-pro-max/SKILL.md +54 -0
- package/skills/ui-ux-pro-max/assets/data/charts.csv +26 -0
- package/skills/ui-ux-pro-max/assets/data/colors.csv +97 -0
- package/skills/ui-ux-pro-max/assets/data/icons.csv +101 -0
- package/skills/ui-ux-pro-max/assets/data/landing.csv +31 -0
- package/skills/ui-ux-pro-max/assets/data/products.csv +97 -0
- package/skills/ui-ux-pro-max/assets/data/react-performance.csv +45 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/astro.csv +54 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/flutter.csv +53 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/html-tailwind.csv +56 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/jetpack-compose.csv +53 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/nextjs.csv +53 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/nuxt-ui.csv +51 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/nuxtjs.csv +59 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/react-native.csv +52 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/react.csv +54 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/shadcn.csv +61 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/svelte.csv +54 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/swiftui.csv +51 -0
- package/skills/ui-ux-pro-max/assets/data/stacks/vue.csv +50 -0
- package/skills/ui-ux-pro-max/assets/data/styles.csv +68 -0
- package/skills/ui-ux-pro-max/assets/data/typography.csv +58 -0
- package/skills/ui-ux-pro-max/assets/data/ui-reasoning.csv +101 -0
- package/skills/ui-ux-pro-max/assets/data/ux-guidelines.csv +100 -0
- package/skills/ui-ux-pro-max/assets/data/web-interface.csv +31 -0
- package/skills/ui-ux-pro-max/references/upstream-README.md +488 -0
- package/skills/ui-ux-pro-max/references/upstream-skill-content.md +288 -0
- package/skills/ui-ux-pro-max/scripts/__init__.py +0 -0
- package/skills/ui-ux-pro-max/scripts/core.py +253 -0
- package/skills/ui-ux-pro-max/scripts/design_system.py +1071 -0
- package/skills/ui-ux-pro-max/scripts/search.py +111 -0
- package/skills/user-story/SKILL.md +272 -0
- package/skills/user-story/examples/sample.md +110 -0
- package/skills/user-story/scripts/user-story-template.py +65 -0
- package/skills/user-story/template.md +32 -0
- package/skills/user-story-mapping/SKILL.md +296 -0
- package/skills/user-story-mapping/examples/sample.md +77 -0
- package/skills/user-story-mapping/template.md +41 -0
- package/skills/user-story-mapping-workshop/SKILL.md +485 -0
- package/skills/user-story-mapping-workshop/template.md +28 -0
- package/skills/user-story-splitting/SKILL.md +313 -0
- package/skills/user-story-splitting/examples/sample.md +147 -0
- package/skills/user-story-splitting/template.md +37 -0
- package/skills/wacli/.clawhub/origin.json +7 -0
- package/skills/wacli/SKILL.md +53 -0
- package/skills/web-search/.clawhub/origin.json +7 -0
- package/skills/web-search/SKILL.md +151 -0
- package/skills/web-search/references/api-details.md +207 -0
- package/skills/web-search/scripts/search.py +576 -0
- package/skills/workshop-facilitation/SKILL.md +88 -0
- package/skills/world-builder/SKILL.md +27 -0
- package/souls/blockchain-auditor/PRINCIPLES.md +75 -0
- package/souls/blockchain-auditor/SOUL.md +56 -0
- package/souls/blockchain-auditor/capabilities.json +33 -0
- package/souls/blockchain-auditor/evolution/capsules.json +4 -0
- package/souls/blockchain-auditor/evolution/events.jsonl +1 -0
- package/souls/blockchain-auditor/evolution/genes.json +62 -0
- package/souls/daedalus/PRINCIPLES.md +78 -0
- package/souls/daedalus/SOUL.md +48 -0
- package/souls/daedalus/capabilities.json +46 -0
- package/souls/identity-architect/PRINCIPLES.md +83 -0
- package/souls/identity-architect/SOUL.md +66 -0
- package/souls/identity-architect/capabilities.json +38 -0
- package/souls/identity-architect/evolution/capsules.json +4 -0
- package/souls/identity-architect/evolution/events.jsonl +0 -0
- package/souls/identity-architect/evolution/genes.json +4 -0
- package/souls/infra-ops/PRINCIPLES.md +77 -0
- package/souls/infra-ops/SOUL.md +56 -0
- package/souls/infra-ops/capabilities.json +33 -0
- package/souls/infra-ops/evolution/capsules.json +4 -0
- package/souls/infra-ops/evolution/events.jsonl +0 -0
- package/souls/infra-ops/evolution/genes.json +4 -0
- package/souls/lore-writer/PRINCIPLES.md +74 -0
- package/souls/lore-writer/SOUL.md +54 -0
- package/souls/lore-writer/capabilities.json +37 -0
- package/souls/lore-writer/evolution/capsules.json +4 -0
- package/souls/lore-writer/evolution/events.jsonl +0 -0
- package/souls/lore-writer/evolution/genes.json +4 -0
- package/souls/qa-evidence/PRINCIPLES.md +97 -0
- package/souls/qa-evidence/SOUL.md +66 -0
- package/souls/qa-evidence/capabilities.json +32 -0
- package/souls/qa-evidence/evolution/capsules.json +4 -0
- package/souls/qa-evidence/evolution/events.jsonl +0 -0
- package/souls/qa-evidence/evolution/genes.json +4 -0
- package/souls/registry.json +211 -0
- package/souls/sync-registry.js +65 -0
- package/uninstall.sh +102 -0
- package/workspace-bin/auto-checkpoint +60 -0
- package/workspace-bin/clawvault-access-control +65 -0
- package/workspace-bin/clawvault-local +28 -0
- package/workspace-bin/compile-boot +494 -0
- package/workspace-bin/daily-log-writer.mjs +251 -0
- package/workspace-bin/evolve +540 -0
- package/workspace-bin/fitness_score.py +395 -0
- package/workspace-bin/hooks/pre-commit +80 -0
- package/workspace-bin/install-daemon +299 -0
- package/workspace-bin/lane-watchdog.js +232 -0
- package/workspace-bin/lib/__init__.py +0 -0
- package/workspace-bin/lib/frontmatter.py +114 -0
- package/workspace-bin/memory-daemon.mjs +879 -0
- package/workspace-bin/memory-maintenance.mjs +531 -0
- package/workspace-bin/mesh-bridge.mjs +154 -0
- package/workspace-bin/multi-review +130 -0
- package/workspace-bin/obsidian +125 -0
- package/workspace-bin/obsidian-sync.mjs +888 -0
- package/workspace-bin/openclaw-register-source +102 -0
- package/workspace-bin/proactive-scan +147 -0
- package/workspace-bin/quality-gate +175 -0
- package/workspace-bin/screenshot +96 -0
- package/workspace-bin/session-recap +453 -0
- package/workspace-bin/skill-audit +494 -0
- package/workspace-bin/skill-quality-check +134 -0
- package/workspace-bin/skill-routing-eval +599 -0
- package/workspace-bin/soul-prompt +251 -0
- package/workspace-bin/subagent-audit.mjs +267 -0
- package/workspace-bin/test-multi-soul-workflow +130 -0
- package/workspace-bin/trust-registry +465 -0
- package/workspace-docs/AGENTS.md +201 -0
- package/workspace-docs/CLAUDE.md +64 -0
- package/workspace-docs/PRINCIPLES.md +81 -0
- package/workspace-docs/SOUL.md +48 -0
|
@@ -0,0 +1,437 @@
|
|
|
1
|
+
# Architecture & Design Decisions
|
|
2
|
+
|
|
3
|
+
**Version:** 1.0
|
|
4
|
+
**Date:** 2026-01-27
|
|
5
|
+
**Author:** Research & audit by Clawd 🦊
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Why This Document Exists
|
|
10
|
+
|
|
11
|
+
This document explains why `crypto-price` does **not** use template generation for wrapper skills, and why the current architecture is optimal.
|
|
12
|
+
|
|
13
|
+
**TL;DR:** No refactoring needed. System already DRY.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## System Overview
|
|
18
|
+
|
|
19
|
+
### What We Have
|
|
20
|
+
|
|
21
|
+
**1 Core Script:**
|
|
22
|
+
- `scripts/get_price_chart.py` (~800 lines)
|
|
23
|
+
- All logic: API calls, caching, chart generation, error handling
|
|
24
|
+
|
|
25
|
+
**30 Wrapper Skills:**
|
|
26
|
+
- `../btc/SKILL.md`, `../eth/SKILL.md`, `../hype/SKILL.md`, ... (28 token wrappers)
|
|
27
|
+
- `../cryptochart/SKILL.md` (universal fallback)
|
|
28
|
+
- `../token/SKILL.md` (universal `/token ANY` command)
|
|
29
|
+
- Each wrapper = 35 lines: metadata + symbol + "call core script"
|
|
30
|
+
|
|
31
|
+
**Total duplication:** Zero. All wrappers call same script.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Why No Template Generation?
|
|
36
|
+
|
|
37
|
+
### The Proposal (Rejected)
|
|
38
|
+
|
|
39
|
+
**Idea:** Generate wrappers from template to reduce duplication.
|
|
40
|
+
|
|
41
|
+
**Reality:** No duplication exists.
|
|
42
|
+
|
|
43
|
+
**Current wrapper:**
|
|
44
|
+
```yaml
|
|
45
|
+
---
|
|
46
|
+
name: BTC
|
|
47
|
+
description: Slash command for Bitcoin token price + chart.
|
|
48
|
+
metadata: {"clawdbot":{"emoji":"📈","requires":{"bins":["python3"]}}}
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
# Bitcoin Price
|
|
52
|
+
|
|
53
|
+
## Usage
|
|
54
|
+
/BTC
|
|
55
|
+
/BTC 12h
|
|
56
|
+
|
|
57
|
+
## Execution
|
|
58
|
+
python3 {baseDir}/../crypto-price/scripts/get_price_chart.py BTC
|
|
59
|
+
|
|
60
|
+
Return JSON output. Attach chart_path PNG.
|
|
61
|
+
Return text_plain with no markdown.
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**Lines:** 35
|
|
65
|
+
**Logic:** 0 (just metadata + symbol)
|
|
66
|
+
|
|
67
|
+
### Comparison: Manual vs Template
|
|
68
|
+
|
|
69
|
+
**Current (no template):**
|
|
70
|
+
```bash
|
|
71
|
+
# Add new token
|
|
72
|
+
cp btc/SKILL.md pepe/SKILL.md
|
|
73
|
+
vim pepe/SKILL.md # Edit 3 places: name, description, symbol
|
|
74
|
+
# Done (2 minutes)
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**With template:**
|
|
78
|
+
```bash
|
|
79
|
+
# Maintain template file
|
|
80
|
+
vim crypto-price/templates/token_wrapper.md
|
|
81
|
+
# Maintain generator script
|
|
82
|
+
vim crypto-price/scripts/generate_wrapper.sh
|
|
83
|
+
# Generate wrapper
|
|
84
|
+
./generate_wrapper.sh PEPE "Pepe Coin" pepe
|
|
85
|
+
# Debug if generator fails
|
|
86
|
+
# Done (5 minutes + maintenance overhead)
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**Winner:** Current approach (simpler, fewer files, easier to understand)
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Maintenance Model
|
|
94
|
+
|
|
95
|
+
### Bug Fix Scenario
|
|
96
|
+
|
|
97
|
+
**Bug:** Chart generation broken
|
|
98
|
+
|
|
99
|
+
**Fix location:** `scripts/get_price_chart.py` (1 file)
|
|
100
|
+
|
|
101
|
+
**Impact:** All 30 wrapper skills fixed instantly
|
|
102
|
+
|
|
103
|
+
**Wrapper changes:** 0 files
|
|
104
|
+
|
|
105
|
+
**Time:** 10 minutes (edit core script only)
|
|
106
|
+
|
|
107
|
+
### Adding New Token
|
|
108
|
+
|
|
109
|
+
**Process:**
|
|
110
|
+
1. `cp ../btc/SKILL.md ../pepe/SKILL.md`
|
|
111
|
+
2. Edit 3 lines: `name: PEPE`, description, symbol
|
|
112
|
+
3. Done
|
|
113
|
+
|
|
114
|
+
**Time:** 2 minutes
|
|
115
|
+
|
|
116
|
+
**No template needed.**
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Architecture Principles
|
|
121
|
+
|
|
122
|
+
### 1. Single Source of Truth
|
|
123
|
+
|
|
124
|
+
**Core script** = all logic
|
|
125
|
+
**Wrappers** = metadata only
|
|
126
|
+
|
|
127
|
+
**Result:** Bug fix in 1 place affects all 30 skills.
|
|
128
|
+
|
|
129
|
+
### 2. Minimal Wrappers
|
|
130
|
+
|
|
131
|
+
**Current:** 35 lines per wrapper
|
|
132
|
+
**Can't reduce further** without losing readability
|
|
133
|
+
|
|
134
|
+
**Template would add complexity** (template file + generator script + docs) without reducing wrapper size.
|
|
135
|
+
|
|
136
|
+
### 3. Clear Separation of Concerns
|
|
137
|
+
|
|
138
|
+
**Core script:**
|
|
139
|
+
- API calls (Hyperliquid, CoinGecko)
|
|
140
|
+
- Caching (300s TTL)
|
|
141
|
+
- Chart generation (matplotlib)
|
|
142
|
+
- Error handling (retries, fallbacks)
|
|
143
|
+
|
|
144
|
+
**Wrappers:**
|
|
145
|
+
- Clawdbot metadata (name, description, emoji)
|
|
146
|
+
- Trigger conditions (slash command, keywords)
|
|
147
|
+
- Symbol mapping (e.g., `gld` → `GOLD-USDC`)
|
|
148
|
+
|
|
149
|
+
**Clawdbot:**
|
|
150
|
+
- Skill matching (user input → skill)
|
|
151
|
+
- Execution (run core script)
|
|
152
|
+
- Reply formatting (text + image)
|
|
153
|
+
|
|
154
|
+
### 4. Easy to Extend
|
|
155
|
+
|
|
156
|
+
**New token:** Copy wrapper + edit 3 lines
|
|
157
|
+
|
|
158
|
+
**No script maintenance needed.**
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## Data Flow
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
User: /hype 12h
|
|
166
|
+
↓
|
|
167
|
+
Clawdbot: Match skill hype/SKILL.md
|
|
168
|
+
↓
|
|
169
|
+
Execute: python3 .../get_price_chart.py HYPE 12h
|
|
170
|
+
↓
|
|
171
|
+
Core Script:
|
|
172
|
+
1. Parse duration
|
|
173
|
+
2. Try Hyperliquid API
|
|
174
|
+
3. Fallback to CoinGecko
|
|
175
|
+
4. Check cache (5 min TTL)
|
|
176
|
+
5. Generate chart (matplotlib)
|
|
177
|
+
6. Return JSON
|
|
178
|
+
↓
|
|
179
|
+
Clawdbot: Send text + attach image
|
|
180
|
+
↓
|
|
181
|
+
User sees: Text + Chart
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
**Single entry point:** Core script
|
|
185
|
+
**Single maintenance location:** Core script
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Testing Results
|
|
190
|
+
|
|
191
|
+
**Test 1: HYPE (Hyperliquid)**
|
|
192
|
+
```bash
|
|
193
|
+
$ python3 get_price_chart.py HYPE
|
|
194
|
+
{"symbol": "HYPE", "price": 27.31, "text_plain": "HYPE: $27.31 USD ⬆️ +22.60% over 24h"}
|
|
195
|
+
```
|
|
196
|
+
✅ Works
|
|
197
|
+
|
|
198
|
+
**Test 2: BTC 12h**
|
|
199
|
+
```bash
|
|
200
|
+
$ python3 get_price_chart.py BTC 12h
|
|
201
|
+
{"symbol": "BTC", "price": 88263.00, "text_plain": "BTC: $88263.00 USD ⬆️ +0.53% over 12h"}
|
|
202
|
+
```
|
|
203
|
+
✅ Works
|
|
204
|
+
|
|
205
|
+
**Test 3: Rate Limit**
|
|
206
|
+
```bash
|
|
207
|
+
$ python3 get_price_chart.py PEPE
|
|
208
|
+
{"error": "price lookup failed", "details": "HTTP Error 429: Too Many Requests"}
|
|
209
|
+
```
|
|
210
|
+
✅ Graceful error
|
|
211
|
+
|
|
212
|
+
**Test 4: Wrapper Consistency**
|
|
213
|
+
```bash
|
|
214
|
+
$ diff -u btc/SKILL.md eth/SKILL.md
|
|
215
|
+
-name: BTC
|
|
216
|
+
+name: ETH
|
|
217
|
+
-# Bitcoin Price
|
|
218
|
+
+# Ethereum Price
|
|
219
|
+
-get_price_chart.py BTC
|
|
220
|
+
+get_price_chart.py ETH
|
|
221
|
+
```
|
|
222
|
+
✅ Identical structure (only symbol differs)
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## Risks Assessment
|
|
227
|
+
|
|
228
|
+
### Risk 1: Core Script Failure
|
|
229
|
+
**Scenario:** Bug in `get_price_chart.py` → all 30 skills break
|
|
230
|
+
|
|
231
|
+
**Likelihood:** LOW (stable for months)
|
|
232
|
+
|
|
233
|
+
**Mitigation:**
|
|
234
|
+
- Error handling in script
|
|
235
|
+
- Caching reduces API dependency
|
|
236
|
+
- Graceful degradation (price without chart if matplotlib fails)
|
|
237
|
+
|
|
238
|
+
**Impact:** HIGH (all token commands broken)
|
|
239
|
+
|
|
240
|
+
**Note:** Same risk exists regardless of wrapper structure. Not a refactoring issue.
|
|
241
|
+
|
|
242
|
+
### Risk 2: API Rate Limits
|
|
243
|
+
**Scenario:** CoinGecko 50 calls/min exceeded
|
|
244
|
+
|
|
245
|
+
**Likelihood:** MEDIUM (confirmed during testing)
|
|
246
|
+
|
|
247
|
+
**Mitigation:**
|
|
248
|
+
- 5-minute cache (TTL 300s)
|
|
249
|
+
- Hyperliquid fallback
|
|
250
|
+
- Retry logic with backoff
|
|
251
|
+
|
|
252
|
+
**Impact:** LOW (temporary failure, user retries in 5 min)
|
|
253
|
+
|
|
254
|
+
### Risk 3: Template Maintenance
|
|
255
|
+
**Scenario:** Template generator breaks
|
|
256
|
+
|
|
257
|
+
**Likelihood:** ZERO (no template exists)
|
|
258
|
+
|
|
259
|
+
**Current approach:** Manual copy-paste (simpler, no generator to maintain)
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
## Comparison: Current vs Template System
|
|
264
|
+
|
|
265
|
+
| Aspect | Current | With Template |
|
|
266
|
+
|--------|---------|---------------|
|
|
267
|
+
| Core logic files | 1 | 1 |
|
|
268
|
+
| Template files | 0 | 1 |
|
|
269
|
+
| Generator scripts | 0 | 1 |
|
|
270
|
+
| Wrapper files | 30 | 30 |
|
|
271
|
+
| Lines per wrapper | 35 | 35 (same) |
|
|
272
|
+
| Add new token | 2 min (copy + edit) | 5 min (run generator) |
|
|
273
|
+
| Maintenance overhead | Low (1 file) | Medium (3 files) |
|
|
274
|
+
| Debugging complexity | Low | Medium (script + template) |
|
|
275
|
+
| Learning curve | Low | Medium |
|
|
276
|
+
|
|
277
|
+
**Winner:** Current approach
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
## Alternatives Considered
|
|
282
|
+
|
|
283
|
+
### Alternative 1: Full Template Generation
|
|
284
|
+
**Idea:** Template file + generator script
|
|
285
|
+
|
|
286
|
+
**Pros:**
|
|
287
|
+
- Slightly more "automated"
|
|
288
|
+
|
|
289
|
+
**Cons:**
|
|
290
|
+
- More files to maintain (template + script + docs)
|
|
291
|
+
- More complexity (scripting, error handling)
|
|
292
|
+
- No reduction in wrapper size (still 35 lines)
|
|
293
|
+
- Slower than copy-paste
|
|
294
|
+
|
|
295
|
+
**Decision:** Rejected (adds complexity without benefit)
|
|
296
|
+
|
|
297
|
+
### Alternative 2: Single Universal Skill
|
|
298
|
+
**Idea:** Remove all wrappers, use only `/token ANY`
|
|
299
|
+
|
|
300
|
+
**Pros:**
|
|
301
|
+
- Fewer files
|
|
302
|
+
|
|
303
|
+
**Cons:**
|
|
304
|
+
- Worse UX (users must remember symbols)
|
|
305
|
+
- No autocomplete for popular tokens
|
|
306
|
+
- Loses slash command convenience (`/btc` vs `/token BTC`)
|
|
307
|
+
|
|
308
|
+
**Decision:** Rejected (UX downgrade)
|
|
309
|
+
|
|
310
|
+
### Alternative 3: Current System (Winner)
|
|
311
|
+
**Idea:** 1 core script + minimal wrappers (copy-paste to add tokens)
|
|
312
|
+
|
|
313
|
+
**Pros:**
|
|
314
|
+
- Simple (no template complexity)
|
|
315
|
+
- Fast (copy + edit 3 lines = 2 min)
|
|
316
|
+
- Easy to understand (no hidden generation logic)
|
|
317
|
+
- Zero duplication (all use same script)
|
|
318
|
+
|
|
319
|
+
**Cons:**
|
|
320
|
+
- None
|
|
321
|
+
|
|
322
|
+
**Decision:** Keep current system
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
## Common Misconceptions
|
|
327
|
+
|
|
328
|
+
### Misconception 1: "25 duplicate skills"
|
|
329
|
+
**Reality:** 28 wrappers + 2 utility skills, **zero logic duplication**
|
|
330
|
+
|
|
331
|
+
All wrappers call same script. No duplicated code.
|
|
332
|
+
|
|
333
|
+
### Misconception 2: "Maintenance nightmare"
|
|
334
|
+
**Reality:** Bug fix in 1 place (core script) = instant fix for all 30 skills
|
|
335
|
+
|
|
336
|
+
Wrappers never need maintenance (only core script).
|
|
337
|
+
|
|
338
|
+
### Misconception 3: "Template would reduce duplication"
|
|
339
|
+
**Reality:** No duplication exists to reduce
|
|
340
|
+
|
|
341
|
+
Wrappers are metadata-only (35 lines). Template wouldn't make them smaller.
|
|
342
|
+
|
|
343
|
+
### Misconception 4: "Hard to add new tokens"
|
|
344
|
+
**Reality:** 2 minutes to copy + edit 3 lines
|
|
345
|
+
|
|
346
|
+
Simpler than maintaining template + generator.
|
|
347
|
+
|
|
348
|
+
---
|
|
349
|
+
|
|
350
|
+
## Optional Improvements
|
|
351
|
+
|
|
352
|
+
**None required, but if desired:**
|
|
353
|
+
|
|
354
|
+
### 1. Add Unit Tests
|
|
355
|
+
**File:** `tests/test_get_price_chart.py`
|
|
356
|
+
|
|
357
|
+
**Why:**
|
|
358
|
+
- Catch bugs before deployment
|
|
359
|
+
- Validate API changes
|
|
360
|
+
|
|
361
|
+
**Effort:** 2-3 hours
|
|
362
|
+
|
|
363
|
+
### 2. Add Helper Script
|
|
364
|
+
**File:** `scripts/add_token.sh`
|
|
365
|
+
|
|
366
|
+
**Usage:**
|
|
367
|
+
```bash
|
|
368
|
+
./add_token.sh PEPE "Pepe Coin" pepe
|
|
369
|
+
# Creates ../pepe/SKILL.md from btc template
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
**Why:**
|
|
373
|
+
- Slightly faster than manual copy-paste
|
|
374
|
+
- Reduces typos
|
|
375
|
+
|
|
376
|
+
**Effort:** 30 minutes
|
|
377
|
+
|
|
378
|
+
**Note:** Still simpler than full template system.
|
|
379
|
+
|
|
380
|
+
### 3. Documentation
|
|
381
|
+
**File:** This document (`ARCHITECTURE.md`)
|
|
382
|
+
|
|
383
|
+
**Why:**
|
|
384
|
+
- Explain design decisions
|
|
385
|
+
- Prevent future "refactoring" attempts
|
|
386
|
+
|
|
387
|
+
**Effort:** Done
|
|
388
|
+
|
|
389
|
+
---
|
|
390
|
+
|
|
391
|
+
## Conclusion
|
|
392
|
+
|
|
393
|
+
### Summary
|
|
394
|
+
|
|
395
|
+
**System is optimal as-is:**
|
|
396
|
+
|
|
397
|
+
✅ 1 core script (all logic)
|
|
398
|
+
✅ 30 minimal wrappers (metadata only)
|
|
399
|
+
✅ Zero duplication
|
|
400
|
+
✅ Easy maintenance (bug fix in 1 place)
|
|
401
|
+
✅ Easy to extend (copy + edit 3 lines)
|
|
402
|
+
|
|
403
|
+
**Template generation would:**
|
|
404
|
+
|
|
405
|
+
❌ Add complexity (more files to maintain)
|
|
406
|
+
❌ Slow down token addition (scripting overhead)
|
|
407
|
+
❌ Not reduce wrapper size (still 35 lines)
|
|
408
|
+
❌ Not improve maintenance (already 1 bug fix location)
|
|
409
|
+
|
|
410
|
+
### Recommendation
|
|
411
|
+
|
|
412
|
+
**Action:** Keep current system. No refactoring needed.
|
|
413
|
+
|
|
414
|
+
**Rationale:** Current approach is simpler, faster, and easier to understand than template generation.
|
|
415
|
+
|
|
416
|
+
---
|
|
417
|
+
|
|
418
|
+
## References
|
|
419
|
+
|
|
420
|
+
**Core Script:**
|
|
421
|
+
- `scripts/get_price_chart.py` (~800 lines)
|
|
422
|
+
- Git repo: `git@github.com:evgyur/crypto-price.git`
|
|
423
|
+
|
|
424
|
+
**Wrapper Example:**
|
|
425
|
+
- `../btc/SKILL.md` (35 lines)
|
|
426
|
+
|
|
427
|
+
**Documentation:**
|
|
428
|
+
- `README.md` (user guide)
|
|
429
|
+
- `ARCHITECTURE.md` (this document)
|
|
430
|
+
|
|
431
|
+
**Research:**
|
|
432
|
+
- `/home/eyurc/clawd/memory/2026-01-27-crypto-refactor-research.md` (full analysis)
|
|
433
|
+
|
|
434
|
+
---
|
|
435
|
+
|
|
436
|
+
**Last Updated:** 2026-01-27
|
|
437
|
+
**Status:** Stable, no changes planned
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
# 📈 Crypto Price & Chart
|
|
2
|
+
|
|
3
|
+
A Clawdbot skill for fetching cryptocurrency token prices and generating beautiful candlestick charts.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- 🚀 **Fast price lookup** via CoinGecko and Hyperliquid APIs
|
|
8
|
+
- 📊 **Candlestick charts** with dark theme (8x8 square format)
|
|
9
|
+
- ⚡ **Smart caching** (5-minute TTL for price data)
|
|
10
|
+
- 🎯 **Multiple data sources** (Hyperliquid preferred for supported tokens, CoinGecko fallback)
|
|
11
|
+
- 📱 **Flexible timeframes** (30m, 3h, 12h, 24h, 2d)
|
|
12
|
+
|
|
13
|
+
## Installation
|
|
14
|
+
|
|
15
|
+
### Via ClawdHub
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
clawdhub install evgyur/crypto-price
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### Manual Installation
|
|
22
|
+
|
|
23
|
+
1. Clone or copy this skill to your Clawdbot workspace:
|
|
24
|
+
```bash
|
|
25
|
+
cd ~/.clawdbot/workspace/skills
|
|
26
|
+
git clone https://github.com/evgyur/crypto-price.git
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
2. Ensure Python 3 is installed:
|
|
30
|
+
```bash
|
|
31
|
+
python3 --version
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
3. Install required Python packages:
|
|
35
|
+
```bash
|
|
36
|
+
pip install matplotlib
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
4. Verify installation:
|
|
40
|
+
```bash
|
|
41
|
+
clawdbot skills info crypto-price
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Usage
|
|
45
|
+
|
|
46
|
+
### As a Skill
|
|
47
|
+
|
|
48
|
+
The skill is automatically triggered when users ask for:
|
|
49
|
+
- Token prices
|
|
50
|
+
- Crypto charts
|
|
51
|
+
- Cryptocurrency market data
|
|
52
|
+
|
|
53
|
+
### Direct Script Usage
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
python3 scripts/get_price_chart.py <SYMBOL> [duration]
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**Examples:**
|
|
60
|
+
```bash
|
|
61
|
+
# Get HYPE price and 24h chart
|
|
62
|
+
python3 scripts/get_price_chart.py HYPE
|
|
63
|
+
|
|
64
|
+
# Get Bitcoin price and 12h chart
|
|
65
|
+
python3 scripts/get_price_chart.py BTC 12h
|
|
66
|
+
|
|
67
|
+
# Get Ethereum price and 3h chart
|
|
68
|
+
python3 scripts/get_price_chart.py ETH 3h
|
|
69
|
+
|
|
70
|
+
# Get Solana price and 30m chart
|
|
71
|
+
python3 scripts/get_price_chart.py SOL 30m
|
|
72
|
+
|
|
73
|
+
# Get Cardano price and 2d chart
|
|
74
|
+
python3 scripts/get_price_chart.py ADA 2d
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Duration Format
|
|
78
|
+
|
|
79
|
+
- `30m` - 30 minutes
|
|
80
|
+
- `3h` - 3 hours
|
|
81
|
+
- `12h` - 12 hours
|
|
82
|
+
- `24h` - 24 hours (default)
|
|
83
|
+
- `2d` - 2 days
|
|
84
|
+
|
|
85
|
+
## Output Format
|
|
86
|
+
|
|
87
|
+
The script returns JSON with the following structure:
|
|
88
|
+
|
|
89
|
+
```json
|
|
90
|
+
{
|
|
91
|
+
"symbol": "BTC",
|
|
92
|
+
"token_id": "bitcoin",
|
|
93
|
+
"source": "coingecko",
|
|
94
|
+
"currency": "USD",
|
|
95
|
+
"hours": 24.0,
|
|
96
|
+
"duration_label": "24h",
|
|
97
|
+
"candle_minutes": 15,
|
|
98
|
+
"price": 89946.00,
|
|
99
|
+
"price_usdt": 89946.00,
|
|
100
|
+
"change_period": -54.00,
|
|
101
|
+
"change_period_percent": -0.06,
|
|
102
|
+
"chart_path": "/tmp/crypto_chart_BTC_1769142011.png",
|
|
103
|
+
"text": "BTC: $89946.00 USD (-0.06% over 24h)",
|
|
104
|
+
"text_plain": "BTC: $89946.00 USD (-0.06% over 24h)"
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Chart Generation
|
|
109
|
+
|
|
110
|
+
- **Type**: Candlestick (OHLC)
|
|
111
|
+
- **Size**: 8x8 inches (square format)
|
|
112
|
+
- **Theme**: Dark (#121212 background)
|
|
113
|
+
- **Colors** (default mode):
|
|
114
|
+
- Grey (#B0B0B0 / #606060) normal candles
|
|
115
|
+
- Cyan (#00FFFF) bullish swing reversals (3 candles after swing low)
|
|
116
|
+
- Magenta (#FF00FF) bearish swing reversals (3 candles after swing high)
|
|
117
|
+
- Gold (#FFD54F) / Light Blue (#90CAF9) absolute high/low markers
|
|
118
|
+
- **Colors** (gradient mode, add `gradient` flag):
|
|
119
|
+
- Green gradient (#84dc58 → #336d16) bullish candles
|
|
120
|
+
- Blue-purple gradient (#6c7ce4 → #544996) bearish candles
|
|
121
|
+
- **Features**:
|
|
122
|
+
- Fractal swing high/low detection (true pivots, configurable window)
|
|
123
|
+
- Volume bars (when available from API)
|
|
124
|
+
- Last price highlighted on Y-axis
|
|
125
|
+
- Tomorrow font for crisp rendering
|
|
126
|
+
- **Output**: PNG files saved to `/tmp/crypto_chart_{SYMBOL}_{timestamp}.png`
|
|
127
|
+
|
|
128
|
+
## Data Sources
|
|
129
|
+
|
|
130
|
+
1. **Hyperliquid API** (`https://api.hyperliquid.xyz/info`)
|
|
131
|
+
- Preferred for HYPE and other Hyperliquid tokens
|
|
132
|
+
- Provides real-time price data and candlestick data
|
|
133
|
+
|
|
134
|
+
2. **CoinGecko API** (`https://api.coingecko.com/api/v3/`)
|
|
135
|
+
- Fallback for all other tokens
|
|
136
|
+
- Supports price lookup, market charts, and OHLC data
|
|
137
|
+
|
|
138
|
+
## Caching
|
|
139
|
+
|
|
140
|
+
Price data is cached for 300 seconds (5 minutes) to reduce API calls:
|
|
141
|
+
- Cache files: `/tmp/crypto_price_*.json`
|
|
142
|
+
- Automatic cache invalidation after TTL
|
|
143
|
+
|
|
144
|
+
## Supported Tokens
|
|
145
|
+
|
|
146
|
+
Works with any token supported by CoinGecko or Hyperliquid:
|
|
147
|
+
- **Popular tokens**: BTC, ETH, SOL, ADA, DOT, LINK, MATIC, AVAX, ATOM, ALGO, XLM, XRP, LTC, BCH, ETC, TRX, XMR, DASH, ZEC, EOS, BNB, DOGE, SHIB, UNI, AAVE
|
|
148
|
+
- **Hyperliquid tokens**: HYPE, and other tokens listed on Hyperliquid
|
|
149
|
+
|
|
150
|
+
## Requirements
|
|
151
|
+
|
|
152
|
+
- Python 3.6+
|
|
153
|
+
- `matplotlib` library
|
|
154
|
+
- Internet connection for API calls
|
|
155
|
+
|
|
156
|
+
## Dependencies
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
pip install matplotlib
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## License
|
|
163
|
+
|
|
164
|
+
MIT
|
|
165
|
+
|
|
166
|
+
## Author
|
|
167
|
+
|
|
168
|
+
Created for Clawdbot community. Originally part of Clawdbot bundled skills, restored and enhanced.
|
|
169
|
+
|
|
170
|
+
## Contributing
|
|
171
|
+
|
|
172
|
+
Contributions welcome! Please feel free to submit a Pull Request.
|
|
173
|
+
|
|
174
|
+
## Related Skills
|
|
175
|
+
|
|
176
|
+
This skill works with slash command skills:
|
|
177
|
+
- `/hype` - HYPE token price and chart
|
|
178
|
+
- `/token <SYMBOL>` - Any token price and chart
|
|
179
|
+
- `/btc`, `/eth`, `/sol`, etc. - Popular tokens
|
|
180
|
+
|
|
181
|
+
## Links
|
|
182
|
+
|
|
183
|
+
- [GitHub Repository](https://github.com/evgyur/crypto-price)
|
|
184
|
+
- [ClawdHub](https://clawdhub.com/evgyur/crypto-price)
|
|
185
|
+
- [Clawdbot Documentation](https://docs.clawd.bot)
|
|
186
|
+
|
|
187
|
+
## Changelog
|
|
188
|
+
|
|
189
|
+
### v1.0.0
|
|
190
|
+
- Initial release
|
|
191
|
+
- Support for CoinGecko and Hyperliquid APIs
|
|
192
|
+
- Candlestick chart generation
|
|
193
|
+
- Smart caching system
|
|
194
|
+
- Multiple timeframe support
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: crypto-price
|
|
3
|
+
description: "Get cryptocurrency token price and generate candlestick charts via CoinGecko API or Hyperliquid API. Use when user asks for token price, crypto price, price chart, or cryptocurrency market data."
|
|
4
|
+
triggers:
|
|
5
|
+
- "crypto price"
|
|
6
|
+
- "token price"
|
|
7
|
+
- "bitcoin price"
|
|
8
|
+
- "price chart"
|
|
9
|
+
- "what is ETH trading at"
|
|
10
|
+
negative_triggers:
|
|
11
|
+
- "stock price"
|
|
12
|
+
- "forex rates"
|
|
13
|
+
- "smart contract"
|
|
14
|
+
- "blockchain transaction"
|
|
15
|
+
metadata: {"clawdbot":{"emoji":"📈","requires":{"bins":["python3"]}}}
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Crypto Price & Chart
|
|
19
|
+
|
|
20
|
+
Get cryptocurrency token price and generate candlestick charts.
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
Execute the script with token symbol and optional duration:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
python3 {baseDir}/scripts/get_price_chart.py <SYMBOL> [duration]
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**Examples:**
|
|
31
|
+
- `python3 {baseDir}/scripts/get_price_chart.py HYPE`
|
|
32
|
+
- `python3 {baseDir}/scripts/get_price_chart.py HYPE 12h`
|
|
33
|
+
- `python3 {baseDir}/scripts/get_price_chart.py BTC 3h`
|
|
34
|
+
- `python3 {baseDir}/scripts/get_price_chart.py ETH 30m`
|
|
35
|
+
- `python3 {baseDir}/scripts/get_price_chart.py SOL 2d`
|
|
36
|
+
|
|
37
|
+
**Duration format:** `30m`, `3h`, `12h`, `24h` (default), `2d`
|
|
38
|
+
|
|
39
|
+
## Output
|
|
40
|
+
|
|
41
|
+
Returns JSON with:
|
|
42
|
+
- `price` - Current price in USD/USDT
|
|
43
|
+
- `change_period_percent` - Price change percentage for the period
|
|
44
|
+
- `chart_path` - Path to generated PNG chart (if available)
|
|
45
|
+
- `text_plain` - Formatted text description
|
|
46
|
+
|
|
47
|
+
**Chart as image (always when chart_path is present):**
|
|
48
|
+
You must send the chart as a **photo**, not as text. In your reply, output `text_plain` and on a new line: `MEDIA: ` followed by the exact `chart_path` value (e.g. `MEDIA: /tmp/crypto_chart_HYPE_1769204734.png`). Clawdbot will attach that file as an image. Do **not** write `[chart: path]` or any other text placeholder — only the `MEDIA: <chart_path>` line makes the image appear.
|
|
49
|
+
|
|
50
|
+
## Chart Details
|
|
51
|
+
|
|
52
|
+
- Format: Candlestick chart (8x8 square)
|
|
53
|
+
- Theme: Dark (#0f141c background)
|
|
54
|
+
- Output: `/tmp/crypto_chart_{SYMBOL}_{timestamp}.png`
|
|
55
|
+
|
|
56
|
+
## Data Sources
|
|
57
|
+
|
|
58
|
+
1. **Hyperliquid API** - For HYPE and other Hyperliquid tokens (preferred)
|
|
59
|
+
2. **CoinGecko API** - Fallback for other tokens
|
|
60
|
+
|
|
61
|
+
Price data cached for 300 seconds (5 minutes) in `/tmp/crypto_price_*.json`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
matplotlib>=3.5.0
|