@akon-labs/nexus-cli 0.1.5 → 0.1.6

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 (91) hide show
  1. package/CHANGELOG.md +23 -7
  2. package/dist/cli/require-login.d.ts.map +1 -1
  3. package/dist/cli/require-login.js +1 -1
  4. package/dist/cli/require-login.js.map +1 -1
  5. package/dist/cli.js +155 -93
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +1 -1
  8. package/dist/config.js.map +1 -1
  9. package/dist/core/auth-guidance.d.ts.map +1 -1
  10. package/dist/core/auth-guidance.js +3 -2
  11. package/dist/core/auth-guidance.js.map +1 -1
  12. package/dist/core/auto-model.d.ts +9 -0
  13. package/dist/core/auto-model.d.ts.map +1 -0
  14. package/dist/core/auto-model.js +11 -0
  15. package/dist/core/auto-model.js.map +1 -0
  16. package/dist/core/extensions/loader.d.ts.map +1 -1
  17. package/dist/core/extensions/loader.js +4 -8
  18. package/dist/core/extensions/loader.js.map +1 -1
  19. package/dist/core/model-resolver.d.ts.map +1 -1
  20. package/dist/core/model-resolver.js +2 -1
  21. package/dist/core/model-resolver.js.map +1 -1
  22. package/dist/core/models-dev-catalog.d.ts.map +1 -1
  23. package/dist/core/models-dev-catalog.js +11 -7
  24. package/dist/core/models-dev-catalog.js.map +1 -1
  25. package/dist/core/sdk.d.ts +1 -1
  26. package/dist/core/sdk.d.ts.map +1 -1
  27. package/dist/core/sdk.js +1 -1
  28. package/dist/core/sdk.js.map +1 -1
  29. package/dist/core/slash-commands.d.ts.map +1 -1
  30. package/dist/core/slash-commands.js +1 -0
  31. package/dist/core/slash-commands.js.map +1 -1
  32. package/dist/core/tools/websearch.d.ts.map +1 -1
  33. package/dist/core/tools/websearch.js +52 -37
  34. package/dist/core/tools/websearch.js.map +1 -1
  35. package/dist/extensions/gitnexus/device-auth.d.ts.map +1 -1
  36. package/dist/extensions/gitnexus/device-auth.js +2 -1
  37. package/dist/extensions/gitnexus/device-auth.js.map +1 -1
  38. package/dist/extensions/gitnexus/gateway.d.ts +0 -2
  39. package/dist/extensions/gitnexus/gateway.d.ts.map +1 -1
  40. package/dist/extensions/gitnexus/gateway.js +10 -22
  41. package/dist/extensions/gitnexus/gateway.js.map +1 -1
  42. package/dist/extensions/gitnexus/index.d.ts.map +1 -1
  43. package/dist/extensions/gitnexus/index.js +10 -4
  44. package/dist/extensions/gitnexus/index.js.map +1 -1
  45. package/dist/extensions/web-access.d.ts +1 -6
  46. package/dist/extensions/web-access.d.ts.map +1 -1
  47. package/dist/extensions/web-access.js +8 -21
  48. package/dist/extensions/web-access.js.map +1 -1
  49. package/dist/index.d.ts +1 -1
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +159 -93
  52. package/dist/index.js.map +1 -1
  53. package/dist/main.d.ts.map +1 -1
  54. package/dist/main.js +1 -1
  55. package/dist/main.js.map +1 -1
  56. package/dist/migrations.d.ts.map +1 -1
  57. package/dist/migrations.js +2 -2
  58. package/dist/migrations.js.map +1 -1
  59. package/dist/modes/interactive/components/command-palette.d.ts.map +1 -1
  60. package/dist/modes/interactive/components/command-palette.js +2 -2
  61. package/dist/modes/interactive/components/command-palette.js.map +1 -1
  62. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  63. package/dist/modes/interactive/components/model-selector.js +18 -7
  64. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  65. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  66. package/dist/modes/interactive/interactive-mode.js +22 -6
  67. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  68. package/dist/rpc-entry.js +155 -93
  69. package/dist/vendor/ai.js +12 -12
  70. package/docs/compaction.md +1 -1
  71. package/docs/settings.md +1 -1
  72. package/docs/usage.md +0 -1
  73. package/examples/extensions/border-status-editor.ts +1 -6
  74. package/examples/extensions/custom-compaction.ts +1 -1
  75. package/examples/extensions/custom-footer.ts +1 -1
  76. package/examples/extensions/custom-provider-anthropic/index.ts +3 -3
  77. package/examples/extensions/custom-provider-gitlab-duo/index.ts +1 -1
  78. package/examples/extensions/gondolin/index.ts +1 -1
  79. package/examples/extensions/handoff.ts +2 -2
  80. package/examples/extensions/hello.ts +1 -1
  81. package/examples/extensions/plan-mode/index.ts +1 -1
  82. package/examples/extensions/preset.ts +1 -1
  83. package/examples/extensions/qna.ts +1 -1
  84. package/examples/extensions/sandbox/index.ts +1 -1
  85. package/examples/extensions/subagent/index.ts +3 -3
  86. package/examples/extensions/summarize.ts +1 -1
  87. package/examples/extensions/tic-tac-toe.ts +1 -1
  88. package/examples/extensions/todo.ts +1 -1
  89. package/examples/extensions/tool-override.ts +1 -1
  90. package/npm-shrinkwrap.json +2 -2
  91. package/package.json +1 -1
