@intent-systems/nexus 2026.1.5-3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +222 -0
- package/LICENSE +21 -0
- package/README-header.png +0 -0
- package/README.md +462 -0
- package/dist/agents/agent-paths.js +16 -0
- package/dist/agents/agent-scope.js +44 -0
- package/dist/agents/auth-profiles.js +626 -0
- package/dist/agents/bash-process-registry.js +126 -0
- package/dist/agents/bash-tools.js +838 -0
- package/dist/agents/chutes-oauth.js +47 -0
- package/dist/agents/clawdbot-tools.js +62 -0
- package/dist/agents/context.js +34 -0
- package/dist/agents/defaults.js +6 -0
- package/dist/agents/memory-search.js +80 -0
- package/dist/agents/model-auth.js +115 -0
- package/dist/agents/model-catalog.js +55 -0
- package/dist/agents/model-fallback.js +210 -0
- package/dist/agents/model-scan.js +263 -0
- package/dist/agents/model-selection.js +152 -0
- package/dist/agents/models-config.js +171 -0
- package/dist/agents/nexus-tools.js +46 -0
- package/dist/agents/pi-embedded-block-chunker.js +188 -0
- package/dist/agents/pi-embedded-helpers.js +139 -0
- package/dist/agents/pi-embedded-runner.js +932 -0
- package/dist/agents/pi-embedded-subscribe.js +541 -0
- package/dist/agents/pi-embedded-utils.js +20 -0
- package/dist/agents/pi-embedded.js +1 -0
- package/dist/agents/pi-extensions/compaction-safeguard.js +140 -0
- package/dist/agents/pi-tool-definition-adapter.js +17 -0
- package/dist/agents/pi-tools.js +510 -0
- package/dist/agents/pi-tools.schema.js +358 -0
- package/dist/agents/sandbox-paths.js +68 -0
- package/dist/agents/sandbox.js +667 -0
- package/dist/agents/shell-utils.js +53 -0
- package/dist/agents/skill-runner.js +224 -0
- package/dist/agents/skill-state.js +164 -0
- package/dist/agents/skill-tools.js +191 -0
- package/dist/agents/skill-usage.js +43 -0
- package/dist/agents/skills-install.js +244 -0
- package/dist/agents/skills-status.js +157 -0
- package/dist/agents/skills.js +472 -0
- package/dist/agents/subagent-registry.js +321 -0
- package/dist/agents/subagent-registry.store.js +47 -0
- package/dist/agents/system-prompt.js +179 -0
- package/dist/agents/timeout.js +26 -0
- package/dist/agents/tool-display.js +155 -0
- package/dist/agents/tool-display.json +236 -0
- package/dist/agents/tool-images.js +138 -0
- package/dist/agents/tool-policy.js +87 -0
- package/dist/agents/tools/agent-step.js +41 -0
- package/dist/agents/tools/browser-tool.js +295 -0
- package/dist/agents/tools/canvas-tool.js +193 -0
- package/dist/agents/tools/common.js +88 -0
- package/dist/agents/tools/cron-tool.js +141 -0
- package/dist/agents/tools/discord-actions-guild.js +186 -0
- package/dist/agents/tools/discord-actions-messaging.js +313 -0
- package/dist/agents/tools/discord-actions-moderation.js +70 -0
- package/dist/agents/tools/discord-actions.js +56 -0
- package/dist/agents/tools/discord-schema.js +199 -0
- package/dist/agents/tools/discord-tool.js +16 -0
- package/dist/agents/tools/gateway-tool.js +46 -0
- package/dist/agents/tools/gateway.js +28 -0
- package/dist/agents/tools/image-tool.js +140 -0
- package/dist/agents/tools/memory-tool.js +92 -0
- package/dist/agents/tools/nodes-tool.js +413 -0
- package/dist/agents/tools/nodes-utils.js +92 -0
- package/dist/agents/tools/sessions-announce-target.js +35 -0
- package/dist/agents/tools/sessions-helpers.js +88 -0
- package/dist/agents/tools/sessions-history-tool.js +137 -0
- package/dist/agents/tools/sessions-list-tool.js +196 -0
- package/dist/agents/tools/sessions-send-helpers.js +103 -0
- package/dist/agents/tools/sessions-send-tool.js +371 -0
- package/dist/agents/tools/sessions-spawn-tool.js +319 -0
- package/dist/agents/tools/slack-actions.js +129 -0
- package/dist/agents/tools/slack-schema.js +59 -0
- package/dist/agents/tools/slack-tool.js +16 -0
- package/dist/agents/tools/telegram-actions.js +159 -0
- package/dist/agents/tools/telegram-schema.js +28 -0
- package/dist/agents/tools/telegram-tool.js +16 -0
- package/dist/agents/tools/whatsapp-login-tool.js +63 -0
- package/dist/agents/usage.js +58 -0
- package/dist/agents/workspace.js +264 -0
- package/dist/auto-reply/chunk.js +177 -0
- package/dist/auto-reply/command-auth.js +44 -0
- package/dist/auto-reply/command-detection.js +22 -0
- package/dist/auto-reply/envelope.js +30 -0
- package/dist/auto-reply/group-activation.js +20 -0
- package/dist/auto-reply/heartbeat.js +58 -0
- package/dist/auto-reply/model.js +22 -0
- package/dist/auto-reply/reply/abort.js +14 -0
- package/dist/auto-reply/reply/agent-runner.js +426 -0
- package/dist/auto-reply/reply/bash-command.js +314 -0
- package/dist/auto-reply/reply/block-streaming.js +34 -0
- package/dist/auto-reply/reply/body.js +29 -0
- package/dist/auto-reply/reply/commands.js +332 -0
- package/dist/auto-reply/reply/directive-handling.js +626 -0
- package/dist/auto-reply/reply/directives.js +59 -0
- package/dist/auto-reply/reply/dispatch-from-config.js +23 -0
- package/dist/auto-reply/reply/followup-runner.js +181 -0
- package/dist/auto-reply/reply/groups.js +152 -0
- package/dist/auto-reply/reply/mentions.js +64 -0
- package/dist/auto-reply/reply/model-selection.js +209 -0
- package/dist/auto-reply/reply/queue.js +399 -0
- package/dist/auto-reply/reply/reply-dispatcher.js +68 -0
- package/dist/auto-reply/reply/reply-tags.js +26 -0
- package/dist/auto-reply/reply/session-updates.js +103 -0
- package/dist/auto-reply/reply/session.js +169 -0
- package/dist/auto-reply/reply/typing.js +125 -0
- package/dist/auto-reply/reply.js +655 -0
- package/dist/auto-reply/send-policy.js +28 -0
- package/dist/auto-reply/status.js +197 -0
- package/dist/auto-reply/templating.js +9 -0
- package/dist/auto-reply/thinking.js +49 -0
- package/dist/auto-reply/tokens.js +2 -0
- package/dist/auto-reply/tool-meta.js +74 -0
- package/dist/auto-reply/transcription.js +57 -0
- package/dist/auto-reply/types.js +1 -0
- package/dist/browser/bridge-server.js +37 -0
- package/dist/browser/cdp.js +382 -0
- package/dist/browser/chrome.js +432 -0
- package/dist/browser/client-actions-core.js +67 -0
- package/dist/browser/client-actions-observe.js +24 -0
- package/dist/browser/client-actions-types.js +1 -0
- package/dist/browser/client-actions.js +3 -0
- package/dist/browser/client-fetch.js +43 -0
- package/dist/browser/client.js +105 -0
- package/dist/browser/config.js +155 -0
- package/dist/browser/constants.js +5 -0
- package/dist/browser/profiles-service.js +124 -0
- package/dist/browser/profiles.js +96 -0
- package/dist/browser/pw-ai.js +2 -0
- package/dist/browser/pw-session.js +144 -0
- package/dist/browser/pw-tools-core.js +363 -0
- package/dist/browser/routes/agent.js +535 -0
- package/dist/browser/routes/basic.js +155 -0
- package/dist/browser/routes/index.js +8 -0
- package/dist/browser/routes/tabs.js +105 -0
- package/dist/browser/routes/utils.js +62 -0
- package/dist/browser/screenshot.js +40 -0
- package/dist/browser/server-context.js +377 -0
- package/dist/browser/server.js +81 -0
- package/dist/browser/target-id.js +18 -0
- package/dist/browser/trash.js +21 -0
- package/dist/canvas-host/a2ui/a2ui.bundle.js +17768 -0
- package/dist/canvas-host/a2ui/index.html +246 -0
- package/dist/canvas-host/a2ui.js +187 -0
- package/dist/canvas-host/server.js +382 -0
- package/dist/channel-web.js +8 -0
- package/dist/cli/browser-cli-actions-input.js +459 -0
- package/dist/cli/browser-cli-actions-observe.js +56 -0
- package/dist/cli/browser-cli-examples.js +31 -0
- package/dist/cli/browser-cli-inspect.js +97 -0
- package/dist/cli/browser-cli-manage.js +286 -0
- package/dist/cli/browser-cli-shared.js +1 -0
- package/dist/cli/browser-cli.js +26 -0
- package/dist/cli/canvas-cli.js +416 -0
- package/dist/cli/cloud-cli.js +336 -0
- package/dist/cli/credential-cli.js +227 -0
- package/dist/cli/cron-cli.js +454 -0
- package/dist/cli/deps.js +17 -0
- package/dist/cli/dns-cli.js +180 -0
- package/dist/cli/gateway-cli.js +665 -0
- package/dist/cli/gateway-rpc.js +20 -0
- package/dist/cli/hooks-cli.js +135 -0
- package/dist/cli/memory-cli.js +101 -0
- package/dist/cli/models-cli.js +248 -0
- package/dist/cli/nodes-camera.js +57 -0
- package/dist/cli/nodes-canvas.js +26 -0
- package/dist/cli/nodes-cli.js +946 -0
- package/dist/cli/nodes-screen.js +37 -0
- package/dist/cli/pairing-cli.js +100 -0
- package/dist/cli/parse-duration.js +20 -0
- package/dist/cli/plugins-cli.js +158 -0
- package/dist/cli/ports.js +97 -0
- package/dist/cli/profile.js +81 -0
- package/dist/cli/program.js +162 -0
- package/dist/cli/prompt.js +19 -0
- package/dist/cli/run-main.js +48 -0
- package/dist/cli/skills-cli.js +132 -0
- package/dist/cli/skills-hub-cli.js +1093 -0
- package/dist/cli/telegram-cli.js +56 -0
- package/dist/cli/tool-connector-cli.js +118 -0
- package/dist/cli/tui-cli.js +35 -0
- package/dist/cli/upstream-sync-cli.js +2833 -0
- package/dist/cli/usage-cli.js +24 -0
- package/dist/cli/wait.js +8 -0
- package/dist/commands/agent-via-gateway.js +115 -0
- package/dist/commands/agent.js +665 -0
- package/dist/commands/antigravity-oauth.js +327 -0
- package/dist/commands/auth-choice-options.js +80 -0
- package/dist/commands/auth-choice.js +134 -0
- package/dist/commands/auth-token.js +31 -0
- package/dist/commands/bootstrap-preset.js +214 -0
- package/dist/commands/capabilities.js +36 -0
- package/dist/commands/chutes-oauth.js +144 -0
- package/dist/commands/claude-md.js +137 -0
- package/dist/commands/config-view.js +11 -0
- package/dist/commands/configure.js +648 -0
- package/dist/commands/credential.js +236 -0
- package/dist/commands/cursor-rules.js +230 -0
- package/dist/commands/doctor-state-migrations.js +358 -0
- package/dist/commands/doctor-ui.js +113 -0
- package/dist/commands/doctor.js +673 -0
- package/dist/commands/health.js +112 -0
- package/dist/commands/identity.js +54 -0
- package/dist/commands/init.js +167 -0
- package/dist/commands/models/aliases.js +85 -0
- package/dist/commands/models/fallbacks.js +123 -0
- package/dist/commands/models/image-fallbacks.js +123 -0
- package/dist/commands/models/list.js +347 -0
- package/dist/commands/models/scan.js +271 -0
- package/dist/commands/models/set-image.js +27 -0
- package/dist/commands/models/set.js +27 -0
- package/dist/commands/models/shared.js +73 -0
- package/dist/commands/models.js +7 -0
- package/dist/commands/onboard-auth.js +101 -0
- package/dist/commands/onboard-channels.js +814 -0
- package/dist/commands/onboard-eve-identity.js +98 -0
- package/dist/commands/onboard-github.js +153 -0
- package/dist/commands/onboard-helpers.js +303 -0
- package/dist/commands/onboard-interactive.js +17 -0
- package/dist/commands/onboard-non-interactive.js +228 -0
- package/dist/commands/onboard-providers.js +829 -0
- package/dist/commands/onboard-quickstart.js +185 -0
- package/dist/commands/onboard-remote.js +120 -0
- package/dist/commands/onboard-skills.js +148 -0
- package/dist/commands/onboard-types.js +1 -0
- package/dist/commands/onboard.js +19 -0
- package/dist/commands/openai-codex-model-default.js +38 -0
- package/dist/commands/poll.js +64 -0
- package/dist/commands/quest.js +27 -0
- package/dist/commands/reset.js +61 -0
- package/dist/commands/send.js +124 -0
- package/dist/commands/sessions-ingest.js +359 -0
- package/dist/commands/sessions.js +212 -0
- package/dist/commands/setup.js +59 -0
- package/dist/commands/signal-install.js +135 -0
- package/dist/commands/skills-manifest.js +235 -0
- package/dist/commands/status.js +139 -0
- package/dist/commands/suggestions.js +54 -0
- package/dist/commands/systemd-linger.js +71 -0
- package/dist/commands/update.js +16 -0
- package/dist/commands/usage-upload.js +27 -0
- package/dist/config/config.js +6 -0
- package/dist/config/defaults.js +140 -0
- package/dist/config/group-policy.js +49 -0
- package/dist/config/includes.js +183 -0
- package/dist/config/io.js +188 -0
- package/dist/config/legacy-migrate.js +13 -0
- package/dist/config/legacy.js +425 -0
- package/dist/config/paths.js +82 -0
- package/dist/config/port-defaults.js +32 -0
- package/dist/config/schema.js +173 -0
- package/dist/config/sessions.js +611 -0
- package/dist/config/talk.js +31 -0
- package/dist/config/types.js +1 -0
- package/dist/config/validation.js +29 -0
- package/dist/config/zod-schema.js +1110 -0
- package/dist/control-ui/assets/index-D8Q5AI4D.js +2393 -0
- package/dist/control-ui/assets/index-D8Q5AI4D.js.map +1 -0
- package/dist/control-ui/assets/index-g06q5Xc3.css +1 -0
- package/dist/control-ui/favicon.ico +0 -0
- package/dist/control-ui/index.html +16 -0
- package/dist/cron/isolated-agent.js +529 -0
- package/dist/cron/normalize.js +73 -0
- package/dist/cron/parse.js +24 -0
- package/dist/cron/run-log.js +72 -0
- package/dist/cron/schedule.js +24 -0
- package/dist/cron/service.js +471 -0
- package/dist/cron/store.js +43 -0
- package/dist/cron/types.js +1 -0
- package/dist/daemon/constants.js +10 -0
- package/dist/daemon/launchd.js +295 -0
- package/dist/daemon/legacy.js +63 -0
- package/dist/daemon/program-args.js +141 -0
- package/dist/daemon/schtasks.js +269 -0
- package/dist/daemon/service.js +69 -0
- package/dist/daemon/systemd.js +332 -0
- package/dist/discord/index.js +2 -0
- package/dist/discord/monitor.js +1089 -0
- package/dist/discord/probe.js +54 -0
- package/dist/discord/send.js +652 -0
- package/dist/discord/token.js +8 -0
- package/dist/entry.js +16 -0
- package/dist/gateway/auth.js +121 -0
- package/dist/gateway/call.js +103 -0
- package/dist/gateway/chat-attachments.js +41 -0
- package/dist/gateway/client.js +180 -0
- package/dist/gateway/config-reload.js +274 -0
- package/dist/gateway/control-ui.js +184 -0
- package/dist/gateway/hooks-mapping.js +282 -0
- package/dist/gateway/hooks.js +168 -0
- package/dist/gateway/net.js +29 -0
- package/dist/gateway/protocol/index.js +62 -0
- package/dist/gateway/protocol/schema.js +577 -0
- package/dist/gateway/server-bridge-subscriptions.js +93 -0
- package/dist/gateway/server-bridge.js +1066 -0
- package/dist/gateway/server-browser.js +11 -0
- package/dist/gateway/server-channels.js +680 -0
- package/dist/gateway/server-chat.js +159 -0
- package/dist/gateway/server-constants.js +8 -0
- package/dist/gateway/server-discovery.js +62 -0
- package/dist/gateway/server-http.js +165 -0
- package/dist/gateway/server-methods/agent-job.js +114 -0
- package/dist/gateway/server-methods/agent.js +254 -0
- package/dist/gateway/server-methods/channels.js +239 -0
- package/dist/gateway/server-methods/chat.js +207 -0
- package/dist/gateway/server-methods/config.js +50 -0
- package/dist/gateway/server-methods/connect.js +6 -0
- package/dist/gateway/server-methods/cron.js +89 -0
- package/dist/gateway/server-methods/health.js +28 -0
- package/dist/gateway/server-methods/models.js +16 -0
- package/dist/gateway/server-methods/nodes.js +294 -0
- package/dist/gateway/server-methods/providers.js +257 -0
- package/dist/gateway/server-methods/send.js +254 -0
- package/dist/gateway/server-methods/sessions.js +382 -0
- package/dist/gateway/server-methods/skills.js +83 -0
- package/dist/gateway/server-methods/system.js +118 -0
- package/dist/gateway/server-methods/talk.js +22 -0
- package/dist/gateway/server-methods/types.js +1 -0
- package/dist/gateway/server-methods/voicewake.js +30 -0
- package/dist/gateway/server-methods/web.js +81 -0
- package/dist/gateway/server-methods/wizard.js +100 -0
- package/dist/gateway/server-methods.js +53 -0
- package/dist/gateway/server-providers.js +687 -0
- package/dist/gateway/server-shared.js +1 -0
- package/dist/gateway/server-utils.js +35 -0
- package/dist/gateway/server.js +1478 -0
- package/dist/gateway/session-utils.js +355 -0
- package/dist/gateway/ws-log.js +343 -0
- package/dist/gateway/ws-logging.js +8 -0
- package/dist/globals.js +41 -0
- package/dist/hooks/gmail-ops.js +236 -0
- package/dist/hooks/gmail-setup-utils.js +278 -0
- package/dist/hooks/gmail-watcher.js +190 -0
- package/dist/hooks/gmail.js +177 -0
- package/dist/imessage/client.js +165 -0
- package/dist/imessage/index.js +3 -0
- package/dist/imessage/monitor.js +365 -0
- package/dist/imessage/probe.js +26 -0
- package/dist/imessage/send.js +83 -0
- package/dist/imessage/targets.js +176 -0
- package/dist/index.js +55 -0
- package/dist/infra/agent-events.js +46 -0
- package/dist/infra/binaries.js +9 -0
- package/dist/infra/bonjour-discovery.js +163 -0
- package/dist/infra/bonjour.js +200 -0
- package/dist/infra/bridge/server.js +564 -0
- package/dist/infra/canvas-host-url.js +54 -0
- package/dist/infra/channel-summary.js +78 -0
- package/dist/infra/control-ui-assets.js +112 -0
- package/dist/infra/dotenv.js +15 -0
- package/dist/infra/env.js +8 -0
- package/dist/infra/errors.js +28 -0
- package/dist/infra/event-log.js +251 -0
- package/dist/infra/gateway-lock.js +8 -0
- package/dist/infra/git-commit.js +91 -0
- package/dist/infra/heartbeat-events.js +21 -0
- package/dist/infra/heartbeat-runner.js +458 -0
- package/dist/infra/heartbeat-wake.js +61 -0
- package/dist/infra/is-main.js +37 -0
- package/dist/infra/json-file.js +21 -0
- package/dist/infra/machine-name.js +40 -0
- package/dist/infra/nexus-root.js +56 -0
- package/dist/infra/node-pairing.js +212 -0
- package/dist/infra/path-env.js +93 -0
- package/dist/infra/ports.js +87 -0
- package/dist/infra/provider-summary.js +80 -0
- package/dist/infra/provider-usage.auth.js +189 -0
- package/dist/infra/provider-usage.fetch.claude.js +129 -0
- package/dist/infra/provider-usage.fetch.codex.js +62 -0
- package/dist/infra/provider-usage.fetch.copilot.js +42 -0
- package/dist/infra/provider-usage.fetch.gemini.js +57 -0
- package/dist/infra/provider-usage.fetch.js +6 -0
- package/dist/infra/provider-usage.fetch.minimax.js +214 -0
- package/dist/infra/provider-usage.fetch.shared.js +11 -0
- package/dist/infra/provider-usage.fetch.zai.js +62 -0
- package/dist/infra/provider-usage.format.js +77 -0
- package/dist/infra/provider-usage.js +145 -0
- package/dist/infra/provider-usage.load.js +54 -0
- package/dist/infra/provider-usage.shared.js +19 -0
- package/dist/infra/provider-usage.types.js +1 -0
- package/dist/infra/restart.js +29 -0
- package/dist/infra/retry.js +16 -0
- package/dist/infra/runtime-guard.js +59 -0
- package/dist/infra/shell-env.js +88 -0
- package/dist/infra/system-events.js +71 -0
- package/dist/infra/system-presence.js +217 -0
- package/dist/infra/tailnet.js +46 -0
- package/dist/infra/tailscale.js +149 -0
- package/dist/infra/unhandled-rejections.js +19 -0
- package/dist/infra/usage-suggestions.js +241 -0
- package/dist/infra/usage-upload.js +290 -0
- package/dist/infra/voicewake.js +78 -0
- package/dist/infra/widearea-dns.js +123 -0
- package/dist/infra/ws.js +13 -0
- package/dist/logger.js +52 -0
- package/dist/logging.js +506 -0
- package/dist/macos/gateway-daemon.js +145 -0
- package/dist/macos/relay.js +49 -0
- package/dist/media/constants.js +33 -0
- package/dist/media/host.js +42 -0
- package/dist/media/image-ops.js +119 -0
- package/dist/media/mime.js +123 -0
- package/dist/media/parse.js +83 -0
- package/dist/media/server.js +64 -0
- package/dist/media/store.js +139 -0
- package/dist/polls.js +43 -0
- package/dist/process/command-queue.js +97 -0
- package/dist/process/exec.js +75 -0
- package/dist/provider-web.js +8 -0
- package/dist/providers/github-copilot-auth.js +123 -0
- package/dist/providers/github-copilot-models.js +35 -0
- package/dist/providers/github-copilot-token.js +11 -0
- package/dist/providers/location.js +48 -0
- package/dist/providers/web/index.js +2 -0
- package/dist/runtime.js +8 -0
- package/dist/sessions/level-overrides.js +9 -0
- package/dist/sessions/send-policy.js +68 -0
- package/dist/signal/client.js +134 -0
- package/dist/signal/daemon.js +69 -0
- package/dist/signal/index.js +3 -0
- package/dist/signal/monitor.js +411 -0
- package/dist/signal/probe.js +46 -0
- package/dist/signal/send.js +91 -0
- package/dist/slack/actions.js +97 -0
- package/dist/slack/index.js +5 -0
- package/dist/slack/monitor.js +1270 -0
- package/dist/slack/probe.js +47 -0
- package/dist/slack/send.js +131 -0
- package/dist/slack/token.js +10 -0
- package/dist/telegram/allowed-updates.js +8 -0
- package/dist/telegram/bot.js +724 -0
- package/dist/telegram/download.js +34 -0
- package/dist/telegram/index.js +4 -0
- package/dist/telegram/monitor.js +47 -0
- package/dist/telegram/pairing-store.js +77 -0
- package/dist/telegram/probe.js +63 -0
- package/dist/telegram/proxy.js +9 -0
- package/dist/telegram/reaction-level.js +45 -0
- package/dist/telegram/send.js +151 -0
- package/dist/telegram/sent-message-cache.js +65 -0
- package/dist/telegram/token.js +30 -0
- package/dist/telegram/update-offset-store.js +61 -0
- package/dist/telegram/webhook-set.js +12 -0
- package/dist/telegram/webhook.js +56 -0
- package/dist/tui/commands.js +87 -0
- package/dist/tui/components/assistant-message.js +16 -0
- package/dist/tui/components/chat-log.js +92 -0
- package/dist/tui/components/custom-editor.js +55 -0
- package/dist/tui/components/selectors.js +8 -0
- package/dist/tui/components/tool-execution.js +111 -0
- package/dist/tui/components/user-message.js +17 -0
- package/dist/tui/gateway-chat.js +140 -0
- package/dist/tui/theme/theme.js +80 -0
- package/dist/tui/tui.js +708 -0
- package/dist/utils.js +153 -0
- package/dist/version.js +18 -0
- package/dist/web/accounts.js +86 -0
- package/dist/web/active-listener.js +25 -0
- package/dist/web/auto-reply.js +1256 -0
- package/dist/web/inbound.js +649 -0
- package/dist/web/login-qr.js +230 -0
- package/dist/web/login.js +71 -0
- package/dist/web/media.js +175 -0
- package/dist/web/outbound.js +102 -0
- package/dist/web/qr-image.js +97 -0
- package/dist/web/reconnect.js +60 -0
- package/dist/web/session.js +370 -0
- package/dist/wizard/clack-prompter.js +56 -0
- package/dist/wizard/onboarding.js +620 -0
- package/dist/wizard/prompts.js +6 -0
- package/dist/wizard/session.js +203 -0
- package/docs/AGENTS.default.md +116 -0
- package/docs/CAPABILITIES.md +444 -0
- package/docs/CNAME +1 -0
- package/docs/NEXUS_CORE_REWRITE_SPEC.md +226 -0
- package/docs/RELEASING.md +69 -0
- package/docs/_config.yml +53 -0
- package/docs/_layouts/default.html +145 -0
- package/docs/agent-assisted-install.md +95 -0
- package/docs/agent-loop.md +61 -0
- package/docs/agent-send.md +21 -0
- package/docs/agent.md +108 -0
- package/docs/android.md +133 -0
- package/docs/architecture.md +114 -0
- package/docs/assets/markdown.css +133 -0
- package/docs/assets/pixel-lobster.svg +60 -0
- package/docs/assets/terminal.css +470 -0
- package/docs/assets/theme.js +55 -0
- package/docs/audio.md +48 -0
- package/docs/automation/nexus-sync.md +371 -0
- package/docs/background-process.md +74 -0
- package/docs/bash.md +32 -0
- package/docs/bedrock.md +71 -0
- package/docs/bonjour.md +159 -0
- package/docs/browser-linux-troubleshooting.md +114 -0
- package/docs/browser.md +293 -0
- package/docs/bun.md +56 -0
- package/docs/camera.md +152 -0
- package/docs/clawd.md +212 -0
- package/docs/concepts/usage-tracking.md +29 -0
- package/docs/configuration.md +1666 -0
- package/docs/control-ui.md +83 -0
- package/docs/cron.md +385 -0
- package/docs/dashboard.md +17 -0
- package/docs/device-models.md +46 -0
- package/docs/discord.md +308 -0
- package/docs/discovery.md +112 -0
- package/docs/docker.md +258 -0
- package/docs/docs.json +105 -0
- package/docs/doctor.md +68 -0
- package/docs/elevated.md +31 -0
- package/docs/faq.md +736 -0
- package/docs/feature-inventory/overview.md +141 -0
- package/docs/feature-inventory/rollout-checklist.md +53 -0
- package/docs/feature-inventory/test-matrix.md +87 -0
- package/docs/feature-inventory.md +9 -0
- package/docs/gateway/configuration-examples.md +221 -0
- package/docs/gateway/configuration.md +172 -0
- package/docs/gateway/cron.md +61 -0
- package/docs/gateway/heartbeat.md +207 -0
- package/docs/gateway/pairing.md +109 -0
- package/docs/gateway-lock.md +28 -0
- package/docs/gateway.md +227 -0
- package/docs/gmail-pubsub.md +191 -0
- package/docs/grammy.md +27 -0
- package/docs/group-messages.md +73 -0
- package/docs/groups.md +130 -0
- package/docs/health.md +28 -0
- package/docs/heartbeat.md +73 -0
- package/docs/home-userspace.md +277 -0
- package/docs/hubs.md +148 -0
- package/docs/images.md +51 -0
- package/docs/imessage.md +94 -0
- package/docs/index.md +196 -0
- package/docs/ios.md +372 -0
- package/docs/linux.md +11 -0
- package/docs/location-command.md +95 -0
- package/docs/location.md +46 -0
- package/docs/logging.md +110 -0
- package/docs/lore.md +131 -0
- package/docs/mac/bun.md +133 -0
- package/docs/mac/canvas.md +161 -0
- package/docs/mac/child-process.md +72 -0
- package/docs/mac/dev-setup.md +81 -0
- package/docs/mac/health.md +28 -0
- package/docs/mac/icon.md +26 -0
- package/docs/mac/logging.md +51 -0
- package/docs/mac/menu-bar.md +69 -0
- package/docs/mac/peekaboo.md +170 -0
- package/docs/mac/permissions.md +40 -0
- package/docs/mac/release.md +76 -0
- package/docs/mac/remote.md +57 -0
- package/docs/mac/signing.md +41 -0
- package/docs/mac/skills.md +27 -0
- package/docs/mac/voice-overlay.md +52 -0
- package/docs/mac/voicewake.md +56 -0
- package/docs/mac/webchat.md +27 -0
- package/docs/mac/xpc.md +40 -0
- package/docs/macos.md +104 -0
- package/docs/model-failover.md +75 -0
- package/docs/models.md +91 -0
- package/docs/multi-agent.md +74 -0
- package/docs/nix.md +95 -0
- package/docs/nodes.md +157 -0
- package/docs/onboarding-config-protocol.md +34 -0
- package/docs/onboarding.md +189 -0
- package/docs/pairing.md +85 -0
- package/docs/plans/cron-add-hardening.md +72 -0
- package/docs/plans/group-policy-hardening.md +121 -0
- package/docs/poll.md +52 -0
- package/docs/prereqs.md +67 -0
- package/docs/presence.md +133 -0
- package/docs/proposals/model-config.md +147 -0
- package/docs/provider-routing.md +25 -0
- package/docs/queue.md +78 -0
- package/docs/reference/templates/AGENTS.md +164 -0
- package/docs/remote-gateway-readme.md +153 -0
- package/docs/remote.md +61 -0
- package/docs/research/memory.md +227 -0
- package/docs/rpc.md +35 -0
- package/docs/security.md +200 -0
- package/docs/session-ingestion.md +119 -0
- package/docs/session-tool.md +154 -0
- package/docs/session.md +85 -0
- package/docs/sessions.md +8 -0
- package/docs/setup.md +131 -0
- package/docs/showcase.md +37 -0
- package/docs/signal.md +122 -0
- package/docs/skills-config.md +58 -0
- package/docs/skills.md +153 -0
- package/docs/slack.md +221 -0
- package/docs/subagents.md +72 -0
- package/docs/tailscale.md +71 -0
- package/docs/talk.md +79 -0
- package/docs/telegram.md +96 -0
- package/docs/templates/AGENTS.md +286 -0
- package/docs/templates/BOOTSTRAP.md +35 -0
- package/docs/templates/IDENTITY.md +17 -0
- package/docs/templates/PROFILE.md +14 -0
- package/docs/templates/SOUL.md +41 -0
- package/docs/templates/TOOLS.md +41 -0
- package/docs/templates/USER.md +8 -0
- package/docs/test.md +43 -0
- package/docs/testing-onboarding-quickstart.md +76 -0
- package/docs/testing-philosophy.md +211 -0
- package/docs/thinking.md +46 -0
- package/docs/timezone.md +40 -0
- package/docs/tools.md +346 -0
- package/docs/troubleshooting.md +257 -0
- package/docs/tui.md +71 -0
- package/docs/typebox.md +42 -0
- package/docs/updating.md +138 -0
- package/docs/usage-cloud-aggregation-spec.md +133 -0
- package/docs/usage-suggestions-pipeline.md +126 -0
- package/docs/voicewake.md +61 -0
- package/docs/web.md +115 -0
- package/docs/webchat.md +34 -0
- package/docs/webhook.md +132 -0
- package/docs/whatsapp-clawd.jpg +0 -0
- package/docs/whatsapp.md +170 -0
- package/docs/windows.md +11 -0
- package/docs/wizard.md +167 -0
- package/package.json +209 -0
- package/skills/1password/SKILL.md +54 -0
- package/skills/1password/docs/setup.md +85 -0
- package/skills/1password/docs/troubleshooting.md +63 -0
- package/skills/1password/references/cli-examples.md +29 -0
- package/skills/1password/references/get-started.md +17 -0
- package/skills/agent-browser/SKILL.md +450 -0
- package/skills/agent-browser/docs/browser-use-eval.md +95 -0
- package/skills/agent-browser/docs/first-tests.md +261 -0
- package/skills/agent-browser/docs/wordle-nyt-eval.js +32 -0
- package/skills/aix/SKILL.md +93 -0
- package/skills/aix/docs/embeddings.md +40 -0
- package/skills/aix/docs/setup.md +58 -0
- package/skills/aix/docs/troubleshooting.md +41 -0
- package/skills/aix/references/sql.md +48 -0
- package/skills/apple-notes/SKILL.md +50 -0
- package/skills/apple-reminders/SKILL.md +67 -0
- package/skills/bear-notes/SKILL.md +79 -0
- package/skills/bird/SKILL.md +32 -0
- package/skills/bird/docs/auth.md +31 -0
- package/skills/bird/docs/troubleshooting.md +31 -0
- package/skills/blogwatcher/SKILL.md +46 -0
- package/skills/blucli/SKILL.md +27 -0
- package/skills/brave-search/SKILL.md +36 -0
- package/skills/brave-search/docs/setup.md +40 -0
- package/skills/brave-search/docs/troubleshooting.md +37 -0
- package/skills/brave-search/docs/usage.md +28 -0
- package/skills/brave-search/scripts/content.mjs +53 -0
- package/skills/brave-search/scripts/search.mjs +79 -0
- package/skills/browser-use-agent-sdk/SKILL.md +90 -0
- package/skills/camsnap/SKILL.md +25 -0
- package/skills/clawdhub/SKILL.md +53 -0
- package/skills/coding-agent/SKILL.md +274 -0
- package/skills/comms/SKILL.md +249 -0
- package/skills/comms/docs/adapters.md +54 -0
- package/skills/comms/docs/setup.md +56 -0
- package/skills/comms/docs/troubleshooting.md +44 -0
- package/skills/comms/references/schema.md +49 -0
- package/skills/computer-use/SKILL.md +204 -0
- package/skills/computer-use/docs/open-interpreter.md +26 -0
- package/skills/computer-use/docs/peekaboo.md +26 -0
- package/skills/computer-use/docs/setup.md +47 -0
- package/skills/computer-use/docs/troubleshooting.md +33 -0
- package/skills/discord/SKILL.md +370 -0
- package/skills/eightctl/SKILL.md +29 -0
- package/skills/eve/SKILL.md +215 -0
- package/skills/eve/docs/dual-account.md +84 -0
- package/skills/eve/docs/intelligence.md +58 -0
- package/skills/eve/docs/setup.md +60 -0
- package/skills/eve/docs/troubleshooting.md +54 -0
- package/skills/eve/scripts/setup-dual-account.sh +125 -0
- package/skills/filesystem/SKILL.md +217 -0
- package/skills/food-order/SKILL.md +41 -0
- package/skills/gemini/SKILL.md +23 -0
- package/skills/gh/SKILL.md +22 -0
- package/skills/gh/docs/usage.md +41 -0
- package/skills/gifgrep/SKILL.md +47 -0
- package/skills/github/SKILL.md +26 -0
- package/skills/github/docs/setup.md +21 -0
- package/skills/github/docs/troubleshooting.md +24 -0
- package/skills/gog/SKILL.md +104 -0
- package/skills/gog/docs/portability.md +94 -0
- package/skills/gog/docs/setup.md +76 -0
- package/skills/gog/docs/troubleshooting.md +94 -0
- package/skills/gog/scripts/cdp/README.md +90 -0
- package/skills/gog/scripts/cdp/add_test_users.py +69 -0
- package/skills/gog/scripts/cdp/auth_add_accounts.py +209 -0
- package/skills/gog/scripts/cdp/auth_add_accounts_manual.py +206 -0
- package/skills/gog/scripts/cdp/create_oauth_client.py +165 -0
- package/skills/gog/scripts/cdp/launch_cdp_chrome.sh +58 -0
- package/skills/google-oauth/SKILL.md +94 -0
- package/skills/goplaces/SKILL.md +30 -0
- package/skills/imsg/SKILL.md +25 -0
- package/skills/json-render/SKILL.md +154 -0
- package/skills/json-render/assets/components/README.md +21 -0
- package/skills/json-render/assets/components/catalog.ts +78 -0
- package/skills/json-render/assets/components/registry.tsx +172 -0
- package/skills/json-render/assets/demo/App.css +397 -0
- package/skills/json-render/assets/demo/App.tsx +897 -0
- package/skills/json-render/assets/demo/README.md +22 -0
- package/skills/json-render/assets/demo/catalog.ts +78 -0
- package/skills/json-render/assets/demo/data/nexus-core.json +31 -0
- package/skills/json-render/assets/demo/index.css +27 -0
- package/skills/json-render/assets/demo/registry.tsx +150 -0
- package/skills/json-render/docs/nexus-state-demo.md +84 -0
- package/skills/json-render/docs/shadcn-preset.md +33 -0
- package/skills/json-render/scripts/create-vite-demo.sh +45 -0
- package/skills/json-render/scripts/llm-server/README.md +33 -0
- package/skills/json-render/scripts/llm-server/catalog.ts +78 -0
- package/skills/json-render/scripts/llm-server/package-lock.json +702 -0
- package/skills/json-render/scripts/llm-server/package.json +18 -0
- package/skills/json-render/scripts/llm-server/server.ts +285 -0
- package/skills/local-places/SERVER_README.md +101 -0
- package/skills/local-places/SKILL.md +91 -0
- package/skills/local-places/pyproject.toml +27 -0
- package/skills/local-places/src/local_places/__init__.py +2 -0
- package/skills/local-places/src/local_places/__pycache__/__init__.cpython-314.pyc +0 -0
- package/skills/local-places/src/local_places/__pycache__/google_places.cpython-314.pyc +0 -0
- package/skills/local-places/src/local_places/__pycache__/main.cpython-314.pyc +0 -0
- package/skills/local-places/src/local_places/__pycache__/schemas.cpython-314.pyc +0 -0
- package/skills/local-places/src/local_places/google_places.py +314 -0
- package/skills/local-places/src/local_places/main.py +65 -0
- package/skills/local-places/src/local_places/schemas.py +107 -0
- package/skills/mcporter/SKILL.md +38 -0
- package/skills/model-usage/SKILL.md +45 -0
- package/skills/model-usage/references/codexbar-cli.md +28 -0
- package/skills/model-usage/scripts/model_usage.py +310 -0
- package/skills/nano-banana-pro/SKILL.md +30 -0
- package/skills/nano-banana-pro/scripts/generate_image.py +169 -0
- package/skills/nano-pdf/SKILL.md +20 -0
- package/skills/nexus-cloud/SKILL.md +53 -0
- package/skills/nexus-cloud/docs/security.md +24 -0
- package/skills/nexus-cloud/docs/setup.md +51 -0
- package/skills/nexus-cloud/docs/troubleshooting.md +28 -0
- package/skills/notion/SKILL.md +156 -0
- package/skills/obsidian/SKILL.md +55 -0
- package/skills/onboarding/SKILL.md +515 -0
- package/skills/onboarding/docs/CAPABILITIES.md +444 -0
- package/skills/onboarding/docs/CAPABILITY_TAXONOMY.md +608 -0
- package/skills/onboarding/docs/CLI_GRAMMAR.md +797 -0
- package/skills/onboarding/docs/CLI_GRAMMAR_CREDENTIALS.md +632 -0
- package/skills/onboarding/docs/CLI_GRAMMAR_ONBOARDING.md +815 -0
- package/skills/onboarding/docs/CLI_GRAMMAR_SKILLS.md +449 -0
- package/skills/onboarding/docs/DOCUMENTATION_OVERVIEW.md +290 -0
- package/skills/onboarding/docs/ENTITY_MODEL.md +582 -0
- package/skills/onboarding/docs/GOAL_STATE_ARCHITECTURE.md +395 -0
- package/skills/onboarding/docs/NEXUS_SYSTEM_OVERVIEW.md +476 -0
- package/skills/onboarding/docs/SKILLS_HUB_SPEC.md +477 -0
- package/skills/onboarding/docs/SKILLS_SPECIFICATION.md +947 -0
- package/skills/onboarding/docs/SKILL_GATEWAY_DESIGN.md +702 -0
- package/skills/onboarding/docs/SKILL_GATEWAY_PRD.md +278 -0
- package/skills/onboarding/docs/SKILL_INVENTORY.md +266 -0
- package/skills/onboarding/docs/STATE_ARCHITECTURE.md +547 -0
- package/skills/onboarding/docs/TROUBLESHOOTING.md +363 -0
- package/skills/onboarding/docs/USER_JOURNEY.md +797 -0
- package/skills/onboarding/docs/WOW_MOMENTS.md +232 -0
- package/skills/onboarding/docs/agent-apple-id.md +289 -0
- package/skills/onboarding/docs/skill-deep-dives/1password.md +367 -0
- package/skills/onboarding/docs/skill-deep-dives/TEMPLATE.md +197 -0
- package/skills/onboarding/docs/skill-deep-dives/aix.md +498 -0
- package/skills/onboarding/docs/skill-deep-dives/bird.md +357 -0
- package/skills/onboarding/docs/skill-deep-dives/brave-search.md +601 -0
- package/skills/onboarding/docs/skill-deep-dives/comms.md +607 -0
- package/skills/onboarding/docs/skill-deep-dives/computer-use.md +599 -0
- package/skills/onboarding/docs/skill-deep-dives/cron-and-heartbeat.md +576 -0
- package/skills/onboarding/docs/skill-deep-dives/eve.md +711 -0
- package/skills/onboarding/docs/skill-deep-dives/github.md +333 -0
- package/skills/onboarding/docs/skill-deep-dives/gog.md +640 -0
- package/skills/onboarding/docs/skill-deep-dives/homebrew-prereqs.md +785 -0
- package/skills/onboarding/docs/skill-deep-dives/nexus-cloud.md +689 -0
- package/skills/onboarding/docs/skill-deep-dives/qmd.md +742 -0
- package/skills/onboarding/docs/skill-deep-dives/telegram.md +379 -0
- package/skills/onboarding/docs/skill-deep-dives/wacli.md +399 -0
- package/skills/onboarding/docs/skill-deep-dives/weather.md +513 -0
- package/skills/onboarding/scripts/ralph/prd.json +215 -0
- package/skills/onboarding/scripts/ralph/progress.txt +99 -0
- package/skills/onboarding/scripts/ralph/prompt.md +87 -0
- package/skills/onboarding/scripts/ralph/ralph.log +84 -0
- package/skills/onboarding/scripts/ralph/ralph.sh +45 -0
- package/skills/onboarding/scripts/setup-cursor-skills.sh +40 -0
- package/skills/openai-image-gen/SKILL.md +31 -0
- package/skills/openai-image-gen/scripts/gen.py +173 -0
- package/skills/openai-whisper/SKILL.md +19 -0
- package/skills/openai-whisper-api/SKILL.md +43 -0
- package/skills/openai-whisper-api/scripts/transcribe.sh +85 -0
- package/skills/openhue/SKILL.md +30 -0
- package/skills/oracle/SKILL.md +105 -0
- package/skills/ordercli/SKILL.md +47 -0
- package/skills/peekaboo/SKILL.md +153 -0
- package/skills/qmd/SKILL.md +32 -0
- package/skills/qmd/docs/mcp.md +30 -0
- package/skills/qmd/docs/ollama.md +42 -0
- package/skills/qmd/docs/setup.md +44 -0
- package/skills/sag/SKILL.md +62 -0
- package/skills/skill-cli-template/SKILL.md +109 -0
- package/skills/skill-creator/scripts/__pycache__/quick_validate.cpython-311.pyc +0 -0
- package/skills/slack/SKILL.md +144 -0
- package/skills/songsee/SKILL.md +29 -0
- package/skills/sonoscli/SKILL.md +26 -0
- package/skills/spotify-player/SKILL.md +34 -0
- package/skills/summarize/SKILL.md +49 -0
- package/skills/telegram/SKILL.md +20 -0
- package/skills/telegram/docs/pairing.md +30 -0
- package/skills/telegram/docs/setup.md +41 -0
- package/skills/telegram/docs/webhook.md +17 -0
- package/skills/things-mac/SKILL.md +61 -0
- package/skills/tmux/SKILL.md +121 -0
- package/skills/tmux/scripts/find-sessions.sh +112 -0
- package/skills/tmux/scripts/wait-for-text.sh +83 -0
- package/skills/trello/SKILL.md +84 -0
- package/skills/upstream-sync/SKILL.md +151 -0
- package/skills/upstream-sync/scripts/auto-port.sh +227 -0
- package/skills/upstream-sync/scripts/check-all.sh +88 -0
- package/skills/upstream-sync/scripts/check-nexus.sh +146 -0
- package/skills/upstream-sync/scripts/check-pi-ai.sh +129 -0
- package/skills/video-frames/SKILL.md +29 -0
- package/skills/video-frames/scripts/frame.sh +81 -0
- package/skills/wacli/SKILL.md +48 -0
- package/skills/wacli/docs/auth.md +21 -0
- package/skills/wacli/docs/backup.md +9 -0
- package/skills/wacli/docs/troubleshooting.md +21 -0
- package/skills/weather/SKILL.md +53 -0
- package/skills/weather/docs/usage.md +40 -0
|
@@ -0,0 +1,742 @@
|
|
|
1
|
+
# Skill Deep-Dive: qmd
|
|
2
|
+
|
|
3
|
+
**Skill**: `qmd`
|
|
4
|
+
**Category**: Code/Productivity (Local Search & Indexing)
|
|
5
|
+
**Setup Difficulty**: 🟡 Medium
|
|
6
|
+
**Time Estimate**: ~10 minutes
|
|
7
|
+
**Platform**: Cross-platform (macOS, Windows, Linux)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## What It Enables
|
|
12
|
+
|
|
13
|
+
| Capability | Description | Example |
|
|
14
|
+
|------------|-------------|---------|
|
|
15
|
+
| BM25 search | Fast keyword search across indexed files | `qmd search "authentication"` |
|
|
16
|
+
| Vector search | Semantic search (meaning-based) | `qmd vsearch "how to login"` |
|
|
17
|
+
| Hybrid search | Combined BM25 + vector + rerank | `qmd query "OAuth flow"` |
|
|
18
|
+
| Collection management | Index specific directories with file masks | `qmd collection add ~/docs --name docs --mask "**/*.md"` |
|
|
19
|
+
| Document retrieval | Get specific document with context | `qmd get docs/api.md:10 -l 40` |
|
|
20
|
+
| MCP mode | Model Context Protocol server | `qmd mcp` |
|
|
21
|
+
| Ollama integration | Local embeddings and reranking | Uses Ollama for vector generation |
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Dependencies
|
|
26
|
+
|
|
27
|
+
### Hard Dependencies (Required)
|
|
28
|
+
- [ ] `node` + `npm` — For installing qmd
|
|
29
|
+
- [ ] `git` — For npm package installation from GitHub
|
|
30
|
+
|
|
31
|
+
### Soft Dependencies (Recommended)
|
|
32
|
+
- [ ] `ollama` — For vector search and reranking (optional but recommended)
|
|
33
|
+
- [ ] Ollama models — For embeddings (e.g., `nomic-embed-text`)
|
|
34
|
+
|
|
35
|
+
### This Skill Enables
|
|
36
|
+
- [ ] Semantic code search — Find code by meaning, not just keywords
|
|
37
|
+
- [ ] Documentation indexing — Search project docs quickly
|
|
38
|
+
- [ ] Knowledge base — Index personal notes, wikis, etc.
|
|
39
|
+
- [ ] AI context — Provide relevant docs to AI agents via MCP
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Installation
|
|
44
|
+
|
|
45
|
+
### Prerequisites Check
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
# Check for Node.js
|
|
49
|
+
which node && node --version || echo "❌ Need Node.js"
|
|
50
|
+
|
|
51
|
+
# Check for npm
|
|
52
|
+
which npm && npm --version || echo "❌ Need npm"
|
|
53
|
+
|
|
54
|
+
# Check for git
|
|
55
|
+
which git && echo "✅ git available"
|
|
56
|
+
|
|
57
|
+
# Optional: Check for Ollama (for vector search)
|
|
58
|
+
which ollama && echo "✅ Ollama available" || echo "⚠️ Ollama not installed (vector search disabled)"
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Installation Steps
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
# Install qmd from GitHub
|
|
65
|
+
npm install -g https://github.com/tobi/qmd
|
|
66
|
+
|
|
67
|
+
# Verify installation
|
|
68
|
+
qmd --version
|
|
69
|
+
|
|
70
|
+
# Check installation location
|
|
71
|
+
which qmd
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Verification
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
# Verify qmd is accessible
|
|
78
|
+
qmd --version
|
|
79
|
+
|
|
80
|
+
# Check default config location
|
|
81
|
+
ls ~/.cache/qmd && echo "✅ Cache directory exists" || echo "Will be created on first use"
|
|
82
|
+
|
|
83
|
+
# Test Ollama connection (optional)
|
|
84
|
+
if which ollama > /dev/null; then
|
|
85
|
+
curl -s http://localhost:11434/api/tags > /dev/null && echo "✅ Ollama reachable" || echo "⚠️ Start Ollama: ollama serve"
|
|
86
|
+
fi
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Configuration
|
|
92
|
+
|
|
93
|
+
### Step 1: Start Ollama (Optional - For Vector Search)
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
# Check if Ollama is running
|
|
97
|
+
curl -s http://localhost:11434/api/tags > /dev/null && echo "✅ Ollama running"
|
|
98
|
+
|
|
99
|
+
# If not running, start it
|
|
100
|
+
ollama serve &
|
|
101
|
+
|
|
102
|
+
# Pull embedding model
|
|
103
|
+
ollama pull nomic-embed-text
|
|
104
|
+
|
|
105
|
+
# Pull reranking model (optional)
|
|
106
|
+
ollama pull mixedbread-ai/mxbai-rerank-large-v1
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Step 2: Set Ollama URL (If Non-Default)
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
# Default is http://localhost:11434
|
|
113
|
+
# To use different URL:
|
|
114
|
+
export OLLAMA_URL="http://your-ollama-server:11434"
|
|
115
|
+
|
|
116
|
+
# Add to shell profile for persistence
|
|
117
|
+
echo 'export OLLAMA_URL="http://localhost:11434"' >> ~/.zshrc
|
|
118
|
+
source ~/.zshrc
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Step 3: Add Your First Collection
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
# Index Markdown files in a directory
|
|
125
|
+
qmd collection add ~/Documents/notes --name notes --mask "**/*.md"
|
|
126
|
+
|
|
127
|
+
# Index code in a project
|
|
128
|
+
qmd collection add ~/projects/myapp --name myapp --mask "**/*.{js,ts,py}"
|
|
129
|
+
|
|
130
|
+
# Index multiple file types
|
|
131
|
+
qmd collection add ~/nexus --name nexus --mask "**/*.{md,js,ts,yaml,json}"
|
|
132
|
+
|
|
133
|
+
# List collections
|
|
134
|
+
qmd collection list
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Step 4: Build Index
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
# Update index for all collections
|
|
141
|
+
qmd update
|
|
142
|
+
|
|
143
|
+
# This will:
|
|
144
|
+
# 1. Scan directories for matching files
|
|
145
|
+
# 2. Extract text content
|
|
146
|
+
# 3. Build BM25 index
|
|
147
|
+
# 4. Generate embeddings (if Ollama available)
|
|
148
|
+
|
|
149
|
+
# Check status
|
|
150
|
+
qmd status
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Verification
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
# Check collections
|
|
157
|
+
qmd collection list
|
|
158
|
+
|
|
159
|
+
# Check index status
|
|
160
|
+
qmd status
|
|
161
|
+
|
|
162
|
+
# Test search
|
|
163
|
+
qmd search "test query"
|
|
164
|
+
|
|
165
|
+
# Test vector search (requires Ollama)
|
|
166
|
+
qmd vsearch "test query"
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## User Actions Required
|
|
172
|
+
|
|
173
|
+
No manual system permissions required! All operations are file-based.
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Common Failure Points
|
|
178
|
+
|
|
179
|
+
### Failure: "command not found: qmd"
|
|
180
|
+
|
|
181
|
+
**Symptom**: Shell can't find qmd after installation
|
|
182
|
+
|
|
183
|
+
**Cause**: npm global bin directory not in PATH
|
|
184
|
+
|
|
185
|
+
**Recovery**:
|
|
186
|
+
```bash
|
|
187
|
+
# Find npm global bin directory
|
|
188
|
+
npm config get prefix
|
|
189
|
+
|
|
190
|
+
# Add to PATH (if not already)
|
|
191
|
+
# For npm prefix at /usr/local:
|
|
192
|
+
export PATH="/usr/local/bin:$PATH"
|
|
193
|
+
|
|
194
|
+
# Or for user-local npm:
|
|
195
|
+
export PATH="$HOME/.npm-global/bin:$PATH"
|
|
196
|
+
|
|
197
|
+
# Add to shell profile
|
|
198
|
+
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.zshrc
|
|
199
|
+
source ~/.zshrc
|
|
200
|
+
|
|
201
|
+
# Verify
|
|
202
|
+
which qmd
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
**Prevention**: Ensure npm global bin is in PATH before installing
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
### Failure: "Ollama connection refused"
|
|
210
|
+
|
|
211
|
+
**Symptom**: Vector search fails with connection error
|
|
212
|
+
|
|
213
|
+
**Cause**: Ollama not running
|
|
214
|
+
|
|
215
|
+
**Recovery**:
|
|
216
|
+
```bash
|
|
217
|
+
# Check if Ollama is running
|
|
218
|
+
curl -s http://localhost:11434/api/tags
|
|
219
|
+
|
|
220
|
+
# If not, start Ollama
|
|
221
|
+
ollama serve &
|
|
222
|
+
|
|
223
|
+
# Wait a moment for startup
|
|
224
|
+
sleep 2
|
|
225
|
+
|
|
226
|
+
# Test again
|
|
227
|
+
curl -s http://localhost:11434/api/tags
|
|
228
|
+
|
|
229
|
+
# Try vector search
|
|
230
|
+
qmd vsearch "test query"
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
**Prevention**: Start Ollama before using vector search features
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
### Failure: "No collections found"
|
|
238
|
+
|
|
239
|
+
**Symptom**: Search returns no results
|
|
240
|
+
|
|
241
|
+
**Cause**: No collections added or index not built
|
|
242
|
+
|
|
243
|
+
**Recovery**:
|
|
244
|
+
```bash
|
|
245
|
+
# Check collections
|
|
246
|
+
qmd collection list
|
|
247
|
+
|
|
248
|
+
# If empty, add a collection
|
|
249
|
+
qmd collection add ~/Documents --name docs --mask "**/*.md"
|
|
250
|
+
|
|
251
|
+
# Update index
|
|
252
|
+
qmd update
|
|
253
|
+
|
|
254
|
+
# Verify
|
|
255
|
+
qmd status
|
|
256
|
+
|
|
257
|
+
# Try search again
|
|
258
|
+
qmd search "test"
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
**Prevention**: Add collections and build index before searching
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
### Failure: "Index out of date"
|
|
266
|
+
|
|
267
|
+
**Symptom**: Recent files not appearing in search results
|
|
268
|
+
|
|
269
|
+
**Cause**: Index not updated after file changes
|
|
270
|
+
|
|
271
|
+
**Recovery**:
|
|
272
|
+
```bash
|
|
273
|
+
# Rebuild index
|
|
274
|
+
qmd update
|
|
275
|
+
|
|
276
|
+
# For large collections, this may take a few minutes
|
|
277
|
+
# Watch progress in terminal
|
|
278
|
+
|
|
279
|
+
# Verify
|
|
280
|
+
qmd status
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
**Prevention**: Run `qmd update` regularly or schedule via cron
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
### Failure: Vector search returns no results
|
|
288
|
+
|
|
289
|
+
**Symptom**: `qmd vsearch` returns empty results
|
|
290
|
+
|
|
291
|
+
**Cause**: Embeddings not generated (Ollama not available during indexing)
|
|
292
|
+
|
|
293
|
+
**Recovery**:
|
|
294
|
+
```bash
|
|
295
|
+
# Ensure Ollama is running
|
|
296
|
+
ollama serve &
|
|
297
|
+
|
|
298
|
+
# Pull embedding model if missing
|
|
299
|
+
ollama pull nomic-embed-text
|
|
300
|
+
|
|
301
|
+
# Rebuild index with embeddings
|
|
302
|
+
qmd update
|
|
303
|
+
|
|
304
|
+
# Try vector search again
|
|
305
|
+
qmd vsearch "your query"
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
**Prevention**: Install and start Ollama before first indexing
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
312
|
+
## Automation Opportunities
|
|
313
|
+
|
|
314
|
+
| Step | Automatable? | Tool | Notes |
|
|
315
|
+
|------|--------------|------|-------|
|
|
316
|
+
| Install qmd | ✅ Yes | bash | `npm install -g https://github.com/tobi/qmd` |
|
|
317
|
+
| Start Ollama | ✅ Yes | bash | `ollama serve &` |
|
|
318
|
+
| Add collections | ✅ Yes | bash | `qmd collection add ...` |
|
|
319
|
+
| Build index | ✅ Yes | bash | `qmd update` |
|
|
320
|
+
| Search | ✅ Yes | bash | `qmd search "query"` |
|
|
321
|
+
| Schedule updates | ✅ Yes | cron | Periodic `qmd update` |
|
|
322
|
+
| MCP server | ✅ Yes | bash | `qmd mcp` |
|
|
323
|
+
|
|
324
|
+
### Automation Script: Full Setup
|
|
325
|
+
|
|
326
|
+
```bash
|
|
327
|
+
#!/bin/bash
|
|
328
|
+
# Complete qmd setup automation
|
|
329
|
+
|
|
330
|
+
set -e
|
|
331
|
+
|
|
332
|
+
echo "Installing qmd..."
|
|
333
|
+
npm install -g https://github.com/tobi/qmd
|
|
334
|
+
|
|
335
|
+
echo "Checking for Ollama..."
|
|
336
|
+
if ! which ollama > /dev/null; then
|
|
337
|
+
echo "⚠️ Ollama not installed. Vector search will be disabled."
|
|
338
|
+
echo "Install with: curl -fsSL https://ollama.com/install.sh | sh"
|
|
339
|
+
else
|
|
340
|
+
echo "Starting Ollama..."
|
|
341
|
+
ollama serve &
|
|
342
|
+
sleep 2
|
|
343
|
+
|
|
344
|
+
echo "Pulling embedding model..."
|
|
345
|
+
ollama pull nomic-embed-text
|
|
346
|
+
fi
|
|
347
|
+
|
|
348
|
+
echo "Adding collections..."
|
|
349
|
+
# Customize these for your directories
|
|
350
|
+
qmd collection add ~/Documents --name docs --mask "**/*.md"
|
|
351
|
+
qmd collection add ~/nexus --name nexus --mask "**/*.{md,yaml,json}"
|
|
352
|
+
qmd collection add ~/projects --name projects --mask "**/*.{js,ts,py,go}"
|
|
353
|
+
|
|
354
|
+
echo "Building index..."
|
|
355
|
+
qmd update
|
|
356
|
+
|
|
357
|
+
echo "✅ qmd setup complete!"
|
|
358
|
+
echo ""
|
|
359
|
+
echo "Try it:"
|
|
360
|
+
echo " qmd search 'your query'"
|
|
361
|
+
echo " qmd vsearch 'semantic query'"
|
|
362
|
+
echo " qmd status"
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
### Scheduled Index Updates
|
|
366
|
+
|
|
367
|
+
```bash
|
|
368
|
+
# Add to cron or use nexus cron skill
|
|
369
|
+
# Update index every hour
|
|
370
|
+
0 * * * * /usr/local/bin/qmd update
|
|
371
|
+
|
|
372
|
+
# Or daily at 3 AM
|
|
373
|
+
0 3 * * * /usr/local/bin/qmd update
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
---
|
|
377
|
+
|
|
378
|
+
## Wow Moments
|
|
379
|
+
|
|
380
|
+
| Moment | What Happens | When to Demo |
|
|
381
|
+
|--------|--------------|--------------|
|
|
382
|
+
| Semantic search magic | Search "how to authenticate" finds code even if it doesn't contain those words | After first index build |
|
|
383
|
+
| Instant results | Search 10k+ files in milliseconds | When user has large codebase |
|
|
384
|
+
| Hybrid search | Combines keyword + semantic + rerank for best results | When showing advanced features |
|
|
385
|
+
| MCP integration | AI agents can search your docs automatically | When using with AI tools |
|
|
386
|
+
| Cross-project search | Find similar code patterns across all projects | When demonstrating power |
|
|
387
|
+
|
|
388
|
+
### Demo Script
|
|
389
|
+
|
|
390
|
+
```
|
|
391
|
+
Agent: "Let me show you qmd's power. First, I've indexed your documents and code:"
|
|
392
|
+
|
|
393
|
+
qmd status
|
|
394
|
+
|
|
395
|
+
Agent: "Now let's do a traditional keyword search:"
|
|
396
|
+
|
|
397
|
+
qmd search "authentication"
|
|
398
|
+
|
|
399
|
+
Agent: "That's fast, but watch what happens with semantic search. I'll search by meaning, not exact words:"
|
|
400
|
+
|
|
401
|
+
qmd vsearch "how do users log in"
|
|
402
|
+
|
|
403
|
+
Agent: "Notice it found authentication code even though I didn't use the word 'authentication'? That's semantic search - it understands meaning."
|
|
404
|
+
|
|
405
|
+
Agent: "And the most powerful feature - hybrid search combines both approaches and reranks results:"
|
|
406
|
+
|
|
407
|
+
qmd query "OAuth implementation"
|
|
408
|
+
|
|
409
|
+
Agent: "This gives you the best of both worlds: keyword precision + semantic understanding."
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
---
|
|
413
|
+
|
|
414
|
+
## Usage Examples
|
|
415
|
+
|
|
416
|
+
### Adding Collections
|
|
417
|
+
|
|
418
|
+
```bash
|
|
419
|
+
# Basic: Add directory with default mask (all files)
|
|
420
|
+
qmd collection add ~/Documents --name docs
|
|
421
|
+
|
|
422
|
+
# With file mask: Only Markdown files
|
|
423
|
+
qmd collection add ~/notes --name notes --mask "**/*.md"
|
|
424
|
+
|
|
425
|
+
# Multiple file types
|
|
426
|
+
qmd collection add ~/projects/app --name app --mask "**/*.{js,ts,jsx,tsx}"
|
|
427
|
+
|
|
428
|
+
# Exclude directories (use shell glob patterns)
|
|
429
|
+
qmd collection add ~/code --name code --mask "**/*.py" --exclude "**/node_modules/**"
|
|
430
|
+
|
|
431
|
+
# List all collections
|
|
432
|
+
qmd collection list
|
|
433
|
+
|
|
434
|
+
# Remove a collection
|
|
435
|
+
qmd collection remove docs
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
### Updating Index
|
|
439
|
+
|
|
440
|
+
```bash
|
|
441
|
+
# Update all collections
|
|
442
|
+
qmd update
|
|
443
|
+
|
|
444
|
+
# Update specific collection (if supported)
|
|
445
|
+
# qmd update --collection docs
|
|
446
|
+
|
|
447
|
+
# Force full rebuild
|
|
448
|
+
rm -rf ~/.cache/qmd
|
|
449
|
+
qmd update
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
### Searching
|
|
453
|
+
|
|
454
|
+
```bash
|
|
455
|
+
# BM25 keyword search (fast, exact matching)
|
|
456
|
+
qmd search "authentication"
|
|
457
|
+
qmd search "OAuth flow"
|
|
458
|
+
qmd search "API endpoint"
|
|
459
|
+
|
|
460
|
+
# Vector semantic search (requires Ollama)
|
|
461
|
+
qmd vsearch "how to login"
|
|
462
|
+
qmd vsearch "error handling patterns"
|
|
463
|
+
qmd vsearch "database connection setup"
|
|
464
|
+
|
|
465
|
+
# Hybrid search (BM25 + vector + rerank - best results)
|
|
466
|
+
qmd query "authentication implementation"
|
|
467
|
+
qmd query "error handling"
|
|
468
|
+
qmd query "API design patterns"
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
### Document Retrieval
|
|
472
|
+
|
|
473
|
+
```bash
|
|
474
|
+
# Get specific document
|
|
475
|
+
qmd get docs/api.md
|
|
476
|
+
|
|
477
|
+
# Get with line number and context (10 lines before/after line 50)
|
|
478
|
+
qmd get docs/api.md:50 -l 10
|
|
479
|
+
|
|
480
|
+
# Get by search result ID
|
|
481
|
+
qmd search "authentication" | grep "docs/auth.md"
|
|
482
|
+
qmd get docs/auth.md:42 -l 20
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
### Status and Info
|
|
486
|
+
|
|
487
|
+
```bash
|
|
488
|
+
# Check index status
|
|
489
|
+
qmd status
|
|
490
|
+
|
|
491
|
+
# List collections
|
|
492
|
+
qmd collection list
|
|
493
|
+
|
|
494
|
+
# Check Ollama connection
|
|
495
|
+
curl http://localhost:11434/api/tags
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
---
|
|
499
|
+
|
|
500
|
+
## MCP Mode (Model Context Protocol)
|
|
501
|
+
|
|
502
|
+
qmd can run as an MCP server, allowing AI tools to search your indexed content:
|
|
503
|
+
|
|
504
|
+
```bash
|
|
505
|
+
# Start MCP server
|
|
506
|
+
qmd mcp
|
|
507
|
+
|
|
508
|
+
# MCP server listens for requests from AI tools
|
|
509
|
+
# Tools like Claude Desktop can connect and search your docs
|
|
510
|
+
```
|
|
511
|
+
|
|
512
|
+
### MCP Configuration for Claude Desktop
|
|
513
|
+
|
|
514
|
+
Add to Claude Desktop configuration:
|
|
515
|
+
|
|
516
|
+
```json
|
|
517
|
+
{
|
|
518
|
+
"mcpServers": {
|
|
519
|
+
"qmd": {
|
|
520
|
+
"command": "qmd",
|
|
521
|
+
"args": ["mcp"],
|
|
522
|
+
"env": {
|
|
523
|
+
"OLLAMA_URL": "http://localhost:11434"
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
```
|
|
529
|
+
|
|
530
|
+
---
|
|
531
|
+
|
|
532
|
+
## Integration with Other Skills
|
|
533
|
+
|
|
534
|
+
| Skill | Integration | Notes |
|
|
535
|
+
|-------|-------------|-------|
|
|
536
|
+
| **ollama** | Embeddings and reranking | Required for vector search |
|
|
537
|
+
| **cron** | Schedule index updates | Keep index fresh automatically |
|
|
538
|
+
| **comms** | Index communication history | Search across all messages |
|
|
539
|
+
| **aix** | Index AI sessions | Search past AI conversations |
|
|
540
|
+
| **nexus-cloud** | Sync qmd index | Share index across devices |
|
|
541
|
+
|
|
542
|
+
---
|
|
543
|
+
|
|
544
|
+
## Testing Checklist
|
|
545
|
+
|
|
546
|
+
- [ ] Fresh install: `npm install -g https://github.com/tobi/qmd`
|
|
547
|
+
- [ ] Version check: `qmd --version`
|
|
548
|
+
- [ ] Ollama running: `curl http://localhost:11434/api/tags`
|
|
549
|
+
- [ ] Embedding model pulled: `ollama list | grep nomic-embed-text`
|
|
550
|
+
- [ ] Collection added: `qmd collection add ~/test --name test`
|
|
551
|
+
- [ ] Index built: `qmd update`
|
|
552
|
+
- [ ] Status shows data: `qmd status`
|
|
553
|
+
- [ ] BM25 search works: `qmd search "test"`
|
|
554
|
+
- [ ] Vector search works: `qmd vsearch "test"`
|
|
555
|
+
- [ ] Hybrid search works: `qmd query "test"`
|
|
556
|
+
- [ ] Document retrieval works: `qmd get <doc-path>`
|
|
557
|
+
- [ ] MCP mode starts: `qmd mcp`
|
|
558
|
+
- [ ] Scheduled update works: Test cron job
|
|
559
|
+
|
|
560
|
+
---
|
|
561
|
+
|
|
562
|
+
## Notes for Onboarding Agent
|
|
563
|
+
|
|
564
|
+
- **Ollama is key**: Emphasize vector search requires Ollama (optional but recommended)
|
|
565
|
+
- **Index updates**: Remind users to run `qmd update` after adding files
|
|
566
|
+
- **When to recommend**:
|
|
567
|
+
- User has large codebase or documentation
|
|
568
|
+
- User wants semantic search capabilities
|
|
569
|
+
- User uses AI tools that support MCP
|
|
570
|
+
- User needs to search notes, wikis, or knowledge bases
|
|
571
|
+
- **When NOT to recommend**:
|
|
572
|
+
- User has small, well-organized files (grep is enough)
|
|
573
|
+
- User doesn't need semantic search
|
|
574
|
+
- User uncomfortable installing npm packages from GitHub
|
|
575
|
+
- **Value proposition**: "Search your code and docs by meaning, not just keywords"
|
|
576
|
+
- **Time estimate**:
|
|
577
|
+
- Installation: 2 minutes
|
|
578
|
+
- Ollama setup: 5 minutes (if not installed)
|
|
579
|
+
- First indexing: 5-15 minutes (depends on collection size)
|
|
580
|
+
- Configuration: 3 minutes
|
|
581
|
+
- **Performance note**: Initial indexing can take time for large collections; subsequent updates are incremental
|
|
582
|
+
- **Storage**: Index stored in `~/.cache/qmd/` (can be large for big collections)
|
|
583
|
+
|
|
584
|
+
---
|
|
585
|
+
|
|
586
|
+
## Architecture: How It Works
|
|
587
|
+
|
|
588
|
+
### Indexing Pipeline
|
|
589
|
+
|
|
590
|
+
```
|
|
591
|
+
Files on disk
|
|
592
|
+
↓
|
|
593
|
+
qmd collection add (define what to index)
|
|
594
|
+
↓
|
|
595
|
+
qmd update
|
|
596
|
+
↓
|
|
597
|
+
1. Scan directories with file masks
|
|
598
|
+
2. Extract text from files
|
|
599
|
+
3. Build BM25 inverted index
|
|
600
|
+
4. Generate embeddings (Ollama)
|
|
601
|
+
5. Store in SQLite database (~/.cache/qmd/)
|
|
602
|
+
↓
|
|
603
|
+
Index ready for search
|
|
604
|
+
```
|
|
605
|
+
|
|
606
|
+
### Search Pipeline
|
|
607
|
+
|
|
608
|
+
```
|
|
609
|
+
User query
|
|
610
|
+
↓
|
|
611
|
+
qmd search (BM25 only)
|
|
612
|
+
↓
|
|
613
|
+
1. Tokenize query
|
|
614
|
+
2. Search inverted index
|
|
615
|
+
3. Rank by TF-IDF
|
|
616
|
+
↓
|
|
617
|
+
Return results
|
|
618
|
+
|
|
619
|
+
OR
|
|
620
|
+
|
|
621
|
+
User query
|
|
622
|
+
↓
|
|
623
|
+
qmd vsearch (Vector only)
|
|
624
|
+
↓
|
|
625
|
+
1. Generate query embedding (Ollama)
|
|
626
|
+
2. Vector similarity search
|
|
627
|
+
3. Rank by cosine similarity
|
|
628
|
+
↓
|
|
629
|
+
Return results
|
|
630
|
+
|
|
631
|
+
OR
|
|
632
|
+
|
|
633
|
+
User query
|
|
634
|
+
↓
|
|
635
|
+
qmd query (Hybrid)
|
|
636
|
+
↓
|
|
637
|
+
1. BM25 search → candidates
|
|
638
|
+
2. Vector search → candidates
|
|
639
|
+
3. Merge results
|
|
640
|
+
4. Rerank with LLM (Ollama)
|
|
641
|
+
↓
|
|
642
|
+
Return best results
|
|
643
|
+
```
|
|
644
|
+
|
|
645
|
+
---
|
|
646
|
+
|
|
647
|
+
## Performance Considerations
|
|
648
|
+
|
|
649
|
+
### Indexing Performance
|
|
650
|
+
|
|
651
|
+
- **Small collections** (<1k files): ~1-2 minutes
|
|
652
|
+
- **Medium collections** (1k-10k files): ~5-10 minutes
|
|
653
|
+
- **Large collections** (10k+ files): ~15-30 minutes
|
|
654
|
+
- **Incremental updates**: Fast (only changed files)
|
|
655
|
+
|
|
656
|
+
### Search Performance
|
|
657
|
+
|
|
658
|
+
- **BM25 search**: <100ms for millions of documents
|
|
659
|
+
- **Vector search**: ~100-500ms (depends on collection size)
|
|
660
|
+
- **Hybrid search**: ~500ms-1s (includes reranking)
|
|
661
|
+
|
|
662
|
+
### Storage
|
|
663
|
+
|
|
664
|
+
- **BM25 index**: ~10-20% of original text size
|
|
665
|
+
- **Vector embeddings**: ~4KB per document chunk
|
|
666
|
+
- **Total**: Expect ~20-30% of original collection size
|
|
667
|
+
|
|
668
|
+
---
|
|
669
|
+
|
|
670
|
+
## Troubleshooting Guide
|
|
671
|
+
|
|
672
|
+
### Search Returns Wrong Results
|
|
673
|
+
|
|
674
|
+
```bash
|
|
675
|
+
# Check if index is up to date
|
|
676
|
+
qmd status
|
|
677
|
+
|
|
678
|
+
# Rebuild index
|
|
679
|
+
qmd update
|
|
680
|
+
|
|
681
|
+
# Try different search methods
|
|
682
|
+
qmd search "query" # Exact keyword matching
|
|
683
|
+
qmd vsearch "query" # Semantic matching
|
|
684
|
+
qmd query "query" # Hybrid (best results)
|
|
685
|
+
```
|
|
686
|
+
|
|
687
|
+
### Slow Search Performance
|
|
688
|
+
|
|
689
|
+
```bash
|
|
690
|
+
# Check collection size
|
|
691
|
+
qmd status
|
|
692
|
+
|
|
693
|
+
# Consider splitting large collections
|
|
694
|
+
qmd collection remove large-collection
|
|
695
|
+
qmd collection add ~/large-dir/subdir1 --name subdir1
|
|
696
|
+
qmd collection add ~/large-dir/subdir2 --name subdir2
|
|
697
|
+
|
|
698
|
+
# Check Ollama performance
|
|
699
|
+
time ollama run nomic-embed-text "test query"
|
|
700
|
+
```
|
|
701
|
+
|
|
702
|
+
### High Memory Usage
|
|
703
|
+
|
|
704
|
+
```bash
|
|
705
|
+
# Check cache size
|
|
706
|
+
du -sh ~/.cache/qmd
|
|
707
|
+
|
|
708
|
+
# Clear cache and rebuild
|
|
709
|
+
rm -rf ~/.cache/qmd
|
|
710
|
+
qmd update
|
|
711
|
+
|
|
712
|
+
# Reduce collection size (add more exclusions)
|
|
713
|
+
qmd collection add ~/code --name code --mask "**/*.py" --exclude "**/venv/**" --exclude "**/node_modules/**"
|
|
714
|
+
```
|
|
715
|
+
|
|
716
|
+
---
|
|
717
|
+
|
|
718
|
+
## Advanced: Custom Embedding Models
|
|
719
|
+
|
|
720
|
+
```bash
|
|
721
|
+
# Use different embedding model
|
|
722
|
+
export OLLAMA_EMBED_MODEL="mxbai-embed-large"
|
|
723
|
+
|
|
724
|
+
# Pull model
|
|
725
|
+
ollama pull mxbai-embed-large
|
|
726
|
+
|
|
727
|
+
# Rebuild index with new embeddings
|
|
728
|
+
rm -rf ~/.cache/qmd
|
|
729
|
+
qmd update
|
|
730
|
+
```
|
|
731
|
+
|
|
732
|
+
---
|
|
733
|
+
|
|
734
|
+
## Changelog
|
|
735
|
+
|
|
736
|
+
| Date | Change |
|
|
737
|
+
|------|--------|
|
|
738
|
+
| 2026-01-12 | Initial deep-dive created |
|
|
739
|
+
|
|
740
|
+
---
|
|
741
|
+
|
|
742
|
+
*Template version: 1.0*
|