@opengeni/sdk 1.1.0 → 1.2.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.
- package/dist/adapters/next.js +2 -2
- package/dist/artifacts.js +5 -4
- package/dist/browser.js +3 -2
- package/dist/chat/index.js +6 -5
- package/dist/chat/index.js.map +1 -1
- package/dist/{chunk-E3KHK7FG.js → chunk-2NIR4WBR.js} +2 -2
- package/dist/{chunk-T6HNHCN2.js → chunk-2ULNDOLD.js} +2 -2
- package/dist/{chunk-ZBMS2HCV.js → chunk-2VPO6IQC.js} +2 -2
- package/dist/{chunk-BNZNLUD4.js → chunk-5AN2FLNC.js} +35 -2
- package/dist/chunk-5AN2FLNC.js.map +1 -0
- package/dist/{chunk-YH3W3HZZ.js → chunk-66AKEWV6.js} +2 -2
- package/dist/{chunk-ZKPY6YAJ.js → chunk-6Z5QRYHG.js} +12 -1
- package/dist/chunk-6Z5QRYHG.js.map +1 -0
- package/dist/{chunk-H6WMYN23.js → chunk-TZFJUYCT.js} +2 -2
- package/dist/chunk-VPVMLM7Q.js +15 -0
- package/dist/chunk-VPVMLM7Q.js.map +1 -0
- package/dist/{chunk-RLLUZFOW.js → chunk-WIYAB33K.js} +1 -1
- package/dist/chunk-WIYAB33K.js.map +1 -0
- package/dist/client.d.ts +12 -0
- package/dist/core.js +4 -3
- package/dist/document-authority.js +4 -3
- package/dist/editable-artifacts.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +9 -8
- package/dist/index.js.map +1 -1
- package/dist/insights-usage.d.ts +33 -0
- package/dist/insights-usage.js +7 -0
- package/dist/insights-usage.js.map +1 -0
- package/dist/model-display.d.ts +1 -1
- package/dist/model-display.js +3 -1
- package/dist/session-proxy.js +2 -2
- package/dist/site-browser-runtime.gen.d.ts +1 -1
- package/dist/site-document.js +1 -1
- package/dist/site-document.js.map +1 -1
- package/dist/site.js +4 -3
- package/dist/types.d.ts +16 -0
- package/package.json +7 -3
- package/src/client.ts +69 -0
- package/src/index.ts +2 -0
- package/src/insights-usage.ts +61 -0
- package/src/model-display.ts +1 -0
- package/src/site-browser-runtime.gen.ts +1 -1
- package/src/types.ts +39 -0
- package/dist/chunk-BNZNLUD4.js.map +0 -1
- package/dist/chunk-RLLUZFOW.js.map +0 -1
- package/dist/chunk-ZKPY6YAJ.js.map +0 -1
- /package/dist/{chunk-E3KHK7FG.js.map → chunk-2NIR4WBR.js.map} +0 -0
- /package/dist/{chunk-T6HNHCN2.js.map → chunk-2ULNDOLD.js.map} +0 -0
- /package/dist/{chunk-ZBMS2HCV.js.map → chunk-2VPO6IQC.js.map} +0 -0
- /package/dist/{chunk-YH3W3HZZ.js.map → chunk-66AKEWV6.js.map} +0 -0
- /package/dist/{chunk-H6WMYN23.js.map → chunk-TZFJUYCT.js.map} +0 -0
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
import {
|
|
12
12
|
OPENGENI_API_CONTRACT_HEADER,
|
|
13
13
|
OPENGENI_API_CONTRACT_REVISION
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-WIYAB33K.js";
|
|
15
15
|
import {
|
|
16
16
|
OpenGeniApiError,
|
|
17
17
|
OpenGeniSetupError
|
|
@@ -1267,4 +1267,4 @@ export {
|
|
|
1267
1267
|
createSessionProxyHandler,
|
|
1268
1268
|
artifactViewerCapability
|
|
1269
1269
|
};
|
|
1270
|
-
//# sourceMappingURL=chunk-
|
|
1270
|
+
//# sourceMappingURL=chunk-66AKEWV6.js.map
|
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
// ../contracts/src/model-display.ts
|
|
2
|
+
function modelLogoUrl(input) {
|
|
3
|
+
const value = typeof input === "string" ? void 0 : input.logoUrl;
|
|
4
|
+
if (!value || value.length > 2048 || value !== value.trim()) return null;
|
|
5
|
+
try {
|
|
6
|
+
const url = new URL(value);
|
|
7
|
+
return url.protocol === "https:" && !url.username && !url.password ? value : null;
|
|
8
|
+
} catch {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
2
12
|
var WORDS = {
|
|
3
13
|
gpt: "GPT",
|
|
4
14
|
chatgpt: "ChatGPT",
|
|
@@ -126,10 +136,11 @@ function modelVendor(input) {
|
|
|
126
136
|
}
|
|
127
137
|
|
|
128
138
|
export {
|
|
139
|
+
modelLogoUrl,
|
|
129
140
|
modelSlug,
|
|
130
141
|
humanizeModelSlug,
|
|
131
142
|
isRawModelLabel,
|
|
132
143
|
modelDisplayName,
|
|
133
144
|
modelVendor
|
|
134
145
|
};
|
|
135
|
-
//# sourceMappingURL=chunk-
|
|
146
|
+
//# sourceMappingURL=chunk-6Z5QRYHG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../contracts/src/model-display.ts"],"sourcesContent":["/**\n * One display identity for a model everywhere outside the Models settings page.\n *\n * Catalog ids carry routing facts (`codex/`, `organization-claude-subscription/`,\n * `workspace-openrouter/anthropic/...`) and custom models may have no curated\n * label. People should only ever see the model itself: `GPT-6.1 Sol`,\n * `Claude Opus 5.5`. The same upstream model therefore renders identically\n * whether an organization or a workspace connection serves it.\n *\n * Pure and dependency-free so the API, SDK, React package and web app share it.\n */\n\nexport type ModelVendor =\n | \"openai\"\n | \"anthropic\"\n | \"xai\"\n | \"google\"\n | \"meta\"\n | \"mistral\"\n | \"deepseek\"\n | \"moonshot\"\n | \"qwen\"\n | \"zhipu\"\n | \"nvidia\";\n\nexport type ModelDisplayInput =\n | string\n | {\n id: string;\n label?: string | null | undefined;\n logoUrl?: string | null | undefined;\n upstreamModelId?: string | null | undefined;\n deployment?: { upstreamModelId?: string | null | undefined } | null | undefined;\n };\n\n/** Catalog maker logo; remote images must use HTTPS without embedded credentials. */\nexport function modelLogoUrl(input: ModelDisplayInput): string | null {\n const value = typeof input === \"string\" ? undefined : input.logoUrl;\n if (!value || value.length > 2048 || value !== value.trim()) return null;\n try {\n const url = new URL(value);\n return url.protocol === \"https:\" && !url.username && !url.password ? value : null;\n } catch {\n return null;\n }\n}\n\nconst WORDS: Readonly<Record<string, string>> = {\n gpt: \"GPT\",\n chatgpt: \"ChatGPT\",\n claude: \"Claude\",\n grok: \"Grok\",\n gemini: \"Gemini\",\n gemma: \"Gemma\",\n llama: \"Llama\",\n deepseek: \"DeepSeek\",\n qwen: \"Qwen\",\n glm: \"GLM\",\n kimi: \"Kimi\",\n mistral: \"Mistral\",\n codestral: \"Codestral\",\n devstral: \"Devstral\",\n magistral: \"Magistral\",\n nemotron: \"Nemotron\",\n oss: \"OSS\",\n};\n\n/** The upstream model slug without routing prefixes or `:variant` suffixes. */\nexport function modelSlug(value: string): string {\n const last = value.split(\"/\").filter(Boolean).at(-1) ?? value;\n return last.replace(/:[^:]*$/, \"\") || last;\n}\n\nfunction upstreamOf(input: Exclude<ModelDisplayInput, string>): string | null {\n return input.upstreamModelId?.trim() || input.deployment?.upstreamModelId?.trim() || null;\n}\n\nfunction titleToken(token: string, index: number): string {\n const lower = token.toLowerCase();\n const word = WORDS[lower];\n if (word) return word;\n // OpenAI reasoning series stay lowercase: o3, o4 Mini.\n if (index === 0 && /^o\\d+$/.test(lower)) return lower;\n // Sizes and lettered versions read as identifiers: 120B, V4, K3, A12B.\n if (/^\\d+(?:\\.\\d+)?[bkmt]$/.test(lower) || /^[a-z]\\d+[a-z\\d]*$/.test(lower)) {\n return lower.toUpperCase();\n }\n if (/^\\d/.test(token)) return lower;\n return lower.charAt(0).toUpperCase() + lower.slice(1);\n}\n\n/** `claude-opus-5-5` → `Claude Opus 5.5`, `codex/gpt-6.1-sol` → `GPT-6.1 Sol`. */\nexport function humanizeModelSlug(value: string): string {\n const slug = modelSlug(value.trim())\n // Snapshot dates are release detail, not a different model name.\n .replace(/[-_](?:\\d{8}|\\d{4}-\\d{2}-\\d{2})$/, \"\")\n .replace(/[-_]latest$/i, \"\");\n const raw = slug.split(/[-_\\s]+/).filter(Boolean);\n if (raw.length === 0) return value.trim() || value;\n // Consecutive short numbers are one version: 5-5 → 5.5, 3-5 → 3.5. Longer\n // numbers are snapshots (gpt-4-1106-preview), never a minor version.\n const tokens: string[] = [];\n for (const token of raw) {\n const previous = tokens.at(-1);\n if (previous !== undefined && /^\\d{1,2}$/.test(token) && /^\\d{1,2}$/.test(previous)) {\n tokens[tokens.length - 1] = `${previous}.${token}`;\n continue;\n }\n tokens.push(token);\n }\n const words = tokens.map(titleToken);\n // OpenAI's own spelling joins family and version: GPT-6.1, GPT-4o.\n if (words[0] === \"GPT\" && words.length > 1 && /^\\d/.test(words[1]!)) {\n return [`GPT-${words[1]}`, ...words.slice(2)].join(\" \");\n }\n return words.join(\" \");\n}\n\n/**\n * True when a catalog label is only the model's identifier: empty, or exactly\n * its id, upstream id, or any trailing path of them (`claude-opus-4-8`,\n * `anthropic/claude-sonnet-4.6`). Any other label is a curated name and wins.\n */\nexport function isRawModelLabel(\n label: string,\n ids: readonly (string | null | undefined)[] = [],\n): boolean {\n const text = label.trim();\n if (!text) return true;\n return ids.some((id) => {\n if (!id) return false;\n const segments = id.trim().split(\"/\").filter(Boolean);\n return segments.some((_, index) => {\n const tail = segments.slice(index).join(\"/\");\n return tail === text || modelSlug(tail) === text;\n });\n });\n}\n\n/**\n * The clean name to show for a model: its curated catalog label when it has\n * one, otherwise a readable form of the upstream model id. Never a routing\n * prefix, connection id or connection scope.\n */\nexport function modelDisplayName(input: ModelDisplayInput): string {\n if (typeof input === \"string\") {\n // A bare id is humanized; text with spaces is already a name (\"Workspace default\").\n return input.trim() && !/\\s/.test(input.trim()) ? humanizeModelSlug(input) : input;\n }\n const upstream = upstreamOf(input);\n const label = input.label?.trim();\n if (label && !isRawModelLabel(label, [input.id, upstream])) return label;\n return humanizeModelSlug(upstream ?? label ?? input.id);\n}\n\nconst VENDOR_PATTERNS: ReadonlyArray<readonly [ModelVendor, RegExp]> = [\n [\"anthropic\", /^claude\\b/],\n [\"openai\", /^(?:gpt|chatgpt|o\\d+|codex|dall-e|sora|text-embedding|whisper)\\b/],\n [\"xai\", /^grok\\b/],\n [\"google\", /^(?:gemini|gemma)\\b/],\n [\"meta\", /^llama\\b/],\n [\"mistral\", /^(?:mistral|codestral|devstral|magistral|ministral|pixtral)\\b/],\n [\"deepseek\", /^deepseek\\b/],\n [\"moonshot\", /^(?:kimi|moonshot)\\b/],\n [\"qwen\", /^(?:qwen|qwq)\\b/],\n [\"zhipu\", /^glm\\b/],\n [\"nvidia\", /^nemotron\\b/],\n];\n\n/** OpenRouter / Gateway vendor path segments (`anthropic/claude-…`). */\nconst VENDOR_SEGMENTS: Readonly<Record<string, ModelVendor>> = {\n anthropic: \"anthropic\",\n openai: \"openai\",\n \"x-ai\": \"xai\",\n xai: \"xai\",\n google: \"google\",\n \"meta-llama\": \"meta\",\n mistralai: \"mistral\",\n deepseek: \"deepseek\",\n moonshotai: \"moonshot\",\n qwen: \"qwen\",\n \"z-ai\": \"zhipu\",\n nvidia: \"nvidia\",\n};\n\nfunction vendorFromSlug(slug: string): ModelVendor | null {\n for (const [vendor, pattern] of VENDOR_PATTERNS) if (pattern.test(slug)) return vendor;\n return null;\n}\n\n/** Who makes the model, for its logo. Null when it cannot be told. */\nexport function modelVendor(input: ModelDisplayInput): ModelVendor | null {\n const ids = typeof input === \"string\" ? [input] : [upstreamOf(input), input.id];\n for (const id of ids) {\n if (!id) continue;\n const lower = id.trim().toLowerCase();\n if (lower.startsWith(\"codex/\")) return \"openai\";\n if (lower.startsWith(\"supergrok/\")) return \"xai\";\n const vendor = vendorFromSlug(modelSlug(lower));\n if (vendor) return vendor;\n const segment = lower.split(\"/\").filter(Boolean).at(-2);\n if (segment && Object.hasOwn(VENDOR_SEGMENTS, segment)) return VENDOR_SEGMENTS[segment]!;\n }\n if (typeof input !== \"string\" && input.label) {\n return vendorFromSlug(input.label.trim().toLowerCase().replace(/\\s+/g, \"-\"));\n }\n return null;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
OpenGeniClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-2NIR4WBR.js";
|
|
4
4
|
|
|
5
5
|
// src/embedding-client.ts
|
|
6
6
|
function hasStaticHeader(options, names) {
|
|
@@ -337,4 +337,4 @@ export {
|
|
|
337
337
|
EMPTY_FINAL_REPLY_NOTICE,
|
|
338
338
|
turnCompletedWithEmptyFinalReply
|
|
339
339
|
};
|
|
340
|
-
//# sourceMappingURL=chunk-
|
|
340
|
+
//# sourceMappingURL=chunk-TZFJUYCT.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// src/insights-usage.ts
|
|
2
|
+
function insightsUsageQueryString(options) {
|
|
3
|
+
const params = new URLSearchParams();
|
|
4
|
+
for (const [key, value] of Object.entries(options)) {
|
|
5
|
+
if (value === void 0) continue;
|
|
6
|
+
for (const item of Array.isArray(value) ? value : [value]) params.append(key, String(item));
|
|
7
|
+
}
|
|
8
|
+
const query = params.toString();
|
|
9
|
+
return query ? `?${query}` : "";
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export {
|
|
13
|
+
insightsUsageQueryString
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=chunk-VPVMLM7Q.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/insights-usage.ts"],"sourcesContent":["// Type-only references keep this opt-in SDK leaf free of zod/root contracts.\nimport type {\n OrganizationInsightsUsageQueryInput,\n OrganizationInsightsCallsQueryInput,\n InsightsUsageRange,\n InsightsUsagePayer,\n InsightsUsageSource,\n} from \"@opengeni/contracts/insights-usage\";\n\nexport type {\n InsightsUsageRange,\n InsightsUsageGroupBy,\n InsightsUsagePayer,\n InsightsUsageSource,\n InsightsUsageTokens,\n InsightsUsageClassMicros,\n InsightsUsageMeasures,\n InsightsUsageScope,\n InsightsUsageGroup,\n InsightsUsageSeriesPoint,\n InsightsUsageFacets,\n InsightsUsageResponse,\n InsightsCall,\n InsightsCallsResponse,\n} from \"@opengeni/contracts/insights-usage\";\n\n/** Custom selections require both inclusive UTC calendar days. */\nexport type InsightsUsageWindowOptions =\n | { range?: Exclude<InsightsUsageRange, \"custom\">; from?: never; to?: never }\n | { range: \"custom\"; from: string; to: string };\n\ntype FilterOptions<T> = Omit<T, \"range\" | \"from\" | \"to\" | \"limit\" | \"payer\" | \"source\"> &\n InsightsUsageWindowOptions & {\n limit?: number;\n payer?: InsightsUsagePayer | InsightsUsagePayer[];\n source?: InsightsUsageSource | InsightsUsageSource[];\n };\n\nexport type OrganizationInsightsUsageOptions = FilterOptions<\n Omit<OrganizationInsightsUsageQueryInput, \"seriesGroups\">\n> & { seriesGroups?: boolean };\n/** workspaceId is intersected with the path workspace by the existing server gate. */\nexport type WorkspaceInsightsUsageOptions = OrganizationInsightsUsageOptions;\nexport type OrganizationInsightsCallsOptions = FilterOptions<OrganizationInsightsCallsQueryInput>;\nexport type WorkspaceInsightsCallsOptions = OrganizationInsightsCallsOptions;\nexport type InsightsCallsScope =\n | { kind: \"workspace\"; workspaceId: string }\n | { kind: \"organization\"; accountId: string };\n\n/** Arrays repeat; comma strings, false and opaque values round-trip unchanged. */\nexport function insightsUsageQueryString(\n options: OrganizationInsightsUsageOptions | OrganizationInsightsCallsOptions,\n): string {\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(options)) {\n if (value === undefined) continue;\n for (const item of Array.isArray(value) ? value : [value]) params.append(key, String(item));\n }\n const query = params.toString();\n return query ? `?${query}` : \"\";\n}\n"],"mappings":";AAkDO,SAAS,yBACd,SACQ;AACR,QAAM,SAAS,IAAI,gBAAgB;AACnC,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,OAAO,GAAG;AAClD,QAAI,UAAU,OAAW;AACzB,eAAW,QAAQ,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAG,QAAO,OAAO,KAAK,OAAO,IAAI,CAAC;AAAA,EAC5F;AACA,QAAM,QAAQ,OAAO,SAAS;AAC9B,SAAO,QAAQ,IAAI,KAAK,KAAK;AAC/B;","names":[]}
|