scoutline 0.22.0 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. package/README.md +108 -26
  2. package/dist/capabilities/investigation.d.ts +134 -0
  3. package/dist/capabilities/investigation.d.ts.map +1 -0
  4. package/dist/capabilities/investigation.js +278 -0
  5. package/dist/capabilities/investigation.js.map +1 -0
  6. package/dist/capabilities/search.d.ts +18 -4
  7. package/dist/capabilities/search.d.ts.map +1 -1
  8. package/dist/commands/config.d.ts.map +1 -1
  9. package/dist/commands/config.js +14 -5
  10. package/dist/commands/config.js.map +1 -1
  11. package/dist/commands/crawl.d.ts.map +1 -1
  12. package/dist/commands/crawl.js +2 -1
  13. package/dist/commands/crawl.js.map +1 -1
  14. package/dist/commands/doctor.d.ts.map +1 -1
  15. package/dist/commands/doctor.js +2 -1
  16. package/dist/commands/doctor.js.map +1 -1
  17. package/dist/commands/init.d.ts +42 -1
  18. package/dist/commands/init.d.ts.map +1 -1
  19. package/dist/commands/init.js +42 -5
  20. package/dist/commands/init.js.map +1 -1
  21. package/dist/commands/investigate.d.ts +232 -0
  22. package/dist/commands/investigate.d.ts.map +1 -0
  23. package/dist/commands/investigate.js +838 -0
  24. package/dist/commands/investigate.js.map +1 -0
  25. package/dist/commands/map.d.ts.map +1 -1
  26. package/dist/commands/map.js +2 -1
  27. package/dist/commands/map.js.map +1 -1
  28. package/dist/commands/quota.d.ts.map +1 -1
  29. package/dist/commands/quota.js +2 -2
  30. package/dist/commands/quota.js.map +1 -1
  31. package/dist/commands/read.d.ts.map +1 -1
  32. package/dist/commands/read.js +2 -1
  33. package/dist/commands/read.js.map +1 -1
  34. package/dist/commands/repo.js +1 -1
  35. package/dist/commands/research.d.ts.map +1 -1
  36. package/dist/commands/research.js +2 -1
  37. package/dist/commands/research.js.map +1 -1
  38. package/dist/commands/search.d.ts +54 -6
  39. package/dist/commands/search.d.ts.map +1 -1
  40. package/dist/commands/search.js +273 -25
  41. package/dist/commands/search.js.map +1 -1
  42. package/dist/commands/vision.d.ts.map +1 -1
  43. package/dist/commands/vision.js +15 -2
  44. package/dist/commands/vision.js.map +1 -1
  45. package/dist/index.d.ts +93 -1
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +737 -14
  48. package/dist/index.js.map +1 -1
  49. package/dist/lib/code-mode.d.ts +12 -0
  50. package/dist/lib/code-mode.d.ts.map +1 -1
  51. package/dist/lib/code-mode.js +18 -10
  52. package/dist/lib/code-mode.js.map +1 -1
  53. package/dist/lib/config-store.d.ts +45 -1
  54. package/dist/lib/config-store.d.ts.map +1 -1
  55. package/dist/lib/config-store.js +70 -1
  56. package/dist/lib/config-store.js.map +1 -1
  57. package/dist/lib/config.d.ts.map +1 -1
  58. package/dist/lib/config.js +5 -1
  59. package/dist/lib/config.js.map +1 -1
  60. package/dist/lib/errors.d.ts +7 -1
  61. package/dist/lib/errors.d.ts.map +1 -1
  62. package/dist/lib/errors.js +8 -2
  63. package/dist/lib/errors.js.map +1 -1
  64. package/dist/lib/execution.d.ts +14 -5
  65. package/dist/lib/execution.d.ts.map +1 -1
  66. package/dist/lib/execution.js +25 -6
  67. package/dist/lib/execution.js.map +1 -1
  68. package/dist/lib/investigate-claims.d.ts +90 -0
  69. package/dist/lib/investigate-claims.d.ts.map +1 -0
  70. package/dist/lib/investigate-claims.js +188 -0
  71. package/dist/lib/investigate-claims.js.map +1 -0
  72. package/dist/lib/investigate-extract.d.ts +35 -0
  73. package/dist/lib/investigate-extract.d.ts.map +1 -0
  74. package/dist/lib/investigate-extract.js +101 -0
  75. package/dist/lib/investigate-extract.js.map +1 -0
  76. package/dist/lib/investigate-planner.d.ts +58 -0
  77. package/dist/lib/investigate-planner.d.ts.map +1 -0
  78. package/dist/lib/investigate-planner.js +141 -0
  79. package/dist/lib/investigate-planner.js.map +1 -0
  80. package/dist/lib/mcp-client.d.ts +7 -0
  81. package/dist/lib/mcp-client.d.ts.map +1 -1
  82. package/dist/lib/mcp-client.js +11 -1
  83. package/dist/lib/mcp-client.js.map +1 -1
  84. package/dist/lib/parse-zoned-instant.d.ts +13 -0
  85. package/dist/lib/parse-zoned-instant.d.ts.map +1 -0
  86. package/dist/lib/parse-zoned-instant.js +17 -0
  87. package/dist/lib/parse-zoned-instant.js.map +1 -0
  88. package/dist/lib/quota-mapping.d.ts +4 -2
  89. package/dist/lib/quota-mapping.d.ts.map +1 -1
  90. package/dist/lib/quota-mapping.js +25 -2
  91. package/dist/lib/quota-mapping.js.map +1 -1
  92. package/dist/lib/redact.d.ts +3 -2
  93. package/dist/lib/redact.d.ts.map +1 -1
  94. package/dist/lib/redact.js +90 -24
  95. package/dist/lib/redact.js.map +1 -1
  96. package/dist/lib/timeout.d.ts +28 -0
  97. package/dist/lib/timeout.d.ts.map +1 -0
  98. package/dist/lib/timeout.js +30 -0
  99. package/dist/lib/timeout.js.map +1 -0
  100. package/dist/lib/url.d.ts +10 -4
  101. package/dist/lib/url.d.ts.map +1 -1
  102. package/dist/lib/url.js +21 -6
  103. package/dist/lib/url.js.map +1 -1
  104. package/dist/providers/arxiv/client.d.ts +4 -1
  105. package/dist/providers/arxiv/client.d.ts.map +1 -1
  106. package/dist/providers/arxiv/client.js +11 -3
  107. package/dist/providers/arxiv/client.js.map +1 -1
  108. package/dist/providers/bocha/adapter.d.ts +43 -0
  109. package/dist/providers/bocha/adapter.d.ts.map +1 -0
  110. package/dist/providers/bocha/adapter.js +197 -0
  111. package/dist/providers/bocha/adapter.js.map +1 -0
  112. package/dist/providers/bocha/client.d.ts +51 -0
  113. package/dist/providers/bocha/client.d.ts.map +1 -0
  114. package/dist/providers/bocha/client.js +104 -0
  115. package/dist/providers/bocha/client.js.map +1 -0
  116. package/dist/providers/bocha/credentials.d.ts +12 -0
  117. package/dist/providers/bocha/credentials.d.ts.map +1 -0
  118. package/dist/providers/bocha/credentials.js +29 -0
  119. package/dist/providers/bocha/credentials.js.map +1 -0
  120. package/dist/providers/bocha/diagnostics.d.ts +17 -0
  121. package/dist/providers/bocha/diagnostics.d.ts.map +1 -0
  122. package/dist/providers/bocha/diagnostics.js +33 -0
  123. package/dist/providers/bocha/diagnostics.js.map +1 -0
  124. package/dist/providers/brave/adapter.d.ts.map +1 -1
  125. package/dist/providers/brave/adapter.js +4 -3
  126. package/dist/providers/brave/adapter.js.map +1 -1
  127. package/dist/providers/brave/client.d.ts +1 -0
  128. package/dist/providers/brave/client.d.ts.map +1 -1
  129. package/dist/providers/brave/client.js +4 -6
  130. package/dist/providers/brave/client.js.map +1 -1
  131. package/dist/providers/brave/credentials.d.ts +2 -0
  132. package/dist/providers/brave/credentials.d.ts.map +1 -1
  133. package/dist/providers/brave/credentials.js +2 -0
  134. package/dist/providers/brave/credentials.js.map +1 -1
  135. package/dist/providers/catalog.d.ts +34 -0
  136. package/dist/providers/catalog.d.ts.map +1 -0
  137. package/dist/providers/catalog.js +57 -0
  138. package/dist/providers/catalog.js.map +1 -0
  139. package/dist/providers/crossref/adapter.js +2 -2
  140. package/dist/providers/crossref/adapter.js.map +1 -1
  141. package/dist/providers/crossref/client.d.ts +4 -1
  142. package/dist/providers/crossref/client.d.ts.map +1 -1
  143. package/dist/providers/crossref/client.js +11 -3
  144. package/dist/providers/crossref/client.js.map +1 -1
  145. package/dist/providers/crossref/diagnostics.d.ts +1 -1
  146. package/dist/providers/crossref/diagnostics.js +1 -1
  147. package/dist/providers/crossref/diagnostics.js.map +1 -1
  148. package/dist/providers/europepmc/adapter.js +2 -2
  149. package/dist/providers/europepmc/adapter.js.map +1 -1
  150. package/dist/providers/europepmc/client.d.ts +4 -1
  151. package/dist/providers/europepmc/client.d.ts.map +1 -1
  152. package/dist/providers/europepmc/client.js +11 -3
  153. package/dist/providers/europepmc/client.js.map +1 -1
  154. package/dist/providers/exa/client.d.ts +1 -0
  155. package/dist/providers/exa/client.d.ts.map +1 -1
  156. package/dist/providers/exa/client.js +3 -2
  157. package/dist/providers/exa/client.js.map +1 -1
  158. package/dist/providers/exa/credentials.d.ts +2 -0
  159. package/dist/providers/exa/credentials.d.ts.map +1 -1
  160. package/dist/providers/exa/credentials.js +2 -0
  161. package/dist/providers/exa/credentials.js.map +1 -1
  162. package/dist/providers/firecrawl/adapter.d.ts.map +1 -1
  163. package/dist/providers/firecrawl/adapter.js +2 -1
  164. package/dist/providers/firecrawl/adapter.js.map +1 -1
  165. package/dist/providers/firecrawl/client.d.ts +1 -0
  166. package/dist/providers/firecrawl/client.d.ts.map +1 -1
  167. package/dist/providers/firecrawl/client.js +3 -2
  168. package/dist/providers/firecrawl/client.js.map +1 -1
  169. package/dist/providers/firecrawl/credentials.d.ts +2 -0
  170. package/dist/providers/firecrawl/credentials.d.ts.map +1 -1
  171. package/dist/providers/firecrawl/credentials.js +2 -0
  172. package/dist/providers/firecrawl/credentials.js.map +1 -1
  173. package/dist/providers/firecrawl/quota.d.ts.map +1 -1
  174. package/dist/providers/firecrawl/quota.js +5 -2
  175. package/dist/providers/firecrawl/quota.js.map +1 -1
  176. package/dist/providers/jina/adapter.d.ts.map +1 -1
  177. package/dist/providers/jina/adapter.js +6 -4
  178. package/dist/providers/jina/adapter.js.map +1 -1
  179. package/dist/providers/jina/client.d.ts +2 -0
  180. package/dist/providers/jina/client.d.ts.map +1 -1
  181. package/dist/providers/jina/client.js +6 -5
  182. package/dist/providers/jina/client.js.map +1 -1
  183. package/dist/providers/jina/credentials.d.ts +2 -0
  184. package/dist/providers/jina/credentials.d.ts.map +1 -1
  185. package/dist/providers/jina/credentials.js +2 -0
  186. package/dist/providers/jina/credentials.js.map +1 -1
  187. package/dist/providers/kagi/adapter.d.ts +44 -0
  188. package/dist/providers/kagi/adapter.d.ts.map +1 -0
  189. package/dist/providers/kagi/adapter.js +188 -0
  190. package/dist/providers/kagi/adapter.js.map +1 -0
  191. package/dist/providers/kagi/client.d.ts +41 -0
  192. package/dist/providers/kagi/client.d.ts.map +1 -0
  193. package/dist/providers/kagi/client.js +100 -0
  194. package/dist/providers/kagi/client.js.map +1 -0
  195. package/dist/providers/kagi/credentials.d.ts +15 -0
  196. package/dist/providers/kagi/credentials.d.ts.map +1 -0
  197. package/dist/providers/kagi/credentials.js +35 -0
  198. package/dist/providers/kagi/credentials.js.map +1 -0
  199. package/dist/providers/kagi/diagnostics.d.ts +17 -0
  200. package/dist/providers/kagi/diagnostics.d.ts.map +1 -0
  201. package/dist/providers/kagi/diagnostics.js +33 -0
  202. package/dist/providers/kagi/diagnostics.js.map +1 -0
  203. package/dist/providers/linkup/client.d.ts +1 -0
  204. package/dist/providers/linkup/client.d.ts.map +1 -1
  205. package/dist/providers/linkup/client.js +3 -2
  206. package/dist/providers/linkup/client.js.map +1 -1
  207. package/dist/providers/linkup/credentials.d.ts +2 -0
  208. package/dist/providers/linkup/credentials.d.ts.map +1 -1
  209. package/dist/providers/linkup/credentials.js +2 -0
  210. package/dist/providers/linkup/credentials.js.map +1 -1
  211. package/dist/providers/minimax/adapter.d.ts.map +1 -1
  212. package/dist/providers/minimax/adapter.js +2 -2
  213. package/dist/providers/minimax/adapter.js.map +1 -1
  214. package/dist/providers/minimax/coding-plan-client.d.ts +1 -0
  215. package/dist/providers/minimax/coding-plan-client.d.ts.map +1 -1
  216. package/dist/providers/minimax/coding-plan-client.js +3 -2
  217. package/dist/providers/minimax/coding-plan-client.js.map +1 -1
  218. package/dist/providers/minimax/quota-client.d.ts +1 -0
  219. package/dist/providers/minimax/quota-client.d.ts.map +1 -1
  220. package/dist/providers/minimax/quota-client.js +3 -2
  221. package/dist/providers/minimax/quota-client.js.map +1 -1
  222. package/dist/providers/openalex/client.d.ts +2 -0
  223. package/dist/providers/openalex/client.d.ts.map +1 -1
  224. package/dist/providers/openalex/client.js +10 -3
  225. package/dist/providers/openalex/client.js.map +1 -1
  226. package/dist/providers/openalex/diagnostics.d.ts +1 -1
  227. package/dist/providers/openalex/diagnostics.js +1 -1
  228. package/dist/providers/openalex/diagnostics.js.map +1 -1
  229. package/dist/providers/parallel/client.d.ts +1 -0
  230. package/dist/providers/parallel/client.d.ts.map +1 -1
  231. package/dist/providers/parallel/client.js +3 -2
  232. package/dist/providers/parallel/client.js.map +1 -1
  233. package/dist/providers/parallel/credentials.d.ts +2 -0
  234. package/dist/providers/parallel/credentials.d.ts.map +1 -1
  235. package/dist/providers/parallel/credentials.js +2 -0
  236. package/dist/providers/parallel/credentials.js.map +1 -1
  237. package/dist/providers/perplexity/client.d.ts +2 -0
  238. package/dist/providers/perplexity/client.d.ts.map +1 -1
  239. package/dist/providers/perplexity/client.js +5 -4
  240. package/dist/providers/perplexity/client.js.map +1 -1
  241. package/dist/providers/perplexity/credentials.d.ts +2 -0
  242. package/dist/providers/perplexity/credentials.d.ts.map +1 -1
  243. package/dist/providers/perplexity/credentials.js +2 -0
  244. package/dist/providers/perplexity/credentials.js.map +1 -1
  245. package/dist/providers/pubmed/client.d.ts +2 -0
  246. package/dist/providers/pubmed/client.d.ts.map +1 -1
  247. package/dist/providers/pubmed/client.js +10 -3
  248. package/dist/providers/pubmed/client.js.map +1 -1
  249. package/dist/providers/registry.d.ts.map +1 -1
  250. package/dist/providers/registry.js +10 -1
  251. package/dist/providers/registry.js.map +1 -1
  252. package/dist/providers/searchapi/adapter.d.ts +54 -0
  253. package/dist/providers/searchapi/adapter.d.ts.map +1 -0
  254. package/dist/providers/searchapi/adapter.js +310 -0
  255. package/dist/providers/searchapi/adapter.js.map +1 -0
  256. package/dist/providers/searchapi/client.d.ts +73 -0
  257. package/dist/providers/searchapi/client.d.ts.map +1 -0
  258. package/dist/providers/searchapi/client.js +196 -0
  259. package/dist/providers/searchapi/client.js.map +1 -0
  260. package/dist/providers/searchapi/credentials.d.ts +46 -0
  261. package/dist/providers/searchapi/credentials.d.ts.map +1 -0
  262. package/dist/providers/searchapi/credentials.js +71 -0
  263. package/dist/providers/searchapi/credentials.js.map +1 -0
  264. package/dist/providers/searchapi/diagnostics.d.ts +48 -0
  265. package/dist/providers/searchapi/diagnostics.d.ts.map +1 -0
  266. package/dist/providers/searchapi/diagnostics.js +70 -0
  267. package/dist/providers/searchapi/diagnostics.js.map +1 -0
  268. package/dist/providers/searchapi/quota.d.ts +60 -0
  269. package/dist/providers/searchapi/quota.d.ts.map +1 -0
  270. package/dist/providers/searchapi/quota.js +125 -0
  271. package/dist/providers/searchapi/quota.js.map +1 -0
  272. package/dist/providers/spider/client.d.ts +2 -0
  273. package/dist/providers/spider/client.d.ts.map +1 -1
  274. package/dist/providers/spider/client.js +16 -6
  275. package/dist/providers/spider/client.js.map +1 -1
  276. package/dist/providers/spider/credentials.d.ts +2 -0
  277. package/dist/providers/spider/credentials.d.ts.map +1 -1
  278. package/dist/providers/spider/credentials.js +2 -0
  279. package/dist/providers/spider/credentials.js.map +1 -1
  280. package/dist/providers/tavily/client.d.ts +1 -0
  281. package/dist/providers/tavily/client.d.ts.map +1 -1
  282. package/dist/providers/tavily/client.js +3 -2
  283. package/dist/providers/tavily/client.js.map +1 -1
  284. package/dist/providers/tavily/credentials.d.ts +2 -0
  285. package/dist/providers/tavily/credentials.d.ts.map +1 -1
  286. package/dist/providers/tavily/credentials.js +2 -0
  287. package/dist/providers/tavily/credentials.js.map +1 -1
  288. package/dist/providers/types.d.ts +31 -2
  289. package/dist/providers/types.d.ts.map +1 -1
  290. package/dist/providers/types.js +3 -0
  291. package/dist/providers/types.js.map +1 -1
  292. package/dist/providers/you/client.d.ts +4 -0
  293. package/dist/providers/you/client.d.ts.map +1 -1
  294. package/dist/providers/you/client.js +4 -5
  295. package/dist/providers/you/client.js.map +1 -1
  296. package/dist/providers/you/credentials.d.ts +2 -0
  297. package/dist/providers/you/credentials.d.ts.map +1 -1
  298. package/dist/providers/you/credentials.js +3 -3
  299. package/dist/providers/you/credentials.js.map +1 -1
  300. package/dist/providers/zai/adapter.d.ts.map +1 -1
  301. package/dist/providers/zai/adapter.js +219 -4
  302. package/dist/providers/zai/adapter.js.map +1 -1
  303. package/dist/providers/zai/credentials.d.ts +2 -0
  304. package/dist/providers/zai/credentials.d.ts.map +1 -1
  305. package/dist/providers/zai/credentials.js +2 -0
  306. package/dist/providers/zai/credentials.js.map +1 -1
  307. package/dist/providers/zai/layout-parsing.d.ts +76 -0
  308. package/dist/providers/zai/layout-parsing.d.ts.map +1 -0
  309. package/dist/providers/zai/layout-parsing.js +151 -0
  310. package/dist/providers/zai/layout-parsing.js.map +1 -0
  311. package/dist/providers/zai/media.d.ts +19 -0
  312. package/dist/providers/zai/media.d.ts.map +1 -1
  313. package/dist/providers/zai/media.js +61 -0
  314. package/dist/providers/zai/media.js.map +1 -1
  315. package/dist/providers/zai/monitor-client.d.ts +1 -0
  316. package/dist/providers/zai/monitor-client.d.ts.map +1 -1
  317. package/dist/providers/zai/monitor-client.js +3 -2
  318. package/dist/providers/zai/monitor-client.js.map +1 -1
  319. package/dist/providers/zai/quota.d.ts +4 -0
  320. package/dist/providers/zai/quota.d.ts.map +1 -1
  321. package/dist/providers/zai/quota.js +16 -1
  322. package/dist/providers/zai/quota.js.map +1 -1
  323. package/package.json +1 -1
  324. package/skills/scoutline/SKILL.md +163 -45
  325. package/skills/scoutline/references/advanced.md +12 -10
