@qduc/term2 0.2.0 β†’ 0.3.1

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 (163) hide show
  1. package/dist/app.d.ts.map +1 -1
  2. package/dist/app.js +14 -6
  3. package/dist/app.js.map +1 -1
  4. package/dist/components/BottomArea.d.ts +3 -2
  5. package/dist/components/BottomArea.d.ts.map +1 -1
  6. package/dist/components/BottomArea.js.map +1 -1
  7. package/dist/components/Input/PopupManager.d.ts +1 -1
  8. package/dist/components/Input/PopupManager.d.ts.map +1 -1
  9. package/dist/components/Input/PopupManager.js.map +1 -1
  10. package/dist/components/Input/determine-active-menu.d.ts +2 -1
  11. package/dist/components/Input/determine-active-menu.d.ts.map +1 -1
  12. package/dist/components/Input/determine-active-menu.js +41 -28
  13. package/dist/components/Input/determine-active-menu.js.map +1 -1
  14. package/dist/components/InputBox.d.ts +3 -2
  15. package/dist/components/InputBox.d.ts.map +1 -1
  16. package/dist/components/InputBox.js +46 -11
  17. package/dist/components/InputBox.js.map +1 -1
  18. package/dist/components/InputBox.menu-logic.test.js +55 -15
  19. package/dist/components/InputBox.menu-logic.test.js.map +1 -1
  20. package/dist/components/MarkdownRenderer.d.ts.map +1 -1
  21. package/dist/components/MarkdownRenderer.js +36 -24
  22. package/dist/components/MarkdownRenderer.js.map +1 -1
  23. package/dist/components/MessageList.test.js +14 -0
  24. package/dist/components/MessageList.test.js.map +1 -1
  25. package/dist/components/SlashCommandMenu.d.ts +1 -6
  26. package/dist/components/SlashCommandMenu.d.ts.map +1 -1
  27. package/dist/components/SlashCommandMenu.js.map +1 -1
  28. package/dist/hooks/use-app-commands.d.ts +1 -1
  29. package/dist/hooks/use-app-commands.d.ts.map +1 -1
  30. package/dist/hooks/use-app-commands.js +4 -0
  31. package/dist/hooks/use-app-commands.js.map +1 -1
  32. package/dist/hooks/use-conversation.d.ts +2 -1
  33. package/dist/hooks/use-conversation.d.ts.map +1 -1
  34. package/dist/hooks/use-conversation.js +6 -4
  35. package/dist/hooks/use-conversation.js.map +1 -1
  36. package/dist/hooks/use-model-selection.d.ts.map +1 -1
  37. package/dist/hooks/use-model-selection.js +32 -11
  38. package/dist/hooks/use-model-selection.js.map +1 -1
  39. package/dist/hooks/use-model-selection.test.js +107 -10
  40. package/dist/hooks/use-model-selection.test.js.map +1 -1
  41. package/dist/hooks/use-slash-commands.d.ts +1 -1
  42. package/dist/hooks/use-slash-commands.d.ts.map +1 -1
  43. package/dist/hooks/use-trigger-detection.d.ts +3 -1
  44. package/dist/hooks/use-trigger-detection.d.ts.map +1 -1
  45. package/dist/hooks/use-trigger-detection.js +3 -3
  46. package/dist/hooks/use-trigger-detection.js.map +1 -1
  47. package/dist/lib/openai-agent-client.d.ts +2 -1
  48. package/dist/lib/openai-agent-client.d.ts.map +1 -1
  49. package/dist/lib/openai-agent-client.js +2 -4
  50. package/dist/lib/openai-agent-client.js.map +1 -1
  51. package/dist/lib/openai-agent-client.test.js +1 -1
  52. package/dist/lib/openai-agent-client.test.js.map +1 -1
  53. package/dist/lib/retry-executor.d.ts.map +1 -1
  54. package/dist/lib/retry-executor.js +1 -2
  55. package/dist/lib/retry-executor.js.map +1 -1
  56. package/dist/lib/retry-executor.test.js +1 -2
  57. package/dist/lib/retry-executor.test.js.map +1 -1
  58. package/dist/providers/ai-sdk-message-normalizer.d.ts +8 -0
  59. package/dist/providers/ai-sdk-message-normalizer.d.ts.map +1 -0
  60. package/dist/providers/ai-sdk-message-normalizer.js +70 -0
  61. package/dist/providers/ai-sdk-message-normalizer.js.map +1 -0
  62. package/dist/providers/ai-sdk-message-normalizer.test.d.ts +2 -0
  63. package/dist/providers/ai-sdk-message-normalizer.test.d.ts.map +1 -0
  64. package/dist/providers/ai-sdk-message-normalizer.test.js +195 -0
  65. package/dist/providers/ai-sdk-message-normalizer.test.js.map +1 -0
  66. package/dist/providers/ai-sdk-openai-compatible.provider.d.ts +24 -0
  67. package/dist/providers/ai-sdk-openai-compatible.provider.d.ts.map +1 -0
  68. package/dist/providers/ai-sdk-openai-compatible.provider.js +27 -0
  69. package/dist/providers/ai-sdk-openai-compatible.provider.js.map +1 -0
  70. package/dist/providers/ai-sdk-openai-compatible.provider.test.d.ts +2 -0
  71. package/dist/providers/ai-sdk-openai-compatible.provider.test.d.ts.map +1 -0
  72. package/dist/providers/ai-sdk-openai-compatible.provider.test.js +68 -0
  73. package/dist/providers/ai-sdk-openai-compatible.provider.test.js.map +1 -0
  74. package/dist/providers/ai-sdk-openrouter.provider.d.ts +16 -0
  75. package/dist/providers/ai-sdk-openrouter.provider.d.ts.map +1 -0
  76. package/dist/providers/ai-sdk-openrouter.provider.js +22 -0
  77. package/dist/providers/ai-sdk-openrouter.provider.js.map +1 -0
  78. package/dist/providers/ai-sdk-openrouter.provider.test.d.ts +2 -0
  79. package/dist/providers/ai-sdk-openrouter.provider.test.d.ts.map +1 -0
  80. package/dist/providers/ai-sdk-openrouter.provider.test.js +70 -0
  81. package/dist/providers/ai-sdk-openrouter.provider.test.js.map +1 -0
  82. package/dist/providers/common/openai-compatible-messages.d.ts +8 -0
  83. package/dist/providers/common/openai-compatible-messages.d.ts.map +1 -0
  84. package/dist/providers/common/openai-compatible-messages.js +356 -0
  85. package/dist/providers/common/openai-compatible-messages.js.map +1 -0
  86. package/dist/providers/common/openai-compatible-messages.test.d.ts +2 -0
  87. package/dist/providers/common/openai-compatible-messages.test.d.ts.map +1 -0
  88. package/dist/providers/common/openai-compatible-messages.test.js +26 -0
  89. package/dist/providers/common/openai-compatible-messages.test.js.map +1 -0
  90. package/dist/providers/common/openai-compatible-utils.d.ts +11 -0
  91. package/dist/providers/common/openai-compatible-utils.d.ts.map +1 -0
  92. package/dist/providers/common/openai-compatible-utils.js +33 -0
  93. package/dist/providers/common/openai-compatible-utils.js.map +1 -0
  94. package/dist/providers/common/provider-errors.d.ts +13 -0
  95. package/dist/providers/common/provider-errors.d.ts.map +1 -0
  96. package/dist/providers/common/provider-errors.js +25 -0
  97. package/dist/providers/common/provider-errors.js.map +1 -0
  98. package/dist/providers/openai-compatible.provider.createRunner.test.d.ts +2 -0
  99. package/dist/providers/openai-compatible.provider.createRunner.test.d.ts.map +1 -0
  100. package/dist/providers/openai-compatible.provider.createRunner.test.js +39 -0
  101. package/dist/providers/openai-compatible.provider.createRunner.test.js.map +1 -0
  102. package/dist/providers/openai-compatible.provider.d.ts.map +1 -1
  103. package/dist/providers/openai-compatible.provider.js +18 -8
  104. package/dist/providers/openai-compatible.provider.js.map +1 -1
  105. package/dist/providers/openrouter.d.ts +1 -1
  106. package/dist/providers/openrouter.d.ts.map +1 -1
  107. package/dist/providers/openrouter.js +1 -3
  108. package/dist/providers/openrouter.js.map +1 -1
  109. package/dist/providers/openrouter.provider.createRunner.test.js +28 -0
  110. package/dist/providers/openrouter.provider.createRunner.test.js.map +1 -1
  111. package/dist/providers/openrouter.provider.js +14 -5
  112. package/dist/providers/openrouter.provider.js.map +1 -1
  113. package/dist/scripts/eval-auto-approval/dataset.d.ts +2 -2
  114. package/dist/services/conversation-session.d.ts +3 -2
  115. package/dist/services/conversation-session.d.ts.map +1 -1
  116. package/dist/services/conversation-session.js +12 -6
  117. package/dist/services/conversation-session.js.map +1 -1
  118. package/dist/services/conversation-store.d.ts +2 -0
  119. package/dist/services/conversation-store.d.ts.map +1 -1
  120. package/dist/services/conversation-store.js +27 -0
  121. package/dist/services/conversation-store.js.map +1 -1
  122. package/dist/services/conversation-store.test.js +34 -0
  123. package/dist/services/conversation-store.test.js.map +1 -1
  124. package/dist/services/logging-contract.d.ts +3 -3
  125. package/dist/services/logging-service.d.ts.map +1 -1
  126. package/dist/services/logging-service.js +5 -1
  127. package/dist/services/logging-service.js.map +1 -1
  128. package/dist/services/model-service.test.js +1 -5
  129. package/dist/services/model-service.test.js.map +1 -1
  130. package/dist/services/settings-schema.d.ts +12 -8
  131. package/dist/services/settings-schema.d.ts.map +1 -1
  132. package/dist/services/settings-schema.js +9 -0
  133. package/dist/services/settings-schema.js.map +1 -1
  134. package/dist/services/stream-event-parsing.js +1 -1
  135. package/dist/services/stream-event-parsing.js.map +1 -1
  136. package/dist/services/stream-event-parsing.test.js +13 -0
  137. package/dist/services/stream-event-parsing.test.js.map +1 -1
  138. package/dist/slash-commands.d.ts +20 -0
  139. package/dist/slash-commands.d.ts.map +1 -0
  140. package/dist/slash-commands.js +2 -0
  141. package/dist/slash-commands.js.map +1 -0
  142. package/dist/types/user-turn.d.ts +16 -0
  143. package/dist/types/user-turn.d.ts.map +1 -0
  144. package/dist/types/user-turn.js +27 -0
  145. package/dist/types/user-turn.js.map +1 -0
  146. package/dist/types/user-turn.test.d.ts +2 -0
  147. package/dist/types/user-turn.test.d.ts.map +1 -0
  148. package/dist/types/user-turn.test.js +32 -0
  149. package/dist/types/user-turn.test.js.map +1 -0
  150. package/dist/utils/log-truncation.d.ts +7 -0
  151. package/dist/utils/log-truncation.d.ts.map +1 -0
  152. package/dist/utils/log-truncation.js +66 -0
  153. package/dist/utils/log-truncation.js.map +1 -0
  154. package/dist/utils/log-truncation.test.d.ts +2 -0
  155. package/dist/utils/log-truncation.test.d.ts.map +1 -0
  156. package/dist/utils/log-truncation.test.js +44 -0
  157. package/dist/utils/log-truncation.test.js.map +1 -0
  158. package/dist/utils/settings-command.d.ts +1 -1
  159. package/dist/utils/settings-command.d.ts.map +1 -1
  160. package/dist/utils/settings-command.js +2 -0
  161. package/dist/utils/settings-command.js.map +1 -1
  162. package/package.json +6 -2
  163. package/readme.md +29 -24
