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.
Files changed (232) hide show
  1. package/README.md +122 -122
  2. package/dist/assets/Badge-Bsy2H_p2.js +1 -0
  3. package/dist/assets/GraphPanel-D4X3faxA.js +47 -0
  4. package/dist/assets/{Input-Bgp734xs.js → Input-Dyb88Erk.js} +1 -1
  5. package/dist/assets/KnowledgeTab-BccWz7Np.js +5 -0
  6. package/dist/assets/MemoryTab-Y_66cE01.js +16 -0
  7. package/dist/assets/QualificationTab-Dm9dEIpM.js +1 -0
  8. package/dist/assets/ReviewTab-BrfXSyyf.js +104 -0
  9. package/dist/assets/{Section-DoJrmytO.js → Section-68XDCFTl.js} +1 -1
  10. package/dist/assets/TestTab-CLKRT63X.js +42 -0
  11. package/dist/assets/ToolsTab-xumi9Uds.js +1 -0
  12. package/dist/assets/icons-CS8RUPBi.js +1 -0
  13. package/dist/assets/index-B2bm0161.css +1 -0
  14. package/dist/assets/index-C626nWuA.js +422 -0
  15. package/dist/assets/services-BDk6yY4o.js +369 -0
  16. package/dist/index.html +18 -18
  17. package/dist-server/bin/modular-mcp.js +1 -0
  18. package/dist-server/server/index.d.ts.map +1 -1
  19. package/dist-server/server/index.js +34 -0
  20. package/dist-server/server/mcp/manager.d.ts +3 -0
  21. package/dist-server/server/mcp/manager.d.ts.map +1 -1
  22. package/dist-server/server/mcp/manager.js +80 -5
  23. package/dist-server/server/migrations/index.d.ts +11 -0
  24. package/dist-server/server/migrations/index.d.ts.map +1 -0
  25. package/dist-server/server/migrations/index.js +57 -0
  26. package/dist-server/server/routes/agents.d.ts.map +1 -1
  27. package/dist-server/server/routes/agents.js +27 -0
  28. package/dist-server/server/routes/analytics.d.ts +3 -0
  29. package/dist-server/server/routes/analytics.d.ts.map +1 -0
  30. package/dist-server/server/routes/analytics.js +24 -0
  31. package/dist-server/server/routes/cache.d.ts +3 -0
  32. package/dist-server/server/routes/cache.d.ts.map +1 -0
  33. package/dist-server/server/routes/cache.js +55 -0
  34. package/dist-server/server/routes/connectors/airtable.d.ts +7 -0
  35. package/dist-server/server/routes/connectors/airtable.d.ts.map +1 -0
  36. package/dist-server/server/routes/connectors/airtable.js +119 -0
  37. package/dist-server/server/routes/connectors/confluence.d.ts +7 -0
  38. package/dist-server/server/routes/connectors/confluence.d.ts.map +1 -0
  39. package/dist-server/server/routes/connectors/confluence.js +176 -0
  40. package/dist-server/server/routes/connectors/github.d.ts +7 -0
  41. package/dist-server/server/routes/connectors/github.d.ts.map +1 -0
  42. package/dist-server/server/routes/connectors/github.js +195 -0
  43. package/dist-server/server/routes/connectors/gmail.d.ts +7 -0
  44. package/dist-server/server/routes/connectors/gmail.d.ts.map +1 -0
  45. package/dist-server/server/routes/connectors/gmail.js +115 -0
  46. package/dist-server/server/routes/connectors/google-docs.d.ts +10 -0
  47. package/dist-server/server/routes/connectors/google-docs.d.ts.map +1 -0
  48. package/dist-server/server/routes/connectors/google-docs.js +165 -0
  49. package/dist-server/server/routes/connectors/google-drive.d.ts +7 -0
  50. package/dist-server/server/routes/connectors/google-drive.d.ts.map +1 -0
  51. package/dist-server/server/routes/connectors/google-drive.js +163 -0
  52. package/dist-server/server/routes/connectors/google-sheets.d.ts +7 -0
  53. package/dist-server/server/routes/connectors/google-sheets.d.ts.map +1 -0
  54. package/dist-server/server/routes/connectors/google-sheets.js +90 -0
  55. package/dist-server/server/routes/connectors/hubspot.d.ts +7 -0
  56. package/dist-server/server/routes/connectors/hubspot.d.ts.map +1 -0
  57. package/dist-server/server/routes/connectors/hubspot.js +134 -0
  58. package/dist-server/server/routes/connectors/index.d.ts +6 -0
  59. package/dist-server/server/routes/connectors/index.d.ts.map +1 -0
  60. package/dist-server/server/routes/connectors/index.js +38 -0
  61. package/dist-server/server/routes/connectors/jira.d.ts +7 -0
  62. package/dist-server/server/routes/connectors/jira.d.ts.map +1 -0
  63. package/dist-server/server/routes/connectors/jira.js +151 -0
  64. package/dist-server/server/routes/connectors/linear.d.ts +7 -0
  65. package/dist-server/server/routes/connectors/linear.d.ts.map +1 -0
  66. package/dist-server/server/routes/connectors/linear.js +154 -0
  67. package/dist-server/server/routes/connectors/notion.d.ts +10 -0
  68. package/dist-server/server/routes/connectors/notion.d.ts.map +1 -0
  69. package/dist-server/server/routes/connectors/notion.js +201 -0
  70. package/dist-server/server/routes/connectors/plane.d.ts +10 -0
  71. package/dist-server/server/routes/connectors/plane.d.ts.map +1 -0
  72. package/dist-server/server/routes/connectors/plane.js +189 -0
  73. package/dist-server/server/routes/connectors/shared.d.ts +25 -0
  74. package/dist-server/server/routes/connectors/shared.d.ts.map +1 -0
  75. package/dist-server/server/routes/connectors/shared.js +202 -0
  76. package/dist-server/server/routes/connectors/slack.d.ts +7 -0
  77. package/dist-server/server/routes/connectors/slack.d.ts.map +1 -0
  78. package/dist-server/server/routes/connectors/slack.js +153 -0
  79. package/dist-server/server/routes/connectors.d.ts.map +1 -1
  80. package/dist-server/server/routes/connectors.js +47 -17
  81. package/dist-server/server/routes/cost.d.ts +3 -0
  82. package/dist-server/server/routes/cost.d.ts.map +1 -0
  83. package/dist-server/server/routes/cost.js +113 -0
  84. package/dist-server/server/routes/graph.d.ts +11 -0
  85. package/dist-server/server/routes/graph.d.ts.map +1 -0
  86. package/dist-server/server/routes/graph.js +213 -0
  87. package/dist-server/server/routes/lessons.d.ts +3 -0
  88. package/dist-server/server/routes/lessons.d.ts.map +1 -0
  89. package/dist-server/server/routes/lessons.js +160 -0
  90. package/dist-server/server/routes/llm.d.ts.map +1 -1
  91. package/dist-server/server/routes/llm.js +85 -18
  92. package/dist-server/server/routes/memory.d.ts.map +1 -1
  93. package/dist-server/server/routes/memory.js +31 -0
  94. package/dist-server/server/routes/metaprompt-v2.d.ts +3 -0
  95. package/dist-server/server/routes/metaprompt-v2.d.ts.map +1 -0
  96. package/dist-server/server/routes/metaprompt-v2.js +104 -0
  97. package/dist-server/server/routes/qualification.d.ts.map +1 -1
  98. package/dist-server/server/routes/qualification.js +342 -334
  99. package/dist-server/server/routes/repo-index.d.ts.map +1 -1
  100. package/dist-server/server/routes/repo-index.js +7 -0
  101. package/dist-server/server/routes/skills-search.d.ts.map +1 -1
  102. package/dist-server/server/routes/skills-search.js +192 -26
  103. package/dist-server/server/routes/tool-analytics.d.ts +3 -0
  104. package/dist-server/server/routes/tool-analytics.d.ts.map +1 -0
  105. package/dist-server/server/routes/tool-analytics.js +47 -0
  106. package/dist-server/server/services/adapters/hindsightAdapter.d.ts +28 -0
  107. package/dist-server/server/services/adapters/hindsightAdapter.d.ts.map +1 -0
  108. package/dist-server/server/services/adapters/hindsightAdapter.js +63 -0
  109. package/dist-server/server/services/adapters/postgresAdapter.js +30 -30
  110. package/dist-server/server/services/adapters/sqliteAdapter.d.ts +1 -0
  111. package/dist-server/server/services/adapters/sqliteAdapter.d.ts.map +1 -1
  112. package/dist-server/server/services/adapters/sqliteAdapter.js +66 -36
  113. package/dist-server/server/services/agentStore.d.ts +2 -1
  114. package/dist-server/server/services/agentStore.d.ts.map +1 -1
  115. package/dist-server/server/services/agentStore.js +2 -1
  116. package/dist-server/server/services/correctionDetector.d.ts +22 -0
  117. package/dist-server/server/services/correctionDetector.d.ts.map +1 -0
  118. package/dist-server/server/services/correctionDetector.js +91 -0
  119. package/dist-server/server/services/credentialStore.d.ts +10 -0
  120. package/dist-server/server/services/credentialStore.d.ts.map +1 -0
  121. package/dist-server/server/services/credentialStore.js +123 -0
  122. package/dist-server/server/services/hindsightClient.d.ts +15 -0
  123. package/dist-server/server/services/hindsightClient.d.ts.map +1 -0
  124. package/dist-server/server/services/hindsightClient.js +48 -0
  125. package/dist-server/server/services/lessonExtractor.d.ts +21 -0
  126. package/dist-server/server/services/lessonExtractor.d.ts.map +1 -0
  127. package/dist-server/server/services/lessonExtractor.js +92 -0
  128. package/dist-server/server/services/repoIndexer.d.ts +7 -1
  129. package/dist-server/server/services/repoIndexer.d.ts.map +1 -1
  130. package/dist-server/server/services/repoIndexer.js +295 -94
  131. package/dist-server/server/services/responseCache.d.ts +24 -0
  132. package/dist-server/server/services/responseCache.d.ts.map +1 -0
  133. package/dist-server/server/services/responseCache.js +163 -0
  134. package/dist-server/server/services/sqliteStore.d.ts +72 -0
  135. package/dist-server/server/services/sqliteStore.d.ts.map +1 -1
  136. package/dist-server/server/services/sqliteStore.js +291 -13
  137. package/dist-server/src/config.d.ts +2 -0
  138. package/dist-server/src/config.d.ts.map +1 -0
  139. package/dist-server/src/config.js +3 -0
  140. package/dist-server/src/graph/db.d.ts +46 -0
  141. package/dist-server/src/graph/db.d.ts.map +1 -0
  142. package/dist-server/src/graph/db.js +241 -0
  143. package/dist-server/src/graph/extractors/code.d.ts +12 -0
  144. package/dist-server/src/graph/extractors/code.d.ts.map +1 -0
  145. package/dist-server/src/graph/extractors/code.js +239 -0
  146. package/dist-server/src/graph/extractors/cross-type.d.ts +16 -0
  147. package/dist-server/src/graph/extractors/cross-type.d.ts.map +1 -0
  148. package/dist-server/src/graph/extractors/cross-type.js +67 -0
  149. package/dist-server/src/graph/extractors/markdown.d.ts +29 -0
  150. package/dist-server/src/graph/extractors/markdown.d.ts.map +1 -0
  151. package/dist-server/src/graph/extractors/markdown.js +224 -0
  152. package/dist-server/src/graph/extractors/yaml.d.ts +15 -0
  153. package/dist-server/src/graph/extractors/yaml.d.ts.map +1 -0
  154. package/dist-server/src/graph/extractors/yaml.js +104 -0
  155. package/dist-server/src/graph/index.d.ts +62 -0
  156. package/dist-server/src/graph/index.d.ts.map +1 -0
  157. package/dist-server/src/graph/index.js +67 -0
  158. package/dist-server/src/graph/packer.d.ts +19 -0
  159. package/dist-server/src/graph/packer.d.ts.map +1 -0
  160. package/dist-server/src/graph/packer.js +134 -0
  161. package/dist-server/src/graph/resolver.d.ts +12 -0
  162. package/dist-server/src/graph/resolver.d.ts.map +1 -0
  163. package/dist-server/src/graph/resolver.js +81 -0
  164. package/dist-server/src/graph/scanner.d.ts +34 -0
  165. package/dist-server/src/graph/scanner.d.ts.map +1 -0
  166. package/dist-server/src/graph/scanner.js +252 -0
  167. package/dist-server/src/graph/traverser.d.ts +17 -0
  168. package/dist-server/src/graph/traverser.d.ts.map +1 -0
  169. package/dist-server/src/graph/traverser.js +185 -0
  170. package/dist-server/src/graph/types.d.ts +117 -0
  171. package/dist-server/src/graph/types.d.ts.map +1 -0
  172. package/dist-server/src/graph/types.js +63 -0
  173. package/dist-server/src/metaprompt/v2/assembler.d.ts +3 -0
  174. package/dist-server/src/metaprompt/v2/assembler.d.ts.map +1 -0
  175. package/dist-server/src/metaprompt/v2/assembler.js +261 -0
  176. package/dist-server/src/metaprompt/v2/context-strategist.d.ts +3 -0
  177. package/dist-server/src/metaprompt/v2/context-strategist.d.ts.map +1 -0
  178. package/dist-server/src/metaprompt/v2/context-strategist.js +173 -0
  179. package/dist-server/src/metaprompt/v2/evaluator.d.ts +3 -0
  180. package/dist-server/src/metaprompt/v2/evaluator.d.ts.map +1 -0
  181. package/dist-server/src/metaprompt/v2/evaluator.js +281 -0
  182. package/dist-server/src/metaprompt/v2/index.d.ts +41 -0
  183. package/dist-server/src/metaprompt/v2/index.d.ts.map +1 -0
  184. package/dist-server/src/metaprompt/v2/index.js +90 -0
  185. package/dist-server/src/metaprompt/v2/parser.d.ts +3 -0
  186. package/dist-server/src/metaprompt/v2/parser.d.ts.map +1 -0
  187. package/dist-server/src/metaprompt/v2/parser.js +138 -0
  188. package/dist-server/src/metaprompt/v2/pattern-selector.d.ts +3 -0
  189. package/dist-server/src/metaprompt/v2/pattern-selector.d.ts.map +1 -0
  190. package/dist-server/src/metaprompt/v2/pattern-selector.js +154 -0
  191. package/dist-server/src/metaprompt/v2/researcher.d.ts +3 -0
  192. package/dist-server/src/metaprompt/v2/researcher.d.ts.map +1 -0
  193. package/dist-server/src/metaprompt/v2/researcher.js +194 -0
  194. package/dist-server/src/metaprompt/v2/tool-discovery.d.ts +74 -0
  195. package/dist-server/src/metaprompt/v2/tool-discovery.d.ts.map +1 -0
  196. package/dist-server/src/metaprompt/v2/tool-discovery.js +290 -0
  197. package/dist-server/src/metaprompt/v2/types.d.ts +154 -0
  198. package/dist-server/src/metaprompt/v2/types.d.ts.map +1 -0
  199. package/dist-server/src/metaprompt/v2/types.js +2 -0
  200. package/dist-server/src/services/contradictionDetector.js +1 -1
  201. package/dist-server/src/services/llmService.d.ts +61 -0
  202. package/dist-server/src/services/llmService.d.ts.map +1 -0
  203. package/dist-server/src/services/llmService.js +222 -0
  204. package/dist-server/src/store/knowledgeBase.d.ts +6 -1
  205. package/dist-server/src/store/knowledgeBase.d.ts.map +1 -1
  206. package/dist-server/src/store/knowledgeBase.js +0 -1
  207. package/dist-server/src/store/lessonStore.d.ts +26 -0
  208. package/dist-server/src/store/lessonStore.d.ts.map +1 -0
  209. package/dist-server/src/store/lessonStore.js +64 -0
  210. package/dist-server/src/store/mcp-registry.d.ts +29 -0
  211. package/dist-server/src/store/mcp-registry.d.ts.map +1 -0
  212. package/dist-server/src/store/mcp-registry.js +1303 -0
  213. package/dist-server/src/store/memoryStore.d.ts +12 -1
  214. package/dist-server/src/store/memoryStore.d.ts.map +1 -1
  215. package/dist-server/src/store/memoryStore.js +9 -0
  216. package/dist-server/src/types/registry.types.d.ts +13 -0
  217. package/dist-server/src/types/registry.types.d.ts.map +1 -0
  218. package/dist-server/src/types/registry.types.js +2 -0
  219. package/dist-server/tsconfig.server.tsbuildinfo +1 -1
  220. package/package.json +15 -1
  221. package/scripts/cleanup-worktrees.ps1 +29 -0
  222. package/dist/assets/Badge-22Ai0eyi.js +0 -1
  223. package/dist/assets/KnowledgeTab-DABxirZh.js +0 -4
  224. package/dist/assets/MemoryTab-DZeYElIT.js +0 -16
  225. package/dist/assets/QualificationTab-Dfpy3J30.js +0 -1
  226. package/dist/assets/ReviewTab-SD8lQuCc.js +0 -103
  227. package/dist/assets/TestTab-PDyMF8Fw.js +0 -33
  228. package/dist/assets/ToolsTab-B83qGCmG.js +0 -1
  229. package/dist/assets/icons-C2EV-le6.js +0 -1
  230. package/dist/assets/index-DkpMAxX7.css +0 -1
  231. package/dist/assets/index-q24ug5Qs.js +0 -143
  232. 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};