Skip to content
GitHub

Public Package CLI Surface Matrix

Every public package in the Lexigram monorepo must have an explicit CLI decision documented here. The matrix is the source of truth for entry-point expectations and is verified by boundary tests.

ColumnMeaning
entry_pointexact pyproject.toml value or none
root_commandsroot-level command names this package owns
generatorsgenerator names this package owns
healthcontributed health checks
doctorcontributed doctor checks
shellcontributed shell context
hookscontributed CLI lifecycle hooks
statusactive / none / non-scope
PackageEntry PointRoot CommandsGeneratorsHealthDoctorShellHooksStatus
lexigram-cli (core)core = lexigram.cli.contributors.core:CoreCliContributormodel, service, provider, event, test, command, query, guardactive
lexigram-aiai = lexigram.ai.cli.contributor:AICliContributorai2 (llm_provider, subsystem_discovery)1 (api_keys)1 (ai_client)active
lexigram-ai-mcpmcp = lexigram.ai.mcp.cli.contributor:McpCliContributormcpmcp-controller, mcp-serveractive
lexigram-authauth = lexigram.auth.cli.contributor:AuthCliContributorauthauth_guard, auth_policyactive
lexigram-cachecache = lexigram.cache.cli.contributor:CacheCliContributorcachecache_repo111active
lexigram-eventsevents = lexigram.events.cli.contributor:EventsCliContributoreventsevent_handler, sagaactive
lexigram-featuresfeatures = lexigram.features.cli.contributor:FeaturesCliContributorfeaturesfeature_flag111active
lexigram-monitormonitor = lexigram.monitor.cli.contributor:MonitorCliContributormonitormetric2211active
lexigram-notificationnotification = lexigram.notification.cli.contributor:NotificationCliContributornotifynotification_templateactive
lexigram-queuequeue = lexigram.queue.cli.contributor:QueueCliContributormessage_consumeractive
lexigram-searchsearch = lexigram.search.cli.contributor:SearchCliContributorsearch_indexactive
lexigram-sqlsql = lexigram.sql.cli.contributor:SqlCliContributordbrepository, filter, seeder, health122active
lexigram-storagestorage = lexigram.storage.cli.contributor:StorageCliContributorstorage_driver11active
lexigram-taskstasks = lexigram.tasks.cli.contributor:TasksCliContributortaskstaskactive
lexigram-tenancytenancy = lexigram.tenancy.cli.contributor:TenancyCliContributortenancytenant_resolveractive
lexigram-vectorvector = lexigram.vector.cli.contributor:VectorCliContributorvectorvector_collection11active
lexigram-webweb = lexigram.web.cli.contributor:WebCliContributorcontroller, resource, middleware, graphql, webhook, websocket1active
lexigram-workflowworkflow = lexigram.workflow.cli.contributor:WorkflowCliContributorworkflowworkflow_def, pipeline, saga_step11active
lexigram-auditaudit = lexigram.audit.cli.contributor:AuditCliContributoraudit11active
lexigram-graphqlgraphql = lexigram.graphql.cli.contributor:GraphQLCliContributordataloaderactive
lexigram-httphttp = lexigram.http.cli.contributor:HttpCliContributorapi_clientactive
lexigram-nosqlnosql = lexigram.nosql.cli.contributor:NoSqlCliContributordocument_repoactive
lexigram-resilienceresilience = lexigram.resilience.cli.contributor:ResilienceCliContributor111active
PackageAllowed Absence ReasonStatus
lexigramCore framework runtime; CLI lives in lexigram-cli. No package-local CLI surface.none
lexigram-contractsProtocols, types, and exceptions only — no runtime CLI surface.none
lexigram-ai-llmCLI surface managed through lexigram-ai orchestrator. No standalone CLI.none
lexigram-ai-ragCLI surface managed through lexigram-ai orchestrator. No standalone CLI.none
lexigram-ai-agentsCLI surface managed through lexigram-ai orchestrator. No standalone CLI.none
lexigram-ai-memoryCLI surface managed through lexigram-ai orchestrator. No standalone CLI.none
lexigram-ai-skillsCLI surface managed through lexigram-ai orchestrator. No standalone CLI.none
lexigram-ai-sessionCLI surface managed through lexigram-ai orchestrator. No standalone CLI.none
lexigram-ai-workersCLI surface managed through lexigram-ai orchestrator. No standalone CLI.none
lexigram-ai-observabilityCLI surface managed through lexigram-ai orchestrator. No standalone CLI.none
lexigram-ai-feedbackCLI surface managed through lexigram-ai orchestrator. No standalone CLI.none
lexigram-graphNo CLI surface yet. Graph DB operations are managed programmatically.none
lexigram-webhookNo CLI surface yet. Webhook configuration is runtime-managed.none
lexigram-uiHTMX/htpy UI component library. No standalone CLI surface.none
lexigram-testingPytest plugin and test utilities only. No CLI surface.none
  1. Built-in commands (registered in lexigram-cli/src/.../runtime/main.py) always win.
  2. Scope-dist contributors (public packages listed above with status active) win over non-scope contributors for same command name.
  3. First-registered wins for scope-vs-scope conflicts (stable by entry-point discovery order).
  4. All conflicts are recorded in LexigramRuntime.command_conflicts and inspectable via lexigram contrib list.

This matrix is verified by:

  • tests/scripts/test_cli_public_surface.py — checks every public package has a documented CLI decision
  • lexigram-cli/tests/unit/test_cli_contribution_system.py — verifies contributor registration
  • tools/publish_public.sh — package list must agree with this matrix