@@ -0,0 +1,151 @@
1
+ /**
2
+ * Z.AI layout-parsing REST client (GLM-OCR, ADR-0014 D2 — glm-ocr lane T1).
3
+ *
4
+ * One POST to `<base>/paas/v4/layout_parsing` with the minimal wire
5
+ * surface `{model:"glm-ocr", file}` (no page-range flags, no extra
6
+ * options — the server owns page-count policy). The default base is the
7
+ * PLAIN path `https://api.z.ai/api` (PAYG is account-level); the
8
+ * `/coding/` variant's funded-key behavior is a plan-time check, not a
9
+ * runtime concern here.
10
+ *
11
+ * Boundary rules (ARCHITECTURE.md §2):
12
+ * - May import normalized errors. Imports no transport beyond the
13
+ * injected fetch, no capability contract, no command presentation.
14
+ * - Raw response bodies NEVER enter public errors; messages are
15
+ * stable sanitized labels.
16
+ *
17
+ * Decode contract (fail closed): `md_results` must be a nonempty
18
+ * string; `id`/`created`/`model` are tolerated and everything else is
19
+ * ignored at the boundary. The two bbox spaces (pixel coordinates
20
+ * embedded in `md_results` annotations vs normalized `layout_details.
21
+ * bbox_2d`) never cross this module — `layout_details` is discarded
22
+ * here, so no internal type ever conflates them.
23
+ *
24
+ * Error mapping: any envelope carrying `error.code === 1113` is the
25
+ * exhaustion seam — {@link isInsufficientBalance} detects it in every
26
+ * wrapper shape the wire can produce and `parseLayout` surfaces it as
27
+ * a terminal `QuotaError` the caller's fallback seam consumes. Every
28
+ * other failure maps through the existing zai error classes
29
+ * (`AuthError` 401/403, `ApiError` with status, `NetworkError`,
30
+ * `TimeoutError`); no bespoke classes.
31
+ *
32
+ * This transport performs ONE logical attempt; shared execution owns
33
+ * retry policy, and the glm-ocr arm runs adapter-internal (no shared
34
+ * retry on the fallback seam — ADR-0014 §1).
35
+ */
36
+ import { ApiError, AuthError, NetworkError, QuotaError, TimeoutError, } from "../../lib/errors.js";
37
+ import { clampTimeoutMs } from "../../lib/timeout.js";
38
+ import { getGlobalFetch } from "../types.js";
39
+ /** Plain (non-coding) base: PAYG billing is account-level (D2). */
40
+ const DEFAULT_LAYOUT_PARSING_BASE = "https://api.z.ai/api";
41
+ const LAYOUT_PARSING_PATH = "/paas/v4/layout_parsing";
42
+ /** Default request timeout, matching the monitor client. */
43
+ const DEFAULT_LAYOUT_PARSING_TIMEOUT_MS = 30000;
44
+ /** The only model this client ever sends — the engine, not an option. */
45
+ const LAYOUT_PARSING_MODEL = "glm-ocr";
46
+ /**
47
+ * Whether a decoded payload carries the Z.AI exhaustion code `1113` in
48
+ * any wrapper shape the wire can produce. The code may be numeric or
49
+ * string, at the top level or under `data` — both were observed in
50
+ * live probes (2026-09-10/20, plan key). Message-only shapes are
51
+ * deliberately NOT matched: the code is authoritative.
52
+ */
53
+ export function isInsufficientBalance(payload) {
54
+ return codeAtPath(payload, 1113) || codeAtPath(payload?.data, 1113);
55
+ }
56
+ function codeAtPath(value, want) {
57
+ const code = value?.error?.code;
58
+ return code === want || code === String(want);
59
+ }
60
+ /**
61
+ * POST one layout-parsing request and return the normalized text
62
+ * (`md_results`). One logical attempt: no internal retry, no cache —
63
+ * the adapter caller owns both (ADR-0014 D4).
64
+ */
65
+ export async function parseLayout(request, timers, deps = {}) {
66
+ const effectiveDeps = {
67
+ ...deps,
68
+ ...(typeof request.fetch === "function"
69
+ ? { fetch: request.fetch }
70
+ : {}),
71
+ };
72
+ const f = effectiveDeps.fetch ?? getGlobalFetch();
73
+ const env = effectiveDeps.env ?? process.env;
74
+ const base = request.baseUrl ?? DEFAULT_LAYOUT_PARSING_BASE;
75
+ const url = `${base}${LAYOUT_PARSING_PATH}`;
76
+ // Same timeout resolution as the rest of the Z.AI transports.
77
+ const timeoutMs = resolveLayoutTimeoutMs(env);
78
+ const controller = new AbortController();
79
+ const timerId = timers.setTimeout(() => controller.abort(), timeoutMs);
80
+ // G1 (PR #265): the timeout covers fetch AND body decode — the timer
81
+ // clears exactly once in a finally on every path, so a stalled body or
82
+ // JSON decoder aborts within the documented bound (abort during decode
83
+ // maps to TimeoutError; malformed JSON stays ApiError).
84
+ let payload;
85
+ let responseStatus;
86
+ try {
87
+ const response = await f(url, {
88
+ method: "POST",
89
+ headers: {
90
+ Authorization: `Bearer ${request.apiKey}`,
91
+ "Content-Type": "application/json",
92
+ },
93
+ body: JSON.stringify({ model: LAYOUT_PARSING_MODEL, file: request.file }),
94
+ signal: controller.signal,
95
+ });
96
+ // Wave-2 F1: the timer may have aborted WHILE fetch was completing;
97
+ // never process a response from a cancelled request.
98
+ if (controller.signal.aborted) {
99
+ throw new TimeoutError(timeoutMs);
100
+ }
101
+ responseStatus = response.status;
102
+ try {
103
+ payload = await response.json();
104
+ }
105
+ catch (error) {
106
+ if (error instanceof Error && error.name === "AbortError")
107
+ throw error;
108
+ // Fail closed: a non-JSON body is a malformed result.
109
+ throw new ApiError("Z.AI layout-parsing returned a malformed result", 500);
110
+ }
111
+ }
112
+ catch (error) {
113
+ throw normalizeTransportError(error, timeoutMs);
114
+ }
115
+ finally {
116
+ timers.clearTimeout(timerId);
117
+ }
118
+ if (isInsufficientBalance(payload)) {
119
+ throw new QuotaError("Z.AI layout-parsing quota has been exhausted", "glm-ocr is PAYG-only; recharge your balance or rely on the fallback");
120
+ }
121
+ if (responseStatus >= 400) {
122
+ if (responseStatus === 401 || responseStatus === 403) {
123
+ throw new AuthError("Z.AI layout-parsing authentication failed");
124
+ }
125
+ throw new ApiError("Z.AI layout-parsing request failed", responseStatus);
126
+ }
127
+ const mdResults = payload.md_results;
128
+ if (typeof mdResults !== "string" || mdResults.trim().length === 0) {
129
+ // `md_results` string required — fail closed otherwise (D2).
130
+ throw new ApiError("Z.AI layout-parsing returned an empty or malformed result", 500);
131
+ }
132
+ return mdResults;
133
+ }
134
+ function resolveLayoutTimeoutMs(env) {
135
+ // Same resolution as the monitor client: Z_AI_TIMEOUT ms through the
136
+ // shared clamp (invalid/negative values fall to the 30s default).
137
+ return clampTimeoutMs(parseInt(env.Z_AI_TIMEOUT || String(DEFAULT_LAYOUT_PARSING_TIMEOUT_MS), 10), DEFAULT_LAYOUT_PARSING_TIMEOUT_MS);
138
+ }
139
+ function normalizeTransportError(err, timeoutMs) {
140
+ if (err instanceof AuthError ||
141
+ err instanceof ApiError ||
142
+ err instanceof QuotaError ||
143
+ err instanceof TimeoutError) {
144
+ return err;
145
+ }
146
+ if (err instanceof Error && err.name === "AbortError") {
147
+ return new TimeoutError(timeoutMs);
148
+ }
149
+ return new NetworkError("Z.AI layout-parsing network error");
150
+ }
151
+ //# sourceMappingURL=layout-parsing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-parsing.js","sourceRoot":"","sources":["../../../src/providers/zai/layout-parsing.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,10 @@
21
21
  * - Non-HTTP URL-like strings and unsupported extensions reject with
