modular-studio 0.2.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/LICENSE +21 -0
- package/README.md +261 -0
- package/dist/assets/graphPopulator-C6jg83nL.js +1 -0
- package/dist/assets/index-CXhIX28x.js +634 -0
- package/dist/assets/index-CeNF0r-K.css +1 -0
- package/dist/assets/jszip.min-BlpRodxc.js +2 -0
- package/dist/index.html +16 -0
- package/dist/vite.svg +1 -0
- package/dist-server/bin/modular-mcp.d.ts +8 -0
- package/dist-server/bin/modular-mcp.d.ts.map +1 -0
- package/dist-server/bin/modular-mcp.js +158 -0
- package/dist-server/bin/modular-mcp.js.map +1 -0
- package/dist-server/bin/modular-studio.d.ts +3 -0
- package/dist-server/bin/modular-studio.d.ts.map +1 -0
- package/dist-server/bin/modular-studio.js +63 -0
- package/dist-server/bin/modular-studio.js.map +1 -0
- package/dist-server/server/config.d.ts +4 -0
- package/dist-server/server/config.d.ts.map +1 -0
- package/dist-server/server/config.js +33 -0
- package/dist-server/server/config.js.map +1 -0
- package/dist-server/server/data/mcp-clients.json +5 -0
- package/dist-server/server/index.d.ts +3 -0
- package/dist-server/server/index.d.ts.map +1 -0
- package/dist-server/server/index.js +174 -0
- package/dist-server/server/index.js.map +1 -0
- package/dist-server/server/mcp/manager.d.ts +47 -0
- package/dist-server/server/mcp/manager.d.ts.map +1 -0
- package/dist-server/server/mcp/manager.js +203 -0
- package/dist-server/server/mcp/manager.js.map +1 -0
- package/dist-server/server/mcp/modular-server.d.ts +55 -0
- package/dist-server/server/mcp/modular-server.d.ts.map +1 -0
- package/dist-server/server/mcp/modular-server.js +492 -0
- package/dist-server/server/mcp/modular-server.js.map +1 -0
- package/dist-server/server/mcp/transport.d.ts +29 -0
- package/dist-server/server/mcp/transport.d.ts.map +1 -0
- package/dist-server/server/mcp/transport.js +61 -0
- package/dist-server/server/mcp/transport.js.map +1 -0
- package/dist-server/server/routes/agent-sdk.d.ts +3 -0
- package/dist-server/server/routes/agent-sdk.d.ts.map +1 -0
- package/dist-server/server/routes/agent-sdk.js +99 -0
- package/dist-server/server/routes/agent-sdk.js.map +1 -0
- package/dist-server/server/routes/agents.d.ts +10 -0
- package/dist-server/server/routes/agents.d.ts.map +1 -0
- package/dist-server/server/routes/agents.js +61 -0
- package/dist-server/server/routes/agents.js.map +1 -0
- package/dist-server/server/routes/auth-codex.d.ts +3 -0
- package/dist-server/server/routes/auth-codex.d.ts.map +1 -0
- package/dist-server/server/routes/auth-codex.js +51 -0
- package/dist-server/server/routes/auth-codex.js.map +1 -0
- package/dist-server/server/routes/capabilities.d.ts +3 -0
- package/dist-server/server/routes/capabilities.d.ts.map +1 -0
- package/dist-server/server/routes/capabilities.js +32 -0
- package/dist-server/server/routes/capabilities.js.map +1 -0
- package/dist-server/server/routes/claude-config.d.ts +3 -0
- package/dist-server/server/routes/claude-config.d.ts.map +1 -0
- package/dist-server/server/routes/claude-config.js +146 -0
- package/dist-server/server/routes/claude-config.js.map +1 -0
- package/dist-server/server/routes/connectors.d.ts +12 -0
- package/dist-server/server/routes/connectors.d.ts.map +1 -0
- package/dist-server/server/routes/connectors.js +325 -0
- package/dist-server/server/routes/connectors.js.map +1 -0
- package/dist-server/server/routes/embeddings.d.ts +6 -0
- package/dist-server/server/routes/embeddings.d.ts.map +1 -0
- package/dist-server/server/routes/embeddings.js +130 -0
- package/dist-server/server/routes/embeddings.js.map +1 -0
- package/dist-server/server/routes/health.d.ts +9 -0
- package/dist-server/server/routes/health.d.ts.map +1 -0
- package/dist-server/server/routes/health.js +284 -0
- package/dist-server/server/routes/health.js.map +1 -0
- package/dist-server/server/routes/knowledge.d.ts +3 -0
- package/dist-server/server/routes/knowledge.d.ts.map +1 -0
- package/dist-server/server/routes/knowledge.js +534 -0
- package/dist-server/server/routes/knowledge.js.map +1 -0
- package/dist-server/server/routes/llm.d.ts +3 -0
- package/dist-server/server/routes/llm.d.ts.map +1 -0
- package/dist-server/server/routes/llm.js +200 -0
- package/dist-server/server/routes/llm.js.map +1 -0
- package/dist-server/server/routes/mcp-oauth.d.ts +12 -0
- package/dist-server/server/routes/mcp-oauth.d.ts.map +1 -0
- package/dist-server/server/routes/mcp-oauth.js +137 -0
- package/dist-server/server/routes/mcp-oauth.js.map +1 -0
- package/dist-server/server/routes/mcp.d.ts +3 -0
- package/dist-server/server/routes/mcp.d.ts.map +1 -0
- package/dist-server/server/routes/mcp.js +177 -0
- package/dist-server/server/routes/mcp.js.map +1 -0
- package/dist-server/server/routes/pipeline.d.ts +45 -0
- package/dist-server/server/routes/pipeline.d.ts.map +1 -0
- package/dist-server/server/routes/pipeline.js +483 -0
- package/dist-server/server/routes/pipeline.js.map +1 -0
- package/dist-server/server/routes/providers.d.ts +3 -0
- package/dist-server/server/routes/providers.d.ts.map +1 -0
- package/dist-server/server/routes/providers.js +204 -0
- package/dist-server/server/routes/providers.js.map +1 -0
- package/dist-server/server/routes/qualification.d.ts +3 -0
- package/dist-server/server/routes/qualification.d.ts.map +1 -0
- package/dist-server/server/routes/qualification.js +105 -0
- package/dist-server/server/routes/qualification.js.map +1 -0
- package/dist-server/server/routes/repo-index.d.ts +4 -0
- package/dist-server/server/routes/repo-index.d.ts.map +1 -0
- package/dist-server/server/routes/repo-index.js +318 -0
- package/dist-server/server/routes/repo-index.js.map +1 -0
- package/dist-server/server/routes/runtime.d.ts +3 -0
- package/dist-server/server/routes/runtime.d.ts.map +1 -0
- package/dist-server/server/routes/runtime.js +122 -0
- package/dist-server/server/routes/runtime.js.map +1 -0
- package/dist-server/server/routes/skills-search.d.ts +3 -0
- package/dist-server/server/routes/skills-search.d.ts.map +1 -0
- package/dist-server/server/routes/skills-search.js +198 -0
- package/dist-server/server/routes/skills-search.js.map +1 -0
- package/dist-server/server/routes/worktrees.d.ts +3 -0
- package/dist-server/server/routes/worktrees.d.ts.map +1 -0
- package/dist-server/server/routes/worktrees.js +70 -0
- package/dist-server/server/routes/worktrees.js.map +1 -0
- package/dist-server/server/services/__tests__/embeddingService.test.d.ts +5 -0
- package/dist-server/server/services/__tests__/embeddingService.test.d.ts.map +1 -0
- package/dist-server/server/services/__tests__/embeddingService.test.js +233 -0
- package/dist-server/server/services/__tests__/embeddingService.test.js.map +1 -0
- package/dist-server/server/services/agentRunner.d.ts +46 -0
- package/dist-server/server/services/agentRunner.d.ts.map +1 -0
- package/dist-server/server/services/agentRunner.js +295 -0
- package/dist-server/server/services/agentRunner.js.map +1 -0
- package/dist-server/server/services/agentStore.d.ts +40 -0
- package/dist-server/server/services/agentStore.d.ts.map +1 -0
- package/dist-server/server/services/agentStore.js +62 -0
- package/dist-server/server/services/agentStore.js.map +1 -0
- package/dist-server/server/services/contentStore.d.ts +32 -0
- package/dist-server/server/services/contentStore.d.ts.map +1 -0
- package/dist-server/server/services/contentStore.js +68 -0
- package/dist-server/server/services/contentStore.js.map +1 -0
- package/dist-server/server/services/embeddingService.d.ts +53 -0
- package/dist-server/server/services/embeddingService.d.ts.map +1 -0
- package/dist-server/server/services/embeddingService.js +199 -0
- package/dist-server/server/services/embeddingService.js.map +1 -0
- package/dist-server/server/services/factExtractor.d.ts +14 -0
- package/dist-server/server/services/factExtractor.d.ts.map +1 -0
- package/dist-server/server/services/factExtractor.js +126 -0
- package/dist-server/server/services/factExtractor.js.map +1 -0
- package/dist-server/server/services/githubIndexer.d.ts +59 -0
- package/dist-server/server/services/githubIndexer.d.ts.map +1 -0
- package/dist-server/server/services/githubIndexer.js +183 -0
- package/dist-server/server/services/githubIndexer.js.map +1 -0
- package/dist-server/server/services/mcpOAuth.d.ts +32 -0
- package/dist-server/server/services/mcpOAuth.d.ts.map +1 -0
- package/dist-server/server/services/mcpOAuth.js +264 -0
- package/dist-server/server/services/mcpOAuth.js.map +1 -0
- package/dist-server/server/services/memoryScorer.d.ts +19 -0
- package/dist-server/server/services/memoryScorer.d.ts.map +1 -0
- package/dist-server/server/services/memoryScorer.js +147 -0
- package/dist-server/server/services/memoryScorer.js.map +1 -0
- package/dist-server/server/services/repoIndexer.d.ts +91 -0
- package/dist-server/server/services/repoIndexer.d.ts.map +1 -0
- package/dist-server/server/services/repoIndexer.js +512 -0
- package/dist-server/server/services/repoIndexer.js.map +1 -0
- package/dist-server/server/services/teamRunner.d.ts +39 -0
- package/dist-server/server/services/teamRunner.d.ts.map +1 -0
- package/dist-server/server/services/teamRunner.js +76 -0
- package/dist-server/server/services/teamRunner.js.map +1 -0
- package/dist-server/server/services/worktreeManager.d.ts +27 -0
- package/dist-server/server/services/worktreeManager.d.ts.map +1 -0
- package/dist-server/server/services/worktreeManager.js +107 -0
- package/dist-server/server/services/worktreeManager.js.map +1 -0
- package/dist-server/server/types.d.ts +30 -0
- package/dist-server/server/types.d.ts.map +1 -0
- package/dist-server/server/types.js +2 -0
- package/dist-server/server/types.js.map +1 -0
- package/dist-server/server/utils/pathSecurity.d.ts +34 -0
- package/dist-server/server/utils/pathSecurity.d.ts.map +1 -0
- package/dist-server/server/utils/pathSecurity.js +78 -0
- package/dist-server/server/utils/pathSecurity.js.map +1 -0
- package/dist-server/src/services/budgetAllocator.d.ts +37 -0
- package/dist-server/src/services/budgetAllocator.d.ts.map +1 -0
- package/dist-server/src/services/budgetAllocator.js +120 -0
- package/dist-server/src/services/budgetAllocator.js.map +1 -0
- package/dist-server/src/services/contradictionDetector.d.ts +18 -0
- package/dist-server/src/services/contradictionDetector.d.ts.map +1 -0
- package/dist-server/src/services/contradictionDetector.js +111 -0
- package/dist-server/src/services/contradictionDetector.js.map +1 -0
- package/dist-server/src/services/treeIndexer.d.ts +91 -0
- package/dist-server/src/services/treeIndexer.d.ts.map +1 -0
- package/dist-server/src/services/treeIndexer.js +289 -0
- package/dist-server/src/services/treeIndexer.js.map +1 -0
- package/dist-server/src/store/knowledgeBase.d.ts +130 -0
- package/dist-server/src/store/knowledgeBase.d.ts.map +1 -0
- package/dist-server/src/store/knowledgeBase.js +299 -0
- package/dist-server/src/store/knowledgeBase.js.map +1 -0
- package/dist-server/tsconfig.server.tsbuildinfo +1 -0
- package/package.json +92 -0
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
export const CATEGORY_COLORS = {
|
|
2
|
+
knowledge: '#3498db',
|
|
3
|
+
discovery: '#2ecc71',
|
|
4
|
+
intel: '#e67e22',
|
|
5
|
+
agents: '#9b59b6',
|
|
6
|
+
};
|
|
7
|
+
export const KNOWLEDGE_TYPES = {
|
|
8
|
+
'ground-truth': { label: 'Ground Truth', color: '#e74c3c', icon: '🔴', instruction: 'Do not contradict this.' },
|
|
9
|
+
'signal': { label: 'Signal', color: '#f1c40f', icon: '🟡', instruction: 'Interpret — look for the underlying need, not the surface request.' },
|
|
10
|
+
'evidence': { label: 'Evidence', color: '#3498db', icon: '🔵', instruction: 'Cite and weigh against other evidence.' },
|
|
11
|
+
'framework': { label: 'Framework', color: '#2ecc71', icon: '🟢', instruction: 'Use to structure thinking, but not as immutable.' },
|
|
12
|
+
'hypothesis': { label: 'Hypothesis', color: '#9b59b6', icon: '🟣', instruction: 'Help validate or invalidate with evidence and signals.' },
|
|
13
|
+
'guideline': { label: 'Guideline', color: '#FE5000', icon: '📏', instruction: 'Extract and enforce as constraints, workflow rules, and output formatting.' },
|
|
14
|
+
};
|
|
15
|
+
// Classification rules — ordered by priority (first match wins)
|
|
16
|
+
const PATH_RULES = [
|
|
17
|
+
[['signal', 'feedback', 'user feedback'], 'signal'],
|
|
18
|
+
[['discovery', '_temp_'], 'hypothesis'],
|
|
19
|
+
[['roadmap', 'plans/', 'plan/'], 'framework'],
|
|
20
|
+
[['intel', 'competitors', 'competitive', 'research', 'savings-analysis'], 'evidence'],
|
|
21
|
+
[['cmo-handoff', 'release', 'demo', 'newsletter'], 'evidence'],
|
|
22
|
+
[['sales prep', 'event prep', 'executive profiler'], 'framework'],
|
|
23
|
+
[['guidelines', 'contributing', 'code-style', 'coding-standards', 'engineering-rules'], 'guideline'],
|
|
24
|
+
[['products'], 'ground-truth', ['feedback']],
|
|
25
|
+
[['clients/'], 'ground-truth', ['feedback']],
|
|
26
|
+
[['companies'], 'evidence'],
|
|
27
|
+
[['voyage-preparation', 'navarea-map'], 'ground-truth'],
|
|
28
|
+
];
|
|
29
|
+
// Content-based classification — patterns in the actual file content
|
|
30
|
+
// Each rule: [contentPatterns, type, weight]
|
|
31
|
+
// Weight breaks ties when multiple patterns match; highest wins
|
|
32
|
+
const CONTENT_RULES = [
|
|
33
|
+
// Ground truth — specs, schemas, configs, contracts, definitions
|
|
34
|
+
{ patterns: [/^#{1,2}\s*(spec|specification|schema|api|contract|definition|interface)/mi, /\b(MUST|SHALL|REQUIRED)\b/g, /```(json|yaml|graphql|proto|sql)\b/g, /\b(version|v\d+\.\d+)/gi], type: 'ground-truth', weight: 10, minMatches: 2 },
|
|
35
|
+
// Signal — feedback, interviews, requests, complaints, feature asks
|
|
36
|
+
{ patterns: [/\b(user said|customer|feedback|interview|request(ed)?|pain point|frustrat|complain|asked for|wants? to|need(s|ed)?)\b/gi, /\b(nps|csat|satisfaction|churn|retention)\b/gi, /[""][^""]{10,}[""]/g, /\b(quote|verbatim)\b/gi], type: 'signal', weight: 8, minMatches: 2 },
|
|
37
|
+
// Evidence — data, analysis, metrics, benchmarks, reports
|
|
38
|
+
{ patterns: [/\b(analysis|benchmark|comparison|metric|kpi|data|report|finding|result|measured|observed)\b/gi, /\d+(\.\d+)?%/g, /\b(increase|decrease|growth|decline|trend)\b/gi, /\|\s*\w+\s*\|/g], type: 'evidence', weight: 7, minMatches: 2 },
|
|
39
|
+
// Framework — methodologies, templates, processes, how-to guides
|
|
40
|
+
{ patterns: [/\b(framework|methodology|process|template|playbook|checklist|step \d|phase \d|stage \d)\b/gi, /\b(when to|how to|best practice|guideline|principle|pattern)\b/gi, /^\s*[-*]\s*\[[ x]\]/gm, /\b(input|output|trigger|criteria)\b/gi], type: 'framework', weight: 6, minMatches: 2 },
|
|
41
|
+
// Hypothesis — proposals, ideas, explorations, RFC, what-if
|
|
42
|
+
{ patterns: [/\b(hypothesis|proposal|rfc|suggest(ion)?|idea|explore|what if|could we|might|experiment|assumption|validate)\b/gi, /\b(pro(s)?|con(s)?|trade-?off|risk|upside|downside)\b/gi, /\b(option [a-c]|alternative|approach \d)\b/gi], type: 'hypothesis', weight: 5, minMatches: 2 },
|
|
43
|
+
// Guideline — rules, conventions, style guides, contributing docs, engineering standards
|
|
44
|
+
{ patterns: [/\b(MUST|SHALL|NEVER|ALWAYS|REQUIRED|FORBIDDEN|DO NOT)\b/g, /\b(convention|standard|guideline|rule|policy|style guide|best practice|coding standard)\b/gi, /\b(naming|branch|commit|pr|pull request)\s*(convention|format|rule|pattern)/gi, /\b(linting|formatting|eslint|prettier|editorconfig)\b/gi], type: 'guideline', weight: 8, minMatches: 2 },
|
|
45
|
+
];
|
|
46
|
+
// Depth suggestion based on category + content size
|
|
47
|
+
// depth 0 = Full (100%), 1 = Detail (75%), 2 = Summary (50%), 3 = Headlines (25%), 4 = Mention (10%)
|
|
48
|
+
const DEPTH_RULES = [
|
|
49
|
+
// Ground truth → always full (specs, schemas, contracts — every line matters)
|
|
50
|
+
{ test: (_, t) => t === 'ground-truth', depth: 0 },
|
|
51
|
+
// Signals → full (every user quote matters)
|
|
52
|
+
{ test: (_, t) => t === 'signal', depth: 0 },
|
|
53
|
+
// Short files → full regardless of type
|
|
54
|
+
{ test: (c) => c.length < 2000, depth: 0 },
|
|
55
|
+
// Hypothesis → detailed (need full context to validate)
|
|
56
|
+
{ test: (_, t) => t === 'hypothesis', depth: 1 },
|
|
57
|
+
// Evidence → detail for short, summary for long
|
|
58
|
+
{ test: (c, t) => t === 'evidence' && c.length > 8000, depth: 2 },
|
|
59
|
+
{ test: (_, t) => t === 'evidence', depth: 1 },
|
|
60
|
+
// Framework → summary (use structure, not verbatim)
|
|
61
|
+
{ test: (c, t) => t === 'framework' && c.length > 8000, depth: 2 },
|
|
62
|
+
{ test: (_, t) => t === 'framework', depth: 1 },
|
|
63
|
+
// Artifacts → headlines (may be outdated, just reference)
|
|
64
|
+
{ test: (_, t) => t === 'guideline', depth: 0 }, // Full depth — guidelines must be fully extracted
|
|
65
|
+
];
|
|
66
|
+
/**
|
|
67
|
+
* Classify a knowledge source by path + content.
|
|
68
|
+
* Path rules take precedence (explicit folder structure = intentional).
|
|
69
|
+
* Content rules are scored by pattern match count × weight.
|
|
70
|
+
*/
|
|
71
|
+
export function classifyKnowledgeType(path, content) {
|
|
72
|
+
return classifyKnowledge(path, content).knowledgeType;
|
|
73
|
+
}
|
|
74
|
+
export function classifyKnowledge(path, content) {
|
|
75
|
+
const p = path.toLowerCase();
|
|
76
|
+
// 1. Path-based rules first (high confidence — user organized it there)
|
|
77
|
+
for (const [keywords, type, excludes] of PATH_RULES) {
|
|
78
|
+
if (keywords.some((kw) => p.includes(kw))) {
|
|
79
|
+
if (excludes && excludes.some((ex) => p.includes(ex)))
|
|
80
|
+
continue;
|
|
81
|
+
const depth = suggestDepth(content || '', type);
|
|
82
|
+
return { knowledgeType: type, depth, confidence: 'high', reason: `Path matches "${keywords.find((kw) => p.includes(kw))}"` };
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// 2. Content-based classification (if content available)
|
|
86
|
+
if (content && content.length > 50) {
|
|
87
|
+
const scores = [];
|
|
88
|
+
for (const rule of CONTENT_RULES) {
|
|
89
|
+
let totalMatches = 0;
|
|
90
|
+
let patternsHit = 0;
|
|
91
|
+
for (const pattern of rule.patterns) {
|
|
92
|
+
// Reset regex state for global patterns
|
|
93
|
+
pattern.lastIndex = 0;
|
|
94
|
+
const matches = content.match(pattern);
|
|
95
|
+
if (matches && matches.length > 0) {
|
|
96
|
+
patternsHit++;
|
|
97
|
+
totalMatches += matches.length;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
const minMatches = rule.minMatches ?? 1;
|
|
101
|
+
if (patternsHit >= minMatches) {
|
|
102
|
+
scores.push({ type: rule.type, score: totalMatches * rule.weight, matches: patternsHit });
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (scores.length > 0) {
|
|
106
|
+
scores.sort((a, b) => b.score - a.score);
|
|
107
|
+
const best = scores[0];
|
|
108
|
+
const confidence = best.score > 30 ? 'high' : best.score > 10 ? 'medium' : 'low';
|
|
109
|
+
const depth = suggestDepth(content, best.type);
|
|
110
|
+
return { knowledgeType: best.type, depth, confidence, reason: `Content analysis: ${best.matches} pattern groups, score ${best.score}` };
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// 3. File extension fallback
|
|
114
|
+
const ext = path.split('.').pop()?.toLowerCase();
|
|
115
|
+
if (ext) {
|
|
116
|
+
const extMap = {
|
|
117
|
+
json: 'ground-truth', yaml: 'ground-truth', yml: 'ground-truth', toml: 'ground-truth',
|
|
118
|
+
sql: 'ground-truth', graphql: 'ground-truth', proto: 'ground-truth',
|
|
119
|
+
csv: 'evidence', tsv: 'evidence', xlsx: 'evidence',
|
|
120
|
+
py: 'guideline', ts: 'guideline', js: 'guideline', tsx: 'guideline', jsx: 'guideline',
|
|
121
|
+
log: 'guideline', txt: 'evidence',
|
|
122
|
+
};
|
|
123
|
+
if (extMap[ext]) {
|
|
124
|
+
const depth = suggestDepth(content || '', extMap[ext]);
|
|
125
|
+
return { knowledgeType: extMap[ext], depth, confidence: 'low', reason: `File extension .${ext}` };
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
const depth = suggestDepth(content || '', 'evidence');
|
|
129
|
+
return { knowledgeType: 'evidence', depth, confidence: 'low', reason: 'Default' };
|
|
130
|
+
}
|
|
131
|
+
export function suggestDepth(content, type) {
|
|
132
|
+
for (const rule of DEPTH_RULES) {
|
|
133
|
+
if (rule.test(content, type))
|
|
134
|
+
return rule.depth;
|
|
135
|
+
}
|
|
136
|
+
return 1; // default: detailed
|
|
137
|
+
}
|
|
138
|
+
export const OUTPUT_FORMATS = [
|
|
139
|
+
{ id: 'markdown', label: 'Markdown', icon: '📝', ext: '.md' },
|
|
140
|
+
{ id: 'html-slides', label: 'HTML Slides', icon: '🎯', ext: '.html' },
|
|
141
|
+
{ id: 'email', label: 'Email Draft', icon: '✉️', ext: '' },
|
|
142
|
+
{ id: 'code', label: 'Code', icon: '💻', ext: '.py' },
|
|
143
|
+
{ id: 'csv', label: 'Data Table', icon: '📊', ext: '.csv' },
|
|
144
|
+
{ id: 'json', label: 'JSON', icon: '{}', ext: '.json' },
|
|
145
|
+
{ id: 'diagram', label: 'Diagram', icon: '🔀', ext: '.svg' },
|
|
146
|
+
{ id: 'slack', label: 'Slack Post', icon: '💬', ext: '' },
|
|
147
|
+
];
|
|
148
|
+
// Auto-detect output format from prompt
|
|
149
|
+
export function detectOutputFormat(prompt) {
|
|
150
|
+
const p = prompt.toLowerCase();
|
|
151
|
+
if (p.includes('slide') || p.includes('presentation') || p.includes('pitch') || p.includes('deck'))
|
|
152
|
+
return 'html-slides';
|
|
153
|
+
if (p.includes('email') || p.includes('draft') || p.includes('send to'))
|
|
154
|
+
return 'email';
|
|
155
|
+
if (p.includes('script') || p.includes('function') || p.includes('code') || p.includes('implement'))
|
|
156
|
+
return 'code';
|
|
157
|
+
if (p.includes('table') || p.includes('csv') || p.includes('spreadsheet') || p.includes('data'))
|
|
158
|
+
return 'csv';
|
|
159
|
+
if (p.includes('json') || p.includes('api') || p.includes('schema'))
|
|
160
|
+
return 'json';
|
|
161
|
+
if (p.includes('diagram') || p.includes('flowchart') || p.includes('architecture'))
|
|
162
|
+
return 'diagram';
|
|
163
|
+
if (p.includes('slack') || p.includes('post in'))
|
|
164
|
+
return 'slack';
|
|
165
|
+
return 'markdown';
|
|
166
|
+
}
|
|
167
|
+
export const DEPTH_LEVELS = [
|
|
168
|
+
{ label: 'Full', pct: 1.0 },
|
|
169
|
+
{ label: 'Detail', pct: 0.75 },
|
|
170
|
+
{ label: 'Summary', pct: 0.5 },
|
|
171
|
+
{ label: 'Headlines', pct: 0.25 },
|
|
172
|
+
{ label: 'Mention', pct: 0.1 },
|
|
173
|
+
];
|
|
174
|
+
export const DEFAULT_AGENT_CONFIG = {
|
|
175
|
+
model: 'claude-opus-4',
|
|
176
|
+
temperature: 0.7,
|
|
177
|
+
systemPrompt: '',
|
|
178
|
+
planningMode: 'single-shot',
|
|
179
|
+
maxTokens: 4096,
|
|
180
|
+
};
|
|
181
|
+
// Preset channel helper — creates channel config from inline data (no longer depends on a mock tree)
|
|
182
|
+
function presetChannel(id, name, path, category, tokenEstimate, depth = 0) {
|
|
183
|
+
return { sourceId: id, name, path, category, knowledgeType: classifyKnowledgeType(path), depth, baseTokens: tokenEstimate };
|
|
184
|
+
}
|
|
185
|
+
// MOCK_CONNECTORS removed — connectors now populated dynamically from MCP server connections
|
|
186
|
+
export const PRESETS = [
|
|
187
|
+
{
|
|
188
|
+
id: 'senior-pm', name: 'Senior PM',
|
|
189
|
+
agentConfig: { model: 'claude-opus-4', temperature: 0.5, planningMode: 'chain-of-thought', maxTokens: 8192 },
|
|
190
|
+
channels: [
|
|
191
|
+
presetChannel('knowledge-products', 'Products', '00 - Knowledge/Products/', 'knowledge', 16000, 0),
|
|
192
|
+
presetChannel('knowledge-products-feedback', 'Feedback', '00 - Knowledge/Products/Feedback/', 'knowledge', 4800, 0),
|
|
193
|
+
presetChannel('signals-odfjell', 'User feedback / Odfjell', '07 - Signals/User feedback/odfjell/', 'intel', 6800, 1),
|
|
194
|
+
presetChannel('signals-kcc', 'User feedback / KCC', '07 - Signals/User feedback/kcc/', 'intel', 5200, 1),
|
|
195
|
+
presetChannel('signals-general', 'User feedback / General', '07 - Signals/User feedback/general/', 'intel', 7500, 1),
|
|
196
|
+
presetChannel('discovery-eu-ets', 'EU ETS Cost Layer', '01 - Discovery/EU ETS Cost Layer/', 'discovery', 3200, 2),
|
|
197
|
+
presetChannel('discovery-weather-routing', 'Weather Routing v2', '01 - Discovery/Weather Routing v2/', 'discovery', 4100, 2),
|
|
198
|
+
presetChannel('discovery-fleet-dashboard', 'Fleet Dashboard', '01 - Discovery/Fleet Dashboard/', 'discovery', 3500, 2),
|
|
199
|
+
presetChannel('roadmap', '03 - Roadmap', '03 - Roadmap/', 'knowledge', 12000, 1),
|
|
200
|
+
],
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
id: 'competitive-intel', name: 'Competitive Intel',
|
|
204
|
+
agentConfig: { model: 'claude-opus-4', temperature: 0.3, planningMode: 'react', maxTokens: 8192 },
|
|
205
|
+
channels: [
|
|
206
|
+
presetChannel('knowledge-competitors', 'Competitors', '00 - Knowledge/Competitors/', 'knowledge', 22000, 0),
|
|
207
|
+
presetChannel('knowledge-competitors-stormgeo', 'StormGeo', '00 - Knowledge/Competitors/Features/stormgeo/', 'knowledge', 4500, 0),
|
|
208
|
+
presetChannel('knowledge-competitors-dtn', 'DTN', '00 - Knowledge/Competitors/Features/dtn/', 'knowledge', 3800, 0),
|
|
209
|
+
presetChannel('knowledge-competitors-sofar', 'Sofar', '00 - Knowledge/Competitors/Features/sofar/', 'knowledge', 3200, 0),
|
|
210
|
+
presetChannel('knowledge-competitors-wni', 'WNI', '00 - Knowledge/Competitors/Features/wni/', 'knowledge', 3600, 0),
|
|
211
|
+
presetChannel('cmo-competitive-intel', '05 - Competitive Intel', 'CMO-Handoff/05 - Competitive Intel/', 'intel', 5800, 1),
|
|
212
|
+
presetChannel('intel-competitive', '01 - Competitive Intel', '05 - Intel/01 - Competitive Intel/', 'intel', 12000, 0),
|
|
213
|
+
],
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
id: 'company-intel', name: 'Company Intel',
|
|
217
|
+
channels: [
|
|
218
|
+
presetChannel('knowledge-companies', 'Companies', '00 - Knowledge/Companies/', 'knowledge', 14000, 0),
|
|
219
|
+
presetChannel('cmo-company-profiles', '01 - Company Profiles', 'CMO-Handoff/01 - Company Profiles/', 'knowledge', 28000, 0),
|
|
220
|
+
presetChannel('cmo-charter-structures', '02 - Charter Structures', 'CMO-Handoff/02 - Charter Structures/', 'knowledge', 8500, 1),
|
|
221
|
+
],
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
id: 'feedback-manager', name: 'Feedback Manager',
|
|
225
|
+
agentConfig: { model: 'claude-sonnet-4', temperature: 0.4, planningMode: 'chain-of-thought', maxTokens: 4096 },
|
|
226
|
+
channels: [
|
|
227
|
+
presetChannel('knowledge-products-feedback', 'Feedback', '00 - Knowledge/Products/Feedback/', 'knowledge', 4800, 0),
|
|
228
|
+
presetChannel('signals-odfjell', 'User feedback / Odfjell', '07 - Signals/User feedback/odfjell/', 'intel', 6800, 0),
|
|
229
|
+
presetChannel('signals-kcc', 'User feedback / KCC', '07 - Signals/User feedback/kcc/', 'intel', 5200, 0),
|
|
230
|
+
presetChannel('signals-baru', 'User feedback / Baru', '07 - Signals/User feedback/baru/', 'intel', 4500, 0),
|
|
231
|
+
presetChannel('signals-general', 'User feedback / General', '07 - Signals/User feedback/general/', 'intel', 7500, 0),
|
|
232
|
+
presetChannel('intel-feedback', '04 - Feedback Synthesis', '05 - Intel/04 - Feedback Synthesis/', 'intel', 4800, 1),
|
|
233
|
+
],
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
id: 'odfjell-deep-dive', name: 'Odfjell Deep Dive',
|
|
237
|
+
channels: [
|
|
238
|
+
presetChannel('odfjell-savings', 'odfjell-savings-analysis', 'odfjell-savings-analysis/', 'intel', 14000, 0),
|
|
239
|
+
presetChannel('knowledge-clients-odfjell', 'Odfjell', '00 - Knowledge/Clients/odfjell/', 'knowledge', 4200, 0),
|
|
240
|
+
presetChannel('signals-odfjell', 'User feedback / Odfjell', '07 - Signals/User feedback/odfjell/', 'intel', 6800, 0),
|
|
241
|
+
presetChannel('cmo-charter-structures', '02 - Charter Structures', 'CMO-Handoff/02 - Charter Structures/', 'knowledge', 8500, 1),
|
|
242
|
+
presetChannel('knowledge-competitors-stormgeo', 'StormGeo', '00 - Knowledge/Competitors/Features/stormgeo/', 'knowledge', 4500, 2),
|
|
243
|
+
],
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
id: 'voyage-prep-dev', name: 'Voyage Prep Dev',
|
|
247
|
+
channels: [
|
|
248
|
+
presetChannel('voyage-prep', 'voyage-preparation', 'voyage-preparation/', 'discovery', 18000, 0),
|
|
249
|
+
presetChannel('temp-voyage', '_temp_voyage-briefing', '_temp_voyage-briefing/', 'discovery', 6400, 0),
|
|
250
|
+
presetChannel('discovery-weather-routing', 'Weather Routing v2', '01 - Discovery/Weather Routing v2/', 'discovery', 4100, 1),
|
|
251
|
+
presetChannel('knowledge-products-nr', 'Navigation Reports', '00 - Knowledge/Products/NR/', 'knowledge', 8200, 1),
|
|
252
|
+
],
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
id: 'event-prep', name: 'Event Prep',
|
|
256
|
+
channels: [
|
|
257
|
+
presetChannel('sales-prep-events', 'Event Prep', '06 - Sales Prep/Event Prep/', 'agents', 9500, 0),
|
|
258
|
+
presetChannel('sales-prep-exec', 'Executive Profiler', '06 - Sales Prep/Executive Profiler/', 'agents', 8500, 0),
|
|
259
|
+
presetChannel('cmo-event-prep', '07 - Event Prep Profiles', 'CMO-Handoff/07 - Event Prep Profiles/', 'agents', 3500, 0),
|
|
260
|
+
presetChannel('cmo-company-profiles', '01 - Company Profiles', 'CMO-Handoff/01 - Company Profiles/', 'knowledge', 28000, 2),
|
|
261
|
+
],
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
id: 'maritime-intel', name: 'Maritime Intel',
|
|
265
|
+
channels: [
|
|
266
|
+
presetChannel('intel-maritime', '02 - Maritime Intel', '05 - Intel/02 - Maritime Intel/', 'intel', 14000, 0),
|
|
267
|
+
presetChannel('navarea-map', 'navarea-map', 'navarea-map/', 'intel', 11000, 0),
|
|
268
|
+
presetChannel('intel-research', '03 - Research', '05 - Intel/03 - Research/', 'intel', 7200, 1),
|
|
269
|
+
],
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
id: 'discovery-all', name: 'Discovery',
|
|
273
|
+
channels: [
|
|
274
|
+
presetChannel('discovery-eu-ets', 'EU ETS Cost Layer', '01 - Discovery/EU ETS Cost Layer/', 'discovery', 3200, 0),
|
|
275
|
+
presetChannel('discovery-weather-routing', 'Weather Routing v2', '01 - Discovery/Weather Routing v2/', 'discovery', 4100, 0),
|
|
276
|
+
presetChannel('discovery-cii-monitor', 'CII Monitor', '01 - Discovery/CII Monitor/', 'discovery', 2800, 0),
|
|
277
|
+
presetChannel('discovery-fleet-dashboard', 'Fleet Dashboard', '01 - Discovery/Fleet Dashboard/', 'discovery', 3500, 0),
|
|
278
|
+
presetChannel('discovery-voyage-compare', 'Voyage Compare', '01 - Discovery/Voyage Compare/', 'discovery', 2600, 0),
|
|
279
|
+
presetChannel('discovery-port-insights', 'Port Insights', '01 - Discovery/Port Insights/', 'discovery', 2200, 0),
|
|
280
|
+
presetChannel('discovery-api-v2', 'API v2', '01 - Discovery/API v2/', 'discovery', 3800, 0),
|
|
281
|
+
presetChannel('discovery-alerts-engine', 'Alerts Engine', '01 - Discovery/Alerts Engine/', 'discovery', 2400, 0),
|
|
282
|
+
presetChannel('discovery-bunker-opt', 'Bunker Optimization', '01 - Discovery/Bunker Optimization/', 'discovery', 3100, 0),
|
|
283
|
+
presetChannel('discovery-cargo-tracking', 'Cargo Tracking', '01 - Discovery/Cargo Tracking/', 'discovery', 2700, 0),
|
|
284
|
+
],
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
id: 'all-knowledge', name: 'All Knowledge',
|
|
288
|
+
channels: [
|
|
289
|
+
presetChannel('knowledge', '00 - Knowledge', '00 - Knowledge/', 'knowledge', 82000, 2),
|
|
290
|
+
presetChannel('knowledge-clients', 'Clients', '00 - Knowledge/Clients/', 'knowledge', 18000, 1),
|
|
291
|
+
presetChannel('knowledge-companies', 'Companies', '00 - Knowledge/Companies/', 'knowledge', 14000, 1),
|
|
292
|
+
presetChannel('knowledge-competitors', 'Competitors', '00 - Knowledge/Competitors/', 'knowledge', 22000, 1),
|
|
293
|
+
presetChannel('knowledge-products', 'Products', '00 - Knowledge/Products/', 'knowledge', 16000, 0),
|
|
294
|
+
presetChannel('knowledge-market', 'Market', '00 - Knowledge/Market/', 'knowledge', 6500, 2),
|
|
295
|
+
presetChannel('knowledge-users', 'Users', '00 - Knowledge/Users/', 'knowledge', 5500, 2),
|
|
296
|
+
],
|
|
297
|
+
},
|
|
298
|
+
];
|
|
299
|
+
//# sourceMappingURL=knowledgeBase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledgeBase.js","sourceRoot":"","sources":["../../../src/store/knowledgeBase.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["../server/config.ts","../server/index.ts","../server/types.ts","../server/mcp/manager.ts","../server/mcp/modular-server.ts","../server/mcp/transport.ts","../server/routes/agent-sdk.ts","../server/routes/agents.ts","../server/routes/auth-codex.ts","../server/routes/capabilities.ts","../server/routes/claude-config.ts","../server/routes/connectors.ts","../server/routes/embeddings.ts","../server/routes/health.ts","../server/routes/knowledge.ts","../server/routes/llm.ts","../server/routes/mcp-oauth.ts","../server/routes/mcp.ts","../server/routes/pipeline.ts","../server/routes/providers.ts","../server/routes/qualification.ts","../server/routes/repo-index.ts","../server/routes/runtime.ts","../server/routes/skills-search.ts","../server/routes/worktrees.ts","../server/services/agentrunner.ts","../server/services/agentstore.ts","../server/services/contentstore.ts","../server/services/embeddingservice.ts","../server/services/factextractor.ts","../server/services/githubindexer.ts","../server/services/mcpoauth.ts","../server/services/memoryscorer.ts","../server/services/repoindexer.ts","../server/services/teamrunner.ts","../server/services/worktreemanager.ts","../server/services/__tests__/embeddingservice.test.ts","../server/utils/pathsecurity.ts","../bin/modular-mcp.ts","../bin/modular-studio.ts"],"version":"5.9.3"}
|
package/package.json
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "modular-studio",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Context engineering IDE for AI agents. Design knowledge pipelines, not just prompts.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "Apache-2.0",
|
|
7
|
+
"author": "Victor Grosjean <victor.grosjean@gmail.com>",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "https://github.com/VictorGjn/modular-patchbay.git"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://github.com/VictorGjn/modular-patchbay#readme",
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/VictorGjn/modular-patchbay/issues"
|
|
15
|
+
},
|
|
16
|
+
"engines": {
|
|
17
|
+
"node": ">=18"
|
|
18
|
+
},
|
|
19
|
+
"keywords": [
|
|
20
|
+
"ai",
|
|
21
|
+
"agent",
|
|
22
|
+
"context-engineering",
|
|
23
|
+
"mcp",
|
|
24
|
+
"knowledge-pipeline",
|
|
25
|
+
"llm"
|
|
26
|
+
],
|
|
27
|
+
"bin": {
|
|
28
|
+
"modular-studio": "./dist-server/bin/modular-studio.js",
|
|
29
|
+
"modular-mcp-server": "./dist-server/bin/modular-mcp.js"
|
|
30
|
+
},
|
|
31
|
+
"files": [
|
|
32
|
+
"dist/",
|
|
33
|
+
"dist-server/",
|
|
34
|
+
"package.json",
|
|
35
|
+
"README.md",
|
|
36
|
+
"LICENSE"
|
|
37
|
+
],
|
|
38
|
+
"scripts": {
|
|
39
|
+
"dev": "vite",
|
|
40
|
+
"build": "tsc -b && vite build",
|
|
41
|
+
"build:server": "tsc -p tsconfig.server.json",
|
|
42
|
+
"build:all": "npm run build && npm run build:server",
|
|
43
|
+
"lint": "eslint .",
|
|
44
|
+
"preview": "vite preview",
|
|
45
|
+
"server": "node --import tsx/esm server/index.ts",
|
|
46
|
+
"studio": "node --import tsx/esm bin/modular-studio.ts",
|
|
47
|
+
"prepublishOnly": "npm run build:all",
|
|
48
|
+
"test": "vitest run",
|
|
49
|
+
"test:watch": "vitest",
|
|
50
|
+
"test:e2e": "playwright test"
|
|
51
|
+
},
|
|
52
|
+
"dependencies": {
|
|
53
|
+
"@anthropic-ai/claude-agent-sdk": "^0.2.62",
|
|
54
|
+
"@huggingface/transformers": "^3.8.1",
|
|
55
|
+
"@modelcontextprotocol/sdk": "^1.27.0",
|
|
56
|
+
"@xyflow/react": "^12.10.1",
|
|
57
|
+
"cors": "^2.8.5",
|
|
58
|
+
"express": "^5.1.0",
|
|
59
|
+
"jszip": "^3.10.1",
|
|
60
|
+
"lucide-react": "^0.575.0",
|
|
61
|
+
"mermaid": "^11.12.3",
|
|
62
|
+
"open": "^10.1.0",
|
|
63
|
+
"react": "^19.2.0",
|
|
64
|
+
"react-dom": "^19.2.0",
|
|
65
|
+
"react-markdown": "^10.1.0",
|
|
66
|
+
"remark-gfm": "^4.0.1",
|
|
67
|
+
"zod": "^3.25.0",
|
|
68
|
+
"zustand": "^5.0.11"
|
|
69
|
+
},
|
|
70
|
+
"devDependencies": {
|
|
71
|
+
"@eslint/js": "^9.39.1",
|
|
72
|
+
"@playwright/test": "^1.58.2",
|
|
73
|
+
"@tailwindcss/vite": "^4.2.1",
|
|
74
|
+
"@types/cors": "^2.8.17",
|
|
75
|
+
"@types/express": "^5.0.0",
|
|
76
|
+
"@types/node": "^24.10.1",
|
|
77
|
+
"@types/react": "^19.2.7",
|
|
78
|
+
"@types/react-dom": "^19.2.3",
|
|
79
|
+
"@vitejs/plugin-react": "^5.1.1",
|
|
80
|
+
"eslint": "^9.39.1",
|
|
81
|
+
"eslint-plugin-react-hooks": "^7.0.1",
|
|
82
|
+
"eslint-plugin-react-refresh": "^0.4.24",
|
|
83
|
+
"globals": "^16.5.0",
|
|
84
|
+
"jsdom": "^28.1.0",
|
|
85
|
+
"tailwindcss": "^4.2.1",
|
|
86
|
+
"tsx": "^4.19.0",
|
|
87
|
+
"typescript": "~5.9.3",
|
|
88
|
+
"typescript-eslint": "^8.48.0",
|
|
89
|
+
"vite": "^7.3.1",
|
|
90
|
+
"vitest": "^4.0.18"
|
|
91
|
+
}
|
|
92
|
+
}
|