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,196 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Agentic Compass — AI Agent Self-Reflection Tool (v2.0)
|
|
4
|
+
|
|
5
|
+
Local-only reflection that forces objective action for AI agents.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import argparse
|
|
9
|
+
import re
|
|
10
|
+
import json
|
|
11
|
+
from datetime import datetime, timedelta
|
|
12
|
+
from pathlib import Path
|
|
13
|
+
|
|
14
|
+
# Configuration
|
|
15
|
+
DEFAULT_DAILY_PATH = Path.home() / ".openclaw" / "workspace" / "memory" / f"{datetime.now().strftime('%Y-%m-%d')}.md"
|
|
16
|
+
DEFAULT_LONG_PATH = Path.home() / ".openclaw" / "workspace" / "MEMORY.md"
|
|
17
|
+
OUTPUT_PATH = Path.home() / ".openclaw" / "workspace" / "memory" / "agentic-compass.md"
|
|
18
|
+
|
|
19
|
+
# Agent-specific scoring axes
|
|
20
|
+
AXES = [
|
|
21
|
+
"Completion Rate",
|
|
22
|
+
"Response Relevance",
|
|
23
|
+
"Tool Usage Quality",
|
|
24
|
+
"Memory Consistency",
|
|
25
|
+
"Initiative"
|
|
26
|
+
]
|
|
27
|
+
|
|
28
|
+
def read_file(path):
|
|
29
|
+
"""Read file content safely."""
|
|
30
|
+
try:
|
|
31
|
+
with open(path, 'r', encoding='utf-8') as f:
|
|
32
|
+
return f.read()
|
|
33
|
+
except (FileNotFoundError, IOError):
|
|
34
|
+
return ""
|
|
35
|
+
|
|
36
|
+
def count_markers(content, pattern, flags=None):
|
|
37
|
+
"""Count regex matches in content."""
|
|
38
|
+
if flags:
|
|
39
|
+
return len(re.findall(pattern, content, flags))
|
|
40
|
+
return len(re.findall(pattern, content, re.IGNORECASE))
|
|
41
|
+
|
|
42
|
+
def score_completion_rate(content):
|
|
43
|
+
"""Score based on tasks started vs finished."""
|
|
44
|
+
started = count_markers(content, r'\[DOING\]|\[TODO\]|\[IN-PROGRESS\]')
|
|
45
|
+
finished = count_markers(content, r'\[DONE\]|\[COMPLETED\]|\[✓\]')
|
|
46
|
+
if started == 0:
|
|
47
|
+
return 5.0, "No tasks started"
|
|
48
|
+
ratio = finished / max(started, 1)
|
|
49
|
+
score = min(ratio * 5, 5.0)
|
|
50
|
+
return score, f"Finished {finished}/{started} tasks ({ratio*100:.0f}%)"
|
|
51
|
+
|
|
52
|
+
def score_response_relevance(content):
|
|
53
|
+
"""Score based on user confirmations vs corrections."""
|
|
54
|
+
confirmations = count_markers(content, r'confirmed|correct|yes that works|thanks that helped')
|
|
55
|
+
corrections = count_markers(content, r'wrong|incorrect|no that.s not|try again')
|
|
56
|
+
total = confirmations + corrections
|
|
57
|
+
if total == 0:
|
|
58
|
+
return 5.0, "No feedback yet"
|
|
59
|
+
ratio = confirmations / total
|
|
60
|
+
score = ratio * 5
|
|
61
|
+
return score, f"{confirmations} confirmations, {corrections} corrections"
|
|
62
|
+
|
|
63
|
+
def score_tool_usage(content):
|
|
64
|
+
"""Score based on tool errors and retries."""
|
|
65
|
+
errors = count_markers(content, r'tool failed|error:|timeout|retrying')
|
|
66
|
+
if errors == 0:
|
|
67
|
+
return 5.0, "No tool errors"
|
|
68
|
+
if errors < 3:
|
|
69
|
+
return 4.0, f"{errors} minor errors"
|
|
70
|
+
if errors < 10:
|
|
71
|
+
return 2.5, f"{errors} errors detected"
|
|
72
|
+
return 1.0, f"{errors} tool errors - high failure rate"
|
|
73
|
+
|
|
74
|
+
def score_memory_consistency(content, long_content):
|
|
75
|
+
"""Score based on context retention across sessions."""
|
|
76
|
+
# Look for references to prior decisions
|
|
77
|
+
references = count_markers(content + long_content, r'earlier i mentioned|as we discussed|following up on|continuing')
|
|
78
|
+
# Check if contradictions exist (simplistic heuristic)
|
|
79
|
+
contradictions = count_markers(content + long_content, r'actually i changed my mind|contradicting my earlier|never mind')
|
|
80
|
+
if references == 0:
|
|
81
|
+
return 3.0, "No cross-session references"
|
|
82
|
+
if contradictions > 0:
|
|
83
|
+
return 2.0, f"{contradictions} context contradictions"
|
|
84
|
+
return 5.0, f"{references} context references, no contradictions"
|
|
85
|
+
|
|
86
|
+
def score_initiative(content):
|
|
87
|
+
"""Score based on proactive actions."""
|
|
88
|
+
# Count proactive markers
|
|
89
|
+
proactive = count_markers(content, r'i started|i proposed|i initiated|without being asked')
|
|
90
|
+
if proactive == 0:
|
|
91
|
+
return 2.0, "No proactive actions detected"
|
|
92
|
+
if proactive == 1:
|
|
93
|
+
return 3.5, f"{proactive} proactive action"
|
|
94
|
+
if proactive < 5:
|
|
95
|
+
return 4.5, f"{proactive} proactive actions"
|
|
96
|
+
return 5.0, f"{proactive}+ proactive actions - excellent initiative"
|
|
97
|
+
|
|
98
|
+
def generate_plan(scores, details):
|
|
99
|
+
"""Generate an actionable plan based on weakest axis."""
|
|
100
|
+
weakest_idx = min(range(len(scores)), key=lambda i: scores[i])
|
|
101
|
+
weakest_axis = AXES[weakest_idx]
|
|
102
|
+
|
|
103
|
+
plans = {
|
|
104
|
+
"Completion Rate": [
|
|
105
|
+
"focus on finishing [DOING] tasks before starting new ones",
|
|
106
|
+
"prioritize one task and see it through to completion"
|
|
107
|
+
],
|
|
108
|
+
"Response Relevance": [
|
|
109
|
+
"ask clarifying questions before acting",
|
|
110
|
+
"confirm understanding before proceeding with tasks"
|
|
111
|
+
],
|
|
112
|
+
"Tool Usage Quality": [
|
|
113
|
+
"add error checking and retry logic before tool calls",
|
|
114
|
+
"validate tool inputs before invocation"
|
|
115
|
+
],
|
|
116
|
+
"Memory Consistency": [
|
|
117
|
+
"review MEMORY.md before starting new tasks",
|
|
118
|
+
"summarize key decisions at end of each session"
|
|
119
|
+
],
|
|
120
|
+
"Initiative": [
|
|
121
|
+
"identify one high-value task and start without prompt",
|
|
122
|
+
"propose improvements to existing workflows"
|
|
123
|
+
]
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
proactive = plans[weakest_axis][0]
|
|
127
|
+
deferred = "retry any blocked items after diagnostic"
|
|
128
|
+
avoidance = "stop repeating patterns that cause low scores"
|
|
129
|
+
ship = "create one concrete artifact (doc, script, fix)"
|
|
130
|
+
|
|
131
|
+
return proactive, deferred, avoidance, ship
|
|
132
|
+
|
|
133
|
+
def generate_report(daily_content, long_content):
|
|
134
|
+
"""Generate full reflection report."""
|
|
135
|
+
scores = [0] * 5 # Initialize with 5 zeros
|
|
136
|
+
details = {}
|
|
137
|
+
|
|
138
|
+
# Calculate scores for each axis
|
|
139
|
+
scores[0], details["Completion Rate"] = score_completion_rate(daily_content)
|
|
140
|
+
scores[1], details["Response Relevance"] = score_response_relevance(daily_content)
|
|
141
|
+
scores[2], details["Tool Usage Quality"] = score_tool_usage(daily_content)
|
|
142
|
+
scores[3], details["Memory Consistency"] = score_memory_consistency(daily_content, long_content)
|
|
143
|
+
scores[4], details["Initiative"] = score_initiative(daily_content)
|
|
144
|
+
|
|
145
|
+
# Calculate overall score
|
|
146
|
+
overall = sum(scores) / len(scores)
|
|
147
|
+
weakest_idx = min(range(len(scores)), key=lambda i: scores[i])
|
|
148
|
+
weakest_axis = AXES[weakest_idx]
|
|
149
|
+
|
|
150
|
+
# Generate plan
|
|
151
|
+
proactive, deferred, avoidance, ship = generate_plan(scores, details)
|
|
152
|
+
|
|
153
|
+
# Build report
|
|
154
|
+
report = []
|
|
155
|
+
report.append(f"Score: {overall:.1f}/5")
|
|
156
|
+
report.append(f"Weakest axis: {weakest_axis}")
|
|
157
|
+
report.append(f" ({details[weakest_axis]})")
|
|
158
|
+
report.append("")
|
|
159
|
+
report.append("Plan:")
|
|
160
|
+
report.append(f"- Proactive: {proactive}")
|
|
161
|
+
report.append(f"- Deferred: {deferred}")
|
|
162
|
+
report.append(f"- Avoidance: {avoidance}")
|
|
163
|
+
report.append(f"- Ship: {ship}")
|
|
164
|
+
|
|
165
|
+
return "\n".join(report)
|
|
166
|
+
|
|
167
|
+
def main():
|
|
168
|
+
parser = argparse.ArgumentParser(description="Agentic Compass — AI Agent Self-Reflection Tool")
|
|
169
|
+
parser.add_argument("--write", action="store_true", help="Write plan to memory/agentic-compass.md")
|
|
170
|
+
parser.add_argument("--daily", type=str, default=str(DEFAULT_DAILY_PATH), help="Path to daily memory file")
|
|
171
|
+
parser.add_argument("--long", type=str, default=str(DEFAULT_LONG_PATH), help="Path to long-term memory file")
|
|
172
|
+
|
|
173
|
+
args = parser.parse_args()
|
|
174
|
+
|
|
175
|
+
# Read memory files
|
|
176
|
+
daily_content = read_file(args.daily)
|
|
177
|
+
long_content = read_file(args.long)
|
|
178
|
+
|
|
179
|
+
# Generate report
|
|
180
|
+
report = generate_report(daily_content, long_content)
|
|
181
|
+
print(report)
|
|
182
|
+
|
|
183
|
+
# Write to file if requested
|
|
184
|
+
if args.write:
|
|
185
|
+
output_path = Path(args.daily).parent / "agentic-compass.md"
|
|
186
|
+
output_path.parent.mkdir(parents=True, exist_ok=True)
|
|
187
|
+
|
|
188
|
+
with open(output_path, 'a', encoding='utf-8') as f:
|
|
189
|
+
f.write(f"\n\n## Agentic Compass Report — {datetime.now().strftime('%Y-%m-%d %H:%M:%S UTC')}\n\n")
|
|
190
|
+
f.write(report)
|
|
191
|
+
f.write("\n")
|
|
192
|
+
|
|
193
|
+
print(f"\n✓ Report written to {output_path}")
|
|
194
|
+
|
|
195
|
+
if __name__ == "__main__":
|
|
196
|
+
main()
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: arcane-dev-ops
|
|
3
|
+
description: "Safe Arcane Solidity/Hardhat dev-ops: validate reviews, apply patches, add regression tests, run suites, commit/push with hygiene. Use for Pass fixes, test recovery, repo-porting, or any code+git execution in the Arcane project."
|
|
4
|
+
triggers:
|
|
5
|
+
- "run the arcane tests"
|
|
6
|
+
- "fix this failing test in arcane"
|
|
7
|
+
- "commit and push the arcane changes"
|
|
8
|
+
- "port these files to the arcane repo"
|
|
9
|
+
- "apply this patch to the contracts"
|
|
10
|
+
negative_triggers:
|
|
11
|
+
- "deploy the arcane contracts"
|
|
12
|
+
- "write new arcane lore"
|
|
13
|
+
- "check arcane security audit"
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Arcane DevOps
|
|
17
|
+
|
|
18
|
+
Use this workflow for high-confidence code + git execution in Arcane.
|
|
19
|
+
|
|
20
|
+
## Workflow
|
|
21
|
+
|
|
22
|
+
1. Confirm source of truth before edits:
|
|
23
|
+
- Read review/requirements doc first.
|
|
24
|
+
- Diff patch inputs against real contract/test files.
|
|
25
|
+
- Identify the actual git repo with remote (never assume workspace root is the push repo).
|
|
26
|
+
|
|
27
|
+
2. Implement safely:
|
|
28
|
+
- Apply minimal, auditable code changes.
|
|
29
|
+
- Add regression tests for each bug/fix claim.
|
|
30
|
+
- Prefer deterministic fixtures and explicit assertions.
|
|
31
|
+
|
|
32
|
+
3. Validate in order:
|
|
33
|
+
- Run targeted tests for touched areas first.
|
|
34
|
+
- Run full suite second.
|
|
35
|
+
- Report pass/fail counts and root causes for any failures.
|
|
36
|
+
|
|
37
|
+
4. Commit hygiene:
|
|
38
|
+
- Stage explicit file list only.
|
|
39
|
+
- Avoid unrelated/untracked workspace artifacts.
|
|
40
|
+
- Use clear commit message scope (`fix(...)`, `test(...)`, etc.).
|
|
41
|
+
|
|
42
|
+
5. Port/push hygiene:
|
|
43
|
+
- Verify current repo path and `origin` URL before push.
|
|
44
|
+
- If user has multiple local copies, port intentionally and re-run full tests in destination repo.
|
|
45
|
+
- Push only after green suite unless user explicitly asks otherwise.
|
|
46
|
+
|
|
47
|
+
## Non-negotiables
|
|
48
|
+
|
|
49
|
+
- Never run destructive git commands without explicit user approval.
|
|
50
|
+
- Never assume the repo with code is the repo with remote.
|
|
51
|
+
- Prefer copying validated files over risky patch apply when paths diverge.
|
|
52
|
+
|
|
53
|
+
## Scripts
|
|
54
|
+
|
|
55
|
+
- `scripts/prepush_check.sh <repo-path> [full-test-cmd]`
|
|
56
|
+
- Prints branch/remote/status/staged files and final push sanity context.
|
|
57
|
+
|
|
58
|
+
## References
|
|
59
|
+
|
|
60
|
+
- Use `references/checklist.md` for pre-push checklist.
|
|
61
|
+
- Use `references/validation-cases.md` for trigger/behavior smoke tests.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Arcane DevOps Checklist
|
|
2
|
+
|
|
3
|
+
## Before coding
|
|
4
|
+
- [ ] Read review/issue doc first.
|
|
5
|
+
- [ ] Confirm target repo path.
|
|
6
|
+
- [ ] Confirm branch strategy with user.
|
|
7
|
+
|
|
8
|
+
## Before commit
|
|
9
|
+
- [ ] Targeted tests pass.
|
|
10
|
+
- [ ] Full suite run and status recorded.
|
|
11
|
+
- [ ] Only intended files staged.
|
|
12
|
+
- [ ] Commit message reflects scope.
|
|
13
|
+
|
|
14
|
+
## Before push
|
|
15
|
+
- [ ] `git remote -v` confirms intended origin.
|
|
16
|
+
- [ ] Final suite green in destination repo.
|
|
17
|
+
- [ ] User instruction allows push target/branch.
|
|
18
|
+
|
|
19
|
+
## Final report
|
|
20
|
+
- [ ] What changed (files + intent)
|
|
21
|
+
- [ ] Test results (counts)
|
|
22
|
+
- [ ] Commit hash + push status
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Validation Cases
|
|
2
|
+
|
|
3
|
+
## Trigger checks
|
|
4
|
+
- "Apply pass 10 review, run tests, commit safely, then push"
|
|
5
|
+
- "Port changes from temp repo to real Arcane repo and verify remote"
|
|
6
|
+
|
|
7
|
+
## Expected behavior
|
|
8
|
+
- Reads review doc first
|
|
9
|
+
- Runs targeted tests then full suite
|
|
10
|
+
- Stages explicit files only
|
|
11
|
+
- Verifies repo path + remote before push
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
REPO_PATH="${1:-.}"
|
|
5
|
+
FULL_TEST_CMD="${2:-npm test}"
|
|
6
|
+
|
|
7
|
+
if ! command -v git >/dev/null 2>&1; then
|
|
8
|
+
echo "ERROR: git not found"
|
|
9
|
+
exit 1
|
|
10
|
+
fi
|
|
11
|
+
|
|
12
|
+
cd "$REPO_PATH"
|
|
13
|
+
|
|
14
|
+
if [[ ! -d .git ]]; then
|
|
15
|
+
echo "ERROR: $REPO_PATH is not a git repository"
|
|
16
|
+
exit 1
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
echo "== Arcane pre-push check =="
|
|
20
|
+
echo "Repo: $(pwd)"
|
|
21
|
+
|
|
22
|
+
echo "\n[1/6] Branch"
|
|
23
|
+
git rev-parse --abbrev-ref HEAD
|
|
24
|
+
|
|
25
|
+
echo "\n[2/6] Remotes"
|
|
26
|
+
git remote -v || true
|
|
27
|
+
|
|
28
|
+
echo "\n[3/6] Working tree summary"
|
|
29
|
+
git status --short
|
|
30
|
+
|
|
31
|
+
echo "\n[4/6] Staged files"
|
|
32
|
+
git diff --cached --name-only || true
|
|
33
|
+
|
|
34
|
+
echo "\n[5/6] Last commit"
|
|
35
|
+
git log -1 --oneline || true
|
|
36
|
+
|
|
37
|
+
echo "\n[6/6] Full test command (manual confirmation required)"
|
|
38
|
+
echo "$FULL_TEST_CMD"
|
|
39
|
+
echo "Run it yourself now if not already green."
|
|
40
|
+
|
|
41
|
+
echo "\nDone."
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: auto-updater
|
|
3
|
+
description: "Set up daily auto-updates for Clawdbot and all installed skills via cron. Checks for updates, applies them, and reports what changed. Use when configuring automatic update schedules."
|
|
4
|
+
triggers:
|
|
5
|
+
- "auto update clawdbot"
|
|
6
|
+
- "set up daily updates"
|
|
7
|
+
- "update all skills"
|
|
8
|
+
- "auto-updater"
|
|
9
|
+
negative_triggers:
|
|
10
|
+
- "update a single skill manually"
|
|
11
|
+
- "check clawdbot version"
|
|
12
|
+
- "install a new skill"
|
|
13
|
+
metadata: {"version":"1.0.0","clawdbot":{"emoji":"🔄","os":["darwin","linux"]}}
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Auto-Updater Skill
|
|
17
|
+
|
|
18
|
+
Keep your Clawdbot and skills up to date automatically with daily update checks.
|
|
19
|
+
|
|
20
|
+
## What It Does
|
|
21
|
+
|
|
22
|
+
This skill sets up a daily cron job that:
|
|
23
|
+
|
|
24
|
+
1. Updates Clawdbot itself (via `clawdbot doctor` or package manager)
|
|
25
|
+
2. Updates all installed skills (via `clawdhub update --all`)
|
|
26
|
+
3. Messages you with a summary of what was updated
|
|
27
|
+
|
|
28
|
+
## Setup
|
|
29
|
+
|
|
30
|
+
### Quick Start
|
|
31
|
+
|
|
32
|
+
Ask Clawdbot to set up the auto-updater:
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
Set up daily auto-updates for yourself and all your skills.
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Or manually add the cron job:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
clawdbot cron add \
|
|
42
|
+
--name "Daily Auto-Update" \
|
|
43
|
+
--cron "0 4 * * *" \
|
|
44
|
+
--tz "America/Los_Angeles" \
|
|
45
|
+
--session isolated \
|
|
46
|
+
--wake now \
|
|
47
|
+
--deliver \
|
|
48
|
+
--message "Run daily auto-updates: check for Clawdbot updates and update all skills. Report what was updated."
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Configuration Options
|
|
52
|
+
|
|
53
|
+
| Option | Default | Description |
|
|
54
|
+
|--------|---------|-------------|
|
|
55
|
+
| Time | 4:00 AM | When to run updates (use `--cron` to change) |
|
|
56
|
+
| Timezone | System default | Set with `--tz` |
|
|
57
|
+
| Delivery | Main session | Where to send the update summary |
|
|
58
|
+
|
|
59
|
+
## How Updates Work
|
|
60
|
+
|
|
61
|
+
### Clawdbot Updates
|
|
62
|
+
|
|
63
|
+
For **npm/pnpm/bun installs**:
|
|
64
|
+
```bash
|
|
65
|
+
npm update -g clawdbot@latest
|
|
66
|
+
# or: pnpm update -g clawdbot@latest
|
|
67
|
+
# or: bun update -g clawdbot@latest
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
For **source installs** (git checkout):
|
|
71
|
+
```bash
|
|
72
|
+
clawdbot update
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Always run `clawdbot doctor` after updating to apply migrations.
|
|
76
|
+
|
|
77
|
+
### Skill Updates
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
clawdhub update --all
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
This checks all installed skills against the registry and updates any with new versions available.
|
|
84
|
+
|
|
85
|
+
## Update Summary Format
|
|
86
|
+
|
|
87
|
+
After updates complete, you'll receive a message like:
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
🔄 Daily Auto-Update Complete
|
|
91
|
+
|
|
92
|
+
**Clawdbot**: Updated to v2026.1.10 (was v2026.1.9)
|
|
93
|
+
|
|
94
|
+
**Skills Updated (3)**:
|
|
95
|
+
- prd: 2.0.3 → 2.0.4
|
|
96
|
+
- browser: 1.2.0 → 1.2.1
|
|
97
|
+
- nano-banana-pro: 3.1.0 → 3.1.2
|
|
98
|
+
|
|
99
|
+
**Skills Already Current (5)**:
|
|
100
|
+
gemini, sag, things-mac, himalaya, peekaboo
|
|
101
|
+
|
|
102
|
+
No issues encountered.
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Manual Commands
|
|
106
|
+
|
|
107
|
+
Check for updates without applying:
|
|
108
|
+
```bash
|
|
109
|
+
clawdhub update --all --dry-run
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
View current skill versions:
|
|
113
|
+
```bash
|
|
114
|
+
clawdhub list
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Check Clawdbot version:
|
|
118
|
+
```bash
|
|
119
|
+
clawdbot --version
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Troubleshooting
|
|
123
|
+
|
|
124
|
+
### Updates Not Running
|
|
125
|
+
|
|
126
|
+
1. Verify cron is enabled: check `cron.enabled` in config
|
|
127
|
+
2. Confirm Gateway is running continuously
|
|
128
|
+
3. Check cron job exists: `clawdbot cron list`
|
|
129
|
+
|
|
130
|
+
### Update Failures
|
|
131
|
+
|
|
132
|
+
If an update fails, the summary will include the error. Common fixes:
|
|
133
|
+
|
|
134
|
+
- **Permission errors**: Ensure the Gateway user can write to skill directories
|
|
135
|
+
- **Network errors**: Check internet connectivity
|
|
136
|
+
- **Package conflicts**: Run `clawdbot doctor` to diagnose
|
|
137
|
+
|
|
138
|
+
### Disabling Auto-Updates
|
|
139
|
+
|
|
140
|
+
Remove the cron job:
|
|
141
|
+
```bash
|
|
142
|
+
clawdbot cron remove "Daily Auto-Update"
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Or disable temporarily in config:
|
|
146
|
+
```json
|
|
147
|
+
{
|
|
148
|
+
"cron": {
|
|
149
|
+
"enabled": false
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## Resources
|
|
155
|
+
|
|
156
|
+
- [Clawdbot Updating Guide](https://docs.clawd.bot/install/updating)
|
|
157
|
+
- [ClawdHub CLI](https://docs.clawd.bot/tools/clawdhub)
|
|
158
|
+
- [Cron Jobs](https://docs.clawd.bot/cron)
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# Agent Implementation Guide
|
|
2
|
+
|
|
3
|
+
When asked to set up auto-updates, follow this procedure.
|
|
4
|
+
|
|
5
|
+
## Step 1: Detect Installation Type
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# Check if installed via npm globally
|
|
9
|
+
npm list -g clawdbot 2>/dev/null && echo "npm-global"
|
|
10
|
+
|
|
11
|
+
# Check if installed via source (git)
|
|
12
|
+
[ -d ~/.clawdbot/.git ] || [ -f /opt/clawdbot/.git/config ] && echo "source-install"
|
|
13
|
+
|
|
14
|
+
# Check pnpm
|
|
15
|
+
pnpm list -g clawdbot 2>/dev/null && echo "pnpm-global"
|
|
16
|
+
|
|
17
|
+
# Check bun
|
|
18
|
+
bun pm ls -g 2>/dev/null | grep clawdbot && echo "bun-global"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Step 2: Create the Update Script (Optional)
|
|
22
|
+
|
|
23
|
+
For complex setups, create a helper script at `~/.clawdbot/scripts/auto-update.sh`:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
#!/bin/bash
|
|
27
|
+
set -e
|
|
28
|
+
|
|
29
|
+
LOG_FILE="${HOME}/.clawdbot/logs/auto-update.log"
|
|
30
|
+
mkdir -p "$(dirname "$LOG_FILE")"
|
|
31
|
+
|
|
32
|
+
log() {
|
|
33
|
+
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE"
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
log "Starting auto-update..."
|
|
37
|
+
|
|
38
|
+
# Capture starting versions
|
|
39
|
+
CLAWDBOT_VERSION_BEFORE=$(clawdbot --version 2>/dev/null || echo "unknown")
|
|
40
|
+
|
|
41
|
+
# Update Clawdbot
|
|
42
|
+
log "Updating Clawdbot..."
|
|
43
|
+
if command -v npm &> /dev/null && npm list -g clawdbot &> /dev/null; then
|
|
44
|
+
npm update -g clawdbot@latest 2>&1 | tee -a "$LOG_FILE"
|
|
45
|
+
elif command -v pnpm &> /dev/null && pnpm list -g clawdbot &> /dev/null; then
|
|
46
|
+
pnpm update -g clawdbot@latest 2>&1 | tee -a "$LOG_FILE"
|
|
47
|
+
elif command -v bun &> /dev/null; then
|
|
48
|
+
bun update -g clawdbot@latest 2>&1 | tee -a "$LOG_FILE"
|
|
49
|
+
else
|
|
50
|
+
log "Running clawdbot update (source install)"
|
|
51
|
+
clawdbot update 2>&1 | tee -a "$LOG_FILE" || true
|
|
52
|
+
fi
|
|
53
|
+
|
|
54
|
+
# Run doctor for migrations
|
|
55
|
+
log "Running doctor..."
|
|
56
|
+
clawdbot doctor --yes 2>&1 | tee -a "$LOG_FILE" || true
|
|
57
|
+
|
|
58
|
+
# Capture new version
|
|
59
|
+
CLAWDBOT_VERSION_AFTER=$(clawdbot --version 2>/dev/null || echo "unknown")
|
|
60
|
+
|
|
61
|
+
# Update skills
|
|
62
|
+
log "Updating skills via ClawdHub..."
|
|
63
|
+
SKILL_OUTPUT=$(clawdhub update --all 2>&1) || true
|
|
64
|
+
echo "$SKILL_OUTPUT" >> "$LOG_FILE"
|
|
65
|
+
|
|
66
|
+
log "Auto-update complete."
|
|
67
|
+
|
|
68
|
+
# Output summary for agent to parse
|
|
69
|
+
echo "---UPDATE_SUMMARY_START---"
|
|
70
|
+
echo "clawdbot_before: $CLAWDBOT_VERSION_BEFORE"
|
|
71
|
+
echo "clawdbot_after: $CLAWDBOT_VERSION_AFTER"
|
|
72
|
+
echo "skill_output: $SKILL_OUTPUT"
|
|
73
|
+
echo "---UPDATE_SUMMARY_END---"
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Step 3: Add Cron Job
|
|
77
|
+
|
|
78
|
+
The recommended approach is to use Clawdbot's built-in cron with an isolated session:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
clawdbot cron add \
|
|
82
|
+
--name "Daily Auto-Update" \
|
|
83
|
+
--cron "0 4 * * *" \
|
|
84
|
+
--tz "America/Los_Angeles" \
|
|
85
|
+
--session isolated \
|
|
86
|
+
--wake now \
|
|
87
|
+
--deliver \
|
|
88
|
+
--message "Run the daily auto-update routine:
|
|
89
|
+
|
|
90
|
+
1. Check and update Clawdbot:
|
|
91
|
+
- For npm installs: npm update -g clawdbot@latest
|
|
92
|
+
- For source installs: clawdbot update
|
|
93
|
+
- Then run: clawdbot doctor --yes
|
|
94
|
+
|
|
95
|
+
2. Update all skills:
|
|
96
|
+
- Run: clawdhub update --all
|
|
97
|
+
|
|
98
|
+
3. Report back with:
|
|
99
|
+
- Clawdbot version before/after
|
|
100
|
+
- List of skills that were updated (name + old version → new version)
|
|
101
|
+
- Any errors encountered
|
|
102
|
+
|
|
103
|
+
Format the summary clearly for the user."
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Step 4: Verify Setup
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
# Confirm cron job was added
|
|
110
|
+
clawdbot cron list
|
|
111
|
+
|
|
112
|
+
# Test the update commands work
|
|
113
|
+
clawdbot --version
|
|
114
|
+
clawdhub list
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Customization Prompts
|
|
118
|
+
|
|
119
|
+
Users may want to customize:
|
|
120
|
+
|
|
121
|
+
**Different time:**
|
|
122
|
+
```bash
|
|
123
|
+
--cron "0 6 * * *" # 6 AM instead of 4 AM
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
**Different timezone:**
|
|
127
|
+
```bash
|
|
128
|
+
--tz "Europe/London"
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**Specific provider delivery:**
|
|
132
|
+
```bash
|
|
133
|
+
--provider telegram --to "@username"
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**Weekly instead of daily:**
|
|
137
|
+
```bash
|
|
138
|
+
--cron "0 4 * * 0" # Sundays at 4 AM
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## Error Handling
|
|
142
|
+
|
|
143
|
+
If updates fail, the agent should:
|
|
144
|
+
|
|
145
|
+
1. Log the error clearly
|
|
146
|
+
2. Still report partial success (if skills updated but Clawdbot didn't, or vice versa)
|
|
147
|
+
3. Suggest manual intervention if needed
|
|
148
|
+
|
|
149
|
+
Common errors to handle:
|
|
150
|
+
- `EACCES`: Permission denied → suggest `sudo` or fixing permissions
|
|
151
|
+
- Network timeouts → retry once, then report
|
|
152
|
+
- Git conflicts (source installs) → suggest `clawdbot update --force`
|