scoutline 0.21.2 → 0.22.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 (123) hide show
  1. package/README.md +46 -1
  2. package/dist/capabilities/quota.d.ts +34 -8
  3. package/dist/capabilities/quota.d.ts.map +1 -1
  4. package/dist/capabilities/quota.js +8 -6
  5. package/dist/capabilities/quota.js.map +1 -1
  6. package/dist/capabilities/science.d.ts +15 -0
  7. package/dist/capabilities/science.d.ts.map +1 -1
  8. package/dist/capabilities/science.js +79 -0
  9. package/dist/capabilities/science.js.map +1 -1
  10. package/dist/commands/quota.d.ts.map +1 -1
  11. package/dist/commands/quota.js +3 -0
  12. package/dist/commands/quota.js.map +1 -1
  13. package/dist/commands/science.d.ts +13 -0
  14. package/dist/commands/science.d.ts.map +1 -1
  15. package/dist/commands/science.js +243 -48
  16. package/dist/commands/science.js.map +1 -1
  17. package/dist/index.d.ts +12 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +78 -38
  20. package/dist/index.js.map +1 -1
  21. package/dist/lib/artifacts.d.ts.map +1 -1
  22. package/dist/lib/artifacts.js +4 -1
  23. package/dist/lib/artifacts.js.map +1 -1
  24. package/dist/lib/async-job-state.d.ts +17 -0
  25. package/dist/lib/async-job-state.d.ts.map +1 -1
  26. package/dist/lib/async-job-state.js +29 -0
  27. package/dist/lib/async-job-state.js.map +1 -1
  28. package/dist/lib/batch-manifest.d.ts +9 -0
  29. package/dist/lib/batch-manifest.d.ts.map +1 -1
  30. package/dist/lib/batch-manifest.js +8 -0
  31. package/dist/lib/batch-manifest.js.map +1 -1
  32. package/dist/lib/cache.d.ts +89 -10
  33. package/dist/lib/cache.d.ts.map +1 -1
  34. package/dist/lib/cache.js +190 -42
  35. package/dist/lib/cache.js.map +1 -1
  36. package/dist/lib/errors.d.ts +29 -3
  37. package/dist/lib/errors.d.ts.map +1 -1
  38. package/dist/lib/errors.js +29 -5
  39. package/dist/lib/errors.js.map +1 -1
  40. package/dist/lib/execution.d.ts +14 -6
  41. package/dist/lib/execution.d.ts.map +1 -1
  42. package/dist/lib/execution.js +50 -6
  43. package/dist/lib/execution.js.map +1 -1
  44. package/dist/lib/mcp-client.d.ts.map +1 -1
  45. package/dist/lib/mcp-client.js +9 -6
  46. package/dist/lib/mcp-client.js.map +1 -1
  47. package/dist/lib/redact.d.ts +3 -0
  48. package/dist/lib/redact.d.ts.map +1 -1
  49. package/dist/lib/redact.js +29 -4
  50. package/dist/lib/redact.js.map +1 -1
  51. package/dist/lib/retry-after.d.ts +54 -0
  52. package/dist/lib/retry-after.d.ts.map +1 -0
  53. package/dist/lib/retry-after.js +124 -0
  54. package/dist/lib/retry-after.js.map +1 -0
  55. package/dist/lib/tool-cache.d.ts +6 -4
  56. package/dist/lib/tool-cache.d.ts.map +1 -1
  57. package/dist/lib/tool-cache.js +9 -7
  58. package/dist/lib/tool-cache.js.map +1 -1
  59. package/dist/lib/tty.d.ts.map +1 -1
  60. package/dist/lib/tty.js +10 -0
  61. package/dist/lib/tty.js.map +1 -1
  62. package/dist/providers/arxiv/client.d.ts.map +1 -1
  63. package/dist/providers/arxiv/client.js +5 -4
  64. package/dist/providers/arxiv/client.js.map +1 -1
  65. package/dist/providers/brave/adapter.d.ts.map +1 -1
  66. package/dist/providers/brave/adapter.js +9 -3
  67. package/dist/providers/brave/adapter.js.map +1 -1
  68. package/dist/providers/brave/client.d.ts.map +1 -1
  69. package/dist/providers/brave/client.js +59 -7
  70. package/dist/providers/brave/client.js.map +1 -1
  71. package/dist/providers/crossref/client.d.ts.map +1 -1
  72. package/dist/providers/crossref/client.js +5 -4
  73. package/dist/providers/crossref/client.js.map +1 -1
  74. package/dist/providers/europepmc/client.d.ts.map +1 -1
  75. package/dist/providers/europepmc/client.js +5 -4
  76. package/dist/providers/europepmc/client.js.map +1 -1
  77. package/dist/providers/exa/adapter.d.ts +7 -0
  78. package/dist/providers/exa/adapter.d.ts.map +1 -1
  79. package/dist/providers/exa/adapter.js +11 -3
  80. package/dist/providers/exa/adapter.js.map +1 -1
  81. package/dist/providers/firecrawl/adapter.d.ts.map +1 -1
  82. package/dist/providers/firecrawl/adapter.js +12 -4
  83. package/dist/providers/firecrawl/adapter.js.map +1 -1
  84. package/dist/providers/firecrawl/client.d.ts.map +1 -1
  85. package/dist/providers/firecrawl/client.js +7 -0
  86. package/dist/providers/firecrawl/client.js.map +1 -1
  87. package/dist/providers/jina/adapter.d.ts.map +1 -1
  88. package/dist/providers/jina/adapter.js +10 -3
  89. package/dist/providers/jina/adapter.js.map +1 -1
  90. package/dist/providers/jina/client.d.ts.map +1 -1
  91. package/dist/providers/jina/client.js +23 -10
  92. package/dist/providers/jina/client.js.map +1 -1
  93. package/dist/providers/linkup/adapter.d.ts.map +1 -1
  94. package/dist/providers/linkup/adapter.js +13 -12
  95. package/dist/providers/linkup/adapter.js.map +1 -1
  96. package/dist/providers/openalex/adapter.d.ts.map +1 -1
  97. package/dist/providers/openalex/adapter.js +2 -0
  98. package/dist/providers/openalex/adapter.js.map +1 -1
  99. package/dist/providers/openalex/client.d.ts.map +1 -1
  100. package/dist/providers/openalex/client.js +6 -5
  101. package/dist/providers/openalex/client.js.map +1 -1
  102. package/dist/providers/parallel/adapter.d.ts.map +1 -1
  103. package/dist/providers/parallel/adapter.js +17 -6
  104. package/dist/providers/parallel/adapter.js.map +1 -1
  105. package/dist/providers/pubmed/client.d.ts.map +1 -1
  106. package/dist/providers/pubmed/client.js +5 -4
  107. package/dist/providers/pubmed/client.js.map +1 -1
  108. package/dist/providers/registry.d.ts +12 -0
  109. package/dist/providers/registry.d.ts.map +1 -1
  110. package/dist/providers/registry.js +12 -0
  111. package/dist/providers/registry.js.map +1 -1
  112. package/dist/providers/tavily/adapter.d.ts.map +1 -1
  113. package/dist/providers/tavily/adapter.js +12 -5
  114. package/dist/providers/tavily/adapter.js.map +1 -1
  115. package/dist/providers/tavily/client.d.ts.map +1 -1
  116. package/dist/providers/tavily/client.js +8 -0
  117. package/dist/providers/tavily/client.js.map +1 -1
  118. package/dist/providers/zai/quota.d.ts +25 -5
  119. package/dist/providers/zai/quota.d.ts.map +1 -1
  120. package/dist/providers/zai/quota.js +122 -29
  121. package/dist/providers/zai/quota.js.map +1 -1
  122. package/package.json +3 -3
  123. package/skills/scoutline/SKILL.md +93 -82