@@ -0,0 +1,44 @@
1
+ import test from 'ava';
2
+ import { sanitizeLogMetadata } from './log-truncation.js';
3
+ test('sanitizeLogMetadata truncates image payloads in messages content', (t) => {
4
+ const longBase64 = 'data:image/png;base64,' + 'a'.repeat(10000);
5
+ const meta = {
6
+ eventType: 'provider.request.started',
7
+ messages: [
8
+ {
9
+ role: 'user',
10
+ content: [
11
+ { type: 'text', text: 'describe this' },
12
+ { type: 'image', image: longBase64 },
13
+ { type: 'input_image', image_url: { url: longBase64, detail: 'high' } },
14
+ ],
15
+ },
16
+ ],
17
+ };
18
+ const sanitized = sanitizeLogMetadata(meta);
19
+ const firstMessage = sanitized.messages[0];
20
+ const directImage = firstMessage.content[1].image;
21
+ const imageUrl = firstMessage.content[2].image_url.url;
22
+ t.not(sanitized, meta);
23
+ t.true(directImage.length < 500);
24
+ t.true(directImage.endsWith('... (truncated)'));
25
+ t.true(imageUrl.length < 500);
26
+ t.true(imageUrl.endsWith('... (truncated)'));
27
+ t.is(meta.messages[0].content[1].image, longBase64);
28
+ t.is(meta.messages[0].content[2].image_url.url, longBase64);
29
+ });
30
+ test('sanitizeLogMetadata returns metadata unchanged when there are no truncation targets', (t) => {
31
+ const meta = {
32
+ eventType: 'provider.request.started',
33
+ messages: [
34
+ {
35
+ role: 'user',
36
+ content: [{ type: 'text', text: 'plain text only' }],
37
+ },
38
+ ],
39
+ provider: 'openai',
40
+ };
41
+ const sanitized = sanitizeLogMetadata(meta);
42
+ t.is(sanitized, meta);
43
+ });
44
+ //# sourceMappingURL=log-truncation.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-truncation.test.js","sourceRoot":"","sources":["../../source/utils/log-truncation.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,KAAK,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,IAAI,CAAC,kEAAkE,EAAE,CAAC,CAAC,EAAE,EAAE;IAC7E,MAAM,UAAU,GAAG,wBAAwB,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG;QACX,SAAS,EAAE,0BAA0B;QACrC,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE;oBACvC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE;oBACpC,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;iBACxE;aACF;SACF;KACF,CAAC;IAEF,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC;IAC5C,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAU,CAAC,GAAG,CAAC;IAExD,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;IACjC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;IAC9B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACrD,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AAChE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qFAAqF,EAAE,CAAC,CAAC,EAAE,EAAE;IAChG,MAAM,IAAI,GAAG;QACX,SAAS,EAAE,0BAA0B;QACrC,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;aACrD;SACF;QACD,QAAQ,EAAE,QAAQ;KACnB,CAAC;IAEF,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAE5C,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { SlashCommand } from '../components/SlashCommandMenu.js';
1
+ import type { SlashCommand } from '../slash-commands.js';
2
2
  import type { SettingsService, SettingsWithSources } from '../services/settings-service.js';
