@grafana/sigil-sdk-js-core 0.0.0 → 0.7.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 (61) hide show
  1. package/LICENSE +2 -200
  2. package/README.md +34 -1
  3. package/dist/cache-diagnostics.d.ts +15 -0
  4. package/dist/cache-diagnostics.d.ts.map +1 -0
  5. package/dist/cache-diagnostics.js +15 -0
  6. package/dist/cache-diagnostics.js.map +1 -0
  7. package/dist/client.d.ts +138 -0
  8. package/dist/client.d.ts.map +1 -0
  9. package/dist/client.js +1855 -0
  10. package/dist/client.js.map +1 -0
  11. package/dist/config.d.ts +17 -0
  12. package/dist/config.d.ts.map +1 -0
  13. package/dist/config.js +375 -0
  14. package/dist/config.js.map +1 -0
  15. package/dist/content_capture.d.ts +34 -0
  16. package/dist/content_capture.d.ts.map +1 -0
  17. package/dist/content_capture.js +121 -0
  18. package/dist/content_capture.js.map +1 -0
  19. package/dist/context.d.ts +11 -0
  20. package/dist/context.d.ts.map +1 -0
  21. package/dist/context.js +80 -0
  22. package/dist/context.js.map +1 -0
  23. package/dist/core.d.ts +14 -0
  24. package/dist/core.d.ts.map +1 -0
  25. package/dist/core.js +13 -0
  26. package/dist/core.js.map +1 -0
  27. package/dist/exporters/default.d.ts +3 -0
  28. package/dist/exporters/default.d.ts.map +1 -0
  29. package/dist/exporters/default.js +77 -0
  30. package/dist/exporters/default.js.map +1 -0
  31. package/dist/exporters/grpc.d.ts +15 -0
  32. package/dist/exporters/grpc.d.ts.map +1 -0
  33. package/dist/exporters/grpc.js +401 -0
  34. package/dist/exporters/grpc.js.map +1 -0
  35. package/dist/exporters/http.d.ts +10 -0
  36. package/dist/exporters/http.d.ts.map +1 -0
  37. package/dist/exporters/http.js +295 -0
  38. package/dist/exporters/http.js.map +1 -0
  39. package/dist/hooks.d.ts +33 -0
  40. package/dist/hooks.d.ts.map +1 -0
  41. package/dist/hooks.js +464 -0
  42. package/dist/hooks.js.map +1 -0
  43. package/dist/redaction.d.ts +16 -0
  44. package/dist/redaction.d.ts.map +1 -0
  45. package/dist/redaction.js +155 -0
  46. package/dist/redaction.js.map +1 -0
  47. package/dist/types.d.ts +597 -0
  48. package/dist/types.d.ts.map +1 -0
  49. package/dist/types.js +2 -0
  50. package/dist/types.js.map +1 -0
  51. package/dist/utils.d.ts +26 -0
  52. package/dist/utils.d.ts.map +1 -0
  53. package/dist/utils.js +355 -0
  54. package/dist/utils.js.map +1 -0
  55. package/dist/version.d.ts +8 -0
  56. package/dist/version.d.ts.map +1 -0
  57. package/dist/version.js +14 -0
  58. package/dist/version.js.map +1 -0
  59. package/package.json +46 -8
  60. package/proto/sigil/v1/generation_ingest.proto +187 -0
  61. package/index.js +0 -1