22
22
  * `VALIDATION_ERROR` and Provider-specific supported-format help.
23
23
  */
24
+ /** glm-ocr image ceiling per Z.AI's own docs (10MB, not 5 MiB). */
25
+ export declare const ZAI_OCR_MAX_IMAGE_BYTES: number;
26
+ /** glm-ocr PDF ceiling per Z.AI's own docs (50MB). */
27
+ export declare const ZAI_OCR_MAX_PDF_BYTES: number;
24
28
  /**
25
29
  * Resolve a Z.AI image source into the value the Z.AI MCP consumes. For a
26
30
  * local file, validates existence, size (≤ 5 MiB), and extension
@@ -35,6 +39,21 @@ export declare function resolveImageSource(source: string): string;
35
39
  * the URL unchanged.
36
40
  */
37
41
  export declare function resolveVideoSource(source: string): string;
42
+ /**
43
+ * G2 (PR #265): whether an OCR-accepted source is ALSO acceptable to
44
+ * the legacy vision MCP fallback arm (images <=5 MiB; no PDFs). URL
45
+ * sources are eligible (the MCP fetches server-side under its own
46
+ * limits); local files are checked against the vision arm's ceiling.
47
+ */
48
+ export declare function isOcrSourceFallbackEligible(source: string): boolean;
49
+ /**
50
+ * Resolve a source for the glm-ocr layout-parsing arm of extract-text
51
+ * (glm-ocr lane D3): images ≤10MB AND PDFs ≤50MB are accepted — the
52
+ * wider OCR-endpoint limits, not the vision MCP's 5 MiB image ceiling.
53
+ * URLs pass through verbatim (the REST endpoint fetches server-side);
54
+ * local files validate existence, size, and extension.
55
+ */
56
+ export declare function resolveOcrSource(source: string): string;
38
57
  /**
39
58
  * Fetch an HTTP(S) image URL to a validated temp file path (≤ 5 MiB,
40
59
  * JPG/JPEG/PNG). Used by the vision Adapter fallback when the Provider's
@@ -1 +1 @@
1
- {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/providers/zai/media.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAqFH;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAezD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAezD;AA2HD;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEnE;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEnE"}
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/providers/zai/media.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAqCH,mEAAmE;AACnE,eAAO,MAAM,uBAAuB,QAAmB,CAAC;AACxD,sDAAsD;AACtD,eAAO,MAAM,qBAAqB,QAAmB,CAAC;AA8DtD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAezD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAezD;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAgBnE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAyBvD;AA2HD;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEnE;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEnE"}
@@ -35,6 +35,19 @@ const ZAI_MAX_VIDEO_BYTES = 8 * 1024 * 1024; // 8 MiB
35
35
  const ZAI_IMAGE_FORMAT_HELP = "Supported Z.AI image formats: JPG, JPEG, PNG (max 5 MiB)";
36
36
  const ZAI_VIDEO_FORMAT_HELP = "Supported Z.AI video formats: MP4, MOV, M4V, AVI, WebM, WMV (max 8 MiB)";
37
37
  // ---------------------------------------------------------------------------
38
+ // GLM-OCR layout-parsing media rules (ADR-0014 §3 — glm-ocr lane).
39
+ // The layout_parsing endpoint accepts images ≤10MB and PDFs ≤50MB —
40
+ // wider than the vision MCP's 5 MiB image ceiling, and PDF is a
41
+ // capability GAIN on the extract-text surface. These limits apply ONLY
42
+ // to the glm-ocr arm; every other operation keeps the sets above.
43
+ // ---------------------------------------------------------------------------
44
+ const ZAI_OCR_DOCUMENT_EXTENSIONS = [".pdf"];
45
+ /** glm-ocr image ceiling per Z.AI's own docs (10MB, not 5 MiB). */
46
+ export const ZAI_OCR_MAX_IMAGE_BYTES = 10 * 1024 * 1024;
47
+ /** glm-ocr PDF ceiling per Z.AI's own docs (50MB). */
48
+ export const ZAI_OCR_MAX_PDF_BYTES = 50 * 1024 * 1024;
49
+ const ZAI_OCR_IMAGE_FORMAT_HELP = "Supported Z.AI extract-text formats: JPG, JPEG, PNG (max 10 MB), PDF (max 50 MB)";
50
+ // ---------------------------------------------------------------------------
38
51
  // Source classification
