@lotagate/cli 0.1.22 → 0.1.23

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 (490) hide show
  1. package/package.json +7 -7
  2. package/scripts/install-native.mjs +11 -11
  3. package/dist/application/agent/agent-history.d.ts +0 -3
  4. package/dist/application/agent/agent-history.js +0 -81
  5. package/dist/application/agent/agent-input-context.d.ts +0 -9
  6. package/dist/application/agent/agent-input-context.js +0 -12
  7. package/dist/application/agent/agent-limit.d.ts +0 -3
  8. package/dist/application/agent/agent-limit.js +0 -12
  9. package/dist/application/agent/agent-run-tracker.d.ts +0 -30
  10. package/dist/application/agent/agent-run-tracker.js +0 -68
  11. package/dist/application/agent/agent-session-store.d.ts +0 -19
  12. package/dist/application/agent/agent-session-store.js +0 -74
  13. package/dist/application/agent/capability-profile.d.ts +0 -37
  14. package/dist/application/agent/capability-profile.js +0 -13
  15. package/dist/application/agent/cli-agent-execution-service.d.ts +0 -81
  16. package/dist/application/agent/cli-agent-execution-service.js +0 -279
  17. package/dist/application/agent/context-compaction-persistence.d.ts +0 -8
  18. package/dist/application/agent/context-compaction-persistence.js +0 -27
  19. package/dist/application/agent/context-compaction.d.ts +0 -20
  20. package/dist/application/agent/context-compaction.js +0 -114
  21. package/dist/application/agent/prompt-data-safety.d.ts +0 -14
  22. package/dist/application/agent/prompt-data-safety.js +0 -38
  23. package/dist/application/agent/safe-system-prompt.d.ts +0 -3
  24. package/dist/application/agent/safe-system-prompt.js +0 -19
  25. package/dist/application/agent/scoped-tool-executor.d.ts +0 -13
  26. package/dist/application/agent/scoped-tool-executor.js +0 -32
  27. package/dist/application/agent/system-prompt-builder.d.ts +0 -14
  28. package/dist/application/agent/system-prompt-builder.js +0 -199
  29. package/dist/application/agent/tool-catalog.d.ts +0 -14
  30. package/dist/application/agent/tool-catalog.js +0 -30
  31. package/dist/application/agent/tool-display.d.ts +0 -6
  32. package/dist/application/agent/tool-display.js +0 -59
  33. package/dist/application/agent/tool-hook-lifecycle.d.ts +0 -19
  34. package/dist/application/agent/tool-hook-lifecycle.js +0 -85
  35. package/dist/application/auth/authentication-service.d.ts +0 -20
  36. package/dist/application/auth/authentication-service.js +0 -44
  37. package/dist/application/chat/chat-service.d.ts +0 -12
  38. package/dist/application/chat/chat-service.js +0 -19
  39. package/dist/application/chat/pending-attachment-store.d.ts +0 -12
  40. package/dist/application/chat/pending-attachment-store.js +0 -28
  41. package/dist/application/commands/application-command-executor.d.ts +0 -20
  42. package/dist/application/commands/application-command-executor.js +0 -66
  43. package/dist/application/commands/cli-args.d.ts +0 -6
  44. package/dist/application/commands/cli-args.js +0 -43
  45. package/dist/application/commands/cli-command-services.d.ts +0 -16
  46. package/dist/application/commands/cli-command-services.js +0 -405
  47. package/dist/application/commands/command-catalog.d.ts +0 -6
  48. package/dist/application/commands/command-catalog.js +0 -159
  49. package/dist/application/commands/command-contract.d.ts +0 -58
  50. package/dist/application/commands/command-contract.js +0 -1
  51. package/dist/application/commands/command-hints.d.ts +0 -9
  52. package/dist/application/commands/command-hints.js +0 -17
  53. package/dist/application/commands/command-output.d.ts +0 -4
  54. package/dist/application/commands/command-output.js +0 -1
  55. package/dist/application/commands/command-parser.d.ts +0 -10
  56. package/dist/application/commands/command-parser.js +0 -155
  57. package/dist/application/commands/command-presentation.d.ts +0 -7
  58. package/dist/application/commands/command-presentation.js +0 -131
  59. package/dist/application/commands/command-registry.d.ts +0 -11
  60. package/dist/application/commands/command-registry.js +0 -64
  61. package/dist/application/commands/command-runtime.d.ts +0 -2
  62. package/dist/application/commands/command-runtime.js +0 -3
  63. package/dist/application/commands/goal-command-handlers.d.ts +0 -3
  64. package/dist/application/commands/goal-command-handlers.js +0 -120
  65. package/dist/application/commands/media-command-handlers.d.ts +0 -9
  66. package/dist/application/commands/media-command-handlers.js +0 -307
  67. package/dist/application/commands/media-command-output.d.ts +0 -11
  68. package/dist/application/commands/media-command-output.js +0 -8
  69. package/dist/application/commands/runtime-command-handlers.d.ts +0 -7
  70. package/dist/application/commands/runtime-command-handlers.js +0 -177
  71. package/dist/application/commands/stream-output.d.ts +0 -4
  72. package/dist/application/commands/stream-output.js +0 -10
  73. package/dist/application/commands/utility-commands.d.ts +0 -6
  74. package/dist/application/commands/utility-commands.js +0 -81
  75. package/dist/application/config/execution-config.d.ts +0 -4
  76. package/dist/application/config/execution-config.js +0 -6
  77. package/dist/application/extensions/extension-list-contract.d.ts +0 -13
  78. package/dist/application/extensions/extension-list-contract.js +0 -1
  79. package/dist/application/extensions/extension-list-formatters.d.ts +0 -31
  80. package/dist/application/extensions/extension-list-formatters.js +0 -98
  81. package/dist/application/extensions/extension-list-output.d.ts +0 -3
  82. package/dist/application/extensions/extension-list-output.js +0 -7
  83. package/dist/application/extensions/plugin-contribution-registry.d.ts +0 -15
  84. package/dist/application/extensions/plugin-contribution-registry.js +0 -80
  85. package/dist/application/extensions/skill-scope-store.d.ts +0 -23
  86. package/dist/application/extensions/skill-scope-store.js +0 -33
  87. package/dist/application/formatting/compact-number.d.ts +0 -2
  88. package/dist/application/formatting/compact-number.js +0 -18
  89. package/dist/application/formatting/compact-table.d.ts +0 -22
  90. package/dist/application/formatting/compact-table.js +0 -49
  91. package/dist/application/media/video-operation-poller.d.ts +0 -5
  92. package/dist/application/media/video-operation-poller.js +0 -42
  93. package/dist/application/model/cached-model-catalog.d.ts +0 -13
  94. package/dist/application/model/cached-model-catalog.js +0 -31
  95. package/dist/application/model/initial-model-selection.d.ts +0 -10
  96. package/dist/application/model/initial-model-selection.js +0 -11
  97. package/dist/application/model/model-catalog-service.d.ts +0 -6
  98. package/dist/application/model/model-catalog-service.js +0 -13
  99. package/dist/application/model/model-context-window.d.ts +0 -3
  100. package/dist/application/model/model-context-window.js +0 -23
  101. package/dist/application/orchestration/cli-subagent-service.d.ts +0 -70
  102. package/dist/application/orchestration/cli-subagent-service.js +0 -328
  103. package/dist/application/orchestration/cli-turn-event-projector.d.ts +0 -12
  104. package/dist/application/orchestration/cli-turn-event-projector.js +0 -81
  105. package/dist/application/orchestration/cli-turn-events.d.ts +0 -76
  106. package/dist/application/orchestration/cli-turn-events.js +0 -39
  107. package/dist/application/orchestration/cli-turn-persistence.d.ts +0 -6
  108. package/dist/application/orchestration/cli-turn-persistence.js +0 -14
  109. package/dist/application/orchestration/goal-evaluator.d.ts +0 -18
  110. package/dist/application/orchestration/goal-evaluator.js +0 -88
  111. package/dist/application/orchestration/goal-input.d.ts +0 -3
  112. package/dist/application/orchestration/goal-input.js +0 -19
  113. package/dist/application/orchestration/goal-output.d.ts +0 -2
  114. package/dist/application/orchestration/goal-output.js +0 -11
  115. package/dist/application/orchestration/goal-runner.d.ts +0 -22
  116. package/dist/application/orchestration/goal-runner.js +0 -153
  117. package/dist/application/orchestration/goal-usage.d.ts +0 -9
  118. package/dist/application/orchestration/goal-usage.js +0 -19
  119. package/dist/application/orchestration/headless-agent-turn.d.ts +0 -32
  120. package/dist/application/orchestration/headless-agent-turn.js +0 -82
  121. package/dist/application/orchestration/plan-generator.d.ts +0 -7
  122. package/dist/application/orchestration/plan-generator.js +0 -34
  123. package/dist/application/orchestration/subagent-coordinator.d.ts +0 -33
  124. package/dist/application/orchestration/subagent-coordinator.js +0 -28
  125. package/dist/application/orchestration/subagent-handoff.d.ts +0 -2
  126. package/dist/application/orchestration/subagent-handoff.js +0 -68
  127. package/dist/application/orchestration/subagent-tool-executor.d.ts +0 -12
  128. package/dist/application/orchestration/subagent-tool-executor.js +0 -93
  129. package/dist/application/orchestration/task-assessment.d.ts +0 -4
  130. package/dist/application/orchestration/task-assessment.js +0 -35
  131. package/dist/application/orchestration/task-graph.d.ts +0 -13
  132. package/dist/application/orchestration/task-graph.js +0 -56
  133. package/dist/application/orchestration/task-scheduler.d.ts +0 -18
  134. package/dist/application/orchestration/task-scheduler.js +0 -88
  135. package/dist/application/project/project-trust-service.d.ts +0 -13
  136. package/dist/application/project/project-trust-service.js +0 -74
  137. package/dist/application/protocol/browser-host-tool-executor.d.ts +0 -41
  138. package/dist/application/protocol/browser-host-tool-executor.js +0 -88
  139. package/dist/application/protocol/desktop-agent-command.d.ts +0 -9
  140. package/dist/application/protocol/desktop-agent-command.js +0 -663
  141. package/dist/application/protocol/desktop-attachment-store.d.ts +0 -16
  142. package/dist/application/protocol/desktop-attachment-store.js +0 -82
  143. package/dist/application/protocol/desktop-command-catalog.d.ts +0 -2
  144. package/dist/application/protocol/desktop-command-catalog.js +0 -19
  145. package/dist/application/protocol/desktop-command-contract.d.ts +0 -22
  146. package/dist/application/protocol/desktop-command-contract.js +0 -3
  147. package/dist/application/protocol/desktop-command-executor.d.ts +0 -16
  148. package/dist/application/protocol/desktop-command-executor.js +0 -47
  149. package/dist/application/protocol/desktop-command-output.d.ts +0 -15
  150. package/dist/application/protocol/desktop-command-output.js +0 -24
  151. package/dist/application/protocol/desktop-execution-policy.d.ts +0 -17
  152. package/dist/application/protocol/desktop-execution-policy.js +0 -49
  153. package/dist/application/protocol/desktop-host-tool-executor.d.ts +0 -57
  154. package/dist/application/protocol/desktop-host-tool-executor.js +0 -53
  155. package/dist/application/protocol/desktop-orchestration-events.d.ts +0 -5
  156. package/dist/application/protocol/desktop-orchestration-events.js +0 -37
  157. package/dist/application/protocol/json-line-writer.d.ts +0 -9
  158. package/dist/application/protocol/json-line-writer.js +0 -19
  159. package/dist/application/protocol/jsonl-agent-command.d.ts +0 -3
  160. package/dist/application/protocol/jsonl-agent-command.js +0 -97
  161. package/dist/application/protocol/jsonl-protocol.d.ts +0 -52
  162. package/dist/application/protocol/jsonl-protocol.js +0 -170
  163. package/dist/application/security/desktop-tool-scope-policy.d.ts +0 -3
  164. package/dist/application/security/desktop-tool-scope-policy.js +0 -52
  165. package/dist/application/security/tool-action-risk-analyzer.d.ts +0 -13
  166. package/dist/application/security/tool-action-risk-analyzer.js +0 -64
  167. package/dist/application/security/tool-approval-service.d.ts +0 -35
  168. package/dist/application/security/tool-approval-service.js +0 -97
  169. package/dist/application/security/tool-risk-classifier.d.ts +0 -11
  170. package/dist/application/security/tool-risk-classifier.js +0 -65
  171. package/dist/application/security/workspace-permission-policy.d.ts +0 -10
  172. package/dist/application/security/workspace-permission-policy.js +0 -50
  173. package/dist/application/session/project-session-access.d.ts +0 -8
  174. package/dist/application/session/project-session-access.js +0 -19
  175. package/dist/application/session/session-compaction-service.d.ts +0 -10
  176. package/dist/application/session/session-compaction-service.js +0 -43
  177. package/dist/application/session/session-turn-lifecycle.d.ts +0 -5
  178. package/dist/application/session/session-turn-lifecycle.js +0 -31
  179. package/dist/application/workspace/workspace-file-index.d.ts +0 -15
  180. package/dist/application/workspace/workspace-file-index.js +0 -60
  181. package/dist/application/workspace/workspace-file-reference-resolver.d.ts +0 -14
  182. package/dist/application/workspace/workspace-file-reference-resolver.js +0 -123
  183. package/dist/application/workspace/workspace-instruction-loader.d.ts +0 -8
  184. package/dist/application/workspace/workspace-instruction-loader.js +0 -55
  185. package/dist/bootstrap/composition-root.d.ts +0 -6
  186. package/dist/bootstrap/composition-root.js +0 -4
  187. package/dist/bootstrap/global-cli-options.d.ts +0 -6
  188. package/dist/bootstrap/global-cli-options.js +0 -29
  189. package/dist/bootstrap/native-devtools-stub.d.ts +0 -10
  190. package/dist/bootstrap/native-devtools-stub.js +0 -10
  191. package/dist/bootstrap/native-entry.d.ts +0 -1
  192. package/dist/bootstrap/native-entry.js +0 -6
  193. package/dist/bootstrap/native-tiktoken.d.ts +0 -4
  194. package/dist/bootstrap/native-tiktoken.js +0 -5
  195. package/dist/bootstrap/runtime-factory.d.ts +0 -35
  196. package/dist/bootstrap/runtime-factory.js +0 -44
  197. package/dist/bootstrap/shutdown-manager.d.ts +0 -10
  198. package/dist/bootstrap/shutdown-manager.js +0 -14
  199. package/dist/bootstrap/startup-sequence.d.ts +0 -5
  200. package/dist/bootstrap/startup-sequence.js +0 -10
  201. package/dist/domain/auth/auth-profile.d.ts +0 -14
  202. package/dist/domain/auth/auth-profile.js +0 -39
  203. package/dist/domain/config/config-schema.d.ts +0 -17
  204. package/dist/domain/config/config-schema.js +0 -105
  205. package/dist/domain/errors/cli-command-hint.d.ts +0 -5
  206. package/dist/domain/errors/cli-command-hint.js +0 -1
  207. package/dist/domain/errors/cli-error.d.ts +0 -35
  208. package/dist/domain/errors/cli-error.js +0 -129
  209. package/dist/domain/errors/error-codes.d.ts +0 -46
  210. package/dist/domain/errors/error-codes.js +0 -45
  211. package/dist/domain/extensions/extension-scope.d.ts +0 -3
  212. package/dist/domain/extensions/extension-scope.js +0 -23
  213. package/dist/domain/extensions/extension-state.d.ts +0 -5
  214. package/dist/domain/extensions/extension-state.js +0 -11
  215. package/dist/domain/extensions/hook-manifest.d.ts +0 -10
  216. package/dist/domain/extensions/hook-manifest.js +0 -23
  217. package/dist/domain/extensions/mcp-config.d.ts +0 -18
  218. package/dist/domain/extensions/mcp-config.js +0 -111
  219. package/dist/domain/extensions/plugin-manifest.d.ts +0 -11
  220. package/dist/domain/extensions/plugin-manifest.js +0 -43
  221. package/dist/domain/extensions/skill-manifest.d.ts +0 -10
  222. package/dist/domain/extensions/skill-manifest.js +0 -51
  223. package/dist/domain/filesystem/file-change-diff.d.ts +0 -21
  224. package/dist/domain/filesystem/file-change-diff.js +0 -60
  225. package/dist/domain/media/gateway-media-contract.d.ts +0 -23
  226. package/dist/domain/media/gateway-media-contract.js +0 -163
  227. package/dist/domain/media/media-contract.d.ts +0 -28
  228. package/dist/domain/media/media-contract.js +0 -1
  229. package/dist/domain/media/media-execution-policy.d.ts +0 -9
  230. package/dist/domain/media/media-execution-policy.js +0 -31
  231. package/dist/domain/orchestration/goal.d.ts +0 -58
  232. package/dist/domain/orchestration/goal.js +0 -113
  233. package/dist/domain/orchestration/subagent-identity.d.ts +0 -2
  234. package/dist/domain/orchestration/subagent-identity.js +0 -8
  235. package/dist/domain/orchestration/subagent.d.ts +0 -33
  236. package/dist/domain/orchestration/subagent.js +0 -1
  237. package/dist/domain/orchestration/task.d.ts +0 -31
  238. package/dist/domain/orchestration/task.js +0 -1
  239. package/dist/domain/project/project-identity.d.ts +0 -6
  240. package/dist/domain/project/project-identity.js +0 -4
  241. package/dist/domain/runtime/assistant-delta-normalizer.d.ts +0 -11
  242. package/dist/domain/runtime/assistant-delta-normalizer.js +0 -19
  243. package/dist/domain/runtime/resource-limits.d.ts +0 -60
  244. package/dist/domain/runtime/resource-limits.js +0 -60
  245. package/dist/domain/session/attachment.d.ts +0 -13
  246. package/dist/domain/session/attachment.js +0 -1
  247. package/dist/domain/session/session-schema.d.ts +0 -6
  248. package/dist/domain/session/session-schema.js +0 -28
  249. package/dist/domain/session/session.d.ts +0 -27
  250. package/dist/domain/session/session.js +0 -1
  251. package/dist/domain/settings/settings-document.d.ts +0 -8
  252. package/dist/domain/settings/settings-document.js +0 -36
  253. package/dist/domain/validation/record-schema.d.ts +0 -4
  254. package/dist/domain/validation/record-schema.js +0 -9
  255. package/dist/domain/workspace/workspace-settings.d.ts +0 -12
  256. package/dist/domain/workspace/workspace-settings.js +0 -44
  257. package/dist/infrastructure/agent-sdk/agent-instance-factory.d.ts +0 -22
  258. package/dist/infrastructure/agent-sdk/agent-instance-factory.js +0 -31
  259. package/dist/infrastructure/agent-sdk/tool-calling-model-client.d.ts +0 -11
  260. package/dist/infrastructure/agent-sdk/tool-calling-model-client.js +0 -447
  261. package/dist/infrastructure/cache/cache-policy.d.ts +0 -7
  262. package/dist/infrastructure/cache/cache-policy.js +0 -18
  263. package/dist/infrastructure/cache/file-cache-store.d.ts +0 -17
  264. package/dist/infrastructure/cache/file-cache-store.js +0 -121
  265. package/dist/infrastructure/clipboard/clipboard-adapter-factory.d.ts +0 -11
  266. package/dist/infrastructure/clipboard/clipboard-adapter-factory.js +0 -98
  267. package/dist/infrastructure/clipboard/clipboard-policy.d.ts +0 -8
  268. package/dist/infrastructure/clipboard/clipboard-policy.js +0 -19
  269. package/dist/infrastructure/clipboard/clipboard-text-adapter-factory.d.ts +0 -10
  270. package/dist/infrastructure/clipboard/clipboard-text-adapter-factory.js +0 -94
  271. package/dist/infrastructure/clipboard/image-normalizer.d.ts +0 -12
  272. package/dist/infrastructure/clipboard/image-normalizer.js +0 -78
  273. package/dist/infrastructure/clipboard/windows-clipboard-adapter.d.ts +0 -7
  274. package/dist/infrastructure/clipboard/windows-clipboard-adapter.js +0 -66
  275. package/dist/infrastructure/clipboard/windows-clipboard-text-adapter.d.ts +0 -7
  276. package/dist/infrastructure/clipboard/windows-clipboard-text-adapter.js +0 -70
  277. package/dist/infrastructure/config/config-loader.d.ts +0 -19
  278. package/dist/infrastructure/config/config-loader.js +0 -76
  279. package/dist/infrastructure/config/environment-values.d.ts +0 -2
  280. package/dist/infrastructure/config/environment-values.js +0 -7
  281. package/dist/infrastructure/credentials/composite-credential-store.d.ts +0 -11
  282. package/dist/infrastructure/credentials/composite-credential-store.js +0 -32
  283. package/dist/infrastructure/credentials/encrypted-file-credential-store.d.ts +0 -17
  284. package/dist/infrastructure/credentials/encrypted-file-credential-store.js +0 -181
  285. package/dist/infrastructure/credentials/environment-credential-store.d.ts +0 -11
  286. package/dist/infrastructure/credentials/environment-credential-store.js +0 -37
  287. package/dist/infrastructure/credentials/secret-input.d.ts +0 -7
  288. package/dist/infrastructure/credentials/secret-input.js +0 -44
  289. package/dist/infrastructure/extensions/composite-mcp-config-store.d.ts +0 -9
  290. package/dist/infrastructure/extensions/composite-mcp-config-store.js +0 -10
  291. package/dist/infrastructure/extensions/extension-directory-reader.d.ts +0 -2
  292. package/dist/infrastructure/extensions/extension-directory-reader.js +0 -15
  293. package/dist/infrastructure/extensions/extension-source-resolver.d.ts +0 -6
  294. package/dist/infrastructure/extensions/extension-source-resolver.js +0 -126
  295. package/dist/infrastructure/extensions/file-mcp-config-store.d.ts +0 -15
  296. package/dist/infrastructure/extensions/file-mcp-config-store.js +0 -66
  297. package/dist/infrastructure/extensions/hook-runtime.d.ts +0 -18
  298. package/dist/infrastructure/extensions/hook-runtime.js +0 -66
  299. package/dist/infrastructure/extensions/mcp-runtime.d.ts +0 -12
  300. package/dist/infrastructure/extensions/mcp-runtime.js +0 -52
  301. package/dist/infrastructure/extensions/plugin-discovery.d.ts +0 -5
  302. package/dist/infrastructure/extensions/plugin-discovery.js +0 -52
  303. package/dist/infrastructure/extensions/plugin-manager.d.ts +0 -26
  304. package/dist/infrastructure/extensions/plugin-manager.js +0 -139
  305. package/dist/infrastructure/extensions/skill-discovery.d.ts +0 -4
  306. package/dist/infrastructure/extensions/skill-discovery.js +0 -29
  307. package/dist/infrastructure/extensions/skill-installer.d.ts +0 -8
  308. package/dist/infrastructure/extensions/skill-installer.js +0 -88
  309. package/dist/infrastructure/extensions/skill-manager.d.ts +0 -22
  310. package/dist/infrastructure/extensions/skill-manager.js +0 -67
  311. package/dist/infrastructure/extensions/skill-roots.d.ts +0 -19
  312. package/dist/infrastructure/extensions/skill-roots.js +0 -25
  313. package/dist/infrastructure/extensions/skill-tool-executor.d.ts +0 -18
  314. package/dist/infrastructure/extensions/skill-tool-executor.js +0 -53
  315. package/dist/infrastructure/filesystem/atomic-file-store.d.ts +0 -12
  316. package/dist/infrastructure/filesystem/atomic-file-store.js +0 -106
  317. package/dist/infrastructure/filesystem/bounded-file-reader.d.ts +0 -6
  318. package/dist/infrastructure/filesystem/bounded-file-reader.js +0 -24
  319. package/dist/infrastructure/filesystem/bounded-json-reader.d.ts +0 -1
  320. package/dist/infrastructure/filesystem/bounded-json-reader.js +0 -7
  321. package/dist/infrastructure/filesystem/fs-errors.d.ts +0 -2
  322. package/dist/infrastructure/filesystem/fs-errors.js +0 -6
  323. package/dist/infrastructure/filesystem/gateway-media-input-reader.d.ts +0 -12
  324. package/dist/infrastructure/filesystem/gateway-media-input-reader.js +0 -49
  325. package/dist/infrastructure/filesystem/local-filesystem-tool-executor.d.ts +0 -21
  326. package/dist/infrastructure/filesystem/local-filesystem-tool-executor.js +0 -176
  327. package/dist/infrastructure/filesystem/path-resolver.d.ts +0 -20
  328. package/dist/infrastructure/filesystem/path-resolver.js +0 -119
  329. package/dist/infrastructure/filesystem/workspace-media-artifact-store.d.ts +0 -13
  330. package/dist/infrastructure/filesystem/workspace-media-artifact-store.js +0 -152
  331. package/dist/infrastructure/logging/daily-rotating-file-writer.d.ts +0 -20
  332. package/dist/infrastructure/logging/daily-rotating-file-writer.js +0 -75
  333. package/dist/infrastructure/logging/log-redactor.d.ts +0 -2
  334. package/dist/infrastructure/logging/log-redactor.js +0 -26
  335. package/dist/infrastructure/logging/logging-policy.d.ts +0 -6
  336. package/dist/infrastructure/logging/logging-policy.js +0 -6
  337. package/dist/infrastructure/logging/structured-logger.d.ts +0 -24
  338. package/dist/infrastructure/logging/structured-logger.js +0 -40
  339. package/dist/infrastructure/network/safe-media-downloader.d.ts +0 -23
  340. package/dist/infrastructure/network/safe-media-downloader.js +0 -239
  341. package/dist/infrastructure/platform/host-platform.d.ts +0 -14
  342. package/dist/infrastructure/platform/host-platform.js +0 -23
  343. package/dist/infrastructure/platform/host-process.d.ts +0 -17
  344. package/dist/infrastructure/platform/host-process.js +0 -116
  345. package/dist/infrastructure/platform/platform-paths.d.ts +0 -25
  346. package/dist/infrastructure/platform/platform-paths.js +0 -33
  347. package/dist/infrastructure/project/file-project-trust-store.d.ts +0 -12
  348. package/dist/infrastructure/project/file-project-trust-store.js +0 -59
  349. package/dist/infrastructure/sdk/chat-completion-adapter.d.ts +0 -8
  350. package/dist/infrastructure/sdk/chat-completion-adapter.js +0 -115
  351. package/dist/infrastructure/sdk/lotagate-client-factory.d.ts +0 -3
  352. package/dist/infrastructure/sdk/lotagate-client-factory.js +0 -8
  353. package/dist/infrastructure/sdk/model-catalog-adapter.d.ts +0 -19
  354. package/dist/infrastructure/sdk/model-catalog-adapter.js +0 -28
  355. package/dist/infrastructure/sdk/sdk-media-gateway-client.d.ts +0 -20
  356. package/dist/infrastructure/sdk/sdk-media-gateway-client.js +0 -97
  357. package/dist/infrastructure/sessions/file-goal-store.d.ts +0 -21
  358. package/dist/infrastructure/sessions/file-goal-store.js +0 -160
  359. package/dist/infrastructure/sessions/file-session-store.d.ts +0 -48
  360. package/dist/infrastructure/sessions/file-session-store.js +0 -525
  361. package/dist/infrastructure/sessions/project-session-paths.d.ts +0 -17
  362. package/dist/infrastructure/sessions/project-session-paths.js +0 -41
  363. package/dist/infrastructure/sessions/session-index.d.ts +0 -16
  364. package/dist/infrastructure/sessions/session-index.js +0 -84
  365. package/dist/infrastructure/sessions/session-journal.d.ts +0 -22
  366. package/dist/infrastructure/sessions/session-journal.js +0 -137
  367. package/dist/infrastructure/sessions/subagent-journal-store.d.ts +0 -28
  368. package/dist/infrastructure/sessions/subagent-journal-store.js +0 -30
  369. package/dist/infrastructure/shell/shell-tool-executor.d.ts +0 -17
  370. package/dist/infrastructure/shell/shell-tool-executor.js +0 -115
  371. package/dist/infrastructure/tokens/tiktoken-token-estimator.d.ts +0 -18
  372. package/dist/infrastructure/tokens/tiktoken-token-estimator.js +0 -48
  373. package/dist/infrastructure/workspace/workspace-settings-store.d.ts +0 -9
  374. package/dist/infrastructure/workspace/workspace-settings-store.js +0 -75
  375. package/dist/main.d.ts +0 -7
  376. package/dist/main.js +0 -66
  377. package/dist/ports/cache-store.d.ts +0 -10
  378. package/dist/ports/cache-store.js +0 -1
  379. package/dist/ports/chat-model.d.ts +0 -30
  380. package/dist/ports/chat-model.js +0 -1
  381. package/dist/ports/clipboard-adapter.d.ts +0 -7
  382. package/dist/ports/clipboard-adapter.js +0 -1
  383. package/dist/ports/clipboard-text-adapter.d.ts +0 -3
  384. package/dist/ports/clipboard-text-adapter.js +0 -1
  385. package/dist/ports/credential-store.d.ts +0 -7
  386. package/dist/ports/credential-store.js +0 -1
  387. package/dist/ports/goal-store.d.ts +0 -12
  388. package/dist/ports/goal-store.js +0 -1
  389. package/dist/ports/logger.d.ts +0 -8
  390. package/dist/ports/logger.js +0 -1
  391. package/dist/ports/media-gateway-client.d.ts +0 -54
  392. package/dist/ports/media-gateway-client.js +0 -1
  393. package/dist/ports/model-diagnostics.d.ts +0 -17
  394. package/dist/ports/model-diagnostics.js +0 -1
  395. package/dist/ports/project-trust-store.d.ts +0 -12
  396. package/dist/ports/project-trust-store.js +0 -1
  397. package/dist/ports/session-store.d.ts +0 -58
  398. package/dist/ports/session-store.js +0 -1
  399. package/dist/ports/subagent-lifecycle.d.ts +0 -31
  400. package/dist/ports/subagent-lifecycle.js +0 -1
  401. package/dist/ports/tool-activity.d.ts +0 -13
  402. package/dist/ports/tool-activity.js +0 -1
  403. package/dist/presentation/themes/theme.d.ts +0 -19
  404. package/dist/presentation/themes/theme.js +0 -8
  405. package/dist/presentation/tui/agent-initialization-renderer.d.ts +0 -4
  406. package/dist/presentation/tui/agent-initialization-renderer.js +0 -37
  407. package/dist/presentation/tui/context-display.d.ts +0 -21
  408. package/dist/presentation/tui/context-display.js +0 -33
  409. package/dist/presentation/tui/formatters.d.ts +0 -6
  410. package/dist/presentation/tui/formatters.js +0 -60
  411. package/dist/presentation/tui/ink/choice-window.d.ts +0 -5
  412. package/dist/presentation/tui/ink/choice-window.js +0 -5
  413. package/dist/presentation/tui/ink/components/activity-entry.d.ts +0 -6
  414. package/dist/presentation/tui/ink/components/activity-entry.js +0 -16
  415. package/dist/presentation/tui/ink/components/activity-status.d.ts +0 -10
  416. package/dist/presentation/tui/ink/components/activity-status.js +0 -21
  417. package/dist/presentation/tui/ink/components/choice-modal.d.ts +0 -11
  418. package/dist/presentation/tui/ink/components/choice-modal.js +0 -29
  419. package/dist/presentation/tui/ink/components/composer.d.ts +0 -40
  420. package/dist/presentation/tui/ink/components/composer.js +0 -271
  421. package/dist/presentation/tui/ink/components/file-diff.d.ts +0 -6
  422. package/dist/presentation/tui/ink/components/file-diff.js +0 -34
  423. package/dist/presentation/tui/ink/components/modal.d.ts +0 -8
  424. package/dist/presentation/tui/ink/components/modal.js +0 -110
  425. package/dist/presentation/tui/ink/components/shimmer-text.d.ts +0 -6
  426. package/dist/presentation/tui/ink/components/shimmer-text.js +0 -9
  427. package/dist/presentation/tui/ink/components/subagent-activity.d.ts +0 -11
  428. package/dist/presentation/tui/ink/components/subagent-activity.js +0 -61
  429. package/dist/presentation/tui/ink/components/transcript.d.ts +0 -39
  430. package/dist/presentation/tui/ink/components/transcript.js +0 -121
  431. package/dist/presentation/tui/ink/components/welcome-panel.d.ts +0 -6
  432. package/dist/presentation/tui/ink/components/welcome-panel.js +0 -20
  433. package/dist/presentation/tui/ink/lotagate-tui.d.ts +0 -6
  434. package/dist/presentation/tui/ink/lotagate-tui.js +0 -136
  435. package/dist/presentation/tui/ink/markdown-inline-renderer.d.ts +0 -4
  436. package/dist/presentation/tui/ink/markdown-inline-renderer.js +0 -20
  437. package/dist/presentation/tui/ink/markdown-inline.d.ts +0 -13
  438. package/dist/presentation/tui/ink/markdown-inline.js +0 -91
  439. package/dist/presentation/tui/ink/markdown-message.d.ts +0 -6
  440. package/dist/presentation/tui/ink/markdown-message.js +0 -66
  441. package/dist/presentation/tui/ink/markdown-table.d.ts +0 -16
  442. package/dist/presentation/tui/ink/markdown-table.js +0 -77
  443. package/dist/presentation/tui/ink/tui-bridge.d.ts +0 -195
  444. package/dist/presentation/tui/ink/tui-bridge.js +0 -289
  445. package/dist/presentation/tui/terminal-capabilities.d.ts +0 -15
  446. package/dist/presentation/tui/terminal-capabilities.js +0 -7
  447. package/dist/presentation/tui/terminal-mouse.d.ts +0 -5
  448. package/dist/presentation/tui/terminal-mouse.js +0 -19
  449. package/dist/presentation/tui/terminal-screen.d.ts +0 -10
  450. package/dist/presentation/tui/terminal-screen.js +0 -23
  451. package/dist/presentation/tui/tui-agent-event-runner.d.ts +0 -24
  452. package/dist/presentation/tui/tui-agent-event-runner.js +0 -69
  453. package/dist/presentation/tui/tui-application-contract.d.ts +0 -10
  454. package/dist/presentation/tui/tui-application-contract.js +0 -8
  455. package/dist/presentation/tui/tui-application.d.ts +0 -62
  456. package/dist/presentation/tui/tui-application.js +0 -675
  457. package/dist/presentation/tui/tui-attachment-input.d.ts +0 -2
  458. package/dist/presentation/tui/tui-attachment-input.js +0 -5
  459. package/dist/presentation/tui/tui-clipboard-paste-handlers.d.ts +0 -11
  460. package/dist/presentation/tui/tui-clipboard-paste-handlers.js +0 -25
  461. package/dist/presentation/tui/tui-command-context.d.ts +0 -3
  462. package/dist/presentation/tui/tui-command-context.js +0 -1
  463. package/dist/presentation/tui/tui-command-executor.d.ts +0 -38
  464. package/dist/presentation/tui/tui-command-executor.js +0 -214
  465. package/dist/presentation/tui/tui-command-host-factory.d.ts +0 -40
  466. package/dist/presentation/tui/tui-command-host-factory.js +0 -23
  467. package/dist/presentation/tui/tui-context-compaction.d.ts +0 -5
  468. package/dist/presentation/tui/tui-context-compaction.js +0 -22
  469. package/dist/presentation/tui/tui-context-service.d.ts +0 -34
  470. package/dist/presentation/tui/tui-context-service.js +0 -126
  471. package/dist/presentation/tui/tui-file-suggestions.d.ts +0 -3
  472. package/dist/presentation/tui/tui-file-suggestions.js +0 -8
  473. package/dist/presentation/tui/tui-goal-controller.d.ts +0 -14
  474. package/dist/presentation/tui/tui-goal-controller.js +0 -52
  475. package/dist/presentation/tui/tui-initial-model.d.ts +0 -3
  476. package/dist/presentation/tui/tui-initial-model.js +0 -28
  477. package/dist/presentation/tui/tui-lifecycle-actions.d.ts +0 -13
  478. package/dist/presentation/tui/tui-lifecycle-actions.js +0 -45
  479. package/dist/presentation/tui/tui-manual-compaction.d.ts +0 -18
  480. package/dist/presentation/tui/tui-manual-compaction.js +0 -31
  481. package/dist/presentation/tui/tui-media-model-selection.d.ts +0 -12
  482. package/dist/presentation/tui/tui-media-model-selection.js +0 -38
  483. package/dist/presentation/tui/tui-prompt-dispatcher.d.ts +0 -16
  484. package/dist/presentation/tui/tui-prompt-dispatcher.js +0 -38
  485. package/dist/presentation/tui/tui-skill-controller.d.ts +0 -11
  486. package/dist/presentation/tui/tui-skill-controller.js +0 -13
  487. package/dist/presentation/tui/tui-tool-approval.d.ts +0 -22
  488. package/dist/presentation/tui/tui-tool-approval.js +0 -73
  489. package/dist/version.d.ts +0 -1
  490. package/dist/version.js +0 -1
