@noeffortsai/nai 1.18.0-rc.8
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/README.md +553 -0
- package/bin/nai +66 -0
- package/dist/nai.mjs +1462 -0
- package/package.json +42 -0
package/README.md
ADDED
|
@@ -0,0 +1,553 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# ๐ NoEffortsAI
|
|
4
|
+
|
|
5
|
+
### The AI-Powered Software Development Platform
|
|
6
|
+
|
|
7
|
+
<img src="https://img.shields.io/badge/React-18-61DAFB?style=for-the-badge&logo=react&logoColor=white" /> <img src="https://img.shields.io/badge/TypeScript-5-3178C6?style=for-the-badge&logo=typescript&logoColor=white" /> <img src="https://img.shields.io/badge/Vite-5-646CFF?style=for-the-badge&logo=vite&logoColor=white" /> <img src="https://img.shields.io/badge/Tailwind-3-06B6D4?style=for-the-badge&logo=tailwindcss&logoColor=white" /> <img src="https://img.shields.io/badge/Supabase-Backend-3FCF8E?style=for-the-badge&logo=supabase&logoColor=white" />
|
|
8
|
+
|
|
9
|
+
**Ship production-grade applications with an autonomous AI coding agent that reasons, plans, writes, tests, and deploys.**
|
|
10
|
+
|
|
11
|
+
๐ฎ๐ณ *AI for All, from India* โ Built by **Rohit Vishal**
|
|
12
|
+
|
|
13
|
+
[Website](https://noeffortsai.ai) ยท [Blog](/blog) ยท [Learning Hub](/learn) ยท [Showcase](/showcase)
|
|
14
|
+
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## ๐ Table of Contents
|
|
20
|
+
|
|
21
|
+
- [Overview](#-overview)
|
|
22
|
+
- [Key Features](#-key-features)
|
|
23
|
+
- [Tech Stack](#-tech-stack)
|
|
24
|
+
- [Architecture](#-architecture)
|
|
25
|
+
- [Agent Intelligence](#-agent-intelligence)
|
|
26
|
+
- [Protocol System](#-protocol-system)
|
|
27
|
+
- [Neuron Memory Engine](#-neuron-memory-engine)
|
|
28
|
+
- [Builder IDE](#-builder-ide)
|
|
29
|
+
- [Integrations](#-integrations)
|
|
30
|
+
- [Edge Functions](#-edge-functions)
|
|
31
|
+
- [Database Schema](#-database-schema)
|
|
32
|
+
- [Pages & Routes](#-pages--routes)
|
|
33
|
+
- [Security](#-security)
|
|
34
|
+
- [Getting Started](#-getting-started)
|
|
35
|
+
- [Documentation](#-documentation)
|
|
36
|
+
- [Contributing](#-contributing)
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## ๐ Overview
|
|
41
|
+
|
|
42
|
+
NoEffortsAI is a full-stack AI development platform that combines a professional browser-based IDE with an autonomous coding agent. The agent uses a **ReAct (Reasoning + Acting)** loop to understand your codebase, plan tasks, write code, run tests, and deploy โ all from a single chat interface.
|
|
43
|
+
|
|
44
|
+
**What makes it different:**
|
|
45
|
+
|
|
46
|
+
- ๐ง **Autonomous Agent** โ ReAct reasoning loop with 145+ tools
|
|
47
|
+
- ๐ **25+ AI Models** โ Multi-provider gateway (OpenAI, Google, Anthropic, and more)
|
|
48
|
+
- ๐ **11 Agent Protocols** โ MCP, A2A, FCP, LangChain, and 7 more
|
|
49
|
+
- ๐งฌ **10-Neuron Memory** โ Persistent contextual intelligence
|
|
50
|
+
- ๐ **One-Click Deploy** โ Vercel, Netlify, Railway, VPS
|
|
51
|
+
- ๐ค **Real-Time Collaboration** โ Live cursors, presence, co-editing
|
|
52
|
+
- ๐ก๏ธ **Enterprise Security** โ RLS, PII filtering, encrypted keys, RBAC
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## โจ Key Features
|
|
57
|
+
|
|
58
|
+
### AI Agent Engine
|
|
59
|
+
- **ReAct Reasoning Loop** โ Thought โ Action โ Observation cycle for systematic problem-solving
|
|
60
|
+
- **Multi-Agent Roles** โ Planner, Implementer, and Verifier operate in sequence
|
|
61
|
+
- **145+ Tools** โ File ops, code search, parsing, linting, testing, deployment, and more
|
|
62
|
+
- **Auto-Test Runner** โ Every code block is tested in a cloud sandbox before delivery
|
|
63
|
+
- **Plan Engine** โ Structured task decomposition with human-in-the-loop approval
|
|
64
|
+
- **Safety Layer** โ PII filtering, shell command guardrails, trust signal scoring
|
|
65
|
+
|
|
66
|
+
### Multi-Model AI Gateway
|
|
67
|
+
- **25+ Models** โ GPT-5, GPT-5-mini, Gemini 2.5 Pro/Flash, Claude, and more
|
|
68
|
+
- **Database-Driven Config** โ Models and routes managed via `platform_models` and `platform_provider_config` tables
|
|
69
|
+
- **Smart Routing** โ Automatic model selection based on task complexity
|
|
70
|
+
- **Stream Normalization** โ Unified streaming across OpenAI, Anthropic, Gemini, Ollama, Cohere formats
|
|
71
|
+
- **Auto-Failover** โ Cascading fallback across multiple backend routes with priority ordering
|
|
72
|
+
- **BYOK Support** โ Bring Your Own Key for any OpenAI-compatible provider
|
|
73
|
+
|
|
74
|
+
### Professional IDE (Builder)
|
|
75
|
+
- **Split Editor** โ Side-by-side file editing with CodeMirror 6
|
|
76
|
+
- **File Tree** โ Full project navigation with icons, search, and create/rename/delete
|
|
77
|
+
- **Terminal Panel** โ macOS-style integrated terminal with xterm.js
|
|
78
|
+
- **Live Preview** โ Hot-reloading preview panel with device profiles
|
|
79
|
+
- **Git Panel** โ Branch management, commit history, diff review
|
|
80
|
+
- **Activity Panel** โ Real-time action log of agent operations
|
|
81
|
+
- **Inline Diagnostics** โ Error and warning overlays in the editor
|
|
82
|
+
- **Autocomplete** โ Context-aware code suggestions
|
|
83
|
+
|
|
84
|
+
### Real-Time Collaboration
|
|
85
|
+
- **Live Cursors** โ See teammates' cursor positions with color-coded labels
|
|
86
|
+
- **Presence Tracking** โ Online status and avatar stacks across the workspace
|
|
87
|
+
- **Follow Mode** โ Track another collaborator's active view
|
|
88
|
+
- **Conflict Detection** โ Alerts when multiple users edit the same file
|
|
89
|
+
- **Discussion Threads** โ File-specific or general project feedback
|
|
90
|
+
|
|
91
|
+
### Deployment & DevOps
|
|
92
|
+
- **GitHub Integration** โ Two-way sync, branch management, PRs, issues, actions
|
|
93
|
+
- **Vercel Deploy** โ One-click production deployments with environment variables
|
|
94
|
+
- **Netlify Deploy** โ Site creation, build hooks, deployment history
|
|
95
|
+
- **Railway Deploy** โ Service lifecycle management and log streaming
|
|
96
|
+
- **VPS Bridge** โ Direct server control with one-click Ubuntu setup script
|
|
97
|
+
- **CI/CD Pipeline** โ Chain up to 20 steps with dependency resolution across all platforms
|
|
98
|
+
|
|
99
|
+
### Skill Marketplace
|
|
100
|
+
- **Install Skills** โ Extend the agent with community-built capabilities
|
|
101
|
+
- **GitHub Import** โ Load skills directly from repositories
|
|
102
|
+
- **Publish & Share** โ Create and distribute your own agent skills
|
|
103
|
+
- **Auto-Injection** โ Active skills are injected into the agent's system prompt at runtime
|
|
104
|
+
|
|
105
|
+
### Learning Hub
|
|
106
|
+
- **Zero-to-Builder Track** โ Structured curriculum from basics to advanced
|
|
107
|
+
- **AI Agent Fundamentals** โ ReAct loops, memory, prompt engineering
|
|
108
|
+
- **Architecture Guides** โ Systems design, frontend/backend patterns
|
|
109
|
+
- **Real-World Projects** โ Hands-on building exercises
|
|
110
|
+
|
|
111
|
+
### Content & Community
|
|
112
|
+
- **Blog CMS** โ Full editor with publishing, tagging, and cover images
|
|
113
|
+
- **Explore Gallery** โ Browse public community projects
|
|
114
|
+
- **Showcase** โ Featured projects and success stories
|
|
115
|
+
- **Team Chat** โ Real-time workspace messaging with file sharing and threads
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## ๐ ๏ธ Tech Stack
|
|
120
|
+
|
|
121
|
+
| Layer | Technology |
|
|
122
|
+
|-------|-----------|
|
|
123
|
+
| **Frontend** | React 18, TypeScript 5, Vite 5, Tailwind CSS 3 |
|
|
124
|
+
| **UI Components** | shadcn/ui, Radix UI, Framer Motion, Lucide Icons |
|
|
125
|
+
| **Editor** | CodeMirror 6 (JS, JSON, Markdown, SQL) |
|
|
126
|
+
| **Terminal** | xterm.js with fit and web-links addons |
|
|
127
|
+
| **Charts** | Recharts |
|
|
128
|
+
| **State** | TanStack React Query, React Hook Form, Zod |
|
|
129
|
+
| **Backend** | Supabase (Postgres, Auth, Realtime, Edge Functions, Storage) |
|
|
130
|
+
| **Vector Search** | Voyage AI embeddings + Qdrant |
|
|
131
|
+
| **Web Scraping** | Firecrawl (scrape, crawl, map, search) |
|
|
132
|
+
| **Code Execution** | Cloud sandbox via onlinecompiler.io |
|
|
133
|
+
| **Deployment** | Vercel, Netlify, Railway, VPS (Ubuntu) |
|
|
134
|
+
| **Auth** | Email/password, Google OAuth, Apple Sign-In, Google One Tap |
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## ๐๏ธ Architecture
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
142
|
+
โ Frontend โ
|
|
143
|
+
โ React 18 + Vite 5 + Tailwind CSS + TypeScript โ
|
|
144
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
|
|
145
|
+
โ Agent Core โ
|
|
146
|
+
โ ReAct Loop โ Plan Engine โ Tool Registry (145+) โ
|
|
147
|
+
โ Model Router โ Safety Layer โ Neuron Memory โ
|
|
148
|
+
โ 11 Protocols โ Skill Injector โ Code Parser โ
|
|
149
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
|
|
150
|
+
โ Backend (Edge Functions) โ
|
|
151
|
+
โ chat ยท code-runner ยท embed-text ยท web-intel โ
|
|
152
|
+
โ github-proxy ยท vercel-proxy ยท netlify-proxy โ
|
|
153
|
+
โ railway-proxy ยท turso-proxy ยท vps-proxy โ
|
|
154
|
+
โ pipeline-orchestrator ยท skill-manager โ
|
|
155
|
+
โ vision-to-code ยท stitch-generate ยท qdrant-proxy โ
|
|
156
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
|
|
157
|
+
โ Data & Storage โ
|
|
158
|
+
โ Postgres (27+ tables) ยท Realtime ยท Auth ยท RLS โ
|
|
159
|
+
โ Voyage AI Embeddings ยท Qdrant Vector DB โ
|
|
160
|
+
โ Transactional Email Queue (PGMQ) โ
|
|
161
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## ๐ง Agent Intelligence
|
|
167
|
+
|
|
168
|
+
### ReAct Reasoning Loop
|
|
169
|
+
|
|
170
|
+
The agent operates in a continuous Thought โ Action โ Observation cycle:
|
|
171
|
+
|
|
172
|
+
1. **Context Assembly** โ Gathers chat history, vector search results, repo map, file relevance scores (TF-IDF)
|
|
173
|
+
2. **Reasoning** โ Thinks about what needs to be done next
|
|
174
|
+
3. **Action** โ Executes one of 145+ tools
|
|
175
|
+
4. **Observation** โ Checks the result, decides if more steps are needed
|
|
176
|
+
5. **Verification** โ Auto-tests generated code, fixes failures, and re-tests
|
|
177
|
+
|
|
178
|
+
### Tool Categories
|
|
179
|
+
|
|
180
|
+
| Category | Examples | Count |
|
|
181
|
+
|----------|----------|-------|
|
|
182
|
+
| **File Ops** | read, write, delete, list, patch, search | 15+ |
|
|
183
|
+
| **Code Intelligence** | parse AST, search symbols, lint, format | 20+ |
|
|
184
|
+
| **AI & Analysis** | chat, analyze, suggest, summarize | 10+ |
|
|
185
|
+
| **GitHub** | create repo, push file, create PR, list issues | 20+ |
|
|
186
|
+
| **Deploy** | vercel deploy, netlify create, railway restart | 25+ |
|
|
187
|
+
| **VPS** | exec command, docker manage, nginx configure | 38+ |
|
|
188
|
+
| **Data** | db query, embed text, vector search, crawl web | 15+ |
|
|
189
|
+
| **System** | checkpoint, ask user, verify, plan | 10+ |
|
|
190
|
+
|
|
191
|
+
### Advanced Capabilities
|
|
192
|
+
|
|
193
|
+
- **Competitive Toolset** โ Surgical file patching, project-wide refactoring, component extraction, security auditing, accessibility scanning, bundle analysis
|
|
194
|
+
- **Language Engine** โ Specialized rules for 13+ languages (Python, Go, Rust, Java, TypeScript, etc.)
|
|
195
|
+
- **Framework Profiles** โ 10+ framework templates (Django, FastAPI, NestJS, Next.js, etc.)
|
|
196
|
+
- **Iteration Intelligence** โ Autonomous self-correction chains for syntax/type/runtime errors
|
|
197
|
+
- **Minimal Edit Enforcer** โ Edit-in-place logic for smallest possible diffs
|
|
198
|
+
- **Context Budget** โ Smart token allocation across history, files, and search results
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## ๐ Protocol System
|
|
203
|
+
|
|
204
|
+
NoEffortsAI supports **11 interoperability protocols** for universal agent communication:
|
|
205
|
+
|
|
206
|
+
| Protocol | Standard | Purpose |
|
|
207
|
+
|----------|----------|---------|
|
|
208
|
+
| **MCP** | Anthropic | Model Context Protocol for external tool servers |
|
|
209
|
+
| **FCP** | OpenAI | Function Calling Protocol for structured tool use |
|
|
210
|
+
| **A2A** | Google | Agent-to-Agent communication |
|
|
211
|
+
| **ACP** | IBM | Agent Communication Protocol |
|
|
212
|
+
| **LangChain** | LangChain | Agent framework integration |
|
|
213
|
+
| **TAP** | โ | Tool Augmented Protocol |
|
|
214
|
+
| **TDF** | Stanford | Task Description Framework |
|
|
215
|
+
| **AgentOS** | โ | Agent runtime environment |
|
|
216
|
+
| **AGP** | โ | Agent Gateway Protocol |
|
|
217
|
+
| **OAP** | โ | Open Agent Protocol |
|
|
218
|
+
| **RDF** | W3C | Resource Description Framework |
|
|
219
|
+
|
|
220
|
+
All protocols share a unified type system (`ProtocolAdapter`, `ProtocolMessage`, `ProtocolTool`, `TaskEnvelope`) and are managed by a central `ProtocolRegistry`.
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## ๐งฌ Neuron Memory Engine
|
|
225
|
+
|
|
226
|
+
A 10-neuron cognitive system provides persistent, contextual intelligence:
|
|
227
|
+
|
|
228
|
+
| Neuron | File | Purpose |
|
|
229
|
+
|--------|------|---------|
|
|
230
|
+
| **Entity** | `entityNeuron.ts` | Tracks entities (people, projects, APIs) across conversations |
|
|
231
|
+
| **Fact** | `factNeuron.ts` | Stores verified facts about the codebase |
|
|
232
|
+
| **History** | `historyNeuron.ts` | Compressed conversation memory |
|
|
233
|
+
| **Knowledge** | `knowledgeNeuron.ts` | Domain-specific knowledge base |
|
|
234
|
+
| **Skill** | `skillNeuron.ts` | Learned capabilities and patterns |
|
|
235
|
+
| **System** | `systemNeuron.ts` | Platform configuration awareness |
|
|
236
|
+
| **Task** | `taskNeuron.ts` | Active task tracking and decomposition |
|
|
237
|
+
| **Todo** | `todoNeuron.ts` | Persistent to-do management |
|
|
238
|
+
| **Workspace** | `workspaceNeuron.ts` | Project structure and file awareness |
|
|
239
|
+
|
|
240
|
+
Coordinated by the `neuronEngine.ts` orchestrator for holistic context assembly.
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## ๐ฅ๏ธ Builder IDE
|
|
245
|
+
|
|
246
|
+
The Builder (`/builder/:projectId`) is a professional IDE with:
|
|
247
|
+
|
|
248
|
+
| Panel | Component | Description |
|
|
249
|
+
|-------|-----------|-------------|
|
|
250
|
+
| **Chat** | `ChatPanel.tsx` | AI conversation with markdown, code blocks, tool results |
|
|
251
|
+
| **Code Editor** | `CodeEditor.tsx` | CodeMirror 6 with syntax highlighting, autocomplete, themes |
|
|
252
|
+
| **Split Editor** | `SplitEditor.tsx` | Side-by-side file comparison and editing |
|
|
253
|
+
| **File Tree** | `FileTree.tsx` | Project navigation with icons and search |
|
|
254
|
+
| **Terminal** | `TerminalPanel.tsx` | xterm.js integrated terminal |
|
|
255
|
+
| **Preview** | `PreviewPanel.tsx` | Live hot-reloading app preview |
|
|
256
|
+
| **Git** | `GitPanel.tsx` | Branch management, commits, diff review |
|
|
257
|
+
| **Activity** | `ActivityPanel.tsx` | Real-time agent action log |
|
|
258
|
+
| **Deploy** | `DeployPanel.tsx` | One-click deployment controls |
|
|
259
|
+
| **CI/CD** | `CicdDashboard.tsx` | Pipeline monitoring and management |
|
|
260
|
+
| **Plan** | `PlanProgressPanel.tsx` | Task plan visualization with approval |
|
|
261
|
+
| **Skills** | `SkillMarketplace.tsx` | Install and manage agent skills |
|
|
262
|
+
| **Stitch** | `StitchPanel.tsx` | AI code generation from templates |
|
|
263
|
+
| **Vision** | `VisionToCodeDialog.tsx` | Screenshot to code conversion |
|
|
264
|
+
| **Restructure** | `RestructurePanel.tsx` | Automated code refactoring |
|
|
265
|
+
| **MCP** | `McpConnectionDialog.tsx` | External tool server connections |
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## ๐ Integrations
|
|
270
|
+
|
|
271
|
+
### Cloud Services
|
|
272
|
+
|
|
273
|
+
| Service | Proxy Edge Function | Manager Page | Capabilities |
|
|
274
|
+
|---------|-------------------|--------------|--------------|
|
|
275
|
+
| **GitHub** | `github-proxy` | `/github` | Repos, branches, PRs, issues, actions, file push |
|
|
276
|
+
| **Vercel** | `vercel-proxy` | `/vercel` | Projects, deployments, env vars, domains |
|
|
277
|
+
| **Netlify** | `netlify-proxy` | `/netlify` | Sites, deploys, build hooks, DNS |
|
|
278
|
+
| **Railway** | `railway-proxy` | `/railway` | Services, deployments, logs, env vars |
|
|
279
|
+
| **Turso** | `turso-proxy` | `/turso` | Databases, organizations, usage |
|
|
280
|
+
|
|
281
|
+
### AI & Data Services
|
|
282
|
+
|
|
283
|
+
| Service | Edge Function | Purpose |
|
|
284
|
+
|---------|--------------|---------|
|
|
285
|
+
| **Multi-Model AI** | `chat` | GPT-5, Gemini, Claude via gateway |
|
|
286
|
+
| **Voyage AI** | `embed-text` | Code and text embeddings |
|
|
287
|
+
| **Qdrant** | `qdrant-proxy` | Vector similarity search |
|
|
288
|
+
| **Firecrawl** | `firecrawl-*` | Web scraping, crawling, mapping, search |
|
|
289
|
+
| **Vision AI** | `vision-to-code` | Image to code generation |
|
|
290
|
+
| **Audio AI** | `generate-audio`, `check-audio` | Text-to-speech and audio processing |
|
|
291
|
+
| **Code Runner** | `code-runner` | 20+ language cloud execution |
|
|
292
|
+
|
|
293
|
+
### Infrastructure
|
|
294
|
+
|
|
295
|
+
| Service | Edge Function | Purpose |
|
|
296
|
+
|---------|--------------|---------|
|
|
297
|
+
| **VPS** | `vps-proxy` | Remote server management |
|
|
298
|
+
| **Pipeline** | `pipeline-orchestrator` | Multi-step CI/CD chains |
|
|
299
|
+
| **Webhooks** | `webhook-trigger` | Event-driven automation |
|
|
300
|
+
| **Email** | `send-transactional-email`, `process-email-queue` | Transactional emails via PGMQ |
|
|
301
|
+
| **Figma** | `figma-proxy` | Design file import |
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## โก Edge Functions
|
|
306
|
+
|
|
307
|
+
35+ Supabase Edge Functions power the backend:
|
|
308
|
+
|
|
309
|
+
| Function | Purpose |
|
|
310
|
+
|----------|---------|
|
|
311
|
+
| `chat` | Multi-model AI gateway with stream normalization and failover |
|
|
312
|
+
| `code-runner` | Cloud code execution sandbox (20+ languages) |
|
|
313
|
+
| `code-scaffold` | Project template generation |
|
|
314
|
+
| `ai-code-tools` | AI-powered code analysis tools |
|
|
315
|
+
| `data-tools` | Database query and data manipulation |
|
|
316
|
+
| `devops-tools` | Infrastructure management utilities |
|
|
317
|
+
| `embed-text` | Text/code embedding via Voyage AI |
|
|
318
|
+
| `qdrant-proxy` | Vector database operations |
|
|
319
|
+
| `web-intel` | Web scraping and intelligence |
|
|
320
|
+
| `vision-to-code` | Screenshot to code generation |
|
|
321
|
+
| `stitch-generate` | Template-based code generation |
|
|
322
|
+
| `skill-manager` | Skill marketplace CRUD operations |
|
|
323
|
+
| `pipeline-orchestrator` | CI/CD pipeline execution engine |
|
|
324
|
+
| `integration-health` | Service connectivity monitoring |
|
|
325
|
+
| `secure-proxy` | Encrypted API key relay |
|
|
326
|
+
| `auth-email-hook` | Custom auth email templates |
|
|
327
|
+
| `send-transactional-email` | PGMQ-backed email delivery |
|
|
328
|
+
| `webhook-trigger` | Integration event dispatch |
|
|
329
|
+
| `firecrawl-*` | Web scraping suite (scrape, crawl, map, search) |
|
|
330
|
+
| `*-proxy` | GitHub, Vercel, Netlify, Railway, Turso, VPS, Figma |
|
|
331
|
+
|
|
332
|
+
---
|
|
333
|
+
|
|
334
|
+
## ๐พ Database Schema
|
|
335
|
+
|
|
336
|
+
27+ tables across multiple domains:
|
|
337
|
+
|
|
338
|
+
### Core
|
|
339
|
+
| Table | Purpose |
|
|
340
|
+
|-------|---------|
|
|
341
|
+
| `projects` | User projects with visibility and status |
|
|
342
|
+
| `files` | Project files with content |
|
|
343
|
+
| `file_versions` | File version history |
|
|
344
|
+
| `chats` | AI conversation threads |
|
|
345
|
+
| `messages` | Chat messages |
|
|
346
|
+
| `activity_logs` | Project activity timeline |
|
|
347
|
+
| `usage_logs` | AI model usage and cost tracking |
|
|
348
|
+
|
|
349
|
+
### Users & Auth
|
|
350
|
+
| Table | Purpose |
|
|
351
|
+
|-------|---------|
|
|
352
|
+
| `profiles` | User display names, avatars, emails |
|
|
353
|
+
| `user_roles` | RBAC roles (admin, moderator, user) |
|
|
354
|
+
| `user_preferences` | Theme, font size, accent color, animations |
|
|
355
|
+
| `provider_keys` | User API keys (BYOK) |
|
|
356
|
+
| `custom_providers` | User-configured AI providers |
|
|
357
|
+
| `project_collaborators` | Project sharing and permissions |
|
|
358
|
+
|
|
359
|
+
### Platform
|
|
360
|
+
| Table | Purpose |
|
|
361
|
+
|-------|---------|
|
|
362
|
+
| `platform_models` | Global AI model catalog |
|
|
363
|
+
| `platform_provider_config` | Backend API routes with priority |
|
|
364
|
+
| `integrations` | Connected service tokens |
|
|
365
|
+
| `webhook_events` | Integration event logs |
|
|
366
|
+
| `mcp_connections` | MCP server connections |
|
|
367
|
+
|
|
368
|
+
### Agent
|
|
369
|
+
| Table | Purpose |
|
|
370
|
+
|-------|---------|
|
|
371
|
+
| `agent_sessions` | Agent conversation sessions |
|
|
372
|
+
| `agent_turns` | Individual agent turns with token counts |
|
|
373
|
+
| `agent_memory` | Persistent agent memory store |
|
|
374
|
+
| `jobs` | Background job execution |
|
|
375
|
+
| `job_steps` | Individual job step tracking |
|
|
376
|
+
| `artifacts` | Job output artifacts |
|
|
377
|
+
|
|
378
|
+
### Skills
|
|
379
|
+
| Table | Purpose |
|
|
380
|
+
|-------|---------|
|
|
381
|
+
| `skills` | Marketplace skill definitions |
|
|
382
|
+
| `skill_installs` | Project skill installations |
|
|
383
|
+
|
|
384
|
+
### Content
|
|
385
|
+
| Table | Purpose |
|
|
386
|
+
|-------|---------|
|
|
387
|
+
| `blog_posts` | Blog CMS content |
|
|
388
|
+
| `team_messages` | Real-time team chat (Realtime enabled) |
|
|
389
|
+
| `notes` | User notes with tags and pinning |
|
|
390
|
+
| `todos` | User task management |
|
|
391
|
+
| `reminders` | Scheduled reminders |
|
|
392
|
+
|
|
393
|
+
### Email
|
|
394
|
+
| Table | Purpose |
|
|
395
|
+
|-------|---------|
|
|
396
|
+
| `email_send_log` | Email delivery tracking |
|
|
397
|
+
| `email_send_state` | Send rate configuration |
|
|
398
|
+
| `email_unsubscribe_tokens` | Unsubscribe link tokens |
|
|
399
|
+
| `suppressed_emails` | Suppressed email addresses |
|
|
400
|
+
|
|
401
|
+
---
|
|
402
|
+
|
|
403
|
+
## ๐บ๏ธ Pages & Routes
|
|
404
|
+
|
|
405
|
+
### Public Pages
|
|
406
|
+
| Route | Page | Description |
|
|
407
|
+
|-------|------|-------------|
|
|
408
|
+
| `/` | Landing | Hero, features, pricing, integrations, showcase |
|
|
409
|
+
| `/blog` | Blog | Published articles with tags |
|
|
410
|
+
| `/blog/:slug` | Blog Post | Individual article view |
|
|
411
|
+
| `/learn` | Learning Hub | Educational content and courses |
|
|
412
|
+
| `/explore` | Explore | Public project gallery |
|
|
413
|
+
| `/showcase` | Showcase | Featured projects |
|
|
414
|
+
| `/about` | About | Company information |
|
|
415
|
+
| `/contact` | Contact | Contact form |
|
|
416
|
+
|
|
417
|
+
### Protected Pages
|
|
418
|
+
| Route | Page | Description |
|
|
419
|
+
|-------|------|-------------|
|
|
420
|
+
| `/dashboard` | Dashboard | Projects, stats, activity, AI insights, usage charts |
|
|
421
|
+
| `/builder/:projectId` | Builder IDE | Full development workspace |
|
|
422
|
+
| `/project/:projectId` | Project Hub | 10-tab project management console |
|
|
423
|
+
| `/settings` | Settings | Account, billing, editor, team, providers, VPS |
|
|
424
|
+
| `/admin` | Admin | Platform model catalog, provider routes, user management |
|
|
425
|
+
| `/team-chat` | Team Chat | Real-time messaging workspace |
|
|
426
|
+
| `/productivity` | Productivity | Task and workflow management |
|
|
427
|
+
| `/blog/new` | Blog Editor | Create and edit blog posts |
|
|
428
|
+
|
|
429
|
+
### Integration Pages
|
|
430
|
+
| Route | Page |
|
|
431
|
+
|-------|------|
|
|
432
|
+
| `/github` | GitHub repository and PR management |
|
|
433
|
+
| `/vercel` | Vercel project and deployment management |
|
|
434
|
+
| `/netlify` | Netlify site management |
|
|
435
|
+
| `/railway` | Railway service management |
|
|
436
|
+
| `/turso` | Turso database management |
|
|
437
|
+
|
|
438
|
+
### Legal Pages
|
|
439
|
+
`/privacy` ยท `/terms` ยท `/disclaimer` ยท `/cookie-policy` ยท `/dmca` ยท `/data-sharing` ยท `/opt-out` ยท `/unsubscribe`
|
|
440
|
+
|
|
441
|
+
---
|
|
442
|
+
|
|
443
|
+
## ๐ Security
|
|
444
|
+
|
|
445
|
+
| Layer | Implementation |
|
|
446
|
+
|-------|---------------|
|
|
447
|
+
| **Authentication** | JWT sessions, Google/Apple OAuth, Google One Tap, email verification |
|
|
448
|
+
| **Authorization** | Row Level Security (RLS) on all 27+ tables |
|
|
449
|
+
| **RBAC** | `user_roles` table with `has_role()` SECURITY DEFINER function |
|
|
450
|
+
| **API Keys** | Encrypted storage, BYOK model, no hardcoded secrets |
|
|
451
|
+
| **Agent Safety** | PII filtering, shell command guardrails, trust signal scoring |
|
|
452
|
+
| **Edge Security** | CORS headers, Zod input validation, auth token verification |
|
|
453
|
+
| **Collaboration** | `is_project_owner()`, `is_project_editor()`, `is_project_collaborator()` RPC checks |
|
|
454
|
+
| **Email** | Suppression lists, unsubscribe tokens, send rate limiting |
|
|
455
|
+
|
|
456
|
+
---
|
|
457
|
+
|
|
458
|
+
## ๐ Getting Started
|
|
459
|
+
|
|
460
|
+
### Prerequisites
|
|
461
|
+
|
|
462
|
+
- Node.js โฅ 18
|
|
463
|
+
- npm or Bun
|
|
464
|
+
- Git
|
|
465
|
+
|
|
466
|
+
### Installation
|
|
467
|
+
|
|
468
|
+
```bash
|
|
469
|
+
git clone https://github.com/noeffortsai/noeffortsai.git
|
|
470
|
+
cd noeffortsai
|
|
471
|
+
npm install
|
|
472
|
+
npm run dev
|
|
473
|
+
```
|
|
474
|
+
|
|
475
|
+
### Environment Variables
|
|
476
|
+
|
|
477
|
+
```env
|
|
478
|
+
VITE_SUPABASE_URL=your_supabase_url
|
|
479
|
+
VITE_SUPABASE_PUBLISHABLE_KEY=your_anon_key
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
### Scripts
|
|
483
|
+
|
|
484
|
+
| Command | Description |
|
|
485
|
+
|---------|-------------|
|
|
486
|
+
| `npm run dev` | Start development server |
|
|
487
|
+
| `npm run build` | Production build |
|
|
488
|
+
| `npm run test` | Run Vitest test suite |
|
|
489
|
+
| `npm run lint` | ESLint check |
|
|
490
|
+
| `npm run preview` | Preview production build |
|
|
491
|
+
|
|
492
|
+
---
|
|
493
|
+
|
|
494
|
+
## ๐ Documentation
|
|
495
|
+
|
|
496
|
+
| Document | Description |
|
|
497
|
+
|----------|-------------|
|
|
498
|
+
| [ARCHITECTURE.md](./ARCHITECTURE.md) | System design, ReAct loop, data flow |
|
|
499
|
+
| [ROADMAP.md](./ROADMAP.md) | Product roadmap with progress tracking |
|
|
500
|
+
| [CHANGELOG.md](./CHANGELOG.md) | Version history and release notes |
|
|
501
|
+
| [CONTRIBUTING.md](./CONTRIBUTING.md) | Development workflow and coding standards |
|
|
502
|
+
| [docs/API_REFERENCE.md](./docs/API_REFERENCE.md) | Edge function API documentation |
|
|
503
|
+
| [docs/AGENT_GUIDE.md](./docs/AGENT_GUIDE.md) | Agent system deep dive |
|
|
504
|
+
| [docs/DEPLOYMENT_GUIDE.md](./docs/DEPLOYMENT_GUIDE.md) | Deployment and infrastructure setup |
|
|
505
|
+
| [docs/SECURITY.md](./docs/SECURITY.md) | Security model and best practices |
|
|
506
|
+
| [docs/PROTOCOLS.md](./docs/PROTOCOLS.md) | Protocol system documentation |
|
|
507
|
+
| [docs/SKILLS.md](./docs/SKILLS.md) | Skill marketplace guide |
|
|
508
|
+
|
|
509
|
+
---
|
|
510
|
+
|
|
511
|
+
## ๐ค Contributing
|
|
512
|
+
|
|
513
|
+
We welcome contributions! See [CONTRIBUTING.md](./CONTRIBUTING.md) for full guidelines.
|
|
514
|
+
|
|
515
|
+
```bash
|
|
516
|
+
# 1. Fork and clone
|
|
517
|
+
# 2. Create feature branch
|
|
518
|
+
git checkout -b feature/amazing-feature
|
|
519
|
+
# 3. Make changes and test
|
|
520
|
+
npm run test
|
|
521
|
+
# 4. Commit with conventional format
|
|
522
|
+
git commit -m "feat: add amazing feature"
|
|
523
|
+
# 5. Push and open PR
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
---
|
|
527
|
+
|
|
528
|
+
## ๐ Project Stats
|
|
529
|
+
|
|
530
|
+
| Metric | Count |
|
|
531
|
+
|--------|-------|
|
|
532
|
+
| React Components | 150+ |
|
|
533
|
+
| Agent Tools | 145+ |
|
|
534
|
+
| Edge Functions | 35+ |
|
|
535
|
+
| Database Tables | 27+ |
|
|
536
|
+
| AI Models Supported | 25+ |
|
|
537
|
+
| Agent Protocols | 11 |
|
|
538
|
+
| Memory Neurons | 10 |
|
|
539
|
+
| Supported Languages | 20+ |
|
|
540
|
+
| Integration Services | 7 |
|
|
541
|
+
| Pages/Routes | 30+ |
|
|
542
|
+
|
|
543
|
+
---
|
|
544
|
+
|
|
545
|
+
<div align="center">
|
|
546
|
+
|
|
547
|
+
**Built with โค๏ธ by [Rohit Vishal](https://noeffortsai.ai)**
|
|
548
|
+
|
|
549
|
+
๐ฎ๐ณ AI for All, from India
|
|
550
|
+
|
|
551
|
+
[Website](https://noeffortsai.ai) ยท [GitHub](https://github.com/noeffortsai) ยท [Blog](https://noeffortsai.ai/blog)
|
|
552
|
+
|
|
553
|
+
</div>
|
package/bin/nai
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// NoEffortsAi CLI launcher.
|
|
3
|
+
//
|
|
4
|
+
// The TUI depends on @opentui/core which uses bun:ffi โ so the bundle MUST
|
|
5
|
+
// run under the Bun runtime. We locate `bun` on PATH (or $BUN_INSTALL/bin)
|
|
6
|
+
// and exec the bundle through it. If Bun is missing we print a one-line
|
|
7
|
+
// install hint instead of crashing with a cryptic FFI error.
|
|
8
|
+
import { spawn, spawnSync } from "node:child_process"
|
|
9
|
+
import { fileURLToPath } from "node:url"
|
|
10
|
+
import { existsSync } from "node:fs"
|
|
11
|
+
import path from "node:path"
|
|
12
|
+
import os from "node:os"
|
|
13
|
+
|
|
14
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url))
|
|
15
|
+
const bundle = path.join(__dirname, "..", "dist", "nai.mjs")
|
|
16
|
+
|
|
17
|
+
function findBun() {
|
|
18
|
+
// 1. Explicit override
|
|
19
|
+
if (process.env.NAI_BUN && existsSync(process.env.NAI_BUN)) return process.env.NAI_BUN
|
|
20
|
+
// 2. $BUN_INSTALL/bin/bun
|
|
21
|
+
const bunInstall = process.env.BUN_INSTALL || path.join(os.homedir(), ".bun")
|
|
22
|
+
const candidate = path.join(bunInstall, "bin", process.platform === "win32" ? "bun.exe" : "bun")
|
|
23
|
+
if (existsSync(candidate)) return candidate
|
|
24
|
+
// 3. PATH lookup
|
|
25
|
+
const which = process.platform === "win32" ? "where" : "which"
|
|
26
|
+
const res = spawnSync(which, ["bun"], { encoding: "utf8" })
|
|
27
|
+
if (res.status === 0) {
|
|
28
|
+
const found = res.stdout.split(/\r?\n/).find((l) => l.trim())
|
|
29
|
+
if (found && existsSync(found.trim())) return found.trim()
|
|
30
|
+
}
|
|
31
|
+
return null
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const bun = findBun()
|
|
35
|
+
if (!bun) {
|
|
36
|
+
console.error("nai: Bun runtime is required but was not found on PATH.")
|
|
37
|
+
console.error("")
|
|
38
|
+
console.error(" Install Bun: curl -fsSL https://bun.sh/install | bash")
|
|
39
|
+
console.error(" Then re-run: nai")
|
|
40
|
+
console.error("")
|
|
41
|
+
console.error("Or point nai at an existing Bun binary: export NAI_BUN=/path/to/bun")
|
|
42
|
+
process.exit(127)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const forwardedSignals = ["SIGINT", "SIGTERM", "SIGHUP"]
|
|
46
|
+
const child = spawn(bun, ["run", bundle, ...process.argv.slice(2)], {
|
|
47
|
+
stdio: "inherit",
|
|
48
|
+
env: process.env,
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
const forwarders = {}
|
|
52
|
+
for (const signal of forwardedSignals) {
|
|
53
|
+
forwarders[signal] = () => { try { child.kill(signal) } catch {} }
|
|
54
|
+
process.on(signal, forwarders[signal])
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
child.on("error", (err) => {
|
|
58
|
+
console.error(err?.message ?? String(err))
|
|
59
|
+
process.exit(1)
|
|
60
|
+
})
|
|
61
|
+
|
|
62
|
+
child.on("exit", (code, signal) => {
|
|
63
|
+
for (const s of forwardedSignals) process.removeListener(s, forwarders[s])
|
|
64
|
+
if (signal) { process.kill(process.pid, signal); return }
|
|
65
|
+
process.exit(typeof code === "number" ? code : 0)
|
|
66
|
+
})
|