3
3
  export declare function parseSettingValue(raw: string): any;
4
4
  export declare function formatSettingsSummary(settings: SettingsWithSources): string;
@@ -1 +1 @@
1
- {"version":3,"file":"settings-command.d.ts","sourceRoot":"","sources":["../../source/utils/settings-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAM5F,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAYlD;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,CAiF3E;AAED,UAAU,yBAAyB;IACjC,eAAe,EAAE,eAAe,CAAC;IACjC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACxD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,wBAAgB,qBAAqB,CAAC,EACpC,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,QAAQ,GACT,EAAE,yBAAyB,GAAG,YAAY,CAgG1C"}
1
+ {"version":3,"file":"settings-command.d.ts","sourceRoot":"","sources":["../../source/utils/settings-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAM5F,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAYlD;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,CAiF3E;AAED,UAAU,yBAAyB;IACjC,eAAe,EAAE,eAAe,CAAC;IACjC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACxD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,wBAAgB,qBAAqB,CAAC,EACpC,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,QAAQ,GACT,EAAE,yBAAyB,GAAG,YAAY,CAiG1C"}
@@ -1,3 +1,4 @@
1
+ import { SETTINGS_RESET_TRIGGER, SETTINGS_TRIGGER } from '../components/Input/triggers.js';
1
2
  import { SETTING_KEYS } from '../services/settings-service.js';
2
3
  import { getProvider } from '../providers/index.js';
3
4
  import { parseModelProviderArg } from './model-provider-arg.js';
@@ -99,6 +100,7 @@ export function createSettingsCommand({ settingsService, addSystemMessage, apply
99
100
  name: 'settings',
100
101
  description: 'View or modify settings',
101
102
  expectsArgs: true,
103
+ completion: { type: 'settings', trigger: SETTINGS_TRIGGER, resetTrigger: SETTINGS_RESET_TRIGGER },
102
104
  action: (args) => {
103
105
  const trimmedArgs = args?.trim() ?? '';
104
106
  // No args: prompt for setting name with autocomplete
@@ -1 +1 @@
1
- {"version":3,"file":"settings-command.js","sourceRoot":"","sources":["../../source/utils/settings-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings-command.js","sourceRoot":"","sources":["../../source/utils/settings-command.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qduc/term2",
3
- "version": "0.2.0",
3
+ "version": "0.3.1",
4
4
  "description": "A terminal-based AI assistant that can help you get things done on your computer",
5
5
  "license": "MIT",
6
6
  "author": "qduc",
@@ -48,17 +48,21 @@
48
48
  "dist"
49
49
  ],
50
50
  "dependencies": {
51
+ "@ai-sdk/openai-compatible": "^2.0.47",
51
52
  "@mozilla/readability": "^0.6.0",
52
53
  "@openai/agents": "^0.8.3",
54
+ "@openai/agents-extensions": "^0.11.1",
55
+ "@openrouter/ai-sdk-provider": "^2.9.0",
53
56
  "@qduc/web-fetch": "^0.1.0",
54
57
  "@types/ssh2": "^1.15.5",
58
+ "ai": "^6.0.177",
55
59
  "bash-parser": "^0.5.0",
56
60
  "env-paths": "^3.0.0",
57
61
  "fast-glob": "^3.3.2",
58
62
  "fuse.js": "^7.0.0",
59
63
  "ignore": "^5.3.2",
60
64
  "ink": "^7.0.1",
61
- "ink-prompt": "^0.1.9",
65
+ "ink-prompt": "^0.2.4",
62
66
  "jsdom": "^27.4.0",
63
67
  "marked": "^17.0.1",
64
68
  "meow": "^11.0.0",
package/readme.md CHANGED
@@ -15,18 +15,22 @@ https://github.com/user-attachments/assets/ac960d65-f7c8-453a-9440-91f6397ae842
15
15
 
16
16
  - 🎭 **Three Operating Modes** - Default (full-power), Lite (fast & safe), and Mentor (get help from a smarter model on complex problems)
17
17
  - 🌍 **Open Source** - MIT licensed, hackable, auditable, community-driven
18
- - πŸ€– **Multi-Provider Support** - Works with OpenAI, OpenRouter, and OpenAI-compatible APIs
18
+ - πŸ€– **Multi-Provider Support** - Works with OpenAI, OpenRouter, OpenAI-compatible APIs, and Vercel AI SDK providers
19
19
  - πŸ”’ **Safe Execution** - Every command requires your explicit approval with diff preview
20
- - πŸ› οΈ **Advanced Tools** - Shell execution, file patching, search/replace, grep, find files, file reading, web search, and mentor consultation
21
- - πŸ’¬ **Slash Commands** - Quick actions like `/clear`, `/quit`, `/model`, `/mentor`, `/lite` for easy control
20
+ - πŸ› οΈ **Advanced Tools** - Shell execution, file patching, search/replace (with `<...>` gap matching), grep, find files, file reading, file creation, web search, and mentor consultation
21
+ - πŸ’¬ **Slash Commands** - Quick actions like `/clear`, `/quit`, `/model`, `/mentor`, `/lite`, `/copy`, `/auto-approve` for easy control
22
22
  - πŸ“ **Smart Context** - The assistant understands your environment and provides relevant help
23
23
  - 🎯 **Streaming Responses** - See the AI's thoughts and reasoning in real-time
24
24
  - 🧠 **Reasoning Effort Control** - Configurable reasoning levels (minimal to high) for O1/O3 models
25
25
  - ⚑ **Command History** - Navigate previous inputs with arrow keys
26
- - 🎨 **Markdown Rendering** - Formatted code blocks and text in the terminal
26
+ - 🎨 **Markdown Rendering** - Formatted code blocks, tables, and text in the terminal
27
27
  - πŸ”„ **Retry Logic** - Automatic recovery from tool hallucinations and upstream errors
28
28
  - 🌐 **SSH Mode** - Execute commands and edit files on remote servers over SSH
29
29
  - πŸ€– **Non-Interactive Mode** - Run commands from the CLI without starting the full UI
30
+ - ✏️ **Edit Mode** - Press `Shift+Tab` to auto-approve file edits in your workspace for faster development
31
+ - πŸ€– **Auto-Approval** - Optional LLM-based safety evaluation can automatically approve safe shell commands
32
+ - πŸ–ΌοΈ **Image Pasting** - Paste images from your clipboard directly into the terminal for vision-model analysis
33
+ - πŸ“ˆ **Real-time Token Usage** - Live token consumption displayed during streaming
30
34
 
31
35
  ## Why term2 vs Alternatives?
32
36
 
@@ -51,7 +55,7 @@ https://github.com/user-attachments/assets/ac960d65-f7c8-453a-9440-91f6397ae842
51
55
 
52
56
  **Requirements:**
53
57
 
54
- - Node.js 16 or higher
58
+ - Node.js 20 or higher
55
59
  - An API key from OpenAI, OpenRouter, or any OpenAI-compatible provider
56
60
 
57
61
  Install globally via npm:
@@ -139,6 +143,8 @@ While in the chat, you can use these commands:
139
143
  - `/model [model-name]` - Switch to a different model
140
144
  - `/mentor` - Toggle mentor mode (see "Operating Modes" section for details)
141
145
  - `/lite` - Toggle lite mode (see "Operating Modes" section for details)
146
+ - `/copy` - Copy the latest assistant response
147
+ - `/auto-approve [off|advisory|auto]` - Set or cycle shell auto-approval mode
142
148
  - `/settings [key] [value]` - Modify runtime settings (e.g., `/settings agent.temperature 0.7`)
143
149
 
144
150
  ## Operating Modes
@@ -222,7 +228,7 @@ Mentor mode gives you two AI minds working together on your codebase. Your prima
222
228
 
223
229
  **Requirements:**
224
230
 
225
- - Configure `agent.mentorModel` in settings (e.g., `gpt-5.2`, `claude-opus-4.5` or `gemini-3-pro-preview`)
231
+ - Configure `agent.mentorModel` in settings (e.g., `gpt-5.5`, `claude-opus-4.6` or `gemini-3.1-pro-preview`)
226
232
  - Mentor model should be more capable than primary model for best results
227
233
  - Toggle with `/mentor` command mid-session
228
234
 
@@ -253,10 +259,11 @@ AI: [Does additional checks based on mentor's questions]
253
259
 
254
260
  Modes are mutually exclusiveβ€”each represents a different working style matched to your task. You can switch modes mid-session:
255
261
 
256
- - `/lite` - Toggle lite mode (clears history when switching)
262
+ - `/lite` - Toggle lite mode (requires clearing history first if session is active)
257
263
  - `/mentor` - Toggle mentor mode
264
+ - `Shift+Tab` - Toggle edit mode (auto-approves file edits in workspace)
258
265
  - Switching to lite mode automatically disables edit/mentor modes
259
- - Enabling edit or mentor mode automatically disables lite mode
266
+ - Enabling lite mode disables edit and mentor modes
260
267
 
261
268
  ## SSH Mode
262
269
 
@@ -375,8 +382,11 @@ export OPENAI_API_KEY="sk-..."
375
382
  # OpenRouter (for Claude, Gemini, and other models)
376
383
  export OPENROUTER_API_KEY="sk-or-v1-..."
377
384
 
378
- # Web Search (Tavily)
385
+ # Web Search (Tavily β€” default)
379
386
  export TAVILY_API_KEY="tvly-..."
387
+
388
+ # Web Search (Exa)
389
+ export EXA_API_KEY="..."
380
390
  ```
381
391
 
382
392
  To make them permanent, add these exports to your shell configuration file (`~/.bashrc`, `~/.zshrc`, or `~/.profile`).
@@ -477,17 +487,12 @@ term2 works with multiple AI providers:
477
487
 
478
488
  ### OpenAI (default)
479
489
 
480
- - `gpt-5.2` (latest)
490
+ - `gpt-5.5` (latest)
491
+ - `gpt-5.4`
492
+ - `gpt-5.4-mini`
493
+ - `gpt-5.3-codex`
494
+ - `gpt-5.2`
481
495
  - `gpt-5.1` (default)
482
- - `gpt-5`
483
- - `gpt-5-mini`
484
- - `gpt-4.1`
485
- - `gpt-4.1-mini`
486
- - `gpt-5.1`
487
- - `gpt-5.1-mini`
488
- - `o3` (supports reasoning effort)
489
- - `o3-mini` (supports reasoning effort)
490
- - `o1` (supports reasoning effort)
491
496
 
492
497
  ### OpenRouter
493
498
 
@@ -503,13 +508,14 @@ Use CLI flags (`-m model-name`) or settings file to select OpenRouter models.
503
508
 
504
509
  term2 can connect to any OpenAI-compatible API. This allows you to use:
505
510
 
506
- - **Local Models**: Run private models locally via Ollama, LM Studio, vLLM, or LocalAI.
511
+ - **Local Models**: Run private models locally via Ollama, LM Studio, vLLM, or llama.cpp.
507
512
  - **Self-Hosted**: Connect to private deployments of models.
508
513
  - **Other Providers**: Any service offering an OpenAI-compatible endpoint (e.g., Groq, Together AI).
509
514
 
510
515
  ## Safety Features
511
516
 
512
517
  - **Command Approval** - Every destructive operation requires your explicit confirmation
518
+ - **Auto-Approval** - Optional LLM-based safety evaluation with advisory and auto modes for shell commands
513
519
  - **Diff Preview** - See exact file changes before approving patches or edits
514
520
  - **Risk Analysis** - Dangerous operations (like `rm -rf`, `git push --force`) are flagged
515
521
  - **Path Safety** - Operations on sensitive directories require extra caution
@@ -616,6 +622,9 @@ term2 --ssh user@host --lite
616
622
  - Use arrow keys to navigate through your command history
617
623
  - Be specific in your requests for better results
618
624
  - Use `/mentor` to get expert consultation on difficult architectural decisions
625
+ - Use `Shift+Tab` to toggle edit mode for faster file editing workflows
626
+ - Use `/auto-approve` to enable LLM-based safety evaluation for faster shell command workflows
627
+ - Paste images directly into the terminal when using vision-capable models
619
628
  - Use `--lite` flag when SSH'ing to servers for general system work without codebase context
620
629
 
621
630
  ## Contributing
@@ -634,7 +643,3 @@ Built with:
634
643
  - [Ink](https://github.com/vadimdemedes/ink) - React for CLI
635
644
  - [TypeScript](https://www.typescriptlang.org/)
636
645
  - [ssh2](https://github.com/mscdex/ssh2) - SSH client for Node.js
637
-
638
- ---
639
-
640
- Made with ❀️ by [qduc](https://github.com/qduc)