39
52
  // ---------------------------------------------------------------------------
40
53
  /**
@@ -105,6 +118,54 @@ export function resolveVideoSource(source) {
105
118
  }
106
119
  return validateLocalMedia(source, ZAI_VIDEO_EXTENSIONS, ZAI_MAX_VIDEO_BYTES, ZAI_VIDEO_FORMAT_HELP);
107
120
  }
121
+ /**
122
+ * G2 (PR #265): whether an OCR-accepted source is ALSO acceptable to
123
+ * the legacy vision MCP fallback arm (images <=5 MiB; no PDFs). URL
124
+ * sources are eligible (the MCP fetches server-side under its own
125
+ * limits); local files are checked against the vision arm's ceiling.
126
+ */
127
+ export function isOcrSourceFallbackEligible(source) {
128
+ const kind = classifySource(source);
129
+ if (kind === "http")
130
+ return true;
131
+ if (kind === "unsupported-url")
132
+ return false;
133
+ const ext = path.extname(path.resolve(source)).toLowerCase();
134
+ if (ext === ".pdf")
135
+ return false;
136
+ try {
137
+ return fs.statSync(path.resolve(source)).size <= ZAI_MAX_IMAGE_BYTES;
138
+ }
139
+ catch (error) {
140
+ // A missing file is simply ineligible; anything else (permissions,
141
+ // I/O failure) is unexpected and must not read as "eligible".
142
+ if (error instanceof Error && error.code === "ENOENT") {
143
+ return false;
144
+ }
145
+ throw error;
146
+ }
147
+ }
148
+ /**
149
+ * Resolve a source for the glm-ocr layout-parsing arm of extract-text
150
+ * (glm-ocr lane D3): images ≤10MB AND PDFs ≤50MB are accepted — the
151
+ * wider OCR-endpoint limits, not the vision MCP's 5 MiB image ceiling.
152
+ * URLs pass through verbatim (the REST endpoint fetches server-side);
153
+ * local files validate existence, size, and extension.
154
+ */
155
+ export function resolveOcrSource(source) {
156
+ const kind = classifySource(source);
157
+ if (kind === "http")
158
+ return source;
159
+ if (kind === "unsupported-url") {
160
+ throw new ValidationError(`Unsupported source scheme for Z.AI extract-text`, "Use an HTTP(S) URL or a local file path");
161
+ }
162
+ const resolved = path.resolve(source);
163
+ const ext = path.extname(resolved).toLowerCase();
164
+ if (ext === ".pdf") {
165
+ return validateLocalMedia(source, ZAI_OCR_DOCUMENT_EXTENSIONS, ZAI_OCR_MAX_PDF_BYTES, ZAI_OCR_IMAGE_FORMAT_HELP);
166
+ }
167
+ return validateLocalMedia(source, ZAI_IMAGE_EXTENSIONS, ZAI_OCR_MAX_IMAGE_BYTES, ZAI_OCR_IMAGE_FORMAT_HELP);
168
+ }
108
169
  // ---------------------------------------------------------------------------