package/README.md CHANGED
@@ -323,6 +323,48 @@ rewrite the whole log under a write lock. Measured appends stay well under
323
323
  100ms through ~20k entries; segmented-log/compaction is the named future
324
324
  policy for larger journals.
325
325
 
326
+ ### Process Isolation (`--isolated`)
327
+
328
+ `--isolated` runs in process-isolated state: unique artifacts namespace
329
+ and per-process caches. Several `scoutline` processes sharing one home
330
+ directory never read each other's caches or artifact stores — built for
331
+ high-throughput headless concurrency. Pass the flag — `SCOUTLINE_ISOLATED=1`
332
+ in the environment engages only part of the contract: the artifact
333
+ store, the MCP client's tool and response caches, and `batch`'s per-op
334
+ refusals honor the variable,
335
+ but the capability response caches (main's factory) and `watch`/
336
+ `research`/`crawl` do not. Prefer `--isolated`.
337
+
338
+ | Refused under `--isolated` | Why |
339
+ | --- | --- |
340
+ | `watch` (all subcommands) | Persistent snapshot ring + never-pruned change log |
341
+ | `research` | Async-job resume state under `SCOUTLINE_CACHE_DIR/research` |
342
+ | `crawl` | Async-job resume state under `SCOUTLINE_CACHE_DIR/crawl` |
343
+ | `batch` ops whose `command` is `research`/`crawl` | Rejected per op, naming the index |
344
+
345
+ `map` is allowed (synchronous, stateless). `research` and `crawl` are
346
+ credit-intensive and resume an interrupted job instead of paying for a
347
+ second one; that resume works by finding the job's state file under the
348
+ shared cache root — exactly the shared state an isolated run must not
349
+ touch. Bringing it under the per-pid contract would hide it from the next
350
+ run and silently break the double-charge guard, so the rejections name the
351
+ store and the remedy (`drop --isolated to keep resume state`) instead of
352
+ running with silently broken state.
353
+
354
+ What isolates: the response cache (`<cache root>/cache/isolated/<pid>/`),
355
+ the tool-discovery cache (`<cache root>/tools/isolated/<pid>/`), and the
356
+ `--save` artifact store (`<artifacts root>/isolated/<pid>/`). Isolated
357
+ subtrees stay inside their parent so the usual LRU/TTL eviction bounds
358
+ them while the process lives. A cache injected through the embedding API
359
+ still wins over the isolated default, and shared-state persistence (usage
360
+ ledger, quota snapshots, background quota refresh) is skipped entirely.
361
+
362
+ `cache stats`/`clear`/`prune` are non-isolated views — they skip the
363
+ `isolated/` subdirectories, so a cleanup in one process never deletes
364
+ another's in-flight entries. See
365
+ [docs/configuration.md](https://github.com/vikasagarwal101/scoutline/blob/main/docs/configuration.md#process-isolation---isolated)
366
+ for the full contract.
367
+
326
368
  ## Capability Matrix
327
369
 
328
370
  The matrix below is generated from the production provider registry
@@ -557,7 +599,8 @@ Quota output is a schema-version-1 `QuotaDashboard`:
557
599
  "provider": "zai",
558
600
  "status": "ok",
559
601
  "categories": [
560
- { "name": "requests", "unit": "requests", "current": { "remainingPercent": 87.5 } },
602
+ { "name": "requests", "unit": "requests", "current": { "remainingPercent": 87.5 },
603
+ "toolUsage": [ { "tool": "search-prime", "usage": 500 }, { "tool": "web-reader", "usage": 250 } ] },
561
604
  { "name": "tokens", "unit": "tokens", "current": { "remainingPercent": 64.2 } }
562
605
  ]
563
606
  }
@@ -565,6 +608,8 @@ Quota output is a schema-version-1 `QuotaDashboard`:
565
608
  }
