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_DIR_SCHEMA =
"{\n \"type\": \"object\",\n \"positional\": [\"path\"],\n \"properties\": {\n \"path\": {\"type\": \"string\", \"description\": \"Directory to index\"},\n \"ignore-file\": {\"type\": \"string\", \"default\": \".gitignore\", \"description\": \"Ignore file name\"},\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 },\n \"required\": [\"path\"]\n }" -
INDEX_TEXT_SCHEMA =
"{\n \"type\": \"object\",\n \"positional\": [\"text\"],\n \"properties\": {\n \"text\": {\"type\": \"string\", \"description\": \"Text content to index\"},\n \"source-type\": {\"type\": \"string\", \"default\": \"text\", \"description\": \"Source type identifier (e.g., article, note)\"},\n \"source-id\": {\"oneOf\": [{\"type\": \"integer\"}, {\"type\": \"string\"}], \"description\": \"Unique source ID (integer or string/UUID)\"},\n \"pair-id\": {\"oneOf\": [{\"type\": \"integer\"}, {\"type\": \"string\"}], \"description\": \"Related source ID\"},\n \"parent-id\": {\"oneOf\": [{\"type\": \"integer\"}, {\"type\": \"string\"}], \"description\": \"Parent source ID for hierarchies\"}\n },\n \"required\": [\"text\"]\n }" -
Command schemas
-
LIKE_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 }" -
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 },\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 }" -
VERSION =
Memo::VERSION