@paparats/cli 0.1.10 → 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.
@@ -1,4 +1,6 @@
1
1
  import { Command } from 'commander';
2
+ import { generateDockerCompose, generateServerCompose } from '../docker-compose-generator.js';
3
+ import type { OllamaMode, InstallMode } from '../docker-compose-generator.js';
2
4
  export declare function commandExists(cmd: string): boolean;
3
5
  export declare function getDockerComposeCommand(): string;
4
6
  export declare function ollamaModelExists(modelName: string): boolean;
@@ -12,9 +14,19 @@ export interface UpsertMcpDeps {
12
14
  }
13
15
  export declare function upsertMcpServer(filePath: string, serverName: string, serverConfig: Record<string, unknown>, deps?: UpsertMcpDeps): 'added' | 'updated' | 'unchanged';
14
16
  export interface InstallOptions {
17
+ mode?: InstallMode;
18
+ ollamaMode?: OllamaMode;
15
19
  skipDocker?: boolean;
16
20
  skipOllama?: boolean;
17
21
  verbose?: boolean;
22
+ /** Server mode: comma-separated repos */
23
+ repos?: string;
24
+ /** Server mode: GitHub token for private repos */
25
+ githubToken?: string;
26
+ /** Server mode: cron expression */
27
+ cron?: string;
28
+ /** Support mode: server URL */
29
+ server?: string;
18
30
  }
