@noodleseed/assistant 1.26.1 → 1.27.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/README.md +25 -2
- package/dist/{app-view-element-CiFVNIke.d.cts → app-view-element-BjRkwNN1.d.cts} +1 -1
- package/dist/{app-view-element-C_ATXseu.d.ts → app-view-element-mXHvcAXc.d.ts} +1 -1
- package/dist/app-view.d.cts +3 -3
- package/dist/app-view.d.ts +3 -3
- package/dist/{appearance-C24W6BRj.d.cts → appearance-BpVu3lpk.d.cts} +1 -0
- package/dist/{appearance-C24W6BRj.d.ts → appearance-BpVu3lpk.d.ts} +1 -0
- package/dist/{chunk-OZVDL77T.js → chunk-2A3ZEYZV.js} +51 -191
- package/dist/chunk-2A3ZEYZV.js.map +1 -0
- package/dist/{chunk-FNXAVRL5.js → chunk-WJV4MJUR.js} +178 -4
- package/dist/chunk-WJV4MJUR.js.map +1 -0
- package/dist/{client-BheCOERq.d.ts → client-CPFw8tfo.d.ts} +1 -1
- package/dist/{client-BiMRVxjs.d.cts → client-_xivfs4q.d.cts} +1 -1
- package/dist/client.cjs +176 -3
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +2 -2
- package/dist/client.d.ts +2 -2
- package/dist/client.js +1 -1
- package/dist/embed.global.js +41 -49
- package/dist/index.cjs +224 -189
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +2 -2
- package/dist/react/client.cjs +176 -3
- package/dist/react/client.cjs.map +1 -1
- package/dist/react/client.d.cts +2 -2
- package/dist/react/client.d.ts +2 -2
- package/dist/react/client.js +1 -1
- package/dist/react.cjs +224 -189
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +3 -3
- package/dist/react.d.ts +3 -3
- package/dist/react.js +2 -2
- package/dist/server.d.cts +1 -1
- package/dist/server.d.ts +1 -1
- package/package.json +1 -1
- package/dist/chunk-FNXAVRL5.js.map +0 -1
- package/dist/chunk-OZVDL77T.js.map +0 -1
package/dist/client.cjs
CHANGED
|
@@ -22903,6 +22903,178 @@ function isRecord(value) {
|
|
|
22903
22903
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
22904
22904
|
}
|
|
22905
22905
|
|
|
22906
|
+
// src/assistant-configuration-schema.ts
|
|
22907
|
+
var hexColorSchema = external_exports.string().regex(/^#[0-9A-Fa-f]{6}$/);
|
|
22908
|
+
var resolvedBorderColorSchema = external_exports.union([
|
|
22909
|
+
hexColorSchema,
|
|
22910
|
+
external_exports.string().max(64).refine(isBoundedRgbaColor, "must be a six-digit hex or bounded rgba color")
|
|
22911
|
+
]);
|
|
22912
|
+
var browserAssetUrlSchema = external_exports.string().trim().url().refine(isSecureBrowserAssetUrl, "must use https (http is allowed only for loopback testing)");
|
|
22913
|
+
var httpsUrlSchema = external_exports.string().trim().url().refine(isHttpsUrl, "must use https");
|
|
22914
|
+
var brandAssetSchema = external_exports.object({
|
|
22915
|
+
uri: browserAssetUrlSchema,
|
|
22916
|
+
darkUri: browserAssetUrlSchema.optional(),
|
|
22917
|
+
alt: external_exports.string().trim().min(1).max(240)
|
|
22918
|
+
}).strict();
|
|
22919
|
+
var brandThemeSchema = external_exports.object({
|
|
22920
|
+
surface: hexColorSchema.optional(),
|
|
22921
|
+
surfaceRaised: hexColorSchema.optional(),
|
|
22922
|
+
surfaceMuted: hexColorSchema.optional(),
|
|
22923
|
+
text: hexColorSchema.optional(),
|
|
22924
|
+
textMuted: hexColorSchema.optional(),
|
|
22925
|
+
accent: hexColorSchema.optional(),
|
|
22926
|
+
accentText: hexColorSchema.optional(),
|
|
22927
|
+
link: hexColorSchema.optional(),
|
|
22928
|
+
border: resolvedBorderColorSchema.optional(),
|
|
22929
|
+
borderStrong: resolvedBorderColorSchema.optional(),
|
|
22930
|
+
focus: hexColorSchema.optional(),
|
|
22931
|
+
success: hexColorSchema.optional(),
|
|
22932
|
+
warning: hexColorSchema.optional(),
|
|
22933
|
+
danger: hexColorSchema.optional(),
|
|
22934
|
+
code: hexColorSchema.optional()
|
|
22935
|
+
}).strict();
|
|
22936
|
+
var brandingSchema = external_exports.object({
|
|
22937
|
+
name: external_exports.string().trim().min(1).max(160).optional(),
|
|
22938
|
+
accent: hexColorSchema.optional(),
|
|
22939
|
+
surface: hexColorSchema.optional(),
|
|
22940
|
+
surfaceDark: hexColorSchema.optional(),
|
|
22941
|
+
logo: brandAssetSchema.optional(),
|
|
22942
|
+
mark: brandAssetSchema.optional(),
|
|
22943
|
+
avatar: brandAssetSchema.optional(),
|
|
22944
|
+
theme: external_exports.object({ light: brandThemeSchema.optional(), dark: brandThemeSchema.optional() }).strict().optional(),
|
|
22945
|
+
radius: external_exports.enum(["none", "sm", "md", "lg"]).optional(),
|
|
22946
|
+
density: external_exports.enum(["compact", "comfortable"]).optional(),
|
|
22947
|
+
typography: external_exports.enum(["system", "serif", "mono"]).optional(),
|
|
22948
|
+
colorScheme: external_exports.enum(["auto", "light", "dark"]).optional()
|
|
22949
|
+
}).strict();
|
|
22950
|
+
var labelsSchema = external_exports.object({
|
|
22951
|
+
welcomeHeading: external_exports.string().trim().min(1).max(160).optional(),
|
|
22952
|
+
welcomeMessage: external_exports.string().max(1e3).optional(),
|
|
22953
|
+
launcherPlaceholder: external_exports.string().trim().min(1).max(160).optional(),
|
|
22954
|
+
composerPlaceholder: external_exports.string().trim().min(1).max(160).optional(),
|
|
22955
|
+
thinking: external_exports.string().trim().min(1).max(80).optional(),
|
|
22956
|
+
send: external_exports.string().trim().min(1).max(80).optional(),
|
|
22957
|
+
stop: external_exports.string().trim().min(1).max(80).optional(),
|
|
22958
|
+
close: external_exports.string().trim().min(1).max(80).optional(),
|
|
22959
|
+
open: external_exports.string().trim().min(1).max(80).optional(),
|
|
22960
|
+
confirm: external_exports.string().trim().min(1).max(80).optional(),
|
|
22961
|
+
decline: external_exports.string().trim().min(1).max(80).optional(),
|
|
22962
|
+
cancel: external_exports.string().trim().min(1).max(80).optional(),
|
|
22963
|
+
confirmationHeading: external_exports.string().trim().min(1).max(120).optional(),
|
|
22964
|
+
additionalDetails: external_exports.string().trim().min(1).max(120).optional(),
|
|
22965
|
+
redacted: external_exports.string().trim().min(1).max(120).optional(),
|
|
22966
|
+
completed: external_exports.string().trim().min(1).max(80).optional(),
|
|
22967
|
+
stopped: external_exports.string().trim().min(1).max(80).optional(),
|
|
22968
|
+
copy: external_exports.string().trim().min(1).max(80).optional(),
|
|
22969
|
+
newMessages: external_exports.string().trim().min(1).max(80).optional(),
|
|
22970
|
+
reconnect: external_exports.string().trim().min(1).max(80).optional(),
|
|
22971
|
+
newConversation: external_exports.string().trim().min(1).max(80).optional(),
|
|
22972
|
+
retry: external_exports.string().trim().min(1).max(80).optional(),
|
|
22973
|
+
unavailable: external_exports.string().trim().min(1).max(240).optional(),
|
|
22974
|
+
sessionExpired: external_exports.string().trim().min(1).max(240).optional(),
|
|
22975
|
+
sessionIdle: external_exports.string().trim().min(1).max(120).optional(),
|
|
22976
|
+
sessionLoading: external_exports.string().trim().min(1).max(120).optional(),
|
|
22977
|
+
sessionReady: external_exports.string().trim().min(1).max(120).optional(),
|
|
22978
|
+
sessionError: external_exports.string().trim().min(1).max(120).optional(),
|
|
22979
|
+
signInHeading: external_exports.string().trim().min(1).max(120).optional(),
|
|
22980
|
+
signInBody: external_exports.string().max(240).optional(),
|
|
22981
|
+
signInAction: external_exports.string().trim().min(1).max(80).optional(),
|
|
22982
|
+
signUpAction: external_exports.string().trim().min(1).max(80).optional()
|
|
22983
|
+
}).strict();
|
|
22984
|
+
var presentationSchema = external_exports.object({
|
|
22985
|
+
panel: external_exports.object({
|
|
22986
|
+
surface: external_exports.enum(["solid", "glass"]).optional(),
|
|
22987
|
+
elevation: external_exports.enum(["soft", "dramatic"]).optional(),
|
|
22988
|
+
border: external_exports.enum(["subtle", "strong"]).optional(),
|
|
22989
|
+
radius: external_exports.number().int().min(0).max(64).optional()
|
|
22990
|
+
}).strict().optional(),
|
|
22991
|
+
launcher: external_exports.object({
|
|
22992
|
+
style: external_exports.enum(["pill", "bubble"]).optional(),
|
|
22993
|
+
icon: external_exports.enum(["brand-mark", "chat", "none"]).optional(),
|
|
22994
|
+
size: external_exports.enum(["md", "lg"]).optional(),
|
|
22995
|
+
status: external_exports.enum(["none", "session"]).optional(),
|
|
22996
|
+
effect: external_exports.enum(["none", "pulse"]).optional()
|
|
22997
|
+
}).strict().optional(),
|
|
22998
|
+
header: external_exports.object({
|
|
22999
|
+
mark: external_exports.enum(["none", "brand-mark", "status"]).optional(),
|
|
23000
|
+
badge: external_exports.object({
|
|
23001
|
+
text: external_exports.string().trim().min(1).max(80),
|
|
23002
|
+
tone: external_exports.enum(["neutral", "success", "warning", "danger"]).optional(),
|
|
23003
|
+
indicator: external_exports.boolean().optional()
|
|
23004
|
+
}).strict().optional()
|
|
23005
|
+
}).strict().optional(),
|
|
23006
|
+
composer: external_exports.object({
|
|
23007
|
+
leadingIcon: external_exports.enum(["none", "brand-mark"]).optional(),
|
|
23008
|
+
sendIcon: external_exports.enum(["arrow-up", "paper-plane"]).optional(),
|
|
23009
|
+
shape: external_exports.enum(["rounded", "pill"]).optional()
|
|
23010
|
+
}).strict().optional(),
|
|
23011
|
+
messages: external_exports.object({
|
|
23012
|
+
userStyle: external_exports.enum(["bubble", "accent"]).optional(),
|
|
23013
|
+
assistantStyle: external_exports.enum(["plain", "bubble"]).optional()
|
|
23014
|
+
}).strict().optional()
|
|
23015
|
+
}).strict();
|
|
23016
|
+
var assistantUiSchema = external_exports.object({
|
|
23017
|
+
theme: external_exports.enum(["auto", "light", "dark", "invert"]).optional(),
|
|
23018
|
+
layout: external_exports.object({
|
|
23019
|
+
mode: external_exports.enum(["floating", "inline", "drawer"]).optional(),
|
|
23020
|
+
position: external_exports.enum(["bottom-left", "bottom-center", "bottom-right"]).optional(),
|
|
23021
|
+
panelWidth: external_exports.number().int().min(280).max(1200).optional(),
|
|
23022
|
+
panelMinHeight: external_exports.number().int().min(240).max(1600).optional(),
|
|
23023
|
+
panelMaxHeight: external_exports.number().int().min(320).max(2400).optional(),
|
|
23024
|
+
edgeOffset: external_exports.number().int().min(0).max(96).optional(),
|
|
23025
|
+
zIndex: external_exports.number().int().min(0).max(2147483647).optional(),
|
|
23026
|
+
density: external_exports.enum(["compact", "comfortable"]).optional(),
|
|
23027
|
+
mobileFullscreen: external_exports.boolean().optional()
|
|
23028
|
+
}).strict().optional(),
|
|
23029
|
+
behavior: external_exports.object({
|
|
23030
|
+
startOpen: external_exports.boolean().optional(),
|
|
23031
|
+
closeOnEscape: external_exports.boolean().optional(),
|
|
23032
|
+
closeOnOutsideClick: external_exports.boolean().optional(),
|
|
23033
|
+
showLauncher: external_exports.boolean().optional(),
|
|
23034
|
+
showHeader: external_exports.boolean().optional(),
|
|
23035
|
+
showAvatars: external_exports.boolean().optional(),
|
|
23036
|
+
showTimestamps: external_exports.boolean().optional(),
|
|
23037
|
+
showPoweredBy: external_exports.boolean().optional(),
|
|
23038
|
+
showConfirmationDetails: external_exports.boolean().optional()
|
|
23039
|
+
}).strict().optional(),
|
|
23040
|
+
labels: labelsSchema.optional(),
|
|
23041
|
+
presentation: presentationSchema.optional(),
|
|
23042
|
+
suggestedPrompts: external_exports.array(external_exports.string().trim().min(1).max(240)).max(8).optional(),
|
|
23043
|
+
privacyUrl: httpsUrlSchema.optional(),
|
|
23044
|
+
termsUrl: httpsUrlSchema.optional(),
|
|
23045
|
+
locale: external_exports.string().trim().min(2).max(35).optional(),
|
|
23046
|
+
direction: external_exports.enum(["ltr", "rtl", "auto"]).optional()
|
|
23047
|
+
}).strict();
|
|
23048
|
+
var assistantConfigurationSchema = external_exports.object({ branding: brandingSchema.optional(), assistant: assistantUiSchema.optional() }).strict();
|
|
23049
|
+
function parseAssistantConfiguration(value) {
|
|
23050
|
+
const parsed = assistantConfigurationSchema.safeParse(value);
|
|
23051
|
+
return parsed.success ? parsed.data : void 0;
|
|
23052
|
+
}
|
|
23053
|
+
function isHttpsUrl(value) {
|
|
23054
|
+
try {
|
|
23055
|
+
return new URL(value).protocol === "https:";
|
|
23056
|
+
} catch {
|
|
23057
|
+
return false;
|
|
23058
|
+
}
|
|
23059
|
+
}
|
|
23060
|
+
function isSecureBrowserAssetUrl(value) {
|
|
23061
|
+
try {
|
|
23062
|
+
const url2 = new URL(value);
|
|
23063
|
+
if (url2.protocol === "https:") return true;
|
|
23064
|
+
if (url2.protocol !== "http:") return false;
|
|
23065
|
+
return url2.hostname === "localhost" || url2.hostname === "127.0.0.1" || url2.hostname === "[::1]";
|
|
23066
|
+
} catch {
|
|
23067
|
+
return false;
|
|
23068
|
+
}
|
|
23069
|
+
}
|
|
23070
|
+
function isBoundedRgbaColor(value) {
|
|
23071
|
+
const match = /^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(0(?:\.\d{1,6})?|1(?:\.0{1,6})?)\s*\)$/.exec(
|
|
23072
|
+
value
|
|
23073
|
+
);
|
|
23074
|
+
if (match === null) return false;
|
|
23075
|
+
return match.slice(1, 4).every((channel) => Number(channel) <= 255);
|
|
23076
|
+
}
|
|
23077
|
+
|
|
22906
23078
|
// src/client-errors.ts
|
|
22907
23079
|
async function refusalCode(response) {
|
|
22908
23080
|
try {
|
|
@@ -22936,6 +23108,7 @@ function parseSession(value) {
|
|
|
22936
23108
|
if (typeof value.token !== "string" || typeof value.expiresAt !== "string" || typeof value.endpoints.turns !== "string" || typeof value.endpoints.toolConfirmations !== "string" || interactions !== void 0 && typeof interactions !== "string" || apps !== void 0 && typeof apps !== "string" || sandbox !== void 0 && typeof sandbox !== "string" || transcript !== void 0 && typeof transcript !== "string") {
|
|
22937
23109
|
throw clientError("session_failed", "Assistant session response is invalid", true);
|
|
22938
23110
|
}
|
|
23111
|
+
const configuration = parseAssistantConfiguration(value.configuration);
|
|
22939
23112
|
return {
|
|
22940
23113
|
token: value.token,
|
|
22941
23114
|
expiresAt: value.expiresAt,
|
|
@@ -22947,7 +23120,7 @@ function parseSession(value) {
|
|
|
22947
23120
|
...typeof sandbox === "string" ? { sandbox } : {},
|
|
22948
23121
|
...typeof transcript === "string" ? { transcript } : {}
|
|
22949
23122
|
},
|
|
22950
|
-
...
|
|
23123
|
+
...configuration === void 0 ? {} : { configuration },
|
|
22951
23124
|
...isRecord2(value.resume) && typeof value.resume.tool === "string" ? { resume: { tool: value.resume.tool } } : {}
|
|
22952
23125
|
};
|
|
22953
23126
|
}
|
|
@@ -23041,9 +23214,9 @@ function toAssistantClientEvent(event) {
|
|
|
23041
23214
|
return { event: "unrecognized", data: { name: event.event, payload: value } };
|
|
23042
23215
|
}
|
|
23043
23216
|
function isViewAvailableDetail(value) {
|
|
23044
|
-
return hasString(value, "id") && hasString(value, "tool") && typeof value.resourceUri === "string" && value.resourceUri.startsWith("ui://") && hasOptionalString(value.title) && (value.replayed === void 0 || value.replayed === true) && isJsonValue(value.result, 0) && hasOptionalJson(value.arguments) && hasOptionalString(value.html) && (value.resourceMeta === void 0 || isRecord3(value.resourceMeta)) && (value.allowedOpenDomains === void 0 || Array.isArray(value.allowedOpenDomains) && value.allowedOpenDomains.every(
|
|
23217
|
+
return hasString(value, "id") && hasString(value, "tool") && typeof value.resourceUri === "string" && value.resourceUri.startsWith("ui://") && hasOptionalString(value.title) && (value.replayed === void 0 || value.replayed === true) && isJsonValue(value.result, 0) && hasOptionalJson(value.arguments) && hasOptionalString(value.html) && (value.resourceMeta === void 0 || isRecord3(value.resourceMeta)) && (value.allowedOpenDomains === void 0 || Array.isArray(value.allowedOpenDomains) && value.allowedOpenDomains.every(isHttpsUrl2)) && hasOptionalTurnId(value);
|
|
23045
23218
|
}
|
|
23046
|
-
function
|
|
23219
|
+
function isHttpsUrl2(value) {
|
|
23047
23220
|
if (typeof value !== "string") return false;
|
|
23048
23221
|
try {
|
|
23049
23222
|
return new URL(value).protocol === "https:";
|