opencode-agora 0.2.2

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 (59) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +309 -0
  3. package/dist/api.d.ts +69 -0
  4. package/dist/api.d.ts.map +1 -0
  5. package/dist/api.js +109 -0
  6. package/dist/api.js.map +1 -0
  7. package/dist/cli/app.d.ts +22 -0
  8. package/dist/cli/app.d.ts.map +1 -0
  9. package/dist/cli/app.js +1111 -0
  10. package/dist/cli/app.js.map +1 -0
  11. package/dist/cli.d.ts +3 -0
  12. package/dist/cli.d.ts.map +1 -0
  13. package/dist/cli.js +10 -0
  14. package/dist/cli.js.map +1 -0
  15. package/dist/config-files.d.ts +27 -0
  16. package/dist/config-files.d.ts.map +1 -0
  17. package/dist/config-files.js +78 -0
  18. package/dist/config-files.js.map +1 -0
  19. package/dist/config.d.ts +24 -0
  20. package/dist/config.d.ts.map +1 -0
  21. package/dist/config.js +73 -0
  22. package/dist/config.js.map +1 -0
  23. package/dist/data.d.ts +8 -0
  24. package/dist/data.d.ts.map +1 -0
  25. package/dist/data.js +1123 -0
  26. package/dist/data.js.map +1 -0
  27. package/dist/format.d.ts +40 -0
  28. package/dist/format.d.ts.map +1 -0
  29. package/dist/format.js +127 -0
  30. package/dist/format.js.map +1 -0
  31. package/dist/index.d.ts +4 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +430 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/init.d.ts +22 -0
  36. package/dist/init.d.ts.map +1 -0
  37. package/dist/init.js +199 -0
  38. package/dist/init.js.map +1 -0
  39. package/dist/live.d.ts +100 -0
  40. package/dist/live.d.ts.map +1 -0
  41. package/dist/live.js +443 -0
  42. package/dist/live.js.map +1 -0
  43. package/dist/logger.d.ts +20 -0
  44. package/dist/logger.d.ts.map +1 -0
  45. package/dist/logger.js +59 -0
  46. package/dist/logger.js.map +1 -0
  47. package/dist/marketplace.d.ts +51 -0
  48. package/dist/marketplace.d.ts.map +1 -0
  49. package/dist/marketplace.js +219 -0
  50. package/dist/marketplace.js.map +1 -0
  51. package/dist/state.d.ts +46 -0
  52. package/dist/state.d.ts.map +1 -0
  53. package/dist/state.js +169 -0
  54. package/dist/state.js.map +1 -0
  55. package/dist/types.d.ts +70 -0
  56. package/dist/types.d.ts.map +1 -0
  57. package/dist/types.js +2 -0
  58. package/dist/types.js.map +1 -0
  59. package/package.json +57 -0