566
609
  ```
567
610
 
611
+ A category may also carry an additive optional `toolUsage` array — one `{ tool, usage }` row per tool the Provider attributes consumption to (Z.AI's `TIME_LIMIT.usageDetails`) — shown as per-tool rows in the tty dashboard and carried verbatim in `json`/`data`; it is optional under schema version 1, so there is no schema-version bump, and a Provider that publishes no breakdown simply omits the field.
612
+
568
613
  Doctor output is a schema-version-2 `DiagnosticsReport` listing every built-in
569
614
  Provider with its configured state, declared capabilities, probe status, and a
570
615
  one-line cache summary under the `cache` field. Every provider row also carries
@@ -23,10 +23,11 @@
23
23
  * are omitted rather than fabricated. Additive under QuotaDashboard
24
24
  * schema v1.
25
25
  * - A Provider whose counts are invalid but which publishes an exact
26
- * `remaining` (e.g. Z.AI's cumulative `currentValue` past the
27
- * window cap — GitHub #109) has `remaining` published verbatim next
28
- * to any explicit remaining percentage; counts are omitted rather
29
- * than derived from contradicting fields.
26
+ * `remaining` (historically Z.AI's cumulative `currentValue` past
27
+ * the window cap — GitHub #109; the zai adapter now rejects such
28
+ * entries whole — #191) has `remaining` published verbatim next to
29
+ * any explicit remaining percentage; counts are omitted rather than
30
+ * derived from contradicting fields.
30
31
  * - Invalid optional counts are omitted together (not set to zero).
31
32
  * - A category that has neither a valid percentage, nor valid counts,
32
33
  * nor an explicit remaining is rejected with `QUOTA_ERROR`.
@@ -56,6 +57,28 @@ export interface QuotaCategory {
56
57
  unit: "requests" | "tokens" | "credits" | "USD";
57
58
  current: QuotaWindow;
58
59
  weekly?: QuotaWindow;
60
+ /**
61
+ * Per-tool consumption inside this category (GitHub #191). Additive
62
+ * OPTIONAL field under schema version 1 — the PB-T5 precedent: a
63
+ * Provider that publishes a breakdown (Z.AI's `usageDetails`, whose
64
+ * `modelCode` names the tool and `usage` counts the calls) populates
65
+ * it; a Provider with none simply omits the field, so every
66
+ * pre-#191 consumer (TTY renderer, snapshot round-trip, envelope)
67
+ * keeps working unchanged and no schema-version bump is needed.
68
+ *
69
+ * Entries are published in Provider order with non-positive and
70
+ * unnamed entries dropped, so a present array is always observably
71
+ * non-empty — an absent field and an empty-breakdown provider are
72
+ * deliberately indistinguishable (neither says "these tools used
73
+ * nothing"). The rows are informational window detail: they are
74
+ * carried independently of whether `current` is populated, so a
75
+ * category whose window was rejected as inconsistent still reports
76
+ * which tools consumed the budget.
77
+ */
78
+ toolUsage?: readonly {
79
+ readonly tool: string;
80
+ readonly usage: number;
81
+ }[];
59
82
  }
60
83
  export interface ProviderQuotaSuccess {
61
84
  provider: ProviderId;
@@ -177,10 +200,13 @@ export interface QuotaWindowInputs {
177
200
  * (GitHub #49) a window whose limit is unknown and neither an
178
201
  * explicit percentage nor a valid count set is present — the built
179
202
  * window carries `remaining` verbatim and omits `used`, `limit`, and
180
- * `remainingPercent`; and (GitHub #109) a window whose counts are
181
- * invalid — `remaining` is published verbatim next to any explicit
182
- * remaining percentage, counts omitted. Nothing is ever inferred
183
- * from tier tables or fabricated as a percentage.
203
+ * `remainingPercent`; and (GitHub #109 — historically Z.AI's
204
+ * cumulative `currentValue` past the window cap; the zai adapter now
205
+ * rejects such entries whole — #191, though the branch stays for
206
+ * other Providers) a window whose counts are invalid — `remaining`
207
+ * is published verbatim next to any explicit remaining percentage,
208
+ * counts omitted. Nothing is ever inferred from tier tables or
209
+ * fabricated as a percentage.
184
210
  */
185
211
  remaining?: number;
186
212
  }
@@ -1 +1 @@
1
- {"version":3,"file":"quota.d.ts","sourceRoot":"","sources":["../../src/capabilities/quota.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAM3E,MAAM,WAAW,WAAW;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC;IAChD,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,UAAU,CAAC;IACrB,MAAM,EAAE,IAAI,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC;CACzC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,UAAU,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE;QAAE,IAAI,EAAE,kBAAkB,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACrE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC;IACrC,mEAAmE;IACnE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;;;;;;OAQG;IACH,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,CAAC,CAAC;IACjB,iBAAiB,EAAE,UAAU,CAAC;IAC9B,SAAS,EAAE,KAAK,CAAC,oBAAoB,GAAG,oBAAoB,GAAG,iBAAiB,CAAC,CAAC;CACnF;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACzC;AAMD;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAkDD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW,CA2EvE;AAMD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,GAAG,oBAAoB,CAahG"}
1
+ {"version":3,"file":"quota.d.ts","sourceRoot":"","sources":["../../src/capabilities/quota.ts"],"names":[],"mappings":"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"}
@@ -23,10 +23,11 @@
23
23
  * are omitted rather than fabricated. Additive under QuotaDashboard
24
24
  * schema v1.
25
25
  * - A Provider whose counts are invalid but which publishes an exact
26
- * `remaining` (e.g. Z.AI's cumulative `currentValue` past the
27
- * window cap — GitHub #109) has `remaining` published verbatim next
28
- * to any explicit remaining percentage; counts are omitted rather
29
- * than derived from contradicting fields.
26
+ * `remaining` (historically Z.AI's cumulative `currentValue` past
27
+ * the window cap — GitHub #109; the zai adapter now rejects such
28
+ * entries whole — #191) has `remaining` published verbatim next to
29
+ * any explicit remaining percentage; counts are omitted rather than
30
+ * derived from contradicting fields.
30
31
  * - Invalid optional counts are omitted together (not set to zero).
31
32
  * - A category that has neither a valid percentage, nor valid counts,
32
33
  * nor an explicit remaining is rejected with `QUOTA_ERROR`.
@@ -154,8 +155,9 @@ export function buildQuotaWindow(inputs) {
154
155
  Number.isFinite(inputs.remaining) &&
155
156
  inputs.remaining >= 0) {
156
157
  // Invalid counts but a Provider-published EXACT remaining count
157
- // (e.g. Z.AI cumulative currentValue > cap): publish `remaining`
158
- // verbatim next to any explicit percentage; never derive counts.
158
+ // (historically Z.AI cumulative currentValue > cap — #191 now
159
+ // rejects such entries whole): publish `remaining` verbatim next to
160
+ // any explicit percentage; never derive counts.
159
161
  // Ordered after the #99 used-only path so every pre-existing
160
162
  // accepting input keeps its exact pre-#109 shape.
161
163
  window.remaining = inputs.remaining;
@@ -1 +1 @@
1
- {"version":3,"file":"quota.js","sourceRoot":"","sources":["../../src/capabilities/quota.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quota.js","sourceRoot":"","sources":["../../src/capabilities/quota.ts"],"names":[],"mappings":"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"}
@@ -190,4 +190,19 @@ export declare function validateScienceSearchRequest(request: ScienceSearchReque
190
190
  * grammar throws `ValidationError`.
191
191
  */
192
192
  export declare function validateScienceGetRequest(request: ScienceGetRequest): void;
193
+ /**
194
+ * Total decoder for a cached science SEARCH entry (the normalized
195
+ * `readonly ScienceWork[]` an arm's invoke produced). Returns the typed
196
+ * array, or `null` when the raw value is not a well-formed works array
197
+ * — a malformed cached entry is a miss (the consult site re-invokes and
198
+ * overwrites). Never throws.
199
+ */
200
+ export declare function decodeScienceWorks(value: unknown): readonly ScienceWork[] | null;
201
+ /**
202
+ * Total decoder for a cached science GET entry (one normalized
203
+ * `ScienceWork`). Returns the typed work, or `null` on any malformed
204
+ * shape — same miss-and-overwrite contract as
205
+ * {@link decodeScienceWorks}. Never throws.
206
+ */
207
+ export declare function decodeScienceWork(value: unknown): ScienceWork | null;
193
208
  //# sourceMappingURL=science.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"science.d.ts","sourceRoot":"","sources":["../../src/capabilities/science.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"science.d.ts","sourceRoot":"","sources":["../../src/capabilities/science.ts"],"names":[],"mappings":"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"}
@@ -107,4 +107,83 @@ export function validateScienceGetRequest(request) {
107
107
  throw new ValidationError(`Invalid identifier: expected a bare DOI, numeric PMID, or arXiv id`);
108
108
  }
109
109
  }
110
+ // ---------------------------------------------------------------------------
111
+ // Total cached-entry decoders (issue #140; DESIGN D4 response cache)
112
+ // ---------------------------------------------------------------------------
113
+ /**
114
+ * Shape guard for one `ScienceWork`. `title` and `url` are required
115
+ * strings; every KNOWN optional field is type-checked (a wrong-typed
116
+ * field is a malformed entry → the caller treats it as a cache miss and
117
+ * re-fetches, overwriting). UNKNOWN extra keys are kept verbatim — the
118
+ * decoder must never drop fields a future enrichment added before the
119
+ * entry was cached (cached shapes survive round-trip). Total: never
120
+ * throws, never coerces.
121
+ */
122
+ function isScienceWorkShape(value) {
123
+ if (value === null || typeof value !== "object" || Array.isArray(value))
124
+ return false;
125
+ const work = value;
126
+ if (typeof work.title !== "string" || typeof work.url !== "string")
127
+ return false;
128
+ if (work.identifiers !== undefined) {
129
+ const ids = work.identifiers;
130
+ if (ids === null || typeof ids !== "object" || Array.isArray(ids))
131
+ return false;
132
+ const record = ids;
133
+ for (const key of ["doi", "pmid", "arxivId"]) {
134
+ const v = record[key];
135
+ if (v !== undefined && typeof v !== "string")
136
+ return false;
137
+ }
138
+ }
139
+ if (work.authors !== undefined) {
140
+ if (!Array.isArray(work.authors) || !work.authors.every((a) => typeof a === "string")) {
141
+ return false;
142
+ }
143
+ }
144
+ if (work.year !== undefined && !Number.isFinite(work.year))
145
+ return false;
146
+ if (work.venue !== undefined && typeof work.venue !== "string")
147
+ return false;
148
+ if (work.summary !== undefined && typeof work.summary !== "string")
149
+ return false;
150
+ if (work.citationCount !== undefined && !Number.isFinite(work.citationCount))
151
+ return false;
152
+ if (work.pdfUrl !== undefined && typeof work.pdfUrl !== "string")
153
+ return false;
154
+ if (work.openAccess !== undefined && typeof work.openAccess !== "boolean")
155
+ return false;
156
+ if (work.type !== undefined && typeof work.type !== "string")
157
+ return false;
158
+ if (work.language !== undefined && typeof work.language !== "string")
159
+ return false;
160
+ if (work.updated !== undefined && typeof work.updated !== "string")
161
+ return false;
162
+ return true;
163
+ }
164
+ /**
165
+ * Total decoder for a cached science SEARCH entry (the normalized
166
+ * `readonly ScienceWork[]` an arm's invoke produced). Returns the typed
167
+ * array, or `null` when the raw value is not a well-formed works array
168
+ * — a malformed cached entry is a miss (the consult site re-invokes and
169
+ * overwrites). Never throws.
170
+ */
171
+ export function decodeScienceWorks(value) {
172
+ if (!Array.isArray(value))
173
+ return null;
174
+ for (const row of value) {
175
+ if (!isScienceWorkShape(row))
176
+ return null;
177
+ }
178
+ return value;
179
+ }
180
+ /**
181
+ * Total decoder for a cached science GET entry (one normalized
182
+ * `ScienceWork`). Returns the typed work, or `null` on any malformed
183
+ * shape — same miss-and-overwrite contract as
184
+ * {@link decodeScienceWorks}. Never throws.
185
+ */
186
+ export function decodeScienceWork(value) {
187
+ return isScienceWorkShape(value) ? value : null;
188
+ }
110
189
  //# sourceMappingURL=science.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"science.js","sourceRoot":"","sources":["../../src/capabilities/science.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAM7B,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;AAgK5E,8EAA8E;AAC9E,gCAAgC;AAChC,8EAA8E;AAE9E,oEAAoE;AACpE,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;AAEtD,SAAS,mBAAmB,CAAC,IAAY;IACvC,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,eAAe,CACvB,iBAAiB,IAAI,uDAAuD,CAC7E,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,EAAE,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,eAAe,CACvB,uBAAuB,IAAI,gDAAgD,CAC5E,CAAC;IACJ,CAAC;AACH,CAAC;AASD,mEAAmE;AACnE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAC7C,kEAAkE;AAClE,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAC5C,4DAA4D;AAC5D,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;AACrD,oBAAoB;AACpB,MAAM,YAAY,GAAG,OAAO,CAAC;AAE7B;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,UAAkB;IAElB,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IACpD,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,OAAO,CAAC;IACtD,IAAI,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,OAAO,CAAC;IAC1D,IAAI,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,MAAM,CAAC;IACjD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAC1C,OAA6B;IAE7B,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACrE,MAAM,IAAI,eAAe,CAAC,0DAA0D,CAAC,CAAC;IACxF,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;IACpC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAA0B;IAClE,IACE,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ;QACtC,sBAAsB,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,EACnD,CAAC;QACD,MAAM,IAAI,eAAe,CACvB,oEAAoE,CACrE,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"science.js","sourceRoot":"","sources":["../../src/capabilities/science.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"quota.d.ts","sourceRoot":"","sources":["../../src/commands/quota.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAKV,cAAc,EAEf,MAAM,0BAA0B,CAAC;AAIlC,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAK5E,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,UAAU,EAChB,MAAM,uBAAuB,CAAC;AAM/B,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,UAAU,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACpD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC;IAC9B;;;;;;;;;OASG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC;IACpC;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAgRD;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,0BAA0B,GAC/B,OAAO,CAAC,cAAc,CAAC,CAEzB;AAMD,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,cAAc,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;IACvD,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;;;;;;;;GASG;AACH,wBAAsB,KAAK,CACzB,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAuBxC;AAED,eAAO,MAAM,UAAU,QAwDf,CAAC"}
1
+ {"version":3,"file":"quota.d.ts","sourceRoot":"","sources":["../../src/commands/quota.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAKV,cAAc,EAEf,MAAM,0BAA0B,CAAC;AAIlC,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAK5E,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,UAAU,EAChB,MAAM,uBAAuB,CAAC;AAM/B,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,UAAU,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACpD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC;IAC9B;;;;;;;;;OASG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,UAAU,CAAC;IACpC;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAgRD;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,0BAA0B,GAC/B,OAAO,CAAC,cAAc,CAAC,CAEzB;AAMD,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,cAAc,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;IACvD,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;;;;;;;;GASG;AACH,wBAAsB,KAAK,CACzB,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAuBxC;AAED,eAAO,MAAM,UAAU,QA2Df,CAAC"}
@@ -337,6 +337,9 @@ Examples:
337
337
  scoutline quota -O json # envelope-wrapped for scripts
338
338
 
339
339
  Notes:
340
+ - A requests category may carry an additive optional "toolUsage"
341
+ array (per-tool consumption rows; the TTY renders them, json/data
342
+ carry them verbatim, no schema-version bump).
340
343
  - Quota is never cached by the local response cache.
341
344
  - Multi-Provider mode never invokes a Provider that is not
342
345
  configured for quota (capability-aware: keyless Jina Reader does
@@ -1 +1 @@
1
- {"version":3,"file":"quota.js","sourceRoot":"","sources":["../../src/commands/quota.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quota.js","sourceRoot":"","sources":["../../src/commands/quota.ts"],"names":[],"mappings":"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"}
@@ -56,5 +56,18 @@ export interface HandleScienceOptions {
56
56
  */
57
57
  readonly registerInterrupt?: (handler: () => void) => () => void;
58
58
  }
59
+ /**
60
+ * T7: derive the journal entry's cacheKey from a supplier science
61
+ * cache identity. Science identities are `{supplier, capability:
62
+ * "science.search"|"science.get", credentialFingerprint, request}` —
63
+ * the `supplier`/`capability` naming differs from the
64
+ * provider-capability identities the capture wrapper keys off, so the
65
+ * journal derives the SAME partitioned-key shape the supplier's
66
+ * response cache is keyed under (since #140 science consults and
67
+ * fills that cache at its own invoke sites, deriving the key right
68
+ * there): `buildProviderCacheKey` over the identity, namespace
69
+ * verbatim.
70
+ */
71
+ export declare function scienceCacheKey(identity: unknown): string | undefined;
59
72
  export declare function handleScience(args: string[], outputMode: OutputMode, deps: HandlerDependencies, options?: HandleScienceOptions): Promise<number>;
60
73
  //# sourceMappingURL=science.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"science.d.ts","sourceRoot":"","sources":["../../src/commands/science.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAWH,OAAO,EAAe,KAAK,YAAY,EAAmB,MAAM,yBAAyB,CAAC;AAI1F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAyCvD,eAAO,MAAM,YAAY,QA+BjB,CAAC;AAuGT,yEAAyE;AACzE,eAAO,MAAM,cAAc,EAAE,YAK5B,CAAC;AA4FF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG;IACzD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B,CA6BA;AAobD,MAAM,WAAW,oBAAoB;IACnC,kEAAkE;IAClE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;CAClE;AAuHD,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EAAE,EACd,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,mBAAmB,EACzB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,MAAM,CAAC,CAiajB"}
1
+ {"version":3,"file":"science.d.ts","sourceRoot":"","sources":["../../src/commands/science.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAeH,OAAO,EAAe,KAAK,YAAY,EAAmB,MAAM,yBAAyB,CAAC;AAK1F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AA4CvD,eAAO,MAAM,YAAY,QAgCjB,CAAC;AAuGT,yEAAyE;AACzE,eAAO,MAAM,cAAc,EAAE,YAK5B,CAAC;AA+FF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG;IACzD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B,CA6BA;AA2gBD,MAAM,WAAW,oBAAoB;IACnC,kEAAkE;IAClE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;CAClE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAqBrE;AA0HD,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EAAE,EACd,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,mBAAmB,EACzB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,MAAM,CAAC,CAshBjB"}