@pedroaugusto04/kb-cli 1.1.7 → 1.1.8

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,5 @@
1
1
  import pc from 'picocolors';
2
+ import { spinner } from '@clack/prompts';
2
3
  import { client, ApiClientError } from '../client.js';
3
4
  export async function runAsk(question, options) {
4
5
  const q = question.trim();
@@ -6,8 +7,11 @@ export async function runAsk(question, options) {
6
7
  console.error(pc.red('Please provide a question.'));
7
8
  process.exit(1);
8
9
  }
10
+ const s = spinner();
11
+ s.start('Searching knowledge base...');
9
12
  try {
10
13
  const result = await client.ask(q, options.project);
14
+ s.stop(pc.green('Search complete!'));
11
15
  if (result && result.answer) {
12
16
  console.log('\n' + pc.bold(result.answer) + '\n');
13
17
  if (result.confidence !== undefined) {
@@ -34,6 +38,7 @@ export async function runAsk(question, options) {
34
38
  }
35
39
  }
36
40
  catch (error) {
41
+ s.stop(pc.red('Search failed'));
37
42
  if (error instanceof ApiClientError) {
38
43
  console.error(pc.red(`Error (${error.status}): ${error.body?.message || error.message}`));
39
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ask.js","sourceRoot":"","sources":["../../src/commands/ask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,QAAgB,EAAE,OAA6B;IAC1E,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAEpD,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;YAElD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBACpC,IAAI,aAAa,GAAG,EAAE,CAAC;gBACvB,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;oBAC1C,aAAa,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC;gBAC5D,CAAC;qBAAM,CAAC;oBACN,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC5C,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;YAChE,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;gBACnC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,IAAI,gBAAgB,CAAC;oBACjF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjD,CAAC;YACH,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,qDAAqD,CAAC,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,MAAM,MAAO,KAAK,CAAC,IAAY,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACrG,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,OAAO,IAAI,+BAA+B,EAAE,CAAC,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC","sourcesContent":["import pc from 'picocolors';\nimport { client, ApiClientError } from '../client.js';\n\nexport async function runAsk(question: string, options: { project?: string }): Promise<void> {\n const q = question.trim();\n if (!q) {\n console.error(pc.red('Please provide a question.'));\n process.exit(1);\n }\n\n try {\n const result = await client.ask(q, options.project);\n\n if (result && result.answer) {\n console.log('\\n' + pc.bold(result.answer) + '\\n');\n\n if (result.confidence !== undefined) {\n let confidenceStr = '';\n if (typeof result.confidence === 'number') {\n confidenceStr = `${Math.round(result.confidence * 100)}%`;\n } else {\n confidenceStr = String(result.confidence);\n }\n console.log(pc.gray(`Confidence: ${pc.cyan(confidenceStr)}`));\n }\n\n if (Array.isArray(result.sources) && result.sources.length > 0) {\n console.log(pc.gray('\\nSources:'));\n for (const source of result.sources) {\n const title = source.title || source.fileName || source.path || 'Unnamed Source';\n console.log(pc.gray(` - ${pc.italic(title)}`));\n }\n }\n console.log();\n } else {\n console.log(pc.yellow('Could not retrieve an answer. No context available.'));\n }\n } catch (error: any) {\n if (error instanceof ApiClientError) {\n console.error(pc.red(`Error (${error.status}): ${(error.body as any)?.message || error.message}`));\n } else {\n console.error(pc.red(`Error: ${error.message || 'Failed to communicate with KB'}`));\n }\n process.exit(1);\n }\n}\n"]}
1
+ {"version":3,"file":"ask.js","sourceRoot":"","sources":["../../src/commands/ask.ts"],"names":[],"mappings":"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","sourcesContent":["import pc from 'picocolors';\nimport { spinner } from '@clack/prompts';\nimport { client, ApiClientError } from '../client.js';\n\nexport async function runAsk(question: string, options: { project?: string }): Promise<void> {\n const q = question.trim();\n if (!q) {\n console.error(pc.red('Please provide a question.'));\n process.exit(1);\n }\n\n const s = spinner();\n s.start('Searching knowledge base...');\n\n try {\n const result = await client.ask(q, options.project);\n s.stop(pc.green('Search complete!'));\n\n if (result && result.answer) {\n console.log('\\n' + pc.bold(result.answer) + '\\n');\n\n if (result.confidence !== undefined) {\n let confidenceStr = '';\n if (typeof result.confidence === 'number') {\n confidenceStr = `${Math.round(result.confidence * 100)}%`;\n } else {\n confidenceStr = String(result.confidence);\n }\n console.log(pc.gray(`Confidence: ${pc.cyan(confidenceStr)}`));\n }\n\n if (Array.isArray(result.sources) && result.sources.length > 0) {\n console.log(pc.gray('\\nSources:'));\n for (const source of result.sources) {\n const title = source.title || source.fileName || source.path || 'Unnamed Source';\n console.log(pc.gray(` - ${pc.italic(title)}`));\n }\n }\n console.log();\n } else {\n console.log(pc.yellow('Could not retrieve an answer. No context available.'));\n }\n } catch (error: any) {\n s.stop(pc.red('Search failed'));\n if (error instanceof ApiClientError) {\n console.error(pc.red(`Error (${error.status}): ${(error.body as any)?.message || error.message}`));\n } else {\n console.error(pc.red(`Error: ${error.message || 'Failed to communicate with KB'}`));\n }\n process.exit(1);\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pedroaugusto04/kb-cli",
3
- "version": "1.1.7",
3
+ "version": "1.1.8",
4
4
  "description": "CLI client for the Knowledge Base AI system",
5
5
  "type": "module",
6
6
  "bin": {