@@ -1,2 +0,0 @@
1
- import { type WorkspaceFileReference } from '../../application/workspace/workspace-file-reference-resolver.js';
2
- export declare function buildTuiAttachmentInput(prompt: string, references: readonly WorkspaceFileReference[], workspaceRoot: string): Promise<string>;
@@ -1,5 +0,0 @@
1
- import { WorkspaceFileReferenceResolver } from '../../application/workspace/workspace-file-reference-resolver.js';
2
- export async function buildTuiAttachmentInput(prompt, references, workspaceRoot) {
3
- const contents = await new WorkspaceFileReferenceResolver(workspaceRoot).contentInstruction(references);
4
- return contents === undefined ? prompt : `${prompt}\n\n${contents}`;
5
- }
@@ -1,11 +0,0 @@
1
- import type { ClipboardImage } from '../../ports/clipboard-adapter.js';
2
- import type { HostPlatformContext } from '../../infrastructure/platform/host-platform.js';
3
- export interface TuiClipboardPasteHandlers {
4
- image: () => Promise<void>;
5
- text: () => Promise<string | undefined>;
6
- }
7
- export declare function createTuiClipboardPasteHandlers(options: {
8
- platform: HostPlatformContext;
9
- notify: (message: string) => void;
10
- attachImage: (image: ClipboardImage | undefined) => Promise<void>;
11
- }): TuiClipboardPasteHandlers;
@@ -1,25 +0,0 @@
1
- import { asCliError } from '../../domain/errors/cli-error.js';
2
- import { createClipboardAdapter } from '../../infrastructure/clipboard/clipboard-adapter-factory.js';
3
- import { createClipboardTextAdapter } from '../../infrastructure/clipboard/clipboard-text-adapter-factory.js';
4
- import { formatCliErrorMessage } from '../../application/commands/command-hints.js';
5
- export function createTuiClipboardPasteHandlers(options) {
6
- return {
7
- image: async () => {
8
- try {
9
- await options.attachImage(await createClipboardAdapter(options.platform).readImage());
10
- }
11
- catch (error) {
12
- options.notify(formatCliErrorMessage(asCliError(error), 'tui'));
13
- }
14
- },
15
- text: async () => {
16
- try {
17
- return await createClipboardTextAdapter(options.platform).readText();
18
- }
19
- catch (error) {
20
- options.notify(formatCliErrorMessage(asCliError(error), 'tui'));
21
- return undefined;
22
- }
23
- },
24
- };
25
- }
@@ -1,3 +0,0 @@
1
- export interface TuiCommandContext {
2
- write(message: string): void;
3
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,38 +0,0 @@
1
- import type { CommandInvocation } from '../../application/commands/command-contract.js';
2
- import { type TuiContextSnapshot } from './context-display.js';
3
- import type { SkillManifest } from '../../domain/extensions/skill-manifest.js';
4
- import type { ScopedSkill } from '../../infrastructure/extensions/skill-manager.js';
5
- import type { ExtensionScope } from '../../domain/extensions/extension-scope.js';
6
- import type { SessionMetadata } from '../../domain/session/session.js';
7
- import type { HookDefinition } from '../../domain/extensions/hook-manifest.js';
8
- import type { PendingAttachmentStore } from '../../application/chat/pending-attachment-store.js';
9
- import type { CliRuntime } from '../../bootstrap/runtime-factory.js';
10
- import type { InkTuiBridge } from './ink/tui-bridge.js';
11
- import type { CreateGoalInput } from '../../domain/orchestration/goal.js';
12
- import type { TuiCommandContext } from './tui-command-context.js';
13
- export interface TuiCommandHost {
14
- runtime: CliRuntime;
15
- cwd: string;
16
- renderer: InkTuiBridge;
17
- pendingAttachments: PendingAttachmentStore;
18
- hooks: readonly HookDefinition[];
19
- session: SessionMetadata | undefined;
20
- activeAbortController: AbortController | undefined;
21
- attachClipboardImage(image: {
22
- bytes: Uint8Array;
23
- mimeType: string;
24
- } | undefined): Promise<void>;
25
- runPrompt(prompt: string, initialSkill?: SkillManifest): Promise<string>;
26
- runGoal(objective: string, context: TuiCommandContext, limits?: Omit<CreateGoalInput, 'objective'>): Promise<void>;
27
- resumeGoal(context: TuiCommandContext): Promise<void>;
28
- runSkill(name: string, args: readonly string[], context: TuiCommandContext, availableSkills?: readonly ScopedSkill[], scope?: ExtensionScope): Promise<void>;
29
- refreshExtensions(): Promise<void>;
30
- compactSession(): Promise<void>;
31
- refreshWelcome(overrides?: {
32
- model?: string | null;
33
- profile?: string | null;
34
- }): Promise<void>;
35
- getContextSnapshot(): Promise<TuiContextSnapshot>;
36
- resumeSession(sessionId: string): Promise<void>;
37
- }
38
- export declare function executeTuiCommand(invocation: CommandInvocation, host: TuiCommandHost, context: TuiCommandContext): Promise<boolean>;
@@ -1,214 +0,0 @@
1
- import { AuthenticationService } from '../../application/auth/authentication-service.js';
2
- import { executeApplicationCommand } from '../../application/commands/application-command-executor.js';
3
- import { runModelCommand } from '../../application/commands/cli-command-services.js';
4
- import { loadModelCatalog } from '../../application/model/model-catalog-service.js';
5
- import { formatContextSnapshot } from './context-display.js';
6
- import { createClipboardAdapter } from '../../infrastructure/clipboard/clipboard-adapter-factory.js';
7
- import { formatCompactTable } from '../../application/formatting/compact-table.js';
8
- import { formatGoalStatus } from '../../application/orchestration/goal-output.js';
9
- import { parseGoalLimits } from '../../application/orchestration/goal-input.js';
10
- import { prepareTuiMediaInvocation } from './tui-media-model-selection.js';
11
- export async function executeTuiCommand(invocation, host, context) {
12
- switch (invocation.action.executor) {
13
- case 'tui-exit': return true;
14
- case 'tui-clear':
15
- host.renderer.clearTranscript();
16
- return false;
17
- case 'tui-stop':
18
- stopActiveRun(host, context);
19
- return false;
20
- case 'tui-details':
21
- context.write(`Action details: ${host.renderer.toggleActionDetails() ? 'on' : 'off'}`);
22
- return false;
23
- case 'tui-context':
24
- await showContext(host, context);
25
- return false;
26
- case 'tui-auth-login':
27
- await login(host, invocation, context);
28
- return false;
29
- case 'tui-model-select':
30
- await selectModel(host, context);
31
- return false;
32
- case 'tui-skill-run':
33
- await runSkill(host, invocation, context);
34
- return false;
35
- case 'tui-session-resume':
36
- await host.resumeSession(requirePosition(invocation, 0, 'session id'));
37
- return false;
38
- case 'tui-session-compact':
39
- await host.compactSession();
40
- return false;
41
- case 'tui-session-rename':
42
- await renameSession(host, invocation, context);
43
- return false;
44
- case 'tui-goal':
45
- await executeGoal(host, invocation, context);
46
- return false;
47
- case 'tui-attachments':
48
- await executeAttachments(host, invocation, context);
49
- return false;
50
- case 'tui-prompt':
51
- await host.runPrompt(invocation.positionals.join(' '));
52
- return false;
53
- case 'tui-agent-info':
54
- context.write('The JSONL agent protocol owns stdin/stdout and must be run directly: lotagate agent stdio.');
55
- return false;
56
- default: {
57
- const preparedInvocation = await prepareTuiMediaInvocation(invocation, {
58
- loadModels: () => loadModelCatalog(host.runtime, host.cwd),
59
- selectModel: (title, choices) => host.renderer.selectModel(title, choices),
60
- });
61
- if (preparedInvocation === undefined) {
62
- context.write('Model selection cancelled.');
63
- return false;
64
- }
65
- await executeApplicationTuiCommand(preparedInvocation, host, context);
66
- await refreshAfterApplicationCommand(host, preparedInvocation);
67
- return false;
68
- }
69
- }
70
- }
71
- async function executeApplicationTuiCommand(invocation, host, context) {
72
- const abortController = new AbortController();
73
- host.activeAbortController = abortController;
74
- try {
75
- await executeApplicationCommand(invocation, applicationHost(host, context, abortController.signal));
76
- }
77
- finally {
78
- if (host.activeAbortController === abortController)
79
- host.activeAbortController = undefined;
80
- }
81
- }
82
- function applicationHost(host, context, signal) {
83
- return {
84
- runtime: host.runtime,
85
- cwd: host.cwd,
86
- output: { write: (value) => context.write(value.endsWith('\n') ? value.slice(0, -1) : value) },
87
- selectScope: (title) => host.renderer.selectScope(title),
88
- activity: { start: (key, label) => host.renderer.startToolActivity(key, label) },
89
- signal,
90
- };
91
- }
92
- async function refreshAfterApplicationCommand(host, invocation) {
93
- if (invocation.action.id === 'model.use')
94
- await host.refreshWelcome({ model: invocation.positionals[0] ?? null });
95
- if (invocation.action.id === 'trust.grant' || invocation.action.id === 'trust.revoke') {
96
- await host.refreshExtensions();
97
- await host.refreshWelcome();
98
- }
99
- if (invocation.action.id.startsWith('plugin.') && invocation.action.id !== 'plugin.list' && invocation.action.id !== 'plugin.list.default')
100
- await host.refreshExtensions();
101
- }
102
- function stopActiveRun(host, context) {
103
- if (host.activeAbortController === undefined)
104
- context.write('No response is currently running.');
105
- else {
106
- host.activeAbortController.abort();
107
- context.write('Stopping the active response.');
108
- }
109
- }
110
- async function showContext(host, context) {
111
- context.write(host.session === undefined ? 'No active session.' : formatContextSnapshot(await host.getContextSnapshot()));
112
- }
113
- async function login(host, invocation, context) {
114
- const loaded = await host.runtime.configLoader.load(host.cwd, { includeProject: false });
115
- const profileName = String(invocation.options.get('profile') ?? loaded.config.profile ?? AuthenticationService.defaultProfileName());
116
- const baseUrl = String(invocation.options.get('base-url') ?? loaded.config.baseUrl);
117
- const apiKey = await host.renderer.requestSecret('LotaGate API key');
118
- if (apiKey === undefined) {
119
- context.write('Login cancelled.');
120
- return;
121
- }
122
- const profile = await host.runtime.auth.login({ profileName, baseUrl, apiKey });
123
- await host.runtime.configLoader.setGlobal('profile', profile.name);
124
- await host.refreshWelcome({ profile: profile.name });
125
- context.write(`Logged in profile: ${profile.name}`);
126
- }
127
- async function selectModel(host, context) {
128
- const loaded = await host.runtime.configLoader.load(host.cwd);
129
- const models = await loadModelCatalog(host.runtime, host.cwd);
130
- if (models.data.length === 0) {
131
- context.write('No models are available.');
132
- return;
133
- }
134
- const selected = await host.renderer.selectModel('Select a model', models.data.map((model) => ({ value: model.id, label: model.id })), loaded.config.model ?? undefined);
135
- if (selected === undefined) {
136
- context.write('Model selection cancelled.');
137
- return;
138
- }
139
- await runModelCommand(['use', selected], host.runtime, host.cwd, { write: (value) => context.write(value.endsWith('\n') ? value.slice(0, -1) : value) });
140
- await host.refreshWelcome({ model: selected });
141
- }
142
- async function runSkill(host, invocation, context) {
143
- const name = requirePosition(invocation, 0, 'skill name');
144
- await host.runSkill(name, invocation.positionals.slice(1), context, undefined, readScope(invocation));
145
- }
146
- async function renameSession(host, invocation, context) {
147
- if (host.session === undefined) {
148
- context.write('No active session.');
149
- return;
150
- }
151
- const name = invocation.positionals.join(' ').trim();
152
- host.session = await host.runtime.sessionStore.rename(host.session.id, name);
153
- context.write(`Renamed session: ${host.session.name}`);
154
- }
155
- async function executeGoal(host, invocation, context) {
156
- if (invocation.action.id === 'goal.start.tui') {
157
- await host.runGoal(invocation.positionals.join(' '), context, parseGoalLimits(invocation.options));
158
- return;
159
- }
160
- if (host.session === undefined) {
161
- context.write('No active session.');
162
- return;
163
- }
164
- if (invocation.action.id === 'goal.status.tui') {
165
- const state = await host.runtime.goalStore.get(host.session.id);
166
- context.write(state === undefined ? 'No active goal.' : formatGoalStatus(state));
167
- return;
168
- }
169
- if (invocation.action.id === 'goal.pause.tui') {
170
- host.activeAbortController?.abort();
171
- const current = await host.runtime.goalStore.get(host.session.id);
172
- if (current?.status === 'active')
173
- await host.runtime.goalStore.pause(host.session.id);
174
- context.write(current?.status === 'paused' ? 'Goal already paused.' : 'Goal paused.');
175
- return;
176
- }
177
- if (invocation.action.id === 'goal.resume.tui') {
178
- await host.resumeGoal(context);
179
- return;
180
- }
181
- host.activeAbortController?.abort();
182
- await host.runtime.goalStore.clear(host.session.id);
183
- context.write('Goal cleared.');
184
- }
185
- async function executeAttachments(host, invocation, context) {
186
- const action = invocation.action.id;
187
- if (action === 'attachments.paste') {
188
- const image = await createClipboardAdapter(host.runtime.platform).readImage();
189
- await host.attachClipboardImage(image);
190
- context.write(image === undefined ? 'Clipboard does not contain an image.' : 'Attachment added from clipboard.');
191
- return;
192
- }
193
- if (action === 'attachments.remove') {
194
- const id = requirePosition(invocation, 0, 'attachment id');
195
- if (!host.pendingAttachments.remove(id))
196
- context.write(`Attachment not found: ${id}`);
197
- else {
198
- host.renderer.setPendingAttachments(host.pendingAttachments.list().map(({ attachment }) => attachment));
199
- context.write(`Removed attachment: ${id}`);
200
- }
201
- return;
202
- }
203
- context.write(formatCompactTable(host.pendingAttachments.list().map(({ attachment }) => ({ name: attachment.name, status: attachment.mimeType, detail: `${attachment.sizeBytes} bytes` })), { empty: 'No pending attachments.' }));
204
- }
205
- function requirePosition(invocation, index, label) {
206
- const value = invocation.positionals[index];
207
- if (value === undefined)
208
- throw new Error(`Missing ${label}.`);
209
- return value;
210
- }
211
- function readScope(invocation) {
212
- const value = invocation.options.get('scope');
213
- return value === 'user' || value === 'project' ? value : undefined;
214
- }
@@ -1,40 +0,0 @@
1
- import type { CliRuntime } from '../../bootstrap/runtime-factory.js';
2
- import type { PendingAttachmentStore } from '../../application/chat/pending-attachment-store.js';
3
- import type { HookDefinition } from '../../domain/extensions/hook-manifest.js';
4
- import type { SessionMetadata } from '../../domain/session/session.js';
5
- import type { SkillManifest } from '../../domain/extensions/skill-manifest.js';
6
- import type { ScopedSkill } from '../../infrastructure/extensions/skill-manager.js';
7
- import type { ExtensionScope } from '../../domain/extensions/extension-scope.js';
8
- import type { CreateGoalInput } from '../../domain/orchestration/goal.js';
9
- import type { InkTuiBridge } from './ink/tui-bridge.js';
10
- import type { TuiCommandContext } from './tui-command-context.js';
11
- import type { TuiCommandHost } from './tui-command-executor.js';
12
- import type { TuiContextSnapshot } from './context-display.js';
13
- export interface TuiCommandHostBindings {
14
- runtime: CliRuntime;
15
- cwd: string;
16
- renderer: InkTuiBridge;
17
- pendingAttachments: PendingAttachmentStore;
18
- getHooks(): readonly HookDefinition[];
19
- getSession(): SessionMetadata | undefined;
20
- getActiveAbortController(): AbortController | undefined;
21
- setActiveAbortController(controller: AbortController | undefined): void;
22
- attachClipboardImage(image: {
23
- bytes: Uint8Array;
24
- mimeType: string;
25
- } | undefined): Promise<void>;
26
- runPrompt(prompt: string, initialSkill?: SkillManifest): Promise<string>;
27
- runGoal(objective: string, context: TuiCommandContext, limits?: Omit<CreateGoalInput, 'objective'>): Promise<void>;
28
- resumeGoal(context: TuiCommandContext): Promise<void>;
29
- runSkill(name: string, args: readonly string[], context: TuiCommandContext, availableSkills?: readonly ScopedSkill[], scope?: ExtensionScope): Promise<void>;
30
- refreshExtensions(): Promise<void>;
31
- compactSession(): Promise<void>;
32
- refreshWelcome(overrides?: {
33
- model?: string | null;
34
- profile?: string | null;
35
- }): Promise<void>;
36
- getContextSnapshot(): Promise<TuiContextSnapshot>;
37
- resumeSession(sessionId: string): Promise<void>;
38
- }
39
- /** Adapts TUI-owned mutable state without exposing the application instance as an unsafe structural cast. */
40
- export declare function createTuiCommandHost(bindings: TuiCommandHostBindings): TuiCommandHost;
@@ -1,23 +0,0 @@
1
- /** Adapts TUI-owned mutable state without exposing the application instance as an unsafe structural cast. */
2
- export function createTuiCommandHost(bindings) {
3
- return {
4
- runtime: bindings.runtime,
5
- cwd: bindings.cwd,
6
- renderer: bindings.renderer,
7
- pendingAttachments: bindings.pendingAttachments,
8
- get hooks() { return bindings.getHooks(); },
9
- get session() { return bindings.getSession(); },
10
- get activeAbortController() { return bindings.getActiveAbortController(); },
11
- set activeAbortController(controller) { bindings.setActiveAbortController(controller); },
12
- attachClipboardImage: bindings.attachClipboardImage,
13
- runPrompt: bindings.runPrompt,
14
- runGoal: bindings.runGoal,
15
- resumeGoal: bindings.resumeGoal,
16
- runSkill: bindings.runSkill,
17
- refreshExtensions: bindings.refreshExtensions,
18
- compactSession: bindings.compactSession,
19
- refreshWelcome: bindings.refreshWelcome,
20
- getContextSnapshot: bindings.getContextSnapshot,
21
- resumeSession: bindings.resumeSession,
22
- };
23
- }
@@ -1,5 +0,0 @@
1
- import type { SessionStore as AgentSessionStore } from '@lotagate/agent-sdk';
2
- import type { LotaGate } from '@lotagate/sdk';
3
- import type { CliRuntime } from '../../bootstrap/runtime-factory.js';
4
- export declare function createTuiContextManagement(client: LotaGate, model: string, contextWindow: number | undefined, onSummaryFailure: (error: unknown) => void): import("@lotagate/agent-sdk").ContextManagementOptions;
5
- export declare function compactTuiSession(runtime: CliRuntime, agentSessions: AgentSessionStore, sessionId: string, client: LotaGate, model: string, contextWindow?: number, onSummaryFailure?: (error: unknown) => void): Promise<boolean>;
@@ -1,22 +0,0 @@
1
- import { createContextManagement, redactCompactionSummary } from '../../application/agent/context-compaction.js';
2
- import { retainLatestCompaction, toAgentMessage } from '../../application/agent/agent-session-store.js';
3
- import { buildAgentHistory } from '../../application/agent/agent-history.js';
4
- import { compactSessionMessages } from '../../application/session/session-compaction-service.js';
5
- export function createTuiContextManagement(client, model, contextWindow, onSummaryFailure) {
6
- return createContextManagement({ client, model, ...(contextWindow === undefined ? {} : { contextWindow }), onSummaryFailure });
7
- }
8
- export async function compactTuiSession(runtime, agentSessions, sessionId, client, model, contextWindow, onSummaryFailure) {
9
- const state = await agentSessions.get(sessionId);
10
- const messages = state?.messages ?? await loadStoredAgentMessages(runtime, sessionId);
11
- const result = await compactSessionMessages(messages, client, model, contextWindow, onSummaryFailure);
12
- if (result.summary === undefined)
13
- return false;
14
- if (state !== undefined)
15
- await agentSessions.update(sessionId, { messages: result.messages, status: 'completed' });
16
- await runtime.sessionStore.compact(sessionId, redactCompactionSummary(result.summary));
17
- return true;
18
- }
19
- async function loadStoredAgentMessages(runtime, sessionId) {
20
- const history = await runtime.sessionStore.readHistory(sessionId);
21
- return retainLatestCompaction(buildAgentHistory(history.transcript, history.events)).map(toAgentMessage);
22
- }
@@ -1,34 +0,0 @@
1
- import type { CliRuntime } from '../../bootstrap/runtime-factory.js';
2
- import type { SkillManifest } from '../../domain/extensions/skill-manifest.js';
3
- import { type CliMcpConfig } from '../../domain/extensions/mcp-config.js';
4
- import type { SkillRootScope } from '../../infrastructure/extensions/skill-roots.js';
5
- import type { TuiContextSnapshot } from './context-display.js';
6
- import type { SessionStore as AgentSessionStore } from '@lotagate/agent-sdk';
7
- import type { AgentGoalSummary } from '../../application/agent/capability-profile.js';
8
- export interface TuiContextServiceInput {
9
- sessionId?: string;
10
- model: string | null;
11
- profileName?: string | null;
12
- trusted: boolean;
13
- skills: readonly (SkillManifest & {
14
- enabled: boolean;
15
- })[];
16
- pluginNames: readonly string[];
17
- pluginMcpConfig?: CliMcpConfig;
18
- pendingAttachments: number;
19
- skillRootScopes?: readonly SkillRootScope[];
20
- agentSessionStore?: AgentSessionStore;
21
- goal?: AgentGoalSummary;
22
- }
23
- /** Builds the human-readable context model from durable session data and CLI-owned metadata. */
24
- export declare class TuiContextService {
25
- private readonly runtime;
26
- private readonly cwd;
27
- private contextWindow;
28
- private contextWindowModel;
29
- constructor(runtime: CliRuntime, cwd: string);
30
- buildForProject(input: Omit<TuiContextServiceInput, 'trusted' | 'skills'>): Promise<TuiContextSnapshot>;
31
- build(input: TuiContextServiceInput): Promise<TuiContextSnapshot>;
32
- getModelContextWindow(model: string | null, profileName?: string | null): Promise<number | undefined>;
33
- private resolveContextWindow;
34
- }
@@ -1,126 +0,0 @@
1
- import path from 'node:path';
2
- import { resolveModelContextWindow } from '../../application/model/model-context-window.js';
3
- import { SystemPromptBuilder } from '../../application/agent/system-prompt-builder.js';
4
- import { createCapabilitySnapshot } from '../../application/agent/capability-profile.js';
5
- import { buildToolCatalogFromDefinitions } from '../../application/agent/tool-catalog.js';
6
- import { filesystemToolDefinitions } from '../../infrastructure/filesystem/local-filesystem-tool-executor.js';
7
- import { shellToolDefinitions } from '../../infrastructure/shell/shell-tool-executor.js';
8
- import { skillToolDefinitions } from '../../infrastructure/extensions/skill-tool-executor.js';
9
- import { subagentToolDefinitions } from '../../application/orchestration/subagent-tool-executor.js';
10
- import { FileMcpConfigStore } from '../../infrastructure/extensions/file-mcp-config-store.js';
11
- import { mergeMcpConfigsWithOverride } from '../../domain/extensions/mcp-config.js';
12
- import { SkillManager } from '../../infrastructure/extensions/skill-manager.js';
13
- import { estimateTextTokens } from '../../infrastructure/tokens/tiktoken-token-estimator.js';
14
- import { retainLatestCompaction } from '../../application/agent/agent-session-store.js';
15
- import { buildAgentHistory } from '../../application/agent/agent-history.js';
16
- import { WorkspaceInstructionLoader } from '../../application/workspace/workspace-instruction-loader.js';
17
- /** Builds the human-readable context model from durable session data and CLI-owned metadata. */
18
- export class TuiContextService {
19
- runtime;
20
- cwd;
21
- contextWindow;
22
- contextWindowModel;
23
- constructor(runtime, cwd) {
24
- this.runtime = runtime;
25
- this.cwd = cwd;
26
- }
27
- async buildForProject(input) {
28
- const identity = await this.runtime.projectTrust.inspect(this.cwd);
29
- const trusted = await this.runtime.projectTrust.isTrusted(identity);
30
- const skills = trusted && input.skillRootScopes !== undefined
31
- ? await new SkillManager(path.join(this.runtime.paths.globalConfigDir, 'skills-state.json')).listScoped(input.skillRootScopes)
32
- : [];
33
- return this.build({ ...input, trusted, skills });
34
- }
35
- async build(input) {
36
- const contextWindow = await this.resolveContextWindow(input.model, input.profileName);
37
- const [history, configuredMcp] = await Promise.all([
38
- input.sessionId === undefined
39
- ? Promise.resolve({ transcript: [], events: [] })
40
- : this.runtime.sessionStore.readHistory(input.sessionId),
41
- Promise.all([
42
- FileMcpConfigStore.forScope(this.cwd, this.runtime.paths.globalConfigDir, 'user').list(),
43
- FileMcpConfigStore.forScope(this.cwd, this.runtime.paths.globalConfigDir, 'project').list(),
44
- ]).then(([user, project]) => mergeMcpConfigsWithOverride(user, project, input.pluginMcpConfig ?? {})),
45
- ]);
46
- const transcript = retainLatestCompaction(buildAgentHistory(history.transcript, history.events));
47
- const instructions = input.trusted ? await new WorkspaceInstructionLoader().load(this.cwd, this.cwd) : [];
48
- const localTools = input.trusted ? buildToolCatalogFromDefinitions([
49
- ...filesystemToolDefinitions(),
50
- ...shellToolDefinitions(),
51
- ...skillToolDefinitions(),
52
- ...subagentToolDefinitions(),
53
- ]) : undefined;
54
- const toolNames = localTools?.names ?? [];
55
- const systemPrompt = new SystemPromptBuilder().build(createCapabilitySnapshot({
56
- profile: input.trusted ? 'interactive-trusted' : 'interactive-untrusted',
57
- model: input.model ?? 'unselected',
58
- cwd: this.cwd,
59
- workspaceRoot: this.cwd,
60
- trusted: input.trusted,
61
- tools: toolNames,
62
- skills: input.skills.map((skill) => ({ name: 'skillKey' in skill ? skill.skillKey : skill.name, description: skill.description })),
63
- plugins: input.trusted ? input.pluginNames : [],
64
- ...(instructions.length === 0 ? {} : { instructions }),
65
- ...(input.goal === undefined ? {} : { goal: input.goal }),
66
- }));
67
- const tokenModel = input.model ?? 'o200k_base';
68
- const liveMessages = input.sessionId === undefined ? undefined : await input.agentSessionStore?.get(input.sessionId);
69
- const liveContextMessages = liveMessages?.messages?.[0]?.role === 'system' ? liveMessages.messages.slice(1) : liveMessages?.messages;
70
- const contextMessages = liveContextMessages === undefined || liveContextMessages.length === 0 ? transcript : liveContextMessages.map(toTranscriptLike);
71
- const inputTokens = estimateEntries(contextMessages.filter((entry) => entry.type === 'user'), tokenModel);
72
- const outputTokens = estimateEntries(contextMessages.filter((entry) => entry.type === 'assistant'), tokenModel);
73
- const otherTokens = estimateEntries(contextMessages.filter((entry) => entry.type !== 'user' && entry.type !== 'assistant'), tokenModel);
74
- const conversationTokens = inputTokens + outputTokens + otherTokens;
75
- const systemPromptTokens = estimateTextTokens({ model: tokenModel, text: systemPrompt });
76
- return {
77
- model: input.model,
78
- ...(contextWindow === undefined ? {} : { contextWindow }),
79
- usedTokens: conversationTokens + systemPromptTokens,
80
- systemPromptTokens,
81
- conversationTokens,
82
- inputTokens,
83
- outputTokens,
84
- otherTokens,
85
- transcriptEntries: transcript.length,
86
- userMessages: transcript.filter((entry) => entry.type === 'user').length,
87
- assistantMessages: transcript.filter((entry) => entry.type === 'assistant').length,
88
- toolCalls: history.events.filter((event) => event.type === 'tool.called').length,
89
- compactions: history.events.filter((event) => event.type === 'context.compacted').length,
90
- pendingAttachments: input.pendingAttachments,
91
- toolNames,
92
- mcpServers: Object.values(configuredMcp).filter((entry) => entry.enabled).length,
93
- memoryFiles: 0,
94
- };
95
- }
96
- async getModelContextWindow(model, profileName) {
97
- return this.resolveContextWindow(model, profileName);
98
- }
99
- async resolveContextWindow(model, profileName) {
100
- if (model === null || model.trim().length === 0) {
101
- this.contextWindow = undefined;
102
- this.contextWindowModel = undefined;
103
- return undefined;
104
- }
105
- const cacheKey = `${profileName ?? ''}\0${model}`;
106
- if (this.contextWindowModel === cacheKey)
107
- return this.contextWindow;
108
- this.contextWindowModel = cacheKey;
109
- this.contextWindow = undefined;
110
- this.contextWindow = await resolveModelContextWindow(this.runtime, model, profileName);
111
- return this.contextWindow;
112
- }
113
- }
114
- function toTranscriptLike(message) {
115
- return { type: message.role, content: textContent(message.content) };
116
- }
117
- function textContent(content) {
118
- if (typeof content === 'string')
119
- return content;
120
- if (!Array.isArray(content))
121
- return '';
122
- return content.map((part) => typeof part === 'object' && part !== null && 'text' in part && typeof part.text === 'string' ? part.text : '').join('');
123
- }
124
- function estimateEntries(entries, model) {
125
- return estimateTextTokens({ model, text: entries.map((entry) => `${entry.type}: ${entry.content}`).join('\n') });
126
- }
@@ -1,3 +0,0 @@
1
- import type { WorkspaceEntry } from '../../application/workspace/workspace-file-index.js';
2
- import type { TuiChoice } from './ink/tui-bridge.js';
3
- export declare function workspaceFileSuggestions(entries: readonly WorkspaceEntry[]): readonly TuiChoice[];
@@ -1,8 +0,0 @@
1
- export function workspaceFileSuggestions(entries) {
2
- return entries.map((entry) => ({
3
- value: `@${entry.path}`,
4
- label: `@${entry.path}`,
5
- description: entry.kind === 'directory' ? 'Workspace folder' : 'Workspace file',
6
- kind: entry.kind,
7
- }));
8
- }
@@ -1,14 +0,0 @@
1
- import type { CliRuntime } from '../../bootstrap/runtime-factory.js';
2
- import type { CreateGoalInput } from '../../domain/orchestration/goal.js';
3
- import { type GoalTurnCallbacks } from '../../application/orchestration/goal-runner.js';
4
- export interface TuiGoalControllerOptions {
5
- runtime: CliRuntime;
6
- cwd: string;
7
- sessionId: string | undefined;
8
- model: string | null;
9
- profile: string | null;
10
- runPrompt: (prompt: string, callbacks?: GoalTurnCallbacks) => Promise<string>;
11
- write: (message: string) => void;
12
- }
13
- export declare function runTuiGoal(options: TuiGoalControllerOptions, objective: string, limits?: Omit<CreateGoalInput, 'objective'>): Promise<void>;
14
- export declare function resumeTuiGoal(options: TuiGoalControllerOptions): Promise<void>;