mirror of
https://github.com/hanzoai/insights.git
synced 2026-10-30 16:15:31 +00:00
publish:static and prune:static were auto-discovered with placeholder descriptions, so the manifest was rewritten on every insightscli run and swept into whatever commit followed. Descriptions come from the scripts' own docstrings. Both stay hidden, like their neighbours. frontend/node_modules/@hanzo/icons is a committed symlink pointing at insights-icons 0.36.7 while the lockfile resolves 0.36.8, so any pnpm install leaves the tree modified. Co-authored-by: Hanzo Dev <[email protected]>
1234 lines
54 KiB
YAML
1234 lines
54 KiB
YAML
config:
|
|
description: Unified developer experience for the Insights monorepo.
|
|
commands_dir: tools/insightscli-commands/insightscli_commands
|
|
# Imported once at startup to register precheck handlers, telemetry property
|
|
# hooks, and post-command hooks. Keep these modules cheap to import — heavy
|
|
# dependencies must live behind lazy imports inside handler bodies.
|
|
boot_modules:
|
|
- insightscli_commands.prechecks
|
|
- insightscli_commands.telemetry_props
|
|
- insightscli_commands.hint_hook
|
|
scripts_exclude:
|
|
- mprocs.yaml
|
|
- mprocs-test.yaml
|
|
- sandbox-entrypoint.py
|
|
- lint-feature-flag-sorting.mjs
|
|
# Locally-built, gitignored binary (tools/phrocs). Referenced via cmd:/process
|
|
# name, not bin_script:, so exclude it from auto-discovery to stop the manifest
|
|
# regenerating a stub entry on every insightscli run.
|
|
- phrocs
|
|
env:
|
|
files:
|
|
- .env.development
|
|
- .env.services
|
|
secrets:
|
|
file: .env.local
|
|
marker: 'op://'
|
|
wrap: [op, run, --env-file, '{file}', --]
|
|
telemetry:
|
|
# Write-only project token for Insights's internal insightscli project.
|
|
# It cannot read data; safe to commit. Standalone insightscli users get a blank
|
|
# default and telemetry stays disabled unless they set their own key.
|
|
api_key: pk-JYFXrbqdzueOYb0wFUTnCglFKZuC4xRXBW790ewdcvn
|
|
host: https://us.i.hanzo.ai
|
|
|
|
metadata:
|
|
devbox:
|
|
coder_url: https://coder.dev.insights.dev
|
|
categories:
|
|
- key: devenv
|
|
title: Intent-based dev environment
|
|
- key: core
|
|
title: Core development commands
|
|
- key: start
|
|
title: Start services and background workers
|
|
- key: health_checks
|
|
title: Verify infrastructure readiness
|
|
- key: migrations
|
|
title: Database migrations
|
|
- key: db
|
|
title: Database operations
|
|
- key: tests
|
|
title: Run tests
|
|
- key: quality
|
|
title: Code quality and formatting
|
|
- key: build
|
|
title: Build and generate code
|
|
- key: docker
|
|
title: Docker-based service orchestration
|
|
- key: deploy
|
|
title: Deploy Insights to remote instances
|
|
- key: auth
|
|
title: Authenticate to internal services
|
|
- key: tools
|
|
title: Developer tools and utilities
|
|
- key: desktop
|
|
title: Desktop app (products/desktop)
|
|
- key: devex
|
|
title: Developer experience feedback
|
|
- key: utilities
|
|
title: Git worktrees and admin
|
|
- key: devbox
|
|
title: Remote development environment (devbox)
|
|
- key: environment
|
|
title: Environment and shell
|
|
services:
|
|
flox:
|
|
name: Flox
|
|
about: Manages reproducible development environments. All developers get the
|
|
same exact versions of tools and dependencies.
|
|
docker:
|
|
name: Docker
|
|
about: Isolates services and dependencies in containers to match production
|
|
without requiring local installation. Orbstack strongly recommended over Docker
|
|
Desktop.
|
|
migration:
|
|
name: Database migrations
|
|
about: Schema updates and data migrations across PostgreSQL, Datastore, and
|
|
async systems.
|
|
datastore:
|
|
name: Datastore
|
|
about: Analytics database used for metrics, events, and funnel analysis throughout
|
|
Insights.
|
|
postgresql:
|
|
name: PostgreSQL
|
|
about: Primary relational database for application data, authentication, and
|
|
feature flags.
|
|
redis:
|
|
name: Redis
|
|
about: In-memory cache and queue backend for fast data access and job processing.
|
|
kafka:
|
|
name: Kafka
|
|
about: Event streaming platform for reliable event processing and data pipelines.
|
|
temporal:
|
|
name: Temporal
|
|
about: Workflow orchestration engine for reliable, long-running background jobs
|
|
and retries.
|
|
testing:
|
|
name: Testing
|
|
about: Automated test suites (unit, integration, E2E) to ensure code quality
|
|
and prevent regressions.
|
|
celery:
|
|
name: Celery
|
|
about: Distributed task queue for running background jobs like async exports,
|
|
scheduled tasks, and email sending.
|
|
nodejs:
|
|
name: Node.js
|
|
about: CDP workflows, session recordings, logs ingestion, and evaluation scheduler.
|
|
Ingestion runs as a separate process (see ingestion unit).
|
|
ingestion:
|
|
name: Ingestion
|
|
about: Event ingestion pipeline that processes incoming events and writes to
|
|
Kafka (then Datastore). Runs as IngestionGeneralServer.
|
|
django:
|
|
name: Django
|
|
about: Python web framework powering Insights's backend API, admin interface,
|
|
and business logic.
|
|
frontend:
|
|
name: Frontend
|
|
about: React-based web application providing Insights's user interface. Built
|
|
with TypeScript, Vite, and Kea for state management.
|
|
mprocs:
|
|
name: mprocs
|
|
about: Process orchestrator that runs all dev services in parallel with live
|
|
output and easy process management.
|
|
phrocs:
|
|
name: phrocs
|
|
about: Insights's custom process runner (replaces mprocs).
|
|
devbox:
|
|
devbox:
|
|
click: insightscli_commands.devbox.cli:devbox_help
|
|
description: Show available devbox commands
|
|
devbox:setup:
|
|
click: insightscli_commands.devbox.cli:devbox_setup
|
|
description: Install and configure local access to Coder devboxes
|
|
devbox:doctor:
|
|
click: insightscli_commands.devbox.cli:devbox_doctor
|
|
description: Diagnose devbox prerequisites and setup (read-only)
|
|
devbox:start:
|
|
click: insightscli_commands.devbox.cli:devbox_start
|
|
description: Start or create your remote devbox
|
|
devbox:clone:
|
|
click: insightscli_commands.devbox.cli:devbox_clone
|
|
description: Clone a running devbox into a new one (carries full disk state)
|
|
devbox:stop:
|
|
click: insightscli_commands.devbox.cli:devbox_stop
|
|
description: Stop your devbox (preserves disk, stops billing)
|
|
devbox:restart:
|
|
click: insightscli_commands.devbox.cli:devbox_restart
|
|
description: Restart your devbox
|
|
devbox:update:
|
|
click: insightscli_commands.devbox.cli:devbox_update
|
|
description: Update devbox to the latest template
|
|
devbox:list:
|
|
click: insightscli_commands.devbox.cli:devbox_list
|
|
description: List your devboxes
|
|
devbox:ssh:
|
|
click: insightscli_commands.devbox.cli:devbox_ssh
|
|
description: SSH into your devbox
|
|
# exec-replaces the process (os.execvp): completed events can't fire
|
|
untracked: true
|
|
devbox:exec:
|
|
click: insightscli_commands.devbox.cli:devbox_remote_exec
|
|
description: Run a command inside your devbox (non-interactive)
|
|
untracked: true
|
|
devbox:open:
|
|
click: insightscli_commands.devbox.cli:devbox_open
|
|
description: Open devbox in browser, VS Code, or Cursor
|
|
untracked: true
|
|
devbox:logs:
|
|
click: insightscli_commands.devbox.cli:devbox_logs
|
|
description: Tail devbox build and agent logs
|
|
# exec-replaces the process (os.execvp): completed events can't fire
|
|
untracked: true
|
|
devbox:destroy:
|
|
click: insightscli_commands.devbox.cli:devbox_destroy
|
|
description: Destroy your devbox and its data
|
|
devbox:status:
|
|
click: insightscli_commands.devbox.cli:devbox_status
|
|
description: Show devbox status
|
|
devbox:forward:
|
|
click: insightscli_commands.devbox.cli:devbox_forward
|
|
description: Forward Insights UI to localhost
|
|
# exec-replaces the process (os.execvp): completed events can't fire
|
|
untracked: true
|
|
devbox:users:
|
|
click: insightscli_commands.devbox.cli:devbox_users
|
|
description: List Coder users (for devbox sharing)
|
|
devbox:share:
|
|
click: insightscli_commands.devbox.cli:devbox_share
|
|
description: Share your devbox with other users
|
|
devbox:unshare:
|
|
click: insightscli_commands.devbox.cli:devbox_unshare
|
|
description: Revoke access to your devbox from other users
|
|
devbox:cleanup:disk:
|
|
click: insightscli_commands.devbox.cli:devbox_cleanup_disk
|
|
description: Free disk space by cleaning caches and build artifacts
|
|
devbox:sync:
|
|
click: insightscli_commands.devbox.sync:cmd_sync
|
|
description: Mirror your local Insights checkout to a devbox
|
|
devbox:task:
|
|
click: insightscli_commands.devbox.cli:devbox_task
|
|
description: Run a background agent task on a fresh devbox
|
|
# exec-replaces the process (os.execvp): completed events can't fire
|
|
untracked: true
|
|
devbox:secret:list:
|
|
click: insightscli_commands.devbox.cli:devbox_secret_list
|
|
description: List your Coder user secrets
|
|
devbox:secret:set:
|
|
click: insightscli_commands.devbox.cli:devbox_secret_set
|
|
description: Create or replace a Coder user secret
|
|
devbox:secret:rm:
|
|
click: insightscli_commands.devbox.cli:devbox_secret_rm
|
|
description: Delete a Coder user secret
|
|
devbox:config:show:
|
|
click: insightscli_commands.devbox.cli:devbox_config_show
|
|
description: Show saved devbox setup configuration
|
|
devbox:config:rm:
|
|
click: insightscli_commands.devbox.cli:devbox_config_rm
|
|
description: Clear saved devbox configuration items
|
|
devenv:
|
|
dev:setup:
|
|
click: insightscli_commands.devenv.cli:dev_setup
|
|
description: Interactive wizard to configure your dev environment
|
|
dev:generate:
|
|
click: insightscli_commands.devenv.cli:dev_generate
|
|
description: Regenerate mprocs config from saved settings
|
|
dev:explain:
|
|
click: insightscli_commands.devenv.cli:dev_explain
|
|
description: Show what services would be started for intents
|
|
dev:intents:
|
|
click: insightscli_commands.devenv.cli:dev_intents
|
|
description: List available intents
|
|
dev:regenerate-mprocs:
|
|
click: insightscli_commands.devenv.cli:dev_regenerate_mprocs
|
|
description: Sync bin/mprocs.yaml and bin/mprocs-e2e.yaml's docker-compose shells with generator.py
|
|
dev:list-units:
|
|
click: insightscli_commands.devenv.cli:dev_list_units
|
|
description: List autostart units for given intents (used by phrocs)
|
|
hidden: true
|
|
dev:apply:
|
|
click: insightscli_commands.devenv.cli:dev_apply
|
|
description: Apply intent config non-interactively (used by phrocs)
|
|
hidden: true
|
|
core:
|
|
quickstart:
|
|
click: insightscli_commands.quickstart:quickstart
|
|
description: Show getting started with Insights development
|
|
categories:
|
|
description: Show all available commands grouped by category
|
|
dev:up:
|
|
description: Start full Insights dev stack via mprocs
|
|
hidden: true
|
|
dev:demo-data:
|
|
cmd: python manage.py generate_demo_data
|
|
description: Generate demo data for local testing
|
|
services:
|
|
- postgresql
|
|
- datastore
|
|
dev:bootstrap-project:
|
|
cmd: python manage.py bootstrap_local_project
|
|
description: Bootstrap a local project from an S3 events/persons dump (batch-export format)
|
|
services:
|
|
- postgresql
|
|
- datastore
|
|
- django
|
|
dev:sync-flags:
|
|
cmd: python manage.py sync_feature_flags
|
|
description: Sync feature flags from configuration
|
|
services:
|
|
- postgresql
|
|
dev:sync-script-templates:
|
|
cmd: python manage.py sync_insights_function_templates
|
|
description: Sync script function templates from configuration
|
|
services:
|
|
- postgresql
|
|
dev:sync-user-settings:
|
|
cmd: python manage.py sync_user_settings
|
|
description: Sync your user settings from Insights cloud to local dev environment.
|
|
Requires API key.
|
|
services:
|
|
- postgresql
|
|
dev:shell-plus:
|
|
cmd: python manage.py shell_plus
|
|
description: Launch Django shell with auto-imported models and utilities
|
|
services:
|
|
- postgresql
|
|
- datastore
|
|
- django
|
|
dev:reset:
|
|
steps:
|
|
- docker:services:remove
|
|
- docker:services:up
|
|
- setup:python
|
|
- services:ready
|
|
- insightscli: db:restore-schema
|
|
prompt: Restore pre-migrated schema from CI? (faster than migrations)
|
|
else: migrations:run
|
|
# Skip demo-data's own network flag sync (us.hanzo.ai) — the
|
|
# dev:sync-flags step below enables all flags from constants.tsx locally.
|
|
- name: dev:demo-data
|
|
cmd: python manage.py generate_demo_data --skip-flag-sync
|
|
- dev:sync-flags
|
|
- ensure:local:setup
|
|
description: Full reset - wipe volumes, migrate, load demo data, sync flags
|
|
prompt: true
|
|
dev:api-key:
|
|
cmd: python manage.py setup_local_api_key
|
|
description: Creates a personal API key that's always the same, so you don't need
|
|
to manually create a new one every time you reset the stack.
|
|
services:
|
|
- postgresql
|
|
health_checks:
|
|
check:dagster-graphql:
|
|
bin_script: check_dagster_graphql_up
|
|
description: Wait for Dagster UI to become available
|
|
hidden: true
|
|
check:hosts:
|
|
bin_script: check_hosts
|
|
description: Verify DNS resolution for required service hostnames (datastore,
|
|
kafka, etc)
|
|
hidden: true
|
|
check:video-deps:
|
|
bin_script: check_video_deps
|
|
description: Install and verify Playwright browsers and FFmpeg dependencies
|
|
hidden: true
|
|
services:ready:
|
|
bin_script: wait-for-docker
|
|
description: Wait for all Docker Compose services to pass health checks
|
|
start:
|
|
start:
|
|
bin_script: start
|
|
description: Launch all dev services via phrocs (interactive TUI, or `-d` for detached mode)
|
|
needs_secrets: true
|
|
services:
|
|
- phrocs
|
|
- mprocs
|
|
- docker
|
|
- django
|
|
- frontend
|
|
- celery
|
|
- nodejs
|
|
- ingestion
|
|
- postgresql
|
|
- redis
|
|
- kafka
|
|
- datastore
|
|
- temporal
|
|
up:
|
|
extends: start
|
|
description: Alias for `insightscli start`; use `-d` for optional detached mode
|
|
wait:
|
|
cmd: phrocs wait
|
|
description: Block until the detached dev stack is ready
|
|
preserve_exit_code: true
|
|
stop:
|
|
cmd: phrocs stop
|
|
description: Stop the detached dev stack processes (docker services stay up; use docker:services:down to stop them)
|
|
preserve_exit_code: true
|
|
down:
|
|
cmd: phrocs stop
|
|
description: Alias for `insightscli stop` (docker services stay up; use docker:services:down to stop them)
|
|
preserve_exit_code: true
|
|
start:backend:
|
|
bin_script: start-backend
|
|
description: Run Django development server on port 8000 with auto-reload
|
|
# Django runtime — Max / AI features / Stripe billing all read keys
|
|
# from .env.local at request time.
|
|
needs_secrets: true
|
|
services:
|
|
- django
|
|
- postgresql
|
|
- redis
|
|
hidden: true
|
|
start:agent-proxy:
|
|
cmd: pnpm --filter @hanzo/agent-proxy dev
|
|
description: Run the agent-proxy Node service for task-run live streaming with auto-reload
|
|
services:
|
|
- redis
|
|
hidden: true
|
|
start:celery:
|
|
bin_script: start-celery
|
|
description: Start Celery worker or beat scheduler with auto-reload
|
|
# Celery jobs hit AI providers (session summaries, batch exports, ...).
|
|
needs_secrets: true
|
|
services:
|
|
- celery
|
|
- redis
|
|
- kafka
|
|
hidden: true
|
|
start:frontend:
|
|
bin_script: start-frontend
|
|
description: Install dependencies and start frontend with Vite dev server
|
|
services:
|
|
- frontend
|
|
- docker
|
|
hidden: true
|
|
start:frontend-vite:
|
|
bin_script: start-frontend-vite
|
|
description: Start Vite dev server for frontend (runs pnpm start-vite)
|
|
hidden: true
|
|
start:worker:
|
|
bin_script: start-worker
|
|
description: Launch all background workers (Celery worker, beat scheduler, nodejs, ingestion)
|
|
# Workers run AI / billing / ingestion code paths that touch external
|
|
# providers — they need the runtime keys resolved.
|
|
needs_secrets: true
|
|
services:
|
|
- celery
|
|
- nodejs
|
|
- ingestion
|
|
- kafka
|
|
- temporal
|
|
- redis
|
|
hidden: true
|
|
start:rust-service:
|
|
bin_script: start-rust-service
|
|
description: Build and run live Rust microservice with auto-restart on crash
|
|
# Rust services include batch-import-worker etc. that talk to Stripe
|
|
# and other external endpoints.
|
|
needs_secrets: true
|
|
hidden: true
|
|
start:go:service:
|
|
bin_script: start-go-service
|
|
description: Build and run Go microservices with auto-restart on crash
|
|
needs_secrets: true
|
|
hidden: true
|
|
deploy:
|
|
deploy:hobby:
|
|
bin_script: deploy-hobby
|
|
description: Interactive installer for single-instance Insights deployment on remote
|
|
server
|
|
deploy:upgrade-hobby:
|
|
bin_script: upgrade-hobby
|
|
description: Upgrade existing hobby deployment with data loss warnings and volume
|
|
checks
|
|
prompt: true
|
|
deploy:migrate-recordings:
|
|
bin_script: migrate-session-recordings-hobby
|
|
description: Migrate session recordings from MinIO to SeaweedFS for hobby deployments
|
|
deploy:migrate-storage:
|
|
bin_script: migrate-minio-to-seaweedfs
|
|
description: "Migrate or sync object storage between MinIO and SeaweedFS\n\nServices:\
|
|
\ session-recordings, session-recordings-lts, query-cache, \n media-uploads,\
|
|
\ exports, source-maps\n\nModes:\n --mode migrate One-way copy (default)\n\
|
|
\ --mode sync Bidirectional sync\n\nExamples:\n insightscli deploy:migrate-storage\
|
|
\ --service query-cache --mode sync --dry-run\n insightscli deploy:migrate-storage\
|
|
\ --service media-uploads --mode migrate"
|
|
prompt: true
|
|
deploy:migrate-storage-hobby:
|
|
bin_script: migrate-storage-hobby
|
|
description: "Hobby: Migrate or sync ALL services between MinIO and SeaweedFS\
|
|
\ via docker-compose\n\nExamples:\n insightscli deploy:migrate-storage-hobby \
|
|
\ # Sync all services\n insightscli deploy:migrate-storage-hobby --mode\
|
|
\ migrate # One-way migrate all (MinIO \u2192 SeaweedFS)\n insightscli deploy:migrate-storage-hobby\
|
|
\ exports -n # Dry run exports only"
|
|
prompt: true
|
|
deploy:upgrade-objectstorage:
|
|
bin_script: upgrade-objectstorage
|
|
description: "Dev: salvage objectstorage data from the old MinIO volume into the\
|
|
\ running SeaweedFS (interactive)\n\nExamples:\n insightscli deploy:upgrade-objectstorage\
|
|
\ # Detect and copy the orphaned MinIO volume\n insightscli deploy:upgrade-objectstorage\
|
|
\ --list # List all MinIO volumes"
|
|
services:
|
|
- docker
|
|
prompt: true
|
|
build:
|
|
build:
|
|
click: insightscli_commands.build:build
|
|
description: Run code generation pipelines (smart change detection by default)
|
|
build:frontend:
|
|
cmd: pnpm --filter=@hanzo/frontend build
|
|
description: Build frontend packages and run TypeScript compilation
|
|
services:
|
|
- frontend
|
|
build:schema-json:
|
|
cmd: pnpm --filter=@hanzo/frontend run schema:build:json
|
|
description: Generate schema.json from frontend
|
|
build:schema-python:
|
|
bin_script: build-schema-python.sh
|
|
description: Generate Pydantic schema.py from schema.json with datamodel-codegen
|
|
build:schema-latest-versions:
|
|
bin_script: build-schema-latest-versions.py
|
|
description: Extract latest schema versions and generate frontend JSON config
|
|
build:taxonomy-json:
|
|
bin_script: build-taxonomy-json.py
|
|
description: Generate core filter definitions taxonomy JSON for frontend
|
|
build:bot-definitions:
|
|
cmd: python livestream/bot/generate_definitions.py
|
|
description: Generate livestream bot definitions JSON from bot_definitions.py
|
|
build:schema:
|
|
steps:
|
|
- build:schema-json
|
|
- build:schema-python
|
|
- build:schema-latest-versions
|
|
description: Generate all schema definitions (frontend JSON, Python, latest versions)
|
|
build:openapi-schema:
|
|
cmd: 'mkdir -p frontend/tmp && DEBUG=1 OPENAPI_INCLUDE_INTERNAL=1 OPENAPI_MOCK_INTERNAL_API_SECRET=1
|
|
python manage.py spectacular --file frontend/tmp/openapi.json --format openapi-json --fail-on-warn
|
|
&& echo "OpenAPI schema written to frontend/tmp/openapi.json"
|
|
|
|
'
|
|
description: Generate OpenAPI schema from Django backend (writes to gitignored
|
|
temp location)
|
|
services:
|
|
- postgresql
|
|
- datastore
|
|
- django
|
|
build:schema-mcp:
|
|
cmd: cd services/mcp && npx tsx scripts/generate-tool-schema.ts && pnpm exec oxfmt
|
|
schema/tool-inputs.json
|
|
description: Generate MCP tool-inputs.json schema from Zod definitions
|
|
build:widget-types:
|
|
steps:
|
|
- cmd: python bin/build-dashboard-widget-types.py
|
|
- cmd: pnpm --filter=@hanzo/frontend exec node
|
|
../products/dashboards/frontend/bin/generate-widget-config-zod.mjs
|
|
description: Generate dashboard widget config codegen artifacts (enum preflight, Zod)
|
|
build:openapi-types:
|
|
cmd: pnpm --filter=@hanzo/frontend run openapi:types
|
|
description: Generate TypeScript API types from the backend OpenAPI schema
|
|
build:openapi-mcp-types:
|
|
cmd: pnpm --filter=@hanzo/mcp run generate-mcp-types
|
|
description: Generate full TypeScript type namespace for MCP from OpenAPI schema
|
|
build:openapi-mcp:
|
|
cmd: pnpm --filter=@hanzo/mcp run generate-orval-schemas
|
|
description: Generate Orval Zod schemas for MCP tool handlers
|
|
build:openapi-mcp-tools:
|
|
cmd: pnpm --filter=@hanzo/mcp run generate-tools
|
|
description: Generate MCP tool handlers from YAML definitions + Orval schemas
|
|
build:openapi-mcp-scopes:
|
|
bin_script: build-mcp-oauth-scopes.py
|
|
description: Generate OAUTH_SCOPES_SUPPORTED for the MCP protected-resource
|
|
metadata from insights/scopes.py
|
|
build:openapi-cli-agent-scopes:
|
|
cmd: pnpm --filter=@hanzo/mcp run generate-cli-agent-scopes
|
|
description: Generate the CLI `agent` login use-case scope list from the MCP
|
|
tool definitions (must run after build:openapi-mcp-tools)
|
|
build:openapi-exec-docs:
|
|
cmd: pnpm --filter=@hanzo/mcp run generate-exec-docs
|
|
description: Render the MCP exec tool's command reference into the markdown
|
|
fragment hanzo.ai embeds in the tools reference page
|
|
build:openapi:
|
|
steps:
|
|
- build:openapi-schema
|
|
- build:widget-types
|
|
- build:openapi-types
|
|
- build:openapi-mcp-types
|
|
- build:openapi-mcp
|
|
- build:openapi-mcp-tools
|
|
- build:openapi-mcp-scopes
|
|
- build:openapi-cli-agent-scopes
|
|
- build:openapi-exec-docs
|
|
description: Generate OpenAPI schema and TypeScript types from the backend
|
|
build:grammar:
|
|
cmd: pnpm grammar:build
|
|
description: Generate InsightsQL grammar definitions (C++)
|
|
build:products:
|
|
cmd: pnpm --filter=@hanzo/frontend run build:products
|
|
description: Build products manifest from TypeScript/JSX files
|
|
build:skills:
|
|
cmd: python products/insights_ai/scripts/build_skills.py
|
|
description: Build agent skills from products/*/skills/ into dist/skills/ and
|
|
dist/skills.zip
|
|
init:skill:
|
|
cmd: python products/insights_ai/scripts/build_skills.py --init
|
|
description: Scaffold a new agent skill directory with SKILL.md boilerplate
|
|
sync:skill:
|
|
cmd: python products/insights_ai/scripts/build_skills.py --sync
|
|
description: Build a product skill and sync to .agents/skills/ for local testing
|
|
unsync:skill:
|
|
cmd: python products/insights_ai/scripts/build_skills.py --sync --clean
|
|
description: Remove a previously synced skill from .agents/skills/
|
|
docker:
|
|
docker:services:up:
|
|
click: insightscli_commands.devenv.cli:docker_services_up
|
|
description: Start Docker services based on your intent config
|
|
docker:services:down:
|
|
cmd: docker compose -f docker-compose.dev.yml --profile "*" down --remove-orphans
|
|
description: Stop Docker infrastructure services
|
|
services:
|
|
- docker
|
|
docker:services:remove:
|
|
cmd: docker compose -f docker-compose.dev.yml --profile "*" down -v --remove-orphans
|
|
description: Stop Docker infrastructure services and remove all volumes (complete
|
|
wipe)
|
|
services:
|
|
- docker
|
|
prompt: true
|
|
docker:deprecated:
|
|
bin_script: docker
|
|
description: '[DEPRECATED] Use `insightscli start` instead'
|
|
hidden: true
|
|
docker:dev:
|
|
bin_script: docker-dev
|
|
description: '[DEPRECATED] Use `insightscli start` instead'
|
|
hidden: true
|
|
docker:dev-web:
|
|
bin_script: docker-dev-web
|
|
description: '[DEPRECATED] Use `insightscli start` instead'
|
|
hidden: true
|
|
docker:backend:
|
|
bin_script: docker-backend
|
|
description: '[DEPRECATED] Use `insightscli start:backend` instead'
|
|
hidden: true
|
|
docker:frontend:
|
|
bin_script: docker-frontend
|
|
description: '[DEPRECATED] Use `insightscli start:frontend` instead'
|
|
hidden: true
|
|
docker:migrate:
|
|
bin_script: docker-migrate
|
|
description: '[DEPRECATED] Use `insightscli migrations:run` instead'
|
|
hidden: true
|
|
docker:worker:
|
|
bin_script: docker-worker
|
|
description: '[DEPRECATED] Use `insightscli start:worker` instead'
|
|
hidden: true
|
|
docker:server:
|
|
bin_script: docker-server
|
|
description: Run dual-mode server (Granian/Unit) with Prometheus metrics support
|
|
hidden: true
|
|
docker:server-unit:
|
|
bin_script: docker-server-unit
|
|
description: Run NGINX Unit application server with configurable workers
|
|
hidden: true
|
|
docker:worker-beat:
|
|
bin_script: docker-worker-beat
|
|
description: Run Celery beat scheduler with RedBeat backend
|
|
hidden: true
|
|
docker:worker-celery:
|
|
bin_script: docker-worker-celery
|
|
description: Start Celery worker with optional scheduler, gossip, heartbeat, mingle
|
|
hidden: true
|
|
docker:ai-evals:
|
|
bin_script: docker-ai-evals
|
|
description: Set up Docker services and run evaluation scripts with cleanup
|
|
hidden: true
|
|
migrations:
|
|
db:migrate:
|
|
bin_script: migrate
|
|
description: Apply database migrations (Django and Datastore)
|
|
hidden: true
|
|
migrations:run:
|
|
bin_script: migrate
|
|
description: Run all database migrations (Datastore, Postgres, async) in parallel
|
|
env:
|
|
DEBUG: '1'
|
|
migrations:datastore:
|
|
cmd: bin/migrate --scope=datastore
|
|
description: Initialize Datastore - run all Datastore migrations (and sync replicated schema)
|
|
env:
|
|
DEBUG: '1'
|
|
services:
|
|
- datastore
|
|
migrations:check:
|
|
bin_script: migrate-check
|
|
description: Verify all migrations are ready without applying them
|
|
services:
|
|
- postgresql
|
|
- datastore
|
|
migrations:status:
|
|
click: insightscli_commands.migrations:migrations_status
|
|
description: Show migration diff between database and code
|
|
migrations:down:
|
|
click: insightscli_commands.migrations:migrations_down
|
|
description: Roll back orphaned migrations
|
|
migrations:up:
|
|
click: insightscli_commands.migrations:migrations_up
|
|
description: Apply pending migrations
|
|
migrations:sync:
|
|
click: insightscli_commands.migrations:migrations_sync
|
|
description: 'Sync migrations: roll back orphaned, apply pending'
|
|
migrations:cache-sync:
|
|
click: insightscli_commands.migrations:migrations_cache_sync
|
|
description: Populate cache from currently applied migrations
|
|
db:
|
|
db:pg:
|
|
cmd: psql postgres://insights:insights@localhost:5432/insights
|
|
description: Connect to local PostgreSQL (extra args passed to psql)
|
|
services:
|
|
- postgresql
|
|
db:ch:
|
|
cmd: datastore client --host localhost --port 9000 --user default
|
|
description: Connect to local Datastore (extra args passed to datastore client)
|
|
services:
|
|
- datastore
|
|
db:dg:
|
|
cmd: psql postgres://insights:insights@localhost:15432/ducklake
|
|
description: Connect to local Duckgres (extra args passed to psql)
|
|
db:upgrade:
|
|
bin_script: upgrade-postgres
|
|
description: Upgrade PostgreSQL from version 12 to 15 (interactive migration tool)
|
|
services:
|
|
- postgresql
|
|
- docker
|
|
db:dump:
|
|
cmd: "mkdir -p .postgres-backups\nBACKUP_FILE=\"${1:-.postgres-backups/insights_backup_$(date\
|
|
\ +%Y%m%d_%H%M%S).sql.gz}\"\ndocker compose exec -T db pg_dumpall --clean -U\
|
|
\ insights | gzip > \"$BACKUP_FILE\"\necho \"\u2705 Backup saved to: $BACKUP_FILE\"\
|
|
\n"
|
|
description: Dump all PostgreSQL databases to compressed backup file
|
|
services:
|
|
- postgresql
|
|
- docker
|
|
db:restore:
|
|
cmd: "set -e\nset -o pipefail\nif [ -z \"$1\" ]; then\n LATEST=$(ls -t .postgres-backups/*.sql.gz\
|
|
\ 2>/dev/null | head -1)\n if [ -z \"$LATEST\" ]; then\n echo \"\u274C\
|
|
\ Error: No backup file specified and no backups found in .postgres-backups/\"\
|
|
\n echo \"Usage: insightscli db:restore [backup-file]\"\n exit 1\n \
|
|
\ fi\n echo \"Using latest backup: $LATEST\"\n BACKUP_FILE=\"$LATEST\"\
|
|
\nelse\n BACKUP_FILE=\"$1\"\nfi\nif [ ! -f \"$BACKUP_FILE\" ]; then\n \
|
|
\ echo \"\u274C Error: Backup file not found: $BACKUP_FILE\"\n exit 1\nfi\n\
|
|
gunzip -c \"$BACKUP_FILE\" | docker compose exec -T db psql -q -U insights >\
|
|
\ /dev/null 2>&1\necho \"\U0001F510 Upgrading password to SCRAM-SHA-256...\"\
|
|
\ndocker compose exec -T db psql -U insights -c \"ALTER USER insights WITH PASSWORD\
|
|
\ 'insights';\" > /dev/null 2>&1\necho \"\u2705 Restored from: $BACKUP_FILE\"\
|
|
\n"
|
|
description: Restore PostgreSQL databases from backup file (defaults to latest)
|
|
services:
|
|
- postgresql
|
|
- docker
|
|
db:prime-test-db:
|
|
steps:
|
|
- db:download-schema
|
|
- db:restore-test-db
|
|
description: Download pre-migrated schema and prime the test_insights database for
|
|
pytest --reuse-db
|
|
services:
|
|
- postgresql
|
|
- docker
|
|
db:restore-test-db:
|
|
click: insightscli_commands.db_schema:db_restore_test_db
|
|
description: 'Restore a fresh DB from a local schema dump (no download). Drops and
|
|
recreates the target DB then loads schema-latest.sql.gz into it. Target DB
|
|
defaults to test_insights; override via TARGET_DB env var. Used by CI after
|
|
restoring the schema from Actions cache.'
|
|
services:
|
|
- postgresql
|
|
- docker
|
|
db:restore-schema-fresh:
|
|
click: insightscli_commands.db_schema:db_restore_schema_fresh
|
|
description: Alias for db:restore-test-db. Kept so PR branches that pulled in the
|
|
short-lived rename (#57657) still resolve a valid command after the revert.
|
|
Safe to remove once those branches are merged or rebased.
|
|
db:download-schema:
|
|
click: insightscli_commands.db_schema:db_download_schema
|
|
description: Download the newest compatible pre-migrated schema artifact from CI
|
|
(requires gh auth or GH_TOKEN)
|
|
db:restore-schema-if-fresh:
|
|
click: insightscli_commands.db_schema:db_restore_schema_if_fresh
|
|
description: Restore a compatible schema into an empty local dev database before
|
|
migrations. Defaults to best-effort auto mode; set INSIGHTS_SCHEMA_RESTORE_IN_DEV=off
|
|
to disable or on to fail on restore errors.
|
|
services:
|
|
- postgresql
|
|
- docker
|
|
db:restore-schema:
|
|
click: insightscli_commands.db_schema:db_restore_schema
|
|
description: Fetch pre-migrated schema from CI, restore it, and run any pending
|
|
migrations (creates backup first)
|
|
services:
|
|
- postgresql
|
|
- docker
|
|
tests:
|
|
test:
|
|
click: insightscli_commands.test_runner:test_command
|
|
description: Auto-detect test type (Python, Jest, Playwright, Rust, Go) and run it
|
|
test:python:
|
|
cmd: pytest
|
|
description: Run Python test suite
|
|
test:js:
|
|
cmd: pnpm --filter=@hanzo/frontend test
|
|
description: Run JavaScript test suite
|
|
test:e2e:
|
|
bin_script: e2e-test-runner
|
|
description: Set up test databases and run Playwright E2E tests
|
|
test:quarantine:
|
|
click: insightscli_commands.quarantine.cli:quarantine
|
|
description: Manage .test_quarantine.json — quarantine flaky tests so they stop blocking CI
|
|
evals:
|
|
cmd: python -m products.insights_ai.eval_harness.harness
|
|
description: Run evals — sandboxed agent and one-shot suites (extra args pass through, e.g. `sql` or `cli_mcp --provider modal`)
|
|
needs_secrets: true
|
|
evals:sandboxed:
|
|
cmd: python -m products.insights_ai.eval_harness.harness
|
|
description: Alias of `evals` (kept for back-compat)
|
|
needs_secrets: true
|
|
quality:
|
|
lint:
|
|
cmd: ./bin/ruff.sh check . && pnpm --filter=@hanzo/frontend run lint
|
|
description: Run Python and JS/TS linting
|
|
format:
|
|
cmd: pnpm format
|
|
description: Format both backend and frontend code
|
|
format:yaml:
|
|
cmd: pnpm exec oxfmt --no-error-on-unmatched-pattern "$@"
|
|
description: Format JSON, YAML files
|
|
format:css:
|
|
cmd: pnpm stylelint --fix --allow-empty-input "$@" && pnpm exec oxfmt --no-error-on-unmatched-pattern
|
|
"$@"
|
|
description: Format CSS/SCSS files
|
|
format:js:
|
|
cmd: pnpm oxlint --fix --fix-suggestions --quiet --no-error-on-unmatched-pattern
|
|
"$@" && pnpm exec oxfmt --no-error-on-unmatched-pattern "$@"
|
|
description: Format JavaScript/TypeScript files (frontend)
|
|
format:nodejs:
|
|
cmd: pnpm --dir nodejs exec eslint --fix "$@" && pnpm --dir nodejs exec prettier
|
|
--write "$@"
|
|
description: Format nodejs JavaScript files
|
|
format:rust:
|
|
cmd: rustfmt
|
|
description: Format Rust files
|
|
format:python:
|
|
cmd: ./bin/ruff.sh format
|
|
description: Format Python files
|
|
lint:skills:
|
|
cmd: python products/insights_ai/scripts/build_skills.py --lint
|
|
description: Validate agent skill sources (syntax, frontmatter, depth constraints)
|
|
lint:python:fix:
|
|
cmd: ./bin/ruff.sh check --fix
|
|
description: Fix Python code quality issues
|
|
format:markdown:
|
|
cmd: pnpm exec markdownlint-cli2 --config .config/.markdownlint-cli2.jsonc --fix
|
|
"$@" && pnpm exec oxfmt --no-error-on-unmatched-pattern "$@"
|
|
description: Format Markdown files
|
|
lint:feature-flags:
|
|
cmd: node bin/lint-feature-flag-sorting.mjs
|
|
description: Check that FEATURE_FLAGS in constants.tsx are alphabetically sorted
|
|
lint:feature-flags:fix:
|
|
cmd: node bin/lint-feature-flag-sorting.mjs --fix
|
|
description: Auto-sort FEATURE_FLAGS in constants.tsx alphabetically
|
|
lint:workflows:
|
|
click: insightscli_commands.workflow_lint.cli:cmd_lint_workflows
|
|
description: Lint .github/workflows/** for repo conventions
|
|
lint:migration-deletions:
|
|
click: insightscli_commands.migration_deletions:cmd_lint_migration_deletions
|
|
description: Block deleting historical Django migration files
|
|
format:mcp:
|
|
cmd: pnpm run --filter @hanzo/mcp format
|
|
description: Format MCP files
|
|
auth:
|
|
metabase:login:
|
|
click: insightscli_commands.metabase:metabase_login
|
|
description: Log in to Metabase via SSO and cache the session cookie
|
|
metabase:cookie:
|
|
click: insightscli_commands.metabase:metabase_cookie
|
|
description: Print the cached Metabase cookie header
|
|
tools:
|
|
metabase:databases:
|
|
click: insightscli_commands.metabase:metabase_databases
|
|
description: List Metabase databases (id, name, engine) for a region
|
|
metabase:query:
|
|
click: insightscli_commands.metabase:metabase_query
|
|
description: Run a SQL query against Metabase /api/dataset; results to stdout
|
|
doctor:
|
|
click: insightscli_commands.doctor:doctor
|
|
description: Quick health check for your dev environment
|
|
doctor:disk:
|
|
click: insightscli_commands.doctor:doctor_disk
|
|
description: Interactive disk space cleanup for common Insights dev bloat
|
|
doctor:zombies:
|
|
click: insightscli_commands.doctor:doctor_zombies
|
|
description: Find and kill orphaned Insights dev processes
|
|
doctor:ports:
|
|
click: insightscli_commands.doctor:doctor_ports
|
|
description: Pre-flight check for host ports the dev stack needs
|
|
doctor:migrate-volumes:
|
|
click: insightscli_commands.doctor:doctor_migrate_volumes
|
|
description: Auto-migrate Datastore/ZooKeeper data to the new named docker volumes
|
|
doctor:report:
|
|
click: insightscli_commands.doctor:doctor_report
|
|
description: Dump a paste-ready dev-environment diagnostics report for devex triage
|
|
product:bootstrap:
|
|
click: insightscli_commands.product.cli:cmd_bootstrap
|
|
description: Scaffold a new product with canonical structure
|
|
product:lint:
|
|
click: insightscli_commands.product.cli:cmd_lint
|
|
description: Check product structure for misplaced files
|
|
product:isolate:scan:
|
|
click: insightscli_commands.product.cli:cmd_isolate_scan
|
|
description: Read-only isolation recon for the facade migration skill
|
|
product:isolate:move:
|
|
click: insightscli_commands.product.cli:cmd_isolate_move
|
|
description: Mechanical isolation moves with repo-wide path rewrites
|
|
product:lint:owners:
|
|
click: insightscli_commands.product.cli:cmd_lint_owners
|
|
description: Validate product.yaml owners against Insights/insights GitHub teams
|
|
product:maturity:
|
|
click: insightscli_commands.product.cli:cmd_maturity
|
|
description: Score product maturity across isolation dimensions
|
|
tool:temporal-codec-server:
|
|
bin_script: temporal-codec-server
|
|
description: Run a local Temporal codec server to decode Fernet payloads for debugging
|
|
hidden: true
|
|
tool:temporal-django-worker:
|
|
bin_script: temporal-django-worker
|
|
description: Start Temporal worker with graceful shutdown handling
|
|
tool:temporal-recording-rasterizer-worker:
|
|
bin_script: temporal-recording-rasterizer-worker
|
|
description: Start recording rasterizer Temporal worker (Puppeteer + Chromium)
|
|
hidden: true
|
|
tool:download-mmdb:
|
|
bin_script: download-mmdb
|
|
description: Download and cache GeoLite2 MaxMind database with retry logic
|
|
tool:download-sentiment-model:
|
|
bin_script: download-sentiment-model
|
|
description: Download and export sentiment ONNX model for local AI observability
|
|
development
|
|
services:
|
|
- temporal
|
|
tool:script:
|
|
bin_script: script
|
|
description: Run a .script program or compiled .scriptc bytecode on the script
|
|
VM (nodejs by default, --python for the Python VM)
|
|
tool:scriptc:
|
|
bin_script: scriptc
|
|
description: Compile a .script program to .scriptc bytecode or JavaScript
|
|
tool:ruff:
|
|
bin_script: ruff.sh
|
|
description: Python linter and formatter with virtualenv auto-activation
|
|
tool:turbo:
|
|
bin_script: turbo
|
|
description: Turborepo wrapper with automatic dependency installation
|
|
tool:unit-metrics:
|
|
bin_script: unit_metrics.py
|
|
description: WSGI app that aggregates Prometheus metrics from NGINX Unit status
|
|
endpoint
|
|
hidden: true
|
|
tool:create-ch-migration:
|
|
cmd: python manage.py create_ch_migration
|
|
description: Generate new Datastore migration scaffold
|
|
tool:print-script-stl:
|
|
cmd: python manage.py print_script_stl_table
|
|
description: Print the script standard library definitions for reference
|
|
hidden: true
|
|
datastore:logs:init:
|
|
bin_script: datastore-logs-init
|
|
description: Initialize Datastore logs schema (temporary, pre-migration)
|
|
hidden: true
|
|
datastore:metrics:init:
|
|
bin_script: datastore-metrics-init
|
|
description: Initialize Datastore metrics schema (temporary, pre-migration)
|
|
hidden: true
|
|
datastore:multinode:start:
|
|
cmd: tools/infra-scripts/datastore-multinode/start-multinode-datastore
|
|
description: Boot the multinode Datastore smoke-test stack (one server per logical cluster) for local migration verification
|
|
hidden: true
|
|
datastore:multinode:verify:
|
|
cmd: python tools/infra-scripts/datastore-multinode/verify-multinode-datastore.py
|
|
description: Assert that the multinode Datastore stack ended up with the expected per-node table layout
|
|
hidden: true
|
|
datastore:multinode:test:
|
|
cmd: tools/infra-scripts/datastore-multinode/multinode-migration-smoke
|
|
description: Boot a per-cluster Datastore stack and smoke-test migrations against it
|
|
hidden: true
|
|
create:notebook:node:
|
|
bin_script: create-notebook-node.sh
|
|
description: Create a new NotebookNode file and update types and editor references
|
|
hidden: true
|
|
tool:granian-metrics:
|
|
bin_script: granian_metrics.py
|
|
description: HTTP server that aggregates Prometheus metrics from Granian workers
|
|
hidden: true
|
|
sync:storage:
|
|
bin_script: sync-storage
|
|
description: 'Sync object storage between MinIO and SeaweedFS, per service or all of them'
|
|
hidden: true
|
|
tool:check_ducklake_up:
|
|
bin_script: check_ducklake_up
|
|
description: Healthcheck for Ducklake with self-healing
|
|
hidden: true
|
|
start:llm:gateway:
|
|
bin_script: start-llm-gateway
|
|
description: Start the LLM gateway service
|
|
needs_secrets: true
|
|
hidden: true
|
|
insights:node:
|
|
bin_script: insights-node
|
|
description: Start the insights-node service (old plugin-server)
|
|
needs_secrets: true
|
|
hidden: true
|
|
start:mcp:server:
|
|
bin_script: start-mcp-server
|
|
description: Start the MCP server
|
|
needs_secrets: true
|
|
hidden: true
|
|
start:stripe:app:
|
|
bin_script: start-stripe-app
|
|
description: Start the Stripe app dev server (requires Stripe CLI)
|
|
needs_secrets: true
|
|
generate_personinsights_proto:
|
|
bin_script: generate_personinsights_proto.sh
|
|
description: 'Regenerate the personinsights protobuf clients from proto/ into the generated package'
|
|
hidden: true
|
|
phrocs:build:
|
|
cmd: cd tools/phrocs && make build
|
|
description: Build the phrocs binary from source
|
|
ci:wait:for:docker:
|
|
bin_script: ci-wait-for-docker
|
|
description: Launch Docker Compose services in CI and later wait for readiness
|
|
hidden: true
|
|
ci:find_affected_stories:
|
|
bin_script: find-affected-stories
|
|
description: Compute the set of stories affected by changed files during storybook builds
|
|
hidden: true
|
|
ci:frontend_exclude_filter:
|
|
bin_script: frontend-exclude-filter
|
|
description: Emit the dorny paths-filter excluding Node-only product workspaces (from pnpm-workspace.yaml) for frontend/storybook CI gating
|
|
hidden: true
|
|
ci:insights:
|
|
click: insightscli_commands.ci_insights:ci_insights
|
|
description: Show CI insights for the current repo + branch (search/view/plan subcommands)
|
|
ci:preflight:
|
|
click: insightscli_commands.ci_preflight:ci_preflight
|
|
description: Catch deterministic CI failures reachable from your diff before you push (advisory; --fix, --strict)
|
|
publish:static:
|
|
bin_script: publish-static
|
|
description: 'Mirror a built STATIC_ROOT into the shared object origin, so chunks outlive the pod that built them'
|
|
hidden: true
|
|
prune:static:
|
|
bin_script: prune-static
|
|
description: 'Hold the static origin to its 30-day deploy horizon'
|
|
hidden: true
|
|
desktop:
|
|
desktop:dev:
|
|
cmd: pnpm --dir products/desktop dev
|
|
description: Run the desktop app dev stack (build deps, then phrocs with Electron)
|
|
desktop:test:
|
|
cmd: pnpm --dir products/desktop test
|
|
description: Run desktop unit tests (Vitest via turbo, nested workspace)
|
|
desktop:typecheck:
|
|
cmd: pnpm --dir products/desktop typecheck
|
|
description: Typecheck all desktop packages (turbo)
|
|
desktop:lint:
|
|
cmd: pnpm --dir products/desktop exec biome ci . && node products/desktop/scripts/check-host-boundaries.mjs
|
|
description: Check desktop code quality without writing (Biome + host boundaries, mirrors desktop-quality CI)
|
|
desktop:lint:fix:
|
|
cmd: pnpm --dir products/desktop run lint
|
|
description: Autofix desktop lint issues (biome check --write --unsafe)
|
|
|
|
owners:
|
|
owners:resolve:
|
|
click: insights_owners.cli:cmd_resolve
|
|
description: Resolve ownership for paths (args or newline-delimited stdin); --json for machine output
|
|
owners:who:
|
|
click: insights_owners.cli:cmd_who
|
|
description: Show who owns a single path (owners, status, slack, source)
|
|
owners:unowned:
|
|
click: insights_owners.cli:cmd_unowned
|
|
description: List unowned tracked files, respecting owners:null exemptions (optional PREFIX)
|
|
owners:lint:
|
|
click: insights_owners.cli:cmd_lint
|
|
description: Validate owners.yaml schema, product.yaml conflicts, dead globs, coverage (--live checks the GitHub org)
|
|
owners:fmt:
|
|
click: insights_owners.cli:cmd_fmt
|
|
description: Dry-run oracle showing how the owners.yaml layout differs from canonical placement (never writes)
|
|
devex:
|
|
devex:feedback:
|
|
click: insightscli_commands.feedback:devex_feedback
|
|
description: Send feedback about the dev experience to the devex team (humans and agents)
|
|
utilities:
|
|
nuke:
|
|
steps:
|
|
- name: announce
|
|
cmd: say -v 'Samantha' 'Nuclear launch detected' 2>/dev/null || true
|
|
- name: node_modules
|
|
cmd: rm -rf **/node_modules
|
|
- name: python venvs
|
|
cmd: rm -rf .venv .flox/cache/venv
|
|
- name: rust builds
|
|
cmd: cd rust && cargo clean && find . -name 'index.node' -type f -delete
|
|
- name: flox on activate
|
|
cmd: ./.flox/env/on-activate.sh
|
|
- dev:reset
|
|
description: Wipe everything and rebuild (node_modules, Python, Rust, then dev:reset)
|
|
prompt: true
|
|
worktrees:clean:
|
|
click: insightscli_commands.worktrees:worktrees_clean
|
|
description: Clear out unused Claude Code / Codex / Insights Desktop worktrees by age
|
|
pr:upload-image:
|
|
click: insightscli_commands.upload_image:upload_image
|
|
description: Upload screenshot(s) to the public Insights/pr-assets repo and print embeddable PR markdown
|
|
pr:upload-video:
|
|
click: insightscli_commands.upload_video:upload_video
|
|
description: Upload demo video(s) to the public Insights/pr-assets repo and print link markdown
|
|
utilities:insights-worktree:
|
|
bin_script: insights-worktree
|
|
description: Manage isolated git worktrees for Insights development
|
|
hidden: true
|
|
utilities:phw:
|
|
bin_script: phw
|
|
description: Shell function wrapper for worktree management with auto-cd
|
|
hidden: true
|
|
utilities:update-bots-list:
|
|
bin_script: update-bots-list
|
|
description: Download bot IP list from GoodBots GitHub and save locally
|
|
hidden: true
|
|
utilities:dump-scriptvmrs-stl:
|
|
bin_script: dump_scriptvmrs_stl
|
|
description: Generate Rust ScriptVM standard library definitions for error tracking
|
|
hidden: true
|
|
utilities:hobby-ci:
|
|
bin_script: hobby-ci.py
|
|
description: DigitalOcean CI automation for Hobby deployment testing
|
|
hidden: true
|
|
utilities:install-insightscli-completion:
|
|
bin_script: install-insightscli-completion
|
|
description: Install shell completion for insightscli (bash/zsh)
|
|
hidden: true
|
|
utilities:check-uv-python-compat:
|
|
bin_script: check_uv_python_compatibility.py
|
|
description: CI validation for uv/Python version compatibility
|
|
hidden: true
|
|
environment:
|
|
flox:activate:
|
|
cmd: flox activate
|
|
description: Enter Flox development environment shell.
|
|
hidden: true
|
|
setup:python:
|
|
cmd: uv sync --active
|
|
description: Install Python dependencies to active virtual environment
|
|
sandbox:
|
|
bin_script: sandbox
|
|
description: Manage isolated dev sandboxes
|
|
start:stripe:mock:
|
|
bin_script: start-stripe-mock
|
|
description: 'Start the local Stripe mock API server'
|
|
hidden: true
|
|
fix:rdkafka:paths:
|
|
bin_script: fix-rdkafka-paths
|
|
description: 'Rewrite node-rdkafka dylib paths to use @loader_path on macOS for worktree portability'
|
|
hidden: true
|
|
warm:flags:cache:
|
|
bin_script: warm-flags-cache
|
|
description: 'Warm the feature-flags hypercache against the local dev environment (requires ./bin/start running)'
|
|
hidden: true
|
|
flags:jumphost:
|
|
bin_script: rust-jumphost
|
|
description: 'Shell into the flags-cache-jumphost pod (uses $KUBE_NAMESPACE, defaults to insights)'
|
|
hidden: true
|
|
wait:for:postgres:tables:
|
|
bin_script: wait-for-postgres-tables
|
|
description: 'Block until the named Postgres tables exist'
|
|
hidden: true
|
|
dev:sandbox:
|
|
bin_script: dev-sandbox
|
|
description: 'Run a command inside the dev filesystem sandbox (internal; used by insightscli dev:generate by default unless INSIGHTS_DEV_SANDBOX=0)'
|
|
hidden: true
|
|
dev:sandbox:selftest:
|
|
bin_script: dev-sandbox-selftest
|
|
description: 'Verify the dev sandbox profile: blocks credentials/escapes, allows the toolchain'
|
|
hidden: true
|
|
build:dashboard:widget:types:
|
|
bin_script: build-dashboard-widget-types.py
|
|
description: Widget enum preflight, date options, and form-field manifest codegen
|
|
hidden: true
|
|
start:ai:gateway:
|
|
bin_script: start-ai-gateway
|
|
description: 'Bring up the local Go ai-gateway via docker compose and top up the anonymous-team ledger for AGENT_USE_AI_GATEWAY dev'
|
|
hidden: true
|
|
dockerignore:drop:check:
|
|
bin_script: dockerignore-drop-check
|
|
description: List files an .dockerignore change drops from the image build context
|
|
hidden: true
|
|
verify:metrics:pipe:
|
|
bin_script: verify-metrics-pipe
|
|
description: 'Verify the local metrics pipe reached Datastore metrics1'
|
|
hidden: true
|
|
send:dev:metrics:
|
|
bin_script: send-dev-metrics.sh
|
|
description: 'Send a synthetic OTLP counter/gauge/histogram through the metrics ingest chain'
|
|
hidden: true
|
|
inject_mcp_intents:
|
|
bin_script: inject_mcp_intents.py
|
|
description: 'Used when developing MCP Analytics locally and trying to load some intents'
|
|
hidden: true
|
|
dev:sandbox:shims:selftest:
|
|
bin_script: dev-sandbox-shims-selftest
|
|
description: 'Verify the uv/pnpm dev-sandbox shims route install subcommands correctly'
|
|
hidden: true
|
|
setup:gateway:e2e:
|
|
bin_script: setup-gateway-e2e
|
|
description: 'Provision the local ai-gateway e2e: enable the team, mint a sk-, publish the credential blob, fund the ledger'
|
|
hidden: true
|
|
dev:open:when:ready:
|
|
bin_script: dev-open-when-ready
|
|
description: 'Open a URL in the browser once its server is listening (internal; runs unsandboxed so sandboxed procs can auto-open)'
|
|
hidden: true
|
|
docker:agent:proxy:
|
|
cmd: node dist/agent-proxy-server.mjs
|
|
description: 'Production entrypoint: run the agent-proxy Node service'
|
|
hidden: true
|
|
ensure:local:setup:
|
|
bin_script: ensure-local-setup
|
|
description: Idempotent local-dev bootstrap (e.g. the wizard OAuth app); runs automatically on insightscli start
|
|
hidden: true
|
|
start:desktop:
|
|
bin_script: start-desktop
|
|
description: 'Install the nested products/desktop workspace and run its dev stack (Electron app plus package watchers via turbo); used by the desktop intent on insightscli start'
|
|
hidden: true
|
|
check:forge:credential:
|
|
bin_script: check-forge-credential
|
|
description: 'Answer in seconds whether this build can read the forge, before a long build spends the hour finding out'
|
|
hidden: true
|
|
check:imports:are:committed:
|
|
bin_script: check-imports-are-committed
|
|
description: 'Check that every first-party import resolves to a committed file, so a fresh clone of this commit starts'
|
|
hidden: true
|
|
debrand:
|
|
bin_script: debrand
|
|
description: 'Rewrite an upstream tree into the Hanzo Insights tree; --check asserts the rename holds'
|
|
hidden: true
|
|
debrand:selftest:
|
|
bin_script: debrand-selftest
|
|
description: 'Self-test bin/debrand, one check per rename defect that has happened before'
|
|
hidden: true
|
|
tables:
|
|
bin_script: tables
|
|
description: 'Report the warehouse table names this tree declares, and refuse a versioned one'
|
|
hidden: true
|
|
theme:
|
|
bin_script: theme
|
|
description: 'Assert the Hanzo design tokens survive a rebase onto upstream'
|
|
hidden: true
|