@qduc/term2 0.8.0 → 0.9.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 (305) hide show
  1. package/README.md +397 -0
  2. package/dist/agent.d.ts +1 -9
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +2 -127
  5. package/dist/agent.js.map +1 -1
  6. package/dist/app.d.ts.map +1 -1
  7. package/dist/app.js +21 -12
  8. package/dist/app.js.map +1 -1
  9. package/dist/commands/effort-command.d.ts +2 -2
  10. package/dist/commands/effort-command.d.ts.map +1 -1
  11. package/dist/commands/effort-command.js +3 -3
  12. package/dist/commands/effort-command.js.map +1 -1
  13. package/dist/commands/guarded-settings-command.d.ts +2 -2
  14. package/dist/commands/guarded-settings-command.d.ts.map +1 -1
  15. package/dist/commands/guarded-settings-command.js +2 -2
  16. package/dist/commands/guarded-settings-command.js.map +1 -1
  17. package/dist/commands/model-command.d.ts +2 -2
  18. package/dist/commands/model-command.d.ts.map +1 -1
  19. package/dist/commands/model-command.js +2 -2
  20. package/dist/commands/model-command.js.map +1 -1
  21. package/dist/commands/skills-command.d.ts +1 -1
  22. package/dist/commands/skills-command.d.ts.map +1 -1
  23. package/dist/commands/skills-command.js +1 -1
  24. package/dist/commands/skills-command.js.map +1 -1
  25. package/dist/commands/undo-command.d.ts +2 -2
  26. package/dist/commands/undo-command.d.ts.map +1 -1
  27. package/dist/commands/undo-command.js +2 -2
  28. package/dist/commands/undo-command.js.map +1 -1
  29. package/dist/components/Input/insertions.d.ts +2 -0
  30. package/dist/components/Input/insertions.d.ts.map +1 -1
  31. package/dist/components/Input/insertions.js +6 -3
  32. package/dist/components/Input/insertions.js.map +1 -1
  33. package/dist/components/InputBox.d.ts.map +1 -1
  34. package/dist/components/InputBox.js +26 -12
  35. package/dist/components/InputBox.js.map +1 -1
  36. package/dist/components/MarkdownRenderer.d.ts.map +1 -1
  37. package/dist/components/MarkdownRenderer.js +2 -1
  38. package/dist/components/MarkdownRenderer.js.map +1 -1
  39. package/dist/components/layout/BottomArea.d.ts.map +1 -1
  40. package/dist/components/layout/BottomArea.js +2 -0
  41. package/dist/components/layout/BottomArea.js.map +1 -1
  42. package/dist/components/layout/DiffView.d.ts.map +1 -1
  43. package/dist/components/layout/DiffView.js +33 -26
  44. package/dist/components/layout/DiffView.js.map +1 -1
  45. package/dist/components/layout/StatusBar.d.ts.map +1 -1
  46. package/dist/components/layout/StatusBar.js +6 -3
  47. package/dist/components/layout/StatusBar.js.map +1 -1
  48. package/dist/components/message/CommandMessage.d.ts.map +1 -1
  49. package/dist/components/message/CommandMessage.js +6 -4
  50. package/dist/components/message/CommandMessage.js.map +1 -1
  51. package/dist/components/message/command-message-helpers.d.ts +1 -1
  52. package/dist/components/message/command-message-helpers.d.ts.map +1 -1
  53. package/dist/components/message/command-message-helpers.js +8 -7
  54. package/dist/components/message/command-message-helpers.js.map +1 -1
  55. package/dist/components/prompt/ApprovalPrompt.d.ts.map +1 -1
  56. package/dist/components/prompt/ApprovalPrompt.js +101 -14
  57. package/dist/components/prompt/ApprovalPrompt.js.map +1 -1
  58. package/dist/context/InputContext.d.ts +4 -0
  59. package/dist/context/InputContext.d.ts.map +1 -1
  60. package/dist/context/InputContext.js +5 -1
  61. package/dist/context/InputContext.js.map +1 -1
  62. package/dist/contracts/conversation.d.ts +22 -0
  63. package/dist/contracts/conversation.d.ts.map +1 -1
  64. package/dist/contracts/conversation.js +11 -1
  65. package/dist/contracts/conversation.js.map +1 -1
  66. package/dist/hooks/use-app-commands.d.ts +2 -2
  67. package/dist/hooks/use-app-commands.d.ts.map +1 -1
  68. package/dist/hooks/use-app-commands.js +7 -7
  69. package/dist/hooks/use-app-commands.js.map +1 -1
  70. package/dist/hooks/use-conversation.d.ts.map +1 -1
  71. package/dist/hooks/use-conversation.js +13 -8
  72. package/dist/hooks/use-conversation.js.map +1 -1
  73. package/dist/hooks/use-handoff-flow.d.ts +3 -2
  74. package/dist/hooks/use-handoff-flow.d.ts.map +1 -1
  75. package/dist/hooks/use-handoff-flow.js +28 -18
  76. package/dist/hooks/use-handoff-flow.js.map +1 -1
  77. package/dist/hooks/use-mode-handlers.js +1 -2
  78. package/dist/hooks/use-mode-handlers.js.map +1 -1
  79. package/dist/hooks/use-model-selection.d.ts.map +1 -1
  80. package/dist/hooks/use-model-selection.js +6 -2
  81. package/dist/hooks/use-model-selection.js.map +1 -1
  82. package/dist/hooks/use-path-completion.d.ts.map +1 -1
  83. package/dist/hooks/use-path-completion.js +4 -2
  84. package/dist/hooks/use-path-completion.js.map +1 -1
  85. package/dist/hooks/use-pending-turn-guards.d.ts +2 -2
  86. package/dist/hooks/use-pending-turn-guards.d.ts.map +1 -1
  87. package/dist/hooks/use-pending-turn-guards.js +8 -8
  88. package/dist/hooks/use-pending-turn-guards.js.map +1 -1
  89. package/dist/hooks/use-provider-selection.js +19 -18
  90. package/dist/hooks/use-provider-selection.js.map +1 -1
  91. package/dist/hooks/use-selection.d.ts.map +1 -1
  92. package/dist/hooks/use-selection.js +5 -1
  93. package/dist/hooks/use-selection.js.map +1 -1
  94. package/dist/hooks/use-setting.d.ts.map +1 -1
  95. package/dist/hooks/use-setting.js +3 -5
  96. package/dist/hooks/use-setting.js.map +1 -1
  97. package/dist/hooks/use-settings-completion.d.ts.map +1 -1
  98. package/dist/hooks/use-settings-completion.js +19 -7
  99. package/dist/hooks/use-settings-completion.js.map +1 -1
  100. package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
  101. package/dist/hooks/use-settings-value-completion.js +13 -2
  102. package/dist/hooks/use-settings-value-completion.js.map +1 -1
  103. package/dist/hooks/use-shell-mode.d.ts +2 -2
  104. package/dist/hooks/use-shell-mode.d.ts.map +1 -1
  105. package/dist/hooks/use-shell-mode.js +5 -3
  106. package/dist/hooks/use-shell-mode.js.map +1 -1
  107. package/dist/hooks/use-skill-selection.js +3 -3
  108. package/dist/hooks/use-skill-selection.js.map +1 -1
  109. package/dist/hooks/use-slash-commands.js +3 -3
  110. package/dist/hooks/use-slash-commands.js.map +1 -1
  111. package/dist/hooks/use-terminal-width.js +2 -2
  112. package/dist/hooks/use-terminal-width.js.map +1 -1
  113. package/dist/hooks/use-undo-selection.d.ts.map +1 -1
  114. package/dist/hooks/use-undo-selection.js +3 -1
  115. package/dist/hooks/use-undo-selection.js.map +1 -1
  116. package/dist/lib/agent-chat-service.js +2 -2
  117. package/dist/lib/agent-chat-service.js.map +1 -1
  118. package/dist/lib/agent-run-orchestrator.js +1 -1
  119. package/dist/lib/agent-run-orchestrator.js.map +1 -1
  120. package/dist/lib/subagent-bridge.d.ts.map +1 -1
  121. package/dist/lib/subagent-bridge.js +15 -3
  122. package/dist/lib/subagent-bridge.js.map +1 -1
  123. package/dist/non-interactive.d.ts.map +1 -1
  124. package/dist/non-interactive.js +0 -2
  125. package/dist/non-interactive.js.map +1 -1
  126. package/dist/prompts/anthropic.md +1 -0
  127. package/dist/prompts/codex.md +1 -0
  128. package/dist/prompts/gpt-5-modern.md +1 -0
  129. package/dist/prompts/gpt-5.5.md +1 -0
  130. package/dist/prompts/kimi.md +3 -1
  131. package/dist/prompts/prompt-constructor.js +2 -2
  132. package/dist/prompts/prompt-constructor.js.map +1 -1
  133. package/dist/prompts/prompt-constructor.ts +2 -2
  134. package/dist/prompts/subagent-delegation.js +1 -1
  135. package/dist/prompts/subagent-delegation.ts +1 -1
  136. package/dist/providers/codex-responses-model.d.ts.map +1 -1
  137. package/dist/providers/codex-responses-model.js +4 -3
  138. package/dist/providers/codex-responses-model.js.map +1 -1
  139. package/dist/providers/openai-compatible-middleware.js +1 -1
  140. package/dist/providers/openai-compatible-middleware.js.map +1 -1
  141. package/dist/providers/openai-compatible.provider.js +1 -1
  142. package/dist/providers/openai-compatible.provider.js.map +1 -1
  143. package/dist/scripts/eval-auto-approval/runner.js +1 -1
  144. package/dist/scripts/eval-auto-approval/runner.js.map +1 -1
  145. package/dist/services/approval/approval-flow-coordinator.d.ts.map +1 -1
  146. package/dist/services/approval/approval-flow-coordinator.js +41 -1
  147. package/dist/services/approval/approval-flow-coordinator.js.map +1 -1
  148. package/dist/services/approval/shell-sandbox-approval.d.ts +2 -0
  149. package/dist/services/approval/shell-sandbox-approval.d.ts.map +1 -0
  150. package/dist/services/approval/shell-sandbox-approval.js +7 -0
  151. package/dist/services/approval/shell-sandbox-approval.js.map +1 -0
  152. package/dist/services/approval/tool-approval-batch-coordinator.d.ts.map +1 -1
  153. package/dist/services/approval/tool-approval-batch-coordinator.js +4 -2
  154. package/dist/services/approval/tool-approval-batch-coordinator.js.map +1 -1
  155. package/dist/services/conversation/conversation-replay.js +1 -1
  156. package/dist/services/conversation/conversation-replay.js.map +1 -1
  157. package/dist/services/conversation/conversation-result-builder.d.ts +2 -0
  158. package/dist/services/conversation/conversation-result-builder.d.ts.map +1 -1
  159. package/dist/services/conversation/conversation-result-builder.js +31 -2
  160. package/dist/services/conversation/conversation-result-builder.js.map +1 -1
  161. package/dist/services/logging/logging-service.js +2 -2
  162. package/dist/services/logging/logging-service.js.map +1 -1
  163. package/dist/services/rtk-service.d.ts.map +1 -1
  164. package/dist/services/rtk-service.js +6 -2
  165. package/dist/services/rtk-service.js.map +1 -1
  166. package/dist/services/session/session-input-planner.d.ts.map +1 -1
  167. package/dist/services/session/session-input-planner.js +22 -2
  168. package/dist/services/session/session-input-planner.js.map +1 -1
  169. package/dist/services/session/session-tool-tracker.d.ts +13 -0
  170. package/dist/services/session/session-tool-tracker.d.ts.map +1 -1
  171. package/dist/services/session/session-tool-tracker.js +18 -3
  172. package/dist/services/session/session-tool-tracker.js.map +1 -1
  173. package/dist/services/session/test-helpers/conversation-session-fixtures.d.ts +12 -0
  174. package/dist/services/session/test-helpers/conversation-session-fixtures.d.ts.map +1 -0
  175. package/dist/services/session/test-helpers/conversation-session-fixtures.js +29 -0
  176. package/dist/services/session/test-helpers/conversation-session-fixtures.js.map +1 -0
  177. package/dist/services/settings/settings-merger.d.ts.map +1 -1
  178. package/dist/services/settings/settings-merger.js +7 -5
  179. package/dist/services/settings/settings-merger.js.map +1 -1
  180. package/dist/services/settings/settings-persistence.js +1 -1
  181. package/dist/services/settings/settings-persistence.js.map +1 -1
  182. package/dist/services/settings/settings-schema.d.ts +25 -0
  183. package/dist/services/settings/settings-schema.d.ts.map +1 -1
  184. package/dist/services/settings/settings-schema.js +23 -2
  185. package/dist/services/settings/settings-schema.js.map +1 -1
  186. package/dist/services/settings/settings-sources.d.ts.map +1 -1
  187. package/dist/services/settings/settings-sources.js +5 -0
  188. package/dist/services/settings/settings-sources.js.map +1 -1
  189. package/dist/services/skills/skills-service.d.ts.map +1 -1
  190. package/dist/services/skills/skills-service.js +3 -10
  191. package/dist/services/skills/skills-service.js.map +1 -1
  192. package/dist/services/subagents/role-loader.js +3 -3
  193. package/dist/services/subagents/role-loader.js.map +1 -1
  194. package/dist/services/subagents/test-helpers/subagent-manager-fixtures.d.ts +35 -0
  195. package/dist/services/subagents/test-helpers/subagent-manager-fixtures.d.ts.map +1 -0
  196. package/dist/services/subagents/test-helpers/subagent-manager-fixtures.js +174 -0
  197. package/dist/services/subagents/test-helpers/subagent-manager-fixtures.js.map +1 -0
  198. package/dist/services/subagents/tool-policy.d.ts.map +1 -1
  199. package/dist/services/subagents/tool-policy.js +18 -0
  200. package/dist/services/subagents/tool-policy.js.map +1 -1
  201. package/dist/services/tool-execution-ledger.d.ts +41 -0
  202. package/dist/services/tool-execution-ledger.d.ts.map +1 -1
  203. package/dist/services/tool-execution-ledger.js +113 -0
  204. package/dist/services/tool-execution-ledger.js.map +1 -1
  205. package/dist/tools/agent/activate-skill.js +1 -1
  206. package/dist/tools/agent/activate-skill.js.map +1 -1
  207. package/dist/tools/agent/ask-user.d.ts.map +1 -1
  208. package/dist/tools/agent/ask-user.js +4 -15
  209. package/dist/tools/agent/ask-user.js.map +1 -1
  210. package/dist/tools/agent/run-subagent.d.ts.map +1 -1
  211. package/dist/tools/agent/run-subagent.js +2 -5
  212. package/dist/tools/agent/run-subagent.js.map +1 -1
  213. package/dist/tools/file/apply-patch.js +2 -2
  214. package/dist/tools/file/apply-patch.js.map +1 -1
  215. package/dist/tools/file/create-file.d.ts.map +1 -1
  216. package/dist/tools/file/create-file.js +2 -5
  217. package/dist/tools/file/create-file.js.map +1 -1
  218. package/dist/tools/file/find-files.d.ts.map +1 -1
  219. package/dist/tools/file/find-files.js +21 -18
  220. package/dist/tools/file/find-files.js.map +1 -1
  221. package/dist/tools/file/read-file.d.ts.map +1 -1
  222. package/dist/tools/file/read-file.js +17 -3
  223. package/dist/tools/file/read-file.js.map +1 -1
  224. package/dist/tools/file/search-replace.d.ts.map +1 -1
  225. package/dist/tools/file/search-replace.js +2 -3
  226. package/dist/tools/file/search-replace.js.map +1 -1
  227. package/dist/tools/format-helpers.js +0 -2
  228. package/dist/tools/format-helpers.js.map +1 -1
  229. package/dist/tools/languages/csharp.js +1 -1
  230. package/dist/tools/languages/csharp.js.map +1 -1
  231. package/dist/tools/languages/java.js +1 -1
  232. package/dist/tools/languages/java.js.map +1 -1
  233. package/dist/tools/system/code-context.d.ts.map +1 -1
  234. package/dist/tools/system/code-context.js +28 -10
  235. package/dist/tools/system/code-context.js.map +1 -1
  236. package/dist/tools/system/grep.d.ts.map +1 -1
  237. package/dist/tools/system/grep.js +6 -14
  238. package/dist/tools/system/grep.js.map +1 -1
  239. package/dist/tools/system/shell.d.ts +9 -1
  240. package/dist/tools/system/shell.d.ts.map +1 -1
  241. package/dist/tools/system/shell.js +115 -7
  242. package/dist/tools/system/shell.js.map +1 -1
  243. package/dist/tools/utils.d.ts +4 -0
  244. package/dist/tools/utils.d.ts.map +1 -1
  245. package/dist/tools/utils.js +13 -0
  246. package/dist/tools/utils.js.map +1 -1
  247. package/dist/tools/web/web-fetch.js +1 -1
  248. package/dist/tools/web/web-fetch.js.map +1 -1
  249. package/dist/utils/conversation/conversation-event-handler.js +1 -1
  250. package/dist/utils/conversation/conversation-event-handler.js.map +1 -1
  251. package/dist/utils/conversation/test-helpers/event-handler-fixtures.d.ts +31 -0
  252. package/dist/utils/conversation/test-helpers/event-handler-fixtures.d.ts.map +1 -0
  253. package/dist/utils/conversation/test-helpers/event-handler-fixtures.js +42 -0
  254. package/dist/utils/conversation/test-helpers/event-handler-fixtures.js.map +1 -0
  255. package/dist/utils/output/output-trim.d.ts +1 -1
  256. package/dist/utils/output/output-trim.js +1 -1
  257. package/dist/utils/project-tree.d.ts +7 -12
  258. package/dist/utils/project-tree.d.ts.map +1 -1
  259. package/dist/utils/project-tree.js +184 -83
  260. package/dist/utils/project-tree.js.map +1 -1
  261. package/dist/utils/settings-command.d.ts +2 -2
  262. package/dist/utils/settings-command.d.ts.map +1 -1
  263. package/dist/utils/settings-command.js +2 -2
  264. package/dist/utils/settings-command.js.map +1 -1
  265. package/dist/utils/shell/command-safety/find-helpers.js +1 -1
  266. package/dist/utils/shell/command-safety/find-helpers.js.map +1 -1
  267. package/dist/utils/shell/command-safety/handlers/git-handler.js +1 -1
  268. package/dist/utils/shell/command-safety/handlers/git-handler.js.map +1 -1
  269. package/dist/utils/shell/execute-shell.d.ts +2 -0
  270. package/dist/utils/shell/execute-shell.d.ts.map +1 -1
  271. package/dist/utils/shell/execute-shell.js +9 -6
  272. package/dist/utils/shell/execute-shell.js.map +1 -1
  273. package/dist/utils/shell/sandbox/denied-read-detector.d.ts +39 -0
  274. package/dist/utils/shell/sandbox/denied-read-detector.d.ts.map +1 -0
  275. package/dist/utils/shell/sandbox/denied-read-detector.js +250 -0
  276. package/dist/utils/shell/sandbox/denied-read-detector.js.map +1 -0
  277. package/dist/utils/shell/sandbox/denied-read-stores.d.ts +74 -0
  278. package/dist/utils/shell/sandbox/denied-read-stores.d.ts.map +1 -0
  279. package/dist/utils/shell/sandbox/denied-read-stores.js +166 -0
  280. package/dist/utils/shell/sandbox/denied-read-stores.js.map +1 -0
  281. package/dist/utils/shell/sandbox/sandbox-env.d.ts +3 -0
  282. package/dist/utils/shell/sandbox/sandbox-env.d.ts.map +1 -0
  283. package/dist/utils/shell/sandbox/sandbox-env.js +31 -0
  284. package/dist/utils/shell/sandbox/sandbox-env.js.map +1 -0
  285. package/dist/utils/shell/sandbox/sandbox-policy.d.ts +41 -0
  286. package/dist/utils/shell/sandbox/sandbox-policy.d.ts.map +1 -0
  287. package/dist/utils/shell/sandbox/sandbox-policy.js +217 -0
  288. package/dist/utils/shell/sandbox/sandbox-policy.js.map +1 -0
  289. package/dist/utils/shell/sandbox/shell-sandbox-runner.d.ts +18 -0
  290. package/dist/utils/shell/sandbox/shell-sandbox-runner.d.ts.map +1 -0
  291. package/dist/utils/shell/sandbox/shell-sandbox-runner.js +58 -0
  292. package/dist/utils/shell/sandbox/shell-sandbox-runner.js.map +1 -0
  293. package/dist/utils/shell/shell-output.d.ts.map +1 -1
  294. package/dist/utils/shell/shell-output.js +8 -6
  295. package/dist/utils/shell/shell-output.js.map +1 -1
  296. package/dist/utils/shell/temp-dir.d.ts +2 -0
  297. package/dist/utils/shell/temp-dir.d.ts.map +1 -0
  298. package/dist/utils/shell/temp-dir.js +38 -0
  299. package/dist/utils/shell/temp-dir.js.map +1 -0
  300. package/dist/utils/skill-discovery-paths.d.ts +5 -0
  301. package/dist/utils/skill-discovery-paths.d.ts.map +1 -0
  302. package/dist/utils/skill-discovery-paths.js +18 -0
  303. package/dist/utils/skill-discovery-paths.js.map +1 -0
  304. package/package.json +10 -16
  305. package/readme.md +0 -887
