@aexol/spectral 0.8.2 → 0.8.6

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 (588) 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/agent/index.js +11 -11
  8. package/dist/cli.d.ts +17 -0
  9. package/dist/cli.d.ts.map +1 -0
  10. package/dist/cli.js +1 -1
  11. package/dist/commands/bind.d.ts +12 -0
  12. package/dist/commands/bind.d.ts.map +1 -0
  13. package/dist/commands/login-oauth.d.ts +15 -0
  14. package/dist/commands/login-oauth.d.ts.map +1 -0
  15. package/dist/commands/login.d.ts +37 -0
  16. package/dist/commands/login.d.ts.map +1 -0
  17. package/dist/commands/logout.d.ts +8 -0
  18. package/dist/commands/logout.d.ts.map +1 -0
  19. package/dist/commands/serve.d.ts +112 -0
  20. package/dist/commands/serve.d.ts.map +1 -0
  21. package/dist/commands/serve.js +5 -2
  22. package/dist/commands/unbind.d.ts +8 -0
  23. package/dist/commands/unbind.d.ts.map +1 -0
  24. package/dist/config.d.ts +49 -0
  25. package/dist/config.d.ts.map +1 -0
  26. package/dist/config.js +1 -1
  27. package/dist/designer/guidelines.d.ts +23 -0
  28. package/dist/designer/guidelines.d.ts.map +1 -0
  29. package/dist/designer/index.d.ts +26 -0
  30. package/dist/designer/index.d.ts.map +1 -0
  31. package/dist/designer/index.js +9 -9
  32. package/dist/designer/philosophies.d.ts +33 -0
  33. package/dist/designer/philosophies.d.ts.map +1 -0
  34. package/dist/designer/skills.d.ts +27 -0
  35. package/dist/designer/skills.d.ts.map +1 -0
  36. package/dist/designer/systems.d.ts +36 -0
  37. package/dist/designer/systems.d.ts.map +1 -0
  38. package/dist/extensions/aexol-mcp.d.ts +25 -0
  39. package/dist/extensions/aexol-mcp.d.ts.map +1 -0
  40. package/dist/extensions/aexol-mcp.js +12 -12
  41. package/dist/extensions/kanban-bridge.d.ts +24 -0
  42. package/dist/extensions/kanban-bridge.d.ts.map +1 -0
  43. package/dist/extensions/kanban-bridge.js +3 -3
  44. package/dist/extensions/openrouter-attribution.d.ts +12 -0
  45. package/dist/extensions/openrouter-attribution.d.ts.map +1 -0
  46. package/dist/extensions/openrouter-attribution.js +2 -2
  47. package/dist/extensions/spectral-vision-fallback.d.ts +23 -0
  48. package/dist/extensions/spectral-vision-fallback.d.ts.map +1 -0
  49. package/dist/extensions/spectral-vision-fallback.js +32 -23
  50. package/dist/index.d.ts +46 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +44 -0
  53. package/dist/mcp/agent-dir.d.ts +3 -0
  54. package/dist/mcp/agent-dir.d.ts.map +1 -0
  55. package/dist/mcp/commands.d.ts +9 -0
  56. package/dist/mcp/commands.d.ts.map +1 -0
  57. package/dist/mcp/commands.js +1 -1
  58. package/dist/mcp/config.d.ts +78 -0
  59. package/dist/mcp/config.d.ts.map +1 -0
  60. package/dist/mcp/config.js +15 -15
  61. package/dist/mcp/consent-manager.d.ts +14 -0
  62. package/dist/mcp/consent-manager.d.ts.map +1 -0
  63. package/dist/mcp/direct-tools.d.ts +11 -0
  64. package/dist/mcp/direct-tools.d.ts.map +1 -0
  65. package/dist/mcp/errors.d.ts +100 -0
  66. package/dist/mcp/errors.d.ts.map +1 -0
  67. package/dist/mcp/glimpse-ui.d.ts +10 -0
  68. package/dist/mcp/glimpse-ui.d.ts.map +1 -0
  69. package/dist/mcp/host-html-template.d.ts +17 -0
  70. package/dist/mcp/host-html-template.d.ts.map +1 -0
  71. package/dist/mcp/host-html-template.js +3 -3
  72. package/dist/mcp/index.d.ts +3 -0
  73. package/dist/mcp/index.d.ts.map +1 -0
  74. package/dist/mcp/index.js +15 -13
  75. package/dist/mcp/init.d.ts +10 -0
  76. package/dist/mcp/init.d.ts.map +1 -0
  77. package/dist/mcp/init.js +4 -4
  78. package/dist/mcp/lifecycle.d.ts +30 -0
  79. package/dist/mcp/lifecycle.d.ts.map +1 -0
  80. package/dist/mcp/logger.d.ts +52 -0
  81. package/dist/mcp/logger.d.ts.map +1 -0
  82. package/dist/mcp/mcp-auth-flow.d.ts +69 -0
  83. package/dist/mcp/mcp-auth-flow.d.ts.map +1 -0
  84. package/dist/mcp/mcp-auth.d.ts +100 -0
  85. package/dist/mcp/mcp-auth.d.ts.map +1 -0
  86. package/dist/mcp/mcp-callback-server.d.ts +40 -0
  87. package/dist/mcp/mcp-callback-server.d.ts.map +1 -0
  88. package/dist/mcp/mcp-oauth-provider.d.ts +101 -0
  89. package/dist/mcp/mcp-oauth-provider.d.ts.map +1 -0
  90. package/dist/mcp/mcp-oauth-provider.js +1 -1
  91. package/dist/mcp/metadata-cache.d.ts +32 -0
  92. package/dist/mcp/metadata-cache.d.ts.map +1 -0
  93. package/dist/mcp/npx-resolver.d.ts +7 -0
  94. package/dist/mcp/npx-resolver.d.ts.map +1 -0
  95. package/dist/mcp/oauth-handler.d.ts +19 -0
  96. package/dist/mcp/oauth-handler.d.ts.map +1 -0
  97. package/dist/mcp/onboarding-state.d.ts +13 -0
  98. package/dist/mcp/onboarding-state.d.ts.map +1 -0
  99. package/dist/mcp/proxy-modes.d.ts +12 -0
  100. package/dist/mcp/proxy-modes.d.ts.map +1 -0
  101. package/dist/mcp/proxy-modes.js +2 -2
  102. package/dist/mcp/resource-tools.d.ts +2 -0
  103. package/dist/mcp/resource-tools.d.ts.map +1 -0
  104. package/dist/mcp/sampling-handler.d.ts +16 -0
  105. package/dist/mcp/sampling-handler.d.ts.map +1 -0
  106. package/dist/mcp/server-manager.d.ts +42 -0
  107. package/dist/mcp/server-manager.d.ts.map +1 -0
  108. package/dist/mcp/server-manager.js +2 -2
  109. package/dist/mcp/state-getter.d.ts +14 -0
  110. package/dist/mcp/state-getter.d.ts.map +1 -0
  111. package/dist/mcp/state-getter.js +21 -0
  112. package/dist/mcp/state.d.ts +41 -0
  113. package/dist/mcp/state.d.ts.map +1 -0
  114. package/dist/mcp/tool-metadata.d.ts +11 -0
  115. package/dist/mcp/tool-metadata.d.ts.map +1 -0
  116. package/dist/mcp/tool-registrar.d.ts +9 -0
  117. package/dist/mcp/tool-registrar.d.ts.map +1 -0
  118. package/dist/mcp/tool-registrar.js +1 -1
  119. package/dist/mcp/types.d.ts +263 -0
  120. package/dist/mcp/types.d.ts.map +1 -0
  121. package/dist/mcp/ui-resource-handler.d.ts +10 -0
  122. package/dist/mcp/ui-resource-handler.d.ts.map +1 -0
  123. package/dist/mcp/ui-server.d.ts +37 -0
  124. package/dist/mcp/ui-server.d.ts.map +1 -0
  125. package/dist/mcp/ui-server.js +1 -1
  126. package/dist/mcp/ui-session.d.ts +27 -0
  127. package/dist/mcp/ui-session.d.ts.map +1 -0
  128. package/dist/mcp/ui-stream-types.d.ts +197 -0
  129. package/dist/mcp/ui-stream-types.d.ts.map +1 -0
  130. package/dist/mcp/ui-stream-types.js +5 -5
  131. package/dist/mcp/utils.d.ts +17 -0
  132. package/dist/mcp/utils.d.ts.map +1 -0
  133. package/dist/mcp/utils.js +10 -10
  134. package/dist/mcp/vitest.config.d.ts +3 -0
  135. package/dist/mcp/vitest.config.d.ts.map +1 -0
  136. package/dist/mcp-client.d.ts +58 -0
  137. package/dist/mcp-client.d.ts.map +1 -0
  138. package/dist/mcp-client.js +3 -2
  139. package/dist/memory/branch.d.ts +124 -0
  140. package/dist/memory/branch.d.ts.map +1 -0
  141. package/dist/memory/commands/status.d.ts +4 -0
  142. package/dist/memory/commands/status.d.ts.map +1 -0
  143. package/dist/memory/commands/status.js +2 -2
  144. package/dist/memory/commands/view.d.ts +4 -0
  145. package/dist/memory/commands/view.d.ts.map +1 -0
  146. package/dist/memory/commands/view.js +2 -2
  147. package/dist/memory/compaction.d.ts +113 -0
  148. package/dist/memory/compaction.d.ts.map +1 -0
  149. package/dist/memory/config.d.ts +27 -0
  150. package/dist/memory/config.d.ts.map +1 -0
  151. package/dist/memory/debug-log.d.ts +12 -0
  152. package/dist/memory/debug-log.d.ts.map +1 -0
  153. package/dist/memory/hooks/compaction-hook.d.ts +4 -0
  154. package/dist/memory/hooks/compaction-hook.d.ts.map +1 -0
  155. package/dist/memory/hooks/compaction-hook.js +5 -5
  156. package/dist/memory/hooks/compaction-trigger.d.ts +4 -0
  157. package/dist/memory/hooks/compaction-trigger.d.ts.map +1 -0
  158. package/dist/memory/hooks/compaction-trigger.js +3 -3
  159. package/dist/memory/hooks/observer-trigger.d.ts +4 -0
  160. package/dist/memory/hooks/observer-trigger.d.ts.map +1 -0
  161. package/dist/memory/hooks/observer-trigger.js +4 -4
  162. package/dist/memory/ids.d.ts +2 -0
  163. package/dist/memory/ids.d.ts.map +1 -0
  164. package/dist/memory/index.d.ts +3 -0
  165. package/dist/memory/index.d.ts.map +1 -0
  166. package/dist/memory/index.js +9 -9
  167. package/dist/memory/model-budget.d.ts +4 -0
  168. package/dist/memory/model-budget.d.ts.map +1 -0
  169. package/dist/memory/observer.d.ts +21 -0
  170. package/dist/memory/observer.d.ts.map +1 -0
  171. package/dist/memory/project-observations-store.d.ts +24 -0
  172. package/dist/memory/project-observations-store.d.ts.map +1 -0
  173. package/dist/memory/prompts.d.ts +11 -0
  174. package/dist/memory/prompts.d.ts.map +1 -0
  175. package/dist/memory/relevance.d.ts +4 -0
  176. package/dist/memory/relevance.d.ts.map +1 -0
  177. package/dist/memory/runtime.d.ts +40 -0
  178. package/dist/memory/runtime.d.ts.map +1 -0
  179. package/dist/memory/serialize.d.ts +26 -0
  180. package/dist/memory/serialize.d.ts.map +1 -0
  181. package/dist/memory/tokens.d.ts +8 -0
  182. package/dist/memory/tokens.d.ts.map +1 -0
  183. package/dist/memory/tools/read-project-observations.d.ts +8 -0
  184. package/dist/memory/tools/read-project-observations.d.ts.map +1 -0
  185. package/dist/memory/tools/read-project-observations.js +2 -2
  186. package/dist/memory/tools/recall-observation.d.ts +63 -0
  187. package/dist/memory/tools/recall-observation.d.ts.map +1 -0
  188. package/dist/memory/tools/recall-observation.js +2 -2
  189. package/dist/memory/tools/write-project-observation.d.ts +9 -0
  190. package/dist/memory/tools/write-project-observation.d.ts.map +1 -0
  191. package/dist/memory/tools/write-project-observation.js +2 -2
  192. package/dist/memory/types.d.ts +65 -0
  193. package/dist/memory/types.d.ts.map +1 -0
  194. package/dist/preflight.d.ts +27 -0
  195. package/dist/preflight.d.ts.map +1 -0
  196. package/dist/preflight.js +4 -2
  197. package/dist/relay/auto-research.d.ts +64 -0
  198. package/dist/relay/auto-research.d.ts.map +1 -0
  199. package/dist/relay/auto-research.js +184 -79
  200. package/dist/relay/client.d.ts +126 -0
  201. package/dist/relay/client.d.ts.map +1 -0
  202. package/dist/relay/dispatcher.d.ts +216 -0
  203. package/dist/relay/dispatcher.d.ts.map +1 -0
  204. package/dist/relay/dispatcher.js +33 -6
  205. package/dist/relay/machine-store.d.ts +68 -0
  206. package/dist/relay/machine-store.d.ts.map +1 -0
  207. package/dist/relay/models-fetch.d.ts +75 -0
  208. package/dist/relay/models-fetch.d.ts.map +1 -0
  209. package/dist/relay/registration.d.ts +81 -0
  210. package/dist/relay/registration.d.ts.map +1 -0
  211. package/dist/sdk/agent-core/agent-loop.d.ts +24 -0
  212. package/dist/sdk/agent-core/agent-loop.d.ts.map +1 -0
  213. package/dist/sdk/agent-core/agent.d.ts +125 -0
  214. package/dist/sdk/agent-core/agent.d.ts.map +1 -0
  215. package/dist/sdk/agent-core/harness/agent-harness.d.ts +92 -0
  216. package/dist/sdk/agent-core/harness/agent-harness.d.ts.map +1 -0
  217. package/dist/sdk/agent-core/harness/compaction/branch-summarization.d.ts +53 -0
  218. package/dist/sdk/agent-core/harness/compaction/branch-summarization.d.ts.map +1 -0
  219. package/dist/sdk/agent-core/harness/compaction/compaction.d.ts +95 -0
  220. package/dist/sdk/agent-core/harness/compaction/compaction.d.ts.map +1 -0
  221. package/dist/sdk/agent-core/harness/compaction/utils.d.ts +25 -0
  222. package/dist/sdk/agent-core/harness/compaction/utils.d.ts.map +1 -0
  223. package/dist/sdk/agent-core/harness/env/nodejs.d.ts +51 -0
  224. package/dist/sdk/agent-core/harness/env/nodejs.d.ts.map +1 -0
  225. package/dist/sdk/agent-core/harness/messages.d.ts +51 -0
  226. package/dist/sdk/agent-core/harness/messages.d.ts.map +1 -0
  227. package/dist/sdk/agent-core/harness/prompt-templates.d.ts +48 -0
  228. package/dist/sdk/agent-core/harness/prompt-templates.d.ts.map +1 -0
  229. package/dist/sdk/agent-core/harness/session/jsonl-repo.d.ts +26 -0
  230. package/dist/sdk/agent-core/harness/session/jsonl-repo.d.ts.map +1 -0
  231. package/dist/sdk/agent-core/harness/session/jsonl-storage.d.ts +33 -0
  232. package/dist/sdk/agent-core/harness/session/jsonl-storage.d.ts.map +1 -0
  233. package/dist/sdk/agent-core/harness/session/memory-repo.d.ts +18 -0
  234. package/dist/sdk/agent-core/harness/session/memory-repo.d.ts.map +1 -0
  235. package/dist/sdk/agent-core/harness/session/memory-storage.d.ts +25 -0
  236. package/dist/sdk/agent-core/harness/session/memory-storage.d.ts.map +1 -0
  237. package/dist/sdk/agent-core/harness/session/repo-utils.d.ts +11 -0
  238. package/dist/sdk/agent-core/harness/session/repo-utils.d.ts.map +1 -0
  239. package/dist/sdk/agent-core/harness/session/session.d.ts +32 -0
  240. package/dist/sdk/agent-core/harness/session/session.d.ts.map +1 -0
  241. package/dist/sdk/agent-core/harness/session/uuid.d.ts +2 -0
  242. package/dist/sdk/agent-core/harness/session/uuid.d.ts.map +1 -0
  243. package/dist/sdk/agent-core/harness/skills.d.ts +44 -0
  244. package/dist/sdk/agent-core/harness/skills.d.ts.map +1 -0
  245. package/dist/sdk/agent-core/harness/system-prompt.d.ts +3 -0
  246. package/dist/sdk/agent-core/harness/system-prompt.d.ts.map +1 -0
  247. package/dist/sdk/agent-core/harness/types.d.ts +601 -0
  248. package/dist/sdk/agent-core/harness/types.d.ts.map +1 -0
  249. package/dist/sdk/agent-core/harness/utils/shell-output.d.ts +14 -0
  250. package/dist/sdk/agent-core/harness/utils/shell-output.d.ts.map +1 -0
  251. package/dist/sdk/agent-core/harness/utils/truncate.d.ts +70 -0
  252. package/dist/sdk/agent-core/harness/utils/truncate.d.ts.map +1 -0
  253. package/dist/sdk/agent-core/index.d.ts +20 -0
  254. package/dist/sdk/agent-core/index.d.ts.map +1 -0
  255. package/dist/sdk/agent-core/node.d.ts +3 -0
  256. package/dist/sdk/agent-core/node.d.ts.map +1 -0
  257. package/dist/sdk/agent-core/proxy.d.ts +69 -0
  258. package/dist/sdk/agent-core/proxy.d.ts.map +1 -0
  259. package/dist/sdk/agent-core/types.d.ts +393 -0
  260. package/dist/sdk/agent-core/types.d.ts.map +1 -0
  261. package/dist/sdk/ai/api-registry.d.ts +20 -0
  262. package/dist/sdk/ai/api-registry.d.ts.map +1 -0
  263. package/dist/sdk/ai/cli.d.ts +3 -0
  264. package/dist/sdk/ai/cli.d.ts.map +1 -0
  265. package/dist/sdk/ai/env-api-keys.d.ts +18 -0
  266. package/dist/sdk/ai/env-api-keys.d.ts.map +1 -0
  267. package/dist/sdk/ai/image-models.d.ts +10 -0
  268. package/dist/sdk/ai/image-models.d.ts.map +1 -0
  269. package/dist/sdk/ai/image-models.generated.d.ts +440 -0
  270. package/dist/sdk/ai/image-models.generated.d.ts.map +1 -0
  271. package/dist/sdk/ai/images-api-registry.d.ts +14 -0
  272. package/dist/sdk/ai/images-api-registry.d.ts.map +1 -0
  273. package/dist/sdk/ai/images.d.ts +4 -0
  274. package/dist/sdk/ai/images.d.ts.map +1 -0
  275. package/dist/sdk/ai/index.d.ts +21 -0
  276. package/dist/sdk/ai/index.d.ts.map +1 -0
  277. package/dist/sdk/ai/models.d.ts +18 -0
  278. package/dist/sdk/ai/models.d.ts.map +1 -0
  279. package/dist/sdk/ai/models.generated.d.ts +17349 -0
  280. package/dist/sdk/ai/models.generated.d.ts.map +1 -0
  281. package/dist/sdk/ai/oauth.d.ts +2 -0
  282. package/dist/sdk/ai/oauth.d.ts.map +1 -0
  283. package/dist/sdk/ai/providers/anthropic.d.ts +54 -0
  284. package/dist/sdk/ai/providers/anthropic.d.ts.map +1 -0
  285. package/dist/sdk/ai/providers/faux.d.ts +56 -0
  286. package/dist/sdk/ai/providers/faux.d.ts.map +1 -0
  287. package/dist/sdk/ai/providers/github-copilot-headers.d.ts +8 -0
  288. package/dist/sdk/ai/providers/github-copilot-headers.d.ts.map +1 -0
  289. package/dist/sdk/ai/providers/openai-completions.d.ts +19 -0
  290. package/dist/sdk/ai/providers/openai-completions.d.ts.map +1 -0
  291. package/dist/sdk/ai/providers/openai-prompt-cache.d.ts +3 -0
  292. package/dist/sdk/ai/providers/openai-prompt-cache.d.ts.map +1 -0
  293. package/dist/sdk/ai/providers/register-builtins.d.ts +15 -0
  294. package/dist/sdk/ai/providers/register-builtins.d.ts.map +1 -0
  295. package/dist/sdk/ai/providers/simple-options.d.ts +8 -0
  296. package/dist/sdk/ai/providers/simple-options.d.ts.map +1 -0
  297. package/dist/sdk/ai/providers/transform-messages.d.ts +8 -0
  298. package/dist/sdk/ai/providers/transform-messages.d.ts.map +1 -0
  299. package/dist/sdk/ai/session-resources.d.ts +4 -0
  300. package/dist/sdk/ai/session-resources.d.ts.map +1 -0
  301. package/dist/sdk/ai/stream.d.ts +8 -0
  302. package/dist/sdk/ai/stream.d.ts.map +1 -0
  303. package/dist/sdk/ai/types.d.ts +488 -0
  304. package/dist/sdk/ai/types.d.ts.map +1 -0
  305. package/dist/sdk/ai/utils/diagnostics.d.ts +19 -0
  306. package/dist/sdk/ai/utils/diagnostics.d.ts.map +1 -0
  307. package/dist/sdk/ai/utils/event-stream.d.ts +21 -0
  308. package/dist/sdk/ai/utils/event-stream.d.ts.map +1 -0
  309. package/dist/sdk/ai/utils/hash.d.ts +3 -0
  310. package/dist/sdk/ai/utils/hash.d.ts.map +1 -0
  311. package/dist/sdk/ai/utils/headers.d.ts +2 -0
  312. package/dist/sdk/ai/utils/headers.d.ts.map +1 -0
  313. package/dist/sdk/ai/utils/json-parse.d.ts +16 -0
  314. package/dist/sdk/ai/utils/json-parse.d.ts.map +1 -0
  315. package/dist/sdk/ai/utils/node-http-proxy.d.ts +10 -0
  316. package/dist/sdk/ai/utils/node-http-proxy.d.ts.map +1 -0
  317. package/dist/sdk/ai/utils/oauth/anthropic.d.ts +25 -0
  318. package/dist/sdk/ai/utils/oauth/anthropic.d.ts.map +1 -0
  319. package/dist/sdk/ai/utils/oauth/device-code.d.ts +19 -0
  320. package/dist/sdk/ai/utils/oauth/device-code.d.ts.map +1 -0
  321. package/dist/sdk/ai/utils/oauth/github-copilot.d.ts +30 -0
  322. package/dist/sdk/ai/utils/oauth/github-copilot.d.ts.map +1 -0
  323. package/dist/sdk/ai/utils/oauth/index.d.ts +58 -0
  324. package/dist/sdk/ai/utils/oauth/index.d.ts.map +1 -0
  325. package/dist/sdk/ai/utils/oauth/oauth-page.d.ts +3 -0
  326. package/dist/sdk/ai/utils/oauth/oauth-page.d.ts.map +1 -0
  327. package/dist/sdk/ai/utils/oauth/openai-codex.d.ts +34 -0
  328. package/dist/sdk/ai/utils/oauth/openai-codex.d.ts.map +1 -0
  329. package/dist/sdk/ai/utils/oauth/openai-codex.js +2 -2
  330. package/dist/sdk/ai/utils/oauth/pkce.d.ts +13 -0
  331. package/dist/sdk/ai/utils/oauth/pkce.d.ts.map +1 -0
  332. package/dist/sdk/ai/utils/oauth/types.d.ts +64 -0
  333. package/dist/sdk/ai/utils/oauth/types.d.ts.map +1 -0
  334. package/dist/sdk/ai/utils/overflow.d.ts +56 -0
  335. package/dist/sdk/ai/utils/overflow.d.ts.map +1 -0
  336. package/dist/sdk/ai/utils/sanitize-unicode.d.ts +22 -0
  337. package/dist/sdk/ai/utils/sanitize-unicode.d.ts.map +1 -0
  338. package/dist/sdk/ai/utils/typebox-helpers.d.ts +17 -0
  339. package/dist/sdk/ai/utils/typebox-helpers.d.ts.map +1 -0
  340. package/dist/sdk/ai/utils/validation.d.ts +18 -0
  341. package/dist/sdk/ai/utils/validation.d.ts.map +1 -0
  342. package/dist/sdk/coding-agent/cli.d.ts +3 -0
  343. package/dist/sdk/coding-agent/cli.d.ts.map +1 -0
  344. package/dist/sdk/coding-agent/config.d.ts +71 -0
  345. package/dist/sdk/coding-agent/config.d.ts.map +1 -0
  346. package/dist/sdk/coding-agent/core/agent-session-runtime.d.ts +117 -0
  347. package/dist/sdk/coding-agent/core/agent-session-runtime.d.ts.map +1 -0
  348. package/dist/sdk/coding-agent/core/agent-session-services.d.ts +86 -0
  349. package/dist/sdk/coding-agent/core/agent-session-services.d.ts.map +1 -0
  350. package/dist/sdk/coding-agent/core/agent-session.d.ts +626 -0
  351. package/dist/sdk/coding-agent/core/agent-session.d.ts.map +1 -0
  352. package/dist/sdk/coding-agent/core/agent-session.js +3 -3
  353. package/dist/sdk/coding-agent/core/auth-guidance.d.ts +5 -0
  354. package/dist/sdk/coding-agent/core/auth-guidance.d.ts.map +1 -0
  355. package/dist/sdk/coding-agent/core/auth-storage.d.ts +145 -0
  356. package/dist/sdk/coding-agent/core/auth-storage.d.ts.map +1 -0
  357. package/dist/sdk/coding-agent/core/auth-storage.js +2 -2
  358. package/dist/sdk/coding-agent/core/bash-executor.d.ts +32 -0
  359. package/dist/sdk/coding-agent/core/bash-executor.d.ts.map +1 -0
  360. package/dist/sdk/coding-agent/core/bash-executor.js +1 -1
  361. package/dist/sdk/coding-agent/core/compaction/branch-summarization.d.ts +88 -0
  362. package/dist/sdk/coding-agent/core/compaction/branch-summarization.d.ts.map +1 -0
  363. package/dist/sdk/coding-agent/core/compaction/branch-summarization.js +1 -1
  364. package/dist/sdk/coding-agent/core/compaction/compaction.d.ts +142 -0
  365. package/dist/sdk/coding-agent/core/compaction/compaction.d.ts.map +1 -0
  366. package/dist/sdk/coding-agent/core/compaction/compaction.js +1 -1
  367. package/dist/sdk/coding-agent/core/compaction/index.d.ts +7 -0
  368. package/dist/sdk/coding-agent/core/compaction/index.d.ts.map +1 -0
  369. package/dist/sdk/coding-agent/core/compaction/utils.d.ts +38 -0
  370. package/dist/sdk/coding-agent/core/compaction/utils.d.ts.map +1 -0
  371. package/dist/sdk/coding-agent/core/defaults.d.ts +3 -0
  372. package/dist/sdk/coding-agent/core/defaults.d.ts.map +1 -0
  373. package/dist/sdk/coding-agent/core/diagnostics.d.ts +15 -0
  374. package/dist/sdk/coding-agent/core/diagnostics.d.ts.map +1 -0
  375. package/dist/sdk/coding-agent/core/event-bus.d.ts +9 -0
  376. package/dist/sdk/coding-agent/core/event-bus.d.ts.map +1 -0
  377. package/dist/sdk/coding-agent/core/exec.d.ts +29 -0
  378. package/dist/sdk/coding-agent/core/exec.d.ts.map +1 -0
  379. package/dist/sdk/coding-agent/core/extensions/index.d.ts +12 -0
  380. package/dist/sdk/coding-agent/core/extensions/index.d.ts.map +1 -0
  381. package/dist/sdk/coding-agent/core/extensions/loader.d.ts +24 -0
  382. package/dist/sdk/coding-agent/core/extensions/loader.d.ts.map +1 -0
  383. package/dist/sdk/coding-agent/core/extensions/loader.js +18 -21
  384. package/dist/sdk/coding-agent/core/extensions/runner.d.ts +161 -0
  385. package/dist/sdk/coding-agent/core/extensions/runner.d.ts.map +1 -0
  386. package/dist/sdk/coding-agent/core/extensions/runner.js +1 -1
  387. package/dist/sdk/coding-agent/core/extensions/types.d.ts +1181 -0
  388. package/dist/sdk/coding-agent/core/extensions/types.d.ts.map +1 -0
  389. package/dist/sdk/coding-agent/core/extensions/wrapper.d.ts +20 -0
  390. package/dist/sdk/coding-agent/core/extensions/wrapper.d.ts.map +1 -0
  391. package/dist/sdk/coding-agent/core/http-dispatcher.d.ts +21 -0
  392. package/dist/sdk/coding-agent/core/http-dispatcher.d.ts.map +1 -0
  393. package/dist/sdk/coding-agent/core/index.d.ts +12 -0
  394. package/dist/sdk/coding-agent/core/index.d.ts.map +1 -0
  395. package/dist/sdk/coding-agent/core/keybindings.d.ts +371 -0
  396. package/dist/sdk/coding-agent/core/keybindings.d.ts.map +1 -0
  397. package/dist/sdk/coding-agent/core/messages.d.ts +77 -0
  398. package/dist/sdk/coding-agent/core/messages.d.ts.map +1 -0
  399. package/dist/sdk/coding-agent/core/model-registry.d.ts +150 -0
  400. package/dist/sdk/coding-agent/core/model-registry.d.ts.map +1 -0
  401. package/dist/sdk/coding-agent/core/model-resolver-utils.d.ts +7 -0
  402. package/dist/sdk/coding-agent/core/model-resolver-utils.d.ts.map +1 -0
  403. package/dist/sdk/coding-agent/core/model-resolver.d.ts +110 -0
  404. package/dist/sdk/coding-agent/core/model-resolver.d.ts.map +1 -0
  405. package/dist/sdk/coding-agent/core/output-guard.d.ts +6 -0
  406. package/dist/sdk/coding-agent/core/output-guard.d.ts.map +1 -0
  407. package/dist/sdk/coding-agent/core/package-manager.d.ts +204 -0
  408. package/dist/sdk/coding-agent/core/package-manager.d.ts.map +1 -0
  409. package/dist/sdk/coding-agent/core/package-manager.js +14 -14
  410. package/dist/sdk/coding-agent/core/prompt-templates.d.ts +52 -0
  411. package/dist/sdk/coding-agent/core/prompt-templates.d.ts.map +1 -0
  412. package/dist/sdk/coding-agent/core/provider-display-names.d.ts +2 -0
  413. package/dist/sdk/coding-agent/core/provider-display-names.d.ts.map +1 -0
  414. package/dist/sdk/coding-agent/core/resolve-config-value.d.ts +23 -0
  415. package/dist/sdk/coding-agent/core/resolve-config-value.d.ts.map +1 -0
  416. package/dist/sdk/coding-agent/core/resource-loader.d.ts +194 -0
  417. package/dist/sdk/coding-agent/core/resource-loader.d.ts.map +1 -0
  418. package/dist/sdk/coding-agent/core/sdk.d.ts +107 -0
  419. package/dist/sdk/coding-agent/core/sdk.d.ts.map +1 -0
  420. package/dist/sdk/coding-agent/core/sdk.js +2 -2
  421. package/dist/sdk/coding-agent/core/session-cwd.d.ts +19 -0
  422. package/dist/sdk/coding-agent/core/session-cwd.d.ts.map +1 -0
  423. package/dist/sdk/coding-agent/core/session-manager.d.ts +333 -0
  424. package/dist/sdk/coding-agent/core/session-manager.d.ts.map +1 -0
  425. package/dist/sdk/coding-agent/core/settings-manager.d.ts +209 -0
  426. package/dist/sdk/coding-agent/core/settings-manager.d.ts.map +1 -0
  427. package/dist/sdk/coding-agent/core/skills.d.ts +60 -0
  428. package/dist/sdk/coding-agent/core/skills.d.ts.map +1 -0
  429. package/dist/sdk/coding-agent/core/slash-commands.d.ts +14 -0
  430. package/dist/sdk/coding-agent/core/slash-commands.d.ts.map +1 -0
  431. package/dist/sdk/coding-agent/core/source-info.d.ts +18 -0
  432. package/dist/sdk/coding-agent/core/source-info.d.ts.map +1 -0
  433. package/dist/sdk/coding-agent/core/system-prompt.d.ts +28 -0
  434. package/dist/sdk/coding-agent/core/system-prompt.d.ts.map +1 -0
  435. package/dist/sdk/coding-agent/core/system-prompt.js +7 -7
  436. package/dist/sdk/coding-agent/core/telemetry.d.ts +3 -0
  437. package/dist/sdk/coding-agent/core/telemetry.d.ts.map +1 -0
  438. package/dist/sdk/coding-agent/core/theme.d.ts +28 -0
  439. package/dist/sdk/coding-agent/core/theme.d.ts.map +1 -0
  440. package/dist/sdk/coding-agent/core/timings.d.ts +8 -0
  441. package/dist/sdk/coding-agent/core/timings.d.ts.map +1 -0
  442. package/dist/sdk/coding-agent/core/tools/bash.d.ts +63 -0
  443. package/dist/sdk/coding-agent/core/tools/bash.d.ts.map +1 -0
  444. package/dist/sdk/coding-agent/core/tools/bash.js +3 -3
  445. package/dist/sdk/coding-agent/core/tools/edit-diff.d.ts +87 -0
  446. package/dist/sdk/coding-agent/core/tools/edit-diff.d.ts.map +1 -0
  447. package/dist/sdk/coding-agent/core/tools/edit.d.ts +39 -0
  448. package/dist/sdk/coding-agent/core/tools/edit.d.ts.map +1 -0
  449. package/dist/sdk/coding-agent/core/tools/file-mutation-queue.d.ts +6 -0
  450. package/dist/sdk/coding-agent/core/tools/file-mutation-queue.d.ts.map +1 -0
  451. package/dist/sdk/coding-agent/core/tools/find.d.ts +35 -0
  452. package/dist/sdk/coding-agent/core/tools/find.d.ts.map +1 -0
  453. package/dist/sdk/coding-agent/core/tools/grep.d.ts +37 -0
  454. package/dist/sdk/coding-agent/core/tools/grep.d.ts.map +1 -0
  455. package/dist/sdk/coding-agent/core/tools/index.d.ts +40 -0
  456. package/dist/sdk/coding-agent/core/tools/index.d.ts.map +1 -0
  457. package/dist/sdk/coding-agent/core/tools/ls.d.ts +37 -0
  458. package/dist/sdk/coding-agent/core/tools/ls.d.ts.map +1 -0
  459. package/dist/sdk/coding-agent/core/tools/output-accumulator.d.ts +52 -0
  460. package/dist/sdk/coding-agent/core/tools/output-accumulator.d.ts.map +1 -0
  461. package/dist/sdk/coding-agent/core/tools/output-accumulator.js +1 -1
  462. package/dist/sdk/coding-agent/core/tools/path-utils.d.ts +8 -0
  463. package/dist/sdk/coding-agent/core/tools/path-utils.d.ts.map +1 -0
  464. package/dist/sdk/coding-agent/core/tools/read.d.ts +35 -0
  465. package/dist/sdk/coding-agent/core/tools/read.d.ts.map +1 -0
  466. package/dist/sdk/coding-agent/core/tools/read.js +18 -10
  467. package/dist/sdk/coding-agent/core/tools/render-diff.d.ts +17 -0
  468. package/dist/sdk/coding-agent/core/tools/render-diff.d.ts.map +1 -0
  469. package/dist/sdk/coding-agent/core/tools/render-utils.d.ts +21 -0
  470. package/dist/sdk/coding-agent/core/tools/render-utils.d.ts.map +1 -0
  471. package/dist/sdk/coding-agent/core/tools/tool-definition-wrapper.d.ts +14 -0
  472. package/dist/sdk/coding-agent/core/tools/tool-definition-wrapper.d.ts.map +1 -0
  473. package/dist/sdk/coding-agent/core/tools/truncate.d.ts +70 -0
  474. package/dist/sdk/coding-agent/core/tools/truncate.d.ts.map +1 -0
  475. package/dist/sdk/coding-agent/core/tools/write.d.ts +26 -0
  476. package/dist/sdk/coding-agent/core/tools/write.d.ts.map +1 -0
  477. package/dist/sdk/coding-agent/index.d.ts +29 -0
  478. package/dist/sdk/coding-agent/index.d.ts.map +1 -0
  479. package/dist/sdk/coding-agent/main.d.ts +2 -0
  480. package/dist/sdk/coding-agent/main.d.ts.map +1 -0
  481. package/dist/sdk/coding-agent/migrations.d.ts +33 -0
  482. package/dist/sdk/coding-agent/migrations.d.ts.map +1 -0
  483. package/dist/sdk/coding-agent/migrations.js +4 -4
  484. package/dist/sdk/coding-agent/modes/index.d.ts +8 -0
  485. package/dist/sdk/coding-agent/modes/index.d.ts.map +1 -0
  486. package/dist/sdk/coding-agent/modes/print-mode.d.ts +28 -0
  487. package/dist/sdk/coding-agent/modes/print-mode.d.ts.map +1 -0
  488. package/dist/sdk/coding-agent/modes/print-mode.js +2 -2
  489. package/dist/sdk/coding-agent/modes/rpc/jsonl.d.ts +17 -0
  490. package/dist/sdk/coding-agent/modes/rpc/jsonl.d.ts.map +1 -0
  491. package/dist/sdk/coding-agent/modes/rpc/rpc-client.d.ts +224 -0
  492. package/dist/sdk/coding-agent/modes/rpc/rpc-client.d.ts.map +1 -0
  493. package/dist/sdk/coding-agent/modes/rpc/rpc-mode.d.ts +20 -0
  494. package/dist/sdk/coding-agent/modes/rpc/rpc-mode.d.ts.map +1 -0
  495. package/dist/sdk/coding-agent/modes/rpc/rpc-types.d.ts +419 -0
  496. package/dist/sdk/coding-agent/modes/rpc/rpc-types.d.ts.map +1 -0
  497. package/dist/sdk/coding-agent/utils/ansi.d.ts +2 -0
  498. package/dist/sdk/coding-agent/utils/ansi.d.ts.map +1 -0
  499. package/dist/sdk/coding-agent/utils/changelog.d.ts +21 -0
  500. package/dist/sdk/coding-agent/utils/changelog.d.ts.map +1 -0
  501. package/dist/sdk/coding-agent/utils/child-process.d.ts +15 -0
  502. package/dist/sdk/coding-agent/utils/child-process.d.ts.map +1 -0
  503. package/dist/sdk/coding-agent/utils/clipboard-image.d.ts +11 -0
  504. package/dist/sdk/coding-agent/utils/clipboard-image.d.ts.map +1 -0
  505. package/dist/sdk/coding-agent/utils/clipboard-image.js +1 -1
  506. package/dist/sdk/coding-agent/utils/clipboard-native.d.ts +8 -0
  507. package/dist/sdk/coding-agent/utils/clipboard-native.d.ts.map +1 -0
  508. package/dist/sdk/coding-agent/utils/clipboard.d.ts +2 -0
  509. package/dist/sdk/coding-agent/utils/clipboard.d.ts.map +1 -0
  510. package/dist/sdk/coding-agent/utils/exif-orientation.d.ts +5 -0
  511. package/dist/sdk/coding-agent/utils/exif-orientation.d.ts.map +1 -0
  512. package/dist/sdk/coding-agent/utils/frontmatter.d.ts +8 -0
  513. package/dist/sdk/coding-agent/utils/frontmatter.d.ts.map +1 -0
  514. package/dist/sdk/coding-agent/utils/fs-watch.d.ts +5 -0
  515. package/dist/sdk/coding-agent/utils/fs-watch.d.ts.map +1 -0
  516. package/dist/sdk/coding-agent/utils/git.d.ts +26 -0
  517. package/dist/sdk/coding-agent/utils/git.d.ts.map +1 -0
  518. package/dist/sdk/coding-agent/utils/html.d.ts +7 -0
  519. package/dist/sdk/coding-agent/utils/html.d.ts.map +1 -0
  520. package/dist/sdk/coding-agent/utils/image-convert.d.ts +9 -0
  521. package/dist/sdk/coding-agent/utils/image-convert.d.ts.map +1 -0
  522. package/dist/sdk/coding-agent/utils/image-resize.d.ts +36 -0
  523. package/dist/sdk/coding-agent/utils/image-resize.d.ts.map +1 -0
  524. package/dist/sdk/coding-agent/utils/mime.d.ts +3 -0
  525. package/dist/sdk/coding-agent/utils/mime.d.ts.map +1 -0
  526. package/dist/sdk/coding-agent/utils/paths.d.ts +31 -0
  527. package/dist/sdk/coding-agent/utils/paths.d.ts.map +1 -0
  528. package/dist/sdk/coding-agent/utils/photon.d.ts +13 -0
  529. package/dist/sdk/coding-agent/utils/photon.d.ts.map +1 -0
  530. package/dist/sdk/coding-agent/utils/shell.d.ts +30 -0
  531. package/dist/sdk/coding-agent/utils/shell.d.ts.map +1 -0
  532. package/dist/sdk/coding-agent/utils/sleep.d.ts +5 -0
  533. package/dist/sdk/coding-agent/utils/sleep.d.ts.map +1 -0
  534. package/dist/sdk/coding-agent/utils/spectral-user-agent.d.ts +2 -0
  535. package/dist/sdk/coding-agent/utils/spectral-user-agent.d.ts.map +1 -0
  536. package/dist/sdk/coding-agent/utils/spectral-user-agent.js +3 -0
  537. package/dist/sdk/coding-agent/utils/syntax-highlight.d.ts +12 -0
  538. package/dist/sdk/coding-agent/utils/syntax-highlight.d.ts.map +1 -0
  539. package/dist/sdk/coding-agent/utils/tools-manager.d.ts +3 -0
  540. package/dist/sdk/coding-agent/utils/tools-manager.d.ts.map +1 -0
  541. package/dist/sdk/coding-agent/utils/version-check.d.ts +15 -0
  542. package/dist/sdk/coding-agent/utils/version-check.d.ts.map +1 -0
  543. package/dist/sdk/coding-agent/utils/version-check.js +7 -7
  544. package/dist/sdk/coding-agent/utils/windows-self-update.d.ts +3 -0
  545. package/dist/sdk/coding-agent/utils/windows-self-update.d.ts.map +1 -0
  546. package/dist/sdk/coding-agent/utils/windows-self-update.js +1 -1
  547. package/dist/server/agent-bridge.d.ts +308 -0
  548. package/dist/server/agent-bridge.d.ts.map +1 -0
  549. package/dist/server/agent-bridge.js +58 -58
  550. package/dist/server/handlers/errors.d.ts +26 -0
  551. package/dist/server/handlers/errors.d.ts.map +1 -0
  552. package/dist/server/handlers/mcp-status.d.ts +21 -0
  553. package/dist/server/handlers/mcp-status.d.ts.map +1 -0
  554. package/dist/server/handlers/mcp-status.js +52 -0
  555. package/dist/server/handlers/paths-autocomplete.d.ts +45 -0
  556. package/dist/server/handlers/paths-autocomplete.d.ts.map +1 -0
  557. package/dist/server/handlers/projects.d.ts +58 -0
  558. package/dist/server/handlers/projects.d.ts.map +1 -0
  559. package/dist/server/handlers/queue.d.ts +27 -0
  560. package/dist/server/handlers/queue.d.ts.map +1 -0
  561. package/dist/server/handlers/sessions.d.ts +50 -0
  562. package/dist/server/handlers/sessions.d.ts.map +1 -0
  563. package/dist/server/handlers/sessions.js +1 -1
  564. package/dist/server/handlers/settings.d.ts +30 -0
  565. package/dist/server/handlers/settings.d.ts.map +1 -0
  566. package/dist/server/handlers/settings.js +123 -0
  567. package/dist/server/paths.d.ts +51 -0
  568. package/dist/server/paths.d.ts.map +1 -0
  569. package/dist/server/paths.js +2 -2
  570. package/dist/server/session-stream.d.ts +379 -0
  571. package/dist/server/session-stream.d.ts.map +1 -0
  572. package/dist/server/session-stream.js +43 -34
  573. package/dist/server/shutdown.d.ts +102 -0
  574. package/dist/server/shutdown.d.ts.map +1 -0
  575. package/dist/server/shutdown.js +3 -3
  576. package/dist/server/storage.d.ts +287 -0
  577. package/dist/server/storage.d.ts.map +1 -0
  578. package/dist/server/storage.js +6 -6
  579. package/dist/server/title-generator.d.ts +25 -0
  580. package/dist/server/title-generator.d.ts.map +1 -0
  581. package/dist/server/wire.d.ts +448 -0
  582. package/dist/server/wire.d.ts.map +1 -0
  583. package/dist/server/wire.js +1 -1
  584. package/dist/studio-binding.d.ts +44 -0
  585. package/dist/studio-binding.d.ts.map +1 -0
  586. package/dist/studio-binding.js +1 -1
  587. package/package.json +11 -1
  588. package/dist/sdk/coding-agent/utils/pi-user-agent.js +0 -3
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Model registry - manages built-in and custom models, provides API key resolution.
3
+ */
4
+ import { type Api, type AssistantMessageEventStream, type Context, type Model, type OAuthProviderInterface, type SimpleStreamOptions } from "../../ai/index.js";
5
+ import type { AuthStatus, AuthStorage } from "./auth-storage.js";
6
+ import { clearConfigValueCache } from "./resolve-config-value.js";
7
+ export type ResolvedRequestAuth = {
8
+ ok: true;
9
+ apiKey?: string;
10
+ headers?: Record<string, string>;
11
+ } | {
12
+ ok: false;
13
+ error: string;
14
+ };
15
+ /** Clear the config value command cache. Exported for testing. */
16
+ export declare const clearApiKeyCache: typeof clearConfigValueCache;
17
+ /**
18
+ * Model registry - loads and manages models, resolves API keys via AuthStorage.
19
+ */
20
+ export declare class ModelRegistry {
21
+ private models;
22
+ private providerRequestConfigs;
23
+ private modelRequestHeaders;
24
+ private registeredProviders;
25
+ private loadError;
26
+ readonly authStorage: AuthStorage;
27
+ private modelsJsonPath;
28
+ private constructor();
29
+ static create(authStorage: AuthStorage, modelsJsonPath?: string): ModelRegistry;
30
+ static inMemory(authStorage: AuthStorage): ModelRegistry;
31
+ /**
32
+ * Reload models from disk (built-in + custom from models.json).
33
+ */
34
+ refresh(): void;
35
+ /**
36
+ * Get any error from loading models.json (undefined if no error).
37
+ */
38
+ getError(): string | undefined;
39
+ private loadModels;
40
+ /** Load built-in models and apply provider/model overrides */
41
+ private loadBuiltInModels;
42
+ /** Merge custom models into built-in list by provider+id (custom wins on conflicts). */
43
+ private mergeCustomModels;
44
+ private loadCustomModels;
45
+ private validateConfig;
46
+ private parseModels;
47
+ /**
48
+ * Get all models (built-in + custom).
49
+ * If models.json had errors, returns only built-in models.
50
+ */
51
+ getAll(): Model<Api>[];
52
+ /**
53
+ * Get only models that have auth configured.
54
+ * This is a fast check that doesn't refresh OAuth tokens.
55
+ */
56
+ getAvailable(): Model<Api>[];
57
+ /**
58
+ * Find a model by provider and ID.
59
+ */
60
+ find(provider: string, modelId: string): Model<Api> | undefined;
61
+ /**
62
+ * Get API key for a model.
63
+ */
64
+ hasConfiguredAuth(model: Model<Api>): boolean;
65
+ private getModelRequestKey;
66
+ private storeProviderRequestConfig;
67
+ private storeModelHeaders;
68
+ /**
69
+ * Get API key and request headers for a model.
70
+ */
71
+ getApiKeyAndHeaders(model: Model<Api>): Promise<ResolvedRequestAuth>;
72
+ /**
73
+ * Return auth status for a provider, including request auth configured in models.json.
74
+ * This intentionally does not execute command-backed config values.
75
+ */
76
+ getProviderAuthStatus(provider: string): AuthStatus;
77
+ /**
78
+ * Get display name for a provider.
79
+ */
80
+ getProviderDisplayName(provider: string): string;
81
+ /**
82
+ * Get API key for a provider.
83
+ */
84
+ getApiKeyForProvider(provider: string): Promise<string | undefined>;
85
+ /**
86
+ * Check if a model is using OAuth credentials (subscription).
87
+ */
88
+ isUsingOAuth(model: Model<Api>): boolean;
89
+ /**
90
+ * Register a provider dynamically (from extensions).
91
+ *
92
+ * If provider has models: replaces all existing models for this provider.
93
+ * If provider has only baseUrl/headers: overrides existing models' URLs.
94
+ * If provider has oauth: registers OAuth provider for /login support.
95
+ */
96
+ registerProvider(providerName: string, config: ProviderConfigInput): void;
97
+ /**
98
+ * Unregister a previously registered provider.
99
+ *
100
+ * Removes the provider from the registry and reloads models from disk so that
101
+ * built-in models overridden by this provider are restored to their original state.
102
+ * Also resets dynamic OAuth and API stream registrations before reapplying
103
+ * remaining dynamic providers.
104
+ * Has no effect if the provider was never registered.
105
+ */
106
+ unregisterProvider(providerName: string): void;
107
+ /**
108
+ * Upsert a provider config into registeredProviders.
109
+ * If the provider is already registered, defined values in the incoming config
110
+ * override existing ones; undefined values are preserved from the stored config.
111
+ * If the provider is not registered, the incoming config is stored as-is.
112
+ */
113
+ private upsertRegisteredProvider;
114
+ private validateProviderConfig;
115
+ private applyProviderConfig;
116
+ }
117
+ /**
118
+ * Input type for registerProvider API.
119
+ */
120
+ export interface ProviderConfigInput {
121
+ name?: string;
122
+ baseUrl?: string;
123
+ apiKey?: string;
124
+ api?: Api;
125
+ streamSimple?: (model: Model<Api>, context: Context, options?: SimpleStreamOptions) => AssistantMessageEventStream;
126
+ headers?: Record<string, string>;
127
+ authHeader?: boolean;
128
+ /** OAuth provider for /login support */
129
+ oauth?: Omit<OAuthProviderInterface, "id">;
130
+ models?: Array<{
131
+ id: string;
132
+ name: string;
133
+ api?: Api;
134
+ baseUrl?: string;
135
+ reasoning: boolean;
136
+ thinkingLevelMap?: Model<Api>["thinkingLevelMap"];
137
+ input: ("text" | "image")[];
138
+ cost: {
139
+ input: number;
140
+ output: number;
141
+ cacheRead: number;
142
+ cacheWrite: number;
143
+ };
144
+ contextWindow: number;
145
+ maxTokens: number;
146
+ headers?: Record<string, string>;
147
+ compat?: Model<Api>["compat"];
148
+ }>;
149
+ }
150
+ //# sourceMappingURL=model-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-registry.d.ts","sourceRoot":"","sources":["../../../../src/sdk/coding-agent/core/model-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Shared utility for validating thinking level strings.
3
+ * Extracted from cli/args.ts (TUI-only, now deleted).
4
+ */
5
+ import type { ThinkingLevel } from "../../agent-core/index.js";
6
+ export declare function isValidThinkingLevel(level: string): level is ThinkingLevel;
7
+ //# sourceMappingURL=model-resolver-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-resolver-utils.d.ts","sourceRoot":"","sources":["../../../../src/sdk/coding-agent/core/model-resolver-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI/D,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,aAAa,CAE1E"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Model resolution, scoping, and initial selection
3
+ */
4
+ import type { ThinkingLevel } from "../../agent-core/index.js";
5
+ import { type Api, type KnownProvider, type Model } from "../../ai/index.js";
6
+ import type { ModelRegistry } from "./model-registry.js";
7
+ /** Default model IDs for each known provider */
8
+ export declare const defaultModelPerProvider: Record<KnownProvider, string>;
9
+ export interface ScopedModel {
10
+ model: Model<Api>;
11
+ /** Thinking level if explicitly specified in pattern (e.g., "model:high"), undefined otherwise */
12
+ thinkingLevel?: ThinkingLevel;
13
+ }
14
+ /**
15
+ * Find an exact model reference match.
16
+ * Supports either a bare model id or a canonical provider/modelId reference.
17
+ * When matching by bare id, ambiguous matches across providers are rejected.
18
+ */
19
+ export declare function findExactModelReferenceMatch(modelReference: string, availableModels: Model<Api>[]): Model<Api> | undefined;
20
+ export interface ParsedModelResult {
21
+ model: Model<Api> | undefined;
22
+ /** Thinking level if explicitly specified in pattern, undefined otherwise */
23
+ thinkingLevel?: ThinkingLevel;
24
+ warning: string | undefined;
25
+ }
26
+ /**
27
+ * Parse a pattern to extract model and thinking level.
28
+ * Handles models with colons in their IDs (e.g., OpenRouter's :exacto suffix).
29
+ *
30
+ * Algorithm:
31
+ * 1. Try to match full pattern as a model
32
+ * 2. If found, return it with "off" thinking level
33
+ * 3. If not found and has colons, split on last colon:
34
+ * - If suffix is valid thinking level, use it and recurse on prefix
35
+ * - If suffix is invalid, warn and recurse on prefix with "off"
36
+ *
37
+ * @internal Exported for testing
38
+ */
39
+ export declare function parseModelPattern(pattern: string, availableModels: Model<Api>[], options?: {
40
+ allowInvalidThinkingLevelFallback?: boolean;
41
+ }): ParsedModelResult;
42
+ /**
43
+ * Resolve model patterns to actual Model objects with optional thinking levels
44
+ * Format: "pattern:level" where :level is optional
45
+ * For each pattern, finds all matching models and picks the best version:
46
+ * 1. Prefer alias (e.g., claude-sonnet-4-5) over dated versions (claude-sonnet-4-5-20250929)
47
+ * 2. If no alias, pick the latest dated version
48
+ *
49
+ * Supports models with colons in their IDs (e.g., OpenRouter's model:exacto).
50
+ * The algorithm tries to match the full pattern first, then progressively
51
+ * strips colon-suffixes to find a match.
52
+ */
53
+ export declare function resolveModelScope(patterns: string[], modelRegistry: ModelRegistry): Promise<ScopedModel[]>;
54
+ export interface ResolveCliModelResult {
55
+ model: Model<Api> | undefined;
56
+ thinkingLevel?: ThinkingLevel;
57
+ warning: string | undefined;
58
+ /**
59
+ * Error message suitable for CLI display.
60
+ * When set, model will be undefined.
61
+ */
62
+ error: string | undefined;
63
+ }
64
+ /**
65
+ * Resolve a single model from CLI flags.
66
+ *
67
+ * Supports:
68
+ * - --provider <provider> --model <pattern>
69
+ * - --model <provider>/<pattern>
70
+ * - Fuzzy matching (same rules as model scoping: exact id, then partial id/name)
71
+ *
72
+ * Note: This does not apply the thinking level by itself, but it may *parse* and
73
+ * return a thinking level from "<pattern>:<thinking>" so the caller can apply it.
74
+ */
75
+ export declare function resolveCliModel(options: {
76
+ cliProvider?: string;
77
+ cliModel?: string;
78
+ modelRegistry: ModelRegistry;
79
+ }): ResolveCliModelResult;
80
+ export interface InitialModelResult {
81
+ model: Model<Api> | undefined;
82
+ thinkingLevel: ThinkingLevel;
83
+ fallbackMessage: string | undefined;
84
+ }
85
+ /**
86
+ * Find the initial model to use based on priority:
87
+ * 1. CLI args (provider + model)
88
+ * 2. First model from scoped models (if not continuing/resuming)
89
+ * 3. Restored from session (if continuing/resuming)
90
+ * 4. Saved default from settings
91
+ * 5. First available model with valid API key
92
+ */
93
+ export declare function findInitialModel(options: {
94
+ cliProvider?: string;
95
+ cliModel?: string;
96
+ scopedModels: ScopedModel[];
97
+ isContinuing: boolean;
98
+ defaultProvider?: string;
99
+ defaultModelId?: string;
100
+ defaultThinkingLevel?: ThinkingLevel;
101
+ modelRegistry: ModelRegistry;
102
+ }): Promise<InitialModelResult>;
103
+ /**
104
+ * Restore model from session, with fallback to available models
105
+ */
106
+ export declare function restoreModelFromSession(savedProvider: string, savedModelId: string, currentModel: Model<Api> | undefined, shouldPrintMessages: boolean, modelRegistry: ModelRegistry): Promise<{
107
+ model: Model<Api> | undefined;
108
+ fallbackMessage: string | undefined;
109
+ }>;
110
+ //# sourceMappingURL=model-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-resolver.d.ts","sourceRoot":"","sources":["../../../../src/sdk/coding-agent/core/model-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare function takeOverStdout(): void;
2
+ export declare function restoreStdout(): void;
3
+ export declare function isStdoutTakenOver(): boolean;
4
+ export declare function writeRawStdout(text: string): void;
5
+ export declare function flushRawStdout(): Promise<void>;
6
+ //# sourceMappingURL=output-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-guard.d.ts","sourceRoot":"","sources":["../../../../src/sdk/coding-agent/core/output-guard.ts"],"names":[],"mappings":"AAQA,wBAAgB,cAAc,IAAI,IAAI,CAyBrC;AAED,wBAAgB,aAAa,IAAI,IAAI,CAOpC;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAMjD;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAiBpD"}
@@ -0,0 +1,204 @@
1
+ import type { SettingsManager } from "./settings-manager.js";
2
+ export interface PathMetadata {
3
+ source: string;
4
+ scope: SourceScope;
5
+ origin: "package" | "top-level";
6
+ baseDir?: string;
7
+ }
8
+ export interface ResolvedResource {
9
+ path: string;
10
+ enabled: boolean;
11
+ metadata: PathMetadata;
12
+ }
13
+ export interface ResolvedPaths {
14
+ extensions: ResolvedResource[];
15
+ skills: ResolvedResource[];
16
+ prompts: ResolvedResource[];
17
+ themes: ResolvedResource[];
18
+ }
19
+ export type MissingSourceAction = "install" | "skip" | "error";
20
+ export interface ProgressEvent {
21
+ type: "start" | "progress" | "complete" | "error";
22
+ action: "install" | "remove" | "update" | "clone" | "pull";
23
+ source: string;
24
+ message?: string;
25
+ }
26
+ export type ProgressCallback = (event: ProgressEvent) => void;
27
+ export interface PackageUpdate {
28
+ source: string;
29
+ displayName: string;
30
+ type: "npm" | "git";
31
+ scope: Exclude<SourceScope, "temporary">;
32
+ }
33
+ export interface ConfiguredPackage {
34
+ source: string;
35
+ scope: "user" | "project";
36
+ filtered: boolean;
37
+ installedPath?: string;
38
+ }
39
+ export interface PackageManager {
40
+ resolve(onMissing?: (source: string) => Promise<MissingSourceAction>): Promise<ResolvedPaths>;
41
+ install(source: string, options?: {
42
+ local?: boolean;
43
+ }): Promise<void>;
44
+ installAndPersist(source: string, options?: {
45
+ local?: boolean;
46
+ }): Promise<void>;
47
+ remove(source: string, options?: {
48
+ local?: boolean;
49
+ }): Promise<void>;
50
+ removeAndPersist(source: string, options?: {
51
+ local?: boolean;
52
+ }): Promise<boolean>;
53
+ update(source?: string): Promise<void>;
54
+ listConfiguredPackages(): ConfiguredPackage[];
55
+ resolveExtensionSources(sources: string[], options?: {
56
+ local?: boolean;
57
+ temporary?: boolean;
58
+ }): Promise<ResolvedPaths>;
59
+ addSourceToSettings(source: string, options?: {
60
+ local?: boolean;
61
+ }): boolean;
62
+ removeSourceFromSettings(source: string, options?: {
63
+ local?: boolean;
64
+ }): boolean;
65
+ setProgressCallback(callback: ProgressCallback | undefined): void;
66
+ getInstalledPath(source: string, scope: "user" | "project"): string | undefined;
67
+ }
68
+ interface PackageManagerOptions {
69
+ cwd: string;
70
+ agentDir: string;
71
+ settingsManager: SettingsManager;
72
+ }
73
+ type SourceScope = "user" | "project" | "temporary";
74
+ export declare class DefaultPackageManager implements PackageManager {
75
+ private cwd;
76
+ private agentDir;
77
+ private settingsManager;
78
+ private globalNpmRoot;
79
+ private globalNpmRootCommandKey;
80
+ private progressCallback;
81
+ constructor(options: PackageManagerOptions);
82
+ setProgressCallback(callback: ProgressCallback | undefined): void;
83
+ addSourceToSettings(source: string, options?: {
84
+ local?: boolean;
85
+ }): boolean;
86
+ removeSourceFromSettings(source: string, options?: {
87
+ local?: boolean;
88
+ }): boolean;
89
+ getInstalledPath(source: string, scope: "user" | "project"): string | undefined;
90
+ private emitProgress;
91
+ private withProgress;
92
+ resolve(onMissing?: (source: string) => Promise<MissingSourceAction>): Promise<ResolvedPaths>;
93
+ resolveExtensionSources(sources: string[], options?: {
94
+ local?: boolean;
95
+ temporary?: boolean;
96
+ }): Promise<ResolvedPaths>;
97
+ listConfiguredPackages(): ConfiguredPackage[];
98
+ install(source: string, options?: {
99
+ local?: boolean;
100
+ }): Promise<void>;
101
+ installAndPersist(source: string, options?: {
102
+ local?: boolean;
103
+ }): Promise<void>;
104
+ remove(source: string, options?: {
105
+ local?: boolean;
106
+ }): Promise<void>;
107
+ removeAndPersist(source: string, options?: {
108
+ local?: boolean;
109
+ }): Promise<boolean>;
110
+ update(source?: string): Promise<void>;
111
+ private updateConfiguredSources;
112
+ private shouldUpdateNpmSource;
113
+ private updateNpmBatch;
114
+ private installNpmBatch;
115
+ checkForAvailableUpdates(): Promise<PackageUpdate[]>;
116
+ private resolvePackageSources;
117
+ private resolveLocalExtensionSource;
118
+ private installParsedSource;
119
+ private getPackageSourceString;
120
+ private getSourceMatchKeyForInput;
121
+ private getSourceMatchKeyForSettings;
122
+ private buildNoMatchingPackageMessage;
123
+ private findSuggestedConfiguredSource;
124
+ private packageSourcesMatch;
125
+ private normalizePackageSourceForSettings;
126
+ private parseSource;
127
+ private installedNpmMatchesPinnedVersion;
128
+ private npmHasAvailableUpdate;
129
+ private getInstalledNpmVersion;
130
+ private getLatestNpmVersion;
131
+ private gitHasAvailableUpdate;
132
+ private getRemoteGitHead;
133
+ private getLocalGitUpdateTarget;
134
+ private getGitUpstreamRef;
135
+ private runGitRemoteCommand;
136
+ private runWithConcurrency;
137
+ /**
138
+ * Get a unique identity for a package, ignoring version/ref.
139
+ * Used to detect when the same package is in both global and project settings.
140
+ * For git packages, uses normalized host/path to ensure SSH and HTTPS URLs
141
+ * for the same repository are treated as identical.
142
+ */
143
+ private getPackageIdentity;
144
+ /**
145
+ * Dedupe packages: if same package identity appears in both global and project,
146
+ * keep only the project one (project wins).
147
+ */
148
+ private dedupePackages;
149
+ private parseNpmSpec;
150
+ private getNpmCommand;
151
+ private getPackageManagerName;
152
+ private runNpmCommand;
153
+ private getGitDependencyInstallArgs;
154
+ private runNpmCommandSync;
155
+ private getNpmInstallArgs;
156
+ private installNpm;
157
+ private uninstallNpm;
158
+ private installGit;
159
+ private updateGit;
160
+ private ensureGitRef;
161
+ private refreshTemporaryGitSource;
162
+ private removeGit;
163
+ private pruneEmptyGitParents;
164
+ private ensureNpmProject;
165
+ private ensureGitIgnore;
166
+ private getNpmInstallRoot;
167
+ private getGlobalNpmRoot;
168
+ private getPnpmGlobalPackagePath;
169
+ private getManagedNpmInstallPath;
170
+ private getLegacyGlobalNpmInstallPath;
171
+ private getNpmInstallPath;
172
+ private getGitInstallPath;
173
+ private getGitInstallRoot;
174
+ private getTemporaryDir;
175
+ private getBaseDirForScope;
176
+ private resolvePath;
177
+ private resolvePathFromBase;
178
+ private collectPackageResources;
179
+ private collectDefaultResources;
180
+ private applyPackageFilter;
181
+ /**
182
+ * Collect all files from a package for a resource type, applying manifest patterns.
183
+ * Returns { allFiles, enabledByManifest } where enabledByManifest is the set of files
184
+ * that pass the manifest's own patterns.
185
+ */
186
+ private collectManifestFiles;
187
+ private readSpectralManifest;
188
+ private addManifestEntries;
189
+ private collectFilesFromManifestEntries;
190
+ private resolveLocalEntries;
191
+ private addAutoDiscoveredResources;
192
+ private collectFilesFromPaths;
193
+ private getTargetMap;
194
+ private addResource;
195
+ private createAccumulator;
196
+ private toResolvedPaths;
197
+ private spawnCommand;
198
+ private spawnCaptureCommand;
199
+ private runCommandCapture;
200
+ private runCommand;
201
+ private runCommandSync;
202
+ }
203
+ export {};
204
+ //# sourceMappingURL=package-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../../../src/sdk/coding-agent/core/package-manager.ts"],"names":[],"mappings":"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"}
@@ -225,7 +225,7 @@ function collectSkillEntries(dir, mode, ignoreMatcher, rootDir) {
225
225
  }
