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,227 @@
|
|
|
1
|
+
---
|
|
2
|
+
slug: memorylayer
|
|
3
|
+
name: MemoryLayer
|
|
4
|
+
description: "External SaaS semantic memory with vector search for AI agents. Use when you need to store/retrieve memories via MemoryLayer API, reduce token usage with semantic retrieval, or manage multi-tenant agent memory at scale."
|
|
5
|
+
homepage: https://memorylayer.clawbot.hk
|
|
6
|
+
triggers:
|
|
7
|
+
- "memorylayer"
|
|
8
|
+
- "semantic memory search"
|
|
9
|
+
- "vector search memories"
|
|
10
|
+
- "store memory with embeddings"
|
|
11
|
+
- "reduce token usage on memory"
|
|
12
|
+
negative_triggers:
|
|
13
|
+
- "self-reflection"
|
|
14
|
+
- "local memory files"
|
|
15
|
+
- "clawvault"
|
|
16
|
+
- "edit MEMORY.md"
|
|
17
|
+
metadata:
|
|
18
|
+
clawdbot:
|
|
19
|
+
emoji: "š§ "
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# MemoryLayer
|
|
23
|
+
|
|
24
|
+
Semantic memory infrastructure for AI agents that actually scales.
|
|
25
|
+
|
|
26
|
+
## Features
|
|
27
|
+
|
|
28
|
+
- **95% Token Savings** - Retrieve only relevant memories
|
|
29
|
+
- **Semantic Search** - Find memories by meaning, not keywords
|
|
30
|
+
- **Sub-200ms** - Lightning-fast memory retrieval
|
|
31
|
+
- **Multi-tenant** - Isolated memory per agent instance
|
|
32
|
+
|
|
33
|
+
## Setup
|
|
34
|
+
|
|
35
|
+
### 1. Sign up for FREE account
|
|
36
|
+
|
|
37
|
+
Visit https://memorylayer.clawbot.hk and sign up with Google. You'll get:
|
|
38
|
+
- 10,000 operations/month
|
|
39
|
+
- 1GB storage
|
|
40
|
+
- Community support
|
|
41
|
+
|
|
42
|
+
### 2. Configure credentials
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
# Option 1: Email/Password
|
|
46
|
+
export MEMORYLAYER_EMAIL=your@email.com
|
|
47
|
+
export MEMORYLAYER_PASSWORD=your_password
|
|
48
|
+
|
|
49
|
+
# Option 2: API Key (recommended for production)
|
|
50
|
+
export MEMORYLAYER_API_KEY=ml_your_api_key_here
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 3. Install Python SDK (if not using skill wrapper)
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
pip install memorylayer
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Usage
|
|
60
|
+
|
|
61
|
+
### Basic Example
|
|
62
|
+
|
|
63
|
+
```javascript
|
|
64
|
+
// In your Clawdbot agent
|
|
65
|
+
const memory = require('memorylayer');
|
|
66
|
+
|
|
67
|
+
// Store a memory
|
|
68
|
+
await memory.remember(
|
|
69
|
+
'User prefers dark mode UI',
|
|
70
|
+
{ type: 'semantic', importance: 0.8 }
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
// Search memories
|
|
74
|
+
const results = await memory.search('UI preferences');
|
|
75
|
+
console.log(results[0].content); // "User prefers dark mode UI"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Python Example
|
|
79
|
+
|
|
80
|
+
```python
|
|
81
|
+
from plugins.memorylayer import memory
|
|
82
|
+
|
|
83
|
+
# Store
|
|
84
|
+
memory.remember(
|
|
85
|
+
"Boss prefers direct reporting with zero bullshit",
|
|
86
|
+
memory_type="semantic",
|
|
87
|
+
importance=0.9
|
|
88
|
+
)
|
|
89
|
+
|
|
90
|
+
# Search
|
|
91
|
+
results = memory.recall("What are Boss's preferences?")
|
|
92
|
+
for r in results:
|
|
93
|
+
print(f"{r.relevance_score:.2f}: {r.memory.content}")
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Token Savings
|
|
97
|
+
|
|
98
|
+
**Before MemoryLayer:**
|
|
99
|
+
```python
|
|
100
|
+
# Inject entire memory files
|
|
101
|
+
context = open('MEMORY.md').read() # 10,500 tokens
|
|
102
|
+
prompt = f"{context}\n\nUser: What are my preferences?"
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**After MemoryLayer:**
|
|
106
|
+
```python
|
|
107
|
+
# Inject only relevant memories
|
|
108
|
+
context = memory.get_context("user preferences", limit=5) # ~500 tokens
|
|
109
|
+
prompt = f"{context}\n\nUser: What are my preferences?"
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
**Result:** 95% token reduction, $900/month savings at scale
|
|
113
|
+
|
|
114
|
+
## API Reference
|
|
115
|
+
|
|
116
|
+
### `memory.remember(content, options)`
|
|
117
|
+
|
|
118
|
+
Store a new memory.
|
|
119
|
+
|
|
120
|
+
**Parameters:**
|
|
121
|
+
- `content` (string): Memory content
|
|
122
|
+
- `options.type` (string): 'episodic' | 'semantic' | 'procedural'
|
|
123
|
+
- `options.importance` (number): 0.0 to 1.0
|
|
124
|
+
- `options.metadata` (object): Additional tags/data
|
|
125
|
+
|
|
126
|
+
**Returns:** Memory object with `id`
|
|
127
|
+
|
|
128
|
+
### `memory.search(query, limit)`
|
|
129
|
+
|
|
130
|
+
Search memories semantically.
|
|
131
|
+
|
|
132
|
+
**Parameters:**
|
|
133
|
+
- `query` (string): Search query (natural language)
|
|
134
|
+
- `limit` (number): Max results (default: 10)
|
|
135
|
+
|
|
136
|
+
**Returns:** Array of SearchResult objects
|
|
137
|
+
|
|
138
|
+
### `memory.get_context(query, limit)`
|
|
139
|
+
|
|
140
|
+
Get formatted context for prompt injection.
|
|
141
|
+
|
|
142
|
+
**Parameters:**
|
|
143
|
+
- `query` (string): What context do you need?
|
|
144
|
+
- `limit` (number): Max memories (default: 5)
|
|
145
|
+
|
|
146
|
+
**Returns:** Formatted string ready for prompt
|
|
147
|
+
|
|
148
|
+
### `memory.stats()`
|
|
149
|
+
|
|
150
|
+
Get usage statistics.
|
|
151
|
+
|
|
152
|
+
**Returns:** Object with `total_memories`, `memory_types`, `operations_this_month`
|
|
153
|
+
|
|
154
|
+
## Advanced
|
|
155
|
+
|
|
156
|
+
### Memory Types
|
|
157
|
+
|
|
158
|
+
**Episodic** - Events and experiences
|
|
159
|
+
```javascript
|
|
160
|
+
memory.remember('Deployed MemoryLayer on 2026-02-03', { type: 'episodic' });
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
**Semantic** - Facts and knowledge
|
|
164
|
+
```javascript
|
|
165
|
+
memory.remember('Boss prefers concise reports', { type: 'semantic' });
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
**Procedural** - How-to and processes
|
|
169
|
+
```javascript
|
|
170
|
+
memory.remember('To restart server: ssh root@... && systemctl restart...', { type: 'procedural' });
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Metadata Tagging
|
|
174
|
+
|
|
175
|
+
```javascript
|
|
176
|
+
memory.remember('User likes blue', {
|
|
177
|
+
type: 'semantic',
|
|
178
|
+
metadata: {
|
|
179
|
+
category: 'preferences',
|
|
180
|
+
subcategory: 'colors',
|
|
181
|
+
source: 'user_profile'
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Usage Tracking
|
|
187
|
+
|
|
188
|
+
```javascript
|
|
189
|
+
const stats = await memory.stats();
|
|
190
|
+
console.log(`Total memories: ${stats.total_memories}`);
|
|
191
|
+
console.log(`Operations this month: ${stats.operations_this_month}`);
|
|
192
|
+
console.log(`Plan: ${stats.plan} (${stats.operations_limit}/month)`);
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
## Pricing
|
|
196
|
+
|
|
197
|
+
**FREE Plan** (Current)
|
|
198
|
+
- 10,000 operations/month
|
|
199
|
+
- 1GB storage
|
|
200
|
+
- Community support
|
|
201
|
+
|
|
202
|
+
**Pro Plan** ($99/mo)
|
|
203
|
+
- 1M operations/month
|
|
204
|
+
- 10GB storage
|
|
205
|
+
- Email support
|
|
206
|
+
- 99.9% SLA
|
|
207
|
+
|
|
208
|
+
**Enterprise** (Custom)
|
|
209
|
+
- Unlimited operations
|
|
210
|
+
- Unlimited storage
|
|
211
|
+
- Dedicated support
|
|
212
|
+
- Self-hosted option
|
|
213
|
+
- Custom SLA
|
|
214
|
+
|
|
215
|
+
## Support
|
|
216
|
+
|
|
217
|
+
- **Documentation:** https://memorylayer.clawbot.hk/docs
|
|
218
|
+
- **API Reference:** https://memorylayer.clawbot.hk/api
|
|
219
|
+
- **Community:** Discord (link in docs)
|
|
220
|
+
- **Issues:** GitHub (link in docs)
|
|
221
|
+
|
|
222
|
+
## Links
|
|
223
|
+
|
|
224
|
+
- **Homepage:** https://memorylayer.clawbot.hk
|
|
225
|
+
- **Dashboard:** https://dashboard.memorylayer.clawbot.hk
|
|
226
|
+
- **API Docs:** https://memorylayer.clawbot.hk/docs
|
|
227
|
+
- **Python SDK:** https://pypi.org/project/memorylayer (when published)
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* MemoryLayer Agent Integration Example
|
|
5
|
+
*
|
|
6
|
+
* This example shows how to integrate MemoryLayer into an AI agent workflow:
|
|
7
|
+
* 1. Inject relevant context into prompts
|
|
8
|
+
* 2. Store important learnings from conversations
|
|
9
|
+
* 3. Build up agent knowledge over time
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
const memory = require('../index.js');
|
|
13
|
+
|
|
14
|
+
// Simulated AI agent
|
|
15
|
+
class AIAgent {
|
|
16
|
+
constructor() {
|
|
17
|
+
this.name = 'ClawdBot';
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
async processUserMessage(message) {
|
|
21
|
+
console.log(`\nš¤ User: ${message}`);
|
|
22
|
+
|
|
23
|
+
// 1. Get relevant context from MemoryLayer
|
|
24
|
+
const context = await memory.get_context(message, 5);
|
|
25
|
+
|
|
26
|
+
// 2. Build prompt with context
|
|
27
|
+
const prompt = `${context}
|
|
28
|
+
|
|
29
|
+
User message: ${message}
|
|
30
|
+
|
|
31
|
+
Based on the relevant memories above, provide a helpful response.`;
|
|
32
|
+
|
|
33
|
+
console.log('\nš§ Agent thinking...');
|
|
34
|
+
console.log('Context retrieved:');
|
|
35
|
+
console.log(context);
|
|
36
|
+
|
|
37
|
+
// 3. Simulate AI response (in real use, this would call your LLM)
|
|
38
|
+
let response;
|
|
39
|
+
if (message.includes('preferences')) {
|
|
40
|
+
response = "Based on your preferences, I see you prefer dark mode UI with blue accents. I'll keep that in mind!";
|
|
41
|
+
|
|
42
|
+
// 4. Store this interaction as a memory
|
|
43
|
+
await memory.remember(
|
|
44
|
+
`User asked about their preferences on ${new Date().toISOString().split('T')[0]}`,
|
|
45
|
+
{ type: 'episodic', importance: 0.5 }
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
} else if (message.includes('export')) {
|
|
49
|
+
response = "To export your data, go to Settings > Account > Export Data button. Let me know if you need help!";
|
|
50
|
+
|
|
51
|
+
} else {
|
|
52
|
+
response = "I'm here to help! What would you like to know?";
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
console.log(`\nš¤ ${this.name}: ${response}`);
|
|
56
|
+
|
|
57
|
+
return response;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
async learnFromFeedback(feedback, importance = 0.7) {
|
|
61
|
+
// Store important learnings
|
|
62
|
+
await memory.remember(feedback, {
|
|
63
|
+
type: 'semantic',
|
|
64
|
+
importance,
|
|
65
|
+
metadata: {
|
|
66
|
+
source: 'user_feedback',
|
|
67
|
+
timestamp: new Date().toISOString()
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
console.log(`\nš Learned: ${feedback}`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
async function main() {
|
|
76
|
+
console.log('š¤ MemoryLayer Agent Integration Example\n');
|
|
77
|
+
console.log('=' .repeat(50));
|
|
78
|
+
|
|
79
|
+
try {
|
|
80
|
+
const agent = new AIAgent();
|
|
81
|
+
|
|
82
|
+
// Store some initial preferences
|
|
83
|
+
console.log('\nš Setting up agent knowledge...');
|
|
84
|
+
await memory.remember(
|
|
85
|
+
'User prefers dark mode UI with blue accent colors',
|
|
86
|
+
{ type: 'semantic', importance: 0.8 }
|
|
87
|
+
);
|
|
88
|
+
|
|
89
|
+
await memory.remember(
|
|
90
|
+
'User is a developer who likes concise, technical explanations',
|
|
91
|
+
{ type: 'semantic', importance: 0.9 }
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
await memory.remember(
|
|
95
|
+
'To export data: Settings > Account > Export Data button',
|
|
96
|
+
{ type: 'procedural', importance: 0.7 }
|
|
97
|
+
);
|
|
98
|
+
|
|
99
|
+
console.log('ā
Initial knowledge stored');
|
|
100
|
+
|
|
101
|
+
// Simulate conversation
|
|
102
|
+
console.log('\n' + '='.repeat(50));
|
|
103
|
+
console.log('š¬ Starting conversation...');
|
|
104
|
+
console.log('='.repeat(50));
|
|
105
|
+
|
|
106
|
+
await agent.processUserMessage("What are my UI preferences?");
|
|
107
|
+
|
|
108
|
+
await agent.processUserMessage("How do I export my data?");
|
|
109
|
+
|
|
110
|
+
// Learn from user feedback
|
|
111
|
+
console.log('\n' + '='.repeat(50));
|
|
112
|
+
await agent.learnFromFeedback(
|
|
113
|
+
'User found the export feature confusing - add a tutorial',
|
|
114
|
+
0.8
|
|
115
|
+
);
|
|
116
|
+
|
|
117
|
+
// Show how memory grows
|
|
118
|
+
console.log('\n' + '='.repeat(50));
|
|
119
|
+
console.log('\nš Memory Status:');
|
|
120
|
+
const stats = await memory.stats();
|
|
121
|
+
console.log(`Total memories stored: ${stats.total_memories || 'N/A'}`);
|
|
122
|
+
console.log(`Operations used: ${stats.operations_this_month || 'N/A'}`);
|
|
123
|
+
|
|
124
|
+
console.log('\nš” Key Benefits:');
|
|
125
|
+
console.log('ā
Only relevant memories loaded (not entire history)');
|
|
126
|
+
console.log('ā
Memory grows over time without token bloat');
|
|
127
|
+
console.log('ā
95% token savings vs. loading full context');
|
|
128
|
+
console.log('ā
Sub-200ms retrieval speed');
|
|
129
|
+
|
|
130
|
+
console.log('\nā
Example complete!');
|
|
131
|
+
|
|
132
|
+
} catch (error) {
|
|
133
|
+
console.error('ā Error:', error.message);
|
|
134
|
+
|
|
135
|
+
if (error.message.includes('Missing credentials')) {
|
|
136
|
+
console.log('\nš” Set credentials first:');
|
|
137
|
+
console.log('export MEMORYLAYER_EMAIL=your@email.com');
|
|
138
|
+
console.log('export MEMORYLAYER_PASSWORD=your_password');
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
process.exit(1);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
main();
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* MemoryLayer Basic Usage Example
|
|
5
|
+
*
|
|
6
|
+
* This example shows:
|
|
7
|
+
* 1. Storing memories
|
|
8
|
+
* 2. Searching for relevant memories
|
|
9
|
+
* 3. Getting formatted context for prompts
|
|
10
|
+
* 4. Checking usage stats
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
const memory = require('../index.js');
|
|
14
|
+
|
|
15
|
+
async function main() {
|
|
16
|
+
console.log('š§ MemoryLayer Basic Usage Example\n');
|
|
17
|
+
|
|
18
|
+
try {
|
|
19
|
+
// 1. Store some memories
|
|
20
|
+
console.log('š Storing memories...');
|
|
21
|
+
|
|
22
|
+
await memory.remember(
|
|
23
|
+
'User prefers dark mode UI with blue accent colors',
|
|
24
|
+
{ type: 'semantic', importance: 0.8 }
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
await memory.remember(
|
|
28
|
+
'User completed onboarding on 2026-02-03',
|
|
29
|
+
{ type: 'episodic', importance: 0.6 }
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
await memory.remember(
|
|
33
|
+
'To export data: Settings > Account > Export Data button',
|
|
34
|
+
{ type: 'procedural', importance: 0.7 }
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
console.log('ā
Stored 3 memories\n');
|
|
38
|
+
|
|
39
|
+
// 2. Search for relevant memories
|
|
40
|
+
console.log('š Searching for "UI preferences"...');
|
|
41
|
+
const results = await memory.search('UI preferences', 5);
|
|
42
|
+
|
|
43
|
+
console.log(`Found ${results.length} results:\n`);
|
|
44
|
+
results.forEach((result, i) => {
|
|
45
|
+
console.log(`${i + 1}. [${result.relevance_score.toFixed(2)}] ${result.memory.content}`);
|
|
46
|
+
console.log(` Type: ${result.memory.memory_type}, Importance: ${result.memory.importance}`);
|
|
47
|
+
});
|
|
48
|
+
console.log();
|
|
49
|
+
|
|
50
|
+
// 3. Get formatted context for prompt injection
|
|
51
|
+
console.log('š Getting formatted context...');
|
|
52
|
+
const context = await memory.get_context('user interface settings', 3);
|
|
53
|
+
console.log(context);
|
|
54
|
+
console.log();
|
|
55
|
+
|
|
56
|
+
// 4. Check usage stats
|
|
57
|
+
console.log('š Usage statistics...');
|
|
58
|
+
const stats = await memory.stats();
|
|
59
|
+
console.log(`Email: ${stats.email}`);
|
|
60
|
+
console.log(`Total memories: ${stats.total_memories || 'N/A'}`);
|
|
61
|
+
console.log(`Operations this month: ${stats.operations_this_month || 'N/A'}`);
|
|
62
|
+
console.log();
|
|
63
|
+
|
|
64
|
+
// Token savings calculation
|
|
65
|
+
console.log('š° Token Savings:');
|
|
66
|
+
console.log('Before MemoryLayer: 10,500 tokens (entire MEMORY.md)');
|
|
67
|
+
console.log('After MemoryLayer: ~500 tokens (5 relevant memories)');
|
|
68
|
+
console.log('Savings: 95% = ~$900/month at scale');
|
|
69
|
+
console.log();
|
|
70
|
+
|
|
71
|
+
console.log('ā
Example complete!');
|
|
72
|
+
|
|
73
|
+
} catch (error) {
|
|
74
|
+
console.error('ā Error:', error.message);
|
|
75
|
+
|
|
76
|
+
if (error.message.includes('Missing credentials')) {
|
|
77
|
+
console.log('\nš” Set credentials first:');
|
|
78
|
+
console.log('export MEMORYLAYER_EMAIL=your@email.com');
|
|
79
|
+
console.log('export MEMORYLAYER_PASSWORD=your_password');
|
|
80
|
+
console.log('\nOr visit: https://memorylayer.clawbot.hk to sign up');
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
process.exit(1);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
main();
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* MemoryLayer Token Savings Demo
|
|
5
|
+
*
|
|
6
|
+
* This example demonstrates the token savings you get by using MemoryLayer
|
|
7
|
+
* instead of loading entire memory files.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
const memory = require('../index.js');
|
|
11
|
+
const fs = require('fs');
|
|
12
|
+
const path = require('path');
|
|
13
|
+
|
|
14
|
+
// Simple token counter (rough estimate: 1 token ā 4 characters)
|
|
15
|
+
function estimateTokens(text) {
|
|
16
|
+
return Math.ceil(text.length / 4);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
async function main() {
|
|
20
|
+
console.log('š° MemoryLayer Token Savings Demo\n');
|
|
21
|
+
console.log('=' .repeat(60));
|
|
22
|
+
|
|
23
|
+
try {
|
|
24
|
+
// Simulate storing a lot of memories (like MEMORY.md would have)
|
|
25
|
+
console.log('\nš Setting up test memories...');
|
|
26
|
+
|
|
27
|
+
const testMemories = [
|
|
28
|
+
'User prefers dark mode UI with blue accent colors',
|
|
29
|
+
'User completed onboarding on 2026-02-03',
|
|
30
|
+
'User is a developer who likes concise technical explanations',
|
|
31
|
+
'User timezone is Asia/Hong_Kong',
|
|
32
|
+
'User works at QuantechCo as a senior engineer',
|
|
33
|
+
'To export data: Settings > Account > Export Data button',
|
|
34
|
+
'User reported bug in search feature on 2026-02-01',
|
|
35
|
+
'User favorite programming language is JavaScript',
|
|
36
|
+
'User prefers email notifications over push notifications',
|
|
37
|
+
'User last login was 2026-02-03 14:30:00',
|
|
38
|
+
'User created project "MemoryLayer" on 2026-01-15',
|
|
39
|
+
'To reset password: Click "Forgot Password" on login page',
|
|
40
|
+
'User subscribed to Pro plan on 2026-01-20',
|
|
41
|
+
'User requested feature: bulk export',
|
|
42
|
+
'User reported performance issue with large datasets',
|
|
43
|
+
];
|
|
44
|
+
|
|
45
|
+
for (const content of testMemories) {
|
|
46
|
+
await memory.remember(content, {
|
|
47
|
+
type: 'semantic',
|
|
48
|
+
importance: Math.random() * 0.5 + 0.5
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
console.log(`ā
Stored ${testMemories.length} test memories\n`);
|
|
53
|
+
|
|
54
|
+
// === BEFORE: Loading entire memory file ===
|
|
55
|
+
console.log('='.repeat(60));
|
|
56
|
+
console.log('š BEFORE: Traditional Approach (Loading entire MEMORY.md)');
|
|
57
|
+
console.log('='.repeat(60));
|
|
58
|
+
|
|
59
|
+
// Simulate a typical MEMORY.md file
|
|
60
|
+
const fullMemoryContent = `
|
|
61
|
+
# MEMORY.md - Long-term Memory
|
|
62
|
+
|
|
63
|
+
## User Profile
|
|
64
|
+
- Name: John Doe
|
|
65
|
+
- Email: john@example.com
|
|
66
|
+
- Timezone: Asia/Hong_Kong
|
|
67
|
+
- Role: Senior Engineer at QuantechCo
|
|
68
|
+
- Preferences: Dark mode UI, blue accents
|
|
69
|
+
- Notification preference: Email > Push
|
|
70
|
+
- Favorite language: JavaScript
|
|
71
|
+
|
|
72
|
+
## Recent Events
|
|
73
|
+
- 2026-02-03: Completed onboarding
|
|
74
|
+
- 2026-02-03: Last login at 14:30:00
|
|
75
|
+
- 2026-02-01: Reported bug in search feature
|
|
76
|
+
- 2026-01-20: Subscribed to Pro plan
|
|
77
|
+
- 2026-01-15: Created project "MemoryLayer"
|
|
78
|
+
|
|
79
|
+
## Feature Knowledge
|
|
80
|
+
- Export data: Settings > Account > Export Data button
|
|
81
|
+
- Reset password: Click "Forgot Password" on login page
|
|
82
|
+
|
|
83
|
+
## User Feedback
|
|
84
|
+
- Found export feature confusing - needs tutorial
|
|
85
|
+
- Requested feature: bulk export
|
|
86
|
+
- Reported performance issue with large datasets
|
|
87
|
+
|
|
88
|
+
## Technical Details
|
|
89
|
+
- Preferred response style: Concise, technical
|
|
90
|
+
- Complexity tolerance: High (developer)
|
|
91
|
+
- Documentation preference: Code examples > long explanations
|
|
92
|
+
|
|
93
|
+
... (imagine many more sections) ...
|
|
94
|
+
|
|
95
|
+
## Historical Context
|
|
96
|
+
(This would typically include hundreds of lines of conversation history,
|
|
97
|
+
decisions made, code written, bugs fixed, features requested, etc.)
|
|
98
|
+
|
|
99
|
+
Total: This is a typical MEMORY.md file that could easily grow to 2,500+ lines
|
|
100
|
+
and 10,000+ tokens as the agent learns more about the user.
|
|
101
|
+
`.trim();
|
|
102
|
+
|
|
103
|
+
const beforeTokens = estimateTokens(fullMemoryContent);
|
|
104
|
+
console.log(`\nš Full MEMORY.md file size: ${fullMemoryContent.length} characters`);
|
|
105
|
+
console.log(`šÆ Estimated tokens: ${beforeTokens.toLocaleString()}`);
|
|
106
|
+
console.log(`šµ Cost per 1M tokens (GPT-4): ~$30`);
|
|
107
|
+
console.log(`š° Cost per prompt: $${((beforeTokens / 1000000) * 30).toFixed(4)}`);
|
|
108
|
+
console.log(`\nā Problems:`);
|
|
109
|
+
console.log(` - Loads ALL memories every time (90% irrelevant)`);
|
|
110
|
+
console.log(` - Slow as memory file grows`);
|
|
111
|
+
console.log(` - Context window fills up quickly`);
|
|
112
|
+
console.log(` - Expensive at scale`);
|
|
113
|
+
|
|
114
|
+
// === AFTER: Using MemoryLayer ===
|
|
115
|
+
console.log('\n' + '='.repeat(60));
|
|
116
|
+
console.log('š AFTER: MemoryLayer Approach (Semantic Search)');
|
|
117
|
+
console.log('='.repeat(60));
|
|
118
|
+
|
|
119
|
+
const query = "What are the user's UI preferences?";
|
|
120
|
+
console.log(`\nš Query: "${query}"`);
|
|
121
|
+
|
|
122
|
+
const context = await memory.get_context(query, 5);
|
|
123
|
+
|
|
124
|
+
const afterTokens = estimateTokens(context);
|
|
125
|
+
console.log(`\nš Retrieved context size: ${context.length} characters`);
|
|
126
|
+
console.log(`šÆ Estimated tokens: ${afterTokens.toLocaleString()}`);
|
|
127
|
+
console.log(`šµ Cost per 1M tokens (GPT-4): ~$30`);
|
|
128
|
+
console.log(`š° Cost per prompt: $${((afterTokens / 1000000) * 30).toFixed(4)}`);
|
|
129
|
+
|
|
130
|
+
console.log(`\nā
Benefits:`);
|
|
131
|
+
console.log(` - Only loads relevant memories (5 out of ${testMemories.length})`);
|
|
132
|
+
console.log(` - Sub-200ms retrieval time`);
|
|
133
|
+
console.log(` - Context window stays clean`);
|
|
134
|
+
console.log(` - Scales to millions of memories`);
|
|
135
|
+
|
|
136
|
+
console.log('\n' + '='.repeat(60));
|
|
137
|
+
console.log('š° SAVINGS CALCULATION');
|
|
138
|
+
console.log('='.repeat(60));
|
|
139
|
+
|
|
140
|
+
const tokenSavings = beforeTokens - afterTokens;
|
|
141
|
+
const percentSavings = ((tokenSavings / beforeTokens) * 100).toFixed(1);
|
|
142
|
+
const costSavingsPerPrompt = ((tokenSavings / 1000000) * 30).toFixed(4);
|
|
143
|
+
|
|
144
|
+
console.log(`\nš Token reduction: ${tokenSavings.toLocaleString()} tokens (${percentSavings}%)`);
|
|
145
|
+
console.log(`šµ Cost savings per prompt: $${costSavingsPerPrompt}`);
|
|
146
|
+
|
|
147
|
+
// Calculate monthly savings at scale
|
|
148
|
+
const promptsPerDay = 1000;
|
|
149
|
+
const daysPerMonth = 30;
|
|
150
|
+
const monthlyPrompts = promptsPerDay * daysPerMonth;
|
|
151
|
+
const monthlySavings = ((tokenSavings / 1000000) * 30 * monthlyPrompts).toFixed(2);
|
|
152
|
+
|
|
153
|
+
console.log(`\nš At scale (${promptsPerDay.toLocaleString()} prompts/day):`);
|
|
154
|
+
console.log(` Monthly prompts: ${monthlyPrompts.toLocaleString()}`);
|
|
155
|
+
console.log(` Monthly savings: $${monthlySavings}`);
|
|
156
|
+
console.log(` Annual savings: $${(monthlySavings * 12).toLocaleString()}`);
|
|
157
|
+
|
|
158
|
+
console.log('\n⨠Retrieved context:');
|
|
159
|
+
console.log('ā'.repeat(60));
|
|
160
|
+
console.log(context);
|
|
161
|
+
console.log('ā'.repeat(60));
|
|
162
|
+
|
|
163
|
+
console.log('\nā
Demo complete!');
|
|
164
|
+
console.log('\nš” Key Takeaway:');
|
|
165
|
+
console.log(' MemoryLayer reduces tokens by ~95% while maintaining');
|
|
166
|
+
console.log(' full context relevance. This is the difference between');
|
|
167
|
+
console.log(' paying $1,000/month and $50/month at scale.');
|
|
168
|
+
|
|
169
|
+
} catch (error) {
|
|
170
|
+
console.error('ā Error:', error.message);
|
|
171
|
+
|
|
172
|
+
if (error.message.includes('Missing credentials')) {
|
|
173
|
+
console.log('\nš” Set credentials first:');
|
|
174
|
+
console.log('export MEMORYLAYER_EMAIL=your@email.com');
|
|
175
|
+
console.log('export MEMORYLAYER_PASSWORD=your_password');
|
|
176
|
+
console.log('\nOr visit: https://memorylayer.clawbot.hk to sign up');
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
process.exit(1);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
main();
|