109
170
  // URL -> local temp file fallback (Issue E).
110
171
  //
@@ -1 +1 @@
1
- {"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/providers/zai/media.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/providers/zai/media.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,7 @@ export interface ZaiRawQuotaLimit {
38
38
  level?: string;
39
39
  limits?: unknown[];
40
40
  }
41
+ export declare function resolveTimeoutMs(env: NodeJS.ProcessEnv): number;
41
42
  /**
42
43
  * Perform one authenticated GET against the monitor API with the raw-key
43
44
  * then Bearer auth fallback. Returns the unwrapped `data` payload (or the
@@ -1 +1 @@
1
- {"version":3,"file":"monitor-client.d.ts","sourceRoot":"","sources":["../../../src/providers/zai/monitor-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAMtD,2DAA2D;AAC3D,MAAM,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAEjD,oDAAoD;AACpD,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;AAE3E,yCAAyC;AACzC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC;IACxC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,YAAY,CAAC;IAC5C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAClC;AAED,8DAA8D;AAC9D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;CACpB;AAsCD;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAC1C,IAAI,GAAE,cAAmB,GACxB,OAAO,CAAC,OAAO,CAAC,CAgDlB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,cAAmB,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAO3B"}
1
+ {"version":3,"file":"monitor-client.d.ts","sourceRoot":"","sources":["../../../src/providers/zai/monitor-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAOtD,2DAA2D;AAC3D,MAAM,MAAM,eAAe,GAAG,kBAAkB,CAAC;AAEjD,oDAAoD;AACpD,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;AAE3E,yCAAyC;AACzC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC;IACxC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,YAAY,CAAC;IAC5C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAClC;AAED,8DAA8D;AAC9D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;CACpB;AAMD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAG/D;AA6BD;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAC1C,IAAI,GAAE,cAAmB,GACxB,OAAO,CAAC,OAAO,CAAC,CAgDlB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,cAAmB,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAO3B"}
@@ -23,14 +23,15 @@
23
23
  */
