@lotagate/cli 0.1.24 → 0.1.26

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 (671) hide show
  1. package/README.md +75 -7
  2. package/SECURITY.md +2 -0
  3. package/bin/lotagate.mjs +50 -8
  4. package/dist/application/agent/agent-constants.d.ts +6 -0
  5. package/dist/application/agent/agent-constants.js +1 -0
  6. package/dist/application/agent/agent-history.d.ts +3 -0
  7. package/dist/application/agent/agent-history.js +5 -0
  8. package/dist/application/agent/agent-input-context.d.ts +12 -0
  9. package/dist/application/agent/agent-input-context.js +5 -0
  10. package/dist/application/agent/agent-limit.d.ts +3 -0
  11. package/dist/application/agent/agent-limit.js +1 -0
  12. package/dist/application/agent/agent-run-tracker.d.ts +30 -0
  13. package/dist/application/agent/agent-run-tracker.js +1 -0
  14. package/dist/application/agent/agent-runtime-context.d.ts +22 -0
  15. package/dist/application/agent/agent-runtime-context.js +1 -0
  16. package/dist/application/agent/agent-session-store-registry.d.ts +16 -0
  17. package/dist/application/agent/agent-session-store-registry.js +1 -0
  18. package/dist/application/agent/agent-session-store.d.ts +23 -0
  19. package/dist/application/agent/agent-session-store.js +6 -0
  20. package/dist/application/agent/capability-profile.d.ts +17 -0
  21. package/dist/application/agent/capability-profile.js +0 -0
  22. package/dist/application/agent/cli-agent-execution-service.d.ts +120 -0
  23. package/dist/application/agent/cli-agent-execution-service.js +1 -0
  24. package/dist/application/agent/cli-agent-preparation-cache.d.ts +39 -0
  25. package/dist/application/agent/cli-agent-preparation-cache.js +1 -0
  26. package/dist/application/agent/cli-agent-run-request.d.ts +12 -0
  27. package/dist/application/agent/cli-agent-run-request.js +0 -0
  28. package/dist/application/agent/context-compaction-persistence.d.ts +8 -0
  29. package/dist/application/agent/context-compaction-persistence.js +1 -0
  30. package/dist/application/agent/context-compaction.d.ts +22 -0
  31. package/dist/application/agent/context-compaction.js +8 -0
  32. package/dist/application/agent/context-token-cache.d.ts +21 -0
  33. package/dist/application/agent/context-token-cache.js +4 -0
  34. package/dist/application/agent/context-usage-service.d.ts +52 -0
  35. package/dist/application/agent/context-usage-service.js +1 -0
  36. package/dist/application/agent/continuation-checkpoint.d.ts +15 -0
  37. package/dist/application/agent/continuation-checkpoint.js +2 -0
  38. package/dist/application/agent/interactive-agent-guidance.d.ts +5 -0
  39. package/dist/application/agent/interactive-agent-guidance.js +2 -0
  40. package/dist/application/agent/prompt-data-safety.d.ts +14 -0
  41. package/dist/application/agent/prompt-data-safety.js +4 -0
  42. package/dist/application/agent/scoped-tool-executor.d.ts +13 -0
  43. package/dist/application/agent/scoped-tool-executor.js +1 -0
  44. package/dist/application/agent/tool-catalog.d.ts +14 -0
  45. package/dist/application/agent/tool-catalog.js +1 -0
  46. package/dist/application/agent/tool-display.d.ts +7 -0
  47. package/dist/application/agent/tool-display.js +1 -0
  48. package/dist/application/agent/tool-hook-lifecycle.d.ts +19 -0
  49. package/dist/application/agent/tool-hook-lifecycle.js +1 -0
  50. package/dist/application/auth/authentication-service.d.ts +20 -0
  51. package/dist/application/auth/authentication-service.js +1 -0
  52. package/dist/application/chat/chat-service.d.ts +12 -0
  53. package/dist/application/chat/chat-service.js +1 -0
  54. package/dist/application/chat/pending-attachment-store.d.ts +15 -0
  55. package/dist/application/chat/pending-attachment-store.js +1 -0
  56. package/dist/application/commands/application-command-executor.d.ts +23 -0
  57. package/dist/application/commands/application-command-executor.js +3 -0
  58. package/dist/application/commands/cli-args.d.ts +6 -0
  59. package/dist/application/commands/cli-args.js +1 -0
  60. package/dist/application/commands/cli-command-services.d.ts +17 -0
  61. package/dist/application/commands/cli-command-services.js +33 -0
  62. package/dist/application/commands/command-cancellation.d.ts +6 -0
  63. package/dist/application/commands/command-cancellation.js +1 -0
  64. package/dist/application/commands/command-catalog.d.ts +6 -0
  65. package/dist/application/commands/command-catalog.js +1 -0
  66. package/dist/application/commands/command-contract.d.ts +60 -0
  67. package/dist/application/commands/command-contract.js +0 -0
  68. package/dist/application/commands/command-hints.d.ts +9 -0
  69. package/dist/application/commands/command-hints.js +1 -0
  70. package/dist/application/commands/command-output.d.ts +4 -0
  71. package/dist/application/commands/command-output.js +0 -0
  72. package/dist/application/commands/command-parser.d.ts +10 -0
  73. package/dist/application/commands/command-parser.js +1 -0
  74. package/dist/application/commands/command-presentation.d.ts +7 -0
  75. package/dist/application/commands/command-presentation.js +3 -0
  76. package/dist/application/commands/command-registry.d.ts +11 -0
  77. package/dist/application/commands/command-registry.js +1 -0
  78. package/dist/application/commands/command-runtime.d.ts +2 -0
  79. package/dist/application/commands/command-runtime.js +1 -0
  80. package/dist/application/commands/goal-command-handlers.d.ts +3 -0
  81. package/dist/application/commands/goal-command-handlers.js +7 -0
  82. package/dist/application/commands/media-command-handlers.d.ts +9 -0
  83. package/dist/application/commands/media-command-handlers.js +9 -0
  84. package/dist/application/commands/media-command-output.d.ts +11 -0
  85. package/dist/application/commands/media-command-output.js +1 -0
  86. package/dist/application/commands/memory-command-handler.d.ts +29 -0
  87. package/dist/application/commands/memory-command-handler.js +12 -0
  88. package/dist/application/commands/runtime-command-handlers.d.ts +7 -0
  89. package/dist/application/commands/runtime-command-handlers.js +14 -0
  90. package/dist/application/commands/stream-output.d.ts +4 -0
  91. package/dist/application/commands/stream-output.js +1 -0
  92. package/dist/application/commands/utility-commands.d.ts +6 -0
  93. package/dist/application/commands/utility-commands.js +10 -0
  94. package/dist/application/config/execution-config.d.ts +4 -0
  95. package/dist/application/config/execution-config.js +1 -0
  96. package/dist/application/extensions/extension-list-contract.d.ts +18 -0
  97. package/dist/application/extensions/extension-list-contract.js +0 -0
  98. package/dist/application/extensions/extension-list-formatters.d.ts +38 -0
  99. package/dist/application/extensions/extension-list-formatters.js +1 -0
  100. package/dist/application/extensions/extension-list-output.d.ts +3 -0
  101. package/dist/application/extensions/extension-list-output.js +3 -0
  102. package/dist/application/extensions/plugin-contribution-registry.d.ts +31 -0
  103. package/dist/application/extensions/plugin-contribution-registry.js +1 -0
  104. package/dist/application/extensions/plugin-detail-contract.d.ts +25 -0
  105. package/dist/application/extensions/plugin-detail-contract.js +0 -0
  106. package/dist/application/extensions/plugin-detail-service.d.ts +3 -0
  107. package/dist/application/extensions/plugin-detail-service.js +1 -0
  108. package/dist/application/extensions/skill-scope-store.d.ts +23 -0
  109. package/dist/application/extensions/skill-scope-store.js +1 -0
  110. package/dist/application/formatting/compact-number.d.ts +2 -0
  111. package/dist/application/formatting/compact-number.js +1 -0
  112. package/dist/application/formatting/compact-table.d.ts +22 -0
  113. package/dist/application/formatting/compact-table.js +2 -0
  114. package/dist/application/intent/completion-gate.d.ts +3 -0
  115. package/dist/application/intent/completion-gate.js +1 -0
  116. package/dist/application/intent/evidence-ledger.d.ts +22 -0
  117. package/dist/application/intent/evidence-ledger.js +1 -0
  118. package/dist/application/intent/evidence-recording-tool-executor.d.ts +16 -0
  119. package/dist/application/intent/evidence-recording-tool-executor.js +1 -0
  120. package/dist/application/intent/intent-compiler.d.ts +11 -0
  121. package/dist/application/intent/intent-compiler.js +2 -0
  122. package/dist/application/intent/intent-execution-gate.d.ts +11 -0
  123. package/dist/application/intent/intent-execution-gate.js +1 -0
  124. package/dist/application/intent/intent-host-context.d.ts +6 -0
  125. package/dist/application/intent/intent-host-context.js +1 -0
  126. package/dist/application/intent/intent-run-controller.d.ts +56 -0
  127. package/dist/application/intent/intent-run-controller.js +3 -0
  128. package/dist/application/intent/project-policy.d.ts +16 -0
  129. package/dist/application/intent/project-policy.js +1 -0
  130. package/dist/application/media/video-operation-poller.d.ts +5 -0
  131. package/dist/application/media/video-operation-poller.js +1 -0
  132. package/dist/application/memory/memory-capture-policy.d.ts +10 -0
  133. package/dist/application/memory/memory-capture-policy.js +1 -0
  134. package/dist/application/memory/memory-consolidation-service.d.ts +12 -0
  135. package/dist/application/memory/memory-consolidation-service.js +1 -0
  136. package/dist/application/memory/memory-context-assembler.d.ts +24 -0
  137. package/dist/application/memory/memory-context-assembler.js +1 -0
  138. package/dist/application/memory/memory-extractor.d.ts +21 -0
  139. package/dist/application/memory/memory-extractor.js +2 -0
  140. package/dist/application/memory/memory-service.d.ts +34 -0
  141. package/dist/application/memory/memory-service.js +1 -0
  142. package/dist/application/model/cached-model-catalog.d.ts +19 -0
  143. package/dist/application/model/cached-model-catalog.js +1 -0
  144. package/dist/application/model/initial-model-selection.d.ts +10 -0
  145. package/dist/application/model/initial-model-selection.js +1 -0
  146. package/dist/application/model/model-catalog-service.d.ts +6 -0
  147. package/dist/application/model/model-catalog-service.js +1 -0
  148. package/dist/application/model/model-context-window.d.ts +3 -0
  149. package/dist/application/model/model-context-window.js +1 -0
  150. package/dist/application/model/model-response-retry.d.ts +15 -0
  151. package/dist/application/model/model-response-retry.js +1 -0
  152. package/dist/application/orchestration/abortable-wait.d.ts +2 -0
  153. package/dist/application/orchestration/abortable-wait.js +1 -0
  154. package/dist/application/orchestration/cli-subagent-service.d.ts +77 -0
  155. package/dist/application/orchestration/cli-subagent-service.js +13 -0
  156. package/dist/application/orchestration/cli-turn-event-projector.d.ts +15 -0
  157. package/dist/application/orchestration/cli-turn-event-projector.js +1 -0
  158. package/dist/application/orchestration/cli-turn-events.d.ts +76 -0
  159. package/dist/application/orchestration/cli-turn-events.js +1 -0
  160. package/dist/application/orchestration/cli-turn-persistence.d.ts +6 -0
  161. package/dist/application/orchestration/cli-turn-persistence.js +1 -0
  162. package/dist/application/orchestration/goal-evaluator.d.ts +18 -0
  163. package/dist/application/orchestration/goal-evaluator.js +3 -0
  164. package/dist/application/orchestration/goal-input.d.ts +3 -0
  165. package/dist/application/orchestration/goal-input.js +1 -0
  166. package/dist/application/orchestration/goal-output.d.ts +2 -0
  167. package/dist/application/orchestration/goal-output.js +2 -0
  168. package/dist/application/orchestration/goal-runner.d.ts +22 -0
  169. package/dist/application/orchestration/goal-runner.js +10 -0
  170. package/dist/application/orchestration/goal-usage.d.ts +9 -0
  171. package/dist/application/orchestration/goal-usage.js +1 -0
  172. package/dist/application/orchestration/headless-agent-turn.d.ts +36 -0
  173. package/dist/application/orchestration/headless-agent-turn.js +4 -0
  174. package/dist/application/orchestration/orchestration-constants.d.ts +3 -0
  175. package/dist/application/orchestration/orchestration-constants.js +1 -0
  176. package/dist/application/orchestration/subagent-coordinator.d.ts +41 -0
  177. package/dist/application/orchestration/subagent-coordinator.js +1 -0
  178. package/dist/application/orchestration/subagent-handoff.d.ts +3 -0
  179. package/dist/application/orchestration/subagent-handoff.js +3 -0
  180. package/dist/application/orchestration/subagent-tool-executor.d.ts +12 -0
  181. package/dist/application/orchestration/subagent-tool-executor.js +1 -0
  182. package/dist/application/orchestration/task-graph.d.ts +13 -0
  183. package/dist/application/orchestration/task-graph.js +1 -0
  184. package/dist/application/orchestration/task-scheduler.d.ts +18 -0
  185. package/dist/application/orchestration/task-scheduler.js +1 -0
  186. package/dist/application/project/project-trust-service.d.ts +13 -0
  187. package/dist/application/project/project-trust-service.js +1 -0
  188. package/dist/application/project-intelligence/project-intelligence-constants.d.ts +56 -0
  189. package/dist/application/project-intelligence/project-intelligence-constants.js +1 -0
  190. package/dist/application/project-intelligence/project-intelligence-service.d.ts +14 -0
  191. package/dist/application/project-intelligence/project-intelligence-service.js +1 -0
  192. package/dist/application/protocol/browser-host-tool-executor.d.ts +51 -0
  193. package/dist/application/protocol/browser-host-tool-executor.js +2 -0
  194. package/dist/application/protocol/computer-host-tool-executor.d.ts +45 -0
  195. package/dist/application/protocol/computer-host-tool-executor.js +2 -0
  196. package/dist/application/protocol/desktop-agent-command.d.ts +9 -0
  197. package/dist/application/protocol/desktop-agent-command.js +3 -0
  198. package/dist/application/protocol/desktop-agent-contracts.d.ts +34 -0
  199. package/dist/application/protocol/desktop-agent-contracts.js +1 -0
  200. package/dist/application/protocol/desktop-agent-helpers.d.ts +5 -0
  201. package/dist/application/protocol/desktop-agent-helpers.js +1 -0
  202. package/dist/application/protocol/desktop-agent-request-parser.d.ts +211 -0
  203. package/dist/application/protocol/desktop-agent-request-parser.js +1 -0
  204. package/dist/application/protocol/desktop-approval-broker.d.ts +26 -0
  205. package/dist/application/protocol/desktop-approval-broker.js +1 -0
  206. package/dist/application/protocol/desktop-attachment-store.d.ts +33 -0
  207. package/dist/application/protocol/desktop-attachment-store.js +1 -0
  208. package/dist/application/protocol/desktop-command-catalog.d.ts +2 -0
  209. package/dist/application/protocol/desktop-command-catalog.js +1 -0
  210. package/dist/application/protocol/desktop-command-contract.d.ts +26 -0
  211. package/dist/application/protocol/desktop-command-contract.js +1 -0
  212. package/dist/application/protocol/desktop-command-executor.d.ts +17 -0
  213. package/dist/application/protocol/desktop-command-executor.js +1 -0
  214. package/dist/application/protocol/desktop-command-output.d.ts +15 -0
  215. package/dist/application/protocol/desktop-command-output.js +1 -0
  216. package/dist/application/protocol/desktop-execution-policy.d.ts +19 -0
  217. package/dist/application/protocol/desktop-execution-policy.js +1 -0
  218. package/dist/application/protocol/desktop-extension-request-handler.d.ts +14 -0
  219. package/dist/application/protocol/desktop-extension-request-handler.js +1 -0
  220. package/dist/application/protocol/desktop-extension-service.d.ts +44 -0
  221. package/dist/application/protocol/desktop-extension-service.js +3 -0
  222. package/dist/application/protocol/desktop-host-bridge.d.ts +33 -0
  223. package/dist/application/protocol/desktop-host-bridge.js +1 -0
  224. package/dist/application/protocol/desktop-host-capabilities.d.ts +12 -0
  225. package/dist/application/protocol/desktop-host-capabilities.js +1 -0
  226. package/dist/application/protocol/desktop-host-tool-executor.d.ts +76 -0
  227. package/dist/application/protocol/desktop-host-tool-executor.js +2 -0
  228. package/dist/application/protocol/desktop-intent-event-writer.d.ts +20 -0
  229. package/dist/application/protocol/desktop-intent-event-writer.js +1 -0
  230. package/dist/application/protocol/desktop-mcp-events.d.ts +10 -0
  231. package/dist/application/protocol/desktop-mcp-events.js +1 -0
  232. package/dist/application/protocol/desktop-orchestration-events.d.ts +2 -0
  233. package/dist/application/protocol/desktop-orchestration-events.js +2 -0
  234. package/dist/application/protocol/desktop-protocol-helpers.d.ts +13 -0
  235. package/dist/application/protocol/desktop-protocol-helpers.js +1 -0
  236. package/dist/application/protocol/json-line-writer.d.ts +31 -0
  237. package/dist/application/protocol/json-line-writer.js +2 -0
  238. package/dist/application/protocol/jsonl-agent-command.d.ts +3 -0
  239. package/dist/application/protocol/jsonl-agent-command.js +3 -0
  240. package/dist/application/protocol/jsonl-protocol.d.ts +82 -0
  241. package/dist/application/protocol/jsonl-protocol.js +2 -0
  242. package/dist/application/protocol/tool-image-content.d.ts +4 -0
  243. package/dist/application/protocol/tool-image-content.js +1 -0
  244. package/dist/application/security/delegated-worker-policy.d.ts +3 -0
  245. package/dist/application/security/delegated-worker-policy.js +1 -0
  246. package/dist/application/security/desktop-tool-scope-policy.d.ts +4 -0
  247. package/dist/application/security/desktop-tool-scope-policy.js +1 -0
  248. package/dist/application/security/tool-action-risk-analyzer.d.ts +13 -0
  249. package/dist/application/security/tool-action-risk-analyzer.js +1 -0
  250. package/dist/application/security/tool-approval-service.d.ts +43 -0
  251. package/dist/application/security/tool-approval-service.js +1 -0
  252. package/dist/application/security/tool-policy-registry.d.ts +20 -0
  253. package/dist/application/security/tool-policy-registry.js +1 -0
  254. package/dist/application/security/tool-risk-classifier.d.ts +19 -0
  255. package/dist/application/security/tool-risk-classifier.js +1 -0
  256. package/dist/application/security/workspace-permission-policy.d.ts +10 -0
  257. package/dist/application/security/workspace-permission-policy.js +1 -0
  258. package/dist/application/session/project-session-access.d.ts +8 -0
  259. package/dist/application/session/project-session-access.js +1 -0
  260. package/dist/application/session/session-compaction-service.d.ts +10 -0
  261. package/dist/application/session/session-compaction-service.js +1 -0
  262. package/dist/application/session/session-turn-lifecycle.d.ts +5 -0
  263. package/dist/application/session/session-turn-lifecycle.js +1 -0
  264. package/dist/application/workspace/session-execution-workspace.d.ts +59 -0
  265. package/dist/application/workspace/session-execution-workspace.js +3 -0
  266. package/dist/application/workspace/workspace-constants.d.ts +17 -0
  267. package/dist/application/workspace/workspace-constants.js +1 -0
  268. package/dist/application/workspace/workspace-file-index.d.ts +14 -0
  269. package/dist/application/workspace/workspace-file-index.js +1 -0
  270. package/dist/application/workspace/workspace-file-reference-resolver.d.ts +20 -0
  271. package/dist/application/workspace/workspace-file-reference-resolver.js +17 -0
  272. package/dist/application/workspace/workspace-instruction-loader.d.ts +8 -0
  273. package/dist/application/workspace/workspace-instruction-loader.js +1 -0
  274. package/dist/bootstrap/composition-root.d.ts +7 -0
  275. package/dist/bootstrap/composition-root.js +1 -0
  276. package/dist/bootstrap/global-cli-options.d.ts +6 -0
  277. package/dist/bootstrap/global-cli-options.js +1 -0
  278. package/dist/bootstrap/native-devtools-stub.d.ts +10 -0
  279. package/dist/bootstrap/native-devtools-stub.js +1 -0
  280. package/dist/bootstrap/native-entry.d.ts +1 -0
  281. package/dist/bootstrap/native-entry.js +2 -0
  282. package/dist/bootstrap/native-tiktoken.d.ts +4 -0
  283. package/dist/bootstrap/native-tiktoken.js +1 -0
  284. package/dist/bootstrap/runtime-factory.d.ts +46 -0
  285. package/dist/bootstrap/runtime-factory.js +1 -0
  286. package/dist/bootstrap/shutdown-manager.d.ts +11 -0
  287. package/dist/bootstrap/shutdown-manager.js +1 -0
  288. package/dist/bootstrap/startup-sequence.d.ts +5 -0
  289. package/dist/bootstrap/startup-sequence.js +1 -0
  290. package/dist/domain/auth/auth-profile.d.ts +14 -0
  291. package/dist/domain/auth/auth-profile.js +1 -0
  292. package/dist/domain/config/config-schema.d.ts +24 -0
  293. package/dist/domain/config/config-schema.js +1 -0
  294. package/dist/domain/errors/cli-command-hint.d.ts +5 -0
  295. package/dist/domain/errors/cli-command-hint.js +0 -0
  296. package/dist/domain/errors/cli-error.d.ts +35 -0
  297. package/dist/domain/errors/cli-error.js +1 -0
  298. package/dist/domain/errors/error-codes.d.ts +51 -0
  299. package/dist/domain/errors/error-codes.js +1 -0
  300. package/dist/domain/extensions/extension-constants.d.ts +1 -0
  301. package/dist/domain/extensions/extension-constants.js +1 -0
  302. package/dist/domain/extensions/extension-scope.d.ts +3 -0
  303. package/dist/domain/extensions/extension-scope.js +1 -0
  304. package/dist/domain/extensions/extension-state.d.ts +5 -0
  305. package/dist/domain/extensions/extension-state.js +1 -0
  306. package/dist/domain/extensions/hook-manifest.d.ts +13 -0
  307. package/dist/domain/extensions/hook-manifest.js +1 -0
  308. package/dist/domain/extensions/host-tool-plugin-ids.d.ts +5 -0
  309. package/dist/domain/extensions/host-tool-plugin-ids.js +1 -0
  310. package/dist/domain/extensions/mcp-config.d.ts +35 -0
  311. package/dist/domain/extensions/mcp-config.js +1 -0
  312. package/dist/domain/extensions/plugin-agent-manifest.d.ts +8 -0
  313. package/dist/domain/extensions/plugin-agent-manifest.js +1 -0
  314. package/dist/domain/extensions/plugin-manifest.d.ts +23 -0
  315. package/dist/domain/extensions/plugin-manifest.js +1 -0
  316. package/dist/domain/extensions/skill-manifest.d.ts +10 -0
  317. package/dist/domain/extensions/skill-manifest.js +3 -0
  318. package/dist/domain/extensions/yaml-subset.d.ts +9 -0
  319. package/dist/domain/extensions/yaml-subset.js +2 -0
  320. package/dist/domain/filesystem/file-change-diff.d.ts +21 -0
  321. package/dist/domain/filesystem/file-change-diff.js +3 -0
  322. package/dist/domain/intent/intent-contract.d.ts +33 -0
  323. package/dist/domain/intent/intent-contract.js +1 -0
  324. package/dist/domain/media/gateway-media-contract.d.ts +23 -0
  325. package/dist/domain/media/gateway-media-contract.js +1 -0
  326. package/dist/domain/media/media-constants.d.ts +3 -0
  327. package/dist/domain/media/media-constants.js +1 -0
  328. package/dist/domain/media/media-contract.d.ts +28 -0
  329. package/dist/domain/media/media-contract.js +0 -0
  330. package/dist/domain/media/media-execution-policy.d.ts +9 -0
  331. package/dist/domain/media/media-execution-policy.js +1 -0
  332. package/dist/domain/memory/memory-constants.d.ts +3 -0
  333. package/dist/domain/memory/memory-constants.js +1 -0
  334. package/dist/domain/memory/memory-kinds.d.ts +15 -0
  335. package/dist/domain/memory/memory-kinds.js +1 -0
  336. package/dist/domain/memory/memory-retrieval-policy.d.ts +3 -0
  337. package/dist/domain/memory/memory-retrieval-policy.js +1 -0
  338. package/dist/domain/memory/memory-search.d.ts +33 -0
  339. package/dist/domain/memory/memory-search.js +2 -0
  340. package/dist/domain/memory/memory.d.ts +48 -0
  341. package/dist/domain/memory/memory.js +1 -0
  342. package/dist/domain/orchestration/goal.d.ts +57 -0
  343. package/dist/domain/orchestration/goal.js +1 -0
  344. package/dist/domain/orchestration/subagent-identity.d.ts +2 -0
  345. package/dist/domain/orchestration/subagent-identity.js +1 -0
  346. package/dist/domain/orchestration/subagent.d.ts +33 -0
  347. package/dist/domain/orchestration/subagent.js +0 -0
  348. package/dist/domain/orchestration/work-plan.d.ts +15 -0
  349. package/dist/domain/orchestration/work-plan.js +0 -0
  350. package/dist/domain/project/project-identity.d.ts +6 -0
  351. package/dist/domain/project/project-identity.js +1 -0
  352. package/dist/domain/runtime/assistant-delta-normalizer.d.ts +11 -0
  353. package/dist/domain/runtime/assistant-delta-normalizer.js +1 -0
  354. package/dist/domain/runtime/assistant-stream-text.d.ts +11 -0
  355. package/dist/domain/runtime/assistant-stream-text.js +1 -0
  356. package/dist/domain/runtime/gateway-request-budget.d.ts +19 -0
  357. package/dist/domain/runtime/gateway-request-budget.js +1 -0
  358. package/dist/domain/runtime/resource-limits.d.ts +92 -0
  359. package/dist/domain/runtime/resource-limits.js +1 -0
  360. package/dist/domain/session/attachment.d.ts +15 -0
  361. package/dist/domain/session/attachment.js +0 -0
  362. package/dist/domain/session/session-schema.d.ts +6 -0
  363. package/dist/domain/session/session-schema.js +1 -0
  364. package/dist/domain/session/session.d.ts +27 -0
  365. package/dist/domain/session/session.js +0 -0
  366. package/dist/domain/settings/settings-document.d.ts +8 -0
  367. package/dist/domain/settings/settings-document.js +1 -0
  368. package/dist/domain/validation/record-schema.d.ts +4 -0
  369. package/dist/domain/validation/record-schema.js +1 -0
  370. package/dist/domain/workspace/workspace-settings.d.ts +14 -0
  371. package/dist/domain/workspace/workspace-settings.js +1 -0
  372. package/dist/infrastructure/agent-sdk/agent-instance-factory.d.ts +22 -0
  373. package/dist/infrastructure/agent-sdk/agent-instance-factory.js +1 -0
  374. package/dist/infrastructure/agent-sdk/model-response-metrics.d.ts +7 -0
  375. package/dist/infrastructure/agent-sdk/model-response-metrics.js +1 -0
  376. package/dist/infrastructure/agent-sdk/model-tool-name-mapper.d.ts +13 -0
  377. package/dist/infrastructure/agent-sdk/model-tool-name-mapper.js +1 -0
  378. package/dist/infrastructure/agent-sdk/sdk-constants.d.ts +2 -0
  379. package/dist/infrastructure/agent-sdk/sdk-constants.js +1 -0
  380. package/dist/infrastructure/agent-sdk/tool-calling-completion-client.d.ts +4 -0
  381. package/dist/infrastructure/agent-sdk/tool-calling-completion-client.js +1 -0
  382. package/dist/infrastructure/agent-sdk/tool-calling-model-client.d.ts +11 -0
  383. package/dist/infrastructure/agent-sdk/tool-calling-model-client.js +1 -0
  384. package/dist/infrastructure/cache/cache-policy.d.ts +9 -0
  385. package/dist/infrastructure/cache/cache-policy.js +1 -0
  386. package/dist/infrastructure/cache/file-cache-store.d.ts +25 -0
  387. package/dist/infrastructure/cache/file-cache-store.js +2 -0
  388. package/dist/infrastructure/clipboard/clipboard-adapter-factory.d.ts +11 -0
  389. package/dist/infrastructure/clipboard/clipboard-adapter-factory.js +1 -0
  390. package/dist/infrastructure/clipboard/clipboard-constants.d.ts +1 -0
  391. package/dist/infrastructure/clipboard/clipboard-constants.js +1 -0
  392. package/dist/infrastructure/clipboard/clipboard-policy.d.ts +8 -0
  393. package/dist/infrastructure/clipboard/clipboard-policy.js +1 -0
  394. package/dist/infrastructure/clipboard/clipboard-text-adapter-factory.d.ts +10 -0
  395. package/dist/infrastructure/clipboard/clipboard-text-adapter-factory.js +1 -0
  396. package/dist/infrastructure/clipboard/image-normalizer.d.ts +12 -0
  397. package/dist/infrastructure/clipboard/image-normalizer.js +1 -0
  398. package/dist/infrastructure/clipboard/windows-clipboard-adapter.d.ts +7 -0
  399. package/dist/infrastructure/clipboard/windows-clipboard-adapter.js +1 -0
  400. package/dist/infrastructure/clipboard/windows-clipboard-text-adapter.d.ts +7 -0
  401. package/dist/infrastructure/clipboard/windows-clipboard-text-adapter.js +1 -0
  402. package/dist/infrastructure/config/config-loader.d.ts +19 -0
  403. package/dist/infrastructure/config/config-loader.js +2 -0
  404. package/dist/infrastructure/config/environment-values.d.ts +2 -0
  405. package/dist/infrastructure/config/environment-values.js +1 -0
  406. package/dist/infrastructure/credentials/composite-credential-store.d.ts +11 -0
  407. package/dist/infrastructure/credentials/composite-credential-store.js +1 -0
  408. package/dist/infrastructure/credentials/encrypted-file-credential-store.d.ts +17 -0
  409. package/dist/infrastructure/credentials/encrypted-file-credential-store.js +3 -0
  410. package/dist/infrastructure/credentials/environment-credential-store.d.ts +11 -0
  411. package/dist/infrastructure/credentials/environment-credential-store.js +1 -0
  412. package/dist/infrastructure/credentials/secret-input.d.ts +7 -0
  413. package/dist/infrastructure/credentials/secret-input.js +3 -0
  414. package/dist/infrastructure/extensions/composite-mcp-config-store.d.ts +9 -0
  415. package/dist/infrastructure/extensions/composite-mcp-config-store.js +1 -0
  416. package/dist/infrastructure/extensions/extension-directory-reader.d.ts +2 -0
  417. package/dist/infrastructure/extensions/extension-directory-reader.js +1 -0
  418. package/dist/infrastructure/extensions/extension-integrity.d.ts +7 -0
  419. package/dist/infrastructure/extensions/extension-integrity.js +1 -0
  420. package/dist/infrastructure/extensions/extension-source-resolver.d.ts +6 -0
  421. package/dist/infrastructure/extensions/extension-source-resolver.js +1 -0
  422. package/dist/infrastructure/extensions/extensions-constants.d.ts +6 -0
  423. package/dist/infrastructure/extensions/extensions-constants.js +1 -0
  424. package/dist/infrastructure/extensions/file-mcp-config-store.d.ts +15 -0
  425. package/dist/infrastructure/extensions/file-mcp-config-store.js +2 -0
  426. package/dist/infrastructure/extensions/hook-runtime.d.ts +18 -0
  427. package/dist/infrastructure/extensions/hook-runtime.js +1 -0
  428. package/dist/infrastructure/extensions/mcp-runtime.d.ts +58 -0
  429. package/dist/infrastructure/extensions/mcp-runtime.js +1 -0
  430. package/dist/infrastructure/extensions/plugin-agent-discovery.d.ts +4 -0
  431. package/dist/infrastructure/extensions/plugin-agent-discovery.js +1 -0
  432. package/dist/infrastructure/extensions/plugin-discovery.d.ts +5 -0
  433. package/dist/infrastructure/extensions/plugin-discovery.js +1 -0
  434. package/dist/infrastructure/extensions/plugin-manager.d.ts +23 -0
  435. package/dist/infrastructure/extensions/plugin-manager.js +2 -0
  436. package/dist/infrastructure/extensions/skill-discovery.d.ts +4 -0
  437. package/dist/infrastructure/extensions/skill-discovery.js +1 -0
  438. package/dist/infrastructure/extensions/skill-installer.d.ts +9 -0
  439. package/dist/infrastructure/extensions/skill-installer.js +1 -0
  440. package/dist/infrastructure/extensions/skill-manager.d.ts +22 -0
  441. package/dist/infrastructure/extensions/skill-manager.js +2 -0
  442. package/dist/infrastructure/extensions/skill-roots.d.ts +19 -0
  443. package/dist/infrastructure/extensions/skill-roots.js +1 -0
  444. package/dist/infrastructure/extensions/skill-tool-executor.d.ts +20 -0
  445. package/dist/infrastructure/extensions/skill-tool-executor.js +2 -0
  446. package/dist/infrastructure/filesystem/atomic-file-store.d.ts +28 -0
  447. package/dist/infrastructure/filesystem/atomic-file-store.js +1 -0
  448. package/dist/infrastructure/filesystem/bounded-file-reader.d.ts +6 -0
  449. package/dist/infrastructure/filesystem/bounded-file-reader.js +1 -0
  450. package/dist/infrastructure/filesystem/bounded-json-reader.d.ts +1 -0
  451. package/dist/infrastructure/filesystem/bounded-json-reader.js +1 -0
  452. package/dist/infrastructure/filesystem/filesystem-constants.d.ts +8 -0
  453. package/dist/infrastructure/filesystem/filesystem-constants.js +1 -0
  454. package/dist/infrastructure/filesystem/fs-errors.d.ts +2 -0
  455. package/dist/infrastructure/filesystem/fs-errors.js +1 -0
  456. package/dist/infrastructure/filesystem/gateway-media-input-reader.d.ts +12 -0
  457. package/dist/infrastructure/filesystem/gateway-media-input-reader.js +1 -0
  458. package/dist/infrastructure/filesystem/local-filesystem-tool-executor.d.ts +25 -0
  459. package/dist/infrastructure/filesystem/local-filesystem-tool-executor.js +3 -0
  460. package/dist/infrastructure/filesystem/path-resolver.d.ts +20 -0
  461. package/dist/infrastructure/filesystem/path-resolver.js +1 -0
  462. package/dist/infrastructure/filesystem/workspace-media-artifact-store.d.ts +13 -0
  463. package/dist/infrastructure/filesystem/workspace-media-artifact-store.js +1 -0
  464. package/dist/infrastructure/logging/daily-rotating-file-writer.d.ts +26 -0
  465. package/dist/infrastructure/logging/daily-rotating-file-writer.js +2 -0
  466. package/dist/infrastructure/logging/log-redactor.d.ts +2 -0
  467. package/dist/infrastructure/logging/log-redactor.js +1 -0
  468. package/dist/infrastructure/logging/logging-constants.d.ts +3 -0
  469. package/dist/infrastructure/logging/logging-constants.js +1 -0
  470. package/dist/infrastructure/logging/logging-policy.d.ts +6 -0
  471. package/dist/infrastructure/logging/logging-policy.js +1 -0
  472. package/dist/infrastructure/logging/structured-logger.d.ts +24 -0
  473. package/dist/infrastructure/logging/structured-logger.js +4 -0
  474. package/dist/infrastructure/memory/file-memory-store.d.ts +37 -0
  475. package/dist/infrastructure/memory/file-memory-store.js +11 -0
  476. package/dist/infrastructure/network/safe-media-downloader.d.ts +23 -0
  477. package/dist/infrastructure/network/safe-media-downloader.js +1 -0
  478. package/dist/infrastructure/observability/tool-execution-logger.d.ts +11 -0
  479. package/dist/infrastructure/observability/tool-execution-logger.js +1 -0
  480. package/dist/infrastructure/platform/host-platform.d.ts +16 -0
  481. package/dist/infrastructure/platform/host-platform.js +1 -0
  482. package/dist/infrastructure/platform/host-process.d.ts +31 -0
  483. package/dist/infrastructure/platform/host-process.js +1 -0
  484. package/dist/infrastructure/platform/platform-constants.d.ts +4 -0
  485. package/dist/infrastructure/platform/platform-constants.js +1 -0
  486. package/dist/infrastructure/platform/platform-paths.d.ts +25 -0
  487. package/dist/infrastructure/platform/platform-paths.js +1 -0
  488. package/dist/infrastructure/platform/process-identity.d.ts +8 -0
  489. package/dist/infrastructure/platform/process-identity.js +1 -0
  490. package/dist/infrastructure/platform/process-termination.d.ts +4 -0
  491. package/dist/infrastructure/platform/process-termination.js +1 -0
  492. package/dist/infrastructure/platform/read-only-executable.d.ts +4 -0
  493. package/dist/infrastructure/platform/read-only-executable.js +1 -0
  494. package/dist/infrastructure/project/file-project-trust-store.d.ts +12 -0
  495. package/dist/infrastructure/project/file-project-trust-store.js +2 -0
  496. package/dist/infrastructure/sdk/chat-completion-adapter.d.ts +8 -0
  497. package/dist/infrastructure/sdk/chat-completion-adapter.js +1 -0
  498. package/dist/infrastructure/sdk/lotagate-client-factory.d.ts +3 -0
  499. package/dist/infrastructure/sdk/lotagate-client-factory.js +1 -0
  500. package/dist/infrastructure/sdk/model-catalog-adapter.d.ts +19 -0
  501. package/dist/infrastructure/sdk/model-catalog-adapter.js +1 -0
  502. package/dist/infrastructure/sdk/sdk-media-gateway-client.d.ts +24 -0
  503. package/dist/infrastructure/sdk/sdk-media-gateway-client.js +1 -0
  504. package/dist/infrastructure/sessions/file-goal-store.d.ts +21 -0
  505. package/dist/infrastructure/sessions/file-goal-store.js +1 -0
  506. package/dist/infrastructure/sessions/file-session-store.d.ts +50 -0
  507. package/dist/infrastructure/sessions/file-session-store.js +4 -0
  508. package/dist/infrastructure/sessions/project-session-paths.d.ts +17 -0
  509. package/dist/infrastructure/sessions/project-session-paths.js +1 -0
  510. package/dist/infrastructure/sessions/session-constants.d.ts +3 -0
  511. package/dist/infrastructure/sessions/session-constants.js +1 -0
  512. package/dist/infrastructure/sessions/session-index.d.ts +16 -0
  513. package/dist/infrastructure/sessions/session-index.js +3 -0
  514. package/dist/infrastructure/sessions/session-journal-health.d.ts +7 -0
  515. package/dist/infrastructure/sessions/session-journal-health.js +1 -0
  516. package/dist/infrastructure/sessions/session-journal.d.ts +22 -0
  517. package/dist/infrastructure/sessions/session-journal.js +6 -0
  518. package/dist/infrastructure/sessions/subagent-journal-store.d.ts +28 -0
  519. package/dist/infrastructure/sessions/subagent-journal-store.js +2 -0
  520. package/dist/infrastructure/shell/shell-tool-executor.d.ts +21 -0
  521. package/dist/infrastructure/shell/shell-tool-executor.js +2 -0
  522. package/dist/infrastructure/tokens/tiktoken-token-estimator.d.ts +18 -0
  523. package/dist/infrastructure/tokens/tiktoken-token-estimator.js +1 -0
  524. package/dist/infrastructure/tokens/token-constants.d.ts +1 -0
  525. package/dist/infrastructure/tokens/token-constants.js +1 -0
  526. package/dist/infrastructure/workspace/workspace-settings-store.d.ts +10 -0
  527. package/dist/infrastructure/workspace/workspace-settings-store.js +4 -0
  528. package/dist/main.d.ts +7 -0
  529. package/dist/main.js +3 -0
  530. package/dist/ports/cache-store.d.ts +10 -0
  531. package/dist/ports/cache-store.js +0 -0
  532. package/dist/ports/chat-model.d.ts +30 -0
  533. package/dist/ports/chat-model.js +0 -0
  534. package/dist/ports/clipboard-adapter.d.ts +7 -0
  535. package/dist/ports/clipboard-adapter.js +0 -0
  536. package/dist/ports/clipboard-text-adapter.d.ts +3 -0
  537. package/dist/ports/clipboard-text-adapter.js +0 -0
  538. package/dist/ports/credential-store.d.ts +7 -0
  539. package/dist/ports/credential-store.js +0 -0
  540. package/dist/ports/goal-store.d.ts +12 -0
  541. package/dist/ports/goal-store.js +0 -0
  542. package/dist/ports/logger.d.ts +8 -0
  543. package/dist/ports/logger.js +0 -0
  544. package/dist/ports/media-gateway-client.d.ts +60 -0
  545. package/dist/ports/media-gateway-client.js +0 -0
  546. package/dist/ports/memory-store.d.ts +26 -0
  547. package/dist/ports/memory-store.js +0 -0
  548. package/dist/ports/model-completion-client.d.ts +8 -0
  549. package/dist/ports/model-completion-client.js +0 -0
  550. package/dist/ports/model-diagnostics.d.ts +17 -0
  551. package/dist/ports/model-diagnostics.js +0 -0
  552. package/dist/ports/project-trust-store.d.ts +12 -0
  553. package/dist/ports/project-trust-store.js +0 -0
  554. package/dist/ports/session-store.d.ts +59 -0
  555. package/dist/ports/session-store.js +0 -0
  556. package/dist/ports/subagent-lifecycle.d.ts +31 -0
  557. package/dist/ports/subagent-lifecycle.js +0 -0
  558. package/dist/ports/tool-activity.d.ts +13 -0
  559. package/dist/ports/tool-activity.js +0 -0
  560. package/dist/presentation/themes/theme.d.ts +19 -0
  561. package/dist/presentation/themes/theme.js +1 -0
  562. package/dist/presentation/tui/agent-initialization-renderer.d.ts +4 -0
  563. package/dist/presentation/tui/agent-initialization-renderer.js +1 -0
  564. package/dist/presentation/tui/context-display.d.ts +21 -0
  565. package/dist/presentation/tui/context-display.js +2 -0
  566. package/dist/presentation/tui/formatters.d.ts +6 -0
  567. package/dist/presentation/tui/formatters.js +1 -0
  568. package/dist/presentation/tui/ink/choice-window.d.ts +5 -0
  569. package/dist/presentation/tui/ink/choice-window.js +1 -0
  570. package/dist/presentation/tui/ink/components/activity-animation.d.ts +3 -0
  571. package/dist/presentation/tui/ink/components/activity-animation.js +1 -0
  572. package/dist/presentation/tui/ink/components/activity-entry.d.ts +6 -0
  573. package/dist/presentation/tui/ink/components/activity-entry.js +1 -0
  574. package/dist/presentation/tui/ink/components/activity-status.d.ts +10 -0
  575. package/dist/presentation/tui/ink/components/activity-status.js +1 -0
  576. package/dist/presentation/tui/ink/components/choice-modal.d.ts +11 -0
  577. package/dist/presentation/tui/ink/components/choice-modal.js +1 -0
  578. package/dist/presentation/tui/ink/components/composer.d.ts +40 -0
  579. package/dist/presentation/tui/ink/components/composer.js +8 -0
  580. package/dist/presentation/tui/ink/components/file-diff.d.ts +6 -0
  581. package/dist/presentation/tui/ink/components/file-diff.js +1 -0
  582. package/dist/presentation/tui/ink/components/modal.d.ts +8 -0
  583. package/dist/presentation/tui/ink/components/modal.js +2 -0
  584. package/dist/presentation/tui/ink/components/shimmer-text.d.ts +8 -0
  585. package/dist/presentation/tui/ink/components/shimmer-text.js +1 -0
  586. package/dist/presentation/tui/ink/components/subagent-activity.d.ts +11 -0
  587. package/dist/presentation/tui/ink/components/subagent-activity.js +1 -0
  588. package/dist/presentation/tui/ink/components/transcript.d.ts +40 -0
  589. package/dist/presentation/tui/ink/components/transcript.js +5 -0
  590. package/dist/presentation/tui/ink/components/welcome-panel.d.ts +6 -0
  591. package/dist/presentation/tui/ink/components/welcome-panel.js +1 -0
  592. package/dist/presentation/tui/ink/lotagate-tui.d.ts +6 -0
  593. package/dist/presentation/tui/ink/lotagate-tui.js +2 -0
  594. package/dist/presentation/tui/ink/markdown-inline-renderer.d.ts +4 -0
  595. package/dist/presentation/tui/ink/markdown-inline-renderer.js +1 -0
  596. package/dist/presentation/tui/ink/markdown-inline.d.ts +13 -0
  597. package/dist/presentation/tui/ink/markdown-inline.js +1 -0
  598. package/dist/presentation/tui/ink/markdown-message.d.ts +6 -0
  599. package/dist/presentation/tui/ink/markdown-message.js +2 -0
  600. package/dist/presentation/tui/ink/markdown-table.d.ts +16 -0
  601. package/dist/presentation/tui/ink/markdown-table.js +1 -0
  602. package/dist/presentation/tui/ink/tui-bridge.d.ts +193 -0
  603. package/dist/presentation/tui/ink/tui-bridge.js +1 -0
  604. package/dist/presentation/tui/terminal-capabilities.d.ts +15 -0
  605. package/dist/presentation/tui/terminal-capabilities.js +1 -0
  606. package/dist/presentation/tui/terminal-mouse.d.ts +5 -0
  607. package/dist/presentation/tui/terminal-mouse.js +1 -0
  608. package/dist/presentation/tui/terminal-screen.d.ts +10 -0
  609. package/dist/presentation/tui/terminal-screen.js +1 -0
  610. package/dist/presentation/tui/tui-agent-event-runner.d.ts +29 -0
  611. package/dist/presentation/tui/tui-agent-event-runner.js +1 -0
  612. package/dist/presentation/tui/tui-agent-turn-controller.d.ts +45 -0
  613. package/dist/presentation/tui/tui-agent-turn-controller.js +1 -0
  614. package/dist/presentation/tui/tui-application-contract.d.ts +11 -0
  615. package/dist/presentation/tui/tui-application-contract.js +1 -0
  616. package/dist/presentation/tui/tui-application.d.ts +61 -0
  617. package/dist/presentation/tui/tui-application.js +3 -0
  618. package/dist/presentation/tui/tui-clipboard-paste-handlers.d.ts +11 -0
  619. package/dist/presentation/tui/tui-clipboard-paste-handlers.js +1 -0
  620. package/dist/presentation/tui/tui-command-context.d.ts +3 -0
  621. package/dist/presentation/tui/tui-command-context.js +0 -0
  622. package/dist/presentation/tui/tui-command-executor.d.ts +38 -0
  623. package/dist/presentation/tui/tui-command-executor.js +4 -0
  624. package/dist/presentation/tui/tui-command-host-factory.d.ts +40 -0
  625. package/dist/presentation/tui/tui-command-host-factory.js +1 -0
  626. package/dist/presentation/tui/tui-context-compaction.d.ts +8 -0
  627. package/dist/presentation/tui/tui-context-compaction.js +1 -0
  628. package/dist/presentation/tui/tui-context-service.d.ts +2 -0
  629. package/dist/presentation/tui/tui-context-service.js +1 -0
  630. package/dist/presentation/tui/tui-extension-loader.d.ts +21 -0
  631. package/dist/presentation/tui/tui-extension-loader.js +1 -0
  632. package/dist/presentation/tui/tui-file-suggestions.d.ts +3 -0
  633. package/dist/presentation/tui/tui-file-suggestions.js +1 -0
  634. package/dist/presentation/tui/tui-goal-controller.d.ts +14 -0
  635. package/dist/presentation/tui/tui-goal-controller.js +1 -0
  636. package/dist/presentation/tui/tui-initial-model.d.ts +3 -0
  637. package/dist/presentation/tui/tui-initial-model.js +1 -0
  638. package/dist/presentation/tui/tui-lifecycle-actions.d.ts +13 -0
  639. package/dist/presentation/tui/tui-lifecycle-actions.js +1 -0
  640. package/dist/presentation/tui/tui-manual-compaction.d.ts +18 -0
  641. package/dist/presentation/tui/tui-manual-compaction.js +1 -0
  642. package/dist/presentation/tui/tui-media-model-selection.d.ts +12 -0
  643. package/dist/presentation/tui/tui-media-model-selection.js +1 -0
  644. package/dist/presentation/tui/tui-prompt-dispatcher.d.ts +16 -0
  645. package/dist/presentation/tui/tui-prompt-dispatcher.js +1 -0
  646. package/dist/presentation/tui/tui-skill-controller.d.ts +11 -0
  647. package/dist/presentation/tui/tui-skill-controller.js +3 -0
  648. package/dist/presentation/tui/tui-tool-approval.d.ts +22 -0
  649. package/dist/presentation/tui/tui-tool-approval.js +1 -0
  650. package/dist/version.d.ts +1 -0
  651. package/dist/version.js +1 -0
  652. package/native-targets.mjs +1 -1
  653. package/package.json +13 -12
  654. package/scripts/install-native.mjs +5 -13
  655. package/skills/architecture-review/SKILL.md +41 -14
  656. package/skills/code-review/SKILL.md +41 -12
  657. package/skills/debugging/SKILL.md +49 -12
  658. package/skills/documentation/SKILL.md +43 -9
  659. package/skills/feature-implementation/SKILL.md +58 -19
  660. package/bin/lotagate.exe +0 -1
  661. package/skills/api-contract-review/SKILL.md +0 -17
  662. package/skills/database-review/SKILL.md +0 -17
  663. package/skills/dependency-review/SKILL.md +0 -16
  664. package/skills/frontend-review/SKILL.md +0 -18
  665. package/skills/incident-response/SKILL.md +0 -18
  666. package/skills/performance-review/SKILL.md +0 -17
  667. package/skills/refactor/SKILL.md +0 -23
  668. package/skills/release-readiness/SKILL.md +0 -16
  669. package/skills/security-review/SKILL.md +0 -16
  670. package/skills/test-plan/SKILL.md +0 -22
  671. package/skills/verify/SKILL.md +0 -13
