@compresr/sdk 1.5.4 → 1.6.1

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 (66) hide show
  1. package/README.md +35 -0
  2. package/dist/cjs/agents/engine.d.ts +67 -0
  3. package/dist/cjs/agents/engine.d.ts.map +1 -1
  4. package/dist/cjs/agents/engine.js +262 -9
  5. package/dist/cjs/agents/engine.js.map +1 -1
  6. package/dist/cjs/agents/research/agent.d.ts +112 -0
  7. package/dist/cjs/agents/research/agent.d.ts.map +1 -0
  8. package/dist/cjs/agents/research/agent.js +342 -0
  9. package/dist/cjs/agents/research/agent.js.map +1 -0
  10. package/dist/cjs/agents/research/facade.d.ts +22 -0
  11. package/dist/cjs/agents/research/facade.d.ts.map +1 -0
  12. package/dist/cjs/agents/research/facade.js +90 -0
  13. package/dist/cjs/agents/research/facade.js.map +1 -0
  14. package/dist/cjs/agents/research/index.d.ts +16 -0
  15. package/dist/cjs/agents/research/index.d.ts.map +1 -0
  16. package/dist/cjs/agents/research/index.js +19 -0
  17. package/dist/cjs/agents/research/index.js.map +1 -0
  18. package/dist/cjs/agents/research/parser.d.ts +9 -0
  19. package/dist/cjs/agents/research/parser.d.ts.map +1 -0
  20. package/dist/cjs/agents/research/parser.js +42 -0
  21. package/dist/cjs/agents/research/parser.js.map +1 -0
  22. package/dist/cjs/agents/research/prompts.d.ts +6 -0
  23. package/dist/cjs/agents/research/prompts.d.ts.map +1 -0
  24. package/dist/cjs/agents/research/prompts.js +36 -0
  25. package/dist/cjs/agents/research/prompts.js.map +1 -0
  26. package/dist/cjs/agents/research/types.d.ts +32 -0
  27. package/dist/cjs/agents/research/types.d.ts.map +1 -0
  28. package/dist/cjs/agents/research/types.js +4 -0
  29. package/dist/cjs/agents/research/types.js.map +1 -0
  30. package/dist/cjs/clients/compression.d.ts +22 -0
  31. package/dist/cjs/clients/compression.d.ts.map +1 -1
  32. package/dist/cjs/clients/compression.js +32 -0
  33. package/dist/cjs/clients/compression.js.map +1 -1
  34. package/dist/esm/agents/engine.d.ts +67 -0
  35. package/dist/esm/agents/engine.d.ts.map +1 -1
  36. package/dist/esm/agents/engine.js +259 -8
  37. package/dist/esm/agents/engine.js.map +1 -1
  38. package/dist/esm/agents/research/agent.d.ts +112 -0
  39. package/dist/esm/agents/research/agent.d.ts.map +1 -0
  40. package/dist/esm/agents/research/agent.js +305 -0
  41. package/dist/esm/agents/research/agent.js.map +1 -0
  42. package/dist/esm/agents/research/facade.d.ts +22 -0
  43. package/dist/esm/agents/research/facade.d.ts.map +1 -0
  44. package/dist/esm/agents/research/facade.js +53 -0
  45. package/dist/esm/agents/research/facade.js.map +1 -0
  46. package/dist/esm/agents/research/index.d.ts +16 -0
  47. package/dist/esm/agents/research/index.d.ts.map +1 -0
  48. package/dist/esm/agents/research/index.js +12 -0
  49. package/dist/esm/agents/research/index.js.map +1 -0
  50. package/dist/esm/agents/research/parser.d.ts +9 -0
  51. package/dist/esm/agents/research/parser.d.ts.map +1 -0
  52. package/dist/esm/agents/research/parser.js +39 -0
  53. package/dist/esm/agents/research/parser.js.map +1 -0
  54. package/dist/esm/agents/research/prompts.d.ts +6 -0
  55. package/dist/esm/agents/research/prompts.d.ts.map +1 -0
  56. package/dist/esm/agents/research/prompts.js +33 -0
  57. package/dist/esm/agents/research/prompts.js.map +1 -0
  58. package/dist/esm/agents/research/types.d.ts +32 -0
  59. package/dist/esm/agents/research/types.d.ts.map +1 -0
  60. package/dist/esm/agents/research/types.js +3 -0
  61. package/dist/esm/agents/research/types.js.map +1 -0
  62. package/dist/esm/clients/compression.d.ts +22 -0
  63. package/dist/esm/clients/compression.d.ts.map +1 -1
  64. package/dist/esm/clients/compression.js +32 -0
  65. package/dist/esm/clients/compression.js.map +1 -1
  66. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../src/agents/research/parser.ts"],"names":[],"mappings":"AAAA,qEAAqE;AAErE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC9C;AAcD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CA6BhE"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ /** Parse the strict-format final response into structured fields. */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.parseResearchOutput = parseResearchOutput;
