From ab6c097819134f4a3a96eeb7e81b83b22b48d711 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesu=CC=81s=20Pe=CC=81rez?= Date: Sun, 11 Jan 2026 22:36:45 +0000 Subject: [PATCH] chore: fix md lint --- .vale/styles/write-good/README.md | 4 +- .woodpecker/README.md | 18 +- CONTRIBUTING.md | 4 +- README.md | 36 +- SECURITY.md | 2 +- agents/README.md | 26 +- assets/BRANDING.md | 14 +- assets/README.md | 20 +- assets/how-to-use.md | 48 +-- config/README.md | 50 +-- config/ag/README.md | 6 +- crates/typedialog-agent/README.md | 16 +- crates/typedialog-agent/quickstart.md | 245 ------------ .../typedialog-ag-core/LLM_INTEGRATION.md | 357 ------------------ .../typedialog-agent/typedialog-ag/README.md | 80 ++-- install/README.md | 24 +- templates/nickel/README.md | 18 +- tests/agent/README.md | 20 +- 18 files changed, 193 insertions(+), 795 deletions(-) delete mode 100644 crates/typedialog-agent/quickstart.md delete mode 100644 crates/typedialog-agent/typedialog-ag-core/LLM_INTEGRATION.md diff --git a/.vale/styles/write-good/README.md b/.vale/styles/write-good/README.md index 3edcc9b..ca6e580 100644 --- a/.vale/styles/write-good/README.md +++ b/.vale/styles/write-good/README.md @@ -2,7 +2,7 @@ Based on [write-good](https://github.com/btford/write-good). > Naive linter for English prose for developers who can't write good and wanna learn to do other stuff good too. -``` +```text The MIT License (MIT) Copyright (c) 2014 Brian Ford @@ -24,4 +24,4 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -``` +```text diff --git a/.woodpecker/README.md b/.woodpecker/README.md index 8c822d6..4ed1ecd 100644 --- a/.woodpecker/README.md +++ b/.woodpecker/README.md @@ -62,10 +62,10 @@ docker push your-registry/typedialog-ci:latest # Update .woodpecker/ci.yml and ci-advanced.yml # Change: image: rust:latest # To: image: your-registry/typedialog-ci:latest -``` +```text **Size comparison breakdown**: -``` +```text Original (Dockerfile): Base Debian + buildtools: 1.6GB Rust toolchain: 538MB @@ -79,7 +79,7 @@ Optimized (Dockerfile.prebuilt): Binaries only: 140MB (no cargo cache) -------------------------------- TOTAL: ~600MB -``` +```text ### 3. Secrets Configuration @@ -102,14 +102,14 @@ The `release-docker.yml` pipeline requires access to Docker socket. Configure in ```yaml # In Woodpecker server config WOODPECKER_BACKEND_DOCKER_ENABLE_PRIVILEGED: true -``` +```text **Option B: Volume mount** (recommended): Already configured in pipeline via: ```yaml volumes: - /var/run/docker.sock:/var/run/docker.sock -``` +```text Ensure Woodpecker agent has permission to access Docker socket. @@ -200,8 +200,8 @@ All release pipelines trigger on Git tags `v*` (e.g., `v0.1.0`). | Caching | ✅ Built-in | ⚠️ Server-side** | | SBOM | ✅ Auto-upload | ⚠️ Manual*** | -\* Multi-OS builds require multiple Woodpecker agents -\*\* Configure in Woodpecker server settings +\* Multi-OS builds require multiple Woodpecker agents +\*\* Configure in Woodpecker server settings \*\*\* Manual upload to Gitea/Forgejo releases ## Triggering Pipelines @@ -213,7 +213,7 @@ git push origin main # Release pipeline (manual tag) git tag v0.1.0 git push origin v0.1.0 -``` +```text **Selecting Release Pipeline**: @@ -228,7 +228,7 @@ Example: mv .woodpecker/release.yml .woodpecker/.release-basic.yml.disabled mv .woodpecker/release-advanced.yml .woodpecker/.release-advanced.yml.disabled mv .woodpecker/release-docker.yml .woodpecker/release.yml -``` +```text Or configure in Woodpecker UI to enable/disable specific pipelines. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d7691d0..ceb74a9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -23,7 +23,7 @@ cd typedialog # Run full validation just check-all -``` +```text ## Making Changes @@ -103,7 +103,7 @@ Open a GitHub Discussion first for: See [SECURITY.md](SECURITY.md) for reporting process. -## Questions? +## Questions - Discussions: GitHub Discussions - Chat: (if applicable) diff --git a/README.md b/README.md index 55192df..7fa2654 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ ![Coverage](https://img.shields.io/badge/coverage-tracking-blue) - + # TypeDialog > ▲ Create Type-Safe Interactive Dialogs. @@ -69,7 +69,7 @@ cargo run --example form # Run with defaults pre-loaded typedialog form config.toml --defaults defaults.json -``` +```text ## Backends at a Glance @@ -89,7 +89,7 @@ typedialog text "Email" --format json # Pre-populate form with defaults typedialog form schema.toml --defaults config.json --format json -``` +```text **Use for:** Scripts, CI/CD pipelines, server tools, piping between tools **See:** [`examples/04-backends/cli/`](examples/04-backends/cli/) @@ -100,7 +100,7 @@ Full terminal UI with keyboard navigation and mouse support. ```bash cargo run -p typedialog-tui --example form_with_autocompletion -``` +```text **Use for:** Interactive dashboards, system administration tools, complex forms **See:** [`examples/04-backends/tui/`](examples/04-backends/tui/) @@ -112,7 +112,7 @@ HTTP server with browser-based forms. ```bash cargo run -p typedialog-web -- --config config/web/dev.toml # Open http://localhost:3000 -``` +```text **Use for:** SaaS platforms, public forms, mobile-friendly interfaces **See:** [`examples/04-backends/web/`](examples/04-backends/web/) @@ -127,7 +127,7 @@ typedialog-ai --config config/ai/dev.toml --query "How do I configure encryption # Build knowledge graph typedialog-ai --config config/ai/production.toml --build-graph ./docs -``` +```text **Use for:** Documentation search, context-aware assistance, knowledge retrieval, semantic search **Features:** @@ -162,7 +162,7 @@ Create `hello.agent.mdx`: --- Say hello to {{name}} in a warm and friendly way! -``` +```text Run it: @@ -170,7 +170,7 @@ Run it: typedialog-ag hello.agent.mdx # Prompts: name (String): Alice # Output: Hello Alice! It's wonderful to meet you! ... -``` +```text ### Supported LLM Providers @@ -200,7 +200,7 @@ typedialog-ag examples/12-agent-execution/creative-writer.agent.mdx # Privacy-first analysis with Ollama (local) typedialog-ag examples/12-agent-execution/local-privacy.agent.mdx -``` +```text **Learn more:** @@ -226,7 +226,7 @@ typedialog-prov-gen --name myproject --providers aws,hetzner --ai-assist # Dry run (preview without generating) typedialog-prov-gen --name myproject --dry-run -``` +```text ### Provisioning Features @@ -269,7 +269,7 @@ typedialog form schema.toml --backend tui # 3. Get validated output in any format # JSON, YAML, TOML, or back to Nickel with type preservation -``` +```text **Benefits:** @@ -331,7 +331,7 @@ just distro::create-package # Full CI/CD just ci::full -``` +```text See [docs/development.md](docs/development.md) for details. @@ -341,7 +341,7 @@ See [docs/development.md](docs/development.md) for details. ```bash just build::release -``` +```text Binaries in `target/release/` @@ -351,7 +351,7 @@ Binaries in `target/release/` just distro::build-release just distro::create-package just distro::create-checksums -``` +```text Package includes binaries, configs, and installers. @@ -365,7 +365,7 @@ curl -fsSL https://github.com/anthropics/typedialog/releases/download/latest/ins # Windows PowerShell irm https://github.com/anthropics/typedialog/releases/download/latest/install.ps1 | iex -``` +```text See [docs/release.md](docs/release.md) for release workflow. @@ -381,7 +381,7 @@ config/ ├── ai/ # default, dev, production (RAG/embeddings) ├── ag/ # default, dev, production (Agent/LLM) └── prov-gen/ # default, dev, production (IaC generation) -``` +```text See [docs/configuration.md](docs/configuration.md) and [config/README.md](config/README.md) for all options. @@ -406,7 +406,7 @@ typedialog/ ├── docs/ # Documentation ├── justfile # Command orchestration └── Cargo.toml # Workspace manifest -``` +```text ## Key Technologies @@ -461,7 +461,7 @@ just distro::build-release # Release build just distro::create-package # Package just distro::create-checksums # Checksums just distro::package-release # Prepare release -``` +```text ## System Requirements diff --git a/SECURITY.md b/SECURITY.md index 9547d1f..3efe6a5 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -12,7 +12,7 @@ ### Private Reporting -Send vulnerability reports to: **jpl@jesusperez.com** +Send vulnerability reports to: **** Include in your report: - Description of the vulnerability diff --git a/agents/README.md b/agents/README.md index 344f551..576f827 100644 --- a/agents/README.md +++ b/agents/README.md @@ -18,7 +18,7 @@ typedialog-ag agents/greeting.agent.mdx curl -X POST http://localhost:8765/agents/greeting/execute \ -H "Content-Type: application/json" \ -d '{"name":"Alice"}' -``` +```text ### 2. code-reviewer.agent.mdx **Purpose**: Comprehensive code review @@ -34,7 +34,7 @@ curl -X POST http://localhost:8765/agents/code-reviewer/execute \ "language": "rust", "code": "fn add(a: i32, b: i32) -> i32 { a + b }" }' -``` +```text ### 3. architect.agent.mdx **Purpose**: Software architecture design @@ -50,7 +50,7 @@ curl -X POST http://localhost:8765/agents/architect/execute \ "feature": "Real-time chat system", "tech_stack": "Rust, WebSockets, PostgreSQL" }' -``` +```text ### 4. summarizer.agent.mdx **Purpose**: Text summarization @@ -65,7 +65,7 @@ curl -X POST http://localhost:8765/agents/summarizer/execute \ "text": "Long article text here...", "style": "technical" }' -``` +```text ### 5. test-generator.agent.mdx **Purpose**: Generate unit tests @@ -81,7 +81,7 @@ curl -X POST http://localhost:8765/agents/test-generator/execute \ "language": "python", "function_code": "def factorial(n):\\n return 1 if n == 0 else n * factorial(n-1)" }' -``` +```text ### 6. doc-generator.agent.mdx **Purpose**: Generate technical documentation @@ -96,7 +96,7 @@ curl -X POST http://localhost:8765/agents/doc-generator/execute \ "language": "javascript", "code": "function debounce(fn, delay) { ... }" }' -``` +```text ### 7. translator.agent.mdx **Purpose**: Language translation @@ -112,7 +112,7 @@ curl -X POST http://localhost:8765/agents/translator/execute \ "source_lang": "English", "target_lang": "Spanish" }' -``` +```text ### 8. debugger.agent.mdx **Purpose**: Debug code issues @@ -129,7 +129,7 @@ curl -X POST http://localhost:8765/agents/debugger/execute \ "code": "let x = vec![1,2,3]; println!(\"{}\", x[5]);", "error": "index out of bounds: the len is 3 but the index is 5" }' -``` +```text ### 9. refactor.agent.mdx **Purpose**: Code refactoring @@ -146,7 +146,7 @@ curl -X POST http://localhost:8765/agents/refactor/execute \ "code": "function calc(a,b,op){if(op==='+')return a+b;if(op==='-')return a-b;}", "goal": "Improve readability and type safety" }' -``` +```text ## Features Demonstrated @@ -187,7 +187,7 @@ typedialog-ag transpile agents/greeting.agent.mdx # Execute (interactive) typedialog-ag agents/greeting.agent.mdx -``` +```text ### HTTP Server Testing ```bash @@ -206,7 +206,7 @@ curl -X POST http://localhost:8765/validate \ curl -X POST http://localhost:8765/agents/greeting/execute \ -H "Content-Type: application/json" \ -d '{"name":"World"}' -``` +```text ## Best Practices @@ -225,7 +225,7 @@ Ensure you have API keys configured: ```bash export ANTHROPIC_API_KEY=sk-ant-... export OPENAI_API_KEY=sk-... # If using OpenAI models -``` +```text ## Cache @@ -236,6 +236,6 @@ typedialog-ag cache stats # Clear cache typedialog-ag cache clear -``` +```text Cache location: `~/.typeagent/cache/` diff --git a/assets/BRANDING.md b/assets/BRANDING.md index 3c2024a..d397889 100644 --- a/assets/BRANDING.md +++ b/assets/BRANDING.md @@ -72,7 +72,7 @@ The TypeDialog logo is composed of three essential elements that work together t /* CSS usage */ font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; -``` +```text ### Sizing @@ -165,7 +165,7 @@ font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; .cursor { animation: blink 1s ease-in-out infinite; } -``` +```text - **Duration**: 1 second - **Function**: ease-in-out (smooth acceleration/deceleration) @@ -183,7 +183,7 @@ font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; .text-pulse { animation: text-pulse 3s ease-in-out infinite; } -``` +```text - **Duration**: 3 seconds - **Function**: ease-in-out @@ -248,25 +248,25 @@ Format: `typedialog_[component]_[variant].svg` ### Web - Header Logo ```html TypeDialog -``` +```text ### App - Favicon ```html -``` +```text ### Email - Static Logo ```html TypeDialog -``` +```text ### Print - Monochrome Logo ```html TypeDialog -``` +```text --- diff --git a/assets/README.md b/assets/README.md index 218804b..7ff4b51 100644 --- a/assets/README.md +++ b/assets/README.md @@ -13,7 +13,7 @@ Official logo assets for **TypeDialog** — typed dialogs for inputs, forms and TypeDialog -``` +```text ### For React/Vue @@ -23,13 +23,13 @@ import logo from '/assets/typedialog_logo_h.svg'; export default function Header() { return TypeDialog; } -``` +```text ### For Markdown/Docs ```markdown ![TypeDialog](/assets/typedialog_logo_h.svg) -``` +```text --- @@ -110,7 +110,7 @@ export default function Header() { --td-primary: #3a3a50; /* Primary gray */ --td-accent: #4f46e5; /* Accent indigo */ --td-white: #ffffff; /* Contrast */ -``` +```text --- @@ -198,7 +198,7 @@ All TypeDialog branding uses **Inter** font (Google Fonts). ```css @import url('https://fonts.googleapis.com/css2?family=Inter:wght@500&display=swap'); font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif; -``` +```text - **Weights**: 400 (regular), 500 (medium), 600 (semibold) - **Sizes**: 14-24px (responsive) @@ -221,7 +221,7 @@ font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif; height: auto; } -``` +```text ### Markdown @@ -229,13 +229,13 @@ font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif; # ![TypeDialog](/assets/typedialog_logo_h.svg) Welcome [Link text](/) -``` +```text ### Rust / Markdown Docs ```markdown ![TypeDialog](assets/typedialog_logo_h.svg) -``` +```text --- @@ -253,7 +253,7 @@ font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif; -``` +```text ### Scalability @@ -298,7 +298,7 @@ TypeDialog logo is part of the TypeDialog project. Use according to project lice --- -## Questions? +## Questions Refer to the comprehensive documentation: 1. `index.html` for visual reference diff --git a/assets/how-to-use.md b/assets/how-to-use.md index 337bcb5..3232e7f 100644 --- a/assets/how-to-use.md +++ b/assets/how-to-use.md @@ -65,7 +65,7 @@ Quick integration guide with code examples for different frameworks and contexts -``` +```text ### React @@ -84,7 +84,7 @@ export default function Header() { ); } -``` +```text ### Vue @@ -111,7 +111,7 @@ import TypeDialogLogo from '@/assets/assets/typedialog_logo_h.svg'; height: auto; } -``` +```text ### Svelte @@ -130,7 +130,7 @@ import TypeDialogLogo from '@/assets/assets/typedialog_logo_h.svg'; height: auto; } -``` +```text ### Angular @@ -148,7 +148,7 @@ import TypeDialogLogo from '@/assets/assets/typedialog_logo_h.svg'; max-width: 240px; height: auto; } -``` +```text --- @@ -158,13 +158,13 @@ import TypeDialogLogo from '@/assets/assets/typedialog_logo_h.svg'; ```markdown ![TypeDialog](./assets/typedialog_logo_h.svg) -``` +```text ### With Link ```markdown [![TypeDialog](./assets/typedialog_logo_h.svg)](https://yoursite.com) -``` +```text ### mdBook / GitHub Docs @@ -172,7 +172,7 @@ import TypeDialogLogo from '@/assets/assets/typedialog_logo_h.svg'; # ![TypeDialog](../assets/typedialog_logo_h.svg) Welcome to TypeDialog Content here... -``` +```text ### Rust Project README @@ -182,7 +182,7 @@ Content here... ![TypeDialog](assets/typedialog_logo_h.svg) Typed dialogs for inputs, forms and schemas you can trust. -``` +```text --- @@ -196,7 +196,7 @@ Typed dialogs for inputs, forms and schemas you can trust. -``` +```text ### Hero Section @@ -221,7 +221,7 @@ Typed dialogs for inputs, forms and schemas you can trust. to { opacity: 1; transform: translateY(0); } } -``` +```text ### Navigation Bar @@ -247,7 +247,7 @@ Typed dialogs for inputs, forms and schemas you can trust. height: auto; } -``` +```text --- @@ -270,7 +270,7 @@ Typed dialogs for inputs, forms and schemas you can trust. -``` +```text ### Social Media @@ -281,7 +281,7 @@ Typed dialogs for inputs, forms and schemas you can trust. -``` +```text --- @@ -334,7 +334,7 @@ body.dark-mode { width: 240px; height: 64px; } -``` +```text ### SVG Direct Approach @@ -362,7 +362,7 @@ body.dark-mode { .logo-dark { display: block; } } -``` +```text --- @@ -376,7 +376,7 @@ body.dark-mode { TypeDialog -``` +```text ### CSS Loading @@ -387,7 +387,7 @@ body.dark-mode { /* Use data URIs for very small files */ .logo { background-image: url('data:image/svg+xml;...'); } -``` +```text ### Caching @@ -399,7 +399,7 @@ body.dark-mode { /> -``` +```text --- @@ -415,7 +415,7 @@ body.dark-mode { Home -``` +```text ### ARIA Labels @@ -426,7 +426,7 @@ body.dark-mode { alt="TypeDialog" aria-label="TypeDialog - Typed dialogs for inputs, forms and schemas you can trust" /> -``` +```text ### Animation Preferences @@ -439,7 +439,7 @@ body.dark-mode { /* Option 2: Disable animations */ .logo * { animation: none !important; } } -``` +```text --- @@ -498,14 +498,14 @@ convert typedialog_logo_h.svg typedialog_logo_h.png # Using online tool # https://convertio.co/svg-png/ -``` +```text ### PDF Export ```bash # Using Inkscape inkscape typedialog_logo_h.svg --export-filename=typedialog_logo_h.pdf -``` +```text --- diff --git a/config/README.md b/config/README.md index e27b1cd..139fa26 100644 --- a/config/README.md +++ b/config/README.md @@ -6,7 +6,7 @@ Pre-configured settings for each typedialog backend and environment. Configuration files are organized by **backend** (CLI, TUI, Web, AI, Agent, Prov-gen) and **environment** (default, dev, production). -``` +```text config/ ├── cli/ │ ├── default.toml # Standard CLI settings @@ -32,7 +32,7 @@ config/ ├── default.toml # Standard provisioning settings ├── dev.toml # Development (Hetzner/LXD) └── production.toml # Production (AWS/GCP) -``` +```text ## Backend Configurations @@ -49,7 +49,7 @@ config/ **Usage:** ```bash typedialog --config config/cli/production.toml form.toml -``` +```text **Features:** - Inline validation @@ -70,7 +70,7 @@ typedialog --config config/cli/production.toml form.toml **Usage:** ```bash typedialog-tui --config config/tui/production.toml form.toml -``` +```text **Features:** - 3-panel layout (fields, input, buttons) @@ -92,7 +92,7 @@ typedialog-tui --config config/tui/production.toml form.toml ```bash typedialog-web --config config/web/production.toml # Server starts on http://localhost:8080 -``` +```text **Features:** - HTML/CSS rendering @@ -113,7 +113,7 @@ typedialog-web --config config/web/production.toml **Usage:** ```bash typedialog-ai --config config/ai/production.toml --query "user question" -``` +```text **Features:** - RAG pipeline for context retrieval @@ -134,7 +134,7 @@ typedialog-ai --config config/ai/production.toml --query "user question" **Usage:** ```bash typedialog-ag --config config/ag/production.toml task.agent.mdx -``` +```text **Features:** - Multi-provider (Claude, OpenAI, Gemini, Ollama) @@ -155,7 +155,7 @@ typedialog-ag --config config/ag/production.toml task.agent.mdx **Usage:** ```bash typedialog-prov-gen --config config/prov-gen/production.toml --name myproject -``` +```text **Features:** - Multi-cloud support (AWS, GCP, Hetzner, UpCloud, LXD) @@ -198,7 +198,7 @@ temperature = 0.7 default_providers = ["hetzner", "lxd"] verbose = true log_level = "debug" -``` +```text **Usage:** ```bash @@ -208,7 +208,7 @@ typedialog-web --config config/web/dev.toml typedialog-ai --config config/ai/dev.toml --query "question" typedialog-ag --config config/ag/dev.toml task.agent.mdx typedialog-prov-gen --config config/prov-gen/dev.toml --name project -``` +```text ### Production Configuration @@ -249,7 +249,7 @@ default_providers = ["aws", "gcp"] strict_validation = true require_encryption = true require_tests = true -``` +```text **Usage:** ```bash @@ -259,7 +259,7 @@ typedialog-web --config config/web/production.toml typedialog-ai --config config/ai/production.toml --query "question" typedialog-ag --config config/ag/production.toml task.agent.mdx typedialog-prov-gen --config config/prov-gen/production.toml --name project -``` +```text ## Common Settings @@ -274,7 +274,7 @@ description = "Optional description" validate_on_change = true show_errors_inline = true strict_validation = true -``` +```text ### Output Configuration @@ -283,7 +283,7 @@ strict_validation = true format = "json" # json, yaml, toml, text pretty_print = true debug_output = false -``` +```text ### Logging @@ -291,7 +291,7 @@ debug_output = false [logging] level = "info" # debug, info, warn, error file = "/var/log/typedialog/app.log" -``` +```text ## Custom Configuration @@ -308,7 +308,7 @@ nano config/cli/custom.toml # Use it typedialog --config config/cli/custom.toml form.toml -``` +```text ### Override Specific Settings @@ -328,7 +328,7 @@ typedialog-tui --config config/tui/default.toml form.toml export TYPEDIALOG_WEB_PORT=3000 export TYPEDIALOG_WEB_CORS_ORIGINS="localhost,example.com" typedialog-web --config config/web/default.toml -``` +```text ## CLI Backend Configuration Details @@ -350,7 +350,7 @@ show_errors_inline = true # Inline error messages [timeout] max_duration = 3600 # Max form time (seconds) input_timeout = 300 # Field input timeout -``` +```text ## TUI Backend Configuration Details @@ -380,7 +380,7 @@ emacs_mode = false [performance] render_throttle = 16 # milliseconds max_fps = 60 # frames per second -``` +```text ## Web Backend Configuration Details @@ -413,7 +413,7 @@ cache_static = true cache_ttl = 3600 enable_compression = true compression_threshold = 1024 -``` +```text ## AI Backend Configuration Details @@ -439,7 +439,7 @@ ttl = 3600 # seconds [ai.knowledge_graph] enabled = false max_depth = 3 -``` +```text ## Agent Backend Configuration Details @@ -474,7 +474,7 @@ timestamp = true [agent.logging] level = "info" # debug, info, warn, error file = true -``` +```text ## Provisioning Generator Configuration Details @@ -517,7 +517,7 @@ require_tests = false [provisioning.security] require_encryption = false scan_templates = false -``` +```text ## Distribution Configurations @@ -538,7 +538,7 @@ distribution/typedialog-0.1.0/ │ ├── ag/ │ └── prov-gen/ └── ... -``` +```text Users can then choose configs during installation: @@ -552,7 +552,7 @@ bash installers/install.sh # Use specific config typedialog --config ~/.config/typedialog/cli/production.toml form.toml -``` +```text ## Best Practices diff --git a/config/ag/README.md b/config/ag/README.md index 9dc47de..3a69d73 100644 --- a/config/ag/README.md +++ b/config/ag/README.md @@ -24,13 +24,13 @@ typedialog-ag run agent.mdx # Explicit run command typedialog-ag transpile agent.mdx -o out.ncl # Transpile to Nickel typedialog-ag validate agent.mdx # Validate without executing typedialog-ag cache clear|stats # Manage cache -``` +```text With custom configuration: ```bash typedialog-ag -c ~/.config/typedialog/ag/config.toml run agent.mdx TYPEDIALOG_ENV=dev typedialog-ag run agent.mdx -``` +```text ### Agent HTTP Server Mode Start HTTP API server for remote agent execution: @@ -39,7 +39,7 @@ typedialog-ag serve # Start server (127.0.0.1:8765) typedialog-ag serve --port 9000 # Custom port typedialog-ag serve --host 0.0.0.0 # Public interface typedialog-ag -c ~/.config/typedialog/ag/server-default.toml serve -``` +```text Server endpoints: - `GET /health` - Health check diff --git a/crates/typedialog-agent/README.md b/crates/typedialog-agent/README.md index 5ec6814..1a97776 100644 --- a/crates/typedialog-agent/README.md +++ b/crates/typedialog-agent/README.md @@ -15,7 +15,7 @@ Part of the [TypeDialog](https://github.com/yourusername/typedialog) ecosystem. ## Architecture -``` +```text Layer 1: Markup Parser .agent.mdx → AST Parse @directives, {{variables}}, markdown @@ -25,7 +25,7 @@ Layer 2: Nickel Transpiler + Evaluator Layer 3: Executor AgentDefinition + Inputs → LLM → Validated Output -``` +```text ## Quick Start @@ -43,7 +43,7 @@ typeagent validate architect.agent.mdx # Start HTTP server typeagent serve --port 8765 -``` +```text ### Programmatic Usage @@ -67,7 +67,7 @@ async fn main() -> anyhow::Result<()> { println!("{}", result.output); Ok(()) } -``` +```text ## Integration with TypeDialog Ecosystem @@ -80,7 +80,7 @@ typedialog form agent-builder.toml --backend ai # 2. Execute with typeagent typeagent architect.agent.mdx -``` +```text ### With Vapora (MCP Plugin) @@ -91,16 +91,16 @@ use typedialog_ag_core::AgentLoader; let loader = AgentLoader::new(); let agent = loader.load(Path::new("agents/architect.agent.mdx")).await?; // Execute via Vapora orchestration -``` +```text ## Project Structure -``` +```text typedialog-agent/ ├── typedialog-ag-core/ # Core library (reusable) ├── typedialog-ag/ # CLI binary └── typedialog-ag-server/ # HTTP server -``` +```text ## Documentation diff --git a/crates/typedialog-agent/quickstart.md b/crates/typedialog-agent/quickstart.md deleted file mode 100644 index e15e63d..0000000 --- a/crates/typedialog-agent/quickstart.md +++ /dev/null @@ -1,245 +0,0 @@ -# TypeAgent Quick Start - -Get started with TypeAgent in 5 minutes. - -## Prerequisites - -- Rust toolchain (1.75+) -- Anthropic API key - -## Setup - -### 1. Set API Key - -```bash -export ANTHROPIC_API_KEY=your-api-key-here -``` - -### 2. Build TypeAgent - -```bash -cd crates/typedialog-agent/typedialog-ag -cargo build --release -``` - -### 3. Add to PATH (optional) - -```bash -export PATH="$PWD/target/release:$PATH" -``` - -## Your First Agent - -### Create an Agent File - -Create `hello.agent.mdx`: - -```markdown ---- -@agent { - role: friendly assistant, - llm: claude-3-5-haiku-20241022 -} - -@input name: String ---- - -Say hello to {{ name }} in a creative and friendly way! -``` - -### Run It - -```bash -typeagent hello.agent.mdx -``` - -You'll see: - -``` -🤖 TypeAgent Executor - -✓ Parsed agent definition -✓ Transpiled to Nickel -✓ Evaluated agent definition - -Agent Configuration: - Role: friendly assistant - Model: claude-3-5-haiku-20241022 - Max tokens: 4096 - Temperature: 0.7 - -name (String): Alice█ -``` - -Type a name and press Enter. The agent will execute and show the response! - -## Next Steps - -### Try the Examples - -```bash -# Simple greeting -typeagent tests/fixtures/simple.agent.mdx --yes - -# Creative haiku -typeagent tests/fixtures/haiku.agent.mdx -``` - -### Validate Before Running - -```bash -typeagent validate hello.agent.mdx -``` - -### See the Nickel Code - -```bash -typeagent transpile hello.agent.mdx -``` - -## Common Workflows - -### Development Workflow - -```bash -# 1. Write your agent -vim agent.mdx - -# 2. Validate it -typeagent validate agent.mdx - -# 3. Test with verbose output -typeagent agent.mdx --verbose - -# 4. Run in production -typeagent agent.mdx -``` - -### Quick Iteration - -Use `--yes` to skip prompts during development: - -```bash -# Edit agent.mdx -# Run without prompts -typeagent agent.mdx --yes -``` - -## Advanced Features - -### Context Injection - -Import files into your agent: - -```markdown -@import "./docs/**/*.md" as documentation -@shell "git log --oneline -5" as recent_commits -``` - -### Output Validation - -Ensure output meets requirements: - -```markdown -@validate output { - must_contain: ["Security", "Performance"], - format: markdown, - min_length: 100 -} -``` - -### Conditional Logic - -Use Tera template syntax: - -```markdown -{% if has_description %} -Description: {{ description }} -{% endif %} -``` - -## Troubleshooting - -### "ANTHROPIC_API_KEY not set" - -```bash -export ANTHROPIC_API_KEY=sk-ant-... -``` - -### "Failed to parse agent MDX" - -Check your frontmatter syntax: - -```markdown ---- -@agent { - role: assistant, # <- comma required - llm: claude-3-5-haiku-20241022 -} ---- -``` - -### "Permission denied" - -```bash -chmod +x ./target/release/typeagent -``` - -## Learn More - -- [CLI Documentation](typedialog-ag/README.md) -- [LLM Integration Guide](typedialog-ag-core/LLM_INTEGRATION.md) -- [Example Agents](typedialog-ag-core/tests/fixtures/) - -## Support - -- GitHub Issues: https://github.com/jesusperezlorenzo/typedialog/issues -- API Docs: `cargo doc --open --package typedialog-ag-core` - -## Next Example: Architecture Agent - -Create `architect.agent.mdx`: - -```markdown ---- -@agent { - role: software architect, - llm: claude-3-5-sonnet-20241022 -} - -@input feature_name: String -@input requirements?: String - -@validate output { - must_contain: ["## Architecture", "## Components"], - format: markdown, - min_length: 200 -} ---- - -# Architecture Design: {{ feature_name }} - -You are an experienced software architect. Design a comprehensive architecture for: - -**Feature**: {{ feature_name }} - -{% if requirements %} -**Requirements**: {{ requirements }} -{% endif %} - -Provide: -1. High-level architecture overview -2. Component breakdown -3. Data flow -4. Technology recommendations - -Use clear markdown formatting with sections. -``` - -Run it: - -```bash -typeagent architect.agent.mdx -``` - -The agent will prompt for inputs and generate a complete architecture design! diff --git a/crates/typedialog-agent/typedialog-ag-core/LLM_INTEGRATION.md b/crates/typedialog-agent/typedialog-ag-core/LLM_INTEGRATION.md deleted file mode 100644 index bfc2e04..0000000 --- a/crates/typedialog-agent/typedialog-ag-core/LLM_INTEGRATION.md +++ /dev/null @@ -1,357 +0,0 @@ -# LLM Integration - -TypeAgent Core now includes full LLM execution capabilities, allowing agents to call real language models. - -## Supported Providers - -### Claude (Anthropic) -- ✅ Fully supported with streaming -- Models: `claude-3-5-haiku-20241022`, `claude-3-5-sonnet-20241022`, `claude-opus-4`, etc. -- Requires: `ANTHROPIC_API_KEY` environment variable -- Features: Full SSE streaming, token usage tracking - -### OpenAI -- ✅ Fully supported with streaming -- Models: `gpt-4o`, `gpt-4o-mini`, `gpt-4-turbo`, `o1`, `o3`, `o4-mini`, etc. -- Requires: `OPENAI_API_KEY` environment variable -- Features: Full SSE streaming, token usage tracking - -### Google Gemini -- ✅ Fully supported with streaming -- Models: `gemini-2.0-flash-exp`, `gemini-1.5-pro`, `gemini-1.5-flash`, etc. -- Requires: `GEMINI_API_KEY` or `GOOGLE_API_KEY` environment variable -- Features: Full JSON streaming, token usage tracking -- Note: Assistant role is mapped to "model" in Gemini API - -### Ollama (Local Models) -- ✅ Fully supported with streaming -- Models: `llama2`, `mistral`, `phi`, `codellama`, `mixtral`, `qwen`, etc. -- Requires: Ollama running locally (default: http://localhost:11434) -- Optional: `OLLAMA_BASE_URL` to override endpoint -- Features: Full JSON streaming, token usage tracking, privacy (local execution) -- Note: No API key required - runs entirely on your machine - -## Setup - -### 1. Set API Key - -**For Claude:** -```bash -export ANTHROPIC_API_KEY=your-api-key-here -``` - -**For OpenAI:** -```bash -export OPENAI_API_KEY=your-api-key-here -``` - -**For Gemini:** -```bash -export GEMINI_API_KEY=your-api-key-here -# Or use GOOGLE_API_KEY -export GOOGLE_API_KEY=your-api-key-here -``` - -**For Ollama (local models):** -```bash -# Install and start Ollama first -# Download from: https://ollama.ai -ollama serve # Start the Ollama server - -# Pull a model (in another terminal) -ollama pull llama2 - -# Optional: Override default URL -export OLLAMA_BASE_URL=http://localhost:11434 -``` - -### 2. Create Agent MDX File - -```markdown ---- -@agent { - role: assistant, - llm: claude-3-5-haiku-20241022 -} ---- - -Hello {{ name }}! How can I help you today? -``` - -### 3. Execute Agent - -```rust -use typedialog_ag_core::{MarkupParser, NickelTranspiler, NickelEvaluator, AgentExecutor}; -use std::collections::HashMap; - -#[tokio::main] -async fn main() -> Result<(), Box> { - // Parse MDX - let parser = MarkupParser::new(); - let ast = parser.parse(mdx_content)?; - - // Transpile to Nickel - let transpiler = NickelTranspiler::new(); - let nickel_code = transpiler.transpile(&ast)?; - - // Evaluate to AgentDefinition - let evaluator = NickelEvaluator::new(); - let agent_def = evaluator.evaluate(&nickel_code)?; - - // Execute with LLM - let executor = AgentExecutor::new(); - let mut inputs = HashMap::new(); - inputs.insert("name".to_string(), serde_json::json!("Alice")); - - let result = executor.execute(&agent_def, inputs).await?; - println!("Response: {}", result.output); - println!("Tokens: {}", result.metadata.tokens.unwrap_or(0)); - - Ok(()) -} -``` - -## Configuration - -Agent configuration is specified in the MDX frontmatter: - -```yaml -@agent { - role: creative writer, # System prompt role - llm: claude-3-5-haiku-20241022, # Model name - tools: [], # Tool calling (future) - max_tokens: 4096, # Optional (default: 4096) - temperature: 0.7 # Optional (default: 0.7) -} -``` - -## LLM Provider Architecture - -### Provider Trait - -```rust -#[async_trait] -pub trait LlmProvider: Send + Sync { - async fn complete(&self, request: LlmRequest) -> Result; - fn name(&self) -> &str; -} -``` - -### Request/Response - -```rust -pub struct LlmRequest { - pub model: String, - pub messages: Vec, - pub max_tokens: Option, - pub temperature: Option, - pub system: Option, -} - -pub struct LlmResponse { - pub content: String, - pub model: String, - pub usage: Option, -} -``` - -### Automatic Provider Selection - -The executor automatically selects the correct provider based on model name: - -- `claude-*`, `anthropic-*` → ClaudeProvider -- `gpt-*`, `o1-*`, `o3-*`, `o4-*` → OpenAIProvider -- `gemini-*` → GeminiProvider -- `llama*`, `mistral*`, `phi*`, `codellama*`, `mixtral*`, `qwen*`, etc. → OllamaProvider - -## Examples - -### Run Complete Pipeline - -```bash -cargo run --example llm_execution -``` - -### Compare All Providers - -```bash -# Run all four providers with the same prompt -cargo run --example provider_comparison - -# Run specific provider only -cargo run --example provider_comparison claude -cargo run --example provider_comparison openai -cargo run --example provider_comparison gemini -cargo run --example provider_comparison ollama -``` - -### Run with Test (requires API key) - -```bash -cargo test --package typedialog-ag-core -- test_execute_with_real_llm --exact --ignored --nocapture -``` - -### Integration Test - -```bash -cargo test --package typedialog-ag-core --test simple_integration_test -- test_complete_pipeline_with_llm --exact --ignored --nocapture -``` - -## Error Handling - -```rust -match executor.execute(&agent_def, inputs).await { - Ok(result) => { - if !result.validation_passed { - eprintln!("Validation errors: {:?}", result.validation_errors); - } - println!("Output: {}", result.output); - } - Err(e) => { - if e.to_string().contains("ANTHROPIC_API_KEY") { - eprintln!("Error: API key not set"); - } else { - eprintln!("Execution failed: {}", e); - } - } -} -``` - -## Token Usage Tracking - -All LLM responses include token usage information: - -```rust -let result = executor.execute(&agent_def, inputs).await?; - -if let Some(tokens) = result.metadata.tokens { - println!("Tokens used: {}", tokens); -} - -if let Some(usage) = response.usage { - println!("Input tokens: {}", usage.input_tokens); - println!("Output tokens: {}", usage.output_tokens); - println!("Total tokens: {}", usage.total_tokens); -} -``` - -## Context Injection - -Agents can load context from files, URLs, and shell commands before LLM execution: - -```markdown ---- -@agent { - role: code reviewer, - llm: claude-3-5-sonnet-20241022 -} - -@import "./src/**/*.rs" as source_code -@shell "git diff HEAD~1" as recent_changes - ---- - -Review the following code: - -**Source Code:** -{{ source_code }} - -**Recent Changes:** -{{ recent_changes }} - -Provide security and performance analysis. -``` - -The executor loads all context before calling the LLM, so the model receives the fully rendered prompt with all imported content. - -## Validation - -Output validation runs automatically after LLM execution: - -```markdown ---- -@validate output { - must_contain: ["Security", "Performance"], - format: markdown, - min_length: 100 -} ---- -``` - -Validation results are included in `ExecutionResult`: - -```rust -if !result.validation_passed { - for error in result.validation_errors { - eprintln!("Validation error: {}", error); - } -} -``` - -## Cost Optimization - -### Use Appropriate Models - -- `claude-3-5-haiku-20241022`: Fast, cheap, good for simple tasks -- `claude-3-5-sonnet-20241022`: Balanced performance and cost -- `claude-opus-4`: Most capable, highest cost - -### Limit Token Usage - -```rust -agent_def.config.max_tokens = 500; // Limit response length -``` - -### Cache Context - -The executor supports context caching to avoid re-loading files on each execution (implementation varies by provider). - -## Testing Without API Key - -Tests that require real LLM execution are marked with `#[ignore]`: - -```bash -# Run only non-LLM tests -cargo test --package typedialog-ag-core - -# Run LLM tests (requires ANTHROPIC_API_KEY) -cargo test --package typedialog-ag-core -- --ignored -``` - -## Implementation Files - -- **Provider Trait**: `src/llm/provider.rs` -- **Claude Client**: `src/llm/claude.rs` -- **OpenAI Client**: `src/llm/openai.rs` -- **Gemini Client**: `src/llm/gemini.rs` -- **Ollama Client**: `src/llm/ollama.rs` -- **Executor Integration**: `src/executor/mod.rs` -- **Example**: `examples/llm_execution.rs` -- **Multi-Provider Demo**: `examples/provider_comparison.rs` -- **Tests**: `tests/simple_integration_test.rs` - -## Streaming Support - -All four providers (Claude, OpenAI, Gemini, Ollama) support real-time streaming: - -```rust -use typedialog_ag_core::AgentExecutor; - -let executor = AgentExecutor::new(); -let result = executor.execute_streaming(&agent_def, inputs, |chunk| { - print!("{}", chunk); - std::io::stdout().flush().unwrap(); -}).await?; - -println!("\n\nFinal output: {}", result.output); -println!("Tokens: {:?}", result.metadata.tokens); -``` - -The CLI automatically uses streaming for real-time token display. - -### Token Usage in Streaming - -- **Claude**: ✅ Provides token usage in stream (via `message_delta` event) -- **OpenAI**: ❌ No token usage in stream (API limitation - only in non-streaming mode) -- **Gemini**: ✅ Provides token usage in stream (via `usageMetadata` in final chunk) -- **Ollama**: ✅ Provides token usage in stream (via `prompt_eval_count`/`eval_count` in done event) diff --git a/crates/typedialog-agent/typedialog-ag/README.md b/crates/typedialog-agent/typedialog-ag/README.md index ca571ab..bb7f4f2 100644 --- a/crates/typedialog-agent/typedialog-ag/README.md +++ b/crates/typedialog-agent/typedialog-ag/README.md @@ -6,13 +6,13 @@ Command-line interface for executing type-safe AI agents defined in MDX format. ```bash cargo install --path crates/typedialog-agent/typedialog-ag -``` +```text Or build from source: ```bash cargo build --release --package typedialog-ag -``` +```text ## Setup @@ -20,7 +20,7 @@ Set your API key: ```bash export ANTHROPIC_API_KEY=your-api-key-here -``` +```text ## Usage @@ -30,25 +30,25 @@ Run an agent with interactive prompts for inputs: ```bash typeagent agent.mdx -``` +```text Or use the explicit `run` command: ```bash typeagent run agent.mdx -``` +```text Skip input prompts (use defaults): ```bash typeagent agent.mdx --yes -``` +```text Verbose output (show Nickel code): ```bash typeagent agent.mdx --verbose -``` +```text ### Validate an Agent @@ -56,10 +56,10 @@ Check syntax, transpilation, and type checking without executing: ```bash typeagent validate agent.mdx -``` +```text Output: -``` +```text ✓ Validating agent ✓ MDX syntax valid @@ -74,7 +74,7 @@ Agent Summary: Temperature: 0.7 ✓ Agent is valid and ready to execute -``` +```text ### Transpile to Nickel @@ -86,7 +86,7 @@ typeagent transpile agent.mdx # Save to file typeagent transpile agent.mdx -o agent.ncl -``` +```text Output: ```nickel @@ -98,7 +98,7 @@ Output: inputs = {}, template = "Write a haiku about {{ topic }}.", } -``` +```text ## Example Session @@ -117,7 +117,7 @@ Create `haiku.agent.mdx`: --- Write a haiku about {{ topic }}. Return only the haiku, nothing else. -``` +```text ### 2. Validate the Agent @@ -138,7 +138,7 @@ Agent Summary: Temperature: 0.7 ✓ Agent is valid and ready to execute -``` +```text ### 3. Execute the Agent @@ -177,7 +177,7 @@ Metadata: Duration: 1234ms Tokens: 87 Validation: ✓ PASSED -``` +```text ## Agent File Format @@ -200,7 +200,7 @@ Metadata: --- Your template content with {{ variables }}. -``` +```text ### Directives @@ -214,7 +214,7 @@ Defines the agent configuration. llm: claude-3-5-haiku-20241022, tools: [] # Optional } -``` +```text **Supported models:** - `claude-3-5-haiku-20241022` - Fast, cheap @@ -228,7 +228,7 @@ Declares inputs that will be prompted to the user. ```markdown @input name: String # Required input @input description?: String # Optional input -``` +```text #### `@validate` (Optional) @@ -242,7 +242,7 @@ Defines output validation rules. min_length: 100, max_length: 5000 } -``` +```text **Supported formats:** - `markdown` (default) @@ -257,7 +257,7 @@ Import file content into template variables. ```markdown @import "./docs/**/*.md" as documentation @import "https://example.com/schema.json" as schema -``` +```text #### `@shell` (Optional) @@ -266,7 +266,7 @@ Execute shell commands and inject output. ```markdown @shell "git diff HEAD~1" as recent_changes @shell "cargo tree" as dependencies -``` +```text ### Template Syntax @@ -284,7 +284,7 @@ Uses [Tera template engine](https://tera.netlify.app/): # Filters {{ name | upper }} {{ value | default(value="fallback") }} -``` +```text ## Commands @@ -300,7 +300,7 @@ Execute an agent (default command). **Example:** ```bash typeagent agent.mdx --yes --verbose -``` +```text ### `typeagent run ` @@ -312,7 +312,7 @@ Explicit execute command (same as default). **Example:** ```bash typeagent run agent.mdx -``` +```text ### `typeagent validate ` @@ -321,7 +321,7 @@ Validate agent without execution. **Example:** ```bash typeagent validate agent.mdx -``` +```text ### `typeagent transpile ` @@ -333,7 +333,7 @@ Transpile MDX to Nickel. **Example:** ```bash typeagent transpile agent.mdx -o agent.ncl -``` +```text ### `typeagent cache` @@ -354,34 +354,34 @@ Cache management (not yet implemented). ### Missing API Key -``` +```text Error: ANTHROPIC_API_KEY environment variable not set Set ANTHROPIC_API_KEY to use Claude models -``` +```text **Solution:** Export your API key: ```bash export ANTHROPIC_API_KEY=sk-ant-... -``` +```text ### Invalid Agent File -``` +```text Error: Failed to parse agent MDX -``` +```text **Solution:** Validate your agent file: ```bash typeagent validate agent.mdx -``` +```text ### Validation Failures -``` +```text Validation: ✗ FAILED - Output must contain: Security - Output too short: 45 chars (minimum: 100) -``` +```text The agent executed successfully but output validation failed. Adjust your `@validate` rules or improve your prompt. @@ -401,13 +401,13 @@ Make sure the binary is in your PATH: ```bash export PATH="$HOME/.cargo/bin:$PATH" -``` +```text Or use the full path: ```bash ./target/release/typeagent -``` +```text ### Permission denied @@ -415,7 +415,7 @@ Make the binary executable: ```bash chmod +x ./target/release/typeagent -``` +```text ### Slow compilation @@ -424,7 +424,7 @@ Use release mode for better performance: ```bash cargo build --release --package typedialog-ag ./target/release/typeagent agent.mdx -``` +```text ## Development @@ -432,13 +432,13 @@ Run from source: ```bash cargo run --package typedialog-ag -- agent.mdx -``` +```text Run with logging: ```bash RUST_LOG=debug cargo run --package typedialog-ag -- agent.mdx -``` +```text ## License diff --git a/install/README.md b/install/README.md index 4e65e98..7d0803d 100644 --- a/install/README.md +++ b/install/README.md @@ -7,19 +7,19 @@ Quick installation scripts for all platforms. Install with `curl`: ```bash curl -fsSL https://github.com/anthropics/typedialog/releases/download/latest/install.sh | bash -``` +```text Or with `wget`: ```bash wget -qO - https://github.com/anthropics/typedialog/releases/download/latest/install.sh | bash -``` +```text ## Windows Open PowerShell and run: ```powershell irm https://github.com/anthropics/typedialog/releases/download/latest/install.ps1 | iex -``` +```text ## Manual Installation @@ -34,7 +34,7 @@ bash install.sh # Or with environment variables INSTALL_DIR="$HOME/bin" CONFIG_DIR="$HOME/.typedialog" bash install.sh -``` +```text ### Windows @@ -47,7 +47,7 @@ Invoke-WebRequest -Uri "https://github.com/anthropics/typedialog/releases/downlo # Or with parameters .\install.ps1 -InstallDir "C:\Program Files\typedialog" -ConfigDir "C:\Users\$env:USERNAME\AppData\Local\typedialog" -``` +```text ## Configuration @@ -91,7 +91,7 @@ typedialog-web --version # List available configurations ls ~/.config/typedialog/ -``` +```text ## Troubleshooting @@ -103,27 +103,27 @@ Update your PATH: ```bash echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.bashrc source ~/.bashrc -``` +```text **zsh:** ```bash echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.zshrc source ~/.zshrc -``` +```text ### Permission denied Make binaries executable: ```bash chmod +x ~/.local/bin/typedialog* -``` +```text ### Configuration issues Check configuration directory: ```bash cat ~/.config/typedialog/cli/default.toml -``` +```text ## Uninstallation @@ -135,7 +135,7 @@ rm ~/.local/bin/typedialog* # Remove configurations (optional) rm -rf ~/.config/typedialog/ -``` +```text ## Platform Support @@ -175,7 +175,7 @@ cd typedialog tar -xzf distribution/typedialog-0.1.0.tar.gz cp typedialog-0.1.0/bin/* ~/.local/bin/ cp -r typedialog-0.1.0/config/* ~/.config/typedialog/ -``` +```text ## Support diff --git a/templates/nickel/README.md b/templates/nickel/README.md index 4bb3f64..2e5ac9c 100644 --- a/templates/nickel/README.md +++ b/templates/nickel/README.md @@ -43,7 +43,7 @@ Use in form templates with Tera include syntax: contract: "std.string.NonEmpty", default: "myapp" } %} -``` +```text ### Form Templates @@ -51,7 +51,7 @@ Render a complete schema: ```bash typedialog nickel-template forms/config_schema.ncl.j2 form_results.json -o config.ncl -``` +```text ### Macro Templates @@ -60,14 +60,14 @@ Include macros in custom templates: ```jinja2 {% include "macros/contracts.ncl.j2" %} {% include "macros/validation.ncl.j2" %} -``` +```text Then use the defined macros: ```jinja2 {{ non_empty_string("username", "User login name") }} {{ port_number("server_port", "HTTP port") }} -``` +```text ## Template Context Variables @@ -83,7 +83,7 @@ Templates expect the following context from form results: "options": ["option1", "option2"], "groups_by_section": { "section_name": [...fields...] } } -``` +```text ## Examples @@ -108,13 +108,13 @@ default = "1.0.0" name = "debug_mode" type = "confirm" prompt = "Enable debug mode" -``` +```text Render with template: ```bash typedialog nickel-template forms/config_schema.ncl.j2 results.json -o config.ncl -``` +```text Output: @@ -126,7 +126,7 @@ Output: debug_mode | doc "Enable debug mode" : Bool = true, }, } -``` +```text ### Service Specification @@ -140,7 +140,7 @@ typedialog nickel-template forms/service_spec.ncl.j2 \ service_results.json -o service.ncl nickel export service.ncl -``` +```text ## Extending diff --git a/tests/agent/README.md b/tests/agent/README.md index f6b80e4..ff676b5 100644 --- a/tests/agent/README.md +++ b/tests/agent/README.md @@ -23,7 +23,7 @@ cargo run --package typedialog-ag -- tests/agent/test-openai.agent.mdx # Test Gemini provider cargo run --package typedialog-ag -- tests/agent/test-gemini.agent.mdx -``` +```text ### Requirements @@ -38,7 +38,7 @@ export OPENAI_API_KEY=sk-... # For Gemini test export GEMINI_API_KEY=... -``` +```text ## Unit Tests @@ -53,7 +53,7 @@ cargo test --package typedialog-ag-core llm:: # Run with ignored tests (requires API keys) cargo test --package typedialog-ag-core -- --ignored -``` +```text ## Integration Tests @@ -65,7 +65,7 @@ cargo test --package typedialog-ag-core --test integration_test # Run simple integration test cargo test --package typedialog-ag-core --test simple_integration_test -``` +```text ## Test Coverage @@ -127,21 +127,21 @@ To add a new test agent: ## Troubleshooting ### API Key Not Set -``` +```text Error: ANTHROPIC_API_KEY environment variable not set -``` +```text **Solution**: Set the appropriate environment variable ### Quota Exceeded -``` +```text Error: 429 Too Many Requests -``` +```text **Solution**: Wait for quota reset or upgrade API plan ### Ollama Not Running -``` +```text Error: Failed to call Ollama API - is Ollama running? -``` +```text **Solution**: Start Ollama server with `ollama serve` ## See Also