@@ -0,0 +1,18 @@
1
+ import type { ChatUsage } from '../../ports/chat-model.js';
2
+ export interface TokenEstimateInput {
3
+ model: string;
4
+ prompt: string;
5
+ response: string;
6
+ }
7
+ export interface TextTokenEstimateInput {
8
+ model: string;
9
+ text: string;
10
+ }
11
+ /**
12
+ * Estimates turn usage when an upstream provider does not include usage in the
13
+ * streaming protocol. The result is deliberately marked as estimated because
14
+ * providers may use a tokenizer different from the OpenAI tokenizer family.
15
+ */
16
+ export declare function estimateTurnUsage(input: TokenEstimateInput): ChatUsage | undefined;
17
+ /** Estimates one text payload with the same tokenizer used for turn fallback accounting. */
18
+ export declare function estimateTextTokens(input: TextTokenEstimateInput): number;
@@ -0,0 +1 @@
1
+ import{encoding_for_model as c,get_encoding as d}from"tiktoken";import{FALLBACK_ENCODING as f}from"./token-constants.js";function m(e){try{const t=o(e.model);try{const n=t.encode(e.prompt).length,r=t.encode(e.response).length;return{promptTokens:n,completionTokens:r,totalTokens:n+r,estimated:!0}}finally{t.free()}}catch{return}}function a(e){try{const t=o(e.model);try{return t.encode(e.text).length}finally{t.free()}}catch{return Math.ceil(Buffer.byteLength(e.text,"utf8")/4)}}function o(e){try{return c(e)}catch{return d(f)}}export{a as estimateTextTokens,m as estimateTurnUsage};
@@ -0,0 +1 @@
1
+ export declare const FALLBACK_ENCODING = "o200k_base";
@@ -0,0 +1 @@
1
+ const o="o200k_base";export{o as FALLBACK_ENCODING};
@@ -0,0 +1,10 @@
1
+ import { type WorkspaceSettings } from '../../domain/workspace/workspace-settings.js';
2
+ export declare class WorkspaceSettingsStore {
3
+ ensureInitialized(cwd: string): Promise<void>;
4
+ load(cwd: string): Promise<WorkspaceSettings>;
5
+ /** Persist a user-approved rule in the ignored local project policy. */
6
+ rememberAllow(cwd: string, rule: string): Promise<void>;
7
+ private readOptional;
8
+ private readDocumentOptional;
9
+ private createIfMissing;
10
+ }
@@ -0,0 +1,4 @@
1
+ import n from"node:fs/promises";import d from"node:path";import{DEFAULT_WORKSPACE_SETTINGS as l,normalizePermissionRule as f}from"../../domain/workspace/workspace-settings.js";import{permissionsFromSettings as u,validateSettingsDocument as g}from"../../domain/settings/settings-document.js";import{resolveProjectConfigPaths as c}from"../platform/platform-paths.js";import{atomicWriteFile as w,withFileLock as h}from"../filesystem/atomic-file-store.js";import{isAlreadyExists as y,isFileNotFound as S}from"../filesystem/fs-errors.js";import{readJsonFileBounded as k}from"../filesystem/bounded-json-reader.js";import{RESOURCE_LIMITS as O}from"../../domain/runtime/resource-limits.js";class T{async ensureInitialized(t){const i=c(t);await n.mkdir(i.directory,{recursive:!0}),await Promise.all([i.skillsDir,i.pluginsDir,i.hooksDir].map(e=>n.mkdir(e,{recursive:!0}))),await this.createIfMissing(i.settings,l),await this.createIfMissing(i.localSettings,l),await this.createIfMissing(d.join(i.directory,".gitignore"),`settings.local.json
2
+ `)}async load(t){const i=c(t),[e,r]=await Promise.all([this.readOptional(i.settings),this.readOptional(i.localSettings)]);return{schemaVersion:1,permissions:D(e?.permissions,r?.permissions)}}async rememberAllow(t,i){if(i.trim().length===0)return;const e=f(i),r=c(t);await n.mkdir(r.directory,{recursive:!0}),await h(r.localSettings,async()=>{const o=await this.readDocumentOptional(r.localSettings),a=o===void 0?l:{schemaVersion:1,permissions:u(o)};if(a.permissions.allow.includes(e))return;const p={...o?.config??{},permissions:{...a.permissions,allow:[...a.permissions.allow,e]}};await w(r.localSettings,`${JSON.stringify(p,null,2)}
3
+ `)})}async readOptional(t){const i=await this.readDocumentOptional(t);if(i!==void 0)return{schemaVersion:1,permissions:u(i)}}async readDocumentOptional(t){try{return g(await k(t,O.workspaceSettingsBytes))}catch(i){if(S(i))return;throw i}}async createIfMissing(t,i){try{await n.writeFile(t,typeof i=="string"?i:`${JSON.stringify(i,null,2)}
4
+ `,{encoding:"utf8",mode:384,flag:"wx"})}catch(e){if(!y(e))throw e}}}function D(s,t){return{allow:m(s?.allow,t?.allow),ask:m(s?.ask,t?.ask),deny:m(s?.deny,t?.deny)}}function m(...s){return[...new Set(s.flatMap(t=>t??[]))]}export{T as WorkspaceSettingsStore};
package/dist/main.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ import type { Readable, Writable } from 'node:stream';
2
+ export { CLI_VERSION } from './version.js';
3
+ export declare function main(argv: readonly string[], io?: {
4
+ stdin?: Readable;
5
+ stdout?: Writable;
6
+ stderr?: Writable;
7
+ }): Promise<number>;
package/dist/main.js ADDED
@@ -0,0 +1,3 @@
1
+ import{asCliError as S}from"./domain/errors/cli-error.js";import{createCompositionRoot as E}from"./bootstrap/composition-root.js";import{resolveStartupContext as x}from"./bootstrap/startup-sequence.js";import{parseGlobalCliOptions as O}from"./bootstrap/global-cli-options.js";import{TuiApplication as h}from"./presentation/tui/tui-application.js";import{formatCliErrorMessage as T}from"./application/commands/command-hints.js";import{COMMAND_REGISTRY as b}from"./application/commands/command-runtime.js";import{parseCommandInvocation as R}from"./application/commands/command-parser.js";import{executeApplicationCommand as v,executeInformationalCommand as G}from"./application/commands/application-command-executor.js";import{CLI_VERSION as B}from"./version.js";async function V(o,e={}){const y=e.stdin??process.stdin,n=e.stdout??process.stdout,u=e.stderr??process.stderr;let r;const i=new AbortController;let f=143;const p=()=>i.abort(new Error("Process termination requested."));let c;process.once("SIGTERM",p);try{const l=O(o),t=M(l.commandTokens);if(t.length===0){r=E({stderr:u,interactive:!0});const d=r.logger;d.info("Interactive session started.");const w=await new h(r,x(o).cwd,{output:n,signal:i.signal}).run();return d.info("Interactive session completed.",{exitCode:w}),w}const a=x(o).cwd,s=R(t,"direct",b),g=G(s,n);if(g!==void 0)return g;s.action.executor==="agent"&&(c=()=>{f=130,i.abort(new Error("Process interruption requested."))},process.once("SIGINT",c));const m=E({stderr:u});r=m;const C=m.logger;C.info("CLI command started.",{command:s.action.id,cwd:a});const I=await v(s,{runtime:m,cwd:a,output:n,stdin:y,writableOutput:n,signal:i.signal,resumeInteractive:async d=>new h(m,a,{output:n,sessionId:d,signal:i.signal}).run()});return C.info("CLI command completed.",{command:s.action.id,exitCode:I}),I}catch(l){if(i.signal.aborted)return f;const t=S(l);return r?.logger.error("CLI command failed.",{code:t.code,category:t.category}),N(o)?n.write(`${JSON.stringify({error:t.toJSON()})}
2
+ `):r!==void 0?r.logger.error(T(t,"direct"),{code:t.code,category:t.category}):u.write(`[error] ${T(t,"direct")}
3
+ `),t.exitCode}finally{process.off("SIGTERM",p),c!==void 0&&process.off("SIGINT",c),await r?.shutdown.shutdown()}}function N(o){return o.some(e=>e==="--json"||e.startsWith("--json="))}function M(o){return o.length===1&&(o[0]==="--help"||o[0]==="-h")?["help"]:o.length===1&&o[0]==="--version"?["version"]:o}export{B as CLI_VERSION,V as main};
@@ -0,0 +1,10 @@
1
+ export interface CacheWriteOptions {
2
+ ttlMs: number;
3
+ }
4
+ export interface CacheStore {
5
+ get<T>(namespace: string, key: string): Promise<T | undefined>;
6
+ set<T>(namespace: string, key: string, value: T, options: CacheWriteOptions): Promise<void>;
7
+ delete(namespace: string, key: string): Promise<void>;
8
+ clear(namespace?: string): Promise<void>;
9
+ prune(): Promise<void>;
10
+ }
File without changes
@@ -0,0 +1,30 @@
1
+ import type { AttachmentPayload } from '../domain/session/attachment.js';
2
+ export interface ChatModelRequest {
3
+ model: string;
4
+ prompt: string;
5
+ reasoningEffort?: string;
6
+ attachments?: readonly AttachmentPayload[];
7
+ signal?: AbortSignal;
8
+ }
9
+ export interface ChatUsage {
10
+ promptTokens?: number;
11
+ completionTokens?: number;
12
+ totalTokens?: number;
13
+ /** True when the CLI derived usage locally rather than receiving it from the provider. */
14
+ estimated?: boolean;
15
+ }
16
+ export type ChatModelEvent = {
17
+ type: 'activity';
18
+ state: 'connecting' | 'thinking' | 'writing' | 'completed';
19
+ } | {
20
+ type: 'delta';
21
+ content: string;
22
+ } | {
23
+ type: 'usage';
24
+ usage: ChatUsage;
25
+ } | {
26
+ type: 'completed';
27
+ };
28
+ export interface ChatModelPort {
29
+ stream(request: ChatModelRequest): AsyncIterable<ChatModelEvent>;
30
+ }
File without changes
@@ -0,0 +1,7 @@
1
+ export interface ClipboardImage {
2
+ bytes: Uint8Array;
3
+ mimeType: string;
4
+ }
5
+ export interface ClipboardAdapter {
6
+ readImage(): Promise<ClipboardImage | undefined>;
7
+ }
File without changes
@@ -0,0 +1,3 @@
1
+ export interface ClipboardTextAdapter {
2
+ readText(): Promise<string | undefined>;
3
+ }
File without changes
@@ -0,0 +1,7 @@
1
+ import type { AuthProfile, StoredCredential } from '../domain/auth/auth-profile.js';
2
+ export interface CredentialStore {
3
+ list(): Promise<readonly AuthProfile[]>;
4
+ get(profileName: string): Promise<StoredCredential | undefined>;
5
+ set(credential: StoredCredential): Promise<void>;
6
+ delete(profileName: string): Promise<boolean>;
7
+ }
File without changes
@@ -0,0 +1,12 @@
1
+ import type { CreateGoalInput, GoalEvaluation, GoalState, GoalUsageDelta } from '../domain/orchestration/goal.js';
2
+ export interface GoalStore {
3
+ get(sessionId: string): Promise<GoalState | undefined>;
4
+ create(sessionId: string, input: CreateGoalInput): Promise<GoalState>;
5
+ replace(sessionId: string, input: CreateGoalInput): Promise<GoalState>;
6
+ pause(sessionId: string, reason?: string): Promise<GoalState>;
7
+ resume(sessionId: string): Promise<GoalState>;
8
+ recordTurn(sessionId: string): Promise<GoalState>;
9
+ recordUsage(sessionId: string, delta: GoalUsageDelta): Promise<GoalState>;
10
+ recordEvaluation(sessionId: string, evaluation: GoalEvaluation): Promise<GoalState>;
11
+ clear(sessionId: string, reason?: string): Promise<void>;
12
+ }
File without changes
@@ -0,0 +1,8 @@
1
+ export type LogLevel = 'error' | 'warn' | 'info' | 'debug' | 'trace';
2
+ export interface Logger {
3
+ error(message: string, details?: Record<string, unknown>): void;
4
+ warn(message: string, details?: Record<string, unknown>): void;
5
+ info(message: string, details?: Record<string, unknown>): void;
6
+ debug(message: string, details?: Record<string, unknown>): void;
7
+ trace(message: string, details?: Record<string, unknown>): void;
8
+ }
File without changes
@@ -0,0 +1,60 @@
1
+ import type { GeneratedImage, MediaBinary, VideoOperation } from '../domain/media/media-contract.js';
2
+ export type SpeechStreamFormat = 'audio' | 'sse';
3
+ export type SpeechStreamEvent = Readonly<Record<string, unknown>>;
4
+ export interface MediaRequestOptions {
5
+ readonly signal?: AbortSignal | undefined;
6
+ }
7
+ export interface ImageGenerationInput {
8
+ readonly model: string;
9
+ readonly prompt: string;
10
+ readonly n?: number | undefined;
11
+ readonly size?: string | undefined;
12
+ readonly quality?: 'low' | 'medium' | 'high' | 'auto' | undefined;
13
+ readonly background?: 'transparent' | 'opaque' | 'auto' | undefined;
14
+ readonly outputFormat?: 'png' | 'jpeg' | 'webp' | undefined;
15
+ readonly outputCompression?: number | undefined;
16
+ readonly moderation?: string | undefined;
17
+ readonly user?: string | undefined;
18
+ }
19
+ export interface ImageEditInput extends ImageGenerationInput {
20
+ readonly images: Uint8Array[];
21
+ readonly mask?: Uint8Array | undefined;
22
+ readonly inputFidelity?: 'low' | 'high' | undefined;
23
+ }
24
+ export interface SpeechInput {
25
+ readonly model: string;
26
+ readonly input: string;
27
+ readonly voice: string;
28
+ readonly instructions?: string | undefined;
29
+ readonly responseFormat?: 'mp3' | 'opus' | 'aac' | 'flac' | 'wav' | 'pcm' | undefined;
30
+ readonly speed?: number | undefined;
31
+ readonly streamFormat?: SpeechStreamFormat | undefined;
32
+ }
33
+ export interface AudioUploadInput {
34
+ readonly model: string;
35
+ readonly file: Uint8Array;
36
+ readonly filename: string;
37
+ readonly prompt?: string | undefined;
38
+ readonly responseFormat?: string | undefined;
39
+ readonly temperature?: number | undefined;
40
+ readonly language?: string | undefined;
41
+ readonly timestampGranularities?: readonly ('word' | 'segment')[] | undefined;
42
+ readonly include?: readonly string[] | undefined;
43
+ }
44
+ export interface MediaGatewayClient {
45
+ generateImage(input: ImageGenerationInput, options?: MediaRequestOptions): Promise<readonly GeneratedImage[]>;
46
+ editImage(input: ImageEditInput, options?: MediaRequestOptions): Promise<readonly GeneratedImage[]>;
47
+ createSpeech(input: SpeechInput, options?: MediaRequestOptions): Promise<MediaBinary>;
48
+ createSpeechStream(input: SpeechInput & {
49
+ readonly streamFormat: 'sse';
50
+ }, options?: MediaRequestOptions): AsyncIterable<SpeechStreamEvent>;
51
+ transcribe(input: AudioUploadInput, options?: MediaRequestOptions): Promise<string>;
52
+ translate(input: AudioUploadInput, options?: MediaRequestOptions): Promise<string>;
53
+ createVideo(input: {
54
+ model: string;
55
+ prompt: string;
56
+ parameters?: Record<string, unknown>;
57
+ }, options?: MediaRequestOptions): Promise<VideoOperation>;
58
+ getVideoOperation(id: string, options?: MediaRequestOptions): Promise<VideoOperation>;
59
+ downloadVideo(id: string, options?: MediaRequestOptions): Promise<MediaBinary>;
60
+ }
File without changes
@@ -0,0 +1,26 @@
1
+ import type { MemoryBundle, MemoryDraft, MemoryRecord, MemoryState } from '../domain/memory/memory.js';
2
+ import type { MemoryKind } from '../domain/memory/memory-kinds.js';
3
+ import type { MemorySearchHit, MemorySearchQuery, MemorySemanticHit } from '../domain/memory/memory-search.js';
4
+ export interface MemoryListOptions {
5
+ readonly kind?: MemoryKind;
6
+ readonly state?: MemoryState;
7
+ }
8
+ export interface MemoryStore {
9
+ list(cwd: string, options?: MemoryListOptions): Promise<readonly MemoryRecord[]>;
10
+ search(cwd: string, query: MemorySearchQuery): Promise<readonly MemorySearchHit[]>;
11
+ ensureSemanticIndex(cwd: string, model: string, embed: (texts: readonly string[], signal?: AbortSignal) => Promise<readonly number[][]>, signal?: AbortSignal): Promise<void>;
12
+ semanticSearch(cwd: string, model: string, vector: readonly number[], maximum: number): Promise<readonly MemorySemanticHit[]>;
13
+ get(cwd: string, id: string): Promise<MemoryRecord | undefined>;
14
+ consolidate(cwd: string, draft: MemoryDraft): Promise<{
15
+ record: MemoryRecord;
16
+ action: 'insert' | 'merge' | 'supersede' | 'ignore';
17
+ }>;
18
+ forget(cwd: string, id: string): Promise<boolean>;
19
+ clear(cwd: string): Promise<number>;
20
+ markRetrieved(cwd: string, ids: readonly string[]): Promise<void>;
21
+ export(cwd: string): Promise<MemoryBundle>;
22
+ import(cwd: string, bundle: MemoryBundle): Promise<{
23
+ imported: number;
24
+ skipped: number;
25
+ }>;
26
+ }
File without changes
@@ -0,0 +1,8 @@
1
+ import type { ChatCompletionRequest, ChatCompletionResponse, RequestOptions } from '@lotagate/sdk';
2
+ export interface ModelCompletionClient {
3
+ readonly chat: {
4
+ readonly completions: {
5
+ create(request: ChatCompletionRequest, options?: RequestOptions): Promise<ChatCompletionResponse>;
6
+ };
7
+ };
8
+ }
File without changes
@@ -0,0 +1,17 @@
1
+ import type { ChatUsage } from './chat-model.js';
2
+ export interface ModelCallSummary {
3
+ model: string;
4
+ stream: boolean;
5
+ contentLength: number;
6
+ toolCallCount: number;
7
+ toolNames: readonly string[];
8
+ finishReason?: string | null;
9
+ usage?: ChatUsage;
10
+ }
11
+ export interface ModelUsageReport {
12
+ usage: ChatUsage;
13
+ modelCalls?: number;
14
+ }
15
+ export interface ModelCallObserver {
16
+ onComplete?: (summary: ModelCallSummary) => void;
17
+ }
File without changes
@@ -0,0 +1,12 @@
1
+ export interface TrustedProject {
2
+ fingerprint: string;
3
+ canonicalPath: string;
4
+ grantedAt: string;
5
+ grantedBy: 'user';
6
+ }
7
+ export interface ProjectTrustStore {
8
+ list(): Promise<readonly TrustedProject[]>;
9
+ get(fingerprint: string): Promise<TrustedProject | undefined>;
10
+ grant(project: TrustedProject): Promise<void>;
11
+ revoke(fingerprint: string): Promise<boolean>;
12
+ }
File without changes
@@ -0,0 +1,59 @@
1
+ import type { Attachment } from '../domain/session/attachment.js';
2
+ import type { SessionEvent, SessionMetadata, TranscriptEntry } from '../domain/session/session.js';
3
+ export interface SessionBundle {
4
+ metadata: SessionMetadata;
5
+ events: readonly SessionEvent[];
6
+ transcript: readonly TranscriptEntry[];
7
+ attachments: readonly {
8
+ attachment: Attachment;
9
+ dataBase64: string;
10
+ }[];
11
+ }
12
+ export interface SessionRepairResult {
13
+ eventsRemoved: number;
14
+ transcriptRemoved: number;
15
+ }
16
+ export interface AppendEventOptions {
17
+ /** The caller already owns the session lock for an atomic read/modify/write operation. */
18
+ locked?: boolean;
19
+ }
20
+ export interface CompactSessionOptions {
21
+ turnId?: string;
22
+ }
23
+ /** A consistent transcript/event view derived from one journal snapshot. */
24
+ export interface SessionHistory {
25
+ events: readonly SessionEvent[];
26
+ transcript: readonly TranscriptEntry[];
27
+ }
28
+ /** Ordered durable records to append under one session lock. */
29
+ export type SessionJournalAppend = {
30
+ kind: 'event';
31
+ event: SessionEvent;
32
+ } | {
33
+ kind: 'transcript';
34
+ entry: TranscriptEntry;
35
+ };
36
+ export interface SessionStore {
37
+ create(input: Omit<SessionMetadata, 'id' | 'createdAt' | 'updatedAt'>): Promise<SessionMetadata>;
38
+ get(sessionId: string): Promise<SessionMetadata | undefined>;
39
+ list(projectFingerprint?: string): Promise<readonly SessionMetadata[]>;
40
+ updateStatus(sessionId: string, status: SessionMetadata['status']): Promise<SessionMetadata>;
41
+ rename(sessionId: string, name: string): Promise<SessionMetadata>;
42
+ appendEvent(event: SessionEvent, options?: AppendEventOptions): Promise<void>;
43
+ appendTranscript(sessionId: string, entry: TranscriptEntry): Promise<void>;
44
+ appendJournal(sessionId: string, records: readonly SessionJournalAppend[]): Promise<void>;
45
+ readEvents(sessionId: string): Promise<readonly SessionEvent[]>;
46
+ readTranscript(sessionId: string): Promise<readonly TranscriptEntry[]>;
47
+ readHistory(sessionId: string): Promise<SessionHistory>;
48
+ delete(sessionId: string): Promise<boolean>;
49
+ fork(sessionId: string, overrides?: Partial<Pick<SessionMetadata, 'model' | 'profile'>>): Promise<SessionMetadata>;
50
+ compact(sessionId: string, summary: string, options?: CompactSessionOptions): Promise<void>;
51
+ export(sessionId: string): Promise<SessionBundle>;
52
+ import(bundle: SessionBundle, projectFingerprint: string, cwd: string): Promise<SessionMetadata>;
53
+ saveAttachment(sessionId: string, attachment: Attachment, bytes: Uint8Array): Promise<Attachment>;
54
+ deleteAttachment(sessionId: string, attachmentId: string): Promise<boolean>;
55
+ readAttachment(sessionId: string, attachmentId: string): Promise<Uint8Array | undefined>;
56
+ recoverStaleLock(sessionId: string): Promise<boolean>;
57
+ repair(sessionId: string): Promise<SessionRepairResult>;
58
+ withLock<T>(sessionId: string, action: () => Promise<T>): Promise<T>;
59
+ }
File without changes
@@ -0,0 +1,31 @@
1
+ import type { SubagentHandoff, SubagentMode, SubagentStatus } from '../domain/orchestration/subagent.js';
2
+ export type SubagentLifecycleEventType = 'created' | 'started' | 'activity' | 'completed' | 'completed_with_warning' | 'failed' | 'cancelled';
3
+ export type SubagentActionKind = 'filesystem' | 'shell' | 'mcp' | 'approval';
4
+ /** A redacted, presentation-safe description of the child's current operation. */
5
+ export interface SubagentLastAction {
6
+ readonly kind: SubagentActionKind;
7
+ readonly label: string;
8
+ }
9
+ /**
10
+ * CLI-owned lifecycle signal for presenting delegated work without coupling
11
+ * orchestration to a specific user interface.
12
+ */
13
+ export interface SubagentLifecycleEvent {
14
+ readonly type: SubagentLifecycleEventType;
15
+ readonly sessionId: string;
16
+ readonly id: string;
17
+ readonly displayName: string;
18
+ readonly task: string;
19
+ readonly mode: SubagentMode;
20
+ readonly model: string;
21
+ readonly status: SubagentStatus;
22
+ readonly background: boolean;
23
+ readonly timestamp: number;
24
+ readonly durationMs?: number;
25
+ readonly summary?: string;
26
+ readonly lastAction?: SubagentLastAction;
27
+ readonly handoff?: SubagentHandoff;
28
+ }
29
+ export interface SubagentLifecycleObserver {
30
+ onSubagentLifecycle(event: SubagentLifecycleEvent): void | Promise<void>;
31
+ }
File without changes
@@ -0,0 +1,13 @@
1
+ export interface ToolActivityStart {
2
+ key: string;
3
+ toolName: string;
4
+ source?: string;
5
+ label: string;
6
+ }
7
+ export interface ToolActivityHandle {
8
+ complete(isError: boolean, metadata?: Readonly<Record<string, unknown>>): void;
9
+ }
10
+ /** Observes tool execution without making UI concerns part of tool executors. */
11
+ export interface ToolActivityObserver {
12
+ start(activity: ToolActivityStart): ToolActivityHandle | undefined;
13
+ }
File without changes
@@ -0,0 +1,19 @@
1
+ export interface CliTheme {
2
+ background: string;
3
+ surface: string;
4
+ surfaceRaised: string;
5
+ text: string;
6
+ muted: string;
7
+ accent: string;
8
+ border: string;
9
+ selection: string;
10
+ warning: string;
11
+ user: string;
12
+ error: string;
13
+ success: string;
14
+ diffAdded: string;
15
+ diffRemoved: string;
16
+ code: string;
17
+ link: string;
18
+ }
19
+ export declare const DARK_THEME: CliTheme;
@@ -0,0 +1 @@
1
+ const e={background:"#10151c",surface:"#171e27",surfaceRaised:"#202a36",text:"#e6edf3",accent:"#5ba7d8",border:"#3b424b",selection:"#2a3a4d",warning:"#d6b574",user:"#1b2b3d",error:"#e06c75",success:"#86c991",diffAdded:"#173323",diffRemoved:"#3a2028",code:"#d6b574",link:"#75b7e7",muted:"#8b949e"};export{e as DARK_THEME};
@@ -0,0 +1,4 @@
1
+ import type { AgentEvent } from '@lotagate/agent-sdk';
2
+ import type { InkTuiBridge } from './ink/tui-bridge.js';
3
+ /** Reports only actionable MCP initialization failures; routine connects stay out of the transcript. */
4
+ export declare function renderAgentInitialization(renderer: InkTuiBridge, events: readonly AgentEvent[]): void;
@@ -0,0 +1 @@
1
+ function c(t,s){const r=new Map;for(const e of s)if(e.type==="mcp.server.status"){const o=i(r,e.summary.serverId);o.status=e.summary.status,e.summary.protocolVersion!==void 0&&(o.protocolVersion=e.summary.protocolVersion)}else e.type==="mcp.tool.discovered"?i(r,e.tool.serverId).discovered+=1:e.type==="mcp.tool.catalog.updated"&&e.error!==void 0&&(i(r,e.serverId).discoveryError=e.error.message);for(const[e,o]of r){if(o.discoveryError===void 0&&(o.status===void 0||o.status==="connected"))continue;const n=[o.status==="connected"?void 0:o.status,...o.protocolVersion===void 0?[]:[`protocol ${o.protocolVersion}`],...o.discovered===0?[]:[`${o.discovered} tool${o.discovered===1?"":"s"} discovered`],...o.discoveryError===void 0?[]:[`tool discovery failed \xB7 ${o.discoveryError}`]].filter(d=>d!==void 0);t.initializationNotice(`mcp:${e}`,`MCP ${e}: ${n.join(" \xB7 ")||"initialized"}`)}}function i(t,s){const r=t.get(s);if(r!==void 0)return r;const e={discovered:0};return t.set(s,e),e}export{c as renderAgentInitialization};
@@ -0,0 +1,21 @@
1
+ export interface TuiContextSnapshot {
2
+ model: string | null;
3
+ contextWindow?: number;
4
+ usedTokens: number;
5
+ systemPromptTokens: number;
6
+ conversationTokens: number;
7
+ inputTokens?: number;
8
+ outputTokens?: number;
9
+ otherTokens?: number;
10
+ transcriptEntries: number;
11
+ userMessages: number;
12
+ assistantMessages: number;
13
+ toolCalls: number;
14
+ compactions: number;
15
+ pendingAttachments: number;
16
+ toolNames: readonly string[];
17
+ mcpServers: number;
18
+ memoryFiles: number;
19
+ }
20
+ /** Renders durable and estimated context information as a human-readable TUI report. */
21
+ export declare function formatContextSnapshot(snapshot: TuiContextSnapshot): string;
@@ -0,0 +1,2 @@
1
+ import{formatCompactNumber as t}from"./formatters.js";function d(e){const o=e.contextWindow===void 0?"?":t(e.contextWindow),n=e.contextWindow===void 0?void 0:Math.max(0,e.contextWindow-e.usedTokens),i=e.contextWindow===void 0||e.contextWindow<=0?"?":`${Math.round(e.usedTokens/e.contextWindow*100)}%`;return["Context Usage",`Model ${e.model??"not selected"}`,`Context ${t(e.usedTokens)}/${o} tokens (${i})`,`System ${t(e.systemPromptTokens)} tokens`,`Conversation ${t(e.conversationTokens)} tokens`,...e.inputTokens===void 0?[]:[` Input ${t(e.inputTokens)} tokens`],...e.outputTokens===void 0?[]:[` Output ${t(e.outputTokens)} tokens`],...e.otherTokens===void 0?[]:[` Other ${t(e.otherTokens)} tokens`],`Free space ${n===void 0?"?":t(n)} tokens`,"",`Local tools ${e.toolNames.length}`,`MCP servers ${e.mcpServers}`,"MCP tools discovered when an agent run initializes the servers",`Memory files ${e.memoryFiles}`,`Messages ${e.transcriptEntries} (${e.userMessages} user \xB7 ${e.assistantMessages} assistant)`,`Tool calls ${e.toolCalls}`,`Compactions ${e.compactions}`,`Attachments ${e.pendingAttachments}`,"","Token counts are estimated from persisted conversation context and the current system guidance; provider usage may differ."].join(`
2
+ `)}export{d as formatContextSnapshot};
@@ -0,0 +1,6 @@
1
+ export { formatCompactNumber } from '../../application/formatting/compact-number.js';
2
+ /** Estimates terminal column width without relying on a transitive dependency. */
3
+ export declare function terminalTextWidth(value: string): number;
4
+ export declare function wrapTerminalText(value: string, width: number): string[];
5
+ export declare function truncateTerminalText(value: string, width: number, suffix?: string): string;
6
+ export declare function formatContextUsage(usedTokens: number, contextWindow?: number): string;
@@ -0,0 +1 @@
1
+ import{formatCompactNumber as n}from"../../application/formatting/compact-number.js";import{formatCompactNumber as g}from"../../application/formatting/compact-number.js";function m(r){let t=0;for(const x of r){const f=x.codePointAt(0)??0;h(f)||(t+=p(f)?2:1)}return t}function u(r,t){if(r.length===0)return[""];const x=[];let f="";for(const a of Array.from(r)){const e=`${f}${a}`;f.length>0&&m(e)>Math.max(1,t)?(x.push(f),f=a):f=e}return f.length>0&&x.push(f),x}function i(r,t,x="\u2026"){const f=Math.max(0,Math.floor(t));if(m(r)<=f)return r;if(f===0)return"";const a=m(x);return a>=f?Array.from(x).slice(0,f).join(""):`${u(r,f-a)[0]??""}${x}`}function l(r,t){return t===void 0?`${n(r)}/?`:`${n(r)}/${n(t)}`}function h(r){return r>=768&&r<=879||r===8205||r>=65024&&r<=65039}function p(r){return r>=4352&&(r<=4447||r===9001||r===9002||r>=11904&&r<=42191||r>=44032&&r<=55203||r>=63744&&r<=64255||r>=65040&&r<=65049||r>=65072&&r<=65135||r>=65280&&r<=65376||r>=65504&&r<=65510||r>=127744&&r<=129791)}export{g as formatCompactNumber,l as formatContextUsage,m as terminalTextWidth,i as truncateTerminalText,u as wrapTerminalText};
@@ -0,0 +1,5 @@
1
+ export interface ChoiceWindow<T> {
2
+ readonly start: number;
3
+ readonly entries: readonly T[];
4
+ }
5
+ export declare function choiceWindow<T>(choices: readonly T[], selected: number, maximumVisible: number): ChoiceWindow<T>;
@@ -0,0 +1 @@
1
+ function h(n,e,o){const t=Math.max(1,o),a=Math.max(0,Math.min(e-Math.floor(t/2),Math.max(0,n.length-t)));return{start:a,entries:n.slice(a,a+t)}}export{h as choiceWindow};
@@ -0,0 +1,3 @@
1
+ export declare const ACTIVITY_ANIMATION_INTERVAL_MS = 120;
2
+ export declare const ACTIVITY_SPINNER_FRAMES: readonly ["◐", "◓", "◑", "◒"];
3
+ export declare function activitySpinnerFrame(frame: number): string;
@@ -0,0 +1 @@
1
+ const I=120,t=["\u25D0","\u25D3","\u25D1","\u25D2"];function e(n){return t[n%t.length]??t[0]}export{I as ACTIVITY_ANIMATION_INTERVAL_MS,t as ACTIVITY_SPINNER_FRAMES,e as activitySpinnerFrame};
@@ -0,0 +1,6 @@
1
+ import type { JSX } from 'react';
2
+ import type { TuiMessage } from '../tui-bridge.js';
3
+ export declare function ActivityEntry({ activity, showDetails }: {
4
+ activity: NonNullable<TuiMessage['activity']>;
5
+ showDetails?: boolean;
6
+ }): JSX.Element;
@@ -0,0 +1 @@
1
+ import{jsxs as m,jsx as d}from"react/jsx-runtime";import{Box as $,Text as l,useAnimation as A,useStdout as g}from"ink";import{DARK_THEME as n}from"../../../themes/theme.js";import{terminalTextWidth as i,truncateTerminalText as h}from"../../formatters.js";import{ShimmerText as M}from"./shimmer-text.js";import{ACTIVITY_ANIMATION_INTERVAL_MS as _,activitySpinnerFrame as b}from"./activity-animation.js";function L({activity:e,showDetails:u=!1}){const{stdout:f}=g(),o=e.state==="pending",t=e.state==="running",a=A({interval:_,isActive:t}),p=t?Math.max(e.elapsedMs??0,Date.now()-e.startedAt):e.elapsedMs??0,r=o?"\u25CC":t?b(a.frame):e.state==="failed"?"!":"\u2713",c=`${o?"Run":t?"Running":e.state==="failed"?"Command failed":"Ran"} ${e.label.replace(/\s+/gu," ").trim()}`,s=` \xB7 ${I(p)}${u&&e.toolName!==void 0?` \xB7 ${e.toolName}${e.kind===void 0?"":` \xB7 ${e.kind}`}`:""}`,x=Math.max(1,(f.columns??80)-2-i(`${r} `)-i(s)),T=h(c,x,"....");return m($,{marginBottom:1,children:[m(l,{color:e.state==="failed"?n.error:t||o?n.warning:n.muted,children:[r," "]}),d(M,{value:T,active:t,frame:a.frame,color:t?n.warning:n.text}),d(l,{color:n.muted,children:s})]})}function I(e){return e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`}export{L as ActivityEntry};
@@ -0,0 +1,10 @@
1
+ import type { JSX } from 'react';
2
+ import type { ChatUsage } from '../../../../ports/chat-model.js';
3
+ export interface ActivityStatusProps {
4
+ status: string;
5
+ activityStartedAt?: number;
6
+ elapsedMs?: number;
7
+ usage?: ChatUsage;
8
+ paused?: boolean;
9
+ }
10
+ export declare function ActivityStatus({ status, activityStartedAt, elapsedMs, usage, paused }: ActivityStatusProps): JSX.Element;
@@ -0,0 +1 @@
1
+ import{jsxs as i,jsx as x}from"react/jsx-runtime";import{Box as T,Text as l,useAnimation as h}from"ink";import{DARK_THEME as t}from"../../../themes/theme.js";import{ShimmerText as A}from"./shimmer-text.js";import{ACTIVITY_ANIMATION_INTERVAL_MS as v,activitySpinnerFrame as _}from"./activity-animation.js";function $({status:o,activityStartedAt:c,elapsedMs:a,usage:n,paused:m=!1}){const e=o!=="Done"&&o!=="Cancelled"&&o!=="Failed",s=h({interval:v,isActive:e&&!m}),p=e&&c!==void 0?Math.max(a??0,Date.now()-c):a??0,r=[j(p)],f=n?.completionTokens??n?.totalTokens;f!==void 0&&r.push(`${n?.estimated===!0?"~":""}${f} output tokens`),e&&r.push("Esc cancel");const u=e?_(s.frame):"\u25CF",d=o==="Failed"?t.error:e?t.warning:t.success;return i(T,{marginBottom:1,children:[i(l,{color:d,children:[u," "]}),x(A,{value:o,active:e&&!m,frame:s.frame}),i(l,{color:t.muted,children:[" ",r.join(" \xB7 ")]})]})}function j(o){return o<1e3?`${o}ms`:`${(o/1e3).toFixed(1)}s`}export{$ as ActivityStatus};
@@ -0,0 +1,11 @@
1
+ import type { JSX } from 'react';
2
+ import type { InkTuiBridge, TuiChoice } from '../tui-bridge.js';
3
+ export interface ChoiceModalProps {
4
+ bridge: InkTuiBridge;
5
+ title: string;
6
+ choices: readonly TuiChoice[];
7
+ currentValue?: string;
8
+ detail?: string;
9
+ borderColor?: string;
10
+ }
11
+ export declare function ChoiceModal({ bridge, title, choices, currentValue, detail, borderColor }: ChoiceModalProps): JSX.Element;
@@ -0,0 +1 @@
1
+ import{jsx as a,jsxs as s}from"react/jsx-runtime";import{useState as M}from"react";import{Box as v,Text as r,useInput as A}from"ink";import{DARK_THEME as t}from"../../../themes/theme.js";import{choiceWindow as C}from"../choice-window.js";function b({bridge:i,title:x,choices:l,currentValue:p,detail:u,borderColor:w=t.accent}){const h=l.findIndex(e=>e.value===p),[c,m]=M(Math.max(0,h)),f=C(l,c,8);return A((e,n)=>{n.upArrow?m(o=>Math.max(0,o-1)):n.downArrow?m(o=>Math.min(Math.max(0,l.length-1),o+1)):n.return?i.resolveActiveModal(l[c]?.value):e.toLowerCase()==="y"&&l.some(o=>o.value==="allow")?i.resolveActiveModal("allow"):e.toLowerCase()==="n"&&l.some(o=>o.value==="deny")?i.resolveActiveModal("deny"):(n.escape||e==="q")&&i.resolveActiveModal(void 0)}),s(v,{borderStyle:"double",borderColor:w,flexDirection:"column",marginTop:1,paddingX:1,children:[a(r,{bold:!0,color:t.text,children:"Action required"}),a(r,{color:t.text,children:x}),u!==void 0&&a(r,{color:t.muted,children:u}),f.entries.map((e,n)=>{const o=f.start+n===c,d=o?{backgroundColor:t.selection}:{};return s(v,{width:"100%",alignSelf:"stretch",flexDirection:"row",...d,children:[a(r,{color:o?t.accent:t.muted,...d,children:"\u203A "}),a(r,{color:t.text,...d,children:e.label}),e.description!==void 0&&s(r,{color:t.muted,...d,children:[" ",e.description]})]},e.value)}),a(r,{color:t.muted,children:"\u2191\u2193 navigate \xB7 Enter select \xB7 Esc cancel"})]})}export{b as ChoiceModal};
@@ -0,0 +1,40 @@
1
+ import type { JSX } from 'react';
2
+ import type { Attachment } from '../../../../domain/session/attachment.js';
3
+ import type { InkTuiBridge, TuiChoice } from '../tui-bridge.js';
4
+ export interface ComposerCursorPosition {
5
+ x: number;
6
+ y: number;
7
+ }
8
+ interface ComposerInputLayout {
9
+ x: number;
10
+ y: number;
11
+ width: number;
12
+ }
13
+ export declare function calculateComposerCursorPosition({ layout, value, cursor, terminalRows }: {
14
+ layout: ComposerInputLayout;
15
+ value: string;
16
+ cursor: number;
17
+ terminalRows?: number;
18
+ }): ComposerCursorPosition | undefined;
19
+ export declare function Composer({ bridge, enabled, activeRun, visible, clearBlockedUntil, footerNotice, contextUsage, attachments, fileChoices, onLayoutRowsChange }: {
20
+ bridge: InkTuiBridge;
21
+ enabled: boolean;
22
+ activeRun: boolean;
23
+ visible?: boolean;
24
+ clearBlockedUntil?: number;
25
+ footerNotice?: string;
26
+ contextUsage?: {
27
+ usedTokens: number;
28
+ contextWindow?: number;
29
+ };
30
+ attachments: readonly Attachment[];
31
+ fileChoices: readonly TuiChoice[];
32
+ onLayoutRowsChange?: (rows: number) => void;
33
+ }): JSX.Element | null;
34
+ export interface AtFileReference {
35
+ start: number;
36
+ query: string;
37
+ }
38
+ /** Returns the active unquoted @workspace-file token immediately before the cursor. */
39
+ export declare function atFileReference(value: string, cursor: number): AtFileReference | undefined;
40
+ export {};