package/dist/init.js ADDED
@@ -0,0 +1,199 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { execSync } from 'node:child_process';
4
+ import { writeOpenCodeConfig } from './config-files.js';
5
+ import { samplePackages } from './data.js';
6
+ const CATEGORY_SERVERS = {
7
+ node: ['mcp-filesystem', 'mcp-github', 'mcp-git', 'mcp-npm-info', 'mcp-sequential-thinking'],
8
+ python: ['mcp-filesystem', 'mcp-github', 'mcp-git', 'mcp-python-repl', 'mcp-sequential-thinking'],
9
+ rust: ['mcp-filesystem', 'mcp-github', 'mcp-git', 'mcp-sequential-thinking'],
10
+ go: ['mcp-filesystem', 'mcp-github', 'mcp-git', 'mcp-sequential-thinking'],
11
+ ruby: ['mcp-filesystem', 'mcp-github', 'mcp-git', 'mcp-sequential-thinking'],
12
+ java: ['mcp-filesystem', 'mcp-github', 'mcp-git', 'mcp-sequential-thinking'],
13
+ };
14
+ const FRAMEWORK_SERVERS = {
15
+ react: ['mcp-shadcn', 'mcp-tailwind', 'mcp-figma'],
16
+ nextjs: ['mcp-shadcn', 'mcp-tailwind', 'mcp-figma', 'mcp-supabase'],
17
+ vue: ['mcp-tailwind', 'mcp-figma'],
18
+ express: ['mcp-postgres', 'mcp-redis'],
19
+ django: ['mcp-postgres', 'mcp-python-repl'],
20
+ flask: ['mcp-postgres', 'mcp-python-repl'],
21
+ rails: ['mcp-postgres', 'mcp-redis'],
22
+ spring: ['mcp-postgres', 'mcp-redis', 'mcp-mysql'],
23
+ };
24
+ export function scanProject(dir) {
25
+ const files = listFiles(dir);
26
+ const deps = readDependencies(dir);
27
+ let type = 'unknown';
28
+ const frameworks = [];
29
+ let hasDocker = false;
30
+ let hasCI = false;
31
+ let hasTests = false;
32
+ let hasDatabase = false;
33
+ if (files.has('package.json')) {
34
+ type = 'node';
35
+ if (deps.includes('react') || deps.includes('next'))
36
+ frameworks.push('react');
37
+ if (deps.includes('next') || deps.includes('next/dist'))
38
+ frameworks.push('nextjs');
39
+ if (deps.includes('vue'))
40
+ frameworks.push('vue');
41
+ if (deps.includes('express'))
42
+ frameworks.push('express');
43
+ }
44
+ else if (files.has('pyproject.toml') || files.has('setup.py') || files.has('requirements.txt')) {
45
+ type = 'python';
46
+ if (deps.includes('django'))
47
+ frameworks.push('django');
48
+ if (deps.includes('flask'))
49
+ frameworks.push('flask');
50
+ }
51
+ else if (files.has('Cargo.toml')) {
52
+ type = 'rust';
53
+ }
54
+ else if (files.has('go.mod')) {
55
+ type = 'go';
56
+ }
57
+ else if (files.has('Gemfile')) {
58
+ type = 'ruby';
59
+ if (deps.includes('rails'))
60
+ frameworks.push('rails');
61
+ }
62
+ else if (files.has('pom.xml') || files.has('build.gradle')) {
63
+ type = 'java';
64
+ if (deps.includes('spring'))
65
+ frameworks.push('spring');
66
+ }
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));
71
+ return { type, frameworks, hasDocker, hasCI, hasTests, hasDatabase, dependencies: deps };
72
+ }
73
+ export function generateInitPlan(scan) {
74
+ const serverIds = new Set();
75
+ const workflowIds = new Set();
76
+ const commands = [];
77
+ const notes = [];
78
+ const defaults = CATEGORY_SERVERS[scan.type] || CATEGORY_SERVERS.unknown;
79
+ defaults.forEach((id) => serverIds.add(id));
80
+ for (const framework of scan.frameworks) {
81
+ const fwServers = FRAMEWORK_SERVERS[framework];
82
+ if (fwServers)
83
+ fwServers.forEach((id) => serverIds.add(id));
84
+ }
85
+ if (scan.hasDatabase) {
86
+ if (scan.dependencies.includes('pg') || scan.dependencies.includes('postgres')) {
87
+ serverIds.add('mcp-postgres');
88
+ }
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
+ if (scan.dependencies.includes('mongodb') || scan.dependencies.includes('mongoose')) {
95
+ serverIds.add('mcp-mongodb');
96
+ }
97
+ if (scan.dependencies.includes('redis') || scan.dependencies.includes('ioredis')) {
98
+ serverIds.add('mcp-redis');
99
+ }
100
+ }
101
+ if (scan.hasDocker)
102
+ serverIds.add('mcp-docker');
103
+ workflowIds.add('wf-code-review-arch');
104
+ if (scan.hasTests)
105
+ workflowIds.add('wf-tdd-cycle');
106
+ if (scan.type === 'node')
107
+ notes.push('Node.js project detected — added npm info, filesystem, and GitHub MCP servers.');
108
+ const notesList = [
109
+ scan.hasTests ? 'Tests detected — TDD workflow recommended.' : '',
110
+ scan.hasDocker ? 'Docker detected — added Docker MCP server.' : '',
111
+ scan.hasDatabase ? 'Database dependencies detected — added relevant database MCP servers.' : '',
112
+ scan.frameworks.length > 0 ? `Framework(s) detected: ${scan.frameworks.join(', ')}.` : '',
113
+ ].filter(Boolean);
114
+ const servers = resolveServers(Array.from(serverIds));
115
+ for (const server of servers) {
116
+ if (server.npmPackage) {
117
+ commands.push(`npm install -g ${server.npmPackage}`);
118
+ }
119
+ }
120
+ const mcpServers = {};
121
+ for (const server of servers) {
122
+ if (server.npmPackage) {
123
+ mcpServers[server.id] = {
124
+ command: 'npx',
125
+ args: [server.npmPackage],
126
+ env: {},
127
+ };
128
+ }
129
+ }
130
+ notes.push(...notesList);
131
+ return {
132
+ config: {
133
+ $schema: 'https://opencode.ai/config.json',
134
+ mcpServers,
135
+ plugins: ['opencode-agora'],
136
+ },
137
+ servers: Array.from(serverIds),
138
+ workflows: Array.from(workflowIds),
139
+ commands,
140
+ notes,
141
+ };
142
+ }
143
+ export function applyInitPlan(plan, configPath) {
144
+ writeOpenCodeConfig(configPath, plan.config);
145
+ }
146
+ export function runCommands(commands) {
147
+ for (const cmd of commands) {
148
+ try {
149
+ execSync(cmd, { stdio: 'pipe', timeout: 120000 });
150
+ }
151
+ catch {
152
+ // Best effort — some packages may already be installed
153
+ }
154
+ }
155
+ }
156
+ function listFiles(dir) {
157
+ const files = new Set();
158
+ const candidates = [
159
+ 'package.json',
160
+ 'pyproject.toml', 'setup.py', 'requirements.txt',
161
+ 'Cargo.toml',
162
+ 'go.mod',
163
+ 'Gemfile',
164
+ 'pom.xml', 'build.gradle',
165
+ 'Dockerfile', 'docker-compose.yml', '.dockerignore',
166
+ '.github/workflows', '.gitlab-ci.yml', 'Jenkinsfile',
167
+ ];
168
+ for (const file of candidates) {
169
+ if (existsSync(join(dir, file))) {
170
+ files.add(file);
171
+ }
172
+ }
173
+ const testDirs = ['test', 'tests', '__tests__', 'spec'];
174
+ for (const d of testDirs) {
175
+ if (existsSync(join(dir, d)))
176
+ files.add(d);
177
+ }
178
+ return files;
179
+ }
180
+ function readDependencies(dir) {
181
+ const pkgPath = join(dir, 'package.json');
182
+ if (existsSync(pkgPath)) {
183
+ try {
184
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf8'));
185
+ const all = { ...pkg.dependencies, ...pkg.devDependencies };
186
+ return Object.keys(all || {});
187
+ }
188
+ catch {
189
+ // ignore
190
+ }
191
+ }
192
+ return [];
193
+ }
194
+ function resolveServers(ids) {
195
+ return ids
196
+ .map((id) => samplePackages.find((p) => p.id === id && p.category === 'mcp'))
197
+ .filter(Boolean);
198
+ }
199
+ //# sourceMappingURL=init.js.map
@@ -0,0 +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,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAoB3C,MAAM,gBAAgB,GAA6B;IACjD,IAAI,EAAE,CAAC,gBAAgB,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,yBAAyB,CAAC;IAC5F,MAAM,EAAE,CAAC,gBAAgB,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,yBAAyB,CAAC;IACjG,IAAI,EAAE,CAAC,gBAAgB,EAAE,YAAY,EAAE,SAAS,EAAE,yBAAyB,CAAC;IAC5E,EAAE,EAAE,CAAC,gBAAgB,EAAE,YAAY,EAAE,SAAS,EAAE,yBAAyB,CAAC;IAC1E,IAAI,EAAE,CAAC,gBAAgB,EAAE,YAAY,EAAE,SAAS,EAAE,yBAAyB,CAAC;IAC5E,IAAI,EAAE,CAAC,gBAAgB,EAAE,YAAY,EAAE,SAAS,EAAE,yBAAyB,CAAC;CAC7E,CAAC;AAEF,MAAM,iBAAiB,GAA6B;IAClD,KAAK,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,WAAW,CAAC;IAClD,MAAM,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,CAAC;IACnE,GAAG,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC;IAClC,OAAO,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC;IACtC,MAAM,EAAE,CAAC,cAAc,EAAE,iBAAiB,CAAC;IAC3C,KAAK,EAAE,CAAC,cAAc,EAAE,iBAAiB,CAAC;IAC1C,KAAK,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC;IACpC,MAAM,EAAE,CAAC,cAAc,EAAE,WAAW,EAAE,WAAW,CAAC;CACnD,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAEnC,IAAI,IAAI,GAAwB,SAAS,CAAC;IAC1C,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,IAAI,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;QAC9B,IAAI,GAAG,MAAM,CAAC;QACd,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9E,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnF,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;SAAM,IAAI,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACjG,IAAI,GAAG,QAAQ,CAAC;QAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;SAAM,IAAI,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QACnC,IAAI,GAAG,MAAM,CAAC;IAChB,CAAC;SAAM,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;SAAM,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,IAAI,GAAG,MAAM,CAAC;QACd,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;SAAM,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;QAC7D,IAAI,GAAG,MAAM,CAAC;QACd,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACrG,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAClG,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClG,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtG,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAiB;IAChD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,OAAO,CAAC;IACzE,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5C,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,SAAS;YAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/E,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACzF,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACpF,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACjF,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,SAAS;QAAE,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAChD,WAAW,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAEvC,IAAI,IAAI,CAAC,QAAQ;QAAE,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACnD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;IAEvH,MAAM,SAAS,GAAG;QAChB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAAC,EAAE;QACjE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAAC,EAAE;QAClE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,uEAAuE,CAAC,CAAC,CAAC,EAAE;QAC/F,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,0BAA0B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;KAC1F,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAElB,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAEtD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAiC,EAAE,CAAC;IACpD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG;gBACtB,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;gBACzB,GAAG,EAAE,EAAE;aACR,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IAEzB,OAAO;QACL,MAAM,EAAE;YACN,OAAO,EAAE,iCAAiC;YAC1C,UAAU;YACV,OAAO,EAAE,CAAC,gBAAgB,CAAC;SAC5B;QACD,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;QAC9B,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;QAClC,QAAQ;QACR,KAAK;KACN,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAc,EAAE,UAAkB;IAC9D,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAkB;IAC5C,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,uDAAuD;QACzD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,MAAM,UAAU,GAAG;QACjB,cAAc;QACd,gBAAgB,EAAE,UAAU,EAAE,kBAAkB;QAChD,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,SAAS,EAAE,cAAc;QACzB,YAAY,EAAE,oBAAoB,EAAE,eAAe;QACnD,mBAAmB,EAAE,gBAAgB,EAAE,aAAa;KACrD,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YAChC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IACxD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC1C,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;YACtD,MAAM,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;YAC5D,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,cAAc,CAAC,GAAa;IACnC,OAAO,GAAG;SACP,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC;SAC5E,MAAM,CAAC,OAAO,CAA0B,CAAC;AAC9C,CAAC"}
package/dist/live.d.ts ADDED
@@ -0,0 +1,100 @@
1
+ import type { Discussion, Tutorial } from './types.js';
2
+ import { type MarketplaceItem } from './marketplace.js';
3
+ export type SourceName = 'api' | 'offline';
4
+ export type FetchLike = (input: string | URL, init?: RequestInit) => Promise<Response>;
5
+ export interface SourceOptions {
6
+ useApi?: boolean;
7
+ apiUrl?: string;
8
+ token?: string;
9
+ fetcher?: FetchLike;
10
+ timeoutMs?: number;
11
+ }
12
+ export interface SearchSourceOptions extends SourceOptions {
13
+ query?: string;
14
+ category?: string;
15
+ limit?: number;
16
+ }
17
+ export interface FindSourceOptions extends SourceOptions {
18
+ id: string;
19
+ type?: string;
20
+ }
21
+ export interface DiscussionSourceOptions extends SourceOptions {
22
+ category?: string;
23
+ query?: string;
24
+ }
25
+ export interface TutorialSourceOptions extends SourceOptions {
26
+ query?: string;
27
+ level?: string;
28
+ limit?: number;
29
+ }
30
+ export interface FindTutorialSourceOptions extends SourceOptions {
31
+ id: string;
32
+ }
33
+ export interface SourceResult<T> {
34
+ source: SourceName;
35
+ data: T;
36
+ apiUrl?: string;
37
+ fallbackReason?: string;
38
+ }
39
+ export interface PublishPackageInput {
40
+ id?: string;
41
+ name: string;
42
+ description: string;
43
+ version?: string;
44
+ category?: string;
45
+ tags?: string[];
46
+ repository?: string;
47
+ npmPackage?: string;
48
+ }
49
+ export interface PublishWorkflowInput {
50
+ id?: string;
51
+ name: string;
52
+ description: string;
53
+ prompt: string;
54
+ model?: string;
55
+ tags?: string[];
56
+ }
57
+ export interface ReviewInput {
58
+ itemId: string;
59
+ itemType: 'package' | 'workflow';
60
+ rating: number;
61
+ content: string;
62
+ }
63
+ export interface DiscussionInput {
64
+ title: string;
65
+ content: string;
66
+ category?: string;
67
+ }
68
+ export interface ApiReview {
69
+ id: string;
70
+ itemId: string;
71
+ itemType: 'package' | 'workflow';
72
+ author: string;
73
+ rating: number;
74
+ content: string;
75
+ createdAt: string;
76
+ }
77
+ export interface ApiProfile {
78
+ id: string;
79
+ username: string;
80
+ displayName: string;
81
+ bio?: string;
82
+ avatarUrl?: string;
83
+ packages: number;
84
+ workflows: number;
85
+ discussions: number;
86
+ joinedAt: string;
87
+ }
88
+ export declare function searchMarketplaceSource(options?: SearchSourceOptions): Promise<SourceResult<MarketplaceItem[]>>;
89
+ export declare function findMarketplaceSource(options: FindSourceOptions): Promise<SourceResult<MarketplaceItem | null>>;
90
+ export declare function trendingMarketplaceSource(options?: SearchSourceOptions): Promise<SourceResult<MarketplaceItem[]>>;
91
+ export declare function discussionsSource(options?: DiscussionSourceOptions): Promise<SourceResult<Discussion[]>>;
92
+ export declare function tutorialsSource(options?: TutorialSourceOptions): Promise<SourceResult<Tutorial[]>>;
93
+ export declare function findTutorialSource(options: FindTutorialSourceOptions): Promise<SourceResult<Tutorial | null>>;
94
+ export declare function createDiscussionSource(options: SourceOptions, input: DiscussionInput): Promise<SourceResult<Discussion>>;
95
+ export declare function publishPackageSource(options: SourceOptions, input: PublishPackageInput): Promise<SourceResult<MarketplaceItem>>;
96
+ export declare function publishWorkflowSource(options: SourceOptions, input: PublishWorkflowInput): Promise<SourceResult<MarketplaceItem>>;
97
+ export declare function createReviewSource(options: SourceOptions, input: ReviewInput): Promise<SourceResult<ApiReview>>;
98
+ export declare function listReviewsSource(options: SourceOptions, itemId?: string, itemType?: string): Promise<SourceResult<ApiReview[]>>;
99
+ export declare function profileSource(options: SourceOptions, username: string): Promise<SourceResult<ApiProfile | null>>;
100
+ //# sourceMappingURL=live.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"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"}