@@ -0,0 +1,295 @@
1
+ import { canonicalEffectiveVersion, isRecord } from '../utils.js';
2
+ import { userAgent } from '../version.js';
3
+ export class HTTPGenerationExporter {
4
+ endpoint;
5
+ headers;
6
+ constructor(endpoint, headers) {
7
+ this.endpoint = normalizeHTTPGenerationEndpoint(endpoint);
8
+ // Resolve the User-Agent like the gRPC exporter: a non-blank caller override
9
+ // (case-insensitive) wins, otherwise the SDK default. A blank/whitespace
10
+ // override is dropped so it can't blank out the default.
11
+ let resolved = userAgent();
12
+ const rest = {};
13
+ for (const [key, value] of Object.entries(headers ?? {})) {
14
+ if (key.toLowerCase() === 'user-agent') {
15
+ if (value.trim().length > 0) {
16
+ resolved = value;
17
+ }
18
+ continue;
19
+ }
20
+ rest[key] = value;
21
+ }
22
+ this.headers = { 'user-agent': resolved, ...rest };
23
+ }
24
+ async exportGenerations(request) {
25
+ const response = await fetch(this.endpoint, {
26
+ method: 'POST',
27
+ headers: {
28
+ 'content-type': 'application/json',
29
+ ...this.headers,
30
+ },
31
+ body: JSON.stringify({
32
+ generations: request.generations.map(mapGenerationToProtoJSON),
33
+ }),
34
+ });
35
+ if (!response.ok) {
36
+ const responseText = (await response.text()).trim();
37
+ throw new Error(`http generation export status ${response.status}: ${responseText}`);
38
+ }
39
+ const payload = (await response.json());
40
+ return parseExportGenerationsResponse(payload, request);
41
+ }
42
+ }
43
+ function parseExportGenerationsResponse(payload, request) {
44
+ if (!isRecord(payload) || !Array.isArray(payload.results)) {
45
+ throw new Error('invalid generation export response payload');
46
+ }
47
+ const results = payload.results.map((result, index) => {
48
+ if (!isRecord(result)) {
49
+ throw new Error('invalid generation export result payload');
50
+ }
51
+ const fallbackGenerationID = request.generations[index]?.id ?? '';
52
+ return {
53
+ generationId: typeof result.generationId === 'string'
54
+ ? result.generationId
55
+ : typeof result.generation_id === 'string'
56
+ ? result.generation_id
57
+ : fallbackGenerationID,
58
+ accepted: Boolean(result.accepted),
59
+ error: typeof result.error === 'string' ? result.error : undefined,
60
+ };
61
+ });
62
+ return { results };
63
+ }
64
+ const HTTP_GENERATION_EXPORT_PATH = '/api/v1/generations:export';
65
+ /** @internal Exported for tests; not part of the public API. */
66
+ export function normalizeHTTPGenerationEndpoint(endpoint) {
67
+ const trimmed = endpoint.trim();
68
+ if (trimmed.length === 0) {
69
+ throw new Error('generation export endpoint is required');
70
+ }
71
+ const lowerPrefix = trimmed.slice(0, 8).toLowerCase();
72
+ const hasScheme = lowerPrefix.startsWith('http://') || lowerPrefix.startsWith('https://');
73
+ const withScheme = hasScheme ? trimmed : `http://${trimmed}`;
74
+ let url;
75
+ try {
76
+ url = new URL(withScheme);
77
+ }
78
+ catch (e) {
79
+ const detail = e instanceof Error ? e.message : String(e);
80
+ throw new Error(`parse generation export endpoint "${endpoint}": ${detail}`);
81
+ }
82
+ if (url.pathname === '' || url.pathname === '/') {
83
+ url.pathname = HTTP_GENERATION_EXPORT_PATH;
84
+ }
85
+ return url.toString();
86
+ }
87
+ function mapGenerationToProtoJSON(generation) {
88
+ const proto = {
89
+ id: generation.id,
90
+ conversation_id: generation.conversationId ?? '',
91
+ operation_name: generation.operationName,
92
+ mode: generation.mode === 'STREAM' ? 'GENERATION_MODE_STREAM' : 'GENERATION_MODE_SYNC',
93
+ trace_id: generation.traceId ?? '',
94
+ span_id: generation.spanId ?? '',
95
+ model: {
96
+ provider: generation.model.provider,
97
+ name: generation.model.name,
98
+ },
99
+ response_id: generation.responseId ?? '',
100
+ response_model: generation.responseModel ?? '',
101
+ system_prompt: generation.systemPrompt ?? '',
102
+ input: (generation.input ?? []).map(mapMessageToProtoJSON),
103
+ output: (generation.output ?? []).map(mapMessageToProtoJSON),
104
+ tools: (generation.tools ?? []).map(mapToolToProtoJSON),
105
+ usage: mapUsageToProtoJSON(generation.usage),
106
+ stop_reason: generation.stopReason ?? '',
107
+ started_at: generation.startedAt.toISOString(),
108
+ completed_at: generation.completedAt.toISOString(),
109
+ tags: generation.tags ?? {},
110
+ metadata: normalizeMetadata(generation.metadata),
111
+ raw_artifacts: (generation.artifacts ?? []).map(mapArtifactToProtoJSON),
112
+ call_error: generation.callError ?? '',
113
+ agent_name: generation.agentName ?? '',
114
+ agent_version: generation.agentVersion ?? '',
115
+ };
116
+ if (generation.maxTokens !== undefined) {
117
+ proto.max_tokens = toInt64String(generation.maxTokens);
118
+ }
119
+ if (generation.temperature !== undefined) {
120
+ proto.temperature = generation.temperature;
121
+ }
122
+ if (generation.topP !== undefined) {
123
+ proto.top_p = generation.topP;
124
+ }
125
+ if (generation.toolChoice !== undefined) {
126
+ proto.tool_choice = generation.toolChoice;
127
+ }
128
+ if (generation.thinkingEnabled !== undefined) {
129
+ proto.thinking_enabled = generation.thinkingEnabled;
130
+ }
131
+ if (generation.parentGenerationIds?.length) {
132
+ proto.parent_generation_ids = generation.parentGenerationIds;
133
+ }
134
+ const effectiveVersion = canonicalEffectiveVersion(generation.effectiveVersion);
135
+ if (effectiveVersion !== undefined) {
136
+ proto.effective_version = effectiveVersion;
137
+ }
138
+ return proto;
139
+ }
140
+ function mapMessageToProtoJSON(message) {
141
+ const parts = (message.parts ?? []).map(mapMessagePartToProtoJSON);
142
+ if (parts.length === 0 && typeof message.content === 'string') {
143
+ parts.push({ text: message.content });
144
+ }
145
+ return {
146
+ role: toMessageRoleEnum(message.role),
147
+ name: message.name ?? '',
148
+ parts,
149
+ };
150
+ }
151
+ function mapMessagePartToProtoJSON(part) {
152
+ switch (part.type) {
153
+ case 'text':
154
+ return withPartMetadata({
155
+ text: part.text,
156
+ }, part.metadata?.providerType);
157
+ case 'thinking':
158
+ return withPartMetadata({
159
+ thinking: part.thinking,
160
+ }, part.metadata?.providerType);
161
+ case 'tool_call':
162
+ return withPartMetadata({
163
+ tool_call: {
164
+ id: part.toolCall.id ?? '',
165
+ name: part.toolCall.name,
166
+ input_json: toBase64Payload(part.toolCall.inputJSON),
167
+ },
168
+ }, part.metadata?.providerType);
169
+ case 'tool_result':
170
+ return withPartMetadata({
171
+ tool_result: {
172
+ tool_call_id: part.toolResult.toolCallId ?? '',
173
+ name: part.toolResult.name ?? '',
174
+ content: part.toolResult.content ?? '',
175
+ content_json: toBase64Payload(part.toolResult.contentJSON),
176
+ is_error: part.toolResult.isError ?? false,
177
+ },
178
+ }, part.metadata?.providerType);
179
+ }
180
+ }
181
+ function mapToolToProtoJSON(tool) {
182
+ return {
183
+ name: tool.name,
184
+ description: tool.description ?? '',
185
+ type: tool.type ?? '',
186
+ input_schema_json: toBase64Payload(tool.inputSchemaJSON),
187
+ };
188
+ }
189
+ function mapUsageToProtoJSON(usage) {
190
+ if (usage === undefined) {
191
+ return undefined;
192
+ }
193
+ const inputTokens = usage.inputTokens ?? 0;
194
+ const outputTokens = usage.outputTokens ?? 0;
195
+ const totalTokens = usage.totalTokens ?? inputTokens + outputTokens;
196
+ return {
197
+ input_tokens: toInt64String(inputTokens),
198
+ output_tokens: toInt64String(outputTokens),
199
+ total_tokens: toInt64String(totalTokens),
200
+ cache_read_input_tokens: toInt64String(usage.cacheReadInputTokens),
201
+ cache_write_input_tokens: toInt64String(usage.cacheWriteInputTokens),
202
+ reasoning_tokens: toInt64String(usage.reasoningTokens),
203
+ };
204
+ }
205
+ function mapArtifactToProtoJSON(artifact) {
206
+ return {
207
+ kind: toArtifactKindEnum(artifact.type),
208
+ name: artifact.name ?? artifact.type,
209
+ content_type: artifact.mimeType ?? 'application/json',
210
+ payload: toBase64Payload(artifact.payload),
211
+ record_id: artifact.recordId ?? '',
212
+ uri: artifact.uri ?? '',
213
+ };
214
+ }
215
+ function withPartMetadata(part, providerType) {
216
+ if (providerType === undefined || providerType.trim().length === 0) {
217
+ return part;
218
+ }
219
+ return {
220
+ ...part,
221
+ metadata: {
222
+ provider_type: providerType,
223
+ },
224
+ };
225
+ }
226
+ function normalizeMetadata(metadata) {
227
+ if (metadata === undefined) {
228
+ return {};
229
+ }
230
+ try {
231
+ const encoded = JSON.stringify(metadata, (_key, value) => {
232
+ if (value instanceof Date) {
233
+ return value.toISOString();
234
+ }
235
+ if (typeof value === 'bigint') {
236
+ return value.toString();
237
+ }
238
+ return value;
239
+ });
240
+ if (encoded === undefined) {
241
+ return {};
242
+ }
243
+ const decoded = JSON.parse(encoded);
244
+ if (!isRecord(decoded)) {
245
+ return {};
246
+ }
247
+ return decoded;
248
+ }
249
+ catch {
250
+ return {};
251
+ }
252
+ }
253
+ function toBase64Payload(value) {
254
+ if (value === undefined || value.length === 0) {
255
+ return '';
256
+ }
257
+ const bytes = new TextEncoder().encode(value);
258
+ let binary = '';
259
+ for (const byte of bytes) {
260
+ binary += String.fromCharCode(byte);
261
+ }
262
+ return btoa(binary);
263
+ }
264
+ function toInt64String(value) {
265
+ if (value === undefined || Number.isNaN(value) || !Number.isFinite(value)) {
266
+ return '0';
267
+ }
268
+ return Math.trunc(value).toString();
269
+ }
270
+ function toMessageRoleEnum(role) {
271
+ switch (String(role).trim().toLowerCase()) {
272
+ case 'assistant':
273
+ return 'MESSAGE_ROLE_ASSISTANT';
274
+ case 'tool':
275
+ return 'MESSAGE_ROLE_TOOL';
276
+ case 'user':
277
+ default:
278
+ return 'MESSAGE_ROLE_USER';
279
+ }
280
+ }
281
+ function toArtifactKindEnum(kind) {
282
+ switch (String(kind).trim().toLowerCase()) {
283
+ case 'request':
284
+ return 'ARTIFACT_KIND_REQUEST';
285
+ case 'response':
286
+ return 'ARTIFACT_KIND_RESPONSE';
287
+ case 'tools':
288
+ return 'ARTIFACT_KIND_TOOLS';
289
+ case 'provider_event':
290
+ return 'ARTIFACT_KIND_PROVIDER_EVENT';
291
+ default:
292
+ return 'ARTIFACT_KIND_UNSPECIFIED';
293
+ }
294
+ }
295
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../js/src/exporters/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { HookEvaluateRequest, HookEvaluateResponse, HookEvaluation, HooksConfig } from './types.js';
2
+ /**
3
+ * Thrown by framework adapters when hook evaluation returns `action: 'deny'`.
4
+ *
5
+ * The error preserves the rule that triggered the deny and the per-rule
6
+ * evaluation outcomes so callers can build user-facing error messages.
7
+ */
8
+ export declare class HookDeniedError extends Error {
9
+ readonly action: "deny";
10
+ readonly reason: string;
11
+ readonly ruleId?: string;
12
+ readonly evaluations: HookEvaluation[];
13
+ constructor(reason: string, ruleId?: string, evaluations?: HookEvaluation[]);
14
+ }
15
+ /**
16
+ * Sends a hook evaluation request to the Sigil API.
17
+ *
18
+ * `apiEndpoint` is the Sigil API base URL (without the `/api/v1/...` suffix).
19
+ * `extraHeaders` is merged into the request — typically the same auth headers
20
+ * the SDK uses for generation export.
21
+ *
22
+ * Returns `{ action: 'allow', evaluations: [] }` when the request fails and
23
+ * `hooks.failOpen` is true.
24
+ */
25
+ export declare function evaluateHook(params: {
26
+ apiEndpoint: string;
27
+ insecure: boolean;
28
+ extraHeaders: Record<string, string> | undefined;
29
+ hooks: HooksConfig;
30
+ request: HookEvaluateRequest;
31
+ fetchImpl?: typeof fetch;
32
+ }): Promise<HookEvaluateResponse>;
33
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../js/src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EAEd,WAAW,EAMZ,MAAM,YAAY,CAAC;AAMpB;;;;;GAKG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,MAAM,EAAG,MAAM,CAAU;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,cAAc,EAAE,CAAC;gBAE3B,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,GAAE,cAAc,EAAO;CAQhF;AAED;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACjD,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA2DhC"}