@thierrynakoa/fire-flow 12.2.1 → 13.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CREDITS.md +25 -0
- package/DOMINION-FLOW-OVERVIEW.md +182 -38
- package/README.md +399 -455
- package/TROUBLESHOOTING.md +264 -264
- package/agents/fire-debugger.md +54 -0
- package/agents/fire-executor.md +1610 -1033
- package/agents/fire-fact-checker.md +1 -1
- package/agents/fire-planner.md +85 -17
- package/agents/fire-project-researcher.md +1 -1
- package/agents/fire-researcher.md +4 -22
- package/agents/{fire-phoenix-analyst.md → fire-resurrection-analyst.md} +394 -394
- package/agents/fire-reviewer.md +552 -499
- package/agents/fire-verifier.md +114 -19
- package/bin/cli.js +18 -101
- package/commands/fire-0-orient.md +2 -2
- package/commands/fire-1a-new.md +50 -15
- package/commands/fire-1c-setup.md +33 -5
- package/commands/fire-1d-discuss.md +87 -1
- package/commands/fire-2-plan.md +556 -527
- package/commands/fire-3-execute.md +2046 -1356
- package/commands/fire-4-verify.md +975 -906
- package/commands/fire-5-handoff.md +46 -5
- package/commands/fire-6-resume.md +2 -31
- package/commands/fire-add-new-skill.md +138 -19
- package/commands/fire-autonomous.md +14 -2
- package/commands/fire-complete-milestone.md +1 -1
- package/commands/fire-cost.md +179 -183
- package/commands/fire-debug.md +1 -6
- package/commands/fire-loop-resume.md +2 -2
- package/commands/fire-loop-stop.md +1 -1
- package/commands/fire-loop.md +2 -15
- package/commands/fire-map-codebase.md +1 -1
- package/commands/fire-migrate-database.md +548 -0
- package/commands/fire-new-milestone.md +1 -1
- package/commands/fire-reflect.md +1 -2
- package/commands/fire-research.md +142 -21
- package/commands/{fire-phoenix.md → fire-resurrect.md} +859 -603
- package/commands/fire-scaffold.md +297 -0
- package/commands/fire-search.md +1 -2
- package/commands/fire-security-scan.md +483 -484
- package/commands/fire-setup.md +359 -0
- package/commands/fire-skill.md +770 -0
- package/commands/fire-skills-diff.md +506 -506
- package/commands/fire-skills-history.md +388 -388
- package/commands/fire-skills-rollback.md +7 -7
- package/commands/fire-skills-sync.md +470 -470
- package/commands/fire-test.md +5 -5
- package/commands/fire-todos.md +1 -1
- package/commands/fire-update.md +5 -5
- package/commands/fire-validate-skills.md +282 -0
- package/commands/fire-vuln-scan.md +492 -493
- package/hooks/run-hook.sh +8 -8
- package/hooks/run-session-end.sh +7 -7
- package/hooks/session-end.sh +90 -90
- package/hooks/session-start.sh +1 -1
- package/package.json +4 -24
- package/plugin.json +7 -7
- package/references/autonomy-levels.md +235 -0
- package/references/behavioral-directives.md +95 -3
- package/references/blocker-tracking.md +1 -1
- package/references/circuit-breaker.md +93 -2
- package/references/context-engineering.md +227 -9
- package/references/honesty-protocols.md +70 -1
- package/references/issue-to-pr-pipeline.md +149 -150
- package/references/metrics-and-trends.md +1 -2
- package/references/research-improvements.md +4 -108
- package/references/sdlc-mapping.md +73 -0
- package/references/state-machine.md +151 -0
- package/skills-library/AVAILABLE_TOOLS_REFERENCE.md +333 -0
- package/skills-library/SKILLS-INDEX.md +57 -558
- package/skills-library/SKILLS_LIBRARY_INDEX.md +532 -0
- package/skills-library/_general/api-patterns/api-field-name-mismatch.md +107 -0
- package/skills-library/_general/api-patterns/streaming-command-timeout.md +122 -0
- package/skills-library/_general/api-patterns/streaming-proxy-cors-bypass.md +102 -0
- package/skills-library/_general/automation/settings-gui-generator.md +172 -0
- package/skills-library/_general/database-solutions/data-type-mapping-reference.md +181 -0
- package/skills-library/_general/database-solutions/mysql-limit-offset-string-coercion.md +102 -0
- package/skills-library/_general/database-solutions/mysql-to-pg-migration.md +195 -0
- package/skills-library/_general/database-solutions/orm-schema-portability.md +193 -0
- package/skills-library/_general/database-solutions/persistent-analysis-storage.md +207 -0
- package/skills-library/_general/database-solutions/pg-to-mysql-schema-migration-methodology.md +190 -0
- package/skills-library/_general/database-solutions/sql-dialect-compatibility-matrix.md +306 -0
- package/skills-library/_general/database-solutions/sqlite-to-pg-migration.md +219 -0
- package/skills-library/_general/frontend/canvas-bubble-animation-grouping.md +270 -0
- package/skills-library/_general/frontend/color-token-migration.md +112 -0
- package/skills-library/_general/frontend/framer-motion-layoutid-grouping.md +150 -0
- package/skills-library/_general/frontend/pyqt6-settings-dialog.md +191 -0
- package/skills-library/_general/frontend/react-flow-animated-layout-switching.md +101 -0
- package/skills-library/_general/frontend/react-hooks-order-debugging.md +141 -0
- package/skills-library/_general/frontend/redux-localstorage-auth-desync.md +126 -0
- package/skills-library/_general/frontend/safari-csp-theme-color-debugging.md +124 -0
- package/skills-library/_general/frontend/safari-sw-cache-poisoning.md +138 -0
- package/skills-library/_general/frontend/svg-sparkline-no-charting-library.md +131 -0
- package/skills-library/_general/growth-marketing/oss-daily-growth-intelligence.md +224 -0
- package/skills-library/_general/integrations/claude-code-local-mcp-integration.md +250 -0
- package/skills-library/_general/integrations/mcp-composite-tool-orchestration.md +200 -0
- package/skills-library/_general/methodology/AGENT_SDK_STANDALONE_TOOLING.md +181 -0
- package/skills-library/_general/methodology/AGENT_TEAMS_GUIDE.md +169 -0
- package/skills-library/_general/methodology/ALAS_STATEFUL_EXECUTION.md +207 -0
- package/skills-library/_general/methodology/AUTO_REVIEWER_SUBAGENT.md +211 -0
- package/skills-library/_general/methodology/CONSISTENCY_CHECK_AMBIGUITY_GATE.md +96 -0
- package/skills-library/_general/methodology/DEAD_ENDS_SHELF.md +4 -4
- package/skills-library/_general/methodology/DISTILL_NOT_DUMP.md +108 -0
- package/skills-library/_general/methodology/EXECUTION_PROGRESS_MONITOR.md +157 -0
- package/skills-library/_general/methodology/HIERARCHICAL_REVIEW_MARS.md +122 -0
- package/skills-library/_general/methodology/MCP_INTER_AGENT_BRIDGE.md +207 -0
- package/skills-library/_general/methodology/MERMAID_WIZARD_DIAGRAMS.md +77 -0
- package/skills-library/_general/methodology/MISSING_DIMENSION_DETECTOR.md +89 -0
- package/skills-library/_general/methodology/MULTI_AGENT_COORDINATION.md +397 -0
- package/skills-library/_general/methodology/OBSERVATION_MASKING.md +100 -0
- package/skills-library/_general/methodology/PHOENIX_REBUILD_METHODOLOGY.md +82 -11
- package/skills-library/_general/methodology/REVIEW_BACKTRACK_PANEL.md +140 -0
- package/skills-library/_general/methodology/REVIEW_FIX_LOOP.md +117 -0
- package/skills-library/_general/methodology/VOTING_VERDICT_ARBITRATION.md +155 -0
- package/skills-library/_general/methodology/ZERO_FRICTION_CLI_SETUP.md +2 -2
- package/skills-library/_general/methodology/dead-code-activation.md +123 -0
- package/skills-library/_general/methodology/debug-swarm-researcher-escape-hatch.md +240 -240
- package/skills-library/_general/methodology/shell-autonomous-loop-fixplan.md +1 -1
- package/skills-library/_general/patterns-standards/GOF_DESIGN_PATTERNS_FOR_AI_AGENTS.md +5 -5
- package/skills-library/_general/patterns-standards/cascading-failure-diagnosis.md +119 -0
- package/skills-library/_general/patterns-standards/domain-specific-layout-algorithms.md +209 -0
- package/skills-library/_general/patterns-standards/python-desktop-app-architecture.md +399 -0
- package/skills-library/_general/patterns-standards/realtime-monitoring-dashboard.md +457 -0
- package/skills-library/_general/patterns-standards/togglable-processing-pipeline.md +169 -0
- package/skills-library/_general/performance/liveclock-extraction.md +112 -0
- package/skills-library/_general/performance/ref-based-canvas-animation.md +117 -0
- package/skills-library/_general/performance/use-visible-interval.md +131 -0
- package/skills-library/_general/testing/playwright-firefox-withcredentials-auth-issue.md +104 -0
- package/skills-library/_quarantine/README.md +30 -0
- package/skills-library/api-patterns/BROADCAST_SCHEDULER_SHARED_EXECUTE_FUNCTION.md +150 -0
- package/skills-library/api-patterns/ERROR_RESPONSE_STANDARDS.md +145 -0
- package/skills-library/api-patterns/EXPRESS_ROUTE_ORDERING_MIDDLEWARE_INTERCEPTION.md +326 -0
- package/skills-library/api-patterns/PAGINATION_PATTERNS.md +137 -0
- package/skills-library/api-patterns/PODCAST_PROGRESS_TRACKING_THREE_ROOT_CAUSES.md +277 -0
- package/skills-library/api-patterns/RATE_LIMITING_TOGGLE.md +155 -0
- package/skills-library/api-patterns/graphql-content-queries.md +708 -0
- package/skills-library/appointment-scheduler-design.md +423 -0
- package/skills-library/automation/AUTO_POPULATE_COMPLETE_GUIDE.md +631 -0
- package/skills-library/automation/CC_WORKFLOW_STUDIO.md +83 -0
- package/skills-library/automation/CLAUDE_CODE_SWARM_MODE.md +95 -0
- package/skills-library/automation/DAEMON_TRIGGER_FILE_IPC.md +195 -0
- package/skills-library/automation/scheduled-content-publishing.md +608 -0
- package/skills-library/awesome-workflows/Blogging-Platform-Instructions/view_commands.md +25 -0
- package/skills-library/awesome-workflows/CREDENTIAL-SECURITY-WORKFLOW.md +109 -0
- package/skills-library/awesome-workflows/DEBUGGING-WORKFLOW.md +124 -0
- package/skills-library/awesome-workflows/Design-Review-Workflow/README.md +31 -0
- package/skills-library/awesome-workflows/Design-Review-Workflow/design-principles-example.md +129 -0
- package/skills-library/awesome-workflows/Design-Review-Workflow/design-review-agent.md +107 -0
- package/skills-library/awesome-workflows/Design-Review-Workflow/design-review-claude-md-snippet.md +24 -0
- package/skills-library/awesome-workflows/Design-Review-Workflow/design-review-slash-command.md +38 -0
- package/skills-library/awesome-workflows/PARALLEL-RESEARCH-WORKFLOW.md +89 -0
- package/skills-library/awesome-workflows/PHASE-EXECUTION-WORKFLOW.md +97 -0
- package/skills-library/awesome-workflows/SESSION-HANDOFF-WORKFLOW.md +116 -0
- package/skills-library/cms-patterns/content-branch-preview.md +515 -0
- package/skills-library/cms-patterns/inline-visual-editing.md +666 -0
- package/skills-library/cms-patterns/mdx-component-content.md +649 -0
- package/skills-library/cms-patterns/media-manager-abstraction.md +827 -0
- package/skills-library/cms-patterns/schema-driven-form-generator.md +838 -0
- package/skills-library/complexity-metrics/complexity-divider.md +707 -0
- package/skills-library/complexity-metrics/work-with-complexity.md +193 -0
- package/skills-library/creative-multimedia/animation-stack-guide.md +577 -0
- package/skills-library/creative-multimedia/audio-enhancement-pipeline.md +625 -0
- package/skills-library/creative-multimedia/content-repurposing-pipeline.md +1146 -0
- package/skills-library/creative-multimedia/data-visualization-generator.md +862 -0
- package/skills-library/creative-multimedia/doc-to-podcast-pipeline.md +2184 -0
- package/skills-library/creative-multimedia/ffmpeg-command-generator.md +405 -0
- package/skills-library/creative-multimedia/image-optimization-pipeline.md +605 -0
- package/skills-library/creative-multimedia/multi-format-content-generator.md +1759 -0
- package/skills-library/creative-multimedia/og-image-generator.md +635 -0
- package/skills-library/creative-multimedia/podcast-audio-composition.md +1355 -0
- package/skills-library/creative-multimedia/podcast-quality-evaluation.md +1452 -0
- package/skills-library/creative-multimedia/podcast-script-generation.md +1841 -0
- package/skills-library/creative-multimedia/svg-generation.md +750 -0
- package/skills-library/creative-multimedia/text-to-speech-provider-selector.md +1414 -0
- package/skills-library/creative-multimedia/transcription-pipeline-selector.md +677 -0
- package/skills-library/creative-multimedia/video-streaming-setup.md +559 -0
- package/skills-library/database-solutions/AI_RESPONSE_DATABASE_CACHING.md +520 -0
- package/skills-library/database-solutions/CONDITIONAL_SQL_MIGRATION_PATTERN.md +119 -0
- package/skills-library/database-solutions/DATABASE_COLUMN_NAME_MISMATCH.md +393 -0
- package/skills-library/database-solutions/DATABASE_SCHEMA.md +394 -0
- package/skills-library/database-solutions/DATABASE_SCHEMA_VERIFICATION_GUIDE.md +348 -0
- package/skills-library/database-solutions/DATABASE_STRATEGY.md +71 -0
- package/skills-library/database-solutions/ES_MODULE_SEED_SCRIPT_PATTERN.md +52 -0
- package/skills-library/database-solutions/MIGRATION_GUIDE.md +3 -0
- package/skills-library/database-solutions/PLPGSQL_VARIABLE_CONFLICT_FIX.md +208 -0
- package/skills-library/database-solutions/POSTGRESQL_JSONB_DOUBLE_STRINGIFY_FIX.md +245 -0
- package/skills-library/database-solutions/POSTGRESQL_LICENSE_TABLE_DESIGN.md +393 -0
- package/skills-library/database-solutions/POSTGRESQL_UUID_DOCUMENT_RAG_DUAL_SCOPE.md +732 -0
- package/skills-library/database-solutions/POSTGRES_SQL_TEMPLATE_BINDING_ERROR.md +240 -0
- package/skills-library/database-solutions/PRISMA_DB_PUSH_DATA_LOSS_PREVENTION.md +141 -0
- package/skills-library/database-solutions/PRODUCTION_QUERY_OPTIMIZATION_RESTART_FIX.md +389 -0
- package/skills-library/database-solutions/RLS_SECURITY_GUIDE.md +107 -0
- package/skills-library/database-solutions/SCHEMA_ENHANCEMENTS_GUIDE.md +373 -0
- package/skills-library/database-solutions/SCHEMA_MIGRATION_GUIDE.md +368 -0
- package/skills-library/database-solutions/SCHEMA_VERIFICATION_QUICK_REFERENCE.md +104 -0
- package/skills-library/database-solutions/ai-erd-generator.md +1213 -0
- package/skills-library/database-solutions/content-publishing-states.md +631 -0
- package/skills-library/database-solutions/database-schema-designer.md +522 -0
- package/skills-library/database-solutions/er-diagram-components.md +569 -0
- package/skills-library/database-solutions/er-to-ddl-mapping.md +1405 -0
- package/skills-library/database-solutions/erd-creator-textbook-research.md +433 -0
- package/skills-library/database-solutions/erd-react-flow-architecture.md +1965 -0
- package/skills-library/database-solutions/mariadb-aggregate-function-replacement.md +145 -0
- package/skills-library/database-solutions/normalization-validator.md +778 -0
- package/skills-library/database-solutions/postgres-full-text-search-content.md +494 -0
- package/skills-library/database-solutions/postgresql-to-mysql-runtime-translation.md +286 -0
- package/skills-library/database-solutions/regex-alternation-ordering-sql-types.md +92 -0
- package/skills-library/database-solutions/reserved-word-context-aware-quoting.md +142 -0
- package/skills-library/database-solutions/sql-ddl-generator.md +756 -0
- package/skills-library/database-solutions/supabase-connection-pooler-fix.md +102 -0
- package/skills-library/deployment-security/CPANEL_NODE_DEPLOYMENT.md +166 -0
- package/skills-library/deployment-security/DEPLOYMENT.md +275 -0
- package/skills-library/deployment-security/DEPLOYMENT_CHECKLIST.md +363 -0
- package/skills-library/deployment-security/DEPLOYMENT_PLAN.md +669 -0
- package/skills-library/deployment-security/KNEX_DATABASE_ABSTRACTION.md +444 -0
- package/skills-library/deployment-security/LICENSE_KEY_SYSTEM.md +206 -0
- package/skills-library/deployment-security/NODE18_DEPENDENCY_COMPATIBILITY.md +284 -0
- package/skills-library/deployment-security/PHP_INSTALLER_WIZARD_GUIDE.md +315 -0
- package/skills-library/deployment-security/PM2_ENVIRONMENT_VARIABLE_CACHING.md +256 -0
- package/skills-library/deployment-security/PM2_MEMORY_EXHAUSTION_FIX.md +370 -0
- package/skills-library/deployment-security/PRODUCTION_DEPLOYMENT_GUIDE.md +592 -0
- package/skills-library/deployment-security/PRODUCTION_HARDENING_DOCUMENTATION.md +307 -0
- package/skills-library/deployment-security/PRODUCTION_RECOVERY_CHERRY_PICK_PATTERN.md +202 -0
- package/skills-library/deployment-security/PYINSTALLER_CUDA_WHISPER_BUNDLING.md +236 -0
- package/skills-library/deployment-security/SECURITY.md +41 -0
- package/skills-library/deployment-security/SMTP_SSL_HOSTNAME_MISMATCH_SHARED_HOSTING.md +220 -0
- package/skills-library/deployment-security/SPA_SEO_OPTIMIZATION_CPANEL.md +200 -0
- package/skills-library/deployment-security/SUPABASE_EDGE_FUNCTIONS.md +338 -0
- package/skills-library/deployment-security/VERCEL_GITHUB_DEPLOYMENT_GUIDE.md +858 -0
- package/skills-library/deployment-security/VPS_DEPLOYMENT_READINESS.md +356 -0
- package/skills-library/deployment-security/deployment-changes-not-applying.md +241 -0
- package/skills-library/deployment-security/env-file-management-production-local.md +203 -0
- package/skills-library/deployment-security/express-secure-file-downloads.md +413 -0
- package/skills-library/deployment-security/react-production-deployment-desktop-guide.md +2011 -0
- package/skills-library/deployment-security/self-hosted-supabase-coolify-guide.md +1684 -0
- package/skills-library/deployment-security/unique-features-ai-strategy-plaid-security.md +1613 -0
- package/skills-library/deployment-security/vps-deployment.md +135 -0
- package/skills-library/document-processing/WORD_EXPORT_MARKDOWN_FORMATTING.md +482 -0
- package/skills-library/document-processing/document-ai-landingai-integration.md +677 -0
- package/skills-library/document-processing/express-secure-file-downloads-mern.md +413 -0
- package/skills-library/document-processing/express-secure-file-downloads.md +413 -0
- package/skills-library/document-processing/md-to-word-converter.md +318 -0
- package/skills-library/document-processing/pdf-forms-integration/README.md +101 -0
- package/skills-library/document-processing/pdf-forms-integration/SKILL.md +662 -0
- package/skills-library/ecommerce/ADMIN_PRODUCTS_GUIDE.md +428 -0
- package/skills-library/ecommerce/ECOMMERCE_API_REFERENCE.md +776 -0
- package/skills-library/ecommerce/ECOMMERCE_COMPLETION_SUMMARY.md +673 -0
- package/skills-library/ecommerce/ECOMMERCE_IMPLEMENTATION_GUIDE.md +729 -0
- package/skills-library/ecommerce/ECOMMERCE_QUICK_REFERENCE.md +521 -0
- package/skills-library/ecommerce/ECOMMERCE_TESTING_CHECKLIST.md +565 -0
- package/skills-library/ecommerce/ECOMMERCE_WORKFLOW_GUIDE.md +1059 -0
- package/skills-library/ecommerce/PRODUCT_CREATION_EXPANDED.md +522 -0
- package/skills-library/ecommerce/agentic-commerce-protocol.md +203 -0
- package/skills-library/ecommerce/cart-abandonment-recovery.md +236 -0
- package/skills-library/ecommerce/cart-architecture-patterns.md +300 -0
- package/skills-library/ecommerce/cart-item-count-indicator.md +264 -0
- package/skills-library/ecommerce/checkout-ux-conversion.md +227 -0
- package/skills-library/ecommerce/composable-commerce-selection.md +166 -0
- package/skills-library/ecommerce/ecommerce-analytics-patterns.md +167 -0
- package/skills-library/ecommerce/fraud-detection-patterns.md +179 -0
- package/skills-library/ecommerce/inventory-stock-management.md +270 -0
- package/skills-library/ecommerce/order-saga-state-machine.md +336 -0
- package/skills-library/ecommerce/payment-provider-abstraction.md +245 -0
- package/skills-library/ecommerce/pci-compliance-checklist.md +192 -0
- package/skills-library/ecommerce/refund-chargeback-handling.md +177 -0
- package/skills-library/ecommerce/shipping-carrier-integration.md +218 -0
- package/skills-library/ecommerce/webhook-idempotency-patterns.md +253 -0
- package/skills-library/excalidraw-diagrams/.github/workflows/ci.yml +558 -0
- package/skills-library/excalidraw-diagrams/.github/workflows/prompt-gallery.yml +448 -0
- package/skills-library/excalidraw-diagrams/.github/workflows/release.yml +42 -0
- package/skills-library/excalidraw-diagrams/.github/workflows/test-reusable-ci.yml +25 -0
- package/skills-library/excalidraw-diagrams/CLAUDE.md +57 -0
- package/skills-library/excalidraw-diagrams/LICENSE +21 -0
- package/skills-library/excalidraw-diagrams/README.md +178 -0
- package/skills-library/excalidraw-diagrams/SKILL.md +715 -0
- package/skills-library/form-solutions/BUTTON_TYPE_FORM_SUBMISSION.md +336 -0
- package/skills-library/form-solutions/FILLABLE_PDF_IMPLEMENTATION.md +226 -0
- package/skills-library/form-solutions/SURVEYJS_QUESTIONNAIRE_SYSTEM.md +367 -0
- package/skills-library/form-solutions/tiptap-minimal-setup.md +690 -0
- package/skills-library/frontend/scholarly-classification-bubble-map.md +149 -0
- package/skills-library/infrastructure/ci-cd-pipeline-builder.md +517 -0
- package/skills-library/infrastructure/observability-designer.md +264 -0
- package/skills-library/infrastructure/performance-profiler.md +621 -0
- package/skills-library/installer-wizard-patterns.md +249 -0
- package/skills-library/integrations/CLAUDE_CODE_TOKEN_ANALYTICS.md +160 -0
- package/skills-library/integrations/CONFIGURABLE_AI_PROVIDER_SELECTION.md +728 -0
- package/skills-library/integrations/SOCKET_IO_BROADCAST_ALL_VS_ROOM.md +141 -0
- package/skills-library/integrations/VIRTUAL_MEETINGS_IMPLEMENTATION.md +374 -0
- package/skills-library/integrations/WORDPRESS_LEARNDASH_DATA_RECOVERY.md +53 -0
- package/skills-library/integrations/YOUTUBE_API_SETUP.md +141 -0
- package/skills-library/integrations/YOUTUBE_BOOKMARKING_EXPLANATION.md +252 -0
- package/skills-library/integrations/YOUTUBE_BOOKMARKING_SOLUTION.md +268 -0
- package/skills-library/integrations/YOUTUBE_OAUTH_SETUP_GUIDE.md +200 -0
- package/skills-library/integrations/YOUTUBE_VIDEO_FIX_COMPLETE.md +192 -0
- package/skills-library/integrations/ai-ml/GEMINI_AI_RAG_PIPELINE_COMPLETE_GUIDE.md +195 -0
- package/skills-library/integrations/ai-ml/GEMINI_IMAGE_GENERATION_SETUP.md +64 -0
- package/skills-library/integrations/cloudflare/cloudflare-turnstile-debugging.md +202 -0
- package/skills-library/integrations/cloudflare/cloudflare-turnstile-implementation.md +476 -0
- package/skills-library/integrations/cloudflare-turnstile-debugging.md +202 -0
- package/skills-library/integrations/cloudflare-turnstile-implementation.md +476 -0
- package/skills-library/integrations/ghost-creator-monetization-pattern.md +454 -0
- package/skills-library/integrations/headless-cms-architecture.md +484 -0
- package/skills-library/integrations/headless-cms-stack-selection.md +183 -0
- package/skills-library/integrations/payload-cms-patterns.md +674 -0
- package/skills-library/integrations/realtimestt-openwakeword-cuda-windows.md +229 -0
- package/skills-library/integrations/rss-podcast-integration.md +300 -0
- package/skills-library/integrations/wordpress/WORDPRESS_LEARNDASH_DATA_RECOVERY.md +53 -0
- package/skills-library/integrations/youtube/YOUTUBE_API_SETUP.md +141 -0
- package/skills-library/integrations/youtube/YOUTUBE_BOOKMARKING_EXPLANATION.md +252 -0
- package/skills-library/integrations/youtube/YOUTUBE_BOOKMARKING_SOLUTION.md +268 -0
- package/skills-library/integrations/youtube/YOUTUBE_OAUTH_SETUP_GUIDE.md +200 -0
- package/skills-library/integrations/youtube/YOUTUBE_VIDEO_FIX_COMPLETE.md +192 -0
- package/skills-library/marketing/campaign-analytics.md +97 -0
- package/skills-library/marketing/content-creator.md +105 -0
- package/skills-library/marketing/marketing-strategy-pmm.md +94 -0
- package/skills-library/marketing/social-media-analyzer.md +81 -0
- package/skills-library/methodology/ADVANCED_ORCHESTRATION_PATTERNS.md +401 -0
- package/skills-library/methodology/AGENT_SELF_IMPROVEMENT_LOOP.md +179 -0
- package/skills-library/methodology/BREATH_BASED_PARALLEL_EXECUTION.md +1 -1
- package/skills-library/methodology/CLEANSING_CYCLE.md +358 -0
- package/skills-library/methodology/CONFIDENCE_ANNOTATION_PATTERN.md +143 -0
- package/skills-library/methodology/CRITICAL_PATTERNS_DOCUMENTATION_COMPLETE.md +204 -0
- package/skills-library/methodology/DELIVERABLES_SUMMARY.md +341 -0
- package/skills-library/methodology/DIFFICULTY_AWARE_AGENT_ROUTING.md +252 -0
- package/skills-library/methodology/EVOLUTIONARY_SKILL_SYNTHESIS.md +219 -0
- package/skills-library/methodology/GLOMERULUS_DECISION_GATE.md +223 -0
- package/skills-library/methodology/HIBERNATION_SYSTEM.md +231 -0
- package/skills-library/methodology/INSTRUMENTATION_OVER_RESTRICTION.md +192 -0
- package/skills-library/methodology/MASTER_COMPLETION_SUMMARY.md +444 -0
- package/skills-library/methodology/MASTER_SESSION_COMPLETION.md +743 -0
- package/skills-library/methodology/MERN_QUICK_REFERENCE.md +358 -0
- package/skills-library/methodology/ORGAN_AGENT_MAPPING.md +177 -0
- package/skills-library/methodology/PARALLEL_WAVE_BASED_REFACTORING.md +440 -0
- package/skills-library/methodology/QUICK_REFERENCE.md +358 -0
- package/skills-library/methodology/SDFT_ONPOLICY_SELF_DISTILLATION.md +186 -0
- package/skills-library/methodology/SELF_QUESTIONING_TASK_GENERATION.md +270 -0
- package/skills-library/methodology/SESSION_COMPLETION_SUMMARY.md +304 -0
- package/skills-library/methodology/SESSION_SUMMARY.md +432 -0
- package/skills-library/methodology/WARRIOR_WORKFLOW_DEBUGGING_PROTOCOL.md +252 -0
- package/skills-library/methodology/tech-debt-tracker.md +570 -0
- package/skills-library/parallel-debug/SKILL.md +60 -0
- package/skills-library/patterns-standards/API_PATTERN_FIX_SUMMARY.md +236 -0
- package/skills-library/patterns-standards/BATCH_OPERATIONS_WITH_PROGRESS_MODAL.md +362 -0
- package/skills-library/patterns-standards/CRITICAL_CODING_PATTERNS.md +639 -0
- package/skills-library/patterns-standards/DARK_MODE_MODAL_VISIBILITY.md +258 -0
- package/skills-library/patterns-standards/ERROR_RESILIENCE_IMPLEMENTATION.md +375 -0
- package/skills-library/patterns-standards/ES_MODULE_IMPORT_HOISTING_DOTENV.md +298 -0
- package/skills-library/patterns-standards/NESTED_BACKDROP_FILTER_CSS_ARTIFACT_FIX.md +76 -0
- package/skills-library/patterns-standards/ORDERED_DETECTOR_PIPELINE_GRACEFUL_FALLBACK.md +333 -0
- package/skills-library/patterns-standards/PHASE_IMPORT_ERROR_DEBUGGING.md +271 -0
- package/skills-library/patterns-standards/PYNPUT_GLOBAL_HOTKEY_VK_MATCHING.md +252 -0
- package/skills-library/patterns-standards/REACT_USEEFFECT_CASCADE_RESET_FIX.md +132 -0
- package/skills-library/patterns-standards/SUBMENU_HOVER_DROPDOWN_PATTERN.md +225 -0
- package/skills-library/patterns-standards/TAILWIND_TEXT_VISIBILITY_OVERRIDE.md +322 -0
- package/skills-library/patterns-standards/THEME_AWARE_CSS_VARIABLES_PATTERN.md +209 -0
- package/skills-library/patterns-standards/THEME_USER_OBJECT_PROPERTY_NAMING.md +194 -0
- package/skills-library/patterns-standards/TOOLTIP_BLOCKING_CLICKS_FIX.md +267 -0
- package/skills-library/patterns-standards/claude-code-plugin-structure.md +235 -0
- package/skills-library/patterns-standards/react-i18next-setup.md +429 -0
- package/skills-library/patterns-standards/thesys-c1-generative-ui-integration.md +967 -0
- package/skills-library/plugin-development/CLAUDE_CODE_COMMAND_REGISTRATION_SILENT_FAILURE.md +315 -0
- package/skills-library/plugin-development/plugin-command-namespace-vs-global.md +390 -0
- package/skills-library/plugin-development/plugin-doc-auto-generation.md +172 -0
- package/skills-library/security/GITHUB_REPO_SECURITY_AUDIT.md +115 -0
- package/skills-library/security/admin-deletion-safety.md +396 -0
- package/skills-library/security/application-vuln-patterns.md +477 -0
- package/skills-library/security/env-secrets-manager.md +686 -0
- package/skills-library/security/secure-ai-application-templates.md +347 -0
- package/skills-library/security/sql-injection-prevention-postgresjs.md +151 -0
- package/skills-library/supabase-connection-pooler-fix.md +102 -0
- package/skills-library/system-context/POWERSHELL_BASH_INTEROP.md +82 -0
- package/skills-library/system-context/SERVICE_LIFECYCLE_MANAGEMENT.md +119 -0
- package/skills-library/system-context/SKILL.md +40 -0
- package/skills-library/system-context/WINDOWS_DEV_ENVIRONMENT.md +73 -0
- package/skills-library/testing/E2E_PLAYWRIGHT_PATTERNS.md +99 -0
- package/skills-library/testing/INTEGRATION_TEST_STRATEGY.md +82 -0
- package/skills-library/testing/RED_GREEN_BUGFIX_GATE.md +203 -0
- package/skills-library/testing/TEST_DATA_MANAGEMENT.md +69 -0
- package/skills-library/testing/VITEST_UNIT_TEST_PATTERNS.md +75 -0
- package/skills-library/testing/playwright-api-security-tests.md +202 -0
- package/skills-library/toolbox/SKILL.md +84 -0
- package/skills-library/toolbox/code-graph-and-web-scraping-mcps.md +237 -0
- package/skills-library/ui-ux-pro-max/ACCESSIBILITY_ESSENTIALS.md +115 -0
- package/skills-library/ui-ux-pro-max/DESIGN_SYSTEM_SCAFFOLDING.md +133 -0
- package/skills-library/ui-ux-pro-max/RESPONSIVE_LAYOUT_PATTERNS.md +119 -0
- package/skills-library/ui-ux-pro-max/SKILL.md +386 -0
- package/skills-library/ui-ux-pro-max/data/charts.csv +26 -0
- package/skills-library/ui-ux-pro-max/data/colors.csv +97 -0
- package/skills-library/ui-ux-pro-max/data/icons.csv +101 -0
- package/skills-library/ui-ux-pro-max/data/landing.csv +31 -0
- package/skills-library/ui-ux-pro-max/data/products.csv +97 -0
- package/skills-library/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/skills-library/ui-ux-pro-max/data/stacks/astro.csv +54 -0
- package/skills-library/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/skills-library/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/skills-library/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/skills-library/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/skills-library/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/skills-library/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/skills-library/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/skills-library/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/skills-library/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/skills-library/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/skills-library/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/skills-library/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/skills-library/ui-ux-pro-max/data/styles.csv +68 -0
- package/skills-library/ui-ux-pro-max/data/typography.csv +58 -0
- package/skills-library/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/skills-library/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/skills-library/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/skills-library/wordpress-style-theme-components.md +1526 -0
- package/templates/ASSUMPTIONS.md +1 -1
- package/templates/DECISION_LOG.md +0 -1
- package/templates/phase-prompt.md +1 -1
- package/templates/phoenix-comparison.md +6 -6
- package/templates/skill-api-integration.md +106 -0
- package/templates/skill-architecture-pattern.md +92 -0
- package/templates/skill-debug-pattern.md +98 -0
- package/templates/skill-devops-recipe.md +107 -0
- package/templates/skill-general.md +65 -0
- package/templates/skill-ui-component.md +113 -0
- package/tools/uat-runner.py +179 -0
- package/version.json +7 -3
- package/workflows/handoff-session.md +2 -2
- package/workflows/new-project.md +2 -2
- package/workflows/plan-phase.md +1 -1
- package/.claude-plugin/plugin.json +0 -64
- package/skills-library/_general/methodology/LIVE_BREADCRUMB_PROTOCOL.md +0 -242
- package/skills-library/_general/methodology/llm-judge-memory-crud.md +0 -241
- package/skills-library/methodology/REFLEXION_MEMORY_PATTERN.md +0 -183
- package/skills-library/methodology/RESEARCH_BACKED_WORKFLOW_UPGRADE.md +0 -263
- package/skills-library/methodology/SABBATH_REST_PATTERN.md +0 -267
- package/skills-library/methodology/STONE_AND_SCAFFOLD.md +0 -220
- package/skills-library/specialists/api-architecture/api-designer.md +0 -49
- package/skills-library/specialists/api-architecture/graphql-architect.md +0 -49
- package/skills-library/specialists/api-architecture/mcp-developer.md +0 -51
- package/skills-library/specialists/api-architecture/microservices-architect.md +0 -50
- package/skills-library/specialists/api-architecture/websocket-engineer.md +0 -48
- package/skills-library/specialists/backend/django-expert.md +0 -52
- package/skills-library/specialists/backend/fastapi-expert.md +0 -52
- package/skills-library/specialists/backend/laravel-specialist.md +0 -52
- package/skills-library/specialists/backend/nestjs-expert.md +0 -51
- package/skills-library/specialists/backend/rails-expert.md +0 -53
- package/skills-library/specialists/backend/spring-boot-engineer.md +0 -56
- package/skills-library/specialists/data-ml/fine-tuning-expert.md +0 -48
- package/skills-library/specialists/data-ml/ml-pipeline.md +0 -47
- package/skills-library/specialists/data-ml/pandas-pro.md +0 -47
- package/skills-library/specialists/data-ml/rag-architect.md +0 -51
- package/skills-library/specialists/data-ml/spark-engineer.md +0 -47
- package/skills-library/specialists/frontend/angular-architect.md +0 -52
- package/skills-library/specialists/frontend/flutter-expert.md +0 -51
- package/skills-library/specialists/frontend/nextjs-developer.md +0 -54
- package/skills-library/specialists/frontend/react-native-expert.md +0 -50
- package/skills-library/specialists/frontend/vue-expert.md +0 -51
- package/skills-library/specialists/infrastructure/chaos-engineer.md +0 -74
- package/skills-library/specialists/infrastructure/cloud-architect.md +0 -70
- package/skills-library/specialists/infrastructure/database-optimizer.md +0 -64
- package/skills-library/specialists/infrastructure/devops-engineer.md +0 -70
- package/skills-library/specialists/infrastructure/kubernetes-specialist.md +0 -52
- package/skills-library/specialists/infrastructure/monitoring-expert.md +0 -70
- package/skills-library/specialists/infrastructure/sre-engineer.md +0 -70
- package/skills-library/specialists/infrastructure/terraform-engineer.md +0 -51
- package/skills-library/specialists/languages/cpp-pro.md +0 -74
- package/skills-library/specialists/languages/csharp-developer.md +0 -69
- package/skills-library/specialists/languages/dotnet-core-expert.md +0 -54
- package/skills-library/specialists/languages/golang-pro.md +0 -51
- package/skills-library/specialists/languages/java-architect.md +0 -49
- package/skills-library/specialists/languages/javascript-pro.md +0 -68
- package/skills-library/specialists/languages/kotlin-specialist.md +0 -68
- package/skills-library/specialists/languages/php-pro.md +0 -49
- package/skills-library/specialists/languages/python-pro.md +0 -52
- package/skills-library/specialists/languages/react-expert.md +0 -51
- package/skills-library/specialists/languages/rust-engineer.md +0 -50
- package/skills-library/specialists/languages/sql-pro.md +0 -56
- package/skills-library/specialists/languages/swift-expert.md +0 -69
- package/skills-library/specialists/languages/typescript-pro.md +0 -51
- package/skills-library/specialists/platform/atlassian-mcp.md +0 -52
- package/skills-library/specialists/platform/embedded-systems.md +0 -53
- package/skills-library/specialists/platform/game-developer.md +0 -53
- package/skills-library/specialists/platform/salesforce-developer.md +0 -53
- package/skills-library/specialists/platform/shopify-expert.md +0 -49
- package/skills-library/specialists/platform/wordpress-pro.md +0 -49
- package/skills-library/specialists/quality/code-documenter.md +0 -51
- package/skills-library/specialists/quality/code-reviewer.md +0 -67
- package/skills-library/specialists/quality/debugging-wizard.md +0 -51
- package/skills-library/specialists/quality/fullstack-guardian.md +0 -51
- package/skills-library/specialists/quality/legacy-modernizer.md +0 -50
- package/skills-library/specialists/quality/playwright-expert.md +0 -65
- package/skills-library/specialists/quality/spec-miner.md +0 -56
- package/skills-library/specialists/quality/test-master.md +0 -65
- package/skills-library/specialists/security/secure-code-guardian.md +0 -55
- package/skills-library/specialists/security/security-reviewer.md +0 -53
- package/skills-library/specialists/workflow/architecture-designer.md +0 -53
- package/skills-library/specialists/workflow/cli-developer.md +0 -70
- package/skills-library/specialists/workflow/feature-forge.md +0 -65
- package/skills-library/specialists/workflow/prompt-engineer.md +0 -54
- package/skills-library/specialists/workflow/the-fool.md +0 -62
- /package/skills-library/{performance → _general/performance}/cache-augmented-generation.md +0 -0
- /package/skills-library/{debugging → parallel-debug}/FAILURE_TAXONOMY_CLASSIFICATION.md +0 -0
- /package/skills-library/{debugging → parallel-debug}/THREE_AGENT_HYPOTHESIS_DEBUGGING.md +0 -0
|
@@ -0,0 +1,967 @@
|
|
|
1
|
+
# Thesys C1: Generative UI Integration for LLM-Powered Apps
|
|
2
|
+
|
|
3
|
+
**Skill Name**: `thesys-c1-generative-ui-integration`
|
|
4
|
+
**Category**: AI/UI Integration
|
|
5
|
+
**Last Updated**: October 28, 2025
|
|
6
|
+
**Status**: Production-Ready (Launched April 2025)
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
**C1 by Thesys** is an API middleware that transforms Large Language Model (LLM) text responses into interactive, real-time user interfaces. Instead of rendering walls of text, C1 generates structured UI components like forms, charts, tables, and cards that users can interact with directly.
|
|
13
|
+
|
|
14
|
+
**Key Value Proposition**:
|
|
15
|
+
- 🚀 Build AI frontends **10x faster** and **80% cheaper**
|
|
16
|
+
- 📊 **83% of users** find C1 responses more engaging than text
|
|
17
|
+
- ⚡ Real-time streaming UI (components appear progressively)
|
|
18
|
+
- 🔄 OpenAI-compatible API (drop-in replacement)
|
|
19
|
+
- 🎨 Fully customizable to match your design system
|
|
20
|
+
|
|
21
|
+
**Official Resources**:
|
|
22
|
+
- Website: https://www.thesys.dev
|
|
23
|
+
- Documentation: https://docs.thesys.dev
|
|
24
|
+
- Console (API Keys): https://console.thesys.dev
|
|
25
|
+
- Demo Playground: https://demo.thesys.dev
|
|
26
|
+
- Quick Start: `npx create-c1-app`
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## What C1 Does
|
|
31
|
+
|
|
32
|
+
### Traditional LLM Response:
|
|
33
|
+
```
|
|
34
|
+
"Here's your budget analysis:
|
|
35
|
+
- Total income: $5,000
|
|
36
|
+
- Total expenses: $4,200
|
|
37
|
+
- Remaining: $800
|
|
38
|
+
You're spending 84% of your income..."
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### C1 Response (Generative UI):
|
|
42
|
+
```jsx
|
|
43
|
+
<Card>
|
|
44
|
+
<ProgressChart
|
|
45
|
+
data={[
|
|
46
|
+
{ label: 'Income', value: 5000, color: 'green' },
|
|
47
|
+
{ label: 'Expenses', value: 4200, color: 'red' }
|
|
48
|
+
]}
|
|
49
|
+
/>
|
|
50
|
+
<Form onSubmit={handleBudgetAdjustment}>
|
|
51
|
+
<Input label="Adjust Budget" />
|
|
52
|
+
<Button>Update</Button>
|
|
53
|
+
</Form>
|
|
54
|
+
<Alert severity="warning">
|
|
55
|
+
You're spending 84% of your income. Consider reducing expenses.
|
|
56
|
+
</Alert>
|
|
57
|
+
</Card>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**Result**: Users see live, interactive components instead of text they have to parse.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Use Cases for Budget App
|
|
65
|
+
|
|
66
|
+
### 1. **Interactive Budget Visualization**
|
|
67
|
+
Instead of displaying budget data as text, C1 can generate:
|
|
68
|
+
- Live pie charts showing expense categories
|
|
69
|
+
- Bar graphs comparing monthly spending
|
|
70
|
+
- Interactive sliders to adjust budget allocations
|
|
71
|
+
- Real-time updates as user changes values
|
|
72
|
+
|
|
73
|
+
### 2. **Dynamic Form Generation**
|
|
74
|
+
- Generate expense entry forms based on category
|
|
75
|
+
- Multi-step wizards for complex transactions
|
|
76
|
+
- Conditional fields that appear based on user input
|
|
77
|
+
- Form validation with instant feedback
|
|
78
|
+
|
|
79
|
+
### 3. **Intelligent Data Tables**
|
|
80
|
+
- Sortable, filterable transaction tables
|
|
81
|
+
- Inline editing of expenses
|
|
82
|
+
- Clickable rows that expand for details
|
|
83
|
+
- Export buttons for CSV/PDF
|
|
84
|
+
|
|
85
|
+
### 4. **AI-Powered Recommendations**
|
|
86
|
+
- Interactive cards suggesting budget optimizations
|
|
87
|
+
- Clickable actions ("Reduce dining by 15%")
|
|
88
|
+
- Comparison views (current vs. recommended)
|
|
89
|
+
- Progress tracking towards savings goals
|
|
90
|
+
|
|
91
|
+
### 5. **OIC Document Generation**
|
|
92
|
+
- Step-by-step forms for Form 656 completion
|
|
93
|
+
- Interactive calculators for RCP (Reasonable Collection Potential)
|
|
94
|
+
- Real-time validation of GTA form fields
|
|
95
|
+
- Generated PDF previews with edit capabilities
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## How It Works
|
|
100
|
+
|
|
101
|
+
### Architecture
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
Your App
|
|
105
|
+
↓
|
|
106
|
+
LLM (OpenAI, Claude, etc.)
|
|
107
|
+
↓
|
|
108
|
+
C1 API Middleware (api.thesys.dev)
|
|
109
|
+
↓
|
|
110
|
+
Structured UI Components (JSON)
|
|
111
|
+
↓
|
|
112
|
+
C1 React SDK
|
|
113
|
+
↓
|
|
114
|
+
Rendered Interactive UI
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**Key Difference**:
|
|
118
|
+
- **Traditional**: LLM → Text → Your code parses text → Render UI
|
|
119
|
+
- **C1**: LLM → C1 API → Structured Components → Instant Render
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Integration Steps
|
|
124
|
+
|
|
125
|
+
### Step 1: Get API Key
|
|
126
|
+
|
|
127
|
+
1. Go to https://console.thesys.dev
|
|
128
|
+
2. Sign up / Log in
|
|
129
|
+
3. Generate API key
|
|
130
|
+
4. Copy key to environment variables
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
THESYS_API_KEY=your_api_key_here
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Step 2: Install Dependencies
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
# Option 1: Quick start (creates new project)
|
|
140
|
+
npx create-c1-app my-app
|
|
141
|
+
|
|
142
|
+
# Option 2: Add to existing project
|
|
143
|
+
npm install @thesys/react-sdk
|
|
144
|
+
# or
|
|
145
|
+
yarn add @thesys/react-sdk
|
|
146
|
+
# or
|
|
147
|
+
pnpm add @thesys/react-sdk
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Step 3: Update API Endpoint
|
|
151
|
+
|
|
152
|
+
**Before (OpenAI)**:
|
|
153
|
+
```typescript
|
|
154
|
+
import OpenAI from 'openai';
|
|
155
|
+
|
|
156
|
+
const openai = new OpenAI({
|
|
157
|
+
apiKey: process.env.OPENAI_API_KEY
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
const completion = await openai.chat.completions.create({
|
|
161
|
+
model: "gpt-4",
|
|
162
|
+
messages: [
|
|
163
|
+
{ role: "user", content: "Show me my budget breakdown" }
|
|
164
|
+
]
|
|
165
|
+
});
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
**After (Thesys C1)**:
|
|
169
|
+
```typescript
|
|
170
|
+
import OpenAI from 'openai';
|
|
171
|
+
|
|
172
|
+
const openai = new OpenAI({
|
|
173
|
+
apiKey: process.env.THESYS_API_KEY,
|
|
174
|
+
baseURL: "https://api.thesys.dev/v1/embed" // <-- Only change!
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
const completion = await openai.chat.completions.create({
|
|
178
|
+
model: "gpt-4", // Still use your preferred model
|
|
179
|
+
messages: [
|
|
180
|
+
{ role: "user", content: "Show me my budget breakdown" }
|
|
181
|
+
]
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
// Response now includes structured UI components!
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Step 4: Render with C1 React SDK
|
|
188
|
+
|
|
189
|
+
```tsx
|
|
190
|
+
import { C1Component } from '@thesys/react-sdk';
|
|
191
|
+
|
|
192
|
+
function BudgetAnalysis() {
|
|
193
|
+
const [messages, setMessages] = useState([]);
|
|
194
|
+
|
|
195
|
+
const sendMessage = async (userMessage: string) => {
|
|
196
|
+
const completion = await openai.chat.completions.create({
|
|
197
|
+
model: "gpt-4",
|
|
198
|
+
messages: [
|
|
199
|
+
...messages,
|
|
200
|
+
{ role: "user", content: userMessage }
|
|
201
|
+
],
|
|
202
|
+
stream: true // Enable streaming for real-time UI
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
// C1 handles the rendering automatically
|
|
206
|
+
for await (const chunk of completion) {
|
|
207
|
+
// UI components appear progressively
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
return (
|
|
212
|
+
<div>
|
|
213
|
+
<C1Component
|
|
214
|
+
messages={messages}
|
|
215
|
+
onInteraction={(data) => {
|
|
216
|
+
// Handle button clicks, form submissions, etc.
|
|
217
|
+
console.log('User interacted:', data);
|
|
218
|
+
}}
|
|
219
|
+
/>
|
|
220
|
+
</div>
|
|
221
|
+
);
|
|
222
|
+
}
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## Advanced Features
|
|
228
|
+
|
|
229
|
+
### 1. Custom Components
|
|
230
|
+
|
|
231
|
+
Bring your own React components:
|
|
232
|
+
|
|
233
|
+
```tsx
|
|
234
|
+
import { registerComponent } from '@thesys/react-sdk';
|
|
235
|
+
|
|
236
|
+
// Register custom budget card component
|
|
237
|
+
registerComponent('BudgetCard', ({ income, expenses }) => (
|
|
238
|
+
<div className="budget-card">
|
|
239
|
+
<h3>Monthly Overview</h3>
|
|
240
|
+
<div className="income">Income: ${income}</div>
|
|
241
|
+
<div className="expenses">Expenses: ${expenses}</div>
|
|
242
|
+
<div className="remaining">
|
|
243
|
+
Remaining: ${income - expenses}
|
|
244
|
+
</div>
|
|
245
|
+
</div>
|
|
246
|
+
));
|
|
247
|
+
|
|
248
|
+
// Now C1 can generate <BudgetCard /> components
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### 2. Tool Calls / Function Calling
|
|
252
|
+
|
|
253
|
+
Connect C1 to your database:
|
|
254
|
+
|
|
255
|
+
```typescript
|
|
256
|
+
const completion = await openai.chat.completions.create({
|
|
257
|
+
model: "gpt-4",
|
|
258
|
+
messages: [...],
|
|
259
|
+
tools: [
|
|
260
|
+
{
|
|
261
|
+
type: "function",
|
|
262
|
+
function: {
|
|
263
|
+
name: "get_transactions",
|
|
264
|
+
description: "Get user's recent transactions",
|
|
265
|
+
parameters: {
|
|
266
|
+
type: "object",
|
|
267
|
+
properties: {
|
|
268
|
+
startDate: { type: "string" },
|
|
269
|
+
endDate: { type: "string" },
|
|
270
|
+
category: { type: "string" }
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
]
|
|
276
|
+
});
|
|
277
|
+
|
|
278
|
+
// C1 can call this function and use the data to generate UI
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
### 3. Theme Customization
|
|
282
|
+
|
|
283
|
+
Match your design system:
|
|
284
|
+
|
|
285
|
+
```tsx
|
|
286
|
+
import { C1Provider } from '@thesys/react-sdk';
|
|
287
|
+
|
|
288
|
+
function App() {
|
|
289
|
+
return (
|
|
290
|
+
<C1Provider
|
|
291
|
+
theme={{
|
|
292
|
+
primaryColor: '#3B82F6',
|
|
293
|
+
fontFamily: 'Inter, sans-serif',
|
|
294
|
+
borderRadius: '8px',
|
|
295
|
+
darkMode: true
|
|
296
|
+
}}
|
|
297
|
+
>
|
|
298
|
+
<YourApp />
|
|
299
|
+
</C1Provider>
|
|
300
|
+
);
|
|
301
|
+
}
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
### 4. Real-Time Streaming
|
|
305
|
+
|
|
306
|
+
Components appear as they're generated:
|
|
307
|
+
|
|
308
|
+
```typescript
|
|
309
|
+
const stream = await openai.chat.completions.create({
|
|
310
|
+
model: "gpt-4",
|
|
311
|
+
messages: [...],
|
|
312
|
+
stream: true // Enable progressive rendering
|
|
313
|
+
});
|
|
314
|
+
|
|
315
|
+
for await (const chunk of stream) {
|
|
316
|
+
// Chart appears...
|
|
317
|
+
// Then form appears...
|
|
318
|
+
// Then table appears...
|
|
319
|
+
// All in real-time!
|
|
320
|
+
}
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
## Integration with Budget App
|
|
326
|
+
|
|
327
|
+
### Scenario 1: Budget Analysis Chat
|
|
328
|
+
|
|
329
|
+
**User**: "Analyze my spending this month"
|
|
330
|
+
|
|
331
|
+
**C1 Response** (Generated UI):
|
|
332
|
+
```tsx
|
|
333
|
+
<Dashboard>
|
|
334
|
+
<PieChart
|
|
335
|
+
title="Expense Breakdown"
|
|
336
|
+
data={[
|
|
337
|
+
{ category: 'Food', amount: 450, color: '#FF6384' },
|
|
338
|
+
{ category: 'Transport', amount: 200, color: '#36A2EB' },
|
|
339
|
+
{ category: 'Entertainment', amount: 150, color: '#FFCE56' }
|
|
340
|
+
]}
|
|
341
|
+
interactive={true}
|
|
342
|
+
onClick={(category) => showCategoryDetails(category)}
|
|
343
|
+
/>
|
|
344
|
+
|
|
345
|
+
<Alert severity="warning">
|
|
346
|
+
Your food expenses are 28% higher than last month
|
|
347
|
+
</Alert>
|
|
348
|
+
|
|
349
|
+
<ActionButtons>
|
|
350
|
+
<Button onClick={() => setbudget('food', 400)}>
|
|
351
|
+
Set Food Budget to $400
|
|
352
|
+
</Button>
|
|
353
|
+
<Button onClick={() => viewRecommendations()}>
|
|
354
|
+
View Savings Tips
|
|
355
|
+
</Button>
|
|
356
|
+
</ActionButtons>
|
|
357
|
+
</Dashboard>
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
### Scenario 2: OIC Form Assistant
|
|
361
|
+
|
|
362
|
+
**User**: "Help me fill out Form 656"
|
|
363
|
+
|
|
364
|
+
**C1 Response** (Generated UI):
|
|
365
|
+
```tsx
|
|
366
|
+
<Form title="Form 656 - Offer in Compromise">
|
|
367
|
+
<Step number={1} title="Personal Information">
|
|
368
|
+
<Input
|
|
369
|
+
label="Name"
|
|
370
|
+
value={user.name}
|
|
371
|
+
required={true}
|
|
372
|
+
/>
|
|
373
|
+
<Input
|
|
374
|
+
label="SSN"
|
|
375
|
+
type="ssn"
|
|
376
|
+
mask="XXX-XX-XXXX"
|
|
377
|
+
required={true}
|
|
378
|
+
/>
|
|
379
|
+
</Step>
|
|
380
|
+
|
|
381
|
+
<Step number={2} title="Offer Amount">
|
|
382
|
+
<Calculator
|
|
383
|
+
description="Based on your RCP calculation"
|
|
384
|
+
formula="Future Income + Net Equity"
|
|
385
|
+
result={8000}
|
|
386
|
+
/>
|
|
387
|
+
<Input
|
|
388
|
+
label="Offer Amount"
|
|
389
|
+
type="currency"
|
|
390
|
+
suggested={8000}
|
|
391
|
+
min={1000}
|
|
392
|
+
/>
|
|
393
|
+
</Step>
|
|
394
|
+
|
|
395
|
+
<Navigation>
|
|
396
|
+
<Button variant="secondary">Previous</Button>
|
|
397
|
+
<Button variant="primary">Next</Button>
|
|
398
|
+
</Navigation>
|
|
399
|
+
</Form>
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
### Scenario 3: Transaction Management
|
|
403
|
+
|
|
404
|
+
**User**: "Show my October expenses"
|
|
405
|
+
|
|
406
|
+
**C1 Response** (Generated UI):
|
|
407
|
+
```tsx
|
|
408
|
+
<DataTable
|
|
409
|
+
title="October 2025 Expenses"
|
|
410
|
+
columns={[
|
|
411
|
+
{ key: 'date', label: 'Date', sortable: true },
|
|
412
|
+
{ key: 'description', label: 'Description', searchable: true },
|
|
413
|
+
{ key: 'category', label: 'Category', filterable: true },
|
|
414
|
+
{ key: 'amount', label: 'Amount', sortable: true, format: 'currency' }
|
|
415
|
+
]}
|
|
416
|
+
data={transactions}
|
|
417
|
+
actions={[
|
|
418
|
+
{ label: 'Edit', icon: 'pencil', onClick: editTransaction },
|
|
419
|
+
{ label: 'Delete', icon: 'trash', onClick: deleteTransaction },
|
|
420
|
+
{ label: 'Split', icon: 'split', onClick: splitTransaction }
|
|
421
|
+
]}
|
|
422
|
+
pagination={true}
|
|
423
|
+
exportFormats={['CSV', 'PDF', 'Excel']}
|
|
424
|
+
/>
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
---
|
|
428
|
+
|
|
429
|
+
## Best Practices
|
|
430
|
+
|
|
431
|
+
### 1. Prompting for UI Generation
|
|
432
|
+
|
|
433
|
+
**❌ Bad Prompt**:
|
|
434
|
+
```
|
|
435
|
+
"Show me the budget"
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
**✅ Good Prompt**:
|
|
439
|
+
```
|
|
440
|
+
"Create an interactive budget dashboard with:
|
|
441
|
+
1. A pie chart showing expense categories
|
|
442
|
+
2. A bar graph comparing this month vs last month
|
|
443
|
+
3. An editable table of all transactions
|
|
444
|
+
4. Action buttons to set budget limits
|
|
445
|
+
5. Alerts for categories over budget"
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
**Why**: Specific prompts generate better structured UI.
|
|
449
|
+
|
|
450
|
+
### 2. Handle User Interactions
|
|
451
|
+
|
|
452
|
+
```tsx
|
|
453
|
+
<C1Component
|
|
454
|
+
messages={messages}
|
|
455
|
+
onInteraction={(interaction) => {
|
|
456
|
+
switch (interaction.type) {
|
|
457
|
+
case 'button_click':
|
|
458
|
+
handleButtonClick(interaction.data);
|
|
459
|
+
break;
|
|
460
|
+
case 'form_submit':
|
|
461
|
+
handleFormSubmit(interaction.data);
|
|
462
|
+
break;
|
|
463
|
+
case 'chart_click':
|
|
464
|
+
showDetails(interaction.data);
|
|
465
|
+
break;
|
|
466
|
+
}
|
|
467
|
+
}}
|
|
468
|
+
/>
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
### 3. Error Handling
|
|
472
|
+
|
|
473
|
+
C1 has built-in error handling, but you should still:
|
|
474
|
+
|
|
475
|
+
```tsx
|
|
476
|
+
try {
|
|
477
|
+
const completion = await openai.chat.completions.create({...});
|
|
478
|
+
} catch (error) {
|
|
479
|
+
if (error.status === 401) {
|
|
480
|
+
console.error('Invalid Thesys API key');
|
|
481
|
+
} else if (error.status === 429) {
|
|
482
|
+
console.error('Rate limit exceeded');
|
|
483
|
+
} else {
|
|
484
|
+
console.error('C1 API error:', error);
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
### 4. Fallback to Text
|
|
490
|
+
|
|
491
|
+
If C1 is unavailable, fall back to traditional text:
|
|
492
|
+
|
|
493
|
+
```tsx
|
|
494
|
+
const USE_C1 = process.env.ENABLE_C1 === 'true';
|
|
495
|
+
|
|
496
|
+
const baseURL = USE_C1
|
|
497
|
+
? "https://api.thesys.dev/v1/embed"
|
|
498
|
+
: "https://api.openai.com/v1";
|
|
499
|
+
|
|
500
|
+
const openai = new OpenAI({ apiKey, baseURL });
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
---
|
|
504
|
+
|
|
505
|
+
## Performance Optimization
|
|
506
|
+
|
|
507
|
+
### 1. Streaming for Responsiveness
|
|
508
|
+
|
|
509
|
+
Always enable streaming for progressive UI rendering:
|
|
510
|
+
|
|
511
|
+
```typescript
|
|
512
|
+
const completion = await openai.chat.completions.create({
|
|
513
|
+
model: "gpt-4",
|
|
514
|
+
messages: [...],
|
|
515
|
+
stream: true // Components appear as generated
|
|
516
|
+
});
|
|
517
|
+
```
|
|
518
|
+
|
|
519
|
+
### 2. Caching Common Components
|
|
520
|
+
|
|
521
|
+
Cache frequently generated UI components:
|
|
522
|
+
|
|
523
|
+
```tsx
|
|
524
|
+
import { cacheComponent } from '@thesys/react-sdk';
|
|
525
|
+
|
|
526
|
+
// Cache budget dashboard for 5 minutes
|
|
527
|
+
cacheComponent('budget-dashboard', budgetData, { ttl: 300 });
|
|
528
|
+
```
|
|
529
|
+
|
|
530
|
+
### 3. Lazy Loading
|
|
531
|
+
|
|
532
|
+
Load C1 SDK only when needed:
|
|
533
|
+
|
|
534
|
+
```tsx
|
|
535
|
+
const C1Component = lazy(() => import('@thesys/react-sdk').then(m => ({ default: m.C1Component })));
|
|
536
|
+
|
|
537
|
+
<Suspense fallback={<Loading />}>
|
|
538
|
+
<C1Component messages={messages} />
|
|
539
|
+
</Suspense>
|
|
540
|
+
```
|
|
541
|
+
|
|
542
|
+
---
|
|
543
|
+
|
|
544
|
+
## Security Considerations
|
|
545
|
+
|
|
546
|
+
### 1. API Keys
|
|
547
|
+
|
|
548
|
+
```typescript
|
|
549
|
+
// ✅ GOOD: Server-side API calls
|
|
550
|
+
// backend/api/chat.ts
|
|
551
|
+
const openai = new OpenAI({
|
|
552
|
+
apiKey: process.env.THESYS_API_KEY, // Server env variable
|
|
553
|
+
baseURL: "https://api.thesys.dev/v1/embed"
|
|
554
|
+
});
|
|
555
|
+
|
|
556
|
+
// ❌ BAD: Client-side API calls
|
|
557
|
+
// NEVER expose API keys in frontend code
|
|
558
|
+
```
|
|
559
|
+
|
|
560
|
+
### 2. User Data
|
|
561
|
+
|
|
562
|
+
C1 by Thesys claims:
|
|
563
|
+
- ✅ Zero data retention
|
|
564
|
+
- ✅ SOC2 compliant
|
|
565
|
+
- ✅ GDPR compliant
|
|
566
|
+
- ✅ ISO 27001 certified
|
|
567
|
+
- ✅ Private deployment options available
|
|
568
|
+
|
|
569
|
+
Still follow best practices:
|
|
570
|
+
- Don't send sensitive data (SSNs, passwords) in prompts
|
|
571
|
+
- Sanitize user inputs
|
|
572
|
+
- Use encryption for data in transit
|
|
573
|
+
|
|
574
|
+
### 3. Rate Limiting
|
|
575
|
+
|
|
576
|
+
Implement rate limiting on your API endpoints:
|
|
577
|
+
|
|
578
|
+
```typescript
|
|
579
|
+
import rateLimit from 'express-rate-limit';
|
|
580
|
+
|
|
581
|
+
const limiter = rateLimit({
|
|
582
|
+
windowMs: 15 * 60 * 1000, // 15 minutes
|
|
583
|
+
max: 100 // Max 100 requests per 15 min
|
|
584
|
+
});
|
|
585
|
+
|
|
586
|
+
app.use('/api/chat', limiter);
|
|
587
|
+
```
|
|
588
|
+
|
|
589
|
+
---
|
|
590
|
+
|
|
591
|
+
## Pricing & Limits
|
|
592
|
+
|
|
593
|
+
**Note**: Check https://console.thesys.dev for current pricing.
|
|
594
|
+
|
|
595
|
+
**As of April 2025**:
|
|
596
|
+
- Free tier available for testing
|
|
597
|
+
- Pay-as-you-go based on API calls
|
|
598
|
+
- Enterprise plans with private deployment
|
|
599
|
+
- **Claims 80% cheaper than building custom UI**
|
|
600
|
+
|
|
601
|
+
**Typical Cost Breakdown**:
|
|
602
|
+
- C1 API call: ~$0.01-0.05 per request (includes UI generation)
|
|
603
|
+
- Traditional approach: Developer time ($50-200/hr) × hours building UI
|
|
604
|
+
- **ROI**: Significant savings on development time
|
|
605
|
+
|
|
606
|
+
---
|
|
607
|
+
|
|
608
|
+
## Comparison: Traditional vs C1
|
|
609
|
+
|
|
610
|
+
### Traditional LLM Integration:
|
|
611
|
+
|
|
612
|
+
```typescript
|
|
613
|
+
// 1. Call LLM
|
|
614
|
+
const response = await openai.chat.completions.create({...});
|
|
615
|
+
|
|
616
|
+
// 2. Parse response text
|
|
617
|
+
const data = parseResponseText(response.content);
|
|
618
|
+
|
|
619
|
+
// 3. Manually create UI components
|
|
620
|
+
return (
|
|
621
|
+
<div>
|
|
622
|
+
<h3>{data.title}</h3>
|
|
623
|
+
<Chart data={data.chartData} />
|
|
624
|
+
<Table data={data.tableData} />
|
|
625
|
+
<Form fields={data.formFields} />
|
|
626
|
+
</div>
|
|
627
|
+
);
|
|
628
|
+
|
|
629
|
+
// Result: Lots of custom code, brittle parsing, slow development
|
|
630
|
+
```
|
|
631
|
+
|
|
632
|
+
### C1 Integration:
|
|
633
|
+
|
|
634
|
+
```typescript
|
|
635
|
+
// 1. Call C1 API (same OpenAI SDK!)
|
|
636
|
+
const response = await openai.chat.completions.create({
|
|
637
|
+
baseURL: "https://api.thesys.dev/v1/embed"
|
|
638
|
+
// ... same parameters
|
|
639
|
+
});
|
|
640
|
+
|
|
641
|
+
// 2. Render with C1 SDK
|
|
642
|
+
return <C1Component messages={[response]} />;
|
|
643
|
+
|
|
644
|
+
// Result: UI appears automatically, no parsing, fast development
|
|
645
|
+
```
|
|
646
|
+
|
|
647
|
+
**Developer Time**:
|
|
648
|
+
- Traditional: 2-4 hours per UI component
|
|
649
|
+
- C1: 10 minutes to integrate, 0 time per component
|
|
650
|
+
|
|
651
|
+
---
|
|
652
|
+
|
|
653
|
+
## Compatibility
|
|
654
|
+
|
|
655
|
+
### Supported LLMs:
|
|
656
|
+
- ✅ OpenAI (GPT-4, GPT-3.5)
|
|
657
|
+
- ✅ Anthropic (Claude 3.5, Claude 3)
|
|
658
|
+
- ✅ Google (Gemini)
|
|
659
|
+
- ✅ Mistral
|
|
660
|
+
- ✅ Llama (via Groq, Together AI)
|
|
661
|
+
- ✅ Any OpenAI-compatible API
|
|
662
|
+
|
|
663
|
+
### Supported Frameworks:
|
|
664
|
+
- ✅ React (primary SDK)
|
|
665
|
+
- ✅ Next.js
|
|
666
|
+
- ✅ Remix
|
|
667
|
+
- ✅ Vite
|
|
668
|
+
- ⏳ Vue (community SDK in development)
|
|
669
|
+
- ⏳ Svelte (community SDK in development)
|
|
670
|
+
|
|
671
|
+
### Supported UI Components:
|
|
672
|
+
- Charts (pie, bar, line, area, scatter)
|
|
673
|
+
- Forms (inputs, selects, checkboxes, radio buttons)
|
|
674
|
+
- Tables (sortable, filterable, paginated)
|
|
675
|
+
- Cards (info cards, stat cards, action cards)
|
|
676
|
+
- Alerts (success, warning, error, info)
|
|
677
|
+
- Buttons (primary, secondary, danger)
|
|
678
|
+
- Modals (dialogs, confirmations)
|
|
679
|
+
- Tabs (navigation, content switching)
|
|
680
|
+
- Lists (ordered, unordered, checkboxes)
|
|
681
|
+
- Progress bars, spinners, loaders
|
|
682
|
+
- Custom components (bring your own)
|
|
683
|
+
|
|
684
|
+
---
|
|
685
|
+
|
|
686
|
+
## Example: Full Integration in Budget App
|
|
687
|
+
|
|
688
|
+
### 1. Backend API Route
|
|
689
|
+
|
|
690
|
+
```typescript
|
|
691
|
+
// app/api/chat/route.ts
|
|
692
|
+
import OpenAI from 'openai';
|
|
693
|
+
import { NextRequest, NextResponse } from 'next/server';
|
|
694
|
+
|
|
695
|
+
export async function POST(req: NextRequest) {
|
|
696
|
+
const { message } = await req.json();
|
|
697
|
+
|
|
698
|
+
const openai = new OpenAI({
|
|
699
|
+
apiKey: process.env.THESYS_API_KEY!,
|
|
700
|
+
baseURL: "https://api.thesys.dev/v1/embed"
|
|
701
|
+
});
|
|
702
|
+
|
|
703
|
+
const completion = await openai.chat.completions.create({
|
|
704
|
+
model: "gpt-4",
|
|
705
|
+
messages: [
|
|
706
|
+
{
|
|
707
|
+
role: "system",
|
|
708
|
+
content: `You are a budget analysis assistant. Generate interactive UI components to help users understand their finances. Use:
|
|
709
|
+
- Charts for visual data
|
|
710
|
+
- Tables for transaction lists
|
|
711
|
+
- Forms for data entry
|
|
712
|
+
- Alerts for important insights
|
|
713
|
+
- Buttons for actions`
|
|
714
|
+
},
|
|
715
|
+
{
|
|
716
|
+
role: "user",
|
|
717
|
+
content: message
|
|
718
|
+
}
|
|
719
|
+
],
|
|
720
|
+
stream: true,
|
|
721
|
+
tools: [
|
|
722
|
+
{
|
|
723
|
+
type: "function",
|
|
724
|
+
function: {
|
|
725
|
+
name: "get_transactions",
|
|
726
|
+
description: "Fetch user transactions from database",
|
|
727
|
+
parameters: {
|
|
728
|
+
type: "object",
|
|
729
|
+
properties: {
|
|
730
|
+
startDate: { type: "string" },
|
|
731
|
+
endDate: { type: "string" }
|
|
732
|
+
}
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
}
|
|
736
|
+
]
|
|
737
|
+
});
|
|
738
|
+
|
|
739
|
+
return new NextResponse(completion.toReadableStream());
|
|
740
|
+
}
|
|
741
|
+
```
|
|
742
|
+
|
|
743
|
+
### 2. Frontend Component
|
|
744
|
+
|
|
745
|
+
```tsx
|
|
746
|
+
// app/components/BudgetChat.tsx
|
|
747
|
+
'use client';
|
|
748
|
+
|
|
749
|
+
import { useState } from 'react';
|
|
750
|
+
import { C1Component } from '@thesys/react-sdk';
|
|
751
|
+
|
|
752
|
+
export default function BudgetChat() {
|
|
753
|
+
const [messages, setMessages] = useState([]);
|
|
754
|
+
const [input, setInput] = useState('');
|
|
755
|
+
const [loading, setLoading] = useState(false);
|
|
756
|
+
|
|
757
|
+
const sendMessage = async () => {
|
|
758
|
+
if (!input.trim()) return;
|
|
759
|
+
|
|
760
|
+
const userMessage = { role: 'user', content: input };
|
|
761
|
+
setMessages(prev => [...prev, userMessage]);
|
|
762
|
+
setInput('');
|
|
763
|
+
setLoading(true);
|
|
764
|
+
|
|
765
|
+
try {
|
|
766
|
+
const response = await fetch('/api/chat', {
|
|
767
|
+
method: 'POST',
|
|
768
|
+
headers: { 'Content-Type': 'application/json' },
|
|
769
|
+
body: JSON.stringify({ message: input })
|
|
770
|
+
});
|
|
771
|
+
|
|
772
|
+
const reader = response.body?.getReader();
|
|
773
|
+
const decoder = new TextDecoder();
|
|
774
|
+
|
|
775
|
+
let assistantMessage = { role: 'assistant', content: '' };
|
|
776
|
+
|
|
777
|
+
while (true) {
|
|
778
|
+
const { done, value } = await reader!.read();
|
|
779
|
+
if (done) break;
|
|
780
|
+
|
|
781
|
+
const chunk = decoder.decode(value);
|
|
782
|
+
assistantMessage.content += chunk;
|
|
783
|
+
|
|
784
|
+
// Update messages in real-time (streaming)
|
|
785
|
+
setMessages(prev => {
|
|
786
|
+
const newMessages = [...prev];
|
|
787
|
+
const lastIndex = newMessages.length - 1;
|
|
788
|
+
if (newMessages[lastIndex]?.role === 'assistant') {
|
|
789
|
+
newMessages[lastIndex] = assistantMessage;
|
|
790
|
+
} else {
|
|
791
|
+
newMessages.push(assistantMessage);
|
|
792
|
+
}
|
|
793
|
+
return newMessages;
|
|
794
|
+
});
|
|
795
|
+
}
|
|
796
|
+
} catch (error) {
|
|
797
|
+
console.error('Chat error:', error);
|
|
798
|
+
} finally {
|
|
799
|
+
setLoading(false);
|
|
800
|
+
}
|
|
801
|
+
};
|
|
802
|
+
|
|
803
|
+
return (
|
|
804
|
+
<div className="budget-chat">
|
|
805
|
+
<div className="messages">
|
|
806
|
+
<C1Component
|
|
807
|
+
messages={messages}
|
|
808
|
+
onInteraction={(data) => {
|
|
809
|
+
// Handle UI interactions
|
|
810
|
+
console.log('User interacted:', data);
|
|
811
|
+
if (data.type === 'button_click') {
|
|
812
|
+
sendMessage(data.action);
|
|
813
|
+
}
|
|
814
|
+
}}
|
|
815
|
+
/>
|
|
816
|
+
</div>
|
|
817
|
+
|
|
818
|
+
<div className="input-area">
|
|
819
|
+
<input
|
|
820
|
+
value={input}
|
|
821
|
+
onChange={(e) => setInput(e.target.value)}
|
|
822
|
+
onKeyPress={(e) => e.key === 'Enter' && sendMessage()}
|
|
823
|
+
placeholder="Ask about your budget..."
|
|
824
|
+
disabled={loading}
|
|
825
|
+
/>
|
|
826
|
+
<button onClick={sendMessage} disabled={loading}>
|
|
827
|
+
{loading ? 'Thinking...' : 'Send'}
|
|
828
|
+
</button>
|
|
829
|
+
</div>
|
|
830
|
+
</div>
|
|
831
|
+
);
|
|
832
|
+
}
|
|
833
|
+
```
|
|
834
|
+
|
|
835
|
+
### 3. Configure C1 Provider
|
|
836
|
+
|
|
837
|
+
```tsx
|
|
838
|
+
// app/layout.tsx
|
|
839
|
+
import { C1Provider } from '@thesys/react-sdk';
|
|
840
|
+
import '@thesys/react-sdk/dist/styles.css'; // Import C1 styles
|
|
841
|
+
|
|
842
|
+
export default function RootLayout({ children }) {
|
|
843
|
+
return (
|
|
844
|
+
<html>
|
|
845
|
+
<body>
|
|
846
|
+
<C1Provider
|
|
847
|
+
theme={{
|
|
848
|
+
primaryColor: '#3B82F6',
|
|
849
|
+
fontFamily: 'Inter, system-ui, sans-serif',
|
|
850
|
+
borderRadius: '8px',
|
|
851
|
+
darkMode: true
|
|
852
|
+
}}
|
|
853
|
+
>
|
|
854
|
+
{children}
|
|
855
|
+
</C1Provider>
|
|
856
|
+
</body>
|
|
857
|
+
</html>
|
|
858
|
+
);
|
|
859
|
+
}
|
|
860
|
+
```
|
|
861
|
+
|
|
862
|
+
---
|
|
863
|
+
|
|
864
|
+
## Troubleshooting
|
|
865
|
+
|
|
866
|
+
### Issue: Components not rendering
|
|
867
|
+
|
|
868
|
+
**Cause**: Missing C1 React SDK or incorrect import
|
|
869
|
+
|
|
870
|
+
**Solution**:
|
|
871
|
+
```bash
|
|
872
|
+
npm install @thesys/react-sdk
|
|
873
|
+
```
|
|
874
|
+
|
|
875
|
+
```tsx
|
|
876
|
+
import { C1Component } from '@thesys/react-sdk';
|
|
877
|
+
import '@thesys/react-sdk/dist/styles.css'; // Don't forget styles!
|
|
878
|
+
```
|
|
879
|
+
|
|
880
|
+
### Issue: API returns text instead of UI components
|
|
881
|
+
|
|
882
|
+
**Cause**: Not using C1 API endpoint
|
|
883
|
+
|
|
884
|
+
**Solution**:
|
|
885
|
+
```typescript
|
|
886
|
+
const openai = new OpenAI({
|
|
887
|
+
apiKey: process.env.THESYS_API_KEY,
|
|
888
|
+
baseURL: "https://api.thesys.dev/v1/embed" // Must use this URL!
|
|
889
|
+
});
|
|
890
|
+
```
|
|
891
|
+
|
|
892
|
+
### Issue: Components look unstyled
|
|
893
|
+
|
|
894
|
+
**Cause**: Missing CSS import
|
|
895
|
+
|
|
896
|
+
**Solution**:
|
|
897
|
+
```tsx
|
|
898
|
+
import '@thesys/react-sdk/dist/styles.css';
|
|
899
|
+
```
|
|
900
|
+
|
|
901
|
+
### Issue: Slow rendering
|
|
902
|
+
|
|
903
|
+
**Cause**: Not using streaming
|
|
904
|
+
|
|
905
|
+
**Solution**:
|
|
906
|
+
```typescript
|
|
907
|
+
const completion = await openai.chat.completions.create({
|
|
908
|
+
model: "gpt-4",
|
|
909
|
+
messages: [...],
|
|
910
|
+
stream: true // Enable streaming!
|
|
911
|
+
});
|
|
912
|
+
```
|
|
913
|
+
|
|
914
|
+
---
|
|
915
|
+
|
|
916
|
+
## When to Use C1
|
|
917
|
+
|
|
918
|
+
### ✅ USE C1 When:
|
|
919
|
+
- Building AI-powered dashboards
|
|
920
|
+
- Creating conversational UIs with data visualization
|
|
921
|
+
- Need interactive forms generated from AI
|
|
922
|
+
- Want to prototype AI UIs quickly
|
|
923
|
+
- Building customer-facing AI agents
|
|
924
|
+
- Need real-time, dynamic interfaces
|
|
925
|
+
|
|
926
|
+
### ❌ DON'T USE C1 When:
|
|
927
|
+
- Building static content sites
|
|
928
|
+
- UI requirements are very simple (just text chat)
|
|
929
|
+
- Need full control over every pixel (design-heavy apps)
|
|
930
|
+
- Working with non-LLM data sources
|
|
931
|
+
- Budget is extremely constrained (though C1 claims 80% savings)
|
|
932
|
+
|
|
933
|
+
---
|
|
934
|
+
|
|
935
|
+
## Conclusion
|
|
936
|
+
|
|
937
|
+
**C1 by Thesys is a game-changer for AI-powered applications**. It eliminates the tedious work of:
|
|
938
|
+
1. Parsing LLM text outputs
|
|
939
|
+
2. Manually building UI components
|
|
940
|
+
3. Wiring up interactions
|
|
941
|
+
4. Maintaining complex prompt-to-UI logic
|
|
942
|
+
|
|
943
|
+
**For the Budget App**, C1 could transform:
|
|
944
|
+
- Budget analysis (text → interactive dashboards)
|
|
945
|
+
- Transaction management (lists → sortable tables)
|
|
946
|
+
- Form completion (text guidance → step-by-step wizards)
|
|
947
|
+
- Financial recommendations (suggestions → clickable actions)
|
|
948
|
+
|
|
949
|
+
**Getting Started**:
|
|
950
|
+
```bash
|
|
951
|
+
npx create-c1-app budget-app-c1
|
|
952
|
+
cd budget-app-c1
|
|
953
|
+
npm run dev
|
|
954
|
+
```
|
|
955
|
+
|
|
956
|
+
**Next Steps**:
|
|
957
|
+
1. Get API key from https://console.thesys.dev
|
|
958
|
+
2. Try the demo at https://demo.thesys.dev
|
|
959
|
+
3. Read docs at https://docs.thesys.dev
|
|
960
|
+
4. Integrate into budget app (start with one feature)
|
|
961
|
+
5. Expand to more features based on success
|
|
962
|
+
|
|
963
|
+
---
|
|
964
|
+
|
|
965
|
+
**Skill Created**: October 28, 2025
|
|
966
|
+
**Maintainer**: Claude Code
|
|
967
|
+
**License**: Skill documentation for educational purposes. C1 by Thesys is a commercial product.
|