@humain/terminal 0.0.1 → 0.0.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 (72) hide show
  1. package/CHANGELOG.md +46 -1
  2. package/README.md +1 -1
  3. package/dist/cli/args.d.ts.map +1 -1
  4. package/dist/cli/args.js +8 -1
  5. package/dist/cli/args.js.map +1 -1
  6. package/dist/cli/credential-print.d.ts +23 -0
  7. package/dist/cli/credential-print.d.ts.map +1 -0
  8. package/dist/cli/credential-print.js +117 -0
  9. package/dist/cli/credential-print.js.map +1 -0
  10. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  11. package/dist/core/agent-session-runtime.js +3 -0
  12. package/dist/core/agent-session-runtime.js.map +1 -1
  13. package/dist/core/agent-session.d.ts +1 -1
  14. package/dist/core/agent-session.d.ts.map +1 -1
  15. package/dist/core/agent-session.js +13 -6
  16. package/dist/core/agent-session.js.map +1 -1
  17. package/dist/core/extensions/runner.d.ts +1 -0
  18. package/dist/core/extensions/runner.d.ts.map +1 -1
  19. package/dist/core/extensions/runner.js +7 -0
  20. package/dist/core/extensions/runner.js.map +1 -1
  21. package/dist/core/extensions/types.d.ts +7 -0
  22. package/dist/core/extensions/types.d.ts.map +1 -1
  23. package/dist/core/extensions/types.js.map +1 -1
  24. package/dist/core/footer-data-provider.d.ts +10 -0
  25. package/dist/core/footer-data-provider.d.ts.map +1 -1
  26. package/dist/core/footer-data-provider.js +1 -1
  27. package/dist/core/footer-data-provider.js.map +1 -1
  28. package/dist/core/model-runtime.d.ts +2 -0
  29. package/dist/core/model-runtime.d.ts.map +1 -1
  30. package/dist/core/model-runtime.js.map +1 -1
  31. package/dist/core/package-manager.d.ts.map +1 -1
  32. package/dist/core/package-manager.js +13 -6
  33. package/dist/core/package-manager.js.map +1 -1
  34. package/dist/core/resource-loader.d.ts +15 -0
  35. package/dist/core/resource-loader.d.ts.map +1 -1
  36. package/dist/core/resource-loader.js +63 -9
  37. package/dist/core/resource-loader.js.map +1 -1
  38. package/dist/extensions/llama/provider.d.ts.map +1 -1
  39. package/dist/extensions/llama/provider.js +1 -1
  40. package/dist/extensions/llama/provider.js.map +1 -1
  41. package/dist/humain/index.d.ts.map +1 -1
  42. package/dist/humain/index.js +3 -3
  43. package/dist/humain/index.js.map +1 -1
  44. package/dist/main.d.ts.map +1 -1
  45. package/dist/main.js +43 -0
  46. package/dist/main.js.map +1 -1
  47. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  48. package/dist/modes/interactive/components/model-selector.js +4 -1
  49. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  50. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  51. package/dist/modes/interactive/interactive-mode.js +20 -6
  52. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  53. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  54. package/dist/modes/rpc/rpc-mode.js +13 -0
  55. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  56. package/docs/custom-provider.md +9 -3
  57. package/docs/extensions.md +3 -1
  58. package/docs/providers.md +1 -0
  59. package/docs/session-format.md +2 -0
  60. package/examples/extensions/custom-provider-anthropic/index.ts +8 -2
  61. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  62. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  63. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  64. package/examples/extensions/gondolin/package-lock.json +2 -2
  65. package/examples/extensions/gondolin/package.json +1 -1
  66. package/examples/extensions/sandbox/package-lock.json +2 -2
  67. package/examples/extensions/sandbox/package.json +1 -1
  68. package/examples/extensions/with-deps/package-lock.json +2 -2
  69. package/examples/extensions/with-deps/package.json +1 -1
  70. package/examples/sdk/12-full-control.ts +2 -0
  71. package/npm-shrinkwrap.json +26 -26
  72. package/package.json +7 -7