226
226
  }
227
227
  const relPath = toPosixPath(relative(root, fullPath));
228
- if (mode === "pi" && dir === root && isFile && entry.name.endsWith(".md") && !ig.ignores(relPath)) {
228
+ if (mode === "spectral" && dir === root && isFile && entry.name.endsWith(".md") && !ig.ignores(relPath)) {
229
229
  entries.push(fullPath);
230
230
  continue;
231
231
  }
@@ -347,11 +347,11 @@ function collectAutoThemeEntries(dir) {
347
347
  }
348
348
  return entries;
349
349
  }
350
- function readPiManifestFile(packageJsonPath) {
350
+ function readSpectralManifestFile(packageJsonPath) {
351
351
  try {
352
352
  const content = readFileSync(packageJsonPath, "utf-8");
353
353
  const pkg = JSON.parse(content);
354
- return pkg.pi ?? null;
354
+ return pkg.spectral ?? null;
355
355
  }
356
356
  catch {
357
357
  return null;
@@ -360,7 +360,7 @@ function readPiManifestFile(packageJsonPath) {
360
360
  function resolveExtensionEntries(dir) {
361
361
  const packageJsonPath = join(dir, "package.json");
362
362
  if (existsSync(packageJsonPath)) {
363
- const manifest = readPiManifestFile(packageJsonPath);
363
+ const manifest = readSpectralManifestFile(packageJsonPath);
364
364
  if (manifest?.extensions?.length) {
365
365
  const entries = [];
366
366
  for (const extPath of manifest.extensions) {
@@ -442,7 +442,7 @@ function collectAutoExtensionEntries(dir) {
442
442
  */
443
443
  function collectResourceFiles(dir, resourceType) {
444
444
  if (resourceType === "skills") {
445
- return collectSkillEntries(dir, "pi");
445
+ return collectSkillEntries(dir, "spectral");
446
446
  }
447
447
  if (resourceType === "extensions") {
448
448
  return collectAutoExtensionEntries(dir);
@@ -1527,7 +1527,7 @@ export class DefaultPackageManager {
1527
1527
  this.ensureGitIgnore(installRoot);
1528
1528
  const packageJsonPath = join(installRoot, "package.json");
1529
1529
  if (!existsSync(packageJsonPath)) {
1530
- const pkgJson = { name: "pi-extensions", private: true };
1530
+ const pkgJson = { name: "spectral-extensions", private: true };
1531
1531
  writeFileSync(packageJsonPath, JSON.stringify(pkgJson, null, 2), "utf-8");
1532
1532
  }
1533
1533
  }
@@ -1626,7 +1626,7 @@ export class DefaultPackageManager {
1626
1626
  .update(`${prefix}-${suffix ?? ""}`)
1627
1627
  .digest("hex")
1628
1628
  .slice(0, 8);
1629
- return join(tmpdir(), "pi-extensions", prefix, hash, suffix ?? "");
1629
+ return join(tmpdir(), "spectral-extensions", prefix, hash, suffix ?? "");
1630
1630
  }
1631
1631
  getBaseDirForScope(scope) {
1632
1632
  if (scope === "project") {
@@ -1657,7 +1657,7 @@ export class DefaultPackageManager {
1657
1657
  }
1658
1658
  return true;
1659
1659
  }
1660
- const manifest = this.readPiManifest(packageRoot);
1660
+ const manifest = this.readSpectralManifest(packageRoot);
1661
1661
  if (manifest) {
1662
1662
  for (const resourceType of RESOURCE_TYPES) {
1663
1663
  const entries = manifest[resourceType];
@@ -1680,7 +1680,7 @@ export class DefaultPackageManager {
1680
1680
  return hasAnyDir;
1681
1681
  }
1682
1682
  collectDefaultResources(packageRoot, resourceType, target, metadata) {
1683
- const manifest = this.readPiManifest(packageRoot);
1683
+ const manifest = this.readSpectralManifest(packageRoot);
1684
1684
  const entries = manifest?.[resourceType];
1685
1685
  if (entries) {
1686
1686
  this.addManifestEntries(entries, packageRoot, resourceType, target, metadata);
@@ -1717,7 +1717,7 @@ export class DefaultPackageManager {
1717
1717
  * that pass the manifest's own patterns.
1718
1718
  */
1719
1719
  collectManifestFiles(packageRoot, resourceType) {
1720
- const manifest = this.readPiManifest(packageRoot);
1720
+ const manifest = this.readSpectralManifest(packageRoot);
1721
1721
  const entries = manifest?.[resourceType];
1722
1722
  if (entries && entries.length > 0) {
1723
1723
  const allFiles = this.collectFilesFromManifestEntries(entries, packageRoot, resourceType);
@@ -1732,7 +1732,7 @@ export class DefaultPackageManager {
1732
1732
  const allFiles = collectResourceFiles(conventionDir, resourceType);
1733
1733
  return { allFiles, enabledByManifest: new Set(allFiles) };
1734
1734
  }
1735
- readPiManifest(packageRoot) {
1735
+ readSpectralManifest(packageRoot) {
1736
1736
  const packageJsonPath = join(packageRoot, "package.json");
1737
1737
  if (!existsSync(packageJsonPath)) {
1738
1738
  return null;
@@ -1740,7 +1740,7 @@ export class DefaultPackageManager {
1740
1740
  try {
1741
1741
  const content = readFileSync(packageJsonPath, "utf-8");
1742
1742
  const pkg = JSON.parse(content);
1743
- return pkg.pi ?? null;
1743
+ return pkg.spectral ?? null;
1744
1744
  }
1745
1745
  catch {
1746
1746
  return null;
@@ -1836,7 +1836,7 @@ export class DefaultPackageManager {
1836
1836
  // Project extensions from .spectral/
1837
1837
  addResources("extensions", collectAutoExtensionEntries(projectDirs.extensions), projectMetadata, projectOverrides.extensions, projectBaseDir);
1838
1838
  // Project skills from .spectral/
1839
- addResources("skills", collectAutoSkillEntries(projectDirs.skills, "pi"), projectMetadata, projectOverrides.skills, projectBaseDir);
1839
+ addResources("skills", collectAutoSkillEntries(projectDirs.skills, "spectral"), projectMetadata, projectOverrides.skills, projectBaseDir);
1840
1840
  // Project skills from .agents/ (each with its own baseDir)
1841
1841
  for (const agentsSkillsDir of projectAgentsSkillDirs) {
1842
1842
  const agentsBaseDir = dirname(agentsSkillsDir); // the .agents directory
@@ -1851,7 +1851,7 @@ export class DefaultPackageManager {
1851
1851
  // User extensions from ~/.spectral/agent/
1852
1852
  addResources("extensions", collectAutoExtensionEntries(userDirs.extensions), userMetadata, userOverrides.extensions, globalBaseDir);
1853
1853
  // User skills from ~/.spectral/agent/
1854
- addResources("skills", collectAutoSkillEntries(userDirs.skills, "pi"), userMetadata, userOverrides.skills, globalBaseDir);
1854
+ addResources("skills", collectAutoSkillEntries(userDirs.skills, "spectral"), userMetadata, userOverrides.skills, globalBaseDir);
1855
1855
  // User skills from ~/.agents/ (with its own baseDir)
1856
1856
  const userAgentsBaseDir = dirname(userAgentsSkillsDir);
1857
1857
  const userAgentsMetadata = {