module
Memo::CLI
Defined in:
cli/input.crcli/main.cr
cli/schema.cr
Constant Summary
-
BUILD_VOCAB_SCHEMA =
"{\n \"type\": \"object\",\n \"properties\": {\n \"batch-size\": {\"type\": \"integer\", \"default\": 2000, \"description\": \"Words per API batch\"},\n \"no-clear\": {\"type\": \"boolean\", \"default\": false, \"description\": \"Don't clear existing vocab\"}\n }\n }" -
DELETE_SCHEMA =
"{\n \"type\": \"object\",\n \"properties\": {\n \"source-id\": {\"oneOf\": [{\"type\": \"integer\"}, {\"type\": \"string\"}], \"description\": \"Source ID to delete (integer or string/UUID)\"},\n \"source-type\": {\"type\": \"string\", \"description\": \"Filter deletion by source type\"}\n },\n \"required\": [\"source-id\"]\n }" -
GLOBAL_SCHEMA =
"{\n \"type\": \"object\",\n \"properties\": {\n \"db\": {\"type\": \"string\", \"short\": \"d\", \"description\": \"Database path\", \"default\": \"memo.db\"},\n \"service\": {\"type\": \"string\", \"short\": \"s\", \"description\": \"Service name\"},\n \"api-key\": {\"type\": \"string\", \"short\": \"k\", \"description\": \"API key\"},\n \"json\": {\"type\": \"boolean\", \"short\": \"j\", \"description\": \"Output as JSON\"},\n \"no-vocab\": {\"type\": \"boolean\", \"description\": \"Disable vocabulary building during index\"}\n }\n }" -
Global options merged into all command schemas via CLJ.merge
-
INDEX_SCHEMA =
"{\n \"type\": \"object\",\n \"positional\": [\"files\"],\n \"properties\": {\n \"files\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}, \"description\": \"Files to index\"},\n \"recursive\": {\"type\": \"boolean\", \"short\": \"r\", \"default\": false, \"description\": \"Recursively index directories\"},\n \"full\": {\"type\": \"boolean\", \"default\": false, \"description\": \"Re-index all files (ignore mtime)\"},\n \"dry-run\": {\"type\": \"boolean\", \"default\": false, \"description\": \"List files without indexing\"},\n \"ignore-file\": {\"type\": \"string\", \"default\": \".gitignore\", \"description\": \"Ignore file name (used with -r)\"},\n \"source-type\": {\"type\": \"string\", \"default\": \"text\", \"description\": \"Source type for stdin text\"},\n \"source-id\": {\"oneOf\": [{\"type\": \"integer\"}, {\"type\": \"string\"}], \"description\": \"Source ID for stdin text\"},\n \"pair-id\": {\"oneOf\": [{\"type\": \"integer\"}, {\"type\": \"string\"}], \"description\": \"Related source ID\"},\n \"parent-id\": {\"oneOf\": [{\"type\": \"integer\"}, {\"type\": \"string\"}], \"description\": \"Parent source ID\"}\n }\n }" -
Command schemas
-
SEARCH_SCHEMA =
"{\n \"type\": \"object\",\n \"positional\": [\"query\"],\n \"properties\": {\n \"query\": {\"type\": \"string\", \"description\": \"Search query text\"},\n \"limit\": {\"type\": \"integer\", \"default\": 10, \"description\": \"Maximum number of results\"},\n \"min-score\": {\"type\": \"number\", \"default\": 0.3, \"description\": \"Minimum similarity score (0.0-1.0)\"},\n \"source-type\": {\"type\": \"string\", \"description\": \"Filter by source type\"},\n \"source-id\": {\"oneOf\": [{\"type\": \"integer\"}, {\"type\": \"string\"}], \"description\": \"Filter by source ID (integer or string/UUID)\"},\n \"include-text\": {\"type\": \"boolean\", \"default\": true, \"description\": \"Include chunk text in results\"},\n \"like\": {\"type\": \"string\", \"short\": \"l\", \"description\": \"LIKE pattern to filter text (e.g. %cats%)\"},\n \"match\": {\"type\": \"string\", \"short\": \"m\", \"description\": \"FTS5 full-text query (supports AND, OR, NOT, prefix*)\"}\n },\n \"required\": [\"query\"]\n }" -
SERVICE_CREATE_SCHEMA =
"{\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\"type\": \"string\", \"description\": \"Unique service name\"},\n \"format\": {\"type\": \"string\", \"description\": \"Provider format (openai, voyage)\"},\n \"model\": {\"type\": \"string\", \"description\": \"Model name (e.g., text-embedding-3-small)\"},\n \"dimensions\": {\"type\": \"integer\", \"description\": \"Embedding dimensions (e.g., 1536)\"},\n \"max-tokens\": {\"type\": \"integer\", \"description\": \"Max tokens per chunk (e.g., 8191)\"},\n \"endpoint\": {\"type\": \"string\", \"description\": \"Custom API endpoint URL\"},\n \"default\": {\"type\": \"boolean\", \"default\": false, \"description\": \"Set as default service\"}\n },\n \"required\": [\"name\", \"format\", \"model\", \"dimensions\", \"max-tokens\"]\n }" -
SERVICE_DELETE_SCHEMA =
"{\n \"type\": \"object\",\n \"positional\": [\"name\"],\n \"properties\": {\n \"name\": {\"type\": \"string\", \"description\": \"Service name to delete\"},\n \"force\": {\"type\": \"boolean\", \"default\": false, \"description\": \"Delete even if service has embeddings\"}\n },\n \"required\": [\"name\"]\n }" -
SERVICE_LIST_SCHEMA =
"{\n \"type\": \"object\",\n \"properties\": {}\n }" -
Service subcommand schemas
-
SERVICE_USE_SCHEMA =
"{\n \"type\": \"object\",\n \"positional\": [\"name\"],\n \"properties\": {\n \"name\": {\"type\": \"string\", \"description\": \"Service name to set as default\"}\n },\n \"required\": [\"name\"]\n }" -
STATS_SCHEMA =
"{\n \"type\": \"object\",\n \"properties\": {}\n }" -
TERMS_SCHEMA =
"{\n \"type\": \"object\",\n \"positional\": [\"query\"],\n \"properties\": {\n \"query\": {\"type\": \"string\", \"description\": \"Word or phrase to find similar concepts\"},\n \"limit\": {\"type\": \"integer\", \"default\": 10, \"description\": \"Maximum number of results\"},\n \"min-score\": {\"type\": \"number\", \"default\": 0.5, \"description\": \"Minimum similarity score (0.0-1.0)\"}\n },\n \"required\": [\"query\"]\n }" -
VERSION =
Memo::VERSION