@@ -1062,7 +1062,12 @@ export class InteractiveMode {
1062
1062
  }
1063
1063
  }
1064
1064
  if (showListing) {
1065
- const contextFiles = this.session.resourceLoader.getAgentsFiles().agentsFiles;
1065
+ const systemPromptSource = this.session.resourceLoader.getSystemPromptSource();
1066
+ const contextFiles = [
1067
+ ...(systemPromptSource ? [systemPromptSource] : []),
1068
+ ...this.session.resourceLoader.getAppendSystemPromptSources(),
1069
+ ...this.session.resourceLoader.getAgentsFiles().agentsFiles,
1070
+ ];
1066
1071
  if (contextFiles.length > 0) {
1067
1072
  this.loadedResourcesContainer.addChild(new Spacer(1));
1068
1073
  const contextList = contextFiles
@@ -1262,16 +1267,19 @@ export class InteractiveMode {
1262
1267
  }
1263
1268
  }
1264
1269
  async rebindCurrentSession(options = {}) {
1270
+ const session = this.session;
1265
1271
  this.unsubscribe?.();
1266
1272
  this.unsubscribe = undefined;
1267
1273
  this.applyRuntimeSettings();
1268
1274
  if (options.renderBeforeBind) {
1269
1275
  this.renderCurrentSessionState();
1270
1276
  this.subscribeToAgent();
1271
- await this.bindCurrentSessionExtensions();
1272
1277
  }
1273
- else {
1274
- await this.bindCurrentSessionExtensions();
1278
+ await this.bindCurrentSessionExtensions();
1279
+ if (this.session !== session) {
1280
+ return;
1281
+ }
1282
+ if (!options.renderBeforeBind) {
1275
1283
  this.subscribeToAgent();
1276
1284
  }
1277
1285
  await this.updateAvailableProviderCount();
@@ -1317,6 +1325,7 @@ export class InteractiveMode {
1317
1325
  sessionManager: this.sessionManager,
1318
1326
  modelRegistry: extensionRunner.getModelRegistry(),
1319
1327
  model: this.session.model,
1328
+ scopedModels: this.session.scopedModels,
1320
1329
  thinkingLevel: this.session.thinkingLevel,
1321
1330
  isIdle: () => this.session.isIdle,
1322
1331
  isProjectTrusted: () => this.settingsManager.isProjectTrusted(),
@@ -3069,7 +3078,7 @@ export class InteractiveMode {
3069
3078
  }
3070
3079
  }
3071
3080
  }
3072
- this.ui.requestRender();
3081
+ this.showStatus(`Tool output: ${expanded ? "expanded" : "collapsed"}`);
3073
3082
  }
3074
3083
  toggleThinkingBlockVisibility() {
3075
3084
  this.hideThinkingBlock = !this.hideThinkingBlock;
@@ -3794,7 +3803,7 @@ export class InteractiveMode {
3794
3803
  this.showSelector((done) => {
3795
3804
  const selector = new TreeSelectorComponent(tree, realLeafId, this.ui.terminal.rows, async (entryId) => {
3796
3805
  // Selecting the current leaf is a no-op (already there)
3797
- if (entryId === realLeafId) {
3806
+ if (entryId === this.sessionManager.getLeafId()) {
3798
3807
  done();
3799
3808
  this.showStatus("Already at this point");
3800
3809
  return;
@@ -3829,6 +3838,11 @@ export class InteractiveMode {
3829
3838
  break;
3830
3839
  }
3831
3840
  }
3841
+ // The user committed to navigating: stop the active response first.
3842
+ if (this.session.isStreaming) {
3843
+ this.restoreQueuedMessagesToEditor();
3844
+ await this.session.abort();
3845
+ }
3832
3846
  // Set up escape handler and status indicator if summarizing
3833
3847
  let showingSummaryIndicator = false;
3834
3848
  const originalOnEscape = this.defaultEditor.onEscape;