### Clone and Start LangAlpha with Docker Source: https://github.com/ginlix-ai/langalpha/blob/main/README.md Clone the repository and use `make config` for an interactive setup wizard, followed by `make up` to launch the services. This is the primary method for local development. ```bash git clone https://github.com/ginlix-ai/langalpha.git cd langalpha make config # interactive wizard — creates .env, configures LLM, data sources, sandbox, and search make up # starts PostgreSQL, Redis, backend, and frontend ``` -------------------------------- ### Install Dependencies Source: https://github.com/ginlix-ai/langalpha/blob/main/libs/ptc-cli/README.md Install project dependencies using uv sync and activate the virtual environment. ```bash uv sync source .venv/bin/activate # On Windows: .venv\Scripts\activate ``` -------------------------------- ### Install Backend Dependencies Source: https://github.com/ginlix-ai/langalpha/blob/main/CLAUDE.md Installs backend development and testing dependencies using uv. ```bash # Install dependencies uv sync --group dev --extra test # backend ``` -------------------------------- ### Copy Environment Example Source: https://github.com/ginlix-ai/langalpha/blob/main/web/README.md Copy the example environment file to a new file named .env to configure your project settings. ```bash cp .env.example .env ``` -------------------------------- ### Start Database Infrastructure Source: https://github.com/ginlix-ai/langalpha/blob/main/CONTRIBUTING.md Starts PostgreSQL and Redis services using Docker and runs database migrations. ```bash make setup-db # starts PostgreSQL + Redis in Docker and runs migrations ``` -------------------------------- ### Install Frontend Dependencies Source: https://github.com/ginlix-ai/langalpha/blob/main/CLAUDE.md Installs frontend dependencies using pnpm. ```bash cd web && pnpm install # frontend ``` -------------------------------- ### Clone Repository and Install Dependencies Source: https://github.com/ginlix-ai/langalpha/blob/main/CONTRIBUTING.md Clone the LangAlpha repository and install Python and frontend dependencies using uv and pnpm. Includes optional browser dependency installation. ```bash git clone https://github.com/ginlix-ai/langalpha.git cd langalpha # Install Python dependencies (includes dev + test deps) uv sync --group dev --extra test # Install frontend dependencies cd web && pnpm install && cd .. # Optional: install browser dependencies for web crawling source .venv/bin/activate scrapling install ``` -------------------------------- ### Install Dependencies Source: https://github.com/ginlix-ai/langalpha/blob/main/web/README.md Install project dependencies using pnpm. Ensure Node.js 24+ is installed. ```bash pnpm install ``` -------------------------------- ### PTC CLI Configuration File Example Source: https://github.com/ginlix-ai/langalpha/blob/main/libs/ptc-cli/README.md Example of how to configure CLI theme and palette settings within the agent_config.yaml file. ```yaml cli: theme: "auto" # auto, dark, or light palette: "nord" # color palette name ``` -------------------------------- ### Fallback Server Startup without Docker Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/interactive-dashboard/SKILL.md This sequence of commands is used to build the frontend and run the FastAPI server directly when Docker is unavailable. It ensures the port is free, installs dependencies, builds the frontend, and then starts the server. ```bash fuser -k 8050/tcp 2>/dev/null || true cd frontend && npm install --prefer-offline && npm run build && cd .. cd server && uvicorn main:app --host 0.0.0.0 --port 8050 ``` -------------------------------- ### Start Simple Tier Dashboard Server Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/interactive-dashboard/SKILL.md Use this Bash command to start a simple HTTP server for serving static dashboard files. Ensure you are in the correct directory before running. ```bash # Simple tier — Bash tool with run_in_background=true cd work/ && python -m http.server 8050 --bind 0.0.0.0 ``` -------------------------------- ### Get Complete User Data Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/onboarding/SKILL.md Retrieve all user data, including profile, preferences, watchlists, and portfolio. Recommended at the start of the onboarding process. ```python get_user_data(entity="all") ``` -------------------------------- ### Start Dashboard Server Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/interactive-dashboard/SKILL.md Starts a Python HTTP server in the background. Ensure the command is idempotent for sandbox restarts. ```bash cd work/ && bash start.sh ``` -------------------------------- ### Basic Presentation Setup Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/pptx/pptxgenjs.md Initializes PptxGenJS, sets presentation properties, adds a slide with text, and saves the presentation. ```javascript const pptxgen = require("pptxgenjs"); let pres = new pptxgen(); pres.layout = 'LAYOUT_16x9'; // or 'LAYOUT_16x10', 'LAYOUT_4x3', 'LAYOUT_WIDE' pres.author = 'Your Name'; pres.title = 'Presentation Title'; let slide = pres.addSlide(); slide.addText("Hello World!", { x: 0.5, y: 0.5, fontSize: 36, color: "363636" }); pres.writeFile({ fileName: "Presentation.pptx" }); ``` -------------------------------- ### Development Server Source: https://github.com/ginlix-ai/langalpha/blob/main/web/README.md Start the development server for local development. Accessible at http://localhost:5173. ```bash pnpm dev ``` -------------------------------- ### Example Beat/Miss Analysis Explanation Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/earnings-analysis/references/workflow.md Provides a detailed example of how to explain a revenue beat, highlighting drivers, channel performance, and management commentary. ```text ■ **Revenue Beat by 3% Driven by Strong DTC Performance** Revenue of $13.5B exceeded our estimate of $13.1B by $400M (3%) and consensus of $13.2B by $300M (2%). The outperformance was driven primarily by Direct-to- Consumer channels, which grew 18% YoY (vs. our 12% estimate), offsetting weaker-than-expected wholesale (-5% vs. flat estimate). Management cited strong digital demand and successful product launches (Pegasus 40 running shoe, new Jordan colorways) as key drivers. DTC now represents 42% of total revenue vs. 38% a year ago, demonstrating successful channel shift strategy. ``` -------------------------------- ### Run Frontend Development Server Source: https://github.com/ginlix-ai/langalpha/blob/main/CONTRIBUTING.md Starts the frontend development server, typically on port 5173. ```bash make dev-web # port 5173 ``` -------------------------------- ### FinancialTable Usage Example Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/interactive-dashboard/references/ui-components.md Demonstrates how to use the FinancialTable component with custom column definitions and data. This example shows how to configure sorting, formatting, and alignment for each column. ```jsx const columns = [ { key: 'ticker', label: 'Ticker', align: 'left' }, { key: 'name', label: 'Company', align: 'left' }, { key: 'price', label: 'Price', align: 'right', format: v => `$${v.toFixed(2)}` }, { key: 'changePct', label: '% Change', align: 'right', colorize: true, format: v => (v > 0 ? '+' : '') + v.toFixed(2) + '%' }, { key: 'marketCap', label: 'Mkt Cap', align: 'right', format: v => v >= 1e12 ? `$${(v/1e12).toFixed(1)}T` : `$${(v/1e9).toFixed(1)}B` }, { key: 'pe', label: 'P/E', align: 'right', format: v => v ? v.toFixed(1) + 'x' : '-' }, ]; ``` -------------------------------- ### Orchestrating Agent Command Example Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/interactive-dashboard/SKILL.md Example of data passed to the orchestrating agent for command persistence and recovery. Includes port, command, and title. ```bash port: 8050 command: "cd work/ && python -m http.server 8050 --bind 0.0.0.0" # or "bash work//start.sh" title: "AAPL Stock Dashboard" ``` -------------------------------- ### Run Backend Server Source: https://github.com/ginlix-ai/langalpha/blob/main/CLAUDE.md Starts the backend FastAPI application on port 8000 for development. ```bash # Run backend (port 8000) uv run python server.py --reload ``` -------------------------------- ### Valuation Range Example Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/initiating-coverage/references/valuation-methodologies.md Example of presenting a valuation range with Base Case, Bull Case, and Bear Case scenarios, including a final recommendation. ```plaintext Bear Case: $38 - $40 Base Case: $42 - $46 Bull Case: $48 - $52 Recommendation: BUY with target price of $45 (midpoint of base case) ``` -------------------------------- ### Run PTC CLI Source: https://github.com/ginlix-ai/langalpha/blob/main/libs/ptc-cli/README.md Execute the PTC CLI to start interacting with the agent. ```bash ptc-agent ``` -------------------------------- ### Run Backend Development Server Source: https://github.com/ginlix-ai/langalpha/blob/main/CONTRIBUTING.md Starts the backend development server with hot-reloading enabled, typically on port 8000. ```bash make dev # port 8000, with hot-reload ``` -------------------------------- ### Full User Onboarding Session Example Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/user-profile/onboarding.md Demonstrates a complete conversational flow for setting up a user's investment profile, including collecting portfolio, watchlist, risk tolerance, and other preferences. Shows agent calls to update user data and ask follow-up questions. ```text User: Help me set up my profile Agent: I'd be happy to help you set up your investment profile! I'll need at least one stock you're watching or own, and your risk tolerance. I can also ask about company interest, holding period, analysis focus, and output style — those are optional. Are there any stocks you're currently watching or own? User: I own some AAPL and want to watch NVDA Agent: Perfect! For AAPL - how many shares do you own, and roughly what did you pay for them on average? User: 50 shares, bought around $175 Agent: [calls update_user_data(entity="portfolio_holding", data={"symbol": "AAPL", "quantity": 50, "average_cost": 175.0})] [calls update_user_data(entity="watchlist_item", data={"symbol": "NVDA", "notes": "Watching"})] Done! I've added AAPL to your portfolio and NVDA to your watchlist. [calls AskUserQuestion(question="How comfortable are you with investment risk?", options=["Low", "Medium", "High", "Long-term focus"])] → User selects "Medium" Agent: [calls update_user_data(entity="risk_preference", data={"risk_tolerance": "medium"})] Got it! Would you like to set up company interest, holding period, analysis focus, or output style? These are optional. User: Just company interest and output style Agent: [calls AskUserQuestion(question="What type of companies interest you most?", options=["Growth", "Stable", "Value", "ESG"])] → User selects "Growth" Agent: [calls update_user_data(entity="investment_preference", data={"company_interest": "growth"})] [calls AskUserQuestion(question="When I research stocks for you, how detailed should I be?", options=["Quick summaries", "Summary", "Data-focused", "Thorough deep-dives"])] → User selects "Quick summaries" Agent: [calls update_user_data(entity="agent_preference", data={"output_style": "quick"})] [calls update_user_data(entity="profile", data={"onboarding_completed": true})] Your profile is set up: - Portfolio: AAPL (50 shares @ $175) - Watchlist: NVDA - Risk tolerance: Medium - Company interest: Growth - Output style: Quick summaries Is there anything else you'd like to add or adjust? ``` -------------------------------- ### Explaining One-Task Limitation Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/initiating-coverage/SKILL.md If a user explicitly requests all tasks together, explain the skill's current limitation of supporting only one task at a time. Offer to start with Task 1 to guide them through the process. ```text I understand you'd like to complete the entire initiation report pipeline. Currently, this skill supports executing one task at a time, which allows for better quality control and review at each stage. We're working on a seamless end-to-end workflow that will make this process more automated, but for now, we'll need to complete each task separately. Would you like to start with Task 1 (Company Research)? ``` -------------------------------- ### Introduction Message Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/user-profile/onboarding.md Greet the user and explain the onboarding process, highlighting required and optional information. ```text I'd be happy to help you set up your investment profile! This helps me give you personalized advice. I'll need two things: at least one stock you're watching or own, and your risk tolerance. I can also ask about company interest, holding period, analysis focus, and output style — those are optional. Are there any stocks you're currently watching or own? ``` -------------------------------- ### DCF Sheet Free Cash Flow Build Structure Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/dcf-model/SKILL.md Details the structure for building the Free Cash Flow (FCF) statement, starting from NOPAT and adjusting for D&A, CapEx, and changes in Net Working Capital. Includes examples of row reference patterns. ```csv Cash Flow ($M),2020A,2021A,2022A,2023A,2024E,2025E,2026E NOPAT,XXX,XXX,XXX,XXX,[=E45],[=F45],[=G45] (+) D&A,XXX,XXX,XXX,XXX,[=E29*$E$21],[=F29*$E$21],[=G29*$E$21] % of Rev,XX%,XX%,XX%,XX%,[=E58/E29],[=F58/F29],[=G58/G29] (-) CapEx,(XX),(XX),(XX),(XX),[=E29*$E$22],[=F29*$E$22],[=G29*$E$22] % of Rev,XX%,XX%,XX%,XX%,[=E60/E29],[=F60/F29],[=G60/G29] (-) Δ NWC,(XX),(XX),(XX),(XX),[=(E29-D29)*$E$23],[=(F29-E29)*$E$23],[=(G29-F29)*$E$23] % of Δ Rev,XX%,XX%,XX%,XX%,[=E62/(E29-D29)],[=F62/(F29-E29)],[=G62/(G29-F29)] ,,,,, Unlevered FCF,XXX,XXX,XXX,XXX,[=E57+E58-E60-E62],[=F57+F58-F60-F62],[=G57+G58-G60-G62] ``` -------------------------------- ### FastAPI + HTML Setup Workflow Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/interactive-dashboard/SKILL.md Provides a step-by-step workflow for setting up a FastAPI backend with static HTML, including copying template files, managing dependencies, and writing the HTML. ```bash 1. **Copy template files** — all four `cp` commands above, then add your API routes to `server/main.py` 2. **Add your Python deps** to `server/requirements.txt` (append pandas, yfinance, etc.) 3. **Write `static/index.html`** with `fetch()` calls to your API routes for live data 4. **Serve**: `GetPreviewUrl(port=8050, command="bash work//start.sh", title="Dashboard")` ``` -------------------------------- ### Production Build Source: https://github.com/ginlix-ai/langalpha/blob/main/web/README.md Create a production-ready build of the application. Output is placed in the dist/ directory. ```bash pnpm build ``` -------------------------------- ### View All Available Make Commands Source: https://github.com/ginlix-ai/langalpha/blob/main/README.md Run `make help` to display a list of all available commands for managing the LangAlpha project, including setup, build, and run tasks. ```bash make help ``` -------------------------------- ### Table of Contents Example Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/initiating-coverage/assets/report-template.md An example of a table of contents structure, showing page numbers for various report sections. ```plaintext Executive Summary....................................................1 Investment Thesis & Risks..........................................3 Company Overview.......................................................6 Business Description & History................................6 Management & Ownership..........................................8 Products & Technology...........................................9 Customers & Go-to-Market......................................11 Growth Outlook & Drivers...........................................13 Financial Analysis & Performance.................................16 Historical Performance........................................16 Financial Projections.........................................19 Industry Overview & Competitive Landscape.....................21 Market Size & TAM..............................................21 Competitive Analysis..........................................23 Industry Trends................................................25 Valuation Analysis..................................................27 Appendices & Disclosures...........................................31 ``` -------------------------------- ### Setting Up Multi-Column Layouts Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/docx/SKILL.md Provides examples for creating equal-width columns and custom-width columns within a document section. Use 'sections' to define column properties. ```javascript // Equal-width columns sections: [{ properties: { column: { count: 2, // number of columns space: 720, // gap between columns in DXA (720 = 0.5 inch) equalWidth: true, separate: true, // vertical line between columns }, }, children: [/* content flows naturally across columns */] }] // Custom-width columns (equalWidth must be false) sections: [{ properties: { column: { equalWidth: false, children: [ new Column({ width: 5400, space: 720 }), new Column({ width: 3240 }), ], }, }, children: [/* content */] }] ``` -------------------------------- ### Revenue by Geography Example Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/initiating-coverage/assets/report-template.md Example regions for a stacked bar chart showing revenue breakdown by geographic region over time. ```markdown ``` Example regions: - North America - Europe - Asia-Pacific - Rest of World ``` ``` -------------------------------- ### Configure Environment Variables Source: https://github.com/ginlix-ai/langalpha/blob/main/CONTRIBUTING.md Copy the example environment file and run the configuration wizard or manually edit the .env and agent_config.yaml files. API keys are optional for basic functionality. ```bash cp .env.example .env make config # interactive wizard, or edit .env and agent_config.yaml manually ``` -------------------------------- ### Install Required Libraries Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/initiating-coverage/references/task4-chart-generation.md Installs the necessary Python libraries for data visualization and manipulation, including matplotlib, seaborn, pandas, and numpy. ```bash pip install matplotlib seaborn pandas numpy plotly ``` -------------------------------- ### Setup docx-js Document Creation Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/docx/SKILL.md Import necessary components from the 'docx' library and initialize a new Document object. The Packer can then convert this to a buffer for saving. ```javascript const { Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell, ImageRun, Header, Footer, AlignmentType, PageOrientation, LevelFormat, ExternalHyperlink, InternalHyperlink, Bookmark, FootnoteReferenceRun, PositionalTab, PositionalTabAlignment, PositionalTabRelativeTo, PositionalTabLeader, TabStopType, TabStopPosition, Column, SectionType, TableOfContents, HeadingLevel, BorderStyle, WidthType, ShadingType, VerticalAlign, PageNumber, PageBreak } = require('docx'); const doc = new Document({ sections: [{ children: [/* content */] }] }); Packer.toBuffer(doc).then(buffer => fs.writeFileSync("doc.docx", buffer)); ``` -------------------------------- ### Revenue by Product/Segment Example Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/initiating-coverage/assets/report-template.md Example segments for a stacked area chart illustrating revenue composition by product line or business segment over time. ```markdown ``` Example segments: - Product A Revenue - Product B Revenue - Product C Revenue - Services Revenue ``` ``` -------------------------------- ### Preview Production Build Source: https://github.com/ginlix-ai/langalpha/blob/main/web/README.md Preview the production build locally before deployment. ```bash pnpm preview ``` -------------------------------- ### Development and Build Commands Source: https://github.com/ginlix-ai/langalpha/blob/main/web/CLAUDE.md Common commands for running the development server, building for production, linting, and previewing the application. ```bash pnpm dev # Dev server on 127.0.0.1:5173 (proxies /api → localhost:8080) pnpm build # Production build (Vite 7, manual chunk splitting) pnpm lint # ESLint 9 flat config pnpm preview # Preview production build ``` -------------------------------- ### Complete User Onboarding Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/user-profile/onboarding.md Call this function to mark the user onboarding process as completed. This action should only be performed after verifying that essential criteria like stock additions and risk preference have been met. ```text Call update_user_data(entity="profile", data={"onboarding_completed": true}) ``` -------------------------------- ### Example Detailed Bullet Point Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/initiating-coverage/assets/report-template.md Provides a concrete example of a detailed bullet point, demonstrating the use of a bold topic header and a multi-sentence explanation with specific data. ```plaintext ■ **Vertical SaaS leadership and regulatory moat should enable $50bn+ TAM by 2030.** Deep domain expertise in healthcare IT, strong customer retention (95%+ net revenue retention), and cross-sell capabilities have driven Acme Health's market expansion. With the healthcare IT market expected to reach $50bn+ by 2030, Acme Health is well-positioned to capture share given its regulatory moat and high switching costs. Management has indicated that 70% of current revenue comes from enterprise hospital systems, suggesting strong product-market fit. ``` -------------------------------- ### DCF Sensitivity Analysis Example Table Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/initiating-coverage/references/valuation-methodologies.md An example of a two-way sensitivity table for DCF analysis, showing the impact of varying WACC and Terminal Growth Rate on valuation. ```plaintext Terminal Growth Rate WACC 2.0% 2.5% 3.0% 8.0% $45 $48 $52 9.0% $40 $43 $46 10.0% $36 $39 $41 ``` -------------------------------- ### KPIRow Usage Example Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/interactive-dashboard/references/ui-components.md An example demonstrating the usage of the KPIRow component, which renders a horizontal row of KPICard components. It takes an array of KPI data objects and an optional loading state. ```jsx const kpis = [ { label: 'Current Price', value: '182.52', prefix: '$', change: '+2.34%' }, { label: 'Market Cap', value: '2.87T', prefix: '$' }, { label: 'P/E Ratio', value: '28.4', suffix: 'x', change: '-1.2x', changeDirection: 'negative' }, { label: 'Volume', value: '54.3M', change: '+12.5%' }, ]; ``` -------------------------------- ### Agent Creation and Middleware Stack Source: https://github.com/ginlix-ai/langalpha/blob/main/CLAUDE.md Illustrates how the agent is assembled using create_agent(), including tools, middleware layers, and subagent orchestration. Flash mode offers a lightweight alternative. ```python from deepagents import create_agent # ... tool definitions ... agent = create_agent( tools=[ execute_code, bash, # ... other tools ... ], middleware_chain=[ tool_arg_parsing, protected_paths, error_handling, # ... ~25 layers ... workspace_context_injection, memory_awareness, ], background_subagents=BackgroundSubagentOrchestrator() ) # Flash mode example (simplified): flash_agent = create_agent( tools=[web_search, market_data, sec_data], # ... fewer middleware layers, no subagents ... ) ``` -------------------------------- ### Multi-Page Crawling with Spider Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/web-scraping/SKILL.md Implement the Spider class for crawling multiple pages, handling pagination, and extracting data. Define start URLs, concurrency, and parsing logic. The spider can then be instantiated and started to yield scraped items. ```python from scrapling.spiders import Spider, Request, Response class PriceScraper(Spider): name = "prices" start_urls = ["https://example.com/products"] concurrent_requests = 5 async def parse(self, response: Response): for product in response.css(".product"): yield { "name": product.css(".name::text").get(), "price": product.css(".price::text").get(), } next_page = response.css("a.next::attr(href)").get() if next_page: yield Request(next_page) spider = PriceScraper() result = spider.start() result.items.to_json("results/prices.json") ``` -------------------------------- ### Running FastAPI + Vite/React Application Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/interactive-dashboard/SKILL.md This command initiates the dashboard application. It specifies the port, the command to execute, and a title for the preview. ```python GetPreviewUrl(port=8050, command="bash work//start.sh", title="Dashboard") ``` -------------------------------- ### Create a Workspace Source: https://github.com/ginlix-ai/langalpha/blob/main/docs/api/README.md Use this endpoint to create a new workspace for your project. Requires a Content-Type header and a custom X-User-Id header. ```bash curl -X POST "http://localhost:8000/api/v1/workspaces" \ -H "Content-Type: application/json" \ -H "X-User-Id: user-123" \ -d '{"name": "My Project"}' ``` -------------------------------- ### Use MCP Tool Wrapper: get Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/web-scraping/references/api-reference.md Fetch content from a URL using the synchronous `get` tool. Specify the `extraction_type` (e.g., 'markdown', 'HTML', 'text'). The content is returned in a dictionary, with the actual text in `result['content'][0]`. ```python # No import needed — available as top-level function result = get(url="https://example.com", extraction_type="markdown") print(result["content"][0]) # markdown string ``` -------------------------------- ### Example ImageMagick Crop for Field Refinement Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/pdf/forms.md A practical example of using ImageMagick's crop command to isolate a 'Name' field area for precise coordinate determination. The parameters define the source image, crop dimensions and offset, and the output file. ```bash magick images_dir/page_1.png -crop 300x80+50+120 +repage crops/name_field.png ``` -------------------------------- ### Get User Watchlists Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/user-profile/SKILL.md Retrieve a list of all user watchlists. ```python get_user_data(entity="watchlists") # Returns: [{"watchlist_id": "abc", "name": "Tech Stocks", "is_default": true}, ...] ``` -------------------------------- ### Configure Theme and Palette Source: https://github.com/ginlix-ai/langalpha/blob/main/libs/ptc-cli/README.md Customize the CLI's color theme and palette using environment variables. ```bash # Use catppuccin palette with dark theme PTC_PALETTE=catppuccin PTC_THEME=dark ptc-agent # Disable colors for accessibility NO_COLOR=1 ptc-agent ``` -------------------------------- ### Apply Database Migrations Source: https://github.com/ginlix-ai/langalpha/blob/main/CLAUDE.md Applies only the database migrations without starting new services. ```bash make migrate # run migrations only ``` -------------------------------- ### Example Citation with Hyperlinks Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/earnings-analysis/SKILL.md Demonstrates how to format citations for financial documents, including specific sources, dates, and clickable hyperlinks for the 10-Q filing and earnings release. ```Markdown Source: Q3 2024 10-Q filed November 8, 2024; Company earnings release [Hyperlink "10-Q" to: https://www.sec.gov/cgi-bin/viewer?accession=...] [Hyperlink "earnings release" to: https://investor.company.com/news/q3-2024] ``` -------------------------------- ### Get User By Username Success Shape Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/x-api/reference.md The success shape returned by the `get_user_by_username` operation. ```APIDOC ## `get_user_by_username` ```json { "user": { "id": "string", "username": "string", "name": "string", "verified": "boolean", "description": "string", "created_at": "string (ISO8601 UTC)", "public_metrics": { "followers_count": "integer", "following_count": "integer", "tweet_count": "integer", "listed_count": "integer", "like_count": "integer", "media_count": "integer" } } } ``` Suspended, deactivated, or nonexistent handles return `{"error": "not_found", "detail": "User '…' not found"}`. ``` -------------------------------- ### Create Watchlist Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/user-profile/SKILL.md Create a new watchlist with a name and an optional description. This snippet demonstrates creating a basic watchlist. ```python # Create a watchlist update_user_data( entity="watchlist", data={"name": "AI Companies", "description": "Companies focused on AI"} ) ``` -------------------------------- ### Get Tweet By ID Success Shape Source: https://github.com/ginlix-ai/langalpha/blob/main/skills/x-api/reference.md The success shape returned by the `get_tweet_by_id` operation. ```APIDOC ## `get_tweet_by_id` ```json { "post": { "id": "string", "text": "string", "created_at": "string (ISO8601 UTC)", "lang": "string", "conversation_id": "string", "author_id": "string", "edit_history_tweet_ids": ["string"], "public_metrics": { /* same 6 keys as above */ }, "author": { /* same 3-shape union as above */ } } } ``` Deleted or private tweets return `{"error": "not_found", "detail": "Tweet '…' not found"}`. ```