opencode-agora 0.2.2 → 0.4.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 +217 -52
- package/dist/cli/app.d.ts +3 -0
- package/dist/cli/app.d.ts.map +1 -1
- package/dist/cli/app.js +1202 -227
- package/dist/cli/app.js.map +1 -1
- package/dist/cli/chat-renderer.d.ts +31 -0
- package/dist/cli/chat-renderer.d.ts.map +1 -0
- package/dist/cli/chat-renderer.js +275 -0
- package/dist/cli/chat-renderer.js.map +1 -0
- package/dist/cli/commands-meta.d.ts +21 -0
- package/dist/cli/commands-meta.d.ts.map +1 -0
- package/dist/cli/commands-meta.js +600 -0
- package/dist/cli/commands-meta.js.map +1 -0
- package/dist/cli/completions.d.ts +18 -0
- package/dist/cli/completions.d.ts.map +1 -0
- package/dist/cli/completions.js +190 -0
- package/dist/cli/completions.js.map +1 -0
- package/dist/cli/mcp-server.d.ts +4 -0
- package/dist/cli/mcp-server.d.ts.map +1 -0
- package/dist/cli/mcp-server.js +277 -0
- package/dist/cli/mcp-server.js.map +1 -0
- package/dist/cli/menu.d.ts +7 -0
- package/dist/cli/menu.d.ts.map +1 -0
- package/dist/cli/menu.js +164 -0
- package/dist/cli/menu.js.map +1 -0
- package/dist/cli/pages/community.d.ts +3 -0
- package/dist/cli/pages/community.d.ts.map +1 -0
- package/dist/cli/pages/community.js +276 -0
- package/dist/cli/pages/community.js.map +1 -0
- package/dist/cli/pages/helpers.d.ts +32 -0
- package/dist/cli/pages/helpers.d.ts.map +1 -0
- package/dist/cli/pages/helpers.js +67 -0
- package/dist/cli/pages/helpers.js.map +1 -0
- package/dist/cli/pages/home.d.ts +3 -0
- package/dist/cli/pages/home.d.ts.map +1 -0
- package/dist/cli/pages/home.js +148 -0
- package/dist/cli/pages/home.js.map +1 -0
- package/dist/cli/pages/marketplace.d.ts +3 -0
- package/dist/cli/pages/marketplace.d.ts.map +1 -0
- package/dist/cli/pages/marketplace.js +179 -0
- package/dist/cli/pages/marketplace.js.map +1 -0
- package/dist/cli/pages/news.d.ts +3 -0
- package/dist/cli/pages/news.d.ts.map +1 -0
- package/dist/cli/pages/news.js +561 -0
- package/dist/cli/pages/news.js.map +1 -0
- package/dist/cli/pages/settings.d.ts +3 -0
- package/dist/cli/pages/settings.d.ts.map +1 -0
- package/dist/cli/pages/settings.js +166 -0
- package/dist/cli/pages/settings.js.map +1 -0
- package/dist/cli/pages/types.d.ts +67 -0
- package/dist/cli/pages/types.d.ts.map +1 -0
- package/dist/cli/pages/types.js +2 -0
- package/dist/cli/pages/types.js.map +1 -0
- package/dist/cli/prompter.d.ts +135 -0
- package/dist/cli/prompter.d.ts.map +1 -0
- package/dist/cli/prompter.js +675 -0
- package/dist/cli/prompter.js.map +1 -0
- package/dist/cli/shell.d.ts +23 -0
- package/dist/cli/shell.d.ts.map +1 -0
- package/dist/cli/shell.js +819 -0
- package/dist/cli/shell.js.map +1 -0
- package/dist/cli/tui.d.ts +7 -0
- package/dist/cli/tui.d.ts.map +1 -0
- package/dist/cli/tui.js +373 -0
- package/dist/cli/tui.js.map +1 -0
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands.d.ts +14 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +28 -0
- package/dist/commands.js.map +1 -0
- package/dist/community/client.d.ts +47 -0
- package/dist/community/client.d.ts.map +1 -0
- package/dist/community/client.js +245 -0
- package/dist/community/client.js.map +1 -0
- package/dist/community/types.d.ts +50 -0
- package/dist/community/types.d.ts.map +1 -0
- package/dist/community/types.js +11 -0
- package/dist/community/types.js.map +1 -0
- package/dist/config-files.d.ts.map +1 -1
- package/dist/config-files.js +11 -8
- package/dist/config-files.js.map +1 -1
- package/dist/config.d.ts +8 -8
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +16 -27
- package/dist/config.js.map +1 -1
- package/dist/data.d.ts +1 -1
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +1013 -545
- package/dist/data.js.map +1 -1
- package/dist/format.d.ts +5 -39
- package/dist/format.d.ts.map +1 -1
- package/dist/format.js +5 -118
- package/dist/format.js.map +1 -1
- package/dist/history.d.ts +13 -0
- package/dist/history.d.ts.map +1 -0
- package/dist/history.js +37 -0
- package/dist/history.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +151 -236
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +4 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +103 -51
- package/dist/init.js.map +1 -1
- package/dist/live.d.ts +4 -0
- package/dist/live.d.ts.map +1 -1
- package/dist/live.js +87 -19
- package/dist/live.js.map +1 -1
- package/dist/marketplace.d.ts +9 -0
- package/dist/marketplace.d.ts.map +1 -1
- package/dist/marketplace.js +128 -33
- package/dist/marketplace.js.map +1 -1
- package/dist/news/cache.d.ts +13 -0
- package/dist/news/cache.d.ts.map +1 -0
- package/dist/news/cache.js +65 -0
- package/dist/news/cache.js.map +1 -0
- package/dist/news/score.d.ts +4 -0
- package/dist/news/score.d.ts.map +1 -0
- package/dist/news/score.js +43 -0
- package/dist/news/score.js.map +1 -0
- package/dist/news/sources/arxiv.d.ts +9 -0
- package/dist/news/sources/arxiv.d.ts.map +1 -0
- package/dist/news/sources/arxiv.js +103 -0
- package/dist/news/sources/arxiv.js.map +1 -0
- package/dist/news/sources/github-trending.d.ts +9 -0
- package/dist/news/sources/github-trending.d.ts.map +1 -0
- package/dist/news/sources/github-trending.js +93 -0
- package/dist/news/sources/github-trending.js.map +1 -0
- package/dist/news/sources/hn.d.ts +9 -0
- package/dist/news/sources/hn.d.ts.map +1 -0
- package/dist/news/sources/hn.js +53 -0
- package/dist/news/sources/hn.js.map +1 -0
- package/dist/news/sources/reddit.d.ts +9 -0
- package/dist/news/sources/reddit.d.ts.map +1 -0
- package/dist/news/sources/reddit.js +68 -0
- package/dist/news/sources/reddit.js.map +1 -0
- package/dist/news/sources/rss.d.ts +14 -0
- package/dist/news/sources/rss.d.ts.map +1 -0
- package/dist/news/sources/rss.js +102 -0
- package/dist/news/sources/rss.js.map +1 -0
- package/dist/news/types.d.ts +39 -0
- package/dist/news/types.d.ts.map +1 -0
- package/dist/news/types.js +47 -0
- package/dist/news/types.js.map +1 -0
- package/dist/preferences.d.ts +14 -0
- package/dist/preferences.d.ts.map +1 -0
- package/dist/preferences.js +31 -0
- package/dist/preferences.js.map +1 -0
- package/dist/settings.d.ts +26 -0
- package/dist/settings.d.ts.map +1 -0
- package/dist/settings.js +257 -0
- package/dist/settings.js.map +1 -0
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +7 -6
- package/dist/state.js.map +1 -1
- package/dist/transcript.d.ts +28 -0
- package/dist/transcript.d.ts.map +1 -0
- package/dist/transcript.js +79 -0
- package/dist/transcript.js.map +1 -0
- package/dist/types.d.ts +6 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/ui.d.ts +157 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +296 -0
- package/dist/ui.js.map +1 -0
- package/package.json +21 -10
- package/dist/api.d.ts +0 -69
- package/dist/api.d.ts.map +0 -1
- package/dist/api.js +0 -109
- package/dist/api.js.map +0 -1
- package/dist/logger.d.ts +0 -20
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js +0 -59
- package/dist/logger.js.map +0 -1
package/dist/init.js
CHANGED
|
@@ -1,47 +1,46 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
-
import {
|
|
3
|
+
import { execFileSync } from 'node:child_process';
|
|
4
4
|
import { writeOpenCodeConfig } from './config-files.js';
|
|
5
5
|
import { samplePackages } from './data.js';
|
|
6
6
|
const CATEGORY_SERVERS = {
|
|
7
|
-
node: ['mcp-filesystem', 'mcp-github', 'mcp-
|
|
8
|
-
python: ['mcp-filesystem', 'mcp-github', 'mcp-
|
|
9
|
-
rust: ['mcp-filesystem', 'mcp-github', 'mcp-
|
|
10
|
-
go: ['mcp-filesystem', 'mcp-github', 'mcp-
|
|
11
|
-
ruby: ['mcp-filesystem', 'mcp-github', 'mcp-
|
|
12
|
-
java: ['mcp-filesystem', 'mcp-github', 'mcp-
|
|
7
|
+
node: ['mcp-filesystem', 'mcp-github', 'mcp-context7', 'mcp-sequential-thinking'],
|
|
8
|
+
python: ['mcp-filesystem', 'mcp-github', 'mcp-context7', 'mcp-sequential-thinking'],
|
|
9
|
+
rust: ['mcp-filesystem', 'mcp-github', 'mcp-sequential-thinking'],
|
|
10
|
+
go: ['mcp-filesystem', 'mcp-github', 'mcp-sequential-thinking'],
|
|
11
|
+
ruby: ['mcp-filesystem', 'mcp-github', 'mcp-sequential-thinking'],
|
|
12
|
+
java: ['mcp-filesystem', 'mcp-github', 'mcp-sequential-thinking'],
|
|
13
|
+
unknown: ['mcp-filesystem', 'mcp-github', 'mcp-sequential-thinking']
|
|
13
14
|
};
|
|
14
15
|
const FRAMEWORK_SERVERS = {
|
|
15
|
-
react: ['mcp-
|
|
16
|
-
nextjs: ['mcp-
|
|
17
|
-
vue: ['mcp-
|
|
16
|
+
react: ['mcp-figma', 'mcp-magic', 'mcp-context7'],
|
|
17
|
+
nextjs: ['mcp-figma', 'mcp-magic', 'mcp-context7', 'mcp-supabase'],
|
|
18
|
+
vue: ['mcp-figma', 'mcp-context7'],
|
|
18
19
|
express: ['mcp-postgres', 'mcp-redis'],
|
|
19
|
-
django: ['mcp-postgres'
|
|
20
|
-
flask: ['mcp-postgres'
|
|
20
|
+
django: ['mcp-postgres'],
|
|
21
|
+
flask: ['mcp-postgres'],
|
|
21
22
|
rails: ['mcp-postgres', 'mcp-redis'],
|
|
22
|
-
spring: ['mcp-postgres'
|
|
23
|
+
spring: ['mcp-postgres']
|
|
23
24
|
};
|
|
24
25
|
export function scanProject(dir) {
|
|
25
26
|
const files = listFiles(dir);
|
|
26
27
|
const deps = readDependencies(dir);
|
|
27
28
|
let type = 'unknown';
|
|
28
29
|
const frameworks = [];
|
|
29
|
-
let hasDocker = false;
|
|
30
|
-
let hasCI = false;
|
|
31
|
-
let hasTests = false;
|
|
32
|
-
let hasDatabase = false;
|
|
33
30
|
if (files.has('package.json')) {
|
|
34
31
|
type = 'node';
|
|
35
32
|
if (deps.includes('react') || deps.includes('next'))
|
|
36
33
|
frameworks.push('react');
|
|
37
|
-
if (deps.includes('next')
|
|
34
|
+
if (deps.includes('next'))
|
|
38
35
|
frameworks.push('nextjs');
|
|
39
36
|
if (deps.includes('vue'))
|
|
40
37
|
frameworks.push('vue');
|
|
41
38
|
if (deps.includes('express'))
|
|
42
39
|
frameworks.push('express');
|
|
43
40
|
}
|
|
44
|
-
else if (files.has('pyproject.toml') ||
|
|
41
|
+
else if (files.has('pyproject.toml') ||
|
|
42
|
+
files.has('setup.py') ||
|
|
43
|
+
files.has('requirements.txt')) {
|
|
45
44
|
type = 'python';
|
|
46
45
|
if (deps.includes('django'))
|
|
47
46
|
frameworks.push('django');
|
|
@@ -64,10 +63,10 @@ export function scanProject(dir) {
|
|
|
64
63
|
if (deps.includes('spring'))
|
|
65
64
|
frameworks.push('spring');
|
|
66
65
|
}
|
|
67
|
-
hasDocker = files.has('Dockerfile') || files.has('docker-compose.yml') || files.has('.dockerignore');
|
|
68
|
-
hasCI = files.has('.github/workflows') || files.has('.gitlab-ci.yml') || files.has('Jenkinsfile');
|
|
69
|
-
hasTests = files.has('test') || files.has('tests') || files.has('__tests__') || files.has('spec');
|
|
70
|
-
hasDatabase = deps.some((d) => ['postgres', 'pg', 'mysql', 'sqlite', 'mongodb', 'redis'].includes(d));
|
|
66
|
+
const hasDocker = files.has('Dockerfile') || files.has('docker-compose.yml') || files.has('.dockerignore');
|
|
67
|
+
const hasCI = files.has('.github/workflows') || files.has('.gitlab-ci.yml') || files.has('Jenkinsfile');
|
|
68
|
+
const hasTests = files.has('test') || files.has('tests') || files.has('__tests__') || files.has('spec');
|
|
69
|
+
const hasDatabase = deps.some((d) => ['postgres', 'pg', 'mysql', 'sqlite', 'mongodb', 'redis'].includes(d));
|
|
71
70
|
return { type, frameworks, hasDocker, hasCI, hasTests, hasDatabase, dependencies: deps };
|
|
72
71
|
}
|
|
73
72
|
export function generateInitPlan(scan) {
|
|
@@ -86,30 +85,27 @@ export function generateInitPlan(scan) {
|
|
|
86
85
|
if (scan.dependencies.includes('pg') || scan.dependencies.includes('postgres')) {
|
|
87
86
|
serverIds.add('mcp-postgres');
|
|
88
87
|
}
|
|
89
|
-
if (scan.dependencies.includes('mysql'))
|
|
90
|
-
serverIds.add('mcp-mysql');
|
|
91
|
-
if (scan.dependencies.includes('sqlite') || scan.dependencies.includes('better-sqlite3')) {
|
|
92
|
-
serverIds.add('mcp-sqlite');
|
|
93
|
-
}
|
|
94
88
|
if (scan.dependencies.includes('mongodb') || scan.dependencies.includes('mongoose')) {
|
|
95
89
|
serverIds.add('mcp-mongodb');
|
|
96
90
|
}
|
|
97
91
|
if (scan.dependencies.includes('redis') || scan.dependencies.includes('ioredis')) {
|
|
98
92
|
serverIds.add('mcp-redis');
|
|
99
93
|
}
|
|
94
|
+
if (scan.dependencies.includes('elasticsearch') ||
|
|
95
|
+
scan.dependencies.includes('@elastic/elasticsearch')) {
|
|
96
|
+
serverIds.add('mcp-elasticsearch');
|
|
97
|
+
}
|
|
100
98
|
}
|
|
101
|
-
if (scan.hasDocker)
|
|
102
|
-
serverIds.add('mcp-docker');
|
|
103
99
|
workflowIds.add('wf-code-review-arch');
|
|
104
100
|
if (scan.hasTests)
|
|
105
101
|
workflowIds.add('wf-tdd-cycle');
|
|
106
102
|
if (scan.type === 'node')
|
|
107
|
-
notes.push('Node.js project detected — added
|
|
103
|
+
notes.push('Node.js project detected — added filesystem, GitHub, and docs MCP servers.');
|
|
108
104
|
const notesList = [
|
|
109
105
|
scan.hasTests ? 'Tests detected — TDD workflow recommended.' : '',
|
|
110
|
-
scan.hasDocker ? 'Docker detected —
|
|
106
|
+
scan.hasDocker ? 'Docker detected — containerized project.' : '',
|
|
111
107
|
scan.hasDatabase ? 'Database dependencies detected — added relevant database MCP servers.' : '',
|
|
112
|
-
scan.frameworks.length > 0 ? `Framework(s) detected: ${scan.frameworks.join(', ')}.` : ''
|
|
108
|
+
scan.frameworks.length > 0 ? `Framework(s) detected: ${scan.frameworks.join(', ')}.` : ''
|
|
113
109
|
].filter(Boolean);
|
|
114
110
|
const servers = resolveServers(Array.from(serverIds));
|
|
115
111
|
for (const server of servers) {
|
|
@@ -117,13 +113,13 @@ export function generateInitPlan(scan) {
|
|
|
117
113
|
commands.push(`npm install -g ${server.npmPackage}`);
|
|
118
114
|
}
|
|
119
115
|
}
|
|
120
|
-
const
|
|
116
|
+
const mcp = {};
|
|
121
117
|
for (const server of servers) {
|
|
122
118
|
if (server.npmPackage) {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
119
|
+
mcp[server.id] = {
|
|
120
|
+
type: 'local',
|
|
121
|
+
command: ['npx', server.npmPackage],
|
|
122
|
+
enabled: true
|
|
127
123
|
};
|
|
128
124
|
}
|
|
129
125
|
}
|
|
@@ -131,39 +127,56 @@ export function generateInitPlan(scan) {
|
|
|
131
127
|
return {
|
|
132
128
|
config: {
|
|
133
129
|
$schema: 'https://opencode.ai/config.json',
|
|
134
|
-
|
|
135
|
-
|
|
130
|
+
mcp,
|
|
131
|
+
plugin: ['opencode-agora']
|
|
136
132
|
},
|
|
137
|
-
servers:
|
|
133
|
+
servers: servers.map((s) => s.id),
|
|
138
134
|
workflows: Array.from(workflowIds),
|
|
139
135
|
commands,
|
|
140
|
-
notes
|
|
136
|
+
notes
|
|
141
137
|
};
|
|
142
138
|
}
|
|
143
139
|
export function applyInitPlan(plan, configPath) {
|
|
144
140
|
writeOpenCodeConfig(configPath, plan.config);
|
|
145
141
|
}
|
|
146
142
|
export function runCommands(commands) {
|
|
147
|
-
|
|
143
|
+
const results = [];
|
|
144
|
+
const pattern = /^npm install -g (@?[a-z0-9][\w.-]*(?:\/[\w.-]+)?)$/;
|
|
145
|
+
for (const command of commands) {
|
|
146
|
+
const match = pattern.exec(command);
|
|
147
|
+
if (!match) {
|
|
148
|
+
results.push({ command, ok: false });
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
151
|
+
const pkg = match[1];
|
|
148
152
|
try {
|
|
149
|
-
|
|
153
|
+
execFileSync('npm', ['install', '-g', pkg], { stdio: 'pipe', timeout: 120000 });
|
|
154
|
+
results.push({ command, ok: true });
|
|
150
155
|
}
|
|
151
156
|
catch {
|
|
152
|
-
|
|
157
|
+
results.push({ command, ok: false });
|
|
153
158
|
}
|
|
154
159
|
}
|
|
160
|
+
return results;
|
|
155
161
|
}
|
|
156
162
|
function listFiles(dir) {
|
|
157
163
|
const files = new Set();
|
|
158
164
|
const candidates = [
|
|
159
165
|
'package.json',
|
|
160
|
-
'pyproject.toml',
|
|
166
|
+
'pyproject.toml',
|
|
167
|
+
'setup.py',
|
|
168
|
+
'requirements.txt',
|
|
161
169
|
'Cargo.toml',
|
|
162
170
|
'go.mod',
|
|
163
171
|
'Gemfile',
|
|
164
|
-
'pom.xml',
|
|
165
|
-
'
|
|
166
|
-
'
|
|
172
|
+
'pom.xml',
|
|
173
|
+
'build.gradle',
|
|
174
|
+
'Dockerfile',
|
|
175
|
+
'docker-compose.yml',
|
|
176
|
+
'.dockerignore',
|
|
177
|
+
'.github/workflows',
|
|
178
|
+
'.gitlab-ci.yml',
|
|
179
|
+
'Jenkinsfile'
|
|
167
180
|
];
|
|
168
181
|
for (const file of candidates) {
|
|
169
182
|
if (existsSync(join(dir, file))) {
|
|
@@ -178,18 +191,57 @@ function listFiles(dir) {
|
|
|
178
191
|
return files;
|
|
179
192
|
}
|
|
180
193
|
function readDependencies(dir) {
|
|
194
|
+
const deps = new Set();
|
|
181
195
|
const pkgPath = join(dir, 'package.json');
|
|
182
196
|
if (existsSync(pkgPath)) {
|
|
183
197
|
try {
|
|
184
198
|
const pkg = JSON.parse(readFileSync(pkgPath, 'utf8'));
|
|
185
199
|
const all = { ...pkg.dependencies, ...pkg.devDependencies };
|
|
186
|
-
|
|
200
|
+
for (const name of Object.keys(all || {}))
|
|
201
|
+
deps.add(name);
|
|
202
|
+
}
|
|
203
|
+
catch {
|
|
204
|
+
// ignore
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
const manifestFiles = [
|
|
208
|
+
'requirements.txt',
|
|
209
|
+
'pyproject.toml',
|
|
210
|
+
'Gemfile',
|
|
211
|
+
'pom.xml',
|
|
212
|
+
'build.gradle'
|
|
213
|
+
];
|
|
214
|
+
const keywords = [
|
|
215
|
+
'django',
|
|
216
|
+
'flask',
|
|
217
|
+
'rails',
|
|
218
|
+
'spring',
|
|
219
|
+
'postgres',
|
|
220
|
+
'pg',
|
|
221
|
+
'mysql',
|
|
222
|
+
'sqlite',
|
|
223
|
+
'mongodb',
|
|
224
|
+
'mongoose',
|
|
225
|
+
'redis',
|
|
226
|
+
'ioredis',
|
|
227
|
+
'elasticsearch'
|
|
228
|
+
];
|
|
229
|
+
for (const file of manifestFiles) {
|
|
230
|
+
const filePath = join(dir, file);
|
|
231
|
+
if (!existsSync(filePath))
|
|
232
|
+
continue;
|
|
233
|
+
try {
|
|
234
|
+
const content = readFileSync(filePath, 'utf8').toLowerCase();
|
|
235
|
+
for (const keyword of keywords) {
|
|
236
|
+
if (content.includes(keyword))
|
|
237
|
+
deps.add(keyword);
|
|
238
|
+
}
|
|
187
239
|
}
|
|
188
240
|
catch {
|
|
189
241
|
// ignore
|
|
190
242
|
}
|
|
191
243
|
}
|
|
192
|
-
return
|
|
244
|
+
return Array.from(deps);
|
|
193
245
|
}
|
|
194
246
|
function resolveServers(ids) {
|
|
195
247
|
return ids
|
package/dist/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
|
package/dist/live.d.ts
CHANGED
|
@@ -13,6 +13,10 @@ export interface SearchSourceOptions extends SourceOptions {
|
|
|
13
13
|
query?: string;
|
|
14
14
|
category?: string;
|
|
15
15
|
limit?: number;
|
|
16
|
+
sortBy?: 'relevance' | 'stars' | 'installs' | 'name' | 'updated';
|
|
17
|
+
sortOrder?: 'asc' | 'desc';
|
|
18
|
+
page?: number;
|
|
19
|
+
perPage?: number;
|
|
16
20
|
}
|
|
17
21
|
export interface FindSourceOptions extends SourceOptions {
|
|
18
22
|
id: string;
|
package/dist/live.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAgB,MAAM,YAAY,CAAC;AACrE,OAAO,EAUL,KAAK,eAAe,EAGrB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,SAAS,CAAC;AAC3C,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvF,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"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"}
|
package/dist/live.js
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import { findMarketplaceItem, findTutorial, getDiscussions, getTutorials, getTrendingItems, normalizeCategory, normalizeTutorialLevel, searchMarketplaceItems } from './marketplace.js';
|
|
2
2
|
export async function searchMarketplaceSource(options = {}) {
|
|
3
3
|
if (!shouldUseApi(options)) {
|
|
4
|
-
return offline(searchMarketplaceItems(
|
|
4
|
+
return offline(searchMarketplaceItems({
|
|
5
|
+
query: options.query,
|
|
6
|
+
category: options.category,
|
|
7
|
+
limit: options.limit,
|
|
8
|
+
sortBy: options.sortBy,
|
|
9
|
+
sortOrder: options.sortOrder,
|
|
10
|
+
page: options.page,
|
|
11
|
+
perPage: options.perPage
|
|
12
|
+
}));
|
|
5
13
|
}
|
|
6
14
|
try {
|
|
7
15
|
const data = await searchApi(options);
|
|
@@ -72,6 +80,18 @@ export async function findTutorialSource(options) {
|
|
|
72
80
|
}
|
|
73
81
|
}
|
|
74
82
|
export async function createDiscussionSource(options, input) {
|
|
83
|
+
if (!shouldUseApi(options)) {
|
|
84
|
+
return offline({
|
|
85
|
+
id: `disc-${Date.now()}`,
|
|
86
|
+
title: input.title,
|
|
87
|
+
content: input.content,
|
|
88
|
+
author: 'you',
|
|
89
|
+
category: normalizeDiscussionCategory(input.category),
|
|
90
|
+
replies: 0,
|
|
91
|
+
stars: 0,
|
|
92
|
+
createdAt: new Date().toISOString().slice(0, 10)
|
|
93
|
+
});
|
|
94
|
+
}
|
|
75
95
|
const payload = await requestJson(options, '/api/discussions', {
|
|
76
96
|
method: 'POST',
|
|
77
97
|
body: JSON.stringify(input)
|
|
@@ -83,6 +103,18 @@ export async function createDiscussionSource(options, input) {
|
|
|
83
103
|
return api(mapDiscussion(discussion), options);
|
|
84
104
|
}
|
|
85
105
|
export async function publishPackageSource(options, input) {
|
|
106
|
+
if (!shouldUseApi(options)) {
|
|
107
|
+
return offline(mapPackage({
|
|
108
|
+
id: input.id || `pkg-${Date.now()}`,
|
|
109
|
+
name: input.name,
|
|
110
|
+
description: input.description,
|
|
111
|
+
version: input.version || '0.0.0',
|
|
112
|
+
category: input.category,
|
|
113
|
+
tags: input.tags,
|
|
114
|
+
repository: input.repository,
|
|
115
|
+
npmPackage: input.npmPackage
|
|
116
|
+
}));
|
|
117
|
+
}
|
|
86
118
|
const payload = await requestJson(options, '/api/packages', {
|
|
87
119
|
method: 'POST',
|
|
88
120
|
body: JSON.stringify({
|
|
@@ -96,6 +128,16 @@ export async function publishPackageSource(options, input) {
|
|
|
96
128
|
return api(mapPackage(payload.package), options);
|
|
97
129
|
}
|
|
98
130
|
export async function publishWorkflowSource(options, input) {
|
|
131
|
+
if (!shouldUseApi(options)) {
|
|
132
|
+
return offline(mapWorkflow({
|
|
133
|
+
id: input.id || `wf-${Date.now()}`,
|
|
134
|
+
name: input.name,
|
|
135
|
+
description: input.description,
|
|
136
|
+
prompt: input.prompt,
|
|
137
|
+
model: input.model,
|
|
138
|
+
tags: input.tags
|
|
139
|
+
}));
|
|
140
|
+
}
|
|
99
141
|
const payload = await requestJson(options, '/api/workflows', {
|
|
100
142
|
method: 'POST',
|
|
101
143
|
body: JSON.stringify(input)
|
|
@@ -106,6 +148,17 @@ export async function publishWorkflowSource(options, input) {
|
|
|
106
148
|
return api(mapWorkflow(payload.workflow), options);
|
|
107
149
|
}
|
|
108
150
|
export async function createReviewSource(options, input) {
|
|
151
|
+
if (!shouldUseApi(options)) {
|
|
152
|
+
return offline({
|
|
153
|
+
id: `rev-${Date.now()}`,
|
|
154
|
+
itemId: input.itemId,
|
|
155
|
+
itemType: input.itemType,
|
|
156
|
+
author: 'you',
|
|
157
|
+
rating: input.rating,
|
|
158
|
+
content: input.content,
|
|
159
|
+
createdAt: new Date().toISOString().slice(0, 10)
|
|
160
|
+
});
|
|
161
|
+
}
|
|
109
162
|
const payload = await requestJson(options, '/api/reviews', {
|
|
110
163
|
method: 'POST',
|
|
111
164
|
body: JSON.stringify(input)
|
|
@@ -116,6 +169,9 @@ export async function createReviewSource(options, input) {
|
|
|
116
169
|
return api(mapReview(payload.review), options);
|
|
117
170
|
}
|
|
118
171
|
export async function listReviewsSource(options, itemId, itemType) {
|
|
172
|
+
if (!shouldUseApi(options)) {
|
|
173
|
+
return offline([]);
|
|
174
|
+
}
|
|
119
175
|
const params = new URLSearchParams();
|
|
120
176
|
if (itemId)
|
|
121
177
|
params.set('item_id', itemId);
|
|
@@ -144,13 +200,11 @@ async function searchApi(options) {
|
|
|
144
200
|
const params = new URLSearchParams({ q: query, limit: String(limit) });
|
|
145
201
|
if (isPackageCategory(category))
|
|
146
202
|
params.set('category', category);
|
|
147
|
-
tasks.push(requestJson(options, `/api/packages?${params}`)
|
|
148
|
-
.then((payload) => (payload.packages || []).map(mapPackage)));
|
|
203
|
+
tasks.push(requestJson(options, `/api/packages?${params}`).then((payload) => (payload.packages || []).map(mapPackage)));
|
|
149
204
|
}
|
|
150
205
|
if (category === 'all' || category === 'workflow') {
|
|
151
206
|
const params = new URLSearchParams({ q: query, limit: String(limit) });
|
|
152
|
-
tasks.push(requestJson(options, `/api/workflows?${params}`)
|
|
153
|
-
.then((payload) => (payload.workflows || []).map(mapWorkflow)));
|
|
207
|
+
tasks.push(requestJson(options, `/api/workflows?${params}`).then((payload) => (payload.workflows || []).map(mapWorkflow)));
|
|
154
208
|
}
|
|
155
209
|
const results = (await Promise.all(tasks)).flat().sort((a, b) => b.stars - a.stars);
|
|
156
210
|
return results.slice(0, limit);
|
|
@@ -178,7 +232,9 @@ async function trendingApi(options) {
|
|
|
178
232
|
const packages = (payload.packages || []).map(mapPackage);
|
|
179
233
|
const workflows = (payload.workflows || []).map(mapWorkflow);
|
|
180
234
|
return [...packages, ...workflows]
|
|
181
|
-
.filter((item) => category === 'all' ||
|
|
235
|
+
.filter((item) => category === 'all' ||
|
|
236
|
+
item.category === category ||
|
|
237
|
+
(category === 'package' && item.kind === 'package'))
|
|
182
238
|
.sort((a, b) => b.stars - a.stars)
|
|
183
239
|
.slice(0, limit);
|
|
184
240
|
}
|
|
@@ -187,12 +243,12 @@ async function discussionsApi(options) {
|
|
|
187
243
|
const params = category ? `?${new URLSearchParams({ category })}` : '';
|
|
188
244
|
const payload = await requestJson(options, `/api/discussions${params}`);
|
|
189
245
|
const query = (options.query || '').trim().toLowerCase();
|
|
190
|
-
return (payload.discussions || [])
|
|
191
|
-
.map(mapDiscussion)
|
|
192
|
-
.filter((discussion) => {
|
|
246
|
+
return (payload.discussions || []).map(mapDiscussion).filter((discussion) => {
|
|
193
247
|
if (!query)
|
|
194
248
|
return true;
|
|
195
|
-
return `${discussion.title} ${discussion.content} ${discussion.author}
|
|
249
|
+
return `${discussion.title} ${discussion.content} ${discussion.author}`
|
|
250
|
+
.toLowerCase()
|
|
251
|
+
.includes(query);
|
|
196
252
|
});
|
|
197
253
|
}
|
|
198
254
|
async function tutorialsApi(options) {
|
|
@@ -206,7 +262,9 @@ async function tutorialsApi(options) {
|
|
|
206
262
|
.filter((tutorial) => {
|
|
207
263
|
if (!query)
|
|
208
264
|
return true;
|
|
209
|
-
return `${tutorial.id} ${tutorial.title} ${tutorial.description} ${tutorial.level}
|
|
265
|
+
return `${tutorial.id} ${tutorial.title} ${tutorial.description} ${tutorial.level}`
|
|
266
|
+
.toLowerCase()
|
|
267
|
+
.includes(query);
|
|
210
268
|
})
|
|
211
269
|
.sort((a, b) => a.title.localeCompare(b.title));
|
|
212
270
|
return limit ? tutorials.slice(0, limit) : tutorials;
|
|
@@ -244,7 +302,7 @@ async function fetchWithTimeout(options, url, init = {}) {
|
|
|
244
302
|
}
|
|
245
303
|
catch (error) {
|
|
246
304
|
if (controller.signal.aborted) {
|
|
247
|
-
throw new Error(`API request timed out after ${timeoutMs}ms
|
|
305
|
+
throw new Error(`API request timed out after ${timeoutMs}ms`, { cause: error });
|
|
248
306
|
}
|
|
249
307
|
throw error;
|
|
250
308
|
}
|
|
@@ -254,7 +312,7 @@ async function fetchWithTimeout(options, url, init = {}) {
|
|
|
254
312
|
}
|
|
255
313
|
async function responseError(response, path) {
|
|
256
314
|
try {
|
|
257
|
-
const body = await response.json();
|
|
315
|
+
const body = (await response.json());
|
|
258
316
|
if (body?.error)
|
|
259
317
|
return `API returned ${response.status} for ${path}: ${body.error}`;
|
|
260
318
|
}
|
|
@@ -328,7 +386,7 @@ function mapTutorial(tutorial) {
|
|
|
328
386
|
}
|
|
329
387
|
function mapReview(value) {
|
|
330
388
|
const review = value;
|
|
331
|
-
const itemType = review.itemType || review.item_type || 'package';
|
|
389
|
+
const itemType = String(review.itemType || review.item_type || 'package');
|
|
332
390
|
return {
|
|
333
391
|
id: String(review.id || ''),
|
|
334
392
|
itemId: String(review.itemId || review.item_id || ''),
|
|
@@ -374,7 +432,10 @@ function parseTags(tags) {
|
|
|
374
432
|
catch {
|
|
375
433
|
// Fall back to comma-separated tags.
|
|
376
434
|
}
|
|
377
|
-
return tags
|
|
435
|
+
return tags
|
|
436
|
+
.split(',')
|
|
437
|
+
.map((tag) => tag.trim())
|
|
438
|
+
.filter(Boolean);
|
|
378
439
|
}
|
|
379
440
|
function parseTutorialSteps(steps) {
|
|
380
441
|
if (Array.isArray(steps))
|
|
@@ -389,10 +450,12 @@ function parseTutorialSteps(steps) {
|
|
|
389
450
|
catch {
|
|
390
451
|
// Fall back to one text step when a backend stores plain text.
|
|
391
452
|
}
|
|
392
|
-
return [
|
|
453
|
+
return [
|
|
454
|
+
{
|
|
393
455
|
title: 'Tutorial',
|
|
394
456
|
content: steps
|
|
395
|
-
}
|
|
457
|
+
}
|
|
458
|
+
];
|
|
396
459
|
}
|
|
397
460
|
function normalizeTutorialStep(step) {
|
|
398
461
|
if (!step || typeof step !== 'object')
|
|
@@ -407,10 +470,15 @@ function normalizeTutorialStep(step) {
|
|
|
407
470
|
}
|
|
408
471
|
function normalizePackageCategory(category) {
|
|
409
472
|
const normalized = normalizeCategory(category || 'mcp');
|
|
410
|
-
return ['mcp', 'prompt', 'workflow', 'skill'].includes(normalized)
|
|
473
|
+
return ['mcp', 'prompt', 'workflow', 'skill'].includes(normalized)
|
|
474
|
+
? normalized
|
|
475
|
+
: 'mcp';
|
|
411
476
|
}
|
|
412
477
|
function normalizeDiscussionCategory(category) {
|
|
413
|
-
if (category === 'question' ||
|
|
478
|
+
if (category === 'question' ||
|
|
479
|
+
category === 'idea' ||
|
|
480
|
+
category === 'showcase' ||
|
|
481
|
+
category === 'discussion') {
|
|
414
482
|
return category;
|
|
415
483
|
}
|
|
416
484
|
return 'discussion';
|