@@ -13,6 +13,7 @@ import { spawn, spawnSync } from "child_process";
13
13
  import { APP_NAME, APP_TITLE, CONFIG_DIR_NAME, getAgentDir, getAuthPath, getDebugLogPath, getDocsPath, getShareViewerUrl, readAppEnv, VERSION, } from "../../config.js";
14
14
  import { parseSkillBlock } from "../../core/agent-session.js";
15
15
  import { SessionImportFileNotFoundError } from "../../core/agent-session-runtime.js";
16
+ import { AUTO_MODEL_ID, AUTO_MODEL_LABEL, AUTO_PROVIDER_ID, isAutoModel, isAutoModelReference, } from "../../core/auto-model.js";
16
17
  import { CACHE_TTL_MS, collectCacheMisses, computeCacheWaste, detectCacheMiss, } from "../../core/cache-stats.js";
17
18
  import { FooterDataProvider } from "../../core/footer-data-provider.js";
18
19
  import { graphRailStore } from "../../core/graph-rail-store.js";
@@ -459,9 +460,13 @@ export class InteractiveMode {
459
460
  const modelCommand = slashCommands.find((command) => command.name === "model");
460
461
  if (modelCommand) {
461
462
  modelCommand.getArgumentCompletions = (prefix) => {
462
- const models = this.session.scopedModels.length > 0
463
+ const scopedOrAvailableModels = this.session.scopedModels.length > 0
463
464
  ? this.session.scopedModels.map((s) => s.model)
464
465
  : this.session.modelRuntime.getAvailableSnapshot();
466
+ const autoModel = this.session.modelRuntime.getAvailableSnapshot().find((model) => isAutoModel(model));
467
+ const models = autoModel
468
+ ? [autoModel, ...scopedOrAvailableModels.filter((model) => !isAutoModel(model))]
469
+ : scopedOrAvailableModels;
465
470
  if (models.length === 0)
466
471
  return null;
467
472
  // Create items with provider/id format
@@ -469,12 +474,13 @@ export class InteractiveMode {
469
474
  id: m.id,
470
475
  provider: m.provider,
471
476
  name: m.name,
472
- label: `${m.provider}/${m.id}`,
477
+ displayLabel: isAutoModel(m) ? AUTO_MODEL_LABEL : m.id,
478
+ value: isAutoModel(m) ? AUTO_MODEL_ID : `${m.provider}/${m.id}`,
473
479
  }));
474
480
  return createFuzzyAutocompleteItems(items, prefix, getModelSearchText, (item) => ({
475
- value: item.label,
476
- label: item.id,
477
- description: item.provider,
481
+ value: item.value,
482
+ label: item.displayLabel,
483
+ description: isAutoModel(item) ? "Nexus default" : item.provider,
478
484
  }));
479
485
  };
480
486
  }
@@ -2344,6 +2350,11 @@ export class InteractiveMode {
2344
2350
  await this.showModelsSelector();
2345
2351
  return;
2346
2352
  }
2353
+ if (text === "/auto") {
2354
+ this.editor.setText("");
2355
+ await this.handleModelCommand(AUTO_MODEL_ID);
2356
+ return;
2357
+ }
2347
2358
  if (text === "/model" || text.startsWith("/model ")) {
2348
2359
  const searchTerm = text.startsWith("/model ") ? text.slice(7).trim() : undefined;
2349
2360
  this.editor.setText("");
@@ -3901,7 +3912,7 @@ export class InteractiveMode {
3901
3912
  await this.session.setModel(model);
3902
3913
  this.footer.invalidate();
3903
3914
  this.updateEditorBorderColor();
3904
- this.showStatus(`Model: ${model.id}`);
3915
+ this.showStatus(`Model: ${isAutoModel(model) ? "Auto" : model.id}`);
3905
3916
  void this.maybeWarnAboutAnthropicSubscriptionAuth(model);
3906
3917
  }
3907
3918
  catch (error) {
@@ -3912,6 +3923,11 @@ export class InteractiveMode {
3912
3923
  this.showModelSelector(searchTerm);
3913
3924
  }
3914
3925
  async findExactModelMatch(searchTerm) {
3926
+ if (isAutoModelReference(searchTerm)) {
3927
+ return this.session.modelRuntime
3928
+ .getAvailableSnapshot()
3929
+ .find((model) => model.provider === AUTO_PROVIDER_ID && model.id === AUTO_MODEL_ID);
3930
+ }
3915
3931
  const cachedModels = this.session.scopedModels.length > 0
3916
3932
  ? this.session.scopedModels.map((scoped) => scoped.model)
3917
3933
  : [...this.session.modelRuntime.getAvailableSnapshot()];