@lacneu/openclaw-knowledge 3.1.2 → 3.2.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.
- package/CHANGELOG.md +368 -1
- package/README.md +131 -0
- package/dist/config.d.ts +4 -0
- package/dist/config.js +26 -0
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +61 -4
- package/dist/index.js +463 -50
- package/dist/index.js.map +1 -1
- package/dist/jina/classifier.d.ts +55 -0
- package/dist/jina/classifier.js +170 -0
- package/dist/jina/classifier.js.map +1 -0
- package/dist/jina/client.d.ts +30 -0
- package/dist/jina/client.js +131 -0
- package/dist/jina/client.js.map +1 -0
- package/dist/jina/errors.d.ts +42 -0
- package/dist/jina/errors.js +113 -0
- package/dist/jina/errors.js.map +1 -0
- package/dist/jina/reranker.d.ts +34 -0
- package/dist/jina/reranker.js +95 -0
- package/dist/jina/reranker.js.map +1 -0
- package/dist/jina/types.d.ts +78 -0
- package/dist/jina/types.js +12 -0
- package/dist/jina/types.js.map +1 -0
- package/dist/pgvector.d.ts +29 -0
- package/dist/pgvector.js +68 -0
- package/dist/pgvector.js.map +1 -1
- package/dist/router/heuristic.d.ts +29 -0
- package/dist/router/heuristic.js +104 -0
- package/dist/router/heuristic.js.map +1 -0
- package/dist/router/index.d.ts +33 -0
- package/dist/router/index.js +94 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/labels.d.ts +33 -0
- package/dist/router/labels.js +67 -0
- package/dist/router/labels.js.map +1 -0
- package/dist/router/types.d.ts +23 -0
- package/dist/router/types.js +7 -0
- package/dist/router/types.js.map +1 -0
- package/dist/tracing/events.d.ts +83 -0
- package/dist/tracing/events.js +86 -0
- package/dist/tracing/events.js.map +1 -0
- package/dist/types.d.ts +61 -1
- package/openclaw.plugin.json +97 -4
- package/package.json +3 -3
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { ClassificationOutcome, ClassifierEmbeddingModel } from "./types.js";
|
|
2
|
+
export interface ZeroShotClassifyParams {
|
|
3
|
+
apiKey: string;
|
|
4
|
+
text: string;
|
|
5
|
+
labels: string[];
|
|
6
|
+
model?: ClassifierEmbeddingModel;
|
|
7
|
+
timeoutMs?: number;
|
|
8
|
+
signal?: AbortSignal;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Classify `text` against a list of semantic labels.
|
|
12
|
+
*
|
|
13
|
+
* Returns `null` when:
|
|
14
|
+
* - the response shape is unexpected (Jina rev mismatch),
|
|
15
|
+
* - the predicted label does not exactly match any provided label (we
|
|
16
|
+
* refuse to invent a class — the router should treat this as "unknown").
|
|
17
|
+
*
|
|
18
|
+
* Throws on network / API errors so the caller's circuit breaker can react.
|
|
19
|
+
*/
|
|
20
|
+
export declare function classifyZeroShot({ apiKey, text, labels, model, timeoutMs, signal, }: ZeroShotClassifyParams): Promise<ClassificationOutcome | null>;
|
|
21
|
+
export interface FewShotClassifyParams {
|
|
22
|
+
apiKey: string;
|
|
23
|
+
text: string;
|
|
24
|
+
classifierId: string;
|
|
25
|
+
/**
|
|
26
|
+
* Optional whitelist used by the defensive parser to verify that the
|
|
27
|
+
* returned label is one the caller expects. When omitted, any non-empty
|
|
28
|
+
* string returned by Jina is accepted (caller knows what was trained).
|
|
29
|
+
*/
|
|
30
|
+
expectedLabels?: string[];
|
|
31
|
+
timeoutMs?: number;
|
|
32
|
+
signal?: AbortSignal;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Classify `text` using a pre-trained few-shot classifier identified by
|
|
36
|
+
* `classifierId`. Same `null`-vs-throw contract as `classifyZeroShot`.
|
|
37
|
+
*/
|
|
38
|
+
export declare function classifyFewShot({ apiKey, text, classifierId, expectedLabels, timeoutMs, signal, }: FewShotClassifyParams): Promise<ClassificationOutcome | null>;
|
|
39
|
+
/**
|
|
40
|
+
* Extract the predicted label + optional score from a Classifier response.
|
|
41
|
+
*
|
|
42
|
+
* Known shapes (in order tried):
|
|
43
|
+
* 1. `{ data: [ { predictions: [ { label, score } ] } ] }`
|
|
44
|
+
* 2. `{ results: [ { label, score } ] }`
|
|
45
|
+
* 3. `{ data: [ { label, score } ] }`
|
|
46
|
+
* 4. `{ data: [ { prediction, confidence } ] }`
|
|
47
|
+
*
|
|
48
|
+
* The first match wins. When `allowedLabels` is provided, the picked label
|
|
49
|
+
* MUST be an exact (case-sensitive) member — otherwise we return `null` and
|
|
50
|
+
* the caller falls back to its safe default (the router treats `null` like
|
|
51
|
+
* an outage).
|
|
52
|
+
*
|
|
53
|
+
* @internal exported only for unit testing
|
|
54
|
+
*/
|
|
55
|
+
export declare function parseClassificationResponse(raw: unknown, allowedLabels?: string[]): ClassificationOutcome | null;
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
// Jina Classifier client.
|
|
2
|
+
//
|
|
3
|
+
// Wraps POST /v1/classify in both modes:
|
|
4
|
+
//
|
|
5
|
+
// - **zero-shot** — caller supplies `labels`; Jina embeds them on the fly
|
|
6
|
+
// and matches against the input. Up to 256 classes.
|
|
7
|
+
// Stateless.
|
|
8
|
+
//
|
|
9
|
+
// - **few-shot** — caller supplies a `classifier_id` from a prior
|
|
10
|
+
// training run. The plugin does NOT implement training
|
|
11
|
+
// (/v1/train) — that is an explicit out-of-band step
|
|
12
|
+
// performed via the Jina Playground or a one-off
|
|
13
|
+
// script. Rationale: training is a rare, deliberate
|
|
14
|
+
// act; baking it into the plugin would invite
|
|
15
|
+
// accidental retraining on every plugin reload.
|
|
16
|
+
//
|
|
17
|
+
// Defensive response parsing:
|
|
18
|
+
// Jina has historically used several field names for the predicted label
|
|
19
|
+
// across docs revisions: `predictions[0].label`, `predictions[0].prediction`,
|
|
20
|
+
// `label`, `prediction`. The parser tries each known path in turn and falls
|
|
21
|
+
// back to `null` if none matches (callers treat `null` like a Jina outage
|
|
22
|
+
// → fail-open route).
|
|
23
|
+
import { postJson } from "./client.js";
|
|
24
|
+
const CLASSIFY_URL = "https://api.jina.ai/v1/classify";
|
|
25
|
+
/** Defaults aligned with the plugin's "no-config" mode. */
|
|
26
|
+
const DEFAULT_CLASSIFIER_MODEL = "jina-embeddings-v3";
|
|
27
|
+
/**
|
|
28
|
+
* Classify `text` against a list of semantic labels.
|
|
29
|
+
*
|
|
30
|
+
* Returns `null` when:
|
|
31
|
+
* - the response shape is unexpected (Jina rev mismatch),
|
|
32
|
+
* - the predicted label does not exactly match any provided label (we
|
|
33
|
+
* refuse to invent a class — the router should treat this as "unknown").
|
|
34
|
+
*
|
|
35
|
+
* Throws on network / API errors so the caller's circuit breaker can react.
|
|
36
|
+
*/
|
|
37
|
+
export async function classifyZeroShot({ apiKey, text, labels, model = DEFAULT_CLASSIFIER_MODEL, timeoutMs, signal, }) {
|
|
38
|
+
if (labels.length < 2) {
|
|
39
|
+
// Jina rejects requests with fewer than 2 labels; surface a clearer
|
|
40
|
+
// error than the upstream's generic 400.
|
|
41
|
+
throw new Error("classifyZeroShot: at least 2 labels are required");
|
|
42
|
+
}
|
|
43
|
+
const body = {
|
|
44
|
+
model,
|
|
45
|
+
input: [{ text }],
|
|
46
|
+
labels,
|
|
47
|
+
};
|
|
48
|
+
const raw = await postJson({
|
|
49
|
+
url: CLASSIFY_URL,
|
|
50
|
+
body,
|
|
51
|
+
apiKey,
|
|
52
|
+
timeoutMs,
|
|
53
|
+
signal,
|
|
54
|
+
});
|
|
55
|
+
return parseClassificationResponse(raw, labels);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Classify `text` using a pre-trained few-shot classifier identified by
|
|
59
|
+
* `classifierId`. Same `null`-vs-throw contract as `classifyZeroShot`.
|
|
60
|
+
*/
|
|
61
|
+
export async function classifyFewShot({ apiKey, text, classifierId, expectedLabels, timeoutMs, signal, }) {
|
|
62
|
+
if (!classifierId) {
|
|
63
|
+
throw new Error("classifyFewShot: classifierId is required");
|
|
64
|
+
}
|
|
65
|
+
const body = {
|
|
66
|
+
classifier_id: classifierId,
|
|
67
|
+
input: [{ text }],
|
|
68
|
+
};
|
|
69
|
+
const raw = await postJson({
|
|
70
|
+
url: CLASSIFY_URL,
|
|
71
|
+
body,
|
|
72
|
+
apiKey,
|
|
73
|
+
timeoutMs,
|
|
74
|
+
signal,
|
|
75
|
+
});
|
|
76
|
+
return parseClassificationResponse(raw, expectedLabels);
|
|
77
|
+
}
|
|
78
|
+
// ---------------------------------------------------------------------------
|
|
79
|
+
// Defensive response parser
|
|
80
|
+
// ---------------------------------------------------------------------------
|
|
81
|
+
/**
|
|
82
|
+
* Extract the predicted label + optional score from a Classifier response.
|
|
83
|
+
*
|
|
84
|
+
* Known shapes (in order tried):
|
|
85
|
+
* 1. `{ data: [ { predictions: [ { label, score } ] } ] }`
|
|
86
|
+
* 2. `{ results: [ { label, score } ] }`
|
|
87
|
+
* 3. `{ data: [ { label, score } ] }`
|
|
88
|
+
* 4. `{ data: [ { prediction, confidence } ] }`
|
|
89
|
+
*
|
|
90
|
+
* The first match wins. When `allowedLabels` is provided, the picked label
|
|
91
|
+
* MUST be an exact (case-sensitive) member — otherwise we return `null` and
|
|
92
|
+
* the caller falls back to its safe default (the router treats `null` like
|
|
93
|
+
* an outage).
|
|
94
|
+
*
|
|
95
|
+
* @internal exported only for unit testing
|
|
96
|
+
*/
|
|
97
|
+
export function parseClassificationResponse(raw, allowedLabels) {
|
|
98
|
+
const candidates = extractCandidates(raw);
|
|
99
|
+
for (const candidate of candidates) {
|
|
100
|
+
const label = candidate.label;
|
|
101
|
+
if (typeof label !== "string" || label.length === 0)
|
|
102
|
+
continue;
|
|
103
|
+
if (allowedLabels && allowedLabels.length > 0 && !allowedLabels.includes(label)) {
|
|
104
|
+
// Silent skip — Jina occasionally hallucinates a "best" label that
|
|
105
|
+
// is not in the input set. We never invent a class.
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
return {
|
|
109
|
+
label,
|
|
110
|
+
score: typeof candidate.score === "number" ? candidate.score : null,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
function extractCandidates(raw) {
|
|
116
|
+
if (!isRecord(raw))
|
|
117
|
+
return [];
|
|
118
|
+
const candidates = [];
|
|
119
|
+
// Shape #1: data[].predictions[] — newer Jina docs. Falls through when
|
|
120
|
+
// `predictions` is empty so the same payload can still be parsed via
|
|
121
|
+
// shape #3 (data[] flat) below.
|
|
122
|
+
if (Array.isArray(raw.data) && raw.data.length > 0) {
|
|
123
|
+
const first = raw.data[0];
|
|
124
|
+
if (isRecord(first) && Array.isArray(first.predictions)) {
|
|
125
|
+
for (const p of first.predictions) {
|
|
126
|
+
if (!isRecord(p))
|
|
127
|
+
continue;
|
|
128
|
+
candidates.push({
|
|
129
|
+
label: p.label ?? p.prediction,
|
|
130
|
+
score: p.score ?? p.confidence,
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
// Shape #2: results[] — older docs / few-shot path.
|
|
136
|
+
if (Array.isArray(raw.results)) {
|
|
137
|
+
for (const r of raw.results) {
|
|
138
|
+
if (!isRecord(r))
|
|
139
|
+
continue;
|
|
140
|
+
candidates.push({
|
|
141
|
+
label: r.label ?? r.prediction,
|
|
142
|
+
score: r.score ?? r.confidence,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// Shape #3 & #4: data[] flat — `{label, score}` or `{prediction, confidence}`.
|
|
147
|
+
if (Array.isArray(raw.data)) {
|
|
148
|
+
for (const d of raw.data) {
|
|
149
|
+
if (!isRecord(d))
|
|
150
|
+
continue;
|
|
151
|
+
// Only push if at least one of the recognized keys is present, to
|
|
152
|
+
// avoid duplicating the predictions[] entries already captured above
|
|
153
|
+
// when both shapes are present on the same record.
|
|
154
|
+
if (d.label !== undefined ||
|
|
155
|
+
d.prediction !== undefined ||
|
|
156
|
+
d.score !== undefined ||
|
|
157
|
+
d.confidence !== undefined) {
|
|
158
|
+
candidates.push({
|
|
159
|
+
label: d.label ?? d.prediction,
|
|
160
|
+
score: d.score ?? d.confidence,
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return candidates;
|
|
166
|
+
}
|
|
167
|
+
function isRecord(value) {
|
|
168
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=classifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classifier.js","sourceRoot":"","sources":["../../src/jina/classifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** Options accepted by every Jina request helper. */
|
|
2
|
+
export interface JinaRequestOptions {
|
|
3
|
+
/** Bearer token sent in `Authorization`. Required. */
|
|
4
|
+
apiKey: string;
|
|
5
|
+
/** Override the default 8 s timeout. */
|
|
6
|
+
timeoutMs?: number;
|
|
7
|
+
/**
|
|
8
|
+
* Optional AbortSignal from the caller. Composed with the internal timeout
|
|
9
|
+
* signal so either source can cancel the request.
|
|
10
|
+
*/
|
|
11
|
+
signal?: AbortSignal;
|
|
12
|
+
}
|
|
13
|
+
interface PostJsonParams<Req> extends JinaRequestOptions {
|
|
14
|
+
url: string;
|
|
15
|
+
body: Req;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* POST `body` to `url` as JSON, return the parsed JSON response as `unknown`.
|
|
19
|
+
*
|
|
20
|
+
* The response is `unknown` on purpose: callers MUST narrow it with their
|
|
21
|
+
* own defensive parser (Jina occasionally changes response shapes).
|
|
22
|
+
*
|
|
23
|
+
* @throws {JinaAuthError} on 401/403
|
|
24
|
+
* @throws {JinaRateLimitError} on 429
|
|
25
|
+
* @throws {JinaApiError} on any other non-OK status (incl. HTML
|
|
26
|
+
* bodies from upstream CDNs/LBs)
|
|
27
|
+
* @throws {JinaNetworkError} on fetch failure, abort, or timeout
|
|
28
|
+
*/
|
|
29
|
+
export declare function postJson<Req>({ url, body, apiKey, timeoutMs, signal: callerSignal, }: PostJsonParams<Req>): Promise<unknown>;
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
// HTTP client for the Jina AI cloud API.
|
|
2
|
+
//
|
|
3
|
+
// Centralized so every endpoint wrapper (classifier, reranker) shares the
|
|
4
|
+
// same auth, timeout, and error handling. The client is intentionally tiny
|
|
5
|
+
// and dependency-free — `fetch` + `AbortController` only.
|
|
6
|
+
//
|
|
7
|
+
// Design choices:
|
|
8
|
+
//
|
|
9
|
+
// 1. **Bearer-only auth.** The API key is sent in the `Authorization` header,
|
|
10
|
+
// never in the URL or in error messages. Operators copy the key from the
|
|
11
|
+
// Jina console into the plugin config (with `${JINA_API_KEY}` env
|
|
12
|
+
// substitution) and that's the only place it touches.
|
|
13
|
+
//
|
|
14
|
+
// 2. **Hard timeout via AbortController, covering BOTH the connection AND
|
|
15
|
+
// the body read.** A stalled connection — or, worse, an endpoint that
|
|
16
|
+
// sends headers immediately but never finishes streaming the body —
|
|
17
|
+
// would otherwise hold the agent turn open until the SDK's outer
|
|
18
|
+
// timeout kicks in (usually too long). The internal `controller`
|
|
19
|
+
// remains armed until JSON.parse completes, so `resp.text()` is
|
|
20
|
+
// cancelled by the same `controller.abort()` call as the underlying
|
|
21
|
+
// fetch. Default 8 s — comfortable for cross-Atlantic Jina latency but
|
|
22
|
+
// short enough to keep `before_prompt_build` snappy.
|
|
23
|
+
//
|
|
24
|
+
// 3. **Defensive JSON parsing.** Some upstream errors (502 from a CDN, 503
|
|
25
|
+
// from a load balancer in front of Jina) return HTML, not JSON. Treating
|
|
26
|
+
// the body as JSON without try/catch would crash the plugin with a
|
|
27
|
+
// SyntaxError. We always read as text first, then try to parse; failures
|
|
28
|
+
// become `JinaApiError` with a 200-char body preview.
|
|
29
|
+
//
|
|
30
|
+
// 4. **No automatic retry on 5xx.** The plugin's outer circuit breaker
|
|
31
|
+
// already handles repeated failures (3 errors → 5 min cooldown). Retrying
|
|
32
|
+
// here would just consume more tokens during an outage. Callers that want
|
|
33
|
+
// retries should layer them above this client.
|
|
34
|
+
import { errorForStatus, JinaApiError, JinaNetworkError, previewBody, } from "./errors.js";
|
|
35
|
+
const DEFAULT_TIMEOUT_MS = 8_000;
|
|
36
|
+
/**
|
|
37
|
+
* POST `body` to `url` as JSON, return the parsed JSON response as `unknown`.
|
|
38
|
+
*
|
|
39
|
+
* The response is `unknown` on purpose: callers MUST narrow it with their
|
|
40
|
+
* own defensive parser (Jina occasionally changes response shapes).
|
|
41
|
+
*
|
|
42
|
+
* @throws {JinaAuthError} on 401/403
|
|
43
|
+
* @throws {JinaRateLimitError} on 429
|
|
44
|
+
* @throws {JinaApiError} on any other non-OK status (incl. HTML
|
|
45
|
+
* bodies from upstream CDNs/LBs)
|
|
46
|
+
* @throws {JinaNetworkError} on fetch failure, abort, or timeout
|
|
47
|
+
*/
|
|
48
|
+
export async function postJson({ url, body, apiKey, timeoutMs = DEFAULT_TIMEOUT_MS, signal: callerSignal, }) {
|
|
49
|
+
const controller = new AbortController();
|
|
50
|
+
const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
|
|
51
|
+
// If the caller supplied a signal, abort the local controller when it
|
|
52
|
+
// fires so both signals merge into one.
|
|
53
|
+
const onCallerAbort = () => controller.abort();
|
|
54
|
+
if (callerSignal) {
|
|
55
|
+
if (callerSignal.aborted)
|
|
56
|
+
controller.abort();
|
|
57
|
+
else
|
|
58
|
+
callerSignal.addEventListener("abort", onCallerAbort, { once: true });
|
|
59
|
+
}
|
|
60
|
+
try {
|
|
61
|
+
let resp;
|
|
62
|
+
try {
|
|
63
|
+
resp = await fetch(url, {
|
|
64
|
+
method: "POST",
|
|
65
|
+
headers: {
|
|
66
|
+
"Content-Type": "application/json",
|
|
67
|
+
Accept: "application/json",
|
|
68
|
+
Authorization: `Bearer ${apiKey}`,
|
|
69
|
+
},
|
|
70
|
+
body: JSON.stringify(body),
|
|
71
|
+
signal: controller.signal,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
throw new JinaNetworkError(networkErrorReason(controller, timeoutMs), err);
|
|
76
|
+
}
|
|
77
|
+
// IMPORTANT: the body read happens BEFORE the timeout is cleared. If
|
|
78
|
+
// the upstream server sends headers immediately but stalls or slowly
|
|
79
|
+
// streams the body, `controller.abort()` (still armed) will reject
|
|
80
|
+
// `resp.text()` with the underlying fetch's abort reason. Without
|
|
81
|
+
// this, the hook could hang for the SDK's outer timeout window.
|
|
82
|
+
const rawBody = await safeReadText(resp, controller, timeoutMs);
|
|
83
|
+
if (!resp.ok) {
|
|
84
|
+
throw errorForStatus(resp.status, previewBody(rawBody));
|
|
85
|
+
}
|
|
86
|
+
try {
|
|
87
|
+
return JSON.parse(rawBody);
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
// Upstream sometimes returns HTML on partial failures even with HTTP 200.
|
|
91
|
+
throw new JinaApiError(resp.status, previewBody(rawBody));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
finally {
|
|
95
|
+
clearTimeout(timeoutId);
|
|
96
|
+
if (callerSignal)
|
|
97
|
+
callerSignal.removeEventListener("abort", onCallerAbort);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Read the response body as text under the same abort controller as the
|
|
102
|
+
* underlying fetch. A connection that delivered headers but stalls on the
|
|
103
|
+
* body is the failure mode this guards against: when `controller.abort()`
|
|
104
|
+
* fires (timeout OR caller-initiated), the WHATWG fetch spec rejects the
|
|
105
|
+
* pending `resp.text()` promise with the abort reason.
|
|
106
|
+
*
|
|
107
|
+
* Errors during read are mapped:
|
|
108
|
+
* - aborted by timeout/caller → re-throw as `JinaNetworkError`
|
|
109
|
+
* - any other I/O failure → empty string (we still want to attempt
|
|
110
|
+
* error mapping based on the HTTP status)
|
|
111
|
+
*/
|
|
112
|
+
async function safeReadText(resp, controller, timeoutMs) {
|
|
113
|
+
try {
|
|
114
|
+
return await resp.text();
|
|
115
|
+
}
|
|
116
|
+
catch (err) {
|
|
117
|
+
if (controller.signal.aborted) {
|
|
118
|
+
throw new JinaNetworkError(networkErrorReason(controller, timeoutMs), err);
|
|
119
|
+
}
|
|
120
|
+
return "";
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Format a consistent reason string for a network-level failure.
|
|
125
|
+
* The two distinct cases (timeout vs. raw fetch error) need different
|
|
126
|
+
* wording for log readability.
|
|
127
|
+
*/
|
|
128
|
+
function networkErrorReason(controller, timeoutMs) {
|
|
129
|
+
return controller.signal.aborted ? `timed out after ${timeoutMs}ms` : "fetch failed";
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/jina/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/** Truncate an upstream error body to a safe length for logging. */
|
|
2
|
+
export declare function previewBody(body: string): string;
|
|
3
|
+
/** Base class for any Jina-related error. */
|
|
4
|
+
export declare class JinaError extends Error {
|
|
5
|
+
constructor(message: string);
|
|
6
|
+
}
|
|
7
|
+
/** 401/403 — operator must rotate or refill the API key. */
|
|
8
|
+
export declare class JinaAuthError extends JinaError {
|
|
9
|
+
constructor(status: number, bodyPreview: string);
|
|
10
|
+
}
|
|
11
|
+
/** 429 — Jina backed off; transient. */
|
|
12
|
+
export declare class JinaRateLimitError extends JinaError {
|
|
13
|
+
constructor(bodyPreview: string);
|
|
14
|
+
}
|
|
15
|
+
/** Any other non-OK HTTP response. */
|
|
16
|
+
export declare class JinaApiError extends JinaError {
|
|
17
|
+
readonly status: number;
|
|
18
|
+
constructor(status: number, bodyPreview: string);
|
|
19
|
+
}
|
|
20
|
+
/** Network failure, abort, timeout. `cause` carries the original error. */
|
|
21
|
+
export declare class JinaNetworkError extends JinaError {
|
|
22
|
+
constructor(reason: string, cause?: unknown);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Classify an HTTP status code into the appropriate Jina error class.
|
|
26
|
+
* Centralized so every endpoint wrapper produces consistent errors.
|
|
27
|
+
*/
|
|
28
|
+
export declare function errorForStatus(status: number, bodyPreview: string): JinaError;
|
|
29
|
+
/**
|
|
30
|
+
* Build a privacy-safe one-line description of any thrown value, suitable
|
|
31
|
+
* for `logger.error(...)` in the hook handler.
|
|
32
|
+
*
|
|
33
|
+
* IMPORTANT: this MUST NOT include the upstream body preview that
|
|
34
|
+
* `JinaError.message` carries — that preview can echo the user query or
|
|
35
|
+
* document chunks if Jina's error path mirrors the request. We expose
|
|
36
|
+
* only the error CLASS and (when applicable) the HTTP status code.
|
|
37
|
+
*
|
|
38
|
+
* Non-Jina errors fall through to `error.name`, which is safe by design
|
|
39
|
+
* (it's a class name, not a message). The raw message of an unknown
|
|
40
|
+
* error is NEVER logged here.
|
|
41
|
+
*/
|
|
42
|
+
export declare function summarizeJinaError(err: unknown): string;
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
// Typed errors for Jina API calls.
|
|
2
|
+
//
|
|
3
|
+
// We distinguish three failure modes the caller may want to react to
|
|
4
|
+
// differently:
|
|
5
|
+
//
|
|
6
|
+
// - `JinaAuthError` → API key invalid/expired. Permanent until the
|
|
7
|
+
// operator fixes the config; no point retrying.
|
|
8
|
+
// - `JinaRateLimitError` → 429 from Jina. Transient; the circuit breaker
|
|
9
|
+
// should back off but the plugin remains usable
|
|
10
|
+
// on the next turn.
|
|
11
|
+
// - `JinaApiError` → generic non-OK response. Catches every 4xx/5xx
|
|
12
|
+
// that isn't auth or rate-limit.
|
|
13
|
+
// - `JinaNetworkError` → fetch threw / aborted before we got a response.
|
|
14
|
+
// Includes timeouts.
|
|
15
|
+
//
|
|
16
|
+
// All concrete classes extend `JinaError` so callers can `catch (e instanceof
|
|
17
|
+
// JinaError)` to handle them uniformly when they don't care about the
|
|
18
|
+
// subtype.
|
|
19
|
+
//
|
|
20
|
+
// IMPORTANT: error messages NEVER include the API key, the full request body,
|
|
21
|
+
// or the user query verbatim. Bodies are truncated to 200 chars to match the
|
|
22
|
+
// existing pattern in `embeddings.ts` and `lightrag.ts`.
|
|
23
|
+
const ERROR_BODY_PREVIEW_CHARS = 200;
|
|
24
|
+
/** Truncate an upstream error body to a safe length for logging. */
|
|
25
|
+
export function previewBody(body) {
|
|
26
|
+
if (body.length <= ERROR_BODY_PREVIEW_CHARS)
|
|
27
|
+
return body;
|
|
28
|
+
return body.slice(0, ERROR_BODY_PREVIEW_CHARS);
|
|
29
|
+
}
|
|
30
|
+
/** Base class for any Jina-related error. */
|
|
31
|
+
export class JinaError extends Error {
|
|
32
|
+
constructor(message) {
|
|
33
|
+
super(message);
|
|
34
|
+
this.name = "JinaError";
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/** 401/403 — operator must rotate or refill the API key. */
|
|
38
|
+
export class JinaAuthError extends JinaError {
|
|
39
|
+
constructor(status, bodyPreview) {
|
|
40
|
+
super(`Jina auth failed (${status}): ${bodyPreview}`);
|
|
41
|
+
this.name = "JinaAuthError";
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/** 429 — Jina backed off; transient. */
|
|
45
|
+
export class JinaRateLimitError extends JinaError {
|
|
46
|
+
constructor(bodyPreview) {
|
|
47
|
+
super(`Jina rate-limited (429): ${bodyPreview}`);
|
|
48
|
+
this.name = "JinaRateLimitError";
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/** Any other non-OK HTTP response. */
|
|
52
|
+
export class JinaApiError extends JinaError {
|
|
53
|
+
status;
|
|
54
|
+
constructor(status, bodyPreview) {
|
|
55
|
+
super(`Jina request failed (${status}): ${bodyPreview}`);
|
|
56
|
+
this.status = status;
|
|
57
|
+
this.name = "JinaApiError";
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/** Network failure, abort, timeout. `cause` carries the original error. */
|
|
61
|
+
export class JinaNetworkError extends JinaError {
|
|
62
|
+
constructor(reason, cause) {
|
|
63
|
+
super(`Jina network error: ${reason}`);
|
|
64
|
+
this.name = "JinaNetworkError";
|
|
65
|
+
if (cause !== undefined) {
|
|
66
|
+
// `Error.cause` is standard since ES2022; keep it readable in stack
|
|
67
|
+
// traces without leaking sensitive context.
|
|
68
|
+
this.cause = cause;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Classify an HTTP status code into the appropriate Jina error class.
|
|
74
|
+
* Centralized so every endpoint wrapper produces consistent errors.
|
|
75
|
+
*/
|
|
76
|
+
export function errorForStatus(status, bodyPreview) {
|
|
77
|
+
if (status === 401 || status === 403) {
|
|
78
|
+
return new JinaAuthError(status, bodyPreview);
|
|
79
|
+
}
|
|
80
|
+
if (status === 429) {
|
|
81
|
+
return new JinaRateLimitError(bodyPreview);
|
|
82
|
+
}
|
|
83
|
+
return new JinaApiError(status, bodyPreview);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Build a privacy-safe one-line description of any thrown value, suitable
|
|
87
|
+
* for `logger.error(...)` in the hook handler.
|
|
88
|
+
*
|
|
89
|
+
* IMPORTANT: this MUST NOT include the upstream body preview that
|
|
90
|
+
* `JinaError.message` carries — that preview can echo the user query or
|
|
91
|
+
* document chunks if Jina's error path mirrors the request. We expose
|
|
92
|
+
* only the error CLASS and (when applicable) the HTTP status code.
|
|
93
|
+
*
|
|
94
|
+
* Non-Jina errors fall through to `error.name`, which is safe by design
|
|
95
|
+
* (it's a class name, not a message). The raw message of an unknown
|
|
96
|
+
* error is NEVER logged here.
|
|
97
|
+
*/
|
|
98
|
+
export function summarizeJinaError(err) {
|
|
99
|
+
if (err instanceof JinaApiError)
|
|
100
|
+
return `JinaApiError(status=${err.status})`;
|
|
101
|
+
if (err instanceof JinaAuthError)
|
|
102
|
+
return "JinaAuthError";
|
|
103
|
+
if (err instanceof JinaRateLimitError)
|
|
104
|
+
return "JinaRateLimitError";
|
|
105
|
+
if (err instanceof JinaNetworkError)
|
|
106
|
+
return "JinaNetworkError";
|
|
107
|
+
if (err instanceof JinaError)
|
|
108
|
+
return err.name;
|
|
109
|
+
if (err instanceof Error)
|
|
110
|
+
return err.name;
|
|
111
|
+
return "unknown-error";
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/jina/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { RerankedItem, RerankerModel } from "./types.js";
|
|
2
|
+
export interface RerankParams {
|
|
3
|
+
apiKey: string;
|
|
4
|
+
query: string;
|
|
5
|
+
/** Document texts to rerank. Order MUST match the caller's source array. */
|
|
6
|
+
documents: string[];
|
|
7
|
+
/** Override the default model. */
|
|
8
|
+
model?: RerankerModel;
|
|
9
|
+
/**
|
|
10
|
+
* Keep only the top-N results. When omitted, Jina returns all reranked
|
|
11
|
+
* items (still useful when the caller wants to keep full ordering).
|
|
12
|
+
*/
|
|
13
|
+
topN?: number;
|
|
14
|
+
timeoutMs?: number;
|
|
15
|
+
signal?: AbortSignal;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Rerank `documents` against `query` and return the new ordering.
|
|
19
|
+
*
|
|
20
|
+
* Each item carries the ORIGINAL index from the input array plus the new
|
|
21
|
+
* relevance score. Callers should use the `index` to look up their own
|
|
22
|
+
* data structures rather than relying on document text.
|
|
23
|
+
*
|
|
24
|
+
* @returns `[]` for an empty input (no API call) or when the response
|
|
25
|
+
* shape is unrecognized (fail-open semantics).
|
|
26
|
+
* @throws on network / auth / API errors so the cooldown breaker can react.
|
|
27
|
+
*/
|
|
28
|
+
export declare function rerank({ apiKey, query, documents, model, topN, timeoutMs, signal, }: RerankParams): Promise<RerankedItem[]>;
|
|
29
|
+
/**
|
|
30
|
+
* Defensive parser for the /v1/rerank response.
|
|
31
|
+
*
|
|
32
|
+
* @internal exported for unit testing
|
|
33
|
+
*/
|
|
34
|
+
export declare function parseRerankResponse(raw: unknown, inputCount: number): RerankedItem[];
|