@aexol/spectral 0.8.2 → 0.8.5

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 (523) hide show
  1. package/CHANGELOG.md +82 -55
  2. package/README.md +80 -82
  3. package/dist/agent/agents.d.ts +37 -0
  4. package/dist/agent/agents.d.ts.map +1 -0
  5. package/dist/agent/index.d.ts +29 -0
  6. package/dist/agent/index.d.ts.map +1 -0
  7. package/dist/cli.d.ts +17 -0
  8. package/dist/cli.d.ts.map +1 -0
  9. package/dist/commands/bind.d.ts +12 -0
  10. package/dist/commands/bind.d.ts.map +1 -0
  11. package/dist/commands/login-oauth.d.ts +15 -0
  12. package/dist/commands/login-oauth.d.ts.map +1 -0
  13. package/dist/commands/login.d.ts +37 -0
  14. package/dist/commands/login.d.ts.map +1 -0
  15. package/dist/commands/logout.d.ts +8 -0
  16. package/dist/commands/logout.d.ts.map +1 -0
  17. package/dist/commands/serve.d.ts +112 -0
  18. package/dist/commands/serve.d.ts.map +1 -0
  19. package/dist/commands/unbind.d.ts +8 -0
  20. package/dist/commands/unbind.d.ts.map +1 -0
  21. package/dist/config.d.ts +49 -0
  22. package/dist/config.d.ts.map +1 -0
  23. package/dist/designer/guidelines.d.ts +23 -0
  24. package/dist/designer/guidelines.d.ts.map +1 -0
  25. package/dist/designer/index.d.ts +26 -0
  26. package/dist/designer/index.d.ts.map +1 -0
  27. package/dist/designer/philosophies.d.ts +33 -0
  28. package/dist/designer/philosophies.d.ts.map +1 -0
  29. package/dist/designer/skills.d.ts +27 -0
  30. package/dist/designer/skills.d.ts.map +1 -0
  31. package/dist/designer/systems.d.ts +36 -0
  32. package/dist/designer/systems.d.ts.map +1 -0
  33. package/dist/extensions/aexol-mcp.d.ts +25 -0
  34. package/dist/extensions/aexol-mcp.d.ts.map +1 -0
  35. package/dist/extensions/kanban-bridge.d.ts +24 -0
  36. package/dist/extensions/kanban-bridge.d.ts.map +1 -0
  37. package/dist/extensions/openrouter-attribution.d.ts +12 -0
  38. package/dist/extensions/openrouter-attribution.d.ts.map +1 -0
  39. package/dist/extensions/spectral-vision-fallback.d.ts +23 -0
  40. package/dist/extensions/spectral-vision-fallback.d.ts.map +1 -0
  41. package/dist/extensions/spectral-vision-fallback.js +29 -20
  42. package/dist/index.d.ts +46 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +44 -0
  45. package/dist/mcp/agent-dir.d.ts +3 -0
  46. package/dist/mcp/agent-dir.d.ts.map +1 -0
  47. package/dist/mcp/commands.d.ts +9 -0
  48. package/dist/mcp/commands.d.ts.map +1 -0
  49. package/dist/mcp/config.d.ts +78 -0
  50. package/dist/mcp/config.d.ts.map +1 -0
  51. package/dist/mcp/consent-manager.d.ts +14 -0
  52. package/dist/mcp/consent-manager.d.ts.map +1 -0
  53. package/dist/mcp/direct-tools.d.ts +11 -0
  54. package/dist/mcp/direct-tools.d.ts.map +1 -0
  55. package/dist/mcp/errors.d.ts +100 -0
  56. package/dist/mcp/errors.d.ts.map +1 -0
  57. package/dist/mcp/glimpse-ui.d.ts +10 -0
  58. package/dist/mcp/glimpse-ui.d.ts.map +1 -0
  59. package/dist/mcp/host-html-template.d.ts +17 -0
  60. package/dist/mcp/host-html-template.d.ts.map +1 -0
  61. package/dist/mcp/index.d.ts +3 -0
  62. package/dist/mcp/index.d.ts.map +1 -0
  63. package/dist/mcp/init.d.ts +10 -0
  64. package/dist/mcp/init.d.ts.map +1 -0
  65. package/dist/mcp/lifecycle.d.ts +30 -0
  66. package/dist/mcp/lifecycle.d.ts.map +1 -0
  67. package/dist/mcp/logger.d.ts +52 -0
  68. package/dist/mcp/logger.d.ts.map +1 -0
  69. package/dist/mcp/mcp-auth-flow.d.ts +69 -0
  70. package/dist/mcp/mcp-auth-flow.d.ts.map +1 -0
  71. package/dist/mcp/mcp-auth.d.ts +100 -0
  72. package/dist/mcp/mcp-auth.d.ts.map +1 -0
  73. package/dist/mcp/mcp-callback-server.d.ts +40 -0
  74. package/dist/mcp/mcp-callback-server.d.ts.map +1 -0
  75. package/dist/mcp/mcp-oauth-provider.d.ts +101 -0
  76. package/dist/mcp/mcp-oauth-provider.d.ts.map +1 -0
  77. package/dist/mcp/metadata-cache.d.ts +32 -0
  78. package/dist/mcp/metadata-cache.d.ts.map +1 -0
  79. package/dist/mcp/npx-resolver.d.ts +7 -0
  80. package/dist/mcp/npx-resolver.d.ts.map +1 -0
  81. package/dist/mcp/oauth-handler.d.ts +19 -0
  82. package/dist/mcp/oauth-handler.d.ts.map +1 -0
  83. package/dist/mcp/onboarding-state.d.ts +13 -0
  84. package/dist/mcp/onboarding-state.d.ts.map +1 -0
  85. package/dist/mcp/proxy-modes.d.ts +12 -0
  86. package/dist/mcp/proxy-modes.d.ts.map +1 -0
  87. package/dist/mcp/resource-tools.d.ts +2 -0
  88. package/dist/mcp/resource-tools.d.ts.map +1 -0
  89. package/dist/mcp/sampling-handler.d.ts +16 -0
  90. package/dist/mcp/sampling-handler.d.ts.map +1 -0
  91. package/dist/mcp/server-manager.d.ts +42 -0
  92. package/dist/mcp/server-manager.d.ts.map +1 -0
  93. package/dist/mcp/state.d.ts +41 -0
  94. package/dist/mcp/state.d.ts.map +1 -0
  95. package/dist/mcp/tool-metadata.d.ts +11 -0
  96. package/dist/mcp/tool-metadata.d.ts.map +1 -0
  97. package/dist/mcp/tool-registrar.d.ts +9 -0
  98. package/dist/mcp/tool-registrar.d.ts.map +1 -0
  99. package/dist/mcp/types.d.ts +263 -0
  100. package/dist/mcp/types.d.ts.map +1 -0
  101. package/dist/mcp/ui-resource-handler.d.ts +10 -0
  102. package/dist/mcp/ui-resource-handler.d.ts.map +1 -0
  103. package/dist/mcp/ui-server.d.ts +37 -0
  104. package/dist/mcp/ui-server.d.ts.map +1 -0
  105. package/dist/mcp/ui-session.d.ts +27 -0
  106. package/dist/mcp/ui-session.d.ts.map +1 -0
  107. package/dist/mcp/ui-stream-types.d.ts +197 -0
  108. package/dist/mcp/ui-stream-types.d.ts.map +1 -0
  109. package/dist/mcp/utils.d.ts +17 -0
  110. package/dist/mcp/utils.d.ts.map +1 -0
  111. package/dist/mcp/vitest.config.d.ts +3 -0
  112. package/dist/mcp/vitest.config.d.ts.map +1 -0
  113. package/dist/mcp-client.d.ts +58 -0
  114. package/dist/mcp-client.d.ts.map +1 -0
  115. package/dist/mcp-client.js +2 -1
  116. package/dist/memory/branch.d.ts +124 -0
  117. package/dist/memory/branch.d.ts.map +1 -0
  118. package/dist/memory/commands/status.d.ts +4 -0
  119. package/dist/memory/commands/status.d.ts.map +1 -0
  120. package/dist/memory/commands/view.d.ts +4 -0
  121. package/dist/memory/commands/view.d.ts.map +1 -0
  122. package/dist/memory/compaction.d.ts +113 -0
  123. package/dist/memory/compaction.d.ts.map +1 -0
  124. package/dist/memory/config.d.ts +27 -0
  125. package/dist/memory/config.d.ts.map +1 -0
  126. package/dist/memory/debug-log.d.ts +12 -0
  127. package/dist/memory/debug-log.d.ts.map +1 -0
  128. package/dist/memory/hooks/compaction-hook.d.ts +4 -0
  129. package/dist/memory/hooks/compaction-hook.d.ts.map +1 -0
  130. package/dist/memory/hooks/compaction-trigger.d.ts +4 -0
  131. package/dist/memory/hooks/compaction-trigger.d.ts.map +1 -0
  132. package/dist/memory/hooks/observer-trigger.d.ts +4 -0
  133. package/dist/memory/hooks/observer-trigger.d.ts.map +1 -0
  134. package/dist/memory/ids.d.ts +2 -0
  135. package/dist/memory/ids.d.ts.map +1 -0
  136. package/dist/memory/index.d.ts +3 -0
  137. package/dist/memory/index.d.ts.map +1 -0
  138. package/dist/memory/model-budget.d.ts +4 -0
  139. package/dist/memory/model-budget.d.ts.map +1 -0
  140. package/dist/memory/observer.d.ts +21 -0
  141. package/dist/memory/observer.d.ts.map +1 -0
  142. package/dist/memory/project-observations-store.d.ts +24 -0
  143. package/dist/memory/project-observations-store.d.ts.map +1 -0
  144. package/dist/memory/prompts.d.ts +11 -0
  145. package/dist/memory/prompts.d.ts.map +1 -0
  146. package/dist/memory/relevance.d.ts +4 -0
  147. package/dist/memory/relevance.d.ts.map +1 -0
  148. package/dist/memory/runtime.d.ts +40 -0
  149. package/dist/memory/runtime.d.ts.map +1 -0
  150. package/dist/memory/serialize.d.ts +26 -0
  151. package/dist/memory/serialize.d.ts.map +1 -0
  152. package/dist/memory/tokens.d.ts +8 -0
  153. package/dist/memory/tokens.d.ts.map +1 -0
  154. package/dist/memory/tools/read-project-observations.d.ts +8 -0
  155. package/dist/memory/tools/read-project-observations.d.ts.map +1 -0
  156. package/dist/memory/tools/recall-observation.d.ts +63 -0
  157. package/dist/memory/tools/recall-observation.d.ts.map +1 -0
  158. package/dist/memory/tools/write-project-observation.d.ts +9 -0
  159. package/dist/memory/tools/write-project-observation.d.ts.map +1 -0
  160. package/dist/memory/types.d.ts +65 -0
  161. package/dist/memory/types.d.ts.map +1 -0
  162. package/dist/preflight.d.ts +27 -0
  163. package/dist/preflight.d.ts.map +1 -0
  164. package/dist/preflight.js +3 -1
  165. package/dist/relay/auto-research.d.ts +64 -0
  166. package/dist/relay/auto-research.d.ts.map +1 -0
  167. package/dist/relay/auto-research.js +174 -69
  168. package/dist/relay/client.d.ts +126 -0
  169. package/dist/relay/client.d.ts.map +1 -0
  170. package/dist/relay/dispatcher.d.ts +207 -0
  171. package/dist/relay/dispatcher.d.ts.map +1 -0
  172. package/dist/relay/machine-store.d.ts +68 -0
  173. package/dist/relay/machine-store.d.ts.map +1 -0
  174. package/dist/relay/models-fetch.d.ts +75 -0
  175. package/dist/relay/models-fetch.d.ts.map +1 -0
  176. package/dist/relay/registration.d.ts +81 -0
  177. package/dist/relay/registration.d.ts.map +1 -0
  178. package/dist/sdk/agent-core/agent-loop.d.ts +24 -0
  179. package/dist/sdk/agent-core/agent-loop.d.ts.map +1 -0
  180. package/dist/sdk/agent-core/agent.d.ts +125 -0
  181. package/dist/sdk/agent-core/agent.d.ts.map +1 -0
  182. package/dist/sdk/agent-core/harness/agent-harness.d.ts +92 -0
  183. package/dist/sdk/agent-core/harness/agent-harness.d.ts.map +1 -0
  184. package/dist/sdk/agent-core/harness/compaction/branch-summarization.d.ts +53 -0
  185. package/dist/sdk/agent-core/harness/compaction/branch-summarization.d.ts.map +1 -0
  186. package/dist/sdk/agent-core/harness/compaction/compaction.d.ts +95 -0
  187. package/dist/sdk/agent-core/harness/compaction/compaction.d.ts.map +1 -0
  188. package/dist/sdk/agent-core/harness/compaction/utils.d.ts +25 -0
  189. package/dist/sdk/agent-core/harness/compaction/utils.d.ts.map +1 -0
  190. package/dist/sdk/agent-core/harness/env/nodejs.d.ts +51 -0
  191. package/dist/sdk/agent-core/harness/env/nodejs.d.ts.map +1 -0
  192. package/dist/sdk/agent-core/harness/messages.d.ts +51 -0
  193. package/dist/sdk/agent-core/harness/messages.d.ts.map +1 -0
  194. package/dist/sdk/agent-core/harness/prompt-templates.d.ts +48 -0
  195. package/dist/sdk/agent-core/harness/prompt-templates.d.ts.map +1 -0
  196. package/dist/sdk/agent-core/harness/session/jsonl-repo.d.ts +26 -0
  197. package/dist/sdk/agent-core/harness/session/jsonl-repo.d.ts.map +1 -0
  198. package/dist/sdk/agent-core/harness/session/jsonl-storage.d.ts +33 -0
  199. package/dist/sdk/agent-core/harness/session/jsonl-storage.d.ts.map +1 -0
  200. package/dist/sdk/agent-core/harness/session/memory-repo.d.ts +18 -0
  201. package/dist/sdk/agent-core/harness/session/memory-repo.d.ts.map +1 -0
  202. package/dist/sdk/agent-core/harness/session/memory-storage.d.ts +25 -0
  203. package/dist/sdk/agent-core/harness/session/memory-storage.d.ts.map +1 -0
  204. package/dist/sdk/agent-core/harness/session/repo-utils.d.ts +11 -0
  205. package/dist/sdk/agent-core/harness/session/repo-utils.d.ts.map +1 -0
  206. package/dist/sdk/agent-core/harness/session/session.d.ts +32 -0
  207. package/dist/sdk/agent-core/harness/session/session.d.ts.map +1 -0
  208. package/dist/sdk/agent-core/harness/session/uuid.d.ts +2 -0
  209. package/dist/sdk/agent-core/harness/session/uuid.d.ts.map +1 -0
  210. package/dist/sdk/agent-core/harness/skills.d.ts +44 -0
  211. package/dist/sdk/agent-core/harness/skills.d.ts.map +1 -0
  212. package/dist/sdk/agent-core/harness/system-prompt.d.ts +3 -0
  213. package/dist/sdk/agent-core/harness/system-prompt.d.ts.map +1 -0
  214. package/dist/sdk/agent-core/harness/types.d.ts +601 -0
  215. package/dist/sdk/agent-core/harness/types.d.ts.map +1 -0
  216. package/dist/sdk/agent-core/harness/utils/shell-output.d.ts +14 -0
  217. package/dist/sdk/agent-core/harness/utils/shell-output.d.ts.map +1 -0
  218. package/dist/sdk/agent-core/harness/utils/truncate.d.ts +70 -0
  219. package/dist/sdk/agent-core/harness/utils/truncate.d.ts.map +1 -0
  220. package/dist/sdk/agent-core/index.d.ts +20 -0
  221. package/dist/sdk/agent-core/index.d.ts.map +1 -0
  222. package/dist/sdk/agent-core/node.d.ts +3 -0
  223. package/dist/sdk/agent-core/node.d.ts.map +1 -0
  224. package/dist/sdk/agent-core/proxy.d.ts +69 -0
  225. package/dist/sdk/agent-core/proxy.d.ts.map +1 -0
  226. package/dist/sdk/agent-core/types.d.ts +393 -0
  227. package/dist/sdk/agent-core/types.d.ts.map +1 -0
  228. package/dist/sdk/ai/api-registry.d.ts +20 -0
  229. package/dist/sdk/ai/api-registry.d.ts.map +1 -0
  230. package/dist/sdk/ai/cli.d.ts +3 -0
  231. package/dist/sdk/ai/cli.d.ts.map +1 -0
  232. package/dist/sdk/ai/env-api-keys.d.ts +18 -0
  233. package/dist/sdk/ai/env-api-keys.d.ts.map +1 -0
  234. package/dist/sdk/ai/image-models.d.ts +10 -0
  235. package/dist/sdk/ai/image-models.d.ts.map +1 -0
  236. package/dist/sdk/ai/image-models.generated.d.ts +440 -0
  237. package/dist/sdk/ai/image-models.generated.d.ts.map +1 -0
  238. package/dist/sdk/ai/images-api-registry.d.ts +14 -0
  239. package/dist/sdk/ai/images-api-registry.d.ts.map +1 -0
  240. package/dist/sdk/ai/images.d.ts +4 -0
  241. package/dist/sdk/ai/images.d.ts.map +1 -0
  242. package/dist/sdk/ai/index.d.ts +21 -0
  243. package/dist/sdk/ai/index.d.ts.map +1 -0
  244. package/dist/sdk/ai/models.d.ts +18 -0
  245. package/dist/sdk/ai/models.d.ts.map +1 -0
  246. package/dist/sdk/ai/models.generated.d.ts +17349 -0
  247. package/dist/sdk/ai/models.generated.d.ts.map +1 -0
  248. package/dist/sdk/ai/oauth.d.ts +2 -0
  249. package/dist/sdk/ai/oauth.d.ts.map +1 -0
  250. package/dist/sdk/ai/providers/anthropic.d.ts +54 -0
  251. package/dist/sdk/ai/providers/anthropic.d.ts.map +1 -0
  252. package/dist/sdk/ai/providers/faux.d.ts +56 -0
  253. package/dist/sdk/ai/providers/faux.d.ts.map +1 -0
  254. package/dist/sdk/ai/providers/github-copilot-headers.d.ts +8 -0
  255. package/dist/sdk/ai/providers/github-copilot-headers.d.ts.map +1 -0
  256. package/dist/sdk/ai/providers/openai-completions.d.ts +19 -0
  257. package/dist/sdk/ai/providers/openai-completions.d.ts.map +1 -0
  258. package/dist/sdk/ai/providers/openai-prompt-cache.d.ts +3 -0
  259. package/dist/sdk/ai/providers/openai-prompt-cache.d.ts.map +1 -0
  260. package/dist/sdk/ai/providers/register-builtins.d.ts +15 -0
  261. package/dist/sdk/ai/providers/register-builtins.d.ts.map +1 -0
  262. package/dist/sdk/ai/providers/simple-options.d.ts +8 -0
  263. package/dist/sdk/ai/providers/simple-options.d.ts.map +1 -0
  264. package/dist/sdk/ai/providers/transform-messages.d.ts +8 -0
  265. package/dist/sdk/ai/providers/transform-messages.d.ts.map +1 -0
  266. package/dist/sdk/ai/session-resources.d.ts +4 -0
  267. package/dist/sdk/ai/session-resources.d.ts.map +1 -0
  268. package/dist/sdk/ai/stream.d.ts +8 -0
  269. package/dist/sdk/ai/stream.d.ts.map +1 -0
  270. package/dist/sdk/ai/types.d.ts +488 -0
  271. package/dist/sdk/ai/types.d.ts.map +1 -0
  272. package/dist/sdk/ai/utils/diagnostics.d.ts +19 -0
  273. package/dist/sdk/ai/utils/diagnostics.d.ts.map +1 -0
  274. package/dist/sdk/ai/utils/event-stream.d.ts +21 -0
  275. package/dist/sdk/ai/utils/event-stream.d.ts.map +1 -0
  276. package/dist/sdk/ai/utils/hash.d.ts +3 -0
  277. package/dist/sdk/ai/utils/hash.d.ts.map +1 -0
  278. package/dist/sdk/ai/utils/headers.d.ts +2 -0
  279. package/dist/sdk/ai/utils/headers.d.ts.map +1 -0
  280. package/dist/sdk/ai/utils/json-parse.d.ts +16 -0
  281. package/dist/sdk/ai/utils/json-parse.d.ts.map +1 -0
  282. package/dist/sdk/ai/utils/node-http-proxy.d.ts +10 -0
  283. package/dist/sdk/ai/utils/node-http-proxy.d.ts.map +1 -0
  284. package/dist/sdk/ai/utils/oauth/anthropic.d.ts +25 -0
  285. package/dist/sdk/ai/utils/oauth/anthropic.d.ts.map +1 -0
  286. package/dist/sdk/ai/utils/oauth/device-code.d.ts +19 -0
  287. package/dist/sdk/ai/utils/oauth/device-code.d.ts.map +1 -0
  288. package/dist/sdk/ai/utils/oauth/github-copilot.d.ts +30 -0
  289. package/dist/sdk/ai/utils/oauth/github-copilot.d.ts.map +1 -0
  290. package/dist/sdk/ai/utils/oauth/index.d.ts +58 -0
  291. package/dist/sdk/ai/utils/oauth/index.d.ts.map +1 -0
  292. package/dist/sdk/ai/utils/oauth/oauth-page.d.ts +3 -0
  293. package/dist/sdk/ai/utils/oauth/oauth-page.d.ts.map +1 -0
  294. package/dist/sdk/ai/utils/oauth/openai-codex.d.ts +34 -0
  295. package/dist/sdk/ai/utils/oauth/openai-codex.d.ts.map +1 -0
  296. package/dist/sdk/ai/utils/oauth/pkce.d.ts +13 -0
  297. package/dist/sdk/ai/utils/oauth/pkce.d.ts.map +1 -0
  298. package/dist/sdk/ai/utils/oauth/types.d.ts +64 -0
  299. package/dist/sdk/ai/utils/oauth/types.d.ts.map +1 -0
  300. package/dist/sdk/ai/utils/overflow.d.ts +56 -0
  301. package/dist/sdk/ai/utils/overflow.d.ts.map +1 -0
  302. package/dist/sdk/ai/utils/sanitize-unicode.d.ts +22 -0
  303. package/dist/sdk/ai/utils/sanitize-unicode.d.ts.map +1 -0
  304. package/dist/sdk/ai/utils/typebox-helpers.d.ts +17 -0
  305. package/dist/sdk/ai/utils/typebox-helpers.d.ts.map +1 -0
  306. package/dist/sdk/ai/utils/validation.d.ts +18 -0
  307. package/dist/sdk/ai/utils/validation.d.ts.map +1 -0
  308. package/dist/sdk/coding-agent/cli.d.ts +3 -0
  309. package/dist/sdk/coding-agent/cli.d.ts.map +1 -0
  310. package/dist/sdk/coding-agent/config.d.ts +71 -0
  311. package/dist/sdk/coding-agent/config.d.ts.map +1 -0
  312. package/dist/sdk/coding-agent/core/agent-session-runtime.d.ts +117 -0
  313. package/dist/sdk/coding-agent/core/agent-session-runtime.d.ts.map +1 -0
  314. package/dist/sdk/coding-agent/core/agent-session-services.d.ts +86 -0
  315. package/dist/sdk/coding-agent/core/agent-session-services.d.ts.map +1 -0
  316. package/dist/sdk/coding-agent/core/agent-session.d.ts +626 -0
  317. package/dist/sdk/coding-agent/core/agent-session.d.ts.map +1 -0
  318. package/dist/sdk/coding-agent/core/auth-guidance.d.ts +5 -0
  319. package/dist/sdk/coding-agent/core/auth-guidance.d.ts.map +1 -0
  320. package/dist/sdk/coding-agent/core/auth-storage.d.ts +145 -0
  321. package/dist/sdk/coding-agent/core/auth-storage.d.ts.map +1 -0
  322. package/dist/sdk/coding-agent/core/bash-executor.d.ts +32 -0
  323. package/dist/sdk/coding-agent/core/bash-executor.d.ts.map +1 -0
  324. package/dist/sdk/coding-agent/core/compaction/branch-summarization.d.ts +88 -0
  325. package/dist/sdk/coding-agent/core/compaction/branch-summarization.d.ts.map +1 -0
  326. package/dist/sdk/coding-agent/core/compaction/compaction.d.ts +142 -0
  327. package/dist/sdk/coding-agent/core/compaction/compaction.d.ts.map +1 -0
  328. package/dist/sdk/coding-agent/core/compaction/index.d.ts +7 -0
  329. package/dist/sdk/coding-agent/core/compaction/index.d.ts.map +1 -0
  330. package/dist/sdk/coding-agent/core/compaction/utils.d.ts +38 -0
  331. package/dist/sdk/coding-agent/core/compaction/utils.d.ts.map +1 -0
  332. package/dist/sdk/coding-agent/core/defaults.d.ts +3 -0
  333. package/dist/sdk/coding-agent/core/defaults.d.ts.map +1 -0
  334. package/dist/sdk/coding-agent/core/diagnostics.d.ts +15 -0
  335. package/dist/sdk/coding-agent/core/diagnostics.d.ts.map +1 -0
  336. package/dist/sdk/coding-agent/core/event-bus.d.ts +9 -0
  337. package/dist/sdk/coding-agent/core/event-bus.d.ts.map +1 -0
  338. package/dist/sdk/coding-agent/core/exec.d.ts +29 -0
  339. package/dist/sdk/coding-agent/core/exec.d.ts.map +1 -0
  340. package/dist/sdk/coding-agent/core/extensions/index.d.ts +12 -0
  341. package/dist/sdk/coding-agent/core/extensions/index.d.ts.map +1 -0
  342. package/dist/sdk/coding-agent/core/extensions/loader.d.ts +24 -0
  343. package/dist/sdk/coding-agent/core/extensions/loader.d.ts.map +1 -0
  344. package/dist/sdk/coding-agent/core/extensions/loader.js +1 -0
  345. package/dist/sdk/coding-agent/core/extensions/runner.d.ts +161 -0
  346. package/dist/sdk/coding-agent/core/extensions/runner.d.ts.map +1 -0
  347. package/dist/sdk/coding-agent/core/extensions/types.d.ts +1181 -0
  348. package/dist/sdk/coding-agent/core/extensions/types.d.ts.map +1 -0
  349. package/dist/sdk/coding-agent/core/extensions/wrapper.d.ts +20 -0
  350. package/dist/sdk/coding-agent/core/extensions/wrapper.d.ts.map +1 -0
  351. package/dist/sdk/coding-agent/core/http-dispatcher.d.ts +21 -0
  352. package/dist/sdk/coding-agent/core/http-dispatcher.d.ts.map +1 -0
  353. package/dist/sdk/coding-agent/core/index.d.ts +12 -0
  354. package/dist/sdk/coding-agent/core/index.d.ts.map +1 -0
  355. package/dist/sdk/coding-agent/core/keybindings.d.ts +371 -0
  356. package/dist/sdk/coding-agent/core/keybindings.d.ts.map +1 -0
  357. package/dist/sdk/coding-agent/core/messages.d.ts +77 -0
  358. package/dist/sdk/coding-agent/core/messages.d.ts.map +1 -0
  359. package/dist/sdk/coding-agent/core/model-registry.d.ts +150 -0
  360. package/dist/sdk/coding-agent/core/model-registry.d.ts.map +1 -0
  361. package/dist/sdk/coding-agent/core/model-resolver-utils.d.ts +7 -0
  362. package/dist/sdk/coding-agent/core/model-resolver-utils.d.ts.map +1 -0
  363. package/dist/sdk/coding-agent/core/model-resolver.d.ts +110 -0
  364. package/dist/sdk/coding-agent/core/model-resolver.d.ts.map +1 -0
  365. package/dist/sdk/coding-agent/core/output-guard.d.ts +6 -0
  366. package/dist/sdk/coding-agent/core/output-guard.d.ts.map +1 -0
  367. package/dist/sdk/coding-agent/core/package-manager.d.ts +204 -0
  368. package/dist/sdk/coding-agent/core/package-manager.d.ts.map +1 -0
  369. package/dist/sdk/coding-agent/core/prompt-templates.d.ts +52 -0
  370. package/dist/sdk/coding-agent/core/prompt-templates.d.ts.map +1 -0
  371. package/dist/sdk/coding-agent/core/provider-display-names.d.ts +2 -0
  372. package/dist/sdk/coding-agent/core/provider-display-names.d.ts.map +1 -0
  373. package/dist/sdk/coding-agent/core/resolve-config-value.d.ts +23 -0
  374. package/dist/sdk/coding-agent/core/resolve-config-value.d.ts.map +1 -0
  375. package/dist/sdk/coding-agent/core/resource-loader.d.ts +194 -0
  376. package/dist/sdk/coding-agent/core/resource-loader.d.ts.map +1 -0
  377. package/dist/sdk/coding-agent/core/sdk.d.ts +107 -0
  378. package/dist/sdk/coding-agent/core/sdk.d.ts.map +1 -0
  379. package/dist/sdk/coding-agent/core/session-cwd.d.ts +19 -0
  380. package/dist/sdk/coding-agent/core/session-cwd.d.ts.map +1 -0
  381. package/dist/sdk/coding-agent/core/session-manager.d.ts +333 -0
  382. package/dist/sdk/coding-agent/core/session-manager.d.ts.map +1 -0
  383. package/dist/sdk/coding-agent/core/settings-manager.d.ts +209 -0
  384. package/dist/sdk/coding-agent/core/settings-manager.d.ts.map +1 -0
  385. package/dist/sdk/coding-agent/core/skills.d.ts +60 -0
  386. package/dist/sdk/coding-agent/core/skills.d.ts.map +1 -0
  387. package/dist/sdk/coding-agent/core/slash-commands.d.ts +14 -0
  388. package/dist/sdk/coding-agent/core/slash-commands.d.ts.map +1 -0
  389. package/dist/sdk/coding-agent/core/source-info.d.ts +18 -0
  390. package/dist/sdk/coding-agent/core/source-info.d.ts.map +1 -0
  391. package/dist/sdk/coding-agent/core/system-prompt.d.ts +28 -0
  392. package/dist/sdk/coding-agent/core/system-prompt.d.ts.map +1 -0
  393. package/dist/sdk/coding-agent/core/telemetry.d.ts +3 -0
  394. package/dist/sdk/coding-agent/core/telemetry.d.ts.map +1 -0
  395. package/dist/sdk/coding-agent/core/theme.d.ts +28 -0
  396. package/dist/sdk/coding-agent/core/theme.d.ts.map +1 -0
  397. package/dist/sdk/coding-agent/core/timings.d.ts +8 -0
  398. package/dist/sdk/coding-agent/core/timings.d.ts.map +1 -0
  399. package/dist/sdk/coding-agent/core/tools/bash.d.ts +63 -0
  400. package/dist/sdk/coding-agent/core/tools/bash.d.ts.map +1 -0
  401. package/dist/sdk/coding-agent/core/tools/edit-diff.d.ts +87 -0
  402. package/dist/sdk/coding-agent/core/tools/edit-diff.d.ts.map +1 -0
  403. package/dist/sdk/coding-agent/core/tools/edit.d.ts +39 -0
  404. package/dist/sdk/coding-agent/core/tools/edit.d.ts.map +1 -0
  405. package/dist/sdk/coding-agent/core/tools/file-mutation-queue.d.ts +6 -0
  406. package/dist/sdk/coding-agent/core/tools/file-mutation-queue.d.ts.map +1 -0
  407. package/dist/sdk/coding-agent/core/tools/find.d.ts +35 -0
  408. package/dist/sdk/coding-agent/core/tools/find.d.ts.map +1 -0
  409. package/dist/sdk/coding-agent/core/tools/grep.d.ts +37 -0
  410. package/dist/sdk/coding-agent/core/tools/grep.d.ts.map +1 -0
  411. package/dist/sdk/coding-agent/core/tools/index.d.ts +40 -0
  412. package/dist/sdk/coding-agent/core/tools/index.d.ts.map +1 -0
  413. package/dist/sdk/coding-agent/core/tools/ls.d.ts +37 -0
  414. package/dist/sdk/coding-agent/core/tools/ls.d.ts.map +1 -0
  415. package/dist/sdk/coding-agent/core/tools/output-accumulator.d.ts +52 -0
  416. package/dist/sdk/coding-agent/core/tools/output-accumulator.d.ts.map +1 -0
  417. package/dist/sdk/coding-agent/core/tools/path-utils.d.ts +8 -0
  418. package/dist/sdk/coding-agent/core/tools/path-utils.d.ts.map +1 -0
  419. package/dist/sdk/coding-agent/core/tools/read.d.ts +35 -0
  420. package/dist/sdk/coding-agent/core/tools/read.d.ts.map +1 -0
  421. package/dist/sdk/coding-agent/core/tools/read.js +18 -10
  422. package/dist/sdk/coding-agent/core/tools/render-diff.d.ts +17 -0
  423. package/dist/sdk/coding-agent/core/tools/render-diff.d.ts.map +1 -0
  424. package/dist/sdk/coding-agent/core/tools/render-utils.d.ts +21 -0
  425. package/dist/sdk/coding-agent/core/tools/render-utils.d.ts.map +1 -0
  426. package/dist/sdk/coding-agent/core/tools/tool-definition-wrapper.d.ts +14 -0
  427. package/dist/sdk/coding-agent/core/tools/tool-definition-wrapper.d.ts.map +1 -0
  428. package/dist/sdk/coding-agent/core/tools/truncate.d.ts +70 -0
  429. package/dist/sdk/coding-agent/core/tools/truncate.d.ts.map +1 -0
  430. package/dist/sdk/coding-agent/core/tools/write.d.ts +26 -0
  431. package/dist/sdk/coding-agent/core/tools/write.d.ts.map +1 -0
  432. package/dist/sdk/coding-agent/index.d.ts +29 -0
  433. package/dist/sdk/coding-agent/index.d.ts.map +1 -0
  434. package/dist/sdk/coding-agent/main.d.ts +2 -0
  435. package/dist/sdk/coding-agent/main.d.ts.map +1 -0
  436. package/dist/sdk/coding-agent/migrations.d.ts +33 -0
  437. package/dist/sdk/coding-agent/migrations.d.ts.map +1 -0
  438. package/dist/sdk/coding-agent/modes/index.d.ts +8 -0
  439. package/dist/sdk/coding-agent/modes/index.d.ts.map +1 -0
  440. package/dist/sdk/coding-agent/modes/print-mode.d.ts +28 -0
  441. package/dist/sdk/coding-agent/modes/print-mode.d.ts.map +1 -0
  442. package/dist/sdk/coding-agent/modes/rpc/jsonl.d.ts +17 -0
  443. package/dist/sdk/coding-agent/modes/rpc/jsonl.d.ts.map +1 -0
  444. package/dist/sdk/coding-agent/modes/rpc/rpc-client.d.ts +224 -0
  445. package/dist/sdk/coding-agent/modes/rpc/rpc-client.d.ts.map +1 -0
  446. package/dist/sdk/coding-agent/modes/rpc/rpc-mode.d.ts +20 -0
  447. package/dist/sdk/coding-agent/modes/rpc/rpc-mode.d.ts.map +1 -0
  448. package/dist/sdk/coding-agent/modes/rpc/rpc-types.d.ts +419 -0
  449. package/dist/sdk/coding-agent/modes/rpc/rpc-types.d.ts.map +1 -0
  450. package/dist/sdk/coding-agent/utils/ansi.d.ts +2 -0
  451. package/dist/sdk/coding-agent/utils/ansi.d.ts.map +1 -0
  452. package/dist/sdk/coding-agent/utils/changelog.d.ts +21 -0
  453. package/dist/sdk/coding-agent/utils/changelog.d.ts.map +1 -0
  454. package/dist/sdk/coding-agent/utils/child-process.d.ts +15 -0
  455. package/dist/sdk/coding-agent/utils/child-process.d.ts.map +1 -0
  456. package/dist/sdk/coding-agent/utils/clipboard-image.d.ts +11 -0
  457. package/dist/sdk/coding-agent/utils/clipboard-image.d.ts.map +1 -0
  458. package/dist/sdk/coding-agent/utils/clipboard-native.d.ts +8 -0
  459. package/dist/sdk/coding-agent/utils/clipboard-native.d.ts.map +1 -0
  460. package/dist/sdk/coding-agent/utils/clipboard.d.ts +2 -0
  461. package/dist/sdk/coding-agent/utils/clipboard.d.ts.map +1 -0
  462. package/dist/sdk/coding-agent/utils/exif-orientation.d.ts +5 -0
  463. package/dist/sdk/coding-agent/utils/exif-orientation.d.ts.map +1 -0
  464. package/dist/sdk/coding-agent/utils/frontmatter.d.ts +8 -0
  465. package/dist/sdk/coding-agent/utils/frontmatter.d.ts.map +1 -0
  466. package/dist/sdk/coding-agent/utils/fs-watch.d.ts +5 -0
  467. package/dist/sdk/coding-agent/utils/fs-watch.d.ts.map +1 -0
  468. package/dist/sdk/coding-agent/utils/git.d.ts +26 -0
  469. package/dist/sdk/coding-agent/utils/git.d.ts.map +1 -0
  470. package/dist/sdk/coding-agent/utils/html.d.ts +7 -0
  471. package/dist/sdk/coding-agent/utils/html.d.ts.map +1 -0
  472. package/dist/sdk/coding-agent/utils/image-convert.d.ts +9 -0
  473. package/dist/sdk/coding-agent/utils/image-convert.d.ts.map +1 -0
  474. package/dist/sdk/coding-agent/utils/image-resize.d.ts +36 -0
  475. package/dist/sdk/coding-agent/utils/image-resize.d.ts.map +1 -0
  476. package/dist/sdk/coding-agent/utils/mime.d.ts +3 -0
  477. package/dist/sdk/coding-agent/utils/mime.d.ts.map +1 -0
  478. package/dist/sdk/coding-agent/utils/paths.d.ts +31 -0
  479. package/dist/sdk/coding-agent/utils/paths.d.ts.map +1 -0
  480. package/dist/sdk/coding-agent/utils/photon.d.ts +13 -0
  481. package/dist/sdk/coding-agent/utils/photon.d.ts.map +1 -0
  482. package/dist/sdk/coding-agent/utils/pi-user-agent.d.ts +2 -0
  483. package/dist/sdk/coding-agent/utils/pi-user-agent.d.ts.map +1 -0
  484. package/dist/sdk/coding-agent/utils/shell.d.ts +30 -0
  485. package/dist/sdk/coding-agent/utils/shell.d.ts.map +1 -0
  486. package/dist/sdk/coding-agent/utils/sleep.d.ts +5 -0
  487. package/dist/sdk/coding-agent/utils/sleep.d.ts.map +1 -0
  488. package/dist/sdk/coding-agent/utils/syntax-highlight.d.ts +12 -0
  489. package/dist/sdk/coding-agent/utils/syntax-highlight.d.ts.map +1 -0
  490. package/dist/sdk/coding-agent/utils/tools-manager.d.ts +3 -0
  491. package/dist/sdk/coding-agent/utils/tools-manager.d.ts.map +1 -0
  492. package/dist/sdk/coding-agent/utils/version-check.d.ts +15 -0
  493. package/dist/sdk/coding-agent/utils/version-check.d.ts.map +1 -0
  494. package/dist/sdk/coding-agent/utils/windows-self-update.d.ts +3 -0
  495. package/dist/sdk/coding-agent/utils/windows-self-update.d.ts.map +1 -0
  496. package/dist/server/agent-bridge.d.ts +308 -0
  497. package/dist/server/agent-bridge.d.ts.map +1 -0
  498. package/dist/server/handlers/errors.d.ts +26 -0
  499. package/dist/server/handlers/errors.d.ts.map +1 -0
  500. package/dist/server/handlers/paths-autocomplete.d.ts +45 -0
  501. package/dist/server/handlers/paths-autocomplete.d.ts.map +1 -0
  502. package/dist/server/handlers/projects.d.ts +58 -0
  503. package/dist/server/handlers/projects.d.ts.map +1 -0
  504. package/dist/server/handlers/queue.d.ts +27 -0
  505. package/dist/server/handlers/queue.d.ts.map +1 -0
  506. package/dist/server/handlers/sessions.d.ts +50 -0
  507. package/dist/server/handlers/sessions.d.ts.map +1 -0
  508. package/dist/server/paths.d.ts +51 -0
  509. package/dist/server/paths.d.ts.map +1 -0
  510. package/dist/server/session-stream.d.ts +379 -0
  511. package/dist/server/session-stream.d.ts.map +1 -0
  512. package/dist/server/shutdown.d.ts +102 -0
  513. package/dist/server/shutdown.d.ts.map +1 -0
  514. package/dist/server/storage.d.ts +287 -0
  515. package/dist/server/storage.d.ts.map +1 -0
  516. package/dist/server/title-generator.d.ts +25 -0
  517. package/dist/server/title-generator.d.ts.map +1 -0
  518. package/dist/server/wire.d.ts +448 -0
  519. package/dist/server/wire.d.ts.map +1 -0
  520. package/dist/studio-binding.d.ts +44 -0
  521. package/dist/studio-binding.d.ts.map +1 -0
  522. package/dist/studio-binding.js +1 -1
  523. package/package.json +11 -1
