modular-studio 1.0.5 → 1.1.0
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 +122 -122
- package/dist/assets/Badge-Bsy2H_p2.js +1 -0
- package/dist/assets/GraphPanel-D4X3faxA.js +47 -0
- package/dist/assets/{Input-Bgp734xs.js → Input-Dyb88Erk.js} +1 -1
- package/dist/assets/KnowledgeTab-BccWz7Np.js +5 -0
- package/dist/assets/MemoryTab-Y_66cE01.js +16 -0
- package/dist/assets/QualificationTab-Dm9dEIpM.js +1 -0
- package/dist/assets/ReviewTab-BrfXSyyf.js +104 -0
- package/dist/assets/{Section-DoJrmytO.js → Section-68XDCFTl.js} +1 -1
- package/dist/assets/TestTab-CLKRT63X.js +42 -0
- package/dist/assets/ToolsTab-xumi9Uds.js +1 -0
- package/dist/assets/icons-CS8RUPBi.js +1 -0
- package/dist/assets/index-B2bm0161.css +1 -0
- package/dist/assets/index-C626nWuA.js +422 -0
- package/dist/assets/services-BDk6yY4o.js +369 -0
- package/dist/index.html +18 -18
- package/dist-server/bin/modular-mcp.js +1 -0
- package/dist-server/server/index.d.ts.map +1 -1
- package/dist-server/server/index.js +34 -0
- package/dist-server/server/mcp/manager.d.ts +3 -0
- package/dist-server/server/mcp/manager.d.ts.map +1 -1
- package/dist-server/server/mcp/manager.js +80 -5
- package/dist-server/server/migrations/index.d.ts +11 -0
- package/dist-server/server/migrations/index.d.ts.map +1 -0
- package/dist-server/server/migrations/index.js +57 -0
- package/dist-server/server/routes/agents.d.ts.map +1 -1
- package/dist-server/server/routes/agents.js +27 -0
- package/dist-server/server/routes/analytics.d.ts +3 -0
- package/dist-server/server/routes/analytics.d.ts.map +1 -0
- package/dist-server/server/routes/analytics.js +24 -0
- package/dist-server/server/routes/cache.d.ts +3 -0
- package/dist-server/server/routes/cache.d.ts.map +1 -0
- package/dist-server/server/routes/cache.js +55 -0
- package/dist-server/server/routes/connectors/airtable.d.ts +7 -0
- package/dist-server/server/routes/connectors/airtable.d.ts.map +1 -0
- package/dist-server/server/routes/connectors/airtable.js +119 -0
- package/dist-server/server/routes/connectors/confluence.d.ts +7 -0
- package/dist-server/server/routes/connectors/confluence.d.ts.map +1 -0
- package/dist-server/server/routes/connectors/confluence.js +176 -0
- package/dist-server/server/routes/connectors/github.d.ts +7 -0
- package/dist-server/server/routes/connectors/github.d.ts.map +1 -0
- package/dist-server/server/routes/connectors/github.js +195 -0
- package/dist-server/server/routes/connectors/gmail.d.ts +7 -0
- package/dist-server/server/routes/connectors/gmail.d.ts.map +1 -0
- package/dist-server/server/routes/connectors/gmail.js +115 -0
- package/dist-server/server/routes/connectors/google-docs.d.ts +10 -0
- package/dist-server/server/routes/connectors/google-docs.d.ts.map +1 -0
- package/dist-server/server/routes/connectors/google-docs.js +165 -0
- package/dist-server/server/routes/connectors/google-drive.d.ts +7 -0
- package/dist-server/server/routes/connectors/google-drive.d.ts.map +1 -0
- package/dist-server/server/routes/connectors/google-drive.js +163 -0
- package/dist-server/server/routes/connectors/google-sheets.d.ts +7 -0
- package/dist-server/server/routes/connectors/google-sheets.d.ts.map +1 -0
- package/dist-server/server/routes/connectors/google-sheets.js +90 -0
- package/dist-server/server/routes/connectors/hubspot.d.ts +7 -0
- package/dist-server/server/routes/connectors/hubspot.d.ts.map +1 -0
- package/dist-server/server/routes/connectors/hubspot.js +134 -0
- package/dist-server/server/routes/connectors/index.d.ts +6 -0
- package/dist-server/server/routes/connectors/index.d.ts.map +1 -0
- package/dist-server/server/routes/connectors/index.js +38 -0
- package/dist-server/server/routes/connectors/jira.d.ts +7 -0
- package/dist-server/server/routes/connectors/jira.d.ts.map +1 -0
- package/dist-server/server/routes/connectors/jira.js +151 -0
- package/dist-server/server/routes/connectors/linear.d.ts +7 -0
- package/dist-server/server/routes/connectors/linear.d.ts.map +1 -0
- package/dist-server/server/routes/connectors/linear.js +154 -0
- package/dist-server/server/routes/connectors/notion.d.ts +10 -0
- package/dist-server/server/routes/connectors/notion.d.ts.map +1 -0
- package/dist-server/server/routes/connectors/notion.js +201 -0
- package/dist-server/server/routes/connectors/plane.d.ts +10 -0
- package/dist-server/server/routes/connectors/plane.d.ts.map +1 -0
- package/dist-server/server/routes/connectors/plane.js +189 -0
- package/dist-server/server/routes/connectors/shared.d.ts +25 -0
- package/dist-server/server/routes/connectors/shared.d.ts.map +1 -0
- package/dist-server/server/routes/connectors/shared.js +202 -0
- package/dist-server/server/routes/connectors/slack.d.ts +7 -0
- package/dist-server/server/routes/connectors/slack.d.ts.map +1 -0
- package/dist-server/server/routes/connectors/slack.js +153 -0
- package/dist-server/server/routes/connectors.d.ts.map +1 -1
- package/dist-server/server/routes/connectors.js +47 -17
- package/dist-server/server/routes/cost.d.ts +3 -0
- package/dist-server/server/routes/cost.d.ts.map +1 -0
- package/dist-server/server/routes/cost.js +113 -0
- package/dist-server/server/routes/graph.d.ts +11 -0
- package/dist-server/server/routes/graph.d.ts.map +1 -0
- package/dist-server/server/routes/graph.js +213 -0
- package/dist-server/server/routes/lessons.d.ts +3 -0
- package/dist-server/server/routes/lessons.d.ts.map +1 -0
- package/dist-server/server/routes/lessons.js +160 -0
- package/dist-server/server/routes/llm.d.ts.map +1 -1
- package/dist-server/server/routes/llm.js +85 -18
- package/dist-server/server/routes/memory.d.ts.map +1 -1
- package/dist-server/server/routes/memory.js +31 -0
- package/dist-server/server/routes/metaprompt-v2.d.ts +3 -0
- package/dist-server/server/routes/metaprompt-v2.d.ts.map +1 -0
- package/dist-server/server/routes/metaprompt-v2.js +104 -0
- package/dist-server/server/routes/qualification.d.ts.map +1 -1
- package/dist-server/server/routes/qualification.js +342 -334
- package/dist-server/server/routes/repo-index.d.ts.map +1 -1
- package/dist-server/server/routes/repo-index.js +7 -0
- package/dist-server/server/routes/skills-search.d.ts.map +1 -1
- package/dist-server/server/routes/skills-search.js +192 -26
- package/dist-server/server/routes/tool-analytics.d.ts +3 -0
- package/dist-server/server/routes/tool-analytics.d.ts.map +1 -0
- package/dist-server/server/routes/tool-analytics.js +47 -0
- package/dist-server/server/services/adapters/hindsightAdapter.d.ts +28 -0
- package/dist-server/server/services/adapters/hindsightAdapter.d.ts.map +1 -0
- package/dist-server/server/services/adapters/hindsightAdapter.js +63 -0
- package/dist-server/server/services/adapters/postgresAdapter.js +30 -30
- package/dist-server/server/services/adapters/sqliteAdapter.d.ts +1 -0
- package/dist-server/server/services/adapters/sqliteAdapter.d.ts.map +1 -1
- package/dist-server/server/services/adapters/sqliteAdapter.js +66 -36
- package/dist-server/server/services/agentStore.d.ts +2 -1
- package/dist-server/server/services/agentStore.d.ts.map +1 -1
- package/dist-server/server/services/agentStore.js +2 -1
- package/dist-server/server/services/correctionDetector.d.ts +22 -0
- package/dist-server/server/services/correctionDetector.d.ts.map +1 -0
- package/dist-server/server/services/correctionDetector.js +91 -0
- package/dist-server/server/services/credentialStore.d.ts +10 -0
- package/dist-server/server/services/credentialStore.d.ts.map +1 -0
- package/dist-server/server/services/credentialStore.js +123 -0
- package/dist-server/server/services/hindsightClient.d.ts +15 -0
- package/dist-server/server/services/hindsightClient.d.ts.map +1 -0
- package/dist-server/server/services/hindsightClient.js +48 -0
- package/dist-server/server/services/lessonExtractor.d.ts +21 -0
- package/dist-server/server/services/lessonExtractor.d.ts.map +1 -0
- package/dist-server/server/services/lessonExtractor.js +92 -0
- package/dist-server/server/services/repoIndexer.d.ts +7 -1
- package/dist-server/server/services/repoIndexer.d.ts.map +1 -1
- package/dist-server/server/services/repoIndexer.js +295 -94
- package/dist-server/server/services/responseCache.d.ts +24 -0
- package/dist-server/server/services/responseCache.d.ts.map +1 -0
- package/dist-server/server/services/responseCache.js +163 -0
- package/dist-server/server/services/sqliteStore.d.ts +72 -0
- package/dist-server/server/services/sqliteStore.d.ts.map +1 -1
- package/dist-server/server/services/sqliteStore.js +291 -13
- package/dist-server/src/config.d.ts +2 -0
- package/dist-server/src/config.d.ts.map +1 -0
- package/dist-server/src/config.js +3 -0
- package/dist-server/src/graph/db.d.ts +46 -0
- package/dist-server/src/graph/db.d.ts.map +1 -0
- package/dist-server/src/graph/db.js +241 -0
- package/dist-server/src/graph/extractors/code.d.ts +12 -0
- package/dist-server/src/graph/extractors/code.d.ts.map +1 -0
- package/dist-server/src/graph/extractors/code.js +239 -0
- package/dist-server/src/graph/extractors/cross-type.d.ts +16 -0
- package/dist-server/src/graph/extractors/cross-type.d.ts.map +1 -0
- package/dist-server/src/graph/extractors/cross-type.js +67 -0
- package/dist-server/src/graph/extractors/markdown.d.ts +29 -0
- package/dist-server/src/graph/extractors/markdown.d.ts.map +1 -0
- package/dist-server/src/graph/extractors/markdown.js +224 -0
- package/dist-server/src/graph/extractors/yaml.d.ts +15 -0
- package/dist-server/src/graph/extractors/yaml.d.ts.map +1 -0
- package/dist-server/src/graph/extractors/yaml.js +104 -0
- package/dist-server/src/graph/index.d.ts +62 -0
- package/dist-server/src/graph/index.d.ts.map +1 -0
- package/dist-server/src/graph/index.js +67 -0
- package/dist-server/src/graph/packer.d.ts +19 -0
- package/dist-server/src/graph/packer.d.ts.map +1 -0
- package/dist-server/src/graph/packer.js +134 -0
- package/dist-server/src/graph/resolver.d.ts +12 -0
- package/dist-server/src/graph/resolver.d.ts.map +1 -0
- package/dist-server/src/graph/resolver.js +81 -0
- package/dist-server/src/graph/scanner.d.ts +34 -0
- package/dist-server/src/graph/scanner.d.ts.map +1 -0
- package/dist-server/src/graph/scanner.js +252 -0
- package/dist-server/src/graph/traverser.d.ts +17 -0
- package/dist-server/src/graph/traverser.d.ts.map +1 -0
- package/dist-server/src/graph/traverser.js +185 -0
- package/dist-server/src/graph/types.d.ts +117 -0
- package/dist-server/src/graph/types.d.ts.map +1 -0
- package/dist-server/src/graph/types.js +63 -0
- package/dist-server/src/metaprompt/v2/assembler.d.ts +3 -0
- package/dist-server/src/metaprompt/v2/assembler.d.ts.map +1 -0
- package/dist-server/src/metaprompt/v2/assembler.js +261 -0
- package/dist-server/src/metaprompt/v2/context-strategist.d.ts +3 -0
- package/dist-server/src/metaprompt/v2/context-strategist.d.ts.map +1 -0
- package/dist-server/src/metaprompt/v2/context-strategist.js +173 -0
- package/dist-server/src/metaprompt/v2/evaluator.d.ts +3 -0
- package/dist-server/src/metaprompt/v2/evaluator.d.ts.map +1 -0
- package/dist-server/src/metaprompt/v2/evaluator.js +281 -0
- package/dist-server/src/metaprompt/v2/index.d.ts +41 -0
- package/dist-server/src/metaprompt/v2/index.d.ts.map +1 -0
- package/dist-server/src/metaprompt/v2/index.js +90 -0
- package/dist-server/src/metaprompt/v2/parser.d.ts +3 -0
- package/dist-server/src/metaprompt/v2/parser.d.ts.map +1 -0
- package/dist-server/src/metaprompt/v2/parser.js +138 -0
- package/dist-server/src/metaprompt/v2/pattern-selector.d.ts +3 -0
- package/dist-server/src/metaprompt/v2/pattern-selector.d.ts.map +1 -0
- package/dist-server/src/metaprompt/v2/pattern-selector.js +154 -0
- package/dist-server/src/metaprompt/v2/researcher.d.ts +3 -0
- package/dist-server/src/metaprompt/v2/researcher.d.ts.map +1 -0
- package/dist-server/src/metaprompt/v2/researcher.js +194 -0
- package/dist-server/src/metaprompt/v2/tool-discovery.d.ts +74 -0
- package/dist-server/src/metaprompt/v2/tool-discovery.d.ts.map +1 -0
- package/dist-server/src/metaprompt/v2/tool-discovery.js +290 -0
- package/dist-server/src/metaprompt/v2/types.d.ts +154 -0
- package/dist-server/src/metaprompt/v2/types.d.ts.map +1 -0
- package/dist-server/src/metaprompt/v2/types.js +2 -0
- package/dist-server/src/services/contradictionDetector.js +1 -1
- package/dist-server/src/services/llmService.d.ts +61 -0
- package/dist-server/src/services/llmService.d.ts.map +1 -0
- package/dist-server/src/services/llmService.js +222 -0
- package/dist-server/src/store/knowledgeBase.d.ts +6 -1
- package/dist-server/src/store/knowledgeBase.d.ts.map +1 -1
- package/dist-server/src/store/knowledgeBase.js +0 -1
- package/dist-server/src/store/lessonStore.d.ts +26 -0
- package/dist-server/src/store/lessonStore.d.ts.map +1 -0
- package/dist-server/src/store/lessonStore.js +64 -0
- package/dist-server/src/store/mcp-registry.d.ts +29 -0
- package/dist-server/src/store/mcp-registry.d.ts.map +1 -0
- package/dist-server/src/store/mcp-registry.js +1303 -0
- package/dist-server/src/store/memoryStore.d.ts +12 -1
- package/dist-server/src/store/memoryStore.d.ts.map +1 -1
- package/dist-server/src/store/memoryStore.js +9 -0
- package/dist-server/src/types/registry.types.d.ts +13 -0
- package/dist-server/src/types/registry.types.d.ts.map +1 -0
- package/dist-server/src/types/registry.types.js +2 -0
- package/dist-server/tsconfig.server.tsbuildinfo +1 -1
- package/package.json +15 -1
- package/scripts/cleanup-worktrees.ps1 +29 -0
- package/dist/assets/Badge-22Ai0eyi.js +0 -1
- package/dist/assets/KnowledgeTab-DABxirZh.js +0 -4
- package/dist/assets/MemoryTab-DZeYElIT.js +0 -16
- package/dist/assets/QualificationTab-Dfpy3J30.js +0 -1
- package/dist/assets/ReviewTab-SD8lQuCc.js +0 -103
- package/dist/assets/TestTab-PDyMF8Fw.js +0 -33
- package/dist/assets/ToolsTab-B83qGCmG.js +0 -1
- package/dist/assets/icons-C2EV-le6.js +0 -1
- package/dist/assets/index-DkpMAxX7.css +0 -1
- package/dist/assets/index-q24ug5Qs.js +0 -143
- package/dist/assets/services-BaKotDf0.js +0 -343
package/README.md
CHANGED
|
@@ -1,122 +1,122 @@
|
|
|
1
|
-
# Modular Studio
|
|
2
|
-
|
|
3
|
-
**The context engineering IDE for AI agents.**
|
|
4
|
-
|
|
5
|
-
Build AI agents that truly understand your codebase, documentation, and tools — through intelligent knowledge pipelines, not just prompts.
|
|
6
|
-
|
|
7
|
-
## Quick Start
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
npx modular-studio
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
Opens at [localhost:4800](http://localhost:4800).
|
|
14
|
-
|
|
15
|
-
## What It Does
|
|
16
|
-
|
|
17
|
-
Modular Studio is a visual IDE for designing AI agent systems. You describe what you want → it generates a complete agent configuration with persona, constraints, objectives, workflow, and tool selection — all grounded in your actual knowledge sources.
|
|
18
|
-
|
|
19
|
-
### The Workflow
|
|
20
|
-
|
|
21
|
-
1. **Describe** — Write what your agent should do (or pick a template)
|
|
22
|
-
2. **Generate** — AI creates a full agent config from your description via meta-prompt
|
|
23
|
-
3. **Knowledge** — Connect repos, files, connectors. See what's missing.
|
|
24
|
-
4. **Tools** — Pick MCP servers and skills from 150+ integrations
|
|
25
|
-
5. **Memory** — Configure conversation memory strategy
|
|
26
|
-
6. **Review** — Inspect and refine: persona, constraints, objectives, workflow
|
|
27
|
-
7. **Test** — Chat with your agent, see the full pipeline trace
|
|
28
|
-
8. **Qualify** — Run structured evaluations against test cases
|
|
29
|
-
9. **Export** — Output for Claude Code, OpenClaw, Codex, Amp, or generic JSON
|
|
30
|
-
|
|
31
|
-
### What Makes It Different
|
|
32
|
-
|
|
33
|
-
| | **Prompt Engineering** | **RAG Tools** | **Modular Studio** |
|
|
34
|
-
|---|---|---|---|
|
|
35
|
-
| **Starting point** | Manual writing | Upload docs | Describe in natural language |
|
|
36
|
-
| **Knowledge** | Copy-paste | Chunk embeddings | Tree-aware semantic retrieval |
|
|
37
|
-
| **Visibility** | None | Similarity scores | Full pipeline observability |
|
|
38
|
-
| **Output** | One prompt | API endpoint | Multi-target agent definitions |
|
|
39
|
-
| **Iteration** | Rewrite | Re-embed | Visual refinement + qualification |
|
|
40
|
-
|
|
41
|
-
## Key Features
|
|
42
|
-
|
|
43
|
-
- **🧠 Meta-Prompt Generation** — Describe your agent, get a complete configuration
|
|
44
|
-
- **🌳 Tree-Aware Retrieval** — Knowledge pipeline understands document and code structure
|
|
45
|
-
- **📊 Pipeline Observability** — See exactly how context flows: source assembly → retrieval → provenance
|
|
46
|
-
- **🔌 150+ MCP Connectors** — GitHub, Notion, Slack, HubSpot, and more
|
|
47
|
-
- **🏗️ Agent Library** — Save, version, and manage multiple agents
|
|
48
|
-
- **📋 Structured Review** — Identity, persona, constraints, objectives, workflow — all editable
|
|
49
|
-
- **🧪 Built-in Testing** — Chat with your agent, run teams, trace every step
|
|
50
|
-
- **📤 Multi-Target Export** — Claude Code (.md), OpenClaw (.yaml), Codex (.json), Amp, generic
|
|
51
|
-
|
|
52
|
-
## Installation
|
|
53
|
-
|
|
54
|
-
### From npm
|
|
55
|
-
|
|
56
|
-
```bash
|
|
57
|
-
# Run directly
|
|
58
|
-
npx modular-studio
|
|
59
|
-
|
|
60
|
-
# Or install globally
|
|
61
|
-
npm install -g modular-studio
|
|
62
|
-
modular-studio --open
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
### From Source
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
git clone https://github.com/VictorGjn/modular-patchbay.git
|
|
69
|
-
cd modular-patchbay
|
|
70
|
-
npm install --legacy-peer-deps
|
|
71
|
-
npm run dev
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
Frontend: `http://localhost:5173` · Backend: `http://localhost:4800`
|
|
75
|
-
|
|
76
|
-
## Configuration
|
|
77
|
-
|
|
78
|
-
### Providers
|
|
79
|
-
|
|
80
|
-
Connect at least one LLM provider in **Settings → Providers**:
|
|
81
|
-
|
|
82
|
-
- **Claude Agent SDK** — Zero-config if running inside Claude Code
|
|
83
|
-
- **Anthropic** — API key required
|
|
84
|
-
- **OpenAI** — API key required
|
|
85
|
-
- **OpenRouter** — API key for aggregated model access
|
|
86
|
-
- **Google** — API key for Gemini models
|
|
87
|
-
|
|
88
|
-
### Knowledge Sources
|
|
89
|
-
|
|
90
|
-
- **Local Files** — Drag and drop markdown, code, or documents
|
|
91
|
-
- **Git Repos** — Clone and index any GitHub repository
|
|
92
|
-
- **Connectors** — Notion, Slack, HubSpot via MCP
|
|
93
|
-
|
|
94
|
-
## Requirements
|
|
95
|
-
|
|
96
|
-
- **Node.js 18+**
|
|
97
|
-
- **LLM API Key** (Anthropic, OpenAI, or compatible provider)
|
|
98
|
-
|
|
99
|
-
## Architecture
|
|
100
|
-
|
|
101
|
-
```
|
|
102
|
-
src/
|
|
103
|
-
├── tabs/ # Wizard tab components (Describe, Knowledge, Tools, etc.)
|
|
104
|
-
├── panels/ # Sub-panels (AgentBuilder, review sections, pipeline)
|
|
105
|
-
├── components/ # Shared components (AgentLibrary, Topbar, InlineTraceView)
|
|
106
|
-
├── services/ # Pipeline services (treeIndexer, compress, contextAssembler)
|
|
107
|
-
├── store/ # Zustand stores (console, trace, conversation, memory)
|
|
108
|
-
├── utils/ # Agent generation, export, analysis utilities
|
|
109
|
-
└── layouts/ # WizardLayout, DashboardLayout
|
|
110
|
-
server/
|
|
111
|
-
├── routes/ # API routes (agents, providers, conversations)
|
|
112
|
-
└── services/ # Backend services (agentStore, embeddings)
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
## License
|
|
116
|
-
|
|
117
|
-
Apache 2.0 — Free for commercial and open source use.
|
|
118
|
-
|
|
119
|
-
## Links
|
|
120
|
-
|
|
121
|
-
- **npm**: [modular-studio](https://www.npmjs.com/package/modular-studio)
|
|
122
|
-
- **GitHub**: [VictorGjn/modular-patchbay](https://github.com/VictorGjn/modular-patchbay)
|
|
1
|
+
# Modular Studio
|
|
2
|
+
|
|
3
|
+
**The context engineering IDE for AI agents.**
|
|
4
|
+
|
|
5
|
+
Build AI agents that truly understand your codebase, documentation, and tools — through intelligent knowledge pipelines, not just prompts.
|
|
6
|
+
|
|
7
|
+
## Quick Start
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npx modular-studio
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Opens at [localhost:4800](http://localhost:4800).
|
|
14
|
+
|
|
15
|
+
## What It Does
|
|
16
|
+
|
|
17
|
+
Modular Studio is a visual IDE for designing AI agent systems. You describe what you want → it generates a complete agent configuration with persona, constraints, objectives, workflow, and tool selection — all grounded in your actual knowledge sources.
|
|
18
|
+
|
|
19
|
+
### The Workflow
|
|
20
|
+
|
|
21
|
+
1. **Describe** — Write what your agent should do (or pick a template)
|
|
22
|
+
2. **Generate** — AI creates a full agent config from your description via meta-prompt
|
|
23
|
+
3. **Knowledge** — Connect repos, files, connectors. See what's missing.
|
|
24
|
+
4. **Tools** — Pick MCP servers and skills from 150+ integrations
|
|
25
|
+
5. **Memory** — Configure conversation memory strategy
|
|
26
|
+
6. **Review** — Inspect and refine: persona, constraints, objectives, workflow
|
|
27
|
+
7. **Test** — Chat with your agent, see the full pipeline trace
|
|
28
|
+
8. **Qualify** — Run structured evaluations against test cases
|
|
29
|
+
9. **Export** — Output for Claude Code, OpenClaw, Codex, Amp, or generic JSON
|
|
30
|
+
|
|
31
|
+
### What Makes It Different
|
|
32
|
+
|
|
33
|
+
| | **Prompt Engineering** | **RAG Tools** | **Modular Studio** |
|
|
34
|
+
|---|---|---|---|
|
|
35
|
+
| **Starting point** | Manual writing | Upload docs | Describe in natural language |
|
|
36
|
+
| **Knowledge** | Copy-paste | Chunk embeddings | Tree-aware semantic retrieval |
|
|
37
|
+
| **Visibility** | None | Similarity scores | Full pipeline observability |
|
|
38
|
+
| **Output** | One prompt | API endpoint | Multi-target agent definitions |
|
|
39
|
+
| **Iteration** | Rewrite | Re-embed | Visual refinement + qualification |
|
|
40
|
+
|
|
41
|
+
## Key Features
|
|
42
|
+
|
|
43
|
+
- **🧠 Meta-Prompt Generation** — Describe your agent, get a complete configuration
|
|
44
|
+
- **🌳 Tree-Aware Retrieval** — Knowledge pipeline understands document and code structure
|
|
45
|
+
- **📊 Pipeline Observability** — See exactly how context flows: source assembly → retrieval → provenance
|
|
46
|
+
- **🔌 150+ MCP Connectors** — GitHub, Notion, Slack, HubSpot, and more
|
|
47
|
+
- **🏗️ Agent Library** — Save, version, and manage multiple agents
|
|
48
|
+
- **📋 Structured Review** — Identity, persona, constraints, objectives, workflow — all editable
|
|
49
|
+
- **🧪 Built-in Testing** — Chat with your agent, run teams, trace every step
|
|
50
|
+
- **📤 Multi-Target Export** — Claude Code (.md), OpenClaw (.yaml), Codex (.json), Amp, generic
|
|
51
|
+
|
|
52
|
+
## Installation
|
|
53
|
+
|
|
54
|
+
### From npm
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# Run directly
|
|
58
|
+
npx modular-studio
|
|
59
|
+
|
|
60
|
+
# Or install globally
|
|
61
|
+
npm install -g modular-studio
|
|
62
|
+
modular-studio --open
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### From Source
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
git clone https://github.com/VictorGjn/modular-patchbay.git
|
|
69
|
+
cd modular-patchbay
|
|
70
|
+
npm install --legacy-peer-deps
|
|
71
|
+
npm run dev
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Frontend: `http://localhost:5173` · Backend: `http://localhost:4800`
|
|
75
|
+
|
|
76
|
+
## Configuration
|
|
77
|
+
|
|
78
|
+
### Providers
|
|
79
|
+
|
|
80
|
+
Connect at least one LLM provider in **Settings → Providers**:
|
|
81
|
+
|
|
82
|
+
- **Claude Agent SDK** — Zero-config if running inside Claude Code
|
|
83
|
+
- **Anthropic** — API key required
|
|
84
|
+
- **OpenAI** — API key required
|
|
85
|
+
- **OpenRouter** — API key for aggregated model access
|
|
86
|
+
- **Google** — API key for Gemini models
|
|
87
|
+
|
|
88
|
+
### Knowledge Sources
|
|
89
|
+
|
|
90
|
+
- **Local Files** — Drag and drop markdown, code, or documents
|
|
91
|
+
- **Git Repos** — Clone and index any GitHub repository
|
|
92
|
+
- **Connectors** — Notion, Slack, HubSpot via MCP
|
|
93
|
+
|
|
94
|
+
## Requirements
|
|
95
|
+
|
|
96
|
+
- **Node.js 18+**
|
|
97
|
+
- **LLM API Key** (Anthropic, OpenAI, or compatible provider)
|
|
98
|
+
|
|
99
|
+
## Architecture
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
src/
|
|
103
|
+
├── tabs/ # Wizard tab components (Describe, Knowledge, Tools, etc.)
|
|
104
|
+
├── panels/ # Sub-panels (AgentBuilder, review sections, pipeline)
|
|
105
|
+
├── components/ # Shared components (AgentLibrary, Topbar, InlineTraceView)
|
|
106
|
+
├── services/ # Pipeline services (treeIndexer, compress, contextAssembler)
|
|
107
|
+
├── store/ # Zustand stores (console, trace, conversation, memory)
|
|
108
|
+
├── utils/ # Agent generation, export, analysis utilities
|
|
109
|
+
└── layouts/ # WizardLayout, DashboardLayout
|
|
110
|
+
server/
|
|
111
|
+
├── routes/ # API routes (agents, providers, conversations)
|
|
112
|
+
└── services/ # Backend services (agentStore, embeddings)
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## License
|
|
116
|
+
|
|
117
|
+
Apache 2.0 — Free for commercial and open source use.
|
|
118
|
+
|
|
119
|
+
## Links
|
|
120
|
+
|
|
121
|
+
- **npm**: [modular-studio](https://www.npmjs.com/package/modular-studio)
|
|
122
|
+
- **GitHub**: [VictorGjn/modular-patchbay](https://github.com/VictorGjn/modular-patchbay)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as g}from"./stores-CeKWz7ou.js";import{j as u}from"./vendor-D1h_O76p.js";import{u as m}from"./index-C626nWuA.js";let p=1;function r(){return`q-${Date.now()}-${p++}`}const d={missionBrief:"",testCases:[],scoringDimensions:[],passThreshold:70},x=g(i=>({status:"not-started",suite:{...d},runs:[],latestRunId:null,publishGated:!0,setSuiteField:(s,e)=>i(n=>({suite:{...n.suite,[s]:e}})),setMissionBrief:s=>i(e=>({suite:{...e.suite,missionBrief:s}})),addTestCase:s=>i(e=>({suite:{...e.suite,testCases:[...e.suite.testCases,{...s,id:r(),score:null,feedback:"",passed:null}]}})),updateTestCase:(s,e)=>i(n=>({suite:{...n.suite,testCases:n.suite.testCases.map(t=>t.id===s?{...t,...e}:t)}})),removeTestCase:s=>i(e=>({suite:{...e.suite,testCases:e.suite.testCases.filter(n=>n.id!==s)}})),addScoringDimension:s=>i(e=>({suite:{...e.suite,scoringDimensions:[...e.suite.scoringDimensions,{...s,id:r(),score:null}]}})),updateScoringDimension:(s,e)=>i(n=>({suite:{...n.suite,scoringDimensions:n.suite.scoringDimensions.map(t=>t.id===s?{...t,...e}:t)}})),removeScoringDimension:s=>i(e=>({suite:{...e.suite,scoringDimensions:e.suite.scoringDimensions.filter(n=>n.id!==s)}})),setPassThreshold:s=>i(e=>({suite:{...e.suite,passThreshold:s}})),setStatus:s=>i({status:s}),recordRun:s=>i(e=>({runs:[...e.runs,s],latestRunId:s.id,status:s.globalScore>=e.suite.passThreshold?"passed":"needs-work"})),applyPatch:(s,e)=>i(n=>({runs:n.runs.map(t=>t.id===s?{...t,patches:t.patches.map(o=>o.id===e?{...o,applied:!0}:o)}:t)})),setPublishGated:s=>i({publishGated:s}),reset:()=>i({status:"not-started",suite:{...d,testCases:[],scoringDimensions:[]},runs:[],latestRunId:null})}));function D({variant:i="neutral",children:s,dot:e,size:n="sm"}){const t=m(),a={success:{bg:t.statusSuccessBg,fg:t.statusSuccess},warning:{bg:t.statusWarningBg,fg:t.statusWarning},error:{bg:t.statusErrorBg,fg:t.statusError},info:{bg:"#3498db15",fg:"#3498db"},neutral:{bg:t.badgeBg,fg:t.textSecondary}}[i],c=n==="sm"?8:9,l=n==="sm"?"1px 6px":"2px 8px";return u.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full font-semibold uppercase tracking-wider",style:{background:a.bg,color:a.fg,fontSize:c,padding:l,fontFamily:"'Geist Mono', monospace"},children:[e&&u.jsx("span",{className:"w-1.5 h-1.5 rounded-full",style:{background:a.fg}}),s]})}export{D as B,x as u};
|