@kernel.chat/kbot 3.41.0 → 3.43.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.
Files changed (88) hide show
  1. package/README.md +5 -5
  2. package/dist/agent-teams.d.ts +1 -1
  3. package/dist/agent-teams.d.ts.map +1 -1
  4. package/dist/agent-teams.js +36 -3
  5. package/dist/agent-teams.js.map +1 -1
  6. package/dist/agents/specialists.d.ts.map +1 -1
  7. package/dist/agents/specialists.js +20 -0
  8. package/dist/agents/specialists.js.map +1 -1
  9. package/dist/auth.d.ts +5 -1
  10. package/dist/auth.d.ts.map +1 -1
  11. package/dist/auth.js +1 -1
  12. package/dist/auth.js.map +1 -1
  13. package/dist/channels/kbot-channel.js +8 -31
  14. package/dist/channels/kbot-channel.js.map +1 -1
  15. package/dist/cli.js +44 -11
  16. package/dist/cli.js.map +1 -1
  17. package/dist/completions.d.ts.map +1 -1
  18. package/dist/completions.js +7 -0
  19. package/dist/completions.js.map +1 -1
  20. package/dist/digest.js +1 -1
  21. package/dist/digest.js.map +1 -1
  22. package/dist/doctor.d.ts.map +1 -1
  23. package/dist/doctor.js +132 -92
  24. package/dist/doctor.js.map +1 -1
  25. package/dist/doctor.test.d.ts +2 -0
  26. package/dist/doctor.test.d.ts.map +1 -0
  27. package/dist/doctor.test.js +432 -0
  28. package/dist/doctor.test.js.map +1 -0
  29. package/dist/email-service.d.ts.map +1 -1
  30. package/dist/email-service.js +1 -2
  31. package/dist/email-service.js.map +1 -1
  32. package/dist/episodic-memory.d.ts.map +1 -1
  33. package/dist/episodic-memory.js +14 -0
  34. package/dist/episodic-memory.js.map +1 -1
  35. package/dist/learned-router.d.ts.map +1 -1
  36. package/dist/learned-router.js +29 -0
  37. package/dist/learned-router.js.map +1 -1
  38. package/dist/tools/email.d.ts.map +1 -1
  39. package/dist/tools/email.js +2 -3
  40. package/dist/tools/email.js.map +1 -1
  41. package/dist/tools/hypothesis-engine.d.ts +2 -0
  42. package/dist/tools/hypothesis-engine.d.ts.map +1 -0
  43. package/dist/tools/hypothesis-engine.js +2276 -0
  44. package/dist/tools/hypothesis-engine.js.map +1 -0
  45. package/dist/tools/index.d.ts.map +1 -1
  46. package/dist/tools/index.js +11 -1
  47. package/dist/tools/index.js.map +1 -1
  48. package/dist/tools/lab-bio.d.ts +2 -0
  49. package/dist/tools/lab-bio.d.ts.map +1 -0
  50. package/dist/tools/lab-bio.js +1392 -0
  51. package/dist/tools/lab-bio.js.map +1 -0
  52. package/dist/tools/lab-chem.d.ts +2 -0
  53. package/dist/tools/lab-chem.d.ts.map +1 -0
  54. package/dist/tools/lab-chem.js +1257 -0
  55. package/dist/tools/lab-chem.js.map +1 -0
  56. package/dist/tools/lab-core.d.ts +2 -0
  57. package/dist/tools/lab-core.d.ts.map +1 -0
  58. package/dist/tools/lab-core.js +2452 -0
  59. package/dist/tools/lab-core.js.map +1 -0
  60. package/dist/tools/lab-data.d.ts +2 -0
  61. package/dist/tools/lab-data.d.ts.map +1 -0
  62. package/dist/tools/lab-data.js +2464 -0
  63. package/dist/tools/lab-data.js.map +1 -0
  64. package/dist/tools/lab-earth.d.ts +2 -0
  65. package/dist/tools/lab-earth.d.ts.map +1 -0
  66. package/dist/tools/lab-earth.js +1124 -0
  67. package/dist/tools/lab-earth.js.map +1 -0
  68. package/dist/tools/lab-math.d.ts +2 -0
  69. package/dist/tools/lab-math.d.ts.map +1 -0
  70. package/dist/tools/lab-math.js +3021 -0
  71. package/dist/tools/lab-math.js.map +1 -0
  72. package/dist/tools/lab-physics.d.ts +2 -0
  73. package/dist/tools/lab-physics.d.ts.map +1 -0
  74. package/dist/tools/lab-physics.js +2423 -0
  75. package/dist/tools/lab-physics.js.map +1 -0
  76. package/dist/tools/research-notebook.d.ts +2 -0
  77. package/dist/tools/research-notebook.d.ts.map +1 -0
  78. package/dist/tools/research-notebook.js +1165 -0
  79. package/dist/tools/research-notebook.js.map +1 -0
  80. package/dist/tools/research-pipeline.d.ts +2 -0
  81. package/dist/tools/research-pipeline.d.ts.map +1 -0
  82. package/dist/tools/research-pipeline.js +1094 -0
  83. package/dist/tools/research-pipeline.js.map +1 -0
  84. package/dist/tools/science-graph.d.ts +2 -0
  85. package/dist/tools/science-graph.d.ts.map +1 -0
  86. package/dist/tools/science-graph.js +995 -0
  87. package/dist/tools/science-graph.js.map +1 -0
  88. package/package.json +2 -3
