@zdql/agentcash-web-search 0.0.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.
@@ -0,0 +1,4 @@
1
+ import type { AgentCashSearchClient, AgentCashSearchClientOptions, ResourceInvocationEvent } from './schema.js';
2
+ export declare function createSearchClient(options?: AgentCashSearchClientOptions): AgentCashSearchClient;
3
+ export declare function recordResourceInvocations(input: ResourceInvocationEvent | ResourceInvocationEvent[], options?: AgentCashSearchClientOptions): Promise<import("./schema.js").InvocationIngestResponse>;
4
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAErB,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,4BAAiC,GAAG,qBAAqB,CA4BpG;AAED,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,uBAAuB,GAAG,uBAAuB,EAAE,EAC1D,OAAO,GAAE,4BAAiC,2DAG3C"}
package/dist/client.js ADDED
@@ -0,0 +1,32 @@
1
+ import { baseUrlOf, invocationsUrl, parseInvocationIngestResponse, parseJsonResponse, parseSearchResponse, searchUrl, } from './utils.js';
2
+ export function createSearchClient(options = {}) {
3
+ const baseUrl = baseUrlOf(options.baseUrl);
4
+ const fetchImpl = options.fetch ?? fetch;
5
+ const headers = {
6
+ ...Object.fromEntries(new Headers(options.headers)),
7
+ 'content-type': 'application/json',
8
+ };
9
+ return {
10
+ async search(input) {
11
+ const response = await fetchImpl(searchUrl(baseUrl), {
12
+ method: 'POST',
13
+ headers,
14
+ body: JSON.stringify(input),
15
+ });
16
+ return parseJsonResponse(response, parseSearchResponse);
17
+ },
18
+ async recordInvocations(input) {
19
+ const events = Array.isArray(input) ? input : [input];
20
+ const response = await fetchImpl(invocationsUrl(baseUrl), {
21
+ method: 'POST',
22
+ headers,
23
+ body: JSON.stringify({ events }),
24
+ });
25
+ return parseJsonResponse(response, parseInvocationIngestResponse);
26
+ },
27
+ };
28
+ }
29
+ export async function recordResourceInvocations(input, options = {}) {
30
+ return createSearchClient(options).recordInvocations(input);
31
+ }
32
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,cAAc,EACd,6BAA6B,EAC7B,iBAAiB,EACjB,mBAAmB,EACnB,SAAS,GACV,MAAM,YAAY,CAAC;AAOpB,MAAM,UAAU,kBAAkB,CAAC,UAAwC,EAAE;IAC3E,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IACzC,MAAM,OAAO,GAAG;QACd,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACnD,cAAc,EAAE,kBAAkB;KACnC,CAAC;IAEF,OAAO;QACL,KAAK,CAAC,MAAM,CAAC,KAAK;YAChB,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBACnD,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;aAC5B,CAAC,CAAC;YACH,OAAO,iBAAiB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QAC1D,CAAC;QAED,KAAK,CAAC,iBAAiB,CAAC,KAAK;YAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACtD,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;gBACxD,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;aACjC,CAAC,CAAC;YACH,OAAO,iBAAiB,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;QACpE,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,KAA0D,EAC1D,UAAwC,EAAE;IAE1C,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare class AgentCashSearchClientError extends Error {
2
+ readonly status: number;
3
+ readonly body: string;
4
+ constructor(message: string, status: number, body: string);
5
+ }
6
+ export declare class AgentCashSearchClientResponseError extends Error {
7
+ readonly status: number;
8
+ readonly body: string;
9
+ constructor(message: string, status: number, body: string);
10
+ }
11
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAM1D;AAED,qBAAa,kCAAmC,SAAQ,KAAK;IAC3D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAM1D"}
package/dist/errors.js ADDED
@@ -0,0 +1,21 @@
1
+ export class AgentCashSearchClientError extends Error {
2
+ status;
3
+ body;
4
+ constructor(message, status, body) {
5
+ super(message);
6
+ this.name = 'AgentCashSearchClientError';
7
+ this.status = status;
8
+ this.body = body;
9
+ }
10
+ }
11
+ export class AgentCashSearchClientResponseError extends Error {
12
+ status;
13
+ body;
14
+ constructor(message, status, body) {
15
+ super(message);
16
+ this.name = 'AgentCashSearchClientResponseError';
17
+ this.status = status;
18
+ this.body = body;
19
+ }
20
+ }
21
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAC1C,MAAM,CAAS;IACf,IAAI,CAAS;IAEtB,YAAY,OAAe,EAAE,MAAc,EAAE,IAAY;QACvD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,kCAAmC,SAAQ,KAAK;IAClD,MAAM,CAAS;IACf,IAAI,CAAS;IAEtB,YAAY,OAAe,EAAE,MAAc,EAAE,IAAY;QACvD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oCAAoC,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ export * from './schema.js';
2
+ export * from './client.js';
3
+ export * from './errors.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export * from './schema.js';
2
+ export * from './client.js';
3
+ export * from './errors.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,94 @@
1
+ export type SearchBody = {
2
+ limit?: number;
3
+ page?: number;
4
+ version?: string;
5
+ app?: string;
6
+ client?: string;
7
+ sessionId?: string;
8
+ } & ({
9
+ query: string;
10
+ q?: string;
11
+ } | {
12
+ query?: string;
13
+ q: string;
14
+ });
15
+ export interface AgentCashSearchClientOptions {
16
+ baseUrl?: string | URL;
17
+ fetch?: typeof fetch;
18
+ headers?: HeadersInit;
19
+ }
20
+ export interface AgentCashSearchClient {
21
+ search(input: SearchBody): Promise<SearchResponse>;
22
+ recordInvocations(input: ResourceInvocationEvent | ResourceInvocationEvent[]): Promise<InvocationIngestResponse>;
23
+ }
24
+ export interface SearchResult {
25
+ resourceId: string;
26
+ originUrl: string;
27
+ method: string;
28
+ path: string;
29
+ url: string;
30
+ score: number;
31
+ metadata: unknown;
32
+ signals?: Record<string, unknown>;
33
+ }
34
+ export interface SearchResponse {
35
+ query: string;
36
+ version: string;
37
+ count: number;
38
+ page: number;
39
+ limit: number;
40
+ hasNextPage: boolean;
41
+ results: SearchResult[];
42
+ searchEventId: string | null;
43
+ }
44
+ export interface BodySnapshot {
45
+ data: string;
46
+ encoding: 'utf8';
47
+ truncated: boolean;
48
+ }
49
+ export interface ResourceInvocationPayment {
50
+ protocol: string;
51
+ rail: string;
52
+ network: string | null;
53
+ priceUsd: string;
54
+ txId: string | null;
55
+ }
56
+ export interface ResourceInvocationEvent {
57
+ invocationId: string;
58
+ source: string;
59
+ app: string;
60
+ client?: string | null;
61
+ sessionId?: string | null;
62
+ sourceSearchEventId?: string | null;
63
+ occurredAt: string;
64
+ latencyMs: number;
65
+ resourceId: string;
66
+ originUrl: string;
67
+ request: {
68
+ method: string;
69
+ url: string;
70
+ path: string;
71
+ pathTemplate: string;
72
+ query: Record<string, string>;
73
+ headers: Record<string, string | string[]>;
74
+ body: BodySnapshot | null;
75
+ };
76
+ response: {
77
+ statusCode: number;
78
+ statusText: string | null;
79
+ headers: Record<string, string | string[]>;
80
+ body: BodySnapshot | null;
81
+ } | null;
82
+ transportError: {
83
+ kind: string;
84
+ message: string | null;
85
+ } | null;
86
+ payment: ResourceInvocationPayment | null;
87
+ customerId?: string | null;
88
+ }
89
+ export interface InvocationIngestResponse {
90
+ ok: true;
91
+ received: number;
92
+ inserted: number;
93
+ }
94
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
package/dist/schema.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import type { InvocationIngestResponse, SearchResponse } from './schema.js';
2
+ export declare function baseUrlOf(input: string | URL | undefined): string;
3
+ export declare function searchUrl(baseUrl: string): string;
4
+ export declare function invocationsUrl(baseUrl: string): string;
5
+ export declare function parseJsonResponse<T>(response: Response, decode: (value: unknown, status: number, body: string) => T): Promise<T>;
6
+ export declare function parseSearchResponse(value: unknown, status: number, body: string): SearchResponse;
7
+ export declare function parseInvocationIngestResponse(value: unknown, status: number, body: string): InvocationIngestResponse;
8
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE5E,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,UAGxD;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,UAExC;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,UAE7C;AAuBD,wBAAsB,iBAAiB,CAAC,CAAC,EACvC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC,GAC1D,OAAO,CAAC,CAAC,CAAC,CAuBZ;AAwBD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAMhG;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,wBAAwB,CAmB1B"}
package/dist/utils.js ADDED
@@ -0,0 +1,95 @@
1
+ import { AgentCashSearchClientError, AgentCashSearchClientResponseError, } from './errors.js';
2
+ export function baseUrlOf(input) {
3
+ if (!input)
4
+ return '';
5
+ return input.toString().replace(/\/$/, '');
6
+ }
7
+ export function searchUrl(baseUrl) {
8
+ return baseUrl ? `${baseUrl}/api/search` : '/api/search';
9
+ }
10
+ export function invocationsUrl(baseUrl) {
11
+ return baseUrl ? `${baseUrl}/api/invocations` : '/api/invocations';
12
+ }
13
+ function isRecord(value) {
14
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
15
+ }
16
+ function isSearchResult(value) {
17
+ return (isRecord(value) &&
18
+ typeof value.resourceId === 'string' &&
19
+ typeof value.originUrl === 'string' &&
20
+ typeof value.method === 'string' &&
21
+ typeof value.path === 'string' &&
22
+ typeof value.url === 'string' &&
23
+ typeof value.score === 'number' &&
24
+ (!('signals' in value) || value.signals === undefined || isRecord(value.signals)));
25
+ }
26
+ function invalidResponse(message, status, body) {
27
+ throw new AgentCashSearchClientResponseError(message, status, body);
28
+ }
29
+ export async function parseJsonResponse(response, decode) {
30
+ const text = await response.text();
31
+ if (!response.ok) {
32
+ let message = response.statusText || `HTTP ${response.status}`;
33
+ try {
34
+ const parsed = JSON.parse(text);
35
+ if (typeof parsed.error === 'string' && parsed.error.trim())
36
+ message = parsed.error;
37
+ }
38
+ catch {
39
+ if (text.trim())
40
+ message = text;
41
+ }
42
+ throw new AgentCashSearchClientError(message, response.status, text);
43
+ }
44
+ try {
45
+ return decode(JSON.parse(text), response.status, text);
46
+ }
47
+ catch (error) {
48
+ if (error instanceof AgentCashSearchClientResponseError)
49
+ throw error;
50
+ return invalidResponse(error instanceof Error ? `invalid JSON response: ${error.message}` : 'invalid JSON response', response.status, text);
51
+ }
52
+ }
53
+ function isSearchResponse(value) {
54
+ return (isRecord(value) &&
55
+ typeof value.query === 'string' &&
56
+ typeof value.version === 'string' &&
57
+ typeof value.count === 'number' &&
58
+ Number.isInteger(value.count) &&
59
+ value.count >= 0 &&
60
+ typeof value.page === 'number' &&
61
+ Number.isInteger(value.page) &&
62
+ value.page >= 1 &&
63
+ typeof value.limit === 'number' &&
64
+ Number.isInteger(value.limit) &&
65
+ value.limit >= 1 &&
66
+ typeof value.hasNextPage === 'boolean' &&
67
+ Array.isArray(value.results) &&
68
+ value.results.every(isSearchResult) &&
69
+ value.count === value.results.length &&
70
+ (value.searchEventId === null || typeof value.searchEventId === 'string'));
71
+ }
72
+ export function parseSearchResponse(value, status, body) {
73
+ if (!isSearchResponse(value)) {
74
+ return invalidResponse('invalid search response', status, body);
75
+ }
76
+ return value;
77
+ }
78
+ export function parseInvocationIngestResponse(value, status, body) {
79
+ if (!isRecord(value) ||
80
+ value.ok !== true ||
81
+ typeof value.received !== 'number' ||
82
+ !Number.isInteger(value.received) ||
83
+ value.received < 0 ||
84
+ typeof value.inserted !== 'number' ||
85
+ !Number.isInteger(value.inserted) ||
86
+ value.inserted < 0) {
87
+ return invalidResponse('invalid invocation ingest response', status, body);
88
+ }
89
+ return {
90
+ ok: true,
91
+ received: value.received,
92
+ inserted: value.inserted,
93
+ };
94
+ }
95
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@zdql/agentcash-web-search",
3
+ "version": "0.0.1",
4
+ "type": "module",
5
+ "publishConfig": {
6
+ "access": "public"
7
+ },
8
+ "types": "./dist/index.d.ts",
9
+ "main": "./dist/index.js",
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "import": "./dist/index.js",
14
+ "default": "./dist/index.js"
15
+ }
16
+ },
17
+ "files": [
18
+ "dist"
19
+ ],
20
+ "scripts": {
21
+ "build": "tsc -p tsconfig.json",
22
+ "prepare": "pnpm run build",
23
+ "typecheck": "tsc --noEmit -p tsconfig.json",
24
+ "test": "pnpm run build && node --test test/*.test.mjs"
25
+ },
26
+ "devDependencies": {
27
+ "typescript": "^5.7.2"
28
+ }
29
+ }