@hybridlabor-api/bdb-antigravity-skills 1.2.0 → 1.2.2

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.
@@ -0,0 +1,110 @@
1
+ ---
2
+ name: bdb-vectorworks-mcp
3
+ description: Utilizes the Vectorworks RAG + MCP server to search and retrieve Python and VectorScript API documentation.
4
+ ---
5
+
6
+ # Vectorworks RAG MCP — Integration and AI Agent Guide
7
+
8
+ This skill file instructs AI agents on how to utilize the Vectorworks RAG (Retrieval-Augmented Generation) and MCP server. It details documentation searches, VectorScript code generation, and troubleshooting steps.
9
+
10
+ ## 1. Overview and Pipeline Value
11
+
12
+ The **Vectorworks RAG + MCP Server** integrates local Vectorworks Python and VectorScript developer documentation. Using sentence-transformers and a FAISS semantic index, it provides immediate API lookups and code generation recommendations directly to AI models. This avoids syntax hallucinations when generating CAD or BIM layout scripts.
13
+
14
+ ### Architecture
15
+ - **FastAPI / WebSocket Server:** Exposes search routes (`/search`, `/answer`) and a WebSocket JSON-RPC 2.0 interface (default port `8765`) acting as the MCP endpoint.
16
+ - **FAISS Vector Index:** Performs local CPU-bound cosine similarity queries against chunked document sources.
17
+ - **Dockerized Environment:** Package compose wraps the indexer, database, and FastAPI applications.
18
+
19
+ ---
20
+
21
+ ## 2. System Instructions
22
+
23
+ ### Workflow Priorities
24
+ 1. **API Validation first:** Before generating any VectorScript or Vectorworks Python script, query the RAG database to verify the function signature (e.g. parameter order, return values).
25
+ 2. **Context boundaries:** VectorScript (Pascal-based syntax) and Vectorworks Python have specific execution rules. Explicitly query RAG if you are unsure how attributes or records are handled.
26
+ 3. **Drafting Verification:** Use `vw.answer` to receive a detailed breakdown with citations. Do not write complex routines without consulting the retrieved document chunks first.
27
+
28
+ ---
29
+
30
+ ## 3. Available Tools and API Parameters
31
+
32
+ The server provides three tools via WebSocket:
33
+
34
+ | Tool | Parameters | Description |
35
+ | :--- | :--- | :--- |
36
+ | **`vw.search`** | `query: string`, `k?: int` (default 6) | Returns semantic search hits from the Vectorworks SDK/VectorScript references. |
37
+ | **`vw.answer`** | `query: string`, `k?: int` | Returns a draft explanation or script snippet synthesized from indexed document blocks. |
38
+ | **`vw.get`** | `doc_id: string`, `chunk_id: string` | Retrieves a specific document chunk to review source context or examples. |
39
+
40
+ ---
41
+
42
+ ## 4. Code Recipes and Prompt Cookbook
43
+
44
+ ### Recipe 1: Retrieve Function Signatures
45
+ Find details on drawing a standard rectangle with attributes using VectorScript:
46
+
47
+ ```json
48
+ // Tool Call: vw.search
49
+ {
50
+ "query": "Rect or CreateRectangle or PushAttrs"
51
+ }
52
+
53
+ // Tool Call: vw.answer
54
+ {
55
+ "query": "How do I draw a rectangle in VectorScript and set its fill color?"
56
+ }
57
+ ```
58
+
59
+ ### Recipe 2: VectorScript Structure Example
60
+ Consulting a search result from `vw.get`, construct a standard VectorScript block:
61
+
62
+ ```pascal
63
+ Procedure CreateCustomRect;
64
+ VAR
65
+ h : HANDLE;
66
+ Begin
67
+ { Draw rectangle }
68
+ Rect(0, 0, 150, 100);
69
+ h := LNewObj;
70
+
71
+ { Set fill style and color to red }
72
+ SetFPat(h, 1); { Solid fill }
73
+ SetFillBack(h, 65535, 0, 0); { RGB 16-bit color }
74
+
75
+ ReDraw;
76
+ End;
77
+ Run(CreateCustomRect);
78
+ ```
79
+
80
+ ---
81
+
82
+ ## 5. Troubleshooting and Connection Details
83
+
84
+ ### Configuration and Setup
85
+ - **Web Interface:** `http://localhost:8000` (FastAPI UI)
86
+ - **MCP WebSocket URL:** `ws://localhost:8765`
87
+ - **Port Settings:**
88
+ - `API_PORT` (FastAPI): Default `8000`
89
+ - `MCP_PORT` (WebSocket): Default `8765`
90
+
91
+ ### Connection Verification
92
+ Ensure the Docker containers are running and port `8765` is bound:
93
+ ```bash
94
+ # Verify WebSocket port
95
+ curl http://localhost:8000/search?q=PushAttrs
96
+ ```
97
+
98
+ ### Rebuilding index
99
+ If you update or add new documentation files inside the `data/` folder, rebuild the FAISS database index:
100
+ ```bash
101
+ docker compose run --rm app python -m app.indexer --rebuild
102
+ ```
103
+
104
+ ### Common Errors and Fixes
105
+ 1. **`Connection Refused on ws://localhost:8765`**
106
+ - *Cause:* The Docker containers are not running, or the app container crashed.
107
+ - *Fix:* Run `docker compose up -d` in the `vectorworks-mcp` directory and inspect container logs via `docker compose logs app`.
108
+ 2. **`API signature hallucination / Incorrect Pascal syntax`**
109
+ - *Cause:* The AI did not consult the RAG database before generating the code block.
110
+ - *Fix:* Force the agent to run `vw.search` with the specific function name or topic, then review output references.