24
24
  import { ApiError, AuthError, NetworkError, TimeoutError } from "../../lib/errors.js";
25
25
  import { getGlobalFetch } from "../types.js";
26
+ import { clampTimeoutMs } from "../../lib/timeout.js";
26
27
  const DEFAULT_MONITOR_BASE = "https://api.z.ai";
27
28
  const DEFAULT_TIMEOUT_MS = 30000;
28
29
  function resolveBase(env) {
29
30
  return env.ZAI_MONITOR_BASE_URL || DEFAULT_MONITOR_BASE;
30
31
  }
31
- function resolveTimeoutMs(env) {
32
+ export function resolveTimeoutMs(env) {
32
33
  const raw = parseInt(env.Z_AI_TIMEOUT || String(DEFAULT_TIMEOUT_MS), 10);
33
- return Number.isFinite(raw) && raw > 0 ? raw : DEFAULT_TIMEOUT_MS;
34
+ return clampTimeoutMs(raw, DEFAULT_TIMEOUT_MS);
34
35
  }
35
36
  function mapStatusError(status) {
36
37
  if (status === 401 || status === 403) {
@@ -1 +1 @@
1
- {"version":3,"file":"monitor-client.js","sourceRoot":"","sources":["../../../src/providers/zai/monitor-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"monitor-client.js","sourceRoot":"","sources":["../../../src/providers/zai/monitor-client.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,10 @@
22
22
  * - `TOKENS_LIMIT` -> `tokens` category; convert the Provider's used
23
23
  * percentage to a remaining percentage.
24
24
  * - Categories are named `requests` then `tokens` when present.
25
+ * - When a payload carries MULTIPLE entries per category (#204,
26
+ * never observed live), `requests` picks the first SELF-CONSISTENT
27
+ * TIME_LIMIT, falling back to the first entry when none is; `tokens`
28
+ * takes the first TOKENS_LIMIT.
25
29
  *
26
30
  * Boundary rules (ARCHITECTURE.md §2):
27
31
  * - May import the quota capability contract, Provider-local monitor
@@ -1 +1 @@
1
- {"version":3,"file":"quota.d.ts","sourceRoot":"","sources":["../../../src/providers/zai/quota.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EAEhB,MAAM,6BAA6B,CAAC;AASrC,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,qBAAqB,CAAC;AAmI7B;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,oBAAoB,CAyEpE;AAmBD;;;;GAIG;AACH,MAAM,WAAW,yBAA0B,SAAQ,cAAc;IAC/D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;CACjC;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,GAAG,eAAe,CAgB5F"}
1
+ {"version":3,"file":"quota.d.ts","sourceRoot":"","sources":["../../../src/providers/zai/quota.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EAEhB,MAAM,6BAA6B,CAAC;AASrC,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,qBAAqB,CAAC;AAmI7B;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,oBAAoB,CAoFpE;AAmBD;;;;GAIG;AACH,MAAM,WAAW,yBAA0B,SAAQ,cAAc;IAC/D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;CACjC;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,GAAG,eAAe,CAgB5F"}
@@ -22,6 +22,10 @@
22
22
  * - `TOKENS_LIMIT` -> `tokens` category; convert the Provider's used
23
23
  * percentage to a remaining percentage.
24
24
  * - Categories are named `requests` then `tokens` when present.
25
+ * - When a payload carries MULTIPLE entries per category (#204,
26
+ * never observed live), `requests` picks the first SELF-CONSISTENT
27
+ * TIME_LIMIT, falling back to the first entry when none is; `tokens`
28
+ * takes the first TOKENS_LIMIT.
25
29
  *
26
30
  * Boundary rules (ARCHITECTURE.md §2):
27
31
  * - May import the quota capability contract, Provider-local monitor
@@ -139,7 +143,15 @@ export function normalizeZaiQuota(raw) {
139
143
  const data = raw;
140
144
  const categories = [];
141
145
  const limits = Array.isArray(data.limits) ? data.limits : [];
142
- const timeLimit = limits.find(isTimeLimit);
146
+ const timeCandidates = limits.filter(isTimeLimit);
147
+ // #204 multi-entry rule: pick the FIRST SELF-CONSISTENT entry — a
148
+ // corrupt leading entry must not poison the category when a healthy
149
+ // sibling exists. Entries are NOT summed/merged (windows of different
150
+ // scopes are not additive); first-consistent is deterministic and
151
+ // fabricates nothing. When NO entry is consistent, fall back to the
152
+ // FIRST entry, preserving the corrupt→empty-window behavior above.
153
+ // Single-entry payloads (the only observed wire shape) are unchanged.
154
+ const timeLimit = timeCandidates.find(isConsistentTimeLimit) ?? timeCandidates[0];
143
155
  if (timeLimit) {
144
156
  const durationSeconds = typeof timeLimit.unit === "number" && Number.isFinite(timeLimit.unit)
145
157
  ? timeLimit.unit * 3600
@@ -181,6 +193,9 @@ export function normalizeZaiQuota(raw) {
181
193
  ...(toolUsage !== undefined ? { toolUsage } : {}),
182
194
  });
183
195
  }
196
+ // #204 multi-entry rule: first entry wins — tokens entries have no
197
+ // consistency guard to rank by, so there is nothing to prefer beyond
198
+ // position. (Single-entry payloads are the only observed wire shape.)
184
199
  const tokensLimit = limits.find(isTokensLimit);
185
200
  if (tokensLimit) {
186
201
  const usedPercent = readNumber(tokensLimit.percentage);
@@ -1 +1 @@
1
- {"version":3,"file":"quota.js","sourceRoot":"","sources":["../../../src/providers/zai/quota.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quota.js","sourceRoot":"","sources":["../../../src/providers/zai/quota.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "scoutline",
3
- "version": "0.22.0",
3
+ "version": "0.24.0",
4
4
  "description": "Multimodal source investigation CLI for web, repositories, and visual media.",
5
5
  "type": "module",
6
6
  "bin": {