5
+ const FIELD_PATTERNS = {
6
+ explanation: /^\s*explanation\s*:\s*([\s\S]+?)(?=^\s*(?:exact\s+answer|confidence|citations)\s*:|\s*$)/im,
7
+ answer: /^\s*exact\s+answer\s*:\s*([\s\S]+?)(?=^\s*(?:explanation|confidence|citations)\s*:|\s*$)/im,
8
+ confidence: /^\s*confidence\s*:\s*([\s\S]+?)(?=^\s*(?:explanation|exact\s+answer|citations)\s*:|\s*$)/im,
9
+ citations: /^\s*citations\s*:\s*([\s\S]+?)\s*$/im,
10
+ };
11
+ function grab(text, name) {
12
+ const m = FIELD_PATTERNS[name].exec(text);
13
+ return m ? m[1].trim() : '';
14
+ }
15
+ function parseResearchOutput(text) {
16
+ if (!text) {
17
+ return { answer: '', explanation: '', confidence: null, citationUrls: [] };
18
+ }
19
+ const answer = grab(text, 'answer');
20
+ const explanation = grab(text, 'explanation');
21
+ const confidenceRaw = grab(text, 'confidence');
22
+ const citationsRaw = grab(text, 'citations');
23
+ let confidence = null;
24
+ if (confidenceRaw) {
25
+ const m = /(\d+(?:\.\d+)?)/.exec(confidenceRaw);
26
+ if (m) {
27
+ const v = parseFloat(m[1]);
28
+ confidence = v > 1 ? v / 100 : v;
29
+ }
30
+ }
31
+ const citationUrls = [];
32
+ if (citationsRaw) {
33
+ const urlRe = /https?:\/\/[^\s,;<>"')]+/g;
34
+ let m;
35
+ while ((m = urlRe.exec(citationsRaw)) !== null) {
36
+ if (!citationUrls.includes(m[0]))
37
+ citationUrls.push(m[0]);
38
+ }
39
+ }
40
+ return { answer, explanation, confidence, citationUrls };
41
+ }
42
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../src/agents/research/parser.ts"],"names":[],"mappings":";AAAA,qEAAqE;;AAqBrE,kDA6BC;AAzCD,MAAM,cAAc,GAA2B;IAC7C,WAAW,EAAE,4FAA4F;IACzG,MAAM,EAAE,4FAA4F;IACpG,UAAU,EAAE,4FAA4F;IACxG,SAAS,EAAE,sCAAsC;CAClD,CAAC;AAEF,SAAS,IAAI,CAAC,IAAY,EAAE,IAAY;IACtC,MAAM,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9B,CAAC;AAED,SAAgB,mBAAmB,CAAC,IAAY;IAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;IAC7E,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAE7C,IAAI,UAAU,GAAkB,IAAI,CAAC;IACrC,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAChD,IAAI,CAAC,EAAE,CAAC;YACN,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3B,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,2BAA2B,CAAC;QAC1C,IAAI,CAAyB,CAAC;QAC9B,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Default system prompt — adapted from Perplexity `search_evals` (MIT,
3
+ * https://github.com/perplexityai/search_evals/blob/main/search_evals/agents/deep_research.py).
4
+ */
5
+ export declare const DEFAULT_RESEARCH_SYSTEM_PROMPT = "You are a research agent. The user will ask you a specific question whose answer cannot be reliably produced from your internal weights (hallucination risk is high), and that takes several steps of web research to resolve.\n\n## Tool\nsearch_web(query: str) \u2014 Search the web with a single query. Returns titles, URLs, and snippets.\n\n## Query format\nWrite queries for a modern keyword/semantic search engine, not for an LLM:\n- Keep them focused \u2014 search is a limited budget.\n- Do not rely on quotes, brackets, or special syntax.\n- Natural language is fine; keyword strings are fine too.\n\n## Solution strategy\nYou have a hard search budget. At each step, decrement the counter and plan ahead how you will spend what is left. Ask yourself: did this SERP bring me closer to the answer? If not, and rephrasing didn't help, explicitly say you're switching hypothesis and pursue a different direction.\n\n## General web-search recommendations\n- One query at a time.\n- Cross-verify across sources before committing.\n- If sources conflict, search more to resolve the conflict.\n- Never assert a claim you don't have a source for.\n\n## Response format (mandatory)\nWhen you are done researching, end your response with exactly these fields in this order:\n\nExplanation: <your research process and the key findings from each source>\nExact Answer: <the precise final answer, or \"I don't know\" if you couldn't find it>\nConfidence: <0-100%>\nCitations: <comma-separated list of URLs you actually relied on>\n";
6
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../../src/agents/research/prompts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,8BAA8B,u/CA2B1C,CAAC"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_RESEARCH_SYSTEM_PROMPT = void 0;
4
+ /**
5
+ * Default system prompt — adapted from Perplexity `search_evals` (MIT,
6
+ * https://github.com/perplexityai/search_evals/blob/main/search_evals/agents/deep_research.py).
7
+ */
8
+ exports.DEFAULT_RESEARCH_SYSTEM_PROMPT = `You are a research agent. The user will ask you a specific question whose answer cannot be reliably produced from your internal weights (hallucination risk is high), and that takes several steps of web research to resolve.
9
+
10
+ ## Tool
11
+ search_web(query: str) — Search the web with a single query. Returns titles, URLs, and snippets.
12
+
13
+ ## Query format
14
+ Write queries for a modern keyword/semantic search engine, not for an LLM:
15
+ - Keep them focused — search is a limited budget.
16
+ - Do not rely on quotes, brackets, or special syntax.
17
+ - Natural language is fine; keyword strings are fine too.
18
+
19
+ ## Solution strategy
20
+ You have a hard search budget. At each step, decrement the counter and plan ahead how you will spend what is left. Ask yourself: did this SERP bring me closer to the answer? If not, and rephrasing didn't help, explicitly say you're switching hypothesis and pursue a different direction.
21
+
22
+ ## General web-search recommendations
23
+ - One query at a time.
24
+ - Cross-verify across sources before committing.
25
+ - If sources conflict, search more to resolve the conflict.
26
+ - Never assert a claim you don't have a source for.
27
+
28
+ ## Response format (mandatory)
29
+ When you are done researching, end your response with exactly these fields in this order:
30
+
31
+ Explanation: <your research process and the key findings from each source>
32
+ Exact Answer: <the precise final answer, or "I don't know" if you couldn't find it>
33
+ Confidence: <0-100%>
34
+ Citations: <comma-separated list of URLs you actually relied on>
35
+ `;
36
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../../src/agents/research/prompts.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,8BAA8B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2B7C,CAAC"}
@@ -0,0 +1,32 @@
1
+ /** Public types returned by `ResearchAgent.run(...)`. */
2
+ export interface Citation {
3
+ readonly url: string;
4
+ readonly title?: string;
5
+ readonly snippet?: string;
6
+ }
7
+ export type StepKind = 'search' | 'tool_result' | 'answer' | 'error';
8
+ export interface Step {
9
+ readonly type: StepKind;
10
+ readonly query?: string;
11
+ readonly text?: string;
12
+ readonly chars?: number;
13
+ readonly latencyS?: number;
14
+ }
15
+ export interface ResearchUsage {
16
+ readonly input_tokens: number;
17
+ readonly output_tokens: number;
18
+ readonly cache_read_tokens: number;
19
+ readonly cache_creation_tokens: number;
20
+ readonly calls: number;
21
+ }
22
+ export interface ResearchResult {
23
+ readonly answer: string;
24
+ readonly explanation: string;
25
+ readonly confidence: number | null;
26
+ readonly text: string;
27
+ readonly citations: ReadonlyArray<Citation>;
28
+ readonly trajectory: ReadonlyArray<Step>;
29
+ readonly usage: ResearchUsage;
30
+ readonly raw: unknown;
31
+ }
32
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/agents/research/types.ts"],"names":[],"mappings":"AAAA,yDAAyD;AAEzD,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAC;AAErE,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ /** Public types returned by `ResearchAgent.run(...)`. */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/agents/research/types.ts"],"names":[],"mappings":";AAAA,yDAAyD"}
@@ -4,6 +4,7 @@ import { type CompressionPolicyOptions, type NormalizedResult } from '../agents/
4
4
  import type { AnthropicMessagesFacade } from '../agents/facades/anthropic.js';
5
5
  import type { OpenAIChatFacade } from '../agents/facades/openai.js';
6
6
  import type { NativeRunOptions } from '../agents/facades/native.js';
7
+ import { ResearchFacade } from '../agents/research/index.js';
7
8
  export interface CompressOptions {
8
9
  context: string;
9
10
  query?: string;
@@ -41,15 +42,29 @@ export interface CompressionClientOptions extends HttpClientOptions {
41
42
  llmApiKey?: string;
42
43
  /** Optional compression policy applied to the agent's tool middleware. */
43
44
  compression?: CompressionPolicyOptions;
45
+ /** Provider-aware prompt caching. Anthropic: middleware. OpenAI: prompt_cache_key
46
+ * + retention mapping. Gemini: no-op (implicit at API). Default: true. */
47
+ enablePromptCache?: boolean;
48
+ /** Cache TTL: "5m" or "1h". Anthropic ephemeral TTL; OpenAI maps "1h" -> "24h". */
49
+ promptCacheTtl?: '5m' | '1h';
50
+ /** Anthropic: skip caching below this conversation length. */
51
+ promptCacheMinMessages?: number;
52
+ /** OpenAI routing key — improves cache hit rate. Ignored for non-OpenAI. */
53
+ openaiPromptCacheKey?: string;
44
54
  }
45
55
  export declare class CompressionClient {
46
56
  private readonly http;
47
57
  private readonly llm?;
48
58
  private readonly llmApiKey?;
49
59
  private readonly compressionPolicy?;
60
+ private readonly enablePromptCache;
61
+ private readonly promptCacheTtl;
62
+ private readonly promptCacheMinMessages;
63
+ private readonly openaiPromptCacheKey?;
50
64
  private engine?;
51
65
  private anthropicFacade?;
52
66
  private openaiFacade?;
67
+ private researchFacade?;
53
68
  constructor(options: CompressionClientOptions);
54
69
  private requireEngine;
55
70
  /** Anthropic-shaped facade: ``client.messages.create({...})``. */
@@ -58,6 +73,13 @@ export declare class CompressionClient {
58
73
  get chat(): OpenAIChatFacade;
59
74
  /** Native facade — returns the provider-agnostic ``NormalizedResult``. */
60
75
  run(options: NativeRunOptions): Promise<NormalizedResult>;
76
+ /**
77
+ * Research facade: ``await client.research.run("question")``.
78
+ *
79
+ * Multi-step web-research agent with per-snippet `latte_v1` compression and
80
+ * multi-provider prompt caching. Requires `llm=` on the client.
81
+ */
82
+ get research(): ResearchFacade;
61
83
  private buildRequest;
62
84
  compress(options: CompressOptions): Promise<CompressResponse>;
63
85
  compressStream(options: CompressOptions): AsyncGenerator<StreamChunk, void, undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../../src/clients/compression.ts"],"names":[],"mappings":"AAYA,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAKL,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAKL,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IACjE;8EAC0E;IAC1E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,wBAAwB,CAAC;CACxC;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAA2B;IAC9D,OAAO,CAAC,MAAM,CAAC,CAAiB;IAChC,OAAO,CAAC,eAAe,CAAC,CAA0B;IAClD,OAAO,CAAC,YAAY,CAAC,CAAmB;gBAE5B,OAAO,EAAE,wBAAwB;IAS7C,OAAO,CAAC,aAAa;IAqBrB,kEAAkE;IAClE,IAAI,QAAQ,IAAI,uBAAuB,CAItC;IAED,uEAAuE;IACvE,IAAI,IAAI,IAAI,gBAAgB,CAI3B;IAED,0EAA0E;IACpE,GAAG,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAK/D,OAAO,CAAC,YAAY;IAgBd,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAM5D,cAAc,CACnB,OAAO,EAAE,eAAe,GACvB,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC;IAQzC,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAkBnF"}
1
+ {"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../../src/clients/compression.ts"],"names":[],"mappings":"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"}
@@ -15,14 +15,20 @@ const index_js_2 = require("../errors/index.js");
15
15
  const client_js_1 = require("../http/client.js");
16
16
  const index_js_3 = require("../schemas/index.js");
17
17
  const index_js_4 = require("../agents/index.js");
18
+ const index_js_5 = require("../agents/research/index.js");
18
19
  class CompressionClient {
19
20
  http;
20
21
  llm;
21
22
  llmApiKey;
22
23
  compressionPolicy;
24
+ enablePromptCache;
25
+ promptCacheTtl;
26
+ promptCacheMinMessages;
27
+ openaiPromptCacheKey;
23
28
  engine;
24
29
  anthropicFacade;
25
30
  openaiFacade;
31
+ researchFacade;
26
32
  constructor(options) {
27
33
  this.http = new client_js_1.HttpClient(options);
28
34
  if (options.llm !== undefined)
@@ -32,6 +38,12 @@ class CompressionClient {
32
38
  if (options.compression !== undefined) {
33
39
  this.compressionPolicy = options.compression;
34
40
  }
41
+ this.enablePromptCache = options.enablePromptCache ?? true;
42
+ this.promptCacheTtl = options.promptCacheTtl ?? '5m';
43
+ this.promptCacheMinMessages = options.promptCacheMinMessages ?? 2;
44
+ if (options.openaiPromptCacheKey !== undefined) {
45
+ this.openaiPromptCacheKey = options.openaiPromptCacheKey;
46
+ }
35
47
  }
36
48
  requireEngine(surface) {
37
49
  if (this.engine !== undefined)
@@ -43,7 +55,13 @@ class CompressionClient {
43
55
  const engineOpts = {
44
56
  compresrClient: this,
45
57
  llm: this.llm,
58
+ enablePromptCache: this.enablePromptCache,
59
+ promptCacheTtl: this.promptCacheTtl,
60
+ promptCacheMinMessages: this.promptCacheMinMessages,
46
61
  };
62
+ if (this.openaiPromptCacheKey !== undefined) {
63
+ engineOpts.openaiPromptCacheKey = this.openaiPromptCacheKey;
64
+ }
47
65
  if (this.llmApiKey !== undefined)
48
66
  engineOpts.llmApiKey = this.llmApiKey;
49
67
  if (this.compressionPolicy !== undefined) {
@@ -69,6 +87,20 @@ class CompressionClient {
69
87
  const engine = this.requireEngine('run');
70
88
  return (0, index_js_4.nativeRun)(engine, options);
71
89
  }
90
+ /**
91
+ * Research facade: ``await client.research.run("question")``.
92
+ *
93
+ * Multi-step web-research agent with per-snippet `latte_v1` compression and
94
+ * multi-provider prompt caching. Requires `llm=` on the client.
95
+ */
96
+ get research() {
97
+ const engine = this.requireEngine('research.run');
98
+ // ResearchFacade takes a structural ResearchEngine; CompresrEngine has the
99
+ // required @internal accessors but its types are wider, so cast at the
100
+ // single integration point.
101
+ this.researchFacade ??= new index_js_5.ResearchFacade(engine);
102
+ return this.researchFacade;
103
+ }
72
104
  buildRequest(options) {
73
105
  try {
74
106
  return index_js_3.CompressRequestSchema.parse({
@@ -1 +1 @@
1
- {"version":3,"file":"compression.js","sourceRoot":"","sources":["../../../src/clients/compression.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compression.js","sourceRoot":"","sources":["../../../src/clients/compression.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,32 @@
11
11
  import type { CompressionClient } from '../clients/compression.js';
12
12
  import { type ErrorPolicy } from '../integrations/_shared/index.js';
13
13
  import { type NormalizedResult } from './normalized.js';
14
+ /**
15
+ * Tool names produced by ``WebSearchTool.tavily(...)`` and ``WebSearchTool.brave(...)``.
16
+ *
17
+ * When the generic-agent path (``client.messages.create`` / ``chat.completions.create``
18
+ * / ``client.run``) is invoked with **exactly one** tool whose ``.name`` matches one
19
+ * of these, the engine silently routes the call through the deep-research loop
20
+ * instead of the standard ``createAgent`` middleware path. The caller still
21
+ * receives their facade's expected response shape; only the loop semantics
22
+ * change (``tool_choice="none"`` on the final step, per-snippet compression
23
+ * against the live query, 10-step cap, manual Anthropic ``cache_control``).
24
+ *
25
+ * Detection is by name because ``WebSearchTool`` returns a LangChain
26
+ * ``StructuredTool`` — not a custom subclass — so ``instanceof`` would always
27
+ * be ``false``.
28
+ */
29
+ export declare const WEB_SEARCH_TOOL_NAMES: ReadonlySet<string>;
30
+ /** True when ``tools`` is exactly one Compresr-built web-search tool. */
31
+ export declare function isSoloWebSearch(tools: ReadonlyArray<unknown>): boolean;
32
+ /**
33
+ * Pull the last user-role message text out of a facade-shaped chain.
34
+ *
35
+ * Supports plain dicts (Anthropic / OpenAI style) and any object with a
36
+ * ``content`` field. Falls back to the first message's content when no
37
+ * explicit user message is found, and to ``""`` on empty input.
38
+ */
39
+ export declare function extractLastUserText(messages: ReadonlyArray<unknown>): string;
14
40
  /**
15
41
  * Immutable bundle of compression knobs forwarded to the tool middleware.
16
42
  *
@@ -44,6 +70,17 @@ export interface CompresrEngineOptions {
44
70
  llm: string;
45
71
  llmApiKey?: string;
46
72
  policy?: CompressionPolicyOptions;
73
+ /** Provider-aware prompt caching. Anthropic: wires middleware. OpenAI:
74
+ * attaches prompt_cache_key + retention mapping. Gemini: no-op for now. */
75
+ enablePromptCache?: boolean;
76
+ /** Cache TTL: "5m" or "1h". Anthropic ephemeral TTL; OpenAI maps "1h" -> "24h"
77
+ * retention. Default: "5m". */
78
+ promptCacheTtl?: '5m' | '1h';
79
+ /** Anthropic: skip caching until conversation has at least this many messages. */
80
+ promptCacheMinMessages?: number;
81
+ /** OpenAI routing key — improves cache hit rate when multiple clients share a
82
+ * backend. Ignored for non-OpenAI providers. */
83
+ openaiPromptCacheKey?: string;
47
84
  }
48
85
  export interface RunOptions {
49
86
  messages: ReadonlyArray<unknown>;
@@ -93,6 +130,10 @@ export declare class CompresrEngine {
93
130
  private readonly llmApiKey?;
94
131
  private readonly policy;
95
132
  private readonly chatModels;
133
+ private readonly enablePromptCache;
134
+ private readonly promptCacheTtl;
135
+ private readonly promptCacheMinMessages;
136
+ private readonly openaiPromptCacheKey?;
96
137
  constructor(options: CompresrEngineOptions);
97
138
  /**
98
139
  * Back-compat alias for ``defaultModelName`` — returns the constructor
@@ -100,8 +141,23 @@ export declare class CompresrEngine {
100
141
  * provider ``llm`` spec.
101
142
  */
102
143
  get modelName(): string | undefined;
144
+ /** @internal — used by ResearchAgent. Not part of the stable public API. */
145
+ _getChatModel(modelName: string): Promise<unknown>;
146
+ /** @internal — used by ResearchAgent. Not part of the stable public API. */
147
+ get _compresrClient(): CompressionClient;
148
+ /** @internal — used by ResearchAgent. Not part of the stable public API. */
149
+ _resolveModel(model?: string): string;
150
+ /** @internal — read by ResearchAgent for manual cache_control stamping. */
151
+ get _promptCacheConfig(): {
152
+ readonly enabled: boolean;
153
+ readonly ttl: '5m' | '1h';
154
+ readonly minMessages: number;
155
+ };
103
156
  private getChatModel;
157
+ private openaiCacheModelKwargs;
104
158
  private buildMiddleware;
159
+ /** Anthropic prompt-cache middleware when enabled. Silent no-op on older langchain. */
160
+ private maybeBuildCacheMiddleware;
105
161
  private buildAgent;
106
162
  /**
107
163
  * Pull every option whose key lives in :data:`LLM_BIND_OPTIONS` and return a
@@ -115,6 +171,17 @@ export declare class CompresrEngine {
115
171
  */
116
172
  private extractBindOptions;
117
173
  run(options: RunOptions): Promise<NormalizedResult>;
174
+ /**
175
+ * Auto-route handler for solo-WebSearchTool calls.
176
+ *
177
+ * Constructs a {@link ResearchAgent}, runs its strict-output loop against
178
+ * the last user message, then feeds the resulting message chain back through
179
+ * {@link normalize} so each facade still gets its expected shape.
180
+ *
181
+ * The caller's ``system`` wins when supplied as a non-empty string; otherwise
182
+ * the research-agent default prompt is used.
183
+ */
184
+ private runViaResearchLoop;
118
185
  private normalize;
119
186
  }
120
187
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/agents/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/agents/engine.ts"],"names":[],"mappings":"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"}