/** * Help command handler */ export function handleHelpCommand(): void { console.log(`NEWO CLI - Multi-Customer Support A professional command-line tool for NEWO AI Agent development with modular architecture and comprehensive multi-customer support. Core Commands: newo pull [--customer ] [--format ] # download projects + attributes + libraries newo push [--customer ] [--format ] # upload modified skills + attributes, publish flows newo status [--customer ] [--format ] # show modified files that would be pushed newo export [--customer ] [--output ] # download V2 bulk export ZIP from platform newo watch [--customer ] # watch for file changes and auto-push newo diff [--customer ] # show differences between local and remote newo logs [--customer ] # fetch and display analytics logs from platform newo conversations [--customer ] [--all] # download user conversations -> conversations.yaml newo sandbox "" [--customer ] # test agent in sandbox - single message mode newo sandbox --actor "message" # continue existing sandbox conversation newo sandbox --list-connectors # list running sandbox connectors (NEW v3.7.5) newo sandbox "" --connector # chat through a specific connector (NEW v3.7.5) newo sandbox --file | --stdin # send long messages from file/stdin (NEW v3.7.5) newo get-skill --project

--agent --flow [--json] # inspect live skill on platform (NEW v3.7.5) newo update-skill --project

--agent --flow [--model /] [--script ] [--publish] # point-edit skill (NEW v3.7.5) newo pull-attributes [--customer ] # download customer + project attributes newo list-customers # list available customers newo meta [--customer ] # get project metadata (debug) newo import-akb [--customer ] # import AKB articles Linting & Formatting (NEW): newo lint [paths...] [--format ] [--reporter ] # static-analysis on DSL files newo lint --changed # lint only files modified since last push newo lint --live # refresh action catalog from NEWO API newo lint --rule --no-rule # selectively enable/disable rules newo lint --max-warnings # fail when warnings exceed threshold newo format [paths...] [--check] # apply canonical formatting (in-place or --check) newo check [paths...] # umbrella: lint + format --check (CI gate) Powered by newo-dsl-analyzer. Exit codes: 0 clean, 1 lint errors, 2 runtime error. Discover rules via the Diagnostic code column (E100, W101, ...); configure them in .neworc.yaml at your repo root. Plugin authors: depend on newo-dsl-core. Project Management: newo create-project [--title ] [--description <desc>] [--version <version>] [--auto-update] # create empty project on platform newo list-registries [--customer <idn>] # list available project registries (production, staging, etc.) newo list-registry-items <registry-idn> [--all] # list available project templates in a registry newo add-project <idn> --item <template-idn> [--registry <registry>] [--version <v>] [--auto-update] # install project from registry template Entity Management (Full Lifecycle Support): newo create-agent <idn> --project <project-idn> [--title <title>] [--description <desc>] # create agent → push to platform ✅ newo delete-agent <agent-idn> --project <project-idn> [--confirm] # delete agent locally (requires --confirm) newo create-flow <idn> --agent <agent-idn> --project <project-idn> [--title <title>] [--description <desc>] [--runner <guidance|nsl>] # create flow → push to platform ✅ newo delete-flow <flow-idn> --agent <agent-idn> --project <project-idn> [--confirm] # delete flow locally (requires --confirm) newo create-skill <idn> --flow <flow-idn> --agent <agent-idn> --project <project-idn> [--title <title>] [--script <content>] [--runner <guidance|nsl>] # create skill → push to platform ✅ newo delete-skill <skill-idn> --flow <flow-idn> --agent <agent-idn> --project <project-idn> [--confirm] # delete skill locally (requires --confirm) Identity & Configuration: newo create-persona <name> [--title <title>] [--description <desc>] # create agent persona ✅ newo create-attribute <idn> --value <value> [--title <title>] [--group <group>] [--value-type <string>] # create customer attribute ✅ Advanced Components (NSL Focus): newo create-event <idn> --flow <flow-id> --skill <skill-idn> [--description <desc>] [--integration <api|system>] [--connector <webhook|system>] # create flow event ✅ newo create-state <idn> --flow <flow-id> [--title <title>] [--default-value <value>] [--scope <user|flow|global>] # create flow state ✅ newo create-parameter <name> --skill <skill-id> [--default-value <value>] # create skill parameter (API limitations) Enterprise Features: newo conversations [--customer <idn>] [--all] # download conversation history newo pull-attributes [--customer <idn>] # sync customer attributes newo import-akb <file> <persona_id> # import knowledge base articles newo pull-integrations [--customer <idn>] # download integrations and connectors → ./newo_customers/<idn>/integrations/ newo push-integrations [--customer <idn>] # upload integration and connector changes to platform newo list-actions [--customer <idn>] # list all available NSL/Jinja script actions with parameters newo profile [--customer <idn>] # display customer profile information newo pull-akb [--customer <idn>] # download AKB articles for all personas with agents → ./newo_customers/<idn>/akb/ newo push-akb [--customer <idn>] # upload AKB articles from local YAML files to platform Analytics & Monitoring (NEW): newo logs [--customer <idn>] # fetch last 1 hour of analytics logs newo logs --hours <n> # fetch logs from last N hours newo logs --from <datetime> --to <datetime> # fetch logs in datetime range (ISO format) newo logs --level <levels> # filter by level: info, warning, error (comma-separated) newo logs --type <types> # filter by type: system, operation, call (comma-separated) newo logs --flow <idn> --skill <idn> # filter by flow and/or skill newo logs --message <text> # search in log messages newo logs --name <ActionName> # filter by action name in data.name, e.g. Gen, GetMemory (NEW v3.7.5) newo logs --event-id <uuid> # filter by external event ID (correlate with sandbox --json) newo logs --follow, -f # tail mode - continuously poll for new logs newo logs --json # output logs as JSON array newo logs --raw # output each log as single JSON line (for piping) Account & Customer Management: newo create-customer <org_name> --email <email> [--tenant <t>] [--phone <p>] [--project <idn>] [--status <temporal|permanent>] # create new NEWO customer newo migrate-account --source <idn> --dest <idn> [--yes] # migrate complete account from source to destination newo verify --source <idn> --dest <idn> # verify migration by comparing entity counts newo create-webhooks [--customer <idn>] # create webhooks from YAML files Flags: --customer <idn> # specify customer (if not set, uses default or interactive selection) --format <cli_v1|newo_v2> # project format (auto-detected from filesystem, or set NEWO_FORMAT in .env) --all # include all available data (for conversations: all personas and acts) --force, -f # force overwrite without prompting (for pull command) --verbose, -v # enable detailed logging and progress information --quiet, -q # minimal output for automation (sandbox only) --actor <id> # continue existing sandbox chat with actor/chat ID --connector <idn> # sandbox: select connector by connector_idn (default: first running) --integration <idn> # sandbox: integration to search connectors in (default: sandbox) --file <path> # sandbox: read message text from file --stdin # sandbox: read message text from stdin --timeout <seconds> # sandbox: max wait for agent response (default: 60) --json # sandbox: machine-readable output incl. external_event_id (user+agent turns) --confirm # confirm destructive operations without prompting --no-publish # skip automatic flow publishing during push operations --output, -o <file> # output file path (for export command) Selective Sync Flags (NEW): --only <resources> # sync only specified resources (comma-separated) --exclude <resources> # exclude specified resources from sync --all # explicitly sync all resources --debounce <ms> # debounce delay for watch mode (default: 1000ms) --detailed, -d # show detailed content diff (for diff command) Resources: projects, attributes, integrations, akb, conversations (read-only) Examples: newo pull --only projects,attributes # pull only projects and attributes newo push --exclude integrations # push all except integrations newo watch --only projects --debounce 2000 # watch projects with 2s delay newo diff --only projects --detailed # show project diffs with content Environment Variables: NEWO_BASE_URL # NEWO API base URL (default: https://app.newo.ai) NEWO_FORMAT # Default format for new pulls: cli_v1 (default) or newo_v2 Single Customer: NEWO_API_KEY # API key for single customer setup NEWO_PROJECT_ID # Optional: specific project ID Multi-Customer: NEWO_API_KEYS # JSON array of API keys or key+project objects NEWO_CUSTOMER_<IDN>_API_KEY # API key for specific customer <IDN> NEWO_CUSTOMER_<IDN>_PROJECT_ID # Optional: specific project ID for customer NEWO_DEFAULT_CUSTOMER # Optional: default customer to use Configuration Examples: # Single customer setup: NEWO_API_KEY=your_api_key_here # Multi-customer JSON array: NEWO_API_KEYS=["key1", "key2", "key3"] # Multi-customer with project IDs: NEWO_API_KEYS=[{"key":"key1","project_id":"uuid1"}, {"key":"key2"}] # Multi-customer individual variables: NEWO_CUSTOMER_acme_API_KEY=acme_api_key_here NEWO_CUSTOMER_globex_API_KEY=globex_api_key_here NEWO_DEFAULT_CUSTOMER=acme Usage Examples: # Basic workflow: newo pull # Download all projects and attributes newo status # Check for local modifications newo push # Upload changes back to NEWO # Watch mode (auto-push on changes): newo watch # Watch all files and auto-push changes newo watch --only projects # Watch only project files newo watch --debounce 2000 # 2-second debounce delay # Diff (compare local vs remote): newo diff # Show all differences newo diff --only projects # Show only project differences newo diff --detailed # Show content-level diffs # Selective sync: newo pull --only projects # Pull only projects newo push --exclude integrations # Push all except integrations newo pull --all # Explicit all resources # Multi-customer operations: newo pull --customer acme # Pull projects for Acme only newo push --customer globex # Push changes for Globex only newo conversations --all # Download all conversations with full history # Complete weather system workflow (FULLY WORKING - NSL Focus): newo create-project weather_system --title "Weather System" --description "Comprehensive weather service" newo create-persona weather_persona --title "Weather Persona" --description "Professional weather assistant" newo create-attribute weather_api_key --value "your_api_key" --group "Weather Config" newo pull # Sync new project locally newo create-agent WeatherBot --project weather_system --title "Weather Bot" --persona-id <persona-id> newo create-flow MainFlow --agent WeatherBot --project weather_system --title "Main Flow" --runner nsl newo push && newo pull # Creates agent + flow, syncs IDs newo create-skill WeatherSkill --flow MainFlow --agent WeatherBot --project weather_system --title "Weather NSL Skill" --runner nsl newo create-event user_message --flow <flow-id> --skill WeatherSkill --integration api --connector webhook newo create-state user_location --flow <flow-id> --title "User Location" --scope user newo create-state request_count --flow <flow-id> --title "Request Count" --scope flow newo push # Creates complete system newo status # Should show: Clean # Import AKB articles: newo import-akb articles.txt da4550db-2b95-4500-91ff-fb4b60fe7be9 # Project Registry - Install templates from registry (NEW): newo list-registries # See available registries newo list-registry-items production # Browse production templates newo list-registry-items production --all # See all versions newo add-project my_calcom --item cal_com_integration # Install latest version newo add-project my_zoho --item zoho_integration --version 1.0.2 # Install specific version newo add-project my_weather --item weather_integration --auto-update # With auto-updates # Sandbox testing (NEW v3.1.0): newo sandbox "Hello, I want to order pizza" # Start new conversation newo sandbox --actor abc123... "I want 2 large pizzas" # Continue conversation newo sandbox "Test query" --verbose # With debug info newo sandbox "Test query" --quiet # For automation/scripts # Sandbox connector selection + automation (NEW v3.7.5): newo sandbox --list-connectors # Show running sandbox connectors newo sandbox "ping" --connector vibe_agent # Chat through specific connector newo sandbox --file ./chunk1.txt --actor abc123... --json # Long message from file, JSON output cat msg.txt | newo sandbox --stdin --timeout 420 --json # From stdin with 7-minute timeout # --json output: {actor_id, persona_id, external_event_id, user_external_event_id, # agent_external_event_id, response, elapsed_ms, timed_out, ...} # Correlate a turn with its logs: newo logs --event-id <external_event_id> --json # Live skill inspection / point edits (NEW v3.7.5): newo get-skill structured_generation --project vibe --agent VibeAgent --flow VibeFlow # View live state newo get-skill structured_generation --project vibe --agent VibeAgent --flow VibeFlow --json # As JSON newo update-skill structured_generation --project vibe --agent VibeAgent --flow VibeFlow \\ --model openai/gpt54 --publish # Switch model and publish newo update-skill my_skill --project p --agent a --flow f --script ./patched.nsl --publish # Replace script # Analytics logs (NEW v3.5.0): newo logs # Last 1 hour of logs newo logs --hours 24 # Last 24 hours newo logs --level warning,error # Only warnings and errors newo logs --type call --skill CreateActor # Skill calls for specific skill newo logs --flow CACreatorFlow --follow # Tail logs for specific flow newo logs --from "2026-01-11T00:00:00Z" --to "2026-01-12T00:00:00Z" # Date range newo logs --json --per 100 # Get 100 logs as JSON newo logs --message "error" --level error # Search errors with message # Customer creation (NEW v3.5.0): newo create-customer "Acme Corp" --email admin@acme.com --tenant acme # Create basic customer newo create-customer "Test Co" --email test@test.com --status temporal # Temporal (trial) customer newo create-customer "Partner" --email p@p.com --project nac_integration --auto-update # With project template File Structure (cli_v1 - default): newo_customers/<customer-idn>/ ├── attributes.yaml # Customer attributes ├── conversations.yaml # User conversations ├── akb/<agent-idn>.yaml # AKB knowledge base ├── integrations/ # Integration configurations └── projects/<project-idn>/ ├── metadata.yaml # Project metadata ├── flows.yaml # Auto-generated structure ├── attributes.yaml # Project attributes ├── libraries/<lib-idn>/ # Shared skill libraries │ ├── metadata.yaml │ └── <skill-idn>/<skill>.jinja|.guidance └── <agent-idn>/<flow-idn>/<skill-idn>/ ├── <skill>.guidance|.jinja # Skill scripts └── metadata.yaml # Skill metadata File Structure (newo_v2 - platform compatible): newo_customers/<customer-idn>/ ├── import_version.txt # Format marker (v2.0.0) ├── attributes.yaml # Customer attributes ├── akb/<agent-idn>.yaml # AKB knowledge base └── <project-idn>/ ├── <project-idn>.yaml # Project metadata ├── attributes.yaml # Project attributes ├── libraries/<lib-idn>/ # Shared skill libraries │ ├── <lib-idn>.yaml # Library + inline skill defs │ └── skills/<skill>.nsl|.nslg └── agents/<agent-idn>/ ├── agent.yaml # Agent metadata └── flows/<flow-idn>/ ├── <flow-idn>.yaml # Flow + inline skill defs + events └── skills/<skill>.nsl|.nslg # Skill scripts Format Detection: Format is auto-detected per customer from the filesystem: - import_version.txt present -> newo_v2 - projects/ directory present -> cli_v1 Set NEWO_FORMAT=newo_v2 in .env for new pulls, or use --format flag For more information, visit: https://github.com/sabbah13/newo-cli `); }