@@ -0,0 +1,448 @@
1
+ /**
2
+ * WebSocket wire protocol types shared between the spectral local server and
3
+ * the (future) browser client in `landing/`.
4
+ *
5
+ * Keep this file dependency-free. It will be copied or imported by the
6
+ * frontend in Day 3, so we don't want it to drag in `better-sqlite3`,
7
+ * `ws`, or any pi SDK types.
8
+ *
9
+ * Naming: client → server messages are `ClientMessage`, server → client
10
+ * frames are `ServerEvent`. JSON-encoded one-per-frame on the wire.
11
+ */
12
+ /** Base64-encoded image attached to a user message. */
13
+ export interface ImageAttachment {
14
+ /** Raw base64 image data (no data URI prefix). */
15
+ data: string;
16
+ /** MIME type, e.g. "image/jpeg" or "image/png". */
17
+ mimeType: string;
18
+ /** Compressed width in pixels (optional). */
19
+ width?: number;
20
+ /** Compressed height in pixels (optional). */
21
+ height?: number;
22
+ }
23
+ /** Persisted message row as returned to the browser. */
24
+ export interface WireMessage {
25
+ id: string;
26
+ role: "user" | "assistant" | "system";
27
+ content: string;
28
+ /** Newline-delimited JSON of pi events captured for this message (assistant only, may be ""). */
29
+ events: string;
30
+ createdAt: number;
31
+ /** Base64 images attached to user messages (empty for assistant/system). */
32
+ images?: ImageAttachment[];
33
+ }
34
+ /**
35
+ * Project — a user-declared root directory that owns 0..N sessions.
36
+ *
37
+ * Pi runs with `cwd = project.path`, so the project is the unit of "where on
38
+ * disk this conversation operates". Sessions are scoped to a project; the
39
+ * sidebar is a 2-tier projects → sessions view.
40
+ */
41
+ export interface WireProject {
42
+ id: string;
43
+ name: string;
44
+ /** Absolute filesystem path. Server-side validated on create. */
45
+ path: string;
46
+ createdAt: number;
47
+ updatedAt: number;
48
+ /** Number of sessions currently associated with this project. */
49
+ sessionCount: number;
50
+ /** Studio project ID when the project is bound to Aexol Studio (from `.aexol/aexol.jsonc`). */
51
+ studioProjectId?: string;
52
+ /** Studio project display name when bound. Falls back to projectId if name is not set. */
53
+ studioProjectName?: string;
54
+ /** True when at least one of this project's sessions has an in-flight turn. */
55
+ hasActiveSession?: boolean;
56
+ }
57
+ /** Session row (list view — no messages). */
58
+ export interface WireSessionSummary {
59
+ id: string;
60
+ /** Owning project. Always set — sessions cannot exist without a project. */
61
+ projectId: string;
62
+ title: string;
63
+ createdAt: number;
64
+ updatedAt: number;
65
+ messageCount: number;
66
+ /** True when this session currently has an in-flight assistant turn. */
67
+ hasActiveTurn?: boolean;
68
+ }
69
+ /** Session row with messages (detail view). */
70
+ export interface WireSessionDetail {
71
+ id: string;
72
+ /** Owning project. Mirrors WireSessionSummary; included so the client can
73
+ * recover the project context from a deep link without an extra fetch. */
74
+ projectId: string;
75
+ title: string;
76
+ createdAt: number;
77
+ updatedAt: number;
78
+ messages: WireMessage[];
79
+ /** True when this session was created via "Fork & Compact" and has not yet
80
+ * had its first compaction. The UI uses this to show a special send button
81
+ * for the first message. */
82
+ forkCompactPending?: boolean;
83
+ }
84
+ export interface WireSessionMemoryStatus {
85
+ mode: "active" | "passive";
86
+ phase: "idle" | "observing" | "compacting" | "reflecting" | "pruning";
87
+ inFlight: {
88
+ observer: boolean;
89
+ compaction: boolean;
90
+ reflection: boolean;
91
+ pruner: boolean;
92
+ };
93
+ reflections: {
94
+ count: number;
95
+ tokens: number;
96
+ };
97
+ observations: {
98
+ committedCount: number;
99
+ committedTokens: number;
100
+ pendingCount: number;
101
+ pendingTokens: number;
102
+ };
103
+ thresholds: {
104
+ observation: number;
105
+ compaction: number;
106
+ reflection: number;
107
+ };
108
+ progress: {
109
+ sinceObservationBoundTokens: number;
110
+ sinceLastCompactionTokens: number;
111
+ observationPoolTokens: number;
112
+ };
113
+ }
114
+ export interface WireObservationItem {
115
+ id: string;
116
+ content: string;
117
+ timestamp: string;
118
+ relevance: "low" | "medium" | "high" | "critical";
119
+ /** Whether this observation is pending (not yet covered by a compaction snapshot). */
120
+ pending: boolean;
121
+ }
122
+ export interface WireReflectionItem {
123
+ id: string;
124
+ content: string;
125
+ /** IDs of observations that support this reflection. May be empty for legacy reflections. */
126
+ supportingObservationIds: string[];
127
+ }
128
+ export interface WireSessionMemoryDetails {
129
+ summary: string | null;
130
+ observations: WireObservationItem[];
131
+ reflections: WireReflectionItem[];
132
+ }
133
+ export type ClientMessage = {
134
+ type: "user_message";
135
+ content: string;
136
+ /** Enable autonomous iterative loop for this message (Ralph Wiggum pattern). */
137
+ loop?: boolean;
138
+ /** Optional base64-encoded images attached to the message. */
139
+ images?: ImageAttachment[];
140
+ };
141
+ /**
142
+ * Subset of `ServerEvent` that's safe to buffer per turn and replay on
143
+ * reconnect. Excludes framing/lifecycle events (`session_ready`, `agent_end`)
144
+ * that are emitted at the session level rather than within a turn.
145
+ *
146
+ * NOTE: `message_start` IS included because the client uses it to flip into
147
+ * "streaming" status during replay, matching live behavior.
148
+ */
149
+ export type ReplayableTurnEvent = Extract<ServerEvent, {
150
+ type: "message_start" | "text_delta" | "thinking_delta" | "tool_call" | "tool_result" | "message_end" | "token_usage" | "error";
151
+ }>;
152
+ /**
153
+ * Snapshot of an in-flight assistant turn — the buffered event log plus
154
+ * metadata. Sent inside `session_ready.currentTurn` so a reconnecting client
155
+ * can rebuild the timeline up to the present moment.
156
+ */
157
+ export interface InProgressTurnSnapshot {
158
+ turnId: string;
159
+ startedAt: number;
160
+ events: ReplayableTurnEvent[];
161
+ }
162
+ export type ServerEvent = {
163
+ type: "session_ready";
164
+ sessionId: string;
165
+ history: WireMessage[];
166
+ /**
167
+ * If a turn is in flight when this WS attached, the buffered events
168
+ * for that turn so the client can rebuild it. `null`/absent when no
169
+ * turn is active. Additive: older clients ignoring this field still
170
+ * see consistent history.
171
+ */
172
+ currentTurn?: InProgressTurnSnapshot | null;
173
+ /** True when this session was created via "Fork & Compact" and is
174
+ * awaiting its first compaction. The UI uses this to show a special
175
+ * send button for the first message. */
176
+ forkCompactPending?: boolean;
177
+ /** Cumulative context tokens used across the session (from pi's getContextUsage()). Null when unknown. */
178
+ contextWindowUsed: number | null;
179
+ /** Model's total context window in tokens. Null when model metadata is not yet available. */
180
+ contextWindowMax: number | null;
181
+ } | {
182
+ /**
183
+ * Broadcast right after a user message is persisted to SQLite. ALL
184
+ * subscribers receive this — including the tab that originated the
185
+ * `user_message`. The client de-duplicates by `message.id` (which is
186
+ * generated server-side at persistence time and is the source of
187
+ * truth). Allows multi-tab live sync to show the user's prompt in
188
+ * every tab without local optimistic appends.
189
+ */
190
+ type: "user_message_appended";
191
+ message: WireMessage;
192
+ } | {
193
+ type: "message_start";
194
+ messageId: string;
195
+ role: "assistant";
196
+ } | {
197
+ type: "text_delta";
198
+ messageId: string;
199
+ delta: string;
200
+ } | {
201
+ type: "thinking_delta";
202
+ messageId: string;
203
+ delta: string;
204
+ } | {
205
+ type: "tool_call";
206
+ messageId: string;
207
+ id: string;
208
+ name: string;
209
+ args: unknown;
210
+ } | {
211
+ type: "tool_result";
212
+ messageId: string;
213
+ id: string;
214
+ result: unknown;
215
+ isError?: boolean;
216
+ } | {
217
+ type: "message_end";
218
+ messageId: string;
219
+ } | {
220
+ type: "agent_end";
221
+ } | {
222
+ /**
223
+ * Broadcast to ALL subscribers of a session when the server changes the
224
+ * session's title — currently only fired by the server-side auto-titler
225
+ * after the first assistant turn completes. Manual user renames take a
226
+ * different code path (PATCH /api/sessions/:id) and the sidebar
227
+ * already updates locally for those.
228
+ *
229
+ * Clients should treat this as authoritative and reflect the new title
230
+ * everywhere it appears (sidebar list, browser tab title, etc.).
231
+ */
232
+ type: "session_renamed";
233
+ sessionId: string;
234
+ title: string;
235
+ } | {
236
+ type: "error";
237
+ message: string;
238
+ } | {
239
+ /** Emitted at the start of each loop iteration. */
240
+ type: "loop_iteration";
241
+ iteration: number;
242
+ maxIterations: number;
243
+ prompt: string;
244
+ } | {
245
+ /** Emitted when the agent signals completion via <LOOP_DONE> marker. */
246
+ type: "loop_complete";
247
+ iterations: number;
248
+ } | {
249
+ /** Emitted when the loop hits the safety iteration limit. */
250
+ type: "loop_max_iterations";
251
+ iterations: number;
252
+ } | {
253
+ /**
254
+ * Emitted once per assistant message, right after `message_end`.
255
+ * Carries token counts and estimated usage for the just-completed
256
+ * assistant turn.
257
+ */
258
+ type: "token_usage";
259
+ messageId: string;
260
+ usage: {
261
+ inputTokens: number;
262
+ outputTokens: number;
263
+ cacheReadTokens: number;
264
+ cacheWriteTokens: number;
265
+ totalTokens: number;
266
+ /** @deprecated Legacy USD estimate kept for wire compatibility. */
267
+ cost: number | null;
268
+ /** Estimated Aexol credits used for this message. */
269
+ creditsUsed: number;
270
+ };
271
+ /** Cumulative context tokens used across the session (from pi's getContextUsage()). Null if unknown. */
272
+ contextWindowUsed: number | null;
273
+ /** Model's total context window in tokens. Null if model metadata is not available. */
274
+ contextWindowMax: number | null;
275
+ } | {
276
+ /**
277
+ * Emitted when pi starts context compaction (manual or auto).
278
+ * Non-replayable session lifecycle event; the client can use this
279
+ * to show a "Compacting context…" indicator.
280
+ */
281
+ type: "compaction_start";
282
+ /** Why compaction was triggered. */
283
+ reason: "manual" | "threshold" | "overflow";
284
+ } | {
285
+ /**
286
+ * Emitted when pi completes context compaction. The session has
287
+ * been reloaded with the compacted context; subsequent prompts
288
+ * will see the reduced context window footprint.
289
+ */
290
+ type: "compaction_end";
291
+ /** Summary text generated by the compaction LLM call. */
292
+ summary: string;
293
+ /** Token count before compaction. */
294
+ tokensBefore: number;
295
+ /** UUID of the first branch entry kept after compaction (pi's cut point). */
296
+ firstKeptEntryId?: string;
297
+ /** True when compaction was aborted (e.g. by a new user message or manual abort). */
298
+ aborted?: boolean;
299
+ } | {
300
+ /**
301
+ * Emitted by extensions (e.g. observational memory) to surface
302
+ * informational status updates in the browser UI. Not part of the
303
+ * turn timeline — purely a transient notification.
304
+ */
305
+ type: "agent_notification";
306
+ /** Human-readable message. */
307
+ message: string;
308
+ /** Severity level. */
309
+ level: "info" | "warning" | "error";
310
+ /**
311
+ * Subsystem that emitted the notification. Allows the UI to show
312
+ * targeted indicators (e.g. "Memory · observing").
313
+ */
314
+ system?: "memory_observer" | "memory_compaction" | "memory_reflection" | "memory_pruner" | "extension" | "vision";
315
+ } | {
316
+ /**
317
+ * Emitted when auto-research starts for a project. The UI can show
318
+ * a progress indicator with the project name.
319
+ */
320
+ type: "auto_research_start";
321
+ projectId: string;
322
+ } | {
323
+ /**
324
+ * Emitted periodically while auto-research is running. The `phase`
325
+ * field allows the UI to show granular status:
326
+ * - "context_collecting" — reading project files and git state
327
+ * - "context_analyzing" — LLM analyzing the collected context
328
+ * - "extension_generating" — writing .ts extension files
329
+ * - "extension_validating" — validating generated extensions
330
+ */
331
+ type: "auto_research_progress";
332
+ projectId: string;
333
+ phase: "context_collecting" | "context_analyzing" | "extension_generating" | "extension_validating";
334
+ message: string;
335
+ } | {
336
+ /**
337
+ * Emitted when auto-research completes successfully. Contains the
338
+ * list of generated extensions with their names, paths, and brief
339
+ * descriptions. The UI can show a summary and offer to enable them.
340
+ */
341
+ type: "auto_research_complete";
342
+ projectId: string;
343
+ extensions: Array<{
344
+ name: string;
345
+ path: string;
346
+ description: string;
347
+ /** True if the extension uses LLM inference (Phase 5+). */
348
+ usesLLM?: boolean;
349
+ /** File count for multi-file extensions. */
350
+ fileCount?: number;
351
+ }>;
352
+ /** True if AGENTS.md was updated with an auto-research section. */
353
+ agentsMdUpdated?: boolean;
354
+ } | {
355
+ /** Emitted when auto-research encounters an error. */
356
+ type: "auto_research_error";
357
+ projectId: string;
358
+ message: string;
359
+ } | {
360
+ /**
361
+ * Emitted when a subagent tool invocation begins. The UI can show a
362
+ * dedicated expandable panel with agent name, task description, and
363
+ * a loading indicator. Parallel mode will show multiple cards.
364
+ */
365
+ type: "subagent_start";
366
+ /** Tool call ID so the frontend can correlate with tool_call/tool_result. */
367
+ toolCallId: string;
368
+ mode: "single" | "parallel" | "chain";
369
+ /** Single-mode: the agent name. */
370
+ agent?: string;
371
+ /** Single-mode: the task description. */
372
+ task?: string;
373
+ /** Parallel/chain mode: total task count. */
374
+ taskCount?: number;
375
+ /** Chain mode: total steps. */
376
+ totalSteps?: number;
377
+ } | {
378
+ /**
379
+ * Emitted periodically during parallel/chain subagent execution.
380
+ * Carries a status message and completion counts so the UI can
381
+ * show live progress (e.g. "2/5 tasks done, 3 running").
382
+ */
383
+ type: "subagent_progress";
384
+ toolCallId: string;
385
+ mode: "single" | "parallel" | "chain";
386
+ completedCount?: number;
387
+ totalCount?: number;
388
+ currentStep?: number;
389
+ currentAgent?: string;
390
+ message: string;
391
+ /** Streaming text accumulated so far (single mode). Updated on text_delta. */
392
+ streamingText?: string;
393
+ } | {
394
+ /**
395
+ * Emitted when a subagent tool invocation completes (all subagents
396
+ * finished). Carries structured results with usage stats so the
397
+ * frontend can render rich expandable panels with per-agent output,
398
+ * token counts, and model info.
399
+ */
400
+ type: "subagent_end";
401
+ toolCallId: string;
402
+ mode: "single" | "parallel" | "chain";
403
+ results: Array<{
404
+ agent: string;
405
+ agentSource: "user" | "project" | "unknown";
406
+ task: string;
407
+ exitCode: number;
408
+ /** Final output text from the subagent. */
409
+ output: string;
410
+ model?: string;
411
+ errorMessage?: string;
412
+ stopReason?: string;
413
+ /** Chain mode: step number (1-indexed). */
414
+ step?: number;
415
+ usage: {
416
+ inputTokens: number;
417
+ outputTokens: number;
418
+ cacheReadTokens: number;
419
+ cacheWriteTokens: number;
420
+ cost: number;
421
+ turns: number;
422
+ };
423
+ }>;
424
+ /** Aggregate usage across all subagents in this invocation. */
425
+ totalUsage: {
426
+ inputTokens: number;
427
+ outputTokens: number;
428
+ cacheReadTokens: number;
429
+ cacheWriteTokens: number;
430
+ cost: number;
431
+ turns: number;
432
+ };
433
+ } | {
434
+ /**
435
+ * Broadcast when the prompt queue for this session changes
436
+ * (enqueue, remove, clear, auto-dequeue). Carries the full
437
+ * current queue state so clients can replace their local state
438
+ * atomically.
439
+ */
440
+ type: "queue_changed";
441
+ queue: Array<{
442
+ id: string;
443
+ content: string;
444
+ position: number;
445
+ createdAt: string;
446
+ }>;
447
+ };
448
+ //# sourceMappingURL=wire.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/server/wire.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Studio Binding utilities.
3
+ *
4
+ * Read/write/delete `.aexol/aexol.jsonc` — the local file that links a
5
+ * repository directory to an Aexol Studio project.
6
+ */
7
+ export interface StudioBinding {
8
+ projectId: string;
9
+ teamId?: string;
10
+ name?: string;
11
+ $schema?: string;
12
+ }
13
+ /**
14
+ * Strip JSONC comments (// line and /* block *​/) from raw source text.
15
+ * Kept simple — the binding file shape is well-known.
16
+ */
17
+ export declare function stripJsoncComments(raw: string): string;
18
+ /**
19
+ * Read and parse the local Studio binding file.
20
+ * Returns `null` when no binding file exists (file missing, or directory
21
+ * absent — treated the same way: not bound).
22
+ */
23
+ export declare function readStudioBinding(): Promise<StudioBinding | null>;
24
+ /**
25
+ * Read and parse the Studio binding file at an arbitrary project path.
26
+ * Works like `readStudioBinding()` but reads from `projectPath/.aexol/aexol.jsonc`
27
+ * instead of `process.cwd()`.
28
+ */
29
+ export declare function readStudioBindingAt(projectPath: string): Promise<StudioBinding | null>;
30
+ /**
31
+ * Persist a Studio binding. Creates `.aexol/` if it does not exist.
32
+ */
33
+ export declare function writeStudioBinding(binding: StudioBinding): Promise<void>;
34
+ /**
35
+ * Persist a Studio binding at an arbitrary project path (creates `.aexol/`
36
+ * under that directory). Uses the same format as `writeStudioBinding`.
37
+ */
38
+ export declare function writeStudioBindingAt(projectPath: string, binding: StudioBinding): Promise<void>;
39
+ /**
40
+ * Remove the local Studio binding file.
41
+ * Returns `true` when the file existed and was deleted, `false` otherwise (no-op).
42
+ */
43
+ export declare function deleteStudioBinding(): Promise<boolean>;
44
+ //# sourceMappingURL=studio-binding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-binding.d.ts","sourceRoot":"","sources":["../src/studio-binding.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAaD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAItD;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAUvE;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAa/B;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAS5D"}
@@ -4,7 +4,7 @@
4
4
  * Read/write/delete `.aexol/aexol.jsonc` — the local file that links a
5
5
  * repository directory to an Aexol Studio project.
6
6
  */
7
- import { readFile, writeFile, mkdir, unlink, access } from "node:fs/promises";
7
+ import { access, mkdir, readFile, unlink, writeFile } from "node:fs/promises";
8
8
  import { constants } from "node:fs";
9
9
  import { join } from "node:path";
10
10
  const BINDING_DIR = ".aexol";
package/package.json CHANGED
@@ -1,13 +1,23 @@
1
1
  {
2
2
  "name": "@aexol/spectral",
3
- "version": "0.8.2",
3
+ "version": "0.8.5",
4
4
  "description": "AI coding agent for Aexol with relay-based browser access.",
5
5
  "type": "module",
6
6
  "private": false,
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
7
9
  "bin": {
8
10
  "spectral": "dist/cli.js",
9
11
  "aexol": "dist/cli.js"
10
12
  },
13
+ "exports": {
14
+ ".": {
15
+ "types": "./dist/index.d.ts",
16
+ "import": "./dist/index.js",
17
+ "default": "./dist/index.js"
18
+ },
19
+ "./package.json": "./package.json"
20
+ },
11
21
  "files": [
12
22
  "dist",
13
23
  "README.md",