19
31
  export interface InstallDeps {
20
32
  commandExists?: (cmd: string) => boolean;
@@ -26,7 +38,8 @@ export interface InstallDeps {
26
38
  isOllamaRunning?: () => Promise<boolean>;
27
39
  waitForHealth?: (url: string, label: string) => Promise<boolean>;
28
40
  downloadFile?: (url: string, dest: string, signal?: AbortSignal) => Promise<void>;
29
- findTemplatePath?: () => string;
41
+ generateDockerCompose?: typeof generateDockerCompose;
42
+ generateServerCompose?: typeof generateServerCompose;
30
43
  mkdirSync?: (dir: string) => void;
31
44
  copyFileSync?: (src: string, dest: string) => void;
32
45
  readFileSync?: (path: string, encoding: 'utf8') => string;
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { execSync, spawn } from 'child_process';
6
6
  import chalk from 'chalk';
7
7
  import ora from 'ora';
8
8
  import { createTimeoutSignal } from '../abort.js';
9
+ import { generateDockerCompose, generateServerCompose } from '../docker-compose-generator.js';
9
10
  const PAPARATS_HOME = path.join(os.homedir(), '.paparats');
10
11
  const MODELS_DIR = path.join(PAPARATS_HOME, 'models');
11
12
  const OLLAMA_MODEL_NAME = 'jina-code-embeddings';
@@ -109,18 +110,6 @@ async function downloadFile(url, dest, signal) {
109
110
  const buffer = await response.arrayBuffer();
110
111
  fs.writeFileSync(dest, Buffer.from(buffer));
111
112
  }
112
- function findTemplatePath() {
113
- const templateLocations = [
114
- path.join(import.meta.dirname, '../../node_modules/@paparats/server/docker-compose.template.yml'),
115
- path.join(import.meta.dirname, '../../../server/docker-compose.template.yml'),
116
- path.join(import.meta.dirname, '../../../../packages/server/docker-compose.template.yml'),
117
- ];
118
- for (const loc of templateLocations) {
119
- if (fs.existsSync(loc))
120
- return loc;
121
- }
122
- throw new Error('Could not find docker-compose.template.yml. ' + 'Looked in: ' + templateLocations.join(', '));
123
- }
124
113
  export function upsertMcpServer(filePath, serverName, serverConfig, deps) {
125
114
  const readFile = deps?.readFileSync ?? ((p) => fs.readFileSync(p, 'utf8'));
126
115
  const writeFile = deps?.writeFileSync ?? ((p, d) => fs.writeFileSync(p, d));
@@ -164,24 +153,12 @@ export function upsertMcpServer(filePath, serverName, serverConfig, deps) {
164
153
  writeFile(filePath, JSON.stringify(data, null, 2) + '\n');
165
154
  return 'updated';
166
155
  }
167
- export async function runInstall(opts, deps) {
168
- const cmdExists = deps?.commandExists ?? commandExists;
169
- const getCompose = deps?.getDockerComposeCommand ?? getDockerComposeCommand;
170
- const modelExists = deps?.ollamaModelExists ?? ollamaModelExists;
171
- const ollamaRunning = deps?.isOllamaRunning ?? isOllamaRunning;
172
- const waitHealth = deps?.waitForHealth ?? waitForHealth;
173
- const download = deps?.downloadFile ?? downloadFile;
174
- const findTemplate = deps?.findTemplatePath ?? findTemplatePath;
175
- const mkdir = deps?.mkdirSync ?? ((p) => fs.mkdirSync(p, { recursive: true }));
176
- const copyFile = deps?.copyFileSync ?? fs.copyFileSync.bind(fs);
177
- const readFile = deps?.readFileSync ?? ((p) => fs.readFileSync(p, 'utf8'));
178
- const writeFile = deps?.writeFileSync ?? fs.writeFileSync.bind(fs);
179
- const exists = deps?.existsSync ?? fs.existsSync.bind(fs);
180
- const unlink = deps?.unlinkSync ?? fs.unlinkSync.bind(fs);
181
- const signal = deps?.signal;
156
+ // ── Developer mode ──────────────────────────────────────────────────────────
157
+ async function runDeveloperInstall(opts, deps) {
158
+ const ollamaMode = opts.ollamaMode ?? 'local';
182
159
  const cleanupTasks = [];
183
- if (signal) {
184
- signal.addEventListener('abort', () => {
160
+ if (deps.signal) {
161
+ deps.signal.addEventListener('abort', () => {
185
162
  console.log(chalk.yellow('\nInstallation cancelled'));
186
163
  for (const task of cleanupTasks) {
187
164
  try {
@@ -194,25 +171,29 @@ export async function runInstall(opts, deps) {
194
171
  process.exit(130);
195
172
  });
196
173
  }
197
- console.log(chalk.bold('\npaparats install\n'));
174
+ // Check prerequisites
198
175
  const checks = [
199
176
  { cmd: 'docker', name: 'Docker', install: 'https://docker.com' },
200
- { cmd: 'ollama', name: 'Ollama', install: 'https://ollama.com' },
201
177
  ];
178
+ if (ollamaMode === 'local') {
179
+ checks.push({ cmd: 'ollama', name: 'Ollama', install: 'https://ollama.com' });
180
+ }
202
181
  for (const check of checks) {
203
- if (!cmdExists(check.cmd)) {
182
+ if (!deps.commandExists(check.cmd)) {
204
183
  throw new Error(`${check.name} not found. Install from ${check.install}`);
205
184
  }
206
185
  }
207
- console.log(chalk.green('✓ Prerequisites found (Docker, Ollama)\n'));
186
+ const prereqNames = checks.map((c) => c.name).join(', ');
187
+ console.log(chalk.green(`\u2713 Prerequisites found (${prereqNames})\n`));
188
+ // Docker setup
208
189
  if (!opts.skipDocker) {
209
190
  const spinner = ora('Setting up Docker containers...').start();
210
- mkdir(PAPARATS_HOME);
211
- const templatePath = findTemplate();
191
+ deps.mkdirSync(PAPARATS_HOME);
192
+ const composeContent = deps.generateDockerCompose({ ollamaMode });
212
193
  const composeDest = path.join(PAPARATS_HOME, 'docker-compose.yml');
213
- copyFile(templatePath, composeDest);
194
+ deps.writeFileSync(composeDest, composeContent);
214
195
  spinner.text = 'Starting Docker containers...';
215
- const composeCmd = getCompose();
196
+ const composeCmd = deps.getDockerComposeCommand();
216
197
  const fullCmd = `${composeCmd} -f "${composeDest}" up -d`;
217
198
  try {
218
199
  execSync(fullCmd, {
@@ -225,45 +206,46 @@ export async function runInstall(opts, deps) {
225
206
  spinner.fail('Failed to start Docker containers');
226
207
  throw err;
227
208
  }
228
- const qdrantReady = await waitHealth('http://localhost:6333/healthz', 'Qdrant');
209
+ const qdrantReady = await deps.waitForHealth('http://localhost:6333/healthz', 'Qdrant');
229
210
  if (!qdrantReady)
230
211
  throw new Error('Qdrant failed to start');
231
- const mcpReady = await waitHealth('http://localhost:9876/health', 'MCP server');
212
+ const mcpReady = await deps.waitForHealth('http://localhost:9876/health', 'MCP server');
232
213
  if (!mcpReady)
233
214
  throw new Error('MCP server failed to start');
234
215
  }
235
- if (!opts.skipOllama) {
236
- if (modelExists(OLLAMA_MODEL_NAME)) {
237
- console.log(chalk.green(`✓ Ollama model ${OLLAMA_MODEL_NAME} already exists\n`));
216
+ // Ollama setup (local mode only)
217
+ if (!opts.skipOllama && ollamaMode === 'local') {
218
+ if (deps.ollamaModelExists(OLLAMA_MODEL_NAME)) {
219
+ console.log(chalk.green(`\u2713 Ollama model ${OLLAMA_MODEL_NAME} already exists\n`));
238
220
  }
239
221
  else {
240
- if (!(await ollamaRunning())) {
222
+ if (!(await deps.isOllamaRunning())) {
241
223
  console.log(chalk.dim('Starting Ollama...'));
242
224
  spawn('ollama', ['serve'], { stdio: 'ignore', detached: true }).unref();
243
225
  await new Promise((r) => setTimeout(r, 3000));
244
- if (!(await ollamaRunning())) {
226
+ if (!(await deps.isOllamaRunning())) {
245
227
  throw new Error('Failed to start Ollama. Please start it manually: ollama serve');
246
228
  }
247
229
  }
248
- if (exists(GGUF_FILE)) {
230
+ if (deps.existsSync(GGUF_FILE)) {
249
231
  console.log(chalk.dim(`GGUF already downloaded at ${GGUF_FILE}`));
250
232
  }
251
233
  else {
252
- if (!cmdExists('curl')) {
234
+ if (!deps.commandExists('curl')) {
253
235
  console.log(chalk.yellow('Note: curl not found. Using Node fetch (slower for large files). Install curl for better download performance.'));
254
236
  }
255
237
  console.log(chalk.bold('Downloading jina-code-embeddings (~1.65 GB)...'));
256
- mkdir(MODELS_DIR);
238
+ deps.mkdirSync(MODELS_DIR);
257
239
  cleanupTasks.push(() => {
258
- if (exists(GGUF_FILE))
259
- unlink(GGUF_FILE);
240
+ if (deps.existsSync(GGUF_FILE))
241
+ deps.unlinkSync(GGUF_FILE);
260
242
  });
261
- await download(GGUF_URL, GGUF_FILE, signal);
243
+ await deps.downloadFile(GGUF_URL, GGUF_FILE, deps.signal);
262
244
  cleanupTasks.pop();
263
- console.log(chalk.green(' Download complete'));
245
+ console.log(chalk.green('\u2713 Download complete'));
264
246
  }
265
247
  const modelfilePath = path.join(MODELS_DIR, 'Modelfile');
266
- writeFile(modelfilePath, `FROM ${GGUF_FILE}\n`);
248
+ deps.writeFileSync(modelfilePath, `FROM ${GGUF_FILE}\n`);
267
249
  const spinner = ora('Registering model in Ollama...').start();
268
250
  try {
269
251
  execSync(`ollama create ${OLLAMA_MODEL_NAME} -f "${modelfilePath}"`, {
@@ -279,42 +261,201 @@ export async function runInstall(opts, deps) {
279
261
  }
280
262
  }
281
263
  // Auto-configure Cursor MCP
264
+ configureCursorMcp('http://localhost:9876/mcp', deps);
265
+ console.log(chalk.bold.green('\n\u2713 Installation complete!\n'));
266
+ console.log('Next steps:');
267
+ console.log(chalk.dim(' 1. cd <your-project>'));
268
+ console.log(chalk.dim(' 2. paparats init'));
269
+ console.log(chalk.dim(' 3. paparats index'));
270
+ console.log(chalk.dim(' 4. Connect your IDE (see README)\n'));
271
+ }
272
+ // ── Server mode ─────────────────────────────────────────────────────────────
273
+ async function runServerInstall(opts, deps) {
274
+ // Check Docker only
275
+ if (!deps.commandExists('docker')) {
276
+ throw new Error('Docker not found. Install from https://docker.com');
277
+ }
278
+ console.log(chalk.green('\u2713 Prerequisites found (Docker)\n'));
279
+ deps.mkdirSync(PAPARATS_HOME);
280
+ // Generate docker-compose with all services
281
+ const composeContent = deps.generateServerCompose({
282
+ ollamaMode: 'docker',
283
+ repos: opts.repos,
284
+ githubToken: opts.githubToken,
285
+ cron: opts.cron,
286
+ });
287
+ const composeDest = path.join(PAPARATS_HOME, 'docker-compose.yml');
288
+ deps.writeFileSync(composeDest, composeContent);
289
+ // Create .env file for docker-compose variable substitution
290
+ const envLines = [];
291
+ if (opts.repos)
292
+ envLines.push(`REPOS=${opts.repos}`);
293
+ if (opts.githubToken)
294
+ envLines.push(`GITHUB_TOKEN=${opts.githubToken}`);
295
+ if (opts.cron)
296
+ envLines.push(`CRON=${opts.cron}`);
297
+ if (envLines.length > 0) {
298
+ const envPath = path.join(PAPARATS_HOME, '.env');
299
+ deps.writeFileSync(envPath, envLines.join('\n') + '\n');
300
+ console.log(chalk.dim(`Created ${envPath}`));
301
+ }
302
+ // Start containers
303
+ const spinner = ora('Starting Docker containers (this may take a while on first run)...').start();
304
+ const composeCmd = deps.getDockerComposeCommand();
305
+ const fullCmd = `${composeCmd} -f "${composeDest}" up -d`;
306
+ try {
307
+ execSync(fullCmd, {
308
+ stdio: opts.verbose ? 'inherit' : ['pipe', 'pipe', 'pipe'],
309
+ timeout: 300_000,
310
+ });
311
+ spinner.succeed('Docker containers started');
312
+ }
313
+ catch (err) {
314
+ spinner.fail('Failed to start Docker containers');
315
+ throw err;
316
+ }
317
+ const qdrantReady = await deps.waitForHealth('http://localhost:6333/healthz', 'Qdrant');
318
+ if (!qdrantReady)
319
+ throw new Error('Qdrant failed to start');
320
+ const mcpReady = await deps.waitForHealth('http://localhost:9876/health', 'MCP server');
321
+ if (!mcpReady)
322
+ throw new Error('MCP server failed to start');
323
+ console.log(chalk.bold.green('\n\u2713 Server installation complete!\n'));
324
+ console.log('MCP endpoints:');
325
+ console.log(chalk.dim(' Coding: http://localhost:9876/mcp'));
326
+ console.log(chalk.dim(' Support: http://localhost:9876/support/mcp'));
327
+ console.log(chalk.dim(' Health: http://localhost:9876/health'));
328
+ if (opts.repos) {
329
+ console.log(chalk.dim(`\nIndexer will process repos on schedule: ${opts.cron ?? '0 */6 * * *'}`));
330
+ console.log(chalk.dim(' Trigger now: curl -X POST http://localhost:9877/trigger'));
331
+ console.log(chalk.dim(' Status: curl http://localhost:9877/health'));
332
+ }
333
+ console.log('');
334
+ }
335
+ // ── Support mode ────────────────────────────────────────────────────────────
336
+ async function runSupportInstall(opts, deps) {
337
+ const serverUrl = opts.server ?? 'http://localhost:9876';
338
+ // Verify server is reachable
339
+ const healthUrl = `${serverUrl}/health`;
340
+ console.log(chalk.dim(`Checking server at ${healthUrl}...`));
341
+ const reachable = await deps.waitForHealth(healthUrl, 'MCP server');
342
+ if (!reachable) {
343
+ throw new Error(`Server not reachable at ${serverUrl}. Is the server running?`);
344
+ }
345
+ const mcpUrl = `${serverUrl}/support/mcp`;
346
+ // Configure Cursor MCP (support endpoint)
347
+ configureCursorMcp(mcpUrl, deps, 'paparats-support');
348
+ // Configure Claude Code MCP
349
+ const claudeConfigDir = path.join(os.homedir(), '.claude');
350
+ if (deps.existsSync(claudeConfigDir)) {
351
+ const claudeMcpPath = path.join(claudeConfigDir, 'mcp.json');
352
+ const result = upsertMcpServer(claudeMcpPath, 'paparats-support', { type: 'http', url: mcpUrl }, {
353
+ readFileSync: deps.readFileSync,
354
+ writeFileSync: deps.writeFileSync,
355
+ existsSync: deps.existsSync,
356
+ mkdirSync: deps.mkdirSync,
357
+ });
358
+ if (result === 'unchanged') {
359
+ console.log(chalk.green('\u2713 Claude Code MCP already configured'));
360
+ }
361
+ else {
362
+ console.log(chalk.green('\u2713 Claude Code MCP configured'));
363
+ }
364
+ }
365
+ console.log(chalk.bold.green('\n\u2713 Support setup complete!\n'));
366
+ console.log('Configured endpoint:');
367
+ console.log(chalk.dim(` Support MCP: ${mcpUrl}\n`));
368
+ console.log('Available tools: search_code, get_chunk, find_usages, health_check,');
369
+ console.log(' get_chunk_meta, search_changes, explain_feature, recent_changes, impact_analysis\n');
370
+ }
371
+ // ── Helpers ─────────────────────────────────────────────────────────────────
372
+ function configureCursorMcp(mcpUrl, deps, serverName = 'paparats') {
373
+ const exists = deps.existsSync ?? ((p) => fs.existsSync(p));
374
+ const readFile = deps.readFileSync ?? ((p) => fs.readFileSync(p, 'utf8'));
375
+ const writeFile = deps.writeFileSync ?? fs.writeFileSync.bind(fs);
376
+ const mkdir = deps.mkdirSync ?? ((p) => fs.mkdirSync(p, { recursive: true }));
282
377
  const cursorDir = path.join(os.homedir(), '.cursor');
283
378
  if (exists(cursorDir)) {
284
379
  const cursorMcpPath = path.join(cursorDir, 'mcp.json');
285
- const result = upsertMcpServer(cursorMcpPath, 'paparats', { type: 'http', url: 'http://localhost:9876/mcp' }, {
286
- readFileSync: readFile,
287
- writeFileSync: writeFile,
288
- existsSync: exists,
289
- mkdirSync: mkdir,
290
- });
380
+ const result = upsertMcpServer(cursorMcpPath, serverName, { type: 'http', url: mcpUrl }, { readFileSync: readFile, writeFileSync: writeFile, existsSync: exists, mkdirSync: mkdir });
291
381
  if (result === 'unchanged') {
292
- console.log(chalk.green(' Cursor MCP already configured'));
382
+ console.log(chalk.green('\u2713 Cursor MCP already configured'));
293
383
  }
294
384
  else {
295
- console.log(chalk.green(' Cursor MCP configured'));
385
+ console.log(chalk.green('\u2713 Cursor MCP configured'));
296
386
  }
297
387
  }
298
388
  else {
299
389
  console.log(chalk.dim('Cursor not detected, skipping MCP config'));
300
390
  }
301
- console.log(chalk.bold.green('\n✓ Installation complete!\n'));
302
- console.log('Next steps:');
303
- console.log(chalk.dim(' 1. cd <your-project>'));
304
- console.log(chalk.dim(' 2. paparats init'));
305
- console.log(chalk.dim(' 3. paparats index'));
306
- console.log(chalk.dim(' 4. Connect your IDE (see README)\n'));
391
+ }
392
+ // ── Main entry point ────────────────────────────────────────────────────────
393
+ export async function runInstall(opts, deps) {
394
+ const cmdExists = deps?.commandExists ?? commandExists;
395
+ const getCompose = deps?.getDockerComposeCommand ?? getDockerComposeCommand;
396
+ const modelExists = deps?.ollamaModelExists ?? ollamaModelExists;
397
+ const ollamaRunning = deps?.isOllamaRunning ?? isOllamaRunning;
398
+ const waitHealth = deps?.waitForHealth ?? waitForHealth;
399
+ const download = deps?.downloadFile ?? downloadFile;
400
+ const genCompose = deps?.generateDockerCompose ?? generateDockerCompose;
401
+ const genServerCompose = deps?.generateServerCompose ?? generateServerCompose;
402
+ const mkdir = deps?.mkdirSync ?? ((p) => fs.mkdirSync(p, { recursive: true }));
403
+ const readFile = deps?.readFileSync ?? ((p) => fs.readFileSync(p, 'utf8'));
404
+ const writeFile = deps?.writeFileSync ?? fs.writeFileSync.bind(fs);
405
+ const exists = deps?.existsSync ?? fs.existsSync.bind(fs);
406
+ const unlink = deps?.unlinkSync ?? fs.unlinkSync.bind(fs);
407
+ const signal = deps?.signal;
408
+ const mode = opts.mode ?? 'developer';
409
+ console.log(chalk.bold(`\npaparats install --mode ${mode}\n`));
410
+ const resolvedDeps = {
411
+ commandExists: cmdExists,
412
+ getDockerComposeCommand: getCompose,
413
+ ollamaModelExists: modelExists,
414
+ isOllamaRunning: ollamaRunning,
415
+ waitForHealth: waitHealth,
416
+ downloadFile: download,
417
+ generateDockerCompose: genCompose,
418
+ generateServerCompose: genServerCompose,
419
+ mkdirSync: mkdir,
420
+ readFileSync: readFile,
421
+ writeFileSync: writeFile,
422
+ existsSync: exists,
423
+ unlinkSync: unlink,
424
+ signal,
425
+ };
426
+ switch (mode) {
427
+ case 'developer':
428
+ await runDeveloperInstall(opts, resolvedDeps);
429
+ break;
430
+ case 'server':
431
+ await runServerInstall(opts, resolvedDeps);
432
+ break;
433
+ case 'support':
434
+ await runSupportInstall(opts, resolvedDeps);
435
+ break;
436
+ default:
437
+ throw new Error(`Unknown install mode: ${mode}`);
438
+ }
307
439
  }
308
440
  export const installCommand = new Command('install')
309
- .description('Set up Docker containers (Qdrant + MCP server) and Ollama embedding model')
310
- .option('--skip-docker', 'Skip Docker setup')
311
- .option('--skip-ollama', 'Skip Ollama model setup')
441
+ .description('Set up Paparats — Docker containers, Ollama model, and MCP configuration')
442
+ .option('--mode <mode>', 'Install mode: developer, server, or support', 'developer')
443
+ .option('--ollama-mode <mode>', 'Ollama deployment: docker or local (developer mode)', 'local')
444
+ .option('--skip-docker', 'Skip Docker setup (developer mode)')
445
+ .option('--skip-ollama', 'Skip Ollama model setup (developer mode)')
446
+ .option('--repos <repos>', 'Comma-separated repos to index (server mode)')
447
+ .option('--github-token <token>', 'GitHub token for private repos (server mode)')
448
+ .option('--cron <expression>', 'Cron schedule for indexing (server mode)')
449
+ .option('--server <url>', 'Server URL to connect to (support mode)', 'http://localhost:9876')
312
450
  .option('-v, --verbose', 'Show detailed output')
313
451
  .action(async (opts) => {
314
452
  const controller = new AbortController();
315
453
  process.on('SIGINT', () => controller.abort());
316
454
  try {
317
- await runInstall(opts, { signal: controller.signal });
455
+ await runInstall({
456
+ ...opts,
457
+ ollamaMode: opts.ollamaMode ?? 'local',
458
+ }, { signal: controller.signal });
318
459
  }
319
460
  catch (err) {
320
461
  console.error(chalk.red(err.message));
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export type OllamaMode = 'docker' | 'local';
2
+ export type InstallMode = 'developer' | 'server' | 'support';
3
+ export interface DockerComposeConfig {
4
+ ollamaMode: OllamaMode;
5
+ ports?: {
6
+ qdrant?: number;
7
+ paparats?: number;
8
+ ollama?: number;
9
+ };
10
+ }
11
+ export interface ServerComposeConfig extends DockerComposeConfig {
12
+ repos?: string;
13
+ githubToken?: string;
14
+ cron?: string;
15
+ indexerPort?: number;
16
+ }
17
+ /**
18
+ * Generate docker-compose YAML for developer mode (qdrant + paparats + optional ollama).
19
+ */
20
+ export declare function generateDockerCompose(config: DockerComposeConfig): string;
21
+ /**
22
+ * Generate docker-compose YAML for server mode (qdrant + paparats + ollama + indexer).
23
+ */
24
+ export declare function generateServerCompose(config: ServerComposeConfig): string;
25
+ //# sourceMappingURL=docker-compose-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker-compose-generator.d.ts","sourceRoot":"","sources":["../src/docker-compose-generator.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;AAC5C,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE7D,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,CAAC,EAAE;QACN,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAsID;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAkCzE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CA8BzE"}
@@ -0,0 +1,167 @@
1
+ import yaml from 'js-yaml';
2
+ function qdrantService(port) {
3
+ return {
4
+ image: 'qdrant/qdrant:latest',
5
+ container_name: 'paparats-qdrant',
6
+ ports: [`\${QDRANT_PORT:-${port}}:6333`],
7
+ volumes: ['qdrant_data:/qdrant/storage'],
8
+ healthcheck: {
9
+ test: ['CMD', 'bash', '-c', 'exec 3<>/dev/tcp/127.0.0.1/6333 || exit 1'],
10
+ interval: '10s',
11
+ timeout: '3s',
12
+ retries: 3,
13
+ start_period: '15s',
14
+ },
15
+ deploy: {
16
+ resources: {
17
+ limits: { cpus: '1.0', memory: '1G' },
18
+ reservations: { cpus: '0.25', memory: '256M' },
19
+ },
20
+ },
21
+ logging: { driver: 'json-file', options: { 'max-size': '10m', 'max-file': '3' } },
22
+ restart: 'unless-stopped',
23
+ networks: ['paparats-net'],
24
+ };
25
+ }
26
+ function paparatsService(port, ollamaUrl) {
27
+ return {
28
+ image: 'ibaz/paparats-server:latest',
29
+ container_name: 'paparats-mcp',
30
+ ports: [`\${PAPARATS_PORT:-${port}}:9876`],
31
+ environment: {
32
+ QDRANT_URL: 'http://qdrant:6333',
33
+ OLLAMA_URL: ollamaUrl,
34
+ },
35
+ extra_hosts: ['host.docker.internal:host-gateway'],
36
+ volumes: ['paparats_data:/home/nodejs/.paparats'],
37
+ depends_on: {
38
+ qdrant: { condition: 'service_healthy' },
39
+ },
40
+ healthcheck: {
41
+ test: [
42
+ 'CMD',
43
+ 'node',
44
+ '-e',
45
+ "require('http').get('http://localhost:9876/health', (r) => { process.exit(r.statusCode === 200 ? 0 : 1); }).on('error', () => process.exit(1));",
46
+ ],
47
+ interval: '30s',
48
+ timeout: '3s',
49
+ retries: 3,
50
+ start_period: '10s',
51
+ },
52
+ deploy: {
53
+ resources: {
54
+ limits: { cpus: '2.0', memory: '2G' },
55
+ reservations: { cpus: '0.5', memory: '512M' },
56
+ },
57
+ },
58
+ logging: { driver: 'json-file', options: { 'max-size': '10m', 'max-file': '3' } },
59
+ restart: 'unless-stopped',
60
+ networks: ['paparats-net'],
61
+ };
62
+ }
63
+ function ollamaService(port) {
64
+ return {
65
+ image: 'ibaz/paparats-ollama:latest',
66
+ container_name: 'paparats-ollama',
67
+ ports: [`\${OLLAMA_PORT:-${port}}:11434`],
68
+ volumes: ['ollama_data:/root/.ollama'],
69
+ healthcheck: {
70
+ test: ['CMD', 'wget', '-q', '-O', '/dev/null', 'http://localhost:11434/api/tags'],
71
+ interval: '10s',
72
+ timeout: '3s',
73
+ retries: 5,
74
+ start_period: '10s',
75
+ },
76
+ logging: { driver: 'json-file', options: { 'max-size': '10m', 'max-file': '3' } },
77
+ restart: 'unless-stopped',
78
+ networks: ['paparats-net'],
79
+ };
80
+ }
81
+ function indexerService(config) {
82
+ const svc = {
83
+ image: 'ibaz/paparats-indexer:latest',
84
+ container_name: 'paparats-indexer',
85
+ environment: {
86
+ REPOS: '${REPOS:-}',
87
+ GITHUB_TOKEN: '${GITHUB_TOKEN:-}',
88
+ CRON: `\${CRON:-${config.cron ?? '0 */6 * * *'}}`,
89
+ QDRANT_URL: 'http://qdrant:6333',
90
+ OLLAMA_URL: 'http://ollama:11434',
91
+ },
92
+ ports: [`\${INDEXER_PORT:-${config.indexerPort ?? 9877}}:9877`],
93
+ volumes: ['indexer_repos:/data/repos', 'paparats_data:/home/nodejs/.paparats'],
94
+ depends_on: {
95
+ qdrant: { condition: 'service_healthy' },
96
+ ollama: { condition: 'service_healthy' },
97
+ },
98
+ logging: { driver: 'json-file', options: { 'max-size': '10m', 'max-file': '3' } },
99
+ restart: 'unless-stopped',
100
+ networks: ['paparats-net'],
101
+ };
102
+ return svc;
103
+ }
104
+ const HEADER = `# paparats-mcp — Docker Compose (generated by paparats install)
105
+ # Managed file — regenerate with: paparats install
106
+ `;
107
+ /**
108
+ * Generate docker-compose YAML for developer mode (qdrant + paparats + optional ollama).
109
+ */
110
+ export function generateDockerCompose(config) {
111
+ const qdrantPort = config.ports?.qdrant ?? 6333;
112
+ const paparatsPort = config.ports?.paparats ?? 9876;
113
+ const ollamaPort = config.ports?.ollama ?? 11434;
114
+ const ollamaUrl = config.ollamaMode === 'docker'
115
+ ? 'http://ollama:11434'
116
+ : '${OLLAMA_URL:-http://host.docker.internal:11434}';
117
+ const compose = {
118
+ services: {
119
+ qdrant: qdrantService(qdrantPort),
120
+ paparats: paparatsService(paparatsPort, ollamaUrl),
121
+ },
122
+ volumes: {
123
+ qdrant_data: null,
124
+ paparats_data: null,
125
+ },
126
+ networks: {
127
+ 'paparats-net': { driver: 'bridge', name: 'paparats-network' },
128
+ },
129
+ };
130
+ if (config.ollamaMode === 'docker') {
131
+ compose.services['ollama'] = ollamaService(ollamaPort);
132
+ compose.services['paparats'].depends_on['ollama'] = { condition: 'service_healthy' };
133
+ compose.volumes['ollama_data'] = null;
134
+ }
135
+ return (HEADER +
136
+ yaml.dump(compose, { lineWidth: 120, noRefs: true, quotingType: "'", forceQuotes: false }));
137
+ }
138
+ /**
139
+ * Generate docker-compose YAML for server mode (qdrant + paparats + ollama + indexer).
140
+ */
141
+ export function generateServerCompose(config) {
142
+ const qdrantPort = config.ports?.qdrant ?? 6333;
143
+ const paparatsPort = config.ports?.paparats ?? 9876;
144
+ const ollamaPort = config.ports?.ollama ?? 11434;
145
+ const compose = {
146
+ services: {
147
+ qdrant: qdrantService(qdrantPort),
148
+ ollama: ollamaService(ollamaPort),
149
+ paparats: paparatsService(paparatsPort, 'http://ollama:11434'),
150
+ 'paparats-indexer': indexerService(config),
151
+ },
152
+ volumes: {
153
+ qdrant_data: null,
154
+ ollama_data: null,
155
+ paparats_data: null,
156
+ indexer_repos: null,
157
+ },
158
+ networks: {
159
+ 'paparats-net': { driver: 'bridge', name: 'paparats-network' },
160
+ },
161
+ };
162
+ // paparats depends on both qdrant and ollama in server mode
163
+ compose.services['paparats'].depends_on['ollama'] = { condition: 'service_healthy' };
164
+ return (HEADER +
165
+ yaml.dump(compose, { lineWidth: 120, noRefs: true, quotingType: "'", forceQuotes: false }));
166
+ }
167
+ //# sourceMappingURL=docker-compose-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker-compose-generator.js","sourceRoot":"","sources":["../src/docker-compose-generator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paparats/cli",
3
- "version": "0.1.10",
3
+ "version": "0.2.2",
4
4
  "mcpName": "io.github.IBazylchuk/paparats-mcp",
5
5
  "type": "module",
6
6
  "description": "CLI for Paparats MCP — semantic code search for AI coding assistants",