package/dist/cli.js CHANGED
@@ -36,7 +36,7 @@ async function main() {
36
36
  .name('kbot')
37
37
  .description('kbot — Open-source terminal AI agent. Bring your own key, pick your model, run locally.')
38
38
  .version(VERSION)
39
- .option('-a, --agent <agent>', 'Force a specific agent (run kbot agents to see all 25)')
39
+ .option('-a, --agent <agent>', 'Force a specific agent (run kbot agents to see all 26)')
40
40
  .option('-m, --model <model>', 'Override AI model (auto, sonnet, haiku)')
41
41
  .option('-s, --stream', 'Stream the response')
42
42
  .option('-p, --pipe', 'Pipe mode — raw text output for scripting')
@@ -78,7 +78,7 @@ async function main() {
78
78
  console.log(` ${chalk.dim('─'.repeat(50))}`);
79
79
  console.log(` ${chalk.white('kbot auth')} Configure your API key (20 providers)`);
80
80
  console.log(` ${chalk.white('kbot doctor')} Diagnose setup issues`);
81
- console.log(` ${chalk.white('kbot agents')} List all 25 specialist agents`);
81
+ console.log(` ${chalk.white('kbot agents')} List all 26 specialist agents`);
82
82
  console.log(` ${chalk.white('kbot status')} Full dashboard — tools, agents, stats`);
83
83
  console.log(` ${chalk.white('kbot init')} Set up kbot for this project (60s)`);
84
84
  console.log(` ${chalk.white('kbot update')} Update to the latest version`);
@@ -99,7 +99,7 @@ async function main() {
99
99
  console.log(` ${chalk.cyan('https://github.com/isaacsight/kernel/issues')} ${chalk.dim('Bug reports')}`);
100
100
  console.log(` ${chalk.cyan('support@kernel.chat')} ${chalk.dim('Email (AI-assisted replies)')}`);
101
101
  console.log();
102
- console.log(` ${chalk.dim('25 specialist agents · 290+ tools · 20 providers · MIT licensed')}`);
102
+ console.log(` ${chalk.dim('26 specialist agents · 360+ tools · 20 providers · MIT licensed')}`);
103
103
  console.log();
104
104
  process.exit(0);
105
105
  });
@@ -130,10 +130,16 @@ async function main() {
130
130
  ideCmd
131
131
  .command('status')
132
132
  .description('Show IDE bridge status')
133
- .action(async () => {
133
+ .option('--json', 'Output as JSON')
134
+ .action(async (opts) => {
135
+ const jsonMode = opts.json || program.opts().json;
134
136
  const { initBridge, getStatus } = await import('./ide/bridge.js');
135
137
  await initBridge();
136
138
  const status = getStatus();
139
+ if (jsonMode) {
140
+ console.log(JSON.stringify(status, null, 2));
141
+ return;
142
+ }
137
143
  printInfo('kbot IDE Bridge Status');
138
144
  printInfo(` Version: ${status.version}`);
139
145
  printInfo(` Agent: ${status.agent}`);
@@ -1425,7 +1431,7 @@ async function main() {
1425
1431
  const collectiveState = getOptInState();
1426
1432
  // ── 4. Tools count ──
1427
1433
  const { getAllTools } = await import('./tools/index.js');
1428
- const toolCount = getAllTools().length || 290; // fallback to known count if tools not yet registered
1434
+ const toolCount = getAllTools().length || 362; // fallback to known count if tools not yet registered
1429
1435
  // ── 5. Bootstrap (autotelic score) ──
1430
1436
  let bootstrapScore = 0;
1431
1437
  let bootstrapMax = 0;
@@ -1459,7 +1465,7 @@ async function main() {
1459
1465
  latestVersion: latestVersion || null,
1460
1466
  isLatest,
1461
1467
  tools: toolCount,
1462
- agents: 25,
1468
+ agents: 26,
1463
1469
  cognitiveModules: cognitiveCount,
1464
1470
  learning: {
1465
1471
  patterns: stats.patternsCount,
@@ -1491,7 +1497,7 @@ async function main() {
1491
1497
  process.stderr.write(` ${AMETHYST('◉')} ${chalk.bold('Kernel Status')}\n`);
1492
1498
  process.stderr.write(line + '\n');
1493
1499
  process.stderr.write(` ${chalk.bold('Version')} ${VERSION}${versionTag}\n`);
1494
- process.stderr.write(` ${chalk.bold('Tools')} ${fmtNum(toolCount)} ${DIM('|')} ${chalk.bold('Agents')} 25\n`);
1500
+ process.stderr.write(` ${chalk.bold('Tools')} ${fmtNum(toolCount)} ${DIM('|')} ${chalk.bold('Agents')} 26\n`);
1495
1501
  process.stderr.write(` ${chalk.bold('Cognitive')} ${cognitiveCount}/${cognitiveCount} modules active\n`);
1496
1502
  process.stderr.write(line + '\n');
1497
1503
  // Learning
@@ -2865,15 +2871,42 @@ async function main() {
2865
2871
  }
2866
2872
  }
2867
2873
  }
2868
- // Still no provider — launch guided setup for new users
2874
+ // Still no provider — launch guided setup (interactive) or show setup guide (non-interactive)
2869
2875
  if (!byokActive) {
2876
+ if (!process.stdin.isTTY || opts.pipe || opts.json) {
2877
+ // Non-interactive: can't run guided setup, show actionable guide and exit
2878
+ printNoProviderGuide();
2879
+ return;
2880
+ }
2870
2881
  const result = await guidedSetup();
2871
- if (!result)
2882
+ if (!result) {
2883
+ // User quit guided setup — show the guide so they know how to proceed
2884
+ printNoProviderGuide();
2872
2885
  return;
2886
+ }
2873
2887
  byokActive = true;
2874
2888
  localActive = result.local;
2875
2889
  }
2876
2890
  }
2891
+ /** Print a friendly multi-line guide when no AI provider is configured */
2892
+ function printNoProviderGuide() {
2893
+ console.log();
2894
+ printWarn('No API key configured yet. Let\'s fix that!');
2895
+ console.log();
2896
+ console.log(` ${chalk.bold('Quick start')} ${chalk.dim('(pick one):')}`);
2897
+ console.log();
2898
+ console.log(` ${chalk.dim('Cloud (needs API key):')}`);
2899
+ console.log(` ${chalk.green('kbot auth')} ${chalk.dim('Interactive setup — walks you through it')}`);
2900
+ console.log(` ${chalk.green('kbot byok')} ${chalk.dim('Bring Your Own Key for 15+ providers')}`);
2901
+ console.log();
2902
+ console.log(` ${chalk.dim('Local (free, no key needed):')}`);
2903
+ console.log(` ${chalk.green('kbot local')} ${chalk.dim('Use Ollama, LM Studio, or Jan')}`);
2904
+ console.log(` ${chalk.green('kbot doctor')} ${chalk.dim('Check what\'s already installed')}`);
2905
+ console.log();
2906
+ console.log(` ${chalk.dim('Get started fast:')} ${chalk.green('kbot auth')}`);
2907
+ console.log(` ${chalk.dim('Docs:')} ${chalk.underline('https://github.com/isaacsight/kernel')}`);
2908
+ console.log();
2909
+ }
2877
2910
  /** Auto-detect provider from environment variables */
2878
2911
  function autoDetectFromEnv() {
2879
2912
  const envKeys = [
@@ -3225,7 +3258,7 @@ async function byokFlow() {
3225
3258
  console.log();
3226
3259
  printSuccess(`BYOK mode enabled — ${providerConfig.name}`);
3227
3260
  printInfo('You pay the provider directly. No message limits. No restrictions.');
3228
- printInfo('All 290 tools + 23 agents + learning system = yours.');
3261
+ printInfo('All 362 tools + 26 agents + learning system = yours.');
3229
3262
  console.log();
3230
3263
  printSuccess('Ready. Run `kbot` to start.');
3231
3264
  }
@@ -3503,7 +3536,7 @@ async function startRepl(agentOpts, context, tier, byokActive = false, localActi
3503
3536
  const suggestions = await detectProjectSuggestions();
3504
3537
  console.log();
3505
3538
  console.log(chalk.dim(' ┌─────────────────────────────────────────────────┐'));
3506
- console.log(chalk.dim(' │') + chalk.bold(' 23 agents. 290 tools. Just say what you need. ') + chalk.dim(' │'));
3539
+ console.log(chalk.dim(' │') + chalk.bold(' 26 agents. 362 tools. Just say what you need. ') + chalk.dim(' │'));
3507
3540
  console.log(chalk.dim(' │ │'));
3508
3541
  if (suggestions.length > 0) {
3509
3542
  for (const s of suggestions.slice(0, 4)) {