@@ -0,0 +1 @@
1
+ {"version":3,"file":"temp-dir.d.ts","sourceRoot":"","sources":["../../../source/utils/shell/temp-dir.ts"],"names":[],"mappings":"AA2CA,eAAO,MAAM,gBAAgB,QAAyB,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { mkdirSync, realpathSync } from 'node:fs';
2
+ import { tmpdir } from 'node:os';
3
+ import { join, basename } from 'node:path';
4
+ import { homedir } from 'node:os';
5
+ /**
6
+ * Per-user, deterministic temp directory for sandboxed shell commands.
7
+ *
8
+ * Resolves to a deterministic per-user location matching env-paths:
9
+ * - macOS: `${os.tmpdir()}/term2-nodejs` (tmpdir is user-private)
10
+ * - Linux: `${os.tmpdir()}/${username}/term2-nodejs`
11
+ * - Windows: `${os.tmpdir()}/term2-nodejs`
12
+ *
13
+ * If TMPDIR already contains the app directory suffix — e.g. because a
14
+ * prior session or container set TMPDIR=/tmp/qduc/term2-nodejs — uses
15
+ * `os.tmpdir()` directly to avoid duplication.
16
+ *
17
+ * On macOS `os.tmpdir()` may return a symlinked path; we resolve it so the
18
+ * sandbox allowWrite entry matches the path a child process writes through.
19
+ */
20
+ const appDir = 'term2-nodejs';
21
+ function resolveTempDir() {
22
+ const base = tmpdir();
23
+ // Avoid double-pathing: if the system tmpdir already ends with our app
24
+ // directory suffix, use it as-is.
25
+ if (base.endsWith(appDir)) {
26
+ return base;
27
+ }
28
+ if (process.platform === 'darwin') {
29
+ // macOS: os.tmpdir() is already user-private.
30
+ return join(base, appDir);
31
+ }
32
+ // Linux/others: add per-user isolation.
33
+ return join(base, basename(homedir()), appDir);
34
+ }
35
+ const tempPath = resolveTempDir();
36
+ mkdirSync(tempPath, { recursive: true });
37
+ export const SANDBOX_TEMP_DIR = realpathSync(tempPath);
38
+ //# sourceMappingURL=temp-dir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"temp-dir.js","sourceRoot":"","sources":["../../../source/utils/shell/temp-dir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,GAAG,cAAc,CAAC;AAE9B,SAAS,cAAc;IACrB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;IAEtB,uEAAuE;IACvE,kCAAkC;IAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,8CAA8C;QAC9C,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,wCAAwC;IACxC,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;AAClC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAEzC,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const SKILL_SCOPE_DIRS: readonly [".term2", ".agents", ".claude"];
2
+ export declare function getProjectSkillScopes(baseDir: string): string[];
3
+ export declare function getUserSkillScopes(homeDir?: string): string[];
4
+ export declare function getDiscoveredSkillRoots(baseDir: string, homeDir?: string): string[];
5
+ //# sourceMappingURL=skill-discovery-paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-discovery-paths.d.ts","sourceRoot":"","sources":["../../source/utils/skill-discovery-paths.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB,2CAA4C,CAAC;AAE1E,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAE/D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAO7D;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAEnF"}
@@ -0,0 +1,18 @@
1
+ import os from 'os';
2
+ import path from 'path';
3
+ // Centralized list of skill scope directory names.
4
+ export const SKILL_SCOPE_DIRS = ['.term2', '.agents', '.claude'];
5
+ export function getProjectSkillScopes(baseDir) {
6
+ return SKILL_SCOPE_DIRS.map((scopeDir) => path.join(baseDir, scopeDir, 'skills'));
7
+ }
8
+ export function getUserSkillScopes(homeDir) {
9
+ const resolvedHome = homeDir ?? os.homedir();
10
+ if (!resolvedHome) {
11
+ return [];
12
+ }
13
+ return getProjectSkillScopes(resolvedHome);
14
+ }
15
+ export function getDiscoveredSkillRoots(baseDir, homeDir) {
16
+ return [...getProjectSkillScopes(baseDir), ...getUserSkillScopes(homeDir)];
17
+ }
18
+ //# sourceMappingURL=skill-discovery-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-discovery-paths.js","sourceRoot":"","sources":["../../source/utils/skill-discovery-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,mDAAmD;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAU,CAAC;AAE1E,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,MAAM,YAAY,GAAG,OAAO,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAC7C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,qBAAqB,CAAC,YAAY,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAe,EAAE,OAAgB;IACvE,OAAO,CAAC,GAAG,qBAAqB,CAAC,OAAO,CAAC,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7E,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qduc/term2",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
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",
@@ -43,6 +43,7 @@
43
43
  "@ai-sdk/anthropic": "^3.0.76",
44
44
  "@ai-sdk/google": "^3.0.72",
45
45
  "@ai-sdk/provider": "^3.0.10",
46
+ "@anthropic-ai/sandbox-runtime": "^0.0.56",
46
47
  "@mozilla/readability": "^0.6.0",
47
48
  "@openai/agents": "^0.11.4",
48
49
  "@openai/agents-core": "^0.11.4",
@@ -74,6 +75,7 @@
74
75
  "devDependencies": {
75
76
  "@babel/cli": "^7.21.0",
76
77
  "@babel/preset-react": "^7.18.6",
78
+ "@eslint/js": "^9.39.4",
77
79
  "@types/env-paths": "^1.0.2",
78
80
  "@types/jsdom": "^27.0.0",
79
81
  "@types/marked": "^5.0.2",
@@ -83,9 +85,11 @@
83
85
  "@types/turndown": "^5.0.6",
84
86
  "@vitest/coverage-v8": "^4.1.9",
85
87
  "chalk": "^5.2.0",
86
- "eslint-config-xo-react": "^0.27.0",
88
+ "eslint": "^9.39.4",
89
+ "eslint-config-prettier": "^10.1.8",
87
90
  "eslint-plugin-react": "^7.32.2",
88
- "eslint-plugin-react-hooks": "^4.6.0",
91
+ "eslint-plugin-react-hooks": "^7.1.1",
92
+ "globals": "^17.6.0",
89
93
  "husky": "^9.1.7",
90
94
  "import-jsx": "^5.0.0",
91
95
  "ink-testing-library": "^4.0.0",
@@ -93,22 +97,12 @@
93
97
  "prettier": "^2.8.7",
94
98
  "tsx": "^4.20.6",
95
99
  "typescript": "^5.9.3",
100
+ "typescript-eslint": "^8.61.1",
96
101
  "vitest": "^4.1.9"
97
102
  },
98
103
  "lint-staged": {
99
104
  "*.{js,jsx,ts,tsx,md,json}": "prettier --write"
100
105
  },
101
- "xo": {
102
- "extends": "xo-react",
103
- "prettier": true,
104
- "ignores": [
105
- "**/*.test.js"
106
- ],
107
- "rules": {
108
- "react/prop-types": "off",
109
- "unicorn/expiring-todo-comments": "off"
110
- }
111
- },
112
106
  "scripts": {
113
107
  "start": "node dist/cli.js",
114
108
  "build": "tsc --project tsconfig.build.json && pnpm run post-build",
@@ -118,8 +112,8 @@
118
112
  "test:verbose": "vitest run",
119
113
  "test:vitest:watch": "vitest",
120
114
  "test:vitest:coverage": "vitest run --coverage",
121
- "lint": "prettier --check .",
122
- "lint-fix": "prettier --write .",
115
+ "lint": "eslint . && prettier --check .",
116
+ "lint-fix": "eslint --fix . && prettier --write .",
123
117
  "post-build": "cp -r source/prompts dist/",
124
118
  "release": "./scripts/release.sh",
125
119
  "logs": "node tools/log_viewer/src/server.js",