@k2b/cloud 0.43.0 → 0.44.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/package.json +7 -2
- package/src/_internal/app-access-request.ts +13 -0
- package/src/_internal/app-access-resources.ts +141 -0
- package/src/_internal/app-event-catalog.ts +40 -0
- package/src/_internal/app-event-schemas.ts +127 -0
- package/src/_internal/application-package.ts +40 -0
- package/src/_internal/built-in-app-ids.json +27 -0
- package/src/_internal/capabilities.ts +158 -12
- package/src/_internal/capability-origin.ts +4 -0
- package/src/_internal/capability-streams.ts +7 -5
- package/src/_internal/define-app.ts +57 -6
- package/src/_internal/object-store-area.ts +9 -0
- package/src/_internal/object-store-config.ts +101 -0
- package/src/_internal/object-store-key.ts +14 -0
- package/src/_internal/process-identity.ts +7 -2
- package/src/_internal/registry-validation.ts +11 -1
- package/src/_internal/registry.ts +8 -1
- package/src/_internal/runtime-context.ts +8 -1
- package/src/access/AppAccessEditor.tsx +2 -0
- package/src/access/PermissionEditor.tsx +9 -3
- package/src/access/PrincipalPicker.tsx +14 -4
- package/src/access/ResourceApiKeys.tsx +3 -4
- package/src/access/app-access-messages.ts +6 -0
- package/src/account/ProfilePictureDialog.tsx +699 -0
- package/src/account/profile-picture-messages.ts +269 -0
- package/src/account/ui.ts +7 -0
- package/src/ai/admin.ts +3 -0
- package/src/ai/app-frame.ts +12 -0
- package/src/ai/application-tasks.ts +101 -0
- package/src/ai/assistant-models.ts +126 -64
- package/src/ai/capabilities.ts +19 -4
- package/src/ai/chart-block.ts +63 -30
- package/src/ai/chat/chart-block.tsx +12 -3
- package/src/ai/chat/composer-adapter.ts +8 -7
- package/src/ai/chat/message-actions.tsx +1 -1
- package/src/ai/chat/message-utils.ts +2 -2
- package/src/ai/chat/presentation.tsx +22 -1
- package/src/ai/chat-quotas.ts +5 -4
- package/src/ai/chat-tasks.ts +2 -2
- package/src/ai/client/controller.ts +11 -10
- package/src/ai/client/projection.ts +3 -3
- package/src/ai/compaction.ts +3 -3
- package/src/ai/credentials.ts +13 -114
- package/src/ai/default-tool-contracts.ts +4 -3
- package/src/ai/dictation-runtime.ts +4 -4
- package/src/ai/enrich.ts +2 -2
- package/src/ai/executor.ts +31 -22
- package/src/ai/http.ts +17 -29
- package/src/ai/index.ts +11 -5
- package/src/ai/inference-calls.ts +5 -4
- package/src/ai/maintenance.ts +1 -1
- package/src/ai/memory-learning-runs.ts +5 -5
- package/src/ai/memory-learning.ts +3 -3
- package/src/ai/message-queue.ts +1 -2
- package/src/ai/migrate.ts +75 -42
- package/src/ai/model-access-migrate.ts +3 -17
- package/src/ai/model-access.ts +44 -85
- package/src/ai/model-card.tsx +134 -0
- package/src/ai/model-catalog.ts +359 -0
- package/src/ai/model-chooser-messages.ts +88 -0
- package/src/ai/model-chooser.tsx +577 -0
- package/src/ai/model-delete.ts +234 -0
- package/src/ai/model-fixture.ts +39 -0
- package/src/ai/model-icon.tsx +36 -0
- package/src/ai/model-overview.ts +53 -0
- package/src/ai/model-usage.ts +45 -0
- package/src/ai/openai-api-messages.ts +0 -4
- package/src/ai/openai-api.ts +26 -9
- package/src/ai/personal-agent.ts +1 -1
- package/src/ai/prefs.ts +12 -10
- package/src/ai/projects-routes.ts +2 -1
- package/src/ai/projects.ts +13 -12
- package/src/ai/protocol.ts +2 -2
- package/src/ai/provider-connections.ts +161 -0
- package/src/ai/provider-errors.ts +55 -6
- package/src/ai/provider-fetch.ts +4 -0
- package/src/ai/provider.ts +1 -1
- package/src/ai/quota-limits.ts +36 -0
- package/src/ai/quota-provider.ts +4 -2
- package/src/ai/quota-report.ts +7 -4
- package/src/ai/quotas.ts +19 -8
- package/src/ai/recent-resources.ts +6 -0
- package/src/ai/request-headers.ts +14 -87
- package/src/ai/resource-refs.ts +6 -2
- package/src/ai/routes.ts +17 -18
- package/src/ai/runtime.ts +50 -22
- package/src/ai/settings.ts +93 -580
- package/src/ai/store.ts +45 -23
- package/src/ai/stream.ts +1 -1
- package/src/ai/structured-runs.ts +2 -2
- package/src/ai/structured.ts +21 -44
- package/src/ai/task-contracts.ts +25 -5
- package/src/ai/task-execution.ts +15 -6
- package/src/ai/task-model.ts +9 -0
- package/src/ai/transcription.ts +27 -22
- package/src/ai/types.ts +50 -62
- package/src/ai/ui.tsx +13 -0
- package/src/ai/usage.ts +8 -8
- package/src/ai/validate.ts +8 -7
- package/src/ai/view-block.ts +2 -2
- package/src/api/accounts-entities.ts +16 -0
- package/src/api/admin-ai-quotas.ts +34 -56
- package/src/api/admin-ai-usage.ts +1 -1
- package/src/api/admin-ai.ts +173 -0
- package/src/api/admin-core-settings.ts +68 -244
- package/src/api/app-approval.ts +3 -1
- package/src/api/app-event-delivery.ts +51 -0
- package/src/api/app-events.ts +123 -0
- package/src/api/app-resource-access.ts +48 -0
- package/src/api/auth/account-mismatch.ts +24 -0
- package/src/api/auth.ts +26 -3
- package/src/api/capabilities.ts +28 -4
- package/src/api/index.ts +7 -1
- package/src/api/mcp.ts +175 -2
- package/src/api/me.ts +6 -4
- package/src/api/pwa-phone.ts +75 -26
- package/src/api/pwa.ts +34 -8
- package/src/api/resource-links.ts +83 -6
- package/src/api/resource-resolve.ts +50 -0
- package/src/api/search/schemas.ts +3 -1
- package/src/api/search.ts +9 -7
- package/src/app-pwa/contracts.ts +4 -0
- package/src/app-pwa/core-query-error.ts +20 -0
- package/src/app-pwa/index.ts +1 -0
- package/src/app-pwa/service.ts +91 -0
- package/src/app-pwa/transport.ts +22 -0
- package/src/approvals/messages.ts +2 -2
- package/src/browser/cloud-id.ts +86 -0
- package/src/browser/resource-clipboard.ts +4 -0
- package/src/browser/resource-links.ts +52 -0
- package/src/capabilities/server-invoke.ts +2 -11
- package/src/capabilities/testing.ts +5 -2
- package/src/cli/access.ts +6 -5
- package/src/cli/admin/ai-models.ts +199 -0
- package/src/cli/admin/ai-quotas.ts +6 -102
- package/src/cli/admin/ai-usage.ts +4 -4
- package/src/cli/admin/app-credentials.ts +5 -3
- package/src/cli/admin/index.ts +5 -2
- package/src/cli/apps.ts +89 -26
- package/src/cli/capabilities.ts +22 -1
- package/src/cli/events.ts +320 -0
- package/src/config/env.ts +40 -0
- package/src/contracts/app-access.ts +26 -2
- package/src/contracts/app-details.ts +89 -0
- package/src/contracts/app-events.ts +51 -0
- package/src/contracts/app.ts +21 -5
- package/src/contracts/capabilities.ts +143 -3
- package/src/contracts/index.ts +2 -0
- package/src/contracts/notification-types.ts +36 -9
- package/src/contracts/pwa.ts +17 -1
- package/src/contracts/registry.ts +6 -0
- package/src/contracts/resource-clipboard.ts +35 -0
- package/src/contracts/resource-pages.ts +140 -0
- package/src/contracts/resource-resolution.ts +13 -0
- package/src/contracts/shared.ts +4 -0
- package/src/contracts/user-notifications.ts +2 -0
- package/src/events/app-event-delivery.ts +100 -0
- package/src/events/app-events.testing.ts +65 -0
- package/src/events/app-events.ts +134 -0
- package/src/events/core-user-created.ts +24 -0
- package/src/events/index.ts +9 -0
- package/src/events/testing.ts +2 -0
- package/src/index.ts +1 -1
- package/src/server/api/respond.ts +8 -3
- package/src/server/index.ts +1 -0
- package/src/server/middleware/app-access.ts +1 -1
- package/src/server/middleware/auth.ts +21 -7
- package/src/server/middleware/index.ts +1 -0
- package/src/server/middleware/invocation.ts +2 -0
- package/src/server/public-storage.ts +106 -0
- package/src/server/services/access.ts +8 -0
- package/src/services/accounts/app.ts +6 -0
- package/src/services/accounts/entities.ts +14 -3
- package/src/services/accounts/groups.ts +3 -1
- package/src/services/accounts/identities.ts +62 -10
- package/src/services/accounts/users.ts +7 -6
- package/src/services/app-access.ts +25 -7
- package/src/services/app-details.ts +224 -0
- package/src/services/app-discovery.ts +2 -1
- package/src/services/app-event-shapes.ts +139 -0
- package/src/services/app-events/accept.ts +116 -0
- package/src/services/app-events/admin.ts +250 -0
- package/src/services/app-events/declarations.ts +187 -0
- package/src/services/app-events/deliver.ts +218 -0
- package/src/services/app-events.ts +92 -0
- package/src/services/config-conflict.ts +11 -0
- package/src/services/core-user-events.ts +1 -0
- package/src/services/freeipa-config.ts +9 -0
- package/src/services/geo/ledger.ts +28 -10
- package/src/services/geo/service.ts +43 -24
- package/src/services/identity/core-origin.ts +12 -0
- package/src/services/identity/invocation-actor.ts +20 -2
- package/src/services/identity/invocation-authority.ts +4 -0
- package/src/services/identity/invocation-token.ts +238 -56
- package/src/services/identity/issue-invocation.ts +6 -1
- package/src/services/image-metadata.ts +65 -1
- package/src/services/index.ts +13 -1
- package/src/services/ipa/sync.ts +6 -2
- package/src/services/ipa/users.ts +4 -1
- package/src/services/mandates/policy.ts +19 -12
- package/src/services/notifications/browser.ts +4 -0
- package/src/services/notifications/catalog.ts +5 -2
- package/src/services/notifications/platform.ts +7 -2
- package/src/services/notifications/user.ts +18 -7
- package/src/services/oauth-tokens.ts +28 -2
- package/src/services/object-store.ts +217 -0
- package/src/services/providers/local/users.ts +5 -0
- package/src/services/pwa-devices.ts +147 -37
- package/src/services/session/index.ts +14 -0
- package/src/services/settings/core-settings.ts +71 -43
- package/src/services/settings/index.ts +8 -0
- package/src/services/settings/versions.ts +26 -0
- package/src/shared/ai-models.ts +274 -0
- package/src/shared/ai-quotas.ts +2 -2
- package/src/shared/ai-usage.ts +2 -2
- package/src/shared/index.ts +2 -0
- package/src/shared-text/documents.ts +25 -8
- package/src/shared-text/log.ts +1 -1
- package/src/shared-text/text-diff.ts +75 -0
- package/src/ssr/AdminArea.tsx +131 -0
- package/src/ssr/AdminLayout.tsx +9 -3
- package/src/ssr/AdminSidebar.tsx +7 -7
- package/src/ssr/AppAccessDenied.tsx +2 -0
- package/src/ssr/AppBadge.tsx +14 -0
- package/src/ssr/AppLaunchpadPanel.tsx +1 -1
- package/src/ssr/CloudShell.island.tsx +25 -4
- package/src/ssr/Layout.tsx +8 -6
- package/src/ssr/PwaLayout.tsx +16 -1
- package/src/ssr/PwaPartCount.island.tsx +23 -0
- package/src/ssr/SettingsSaveOutcome.tsx +58 -0
- package/src/ssr/SettingsSaveStatus.island.tsx +16 -0
- package/src/ssr/__snapshots__/Layout.unchanged.render.test.tsx.snap +3 -3
- package/src/ssr/admin-active-link.ts +16 -0
- package/src/ssr/admin-navigation.ts +25 -20
- package/src/ssr/app-badges.ts +31 -7
- package/src/ssr/index.ts +8 -0
- package/src/ssr/page-trail-runtime.ts +3 -1
- package/src/ssr/platform-messages.ts +9 -1
- package/src/ssr/pwa-messages.ts +2 -2
- package/src/ssr/rail-navigation.ts +5 -1
- package/src/ssr/settings-draft.ts +153 -0
- package/src/ssr/shell-data.tsx +2 -0
- package/src/styles/global.css +1 -0
- package/src/styles/profile-picture.css +270 -0
- package/src/styles/utilities-navigation.css +6 -0
- package/src/workflows/ai/policy.ts +49 -0
- package/src/workflows/ai/runtime.ts +131 -21
- package/src/workflows/ai/store.ts +283 -35
- package/src/workflows/ai/types.ts +8 -2
- package/src/workflows/ai-actions.ts +148 -120
- package/src/workflows/authoring.ts +31 -0
- package/src/workflows/contracts.ts +1 -0
- package/src/workflows/definition.ts +2 -0
- package/src/workflows/editor.ts +15 -0
- package/src/workflows/index.ts +2 -1
- package/src/workflows/language/compiler.ts +34 -3
- package/src/workflows/runtime/executor.ts +132 -33
- package/src/workflows/runtime/index.ts +2 -0
- package/src/workflows/runtime/ports.ts +5 -1
- package/src/workflows/store/actions.ts +1 -1
- package/src/workflows/store/definitions.ts +5 -0
- package/src/workflows/store/runs.ts +5 -3
- package/src/workflows/store/worker.ts +7 -2
- package/src/ai/model-pricing.ts +0 -43
- package/src/ai/model-request-settings.ts +0 -98
- package/src/ai/settings-messages.ts +0 -129
- package/src/shared/ai-model-request-settings.ts +0 -21
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import { i18n } from "@k2b/stdlib";
|
|
2
|
-
import type { AiModelReferenceSetting, AiSettingsIssue } from "./settings";
|
|
3
|
-
|
|
4
|
-
type Reference = { setting: string; profile: string; next: string };
|
|
5
|
-
|
|
6
|
-
const catalog = i18n.define({
|
|
7
|
-
baseLocale: "en",
|
|
8
|
-
messages: {
|
|
9
|
-
en: {
|
|
10
|
-
notSaved: "The AI settings were not saved. Resolve the problems below and save again.",
|
|
11
|
-
defaultModel: "default model",
|
|
12
|
-
backgroundModel: "background model",
|
|
13
|
-
workflowModel: "workflow model",
|
|
14
|
-
visionModel: "Vision tool model",
|
|
15
|
-
audioModel: "audio model",
|
|
16
|
-
selectAnother: ({ setting }: { setting: string }) => `Select another ${setting}`,
|
|
17
|
-
useDefaultModel: "use the default model instead",
|
|
18
|
-
useBackgroundModel: "use the background model instead",
|
|
19
|
-
disableVisionFallback: "disable the view_image fallback",
|
|
20
|
-
disableAudio: "disable audio transcription",
|
|
21
|
-
or: ({ first, second }: { first: string; second: string }) => `${first} or ${second}`,
|
|
22
|
-
modelRequired: "Choose a default model while AI is enabled.",
|
|
23
|
-
profileMissing: ({ setting, profile, next }: Reference) =>
|
|
24
|
-
`The ${setting} still references “${profile}”. ${next} before removing this profile.`,
|
|
25
|
-
profileDisabled: ({ setting, profile, next }: Reference) =>
|
|
26
|
-
`The ${setting} uses “${profile}”, which is disabled. ${next}, or enable the profile again.`,
|
|
27
|
-
noVision: ({ setting, profile, next }: Reference) => `“${profile}” does not support Vision, so it cannot be the ${setting}. ${next}.`,
|
|
28
|
-
transcriptionOnly: ({ setting, profile, next }: Reference) =>
|
|
29
|
-
`“${profile}” only transcribes audio, so it cannot be the ${setting}. ${next}.`,
|
|
30
|
-
noTranscription: ({ setting, profile, next }: Reference) =>
|
|
31
|
-
`“${profile}” does not transcribe audio, so it cannot be the ${setting}. ${next}.`,
|
|
32
|
-
credentialMissing: ({ profile }: { profile: string }) =>
|
|
33
|
-
`“${profile}” needs a provider API key. Enter the key in the profile or disable the profile.`,
|
|
34
|
-
},
|
|
35
|
-
de: {
|
|
36
|
-
notSaved: "Die KI-Einstellungen wurden nicht gespeichert. Behebe die folgenden Probleme und speichere erneut.",
|
|
37
|
-
defaultModel: "Standardmodell",
|
|
38
|
-
backgroundModel: "Hintergrundmodell",
|
|
39
|
-
workflowModel: "Workflow-Modell",
|
|
40
|
-
visionModel: "Modell für das Bildwerkzeug",
|
|
41
|
-
audioModel: "Audio-Modell",
|
|
42
|
-
selectAnother: ({ setting }) => `Wähle ein anderes ${setting}`,
|
|
43
|
-
useDefaultModel: "verwende stattdessen das Standardmodell",
|
|
44
|
-
useBackgroundModel: "verwende stattdessen das Hintergrundmodell",
|
|
45
|
-
disableVisionFallback: "deaktiviere den view_image-Fallback",
|
|
46
|
-
disableAudio: "deaktiviere die Audio-Transkription",
|
|
47
|
-
or: ({ first, second }) => `${first} oder ${second}`,
|
|
48
|
-
modelRequired: "Wähle ein Standardmodell, solange KI aktiviert ist.",
|
|
49
|
-
profileMissing: ({ setting, profile, next }) =>
|
|
50
|
-
`Das ${setting} verweist noch auf „${profile}“. ${next}, bevor du dieses Profil entfernst.`,
|
|
51
|
-
profileDisabled: ({ setting, profile, next }) =>
|
|
52
|
-
`Das ${setting} verwendet „${profile}“, aber dieses Profil ist deaktiviert. ${next}. Du kannst das Profil auch wieder aktivieren.`,
|
|
53
|
-
noVision: ({ setting, profile, next }) =>
|
|
54
|
-
`„${profile}“ unterstützt keine Bildverarbeitung und kann nicht als ${setting} verwendet werden. ${next}.`,
|
|
55
|
-
transcriptionOnly: ({ setting, profile, next }) =>
|
|
56
|
-
`„${profile}“ transkribiert nur Audio und kann nicht als ${setting} verwendet werden. ${next}.`,
|
|
57
|
-
noTranscription: ({ setting, profile, next }) =>
|
|
58
|
-
`„${profile}“ transkribiert kein Audio und kann nicht als ${setting} verwendet werden. ${next}.`,
|
|
59
|
-
credentialMissing: ({ profile }) =>
|
|
60
|
-
`„${profile}“ benötigt einen API-Schlüssel des Anbieters. Gib den Schlüssel im Profil ein oder deaktiviere das Profil.`,
|
|
61
|
-
},
|
|
62
|
-
},
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
type Messages = ReturnType<typeof catalog.resolve>["t"];
|
|
66
|
-
|
|
67
|
-
const settingNoun = (t: Messages, setting: AiModelReferenceSetting): string =>
|
|
68
|
-
({
|
|
69
|
-
"ai.default_model_id": t.defaultModel,
|
|
70
|
-
"ai.background_model_id": t.backgroundModel,
|
|
71
|
-
"ai.workflow_model_id": t.workflowModel,
|
|
72
|
-
"ai.vision_model_id": t.visionModel,
|
|
73
|
-
"ai.audio_model_id": t.audioModel,
|
|
74
|
-
})[setting];
|
|
75
|
-
|
|
76
|
-
/** The way out that keeps the feature working without this profile, if the setting is optional. */
|
|
77
|
-
const alternative = (t: Messages, setting: AiModelReferenceSetting): string | undefined =>
|
|
78
|
-
({
|
|
79
|
-
"ai.default_model_id": undefined,
|
|
80
|
-
"ai.background_model_id": t.useDefaultModel,
|
|
81
|
-
"ai.workflow_model_id": t.useBackgroundModel,
|
|
82
|
-
"ai.vision_model_id": t.disableVisionFallback,
|
|
83
|
-
"ai.audio_model_id": t.disableAudio,
|
|
84
|
-
})[setting];
|
|
85
|
-
|
|
86
|
-
export type AiSettingsIssueWithMessage = AiSettingsIssue & { message: string };
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Turn validation issues into request-localized, actionable messages.
|
|
90
|
-
*
|
|
91
|
-
* `profiles` should list the prospective profiles first and the stored ones
|
|
92
|
-
* after them, so a profile that is being removed still has its label. Only
|
|
93
|
-
* ids and labels are read; provider keys never reach the messages.
|
|
94
|
-
*/
|
|
95
|
-
export const describeAiSettingsIssues = (
|
|
96
|
-
issues: readonly AiSettingsIssue[],
|
|
97
|
-
options: { locale?: string | null; profiles: ReadonlyArray<{ id: string; label: string }> },
|
|
98
|
-
): { issues: AiSettingsIssueWithMessage[]; errors: Record<string, string> } => {
|
|
99
|
-
const t = catalog.resolve(options.locale ? [options.locale] : []).t;
|
|
100
|
-
const labelOf = (profileId: string) => options.profiles.find((profile) => profile.id === profileId)?.label ?? profileId;
|
|
101
|
-
|
|
102
|
-
const described = issues.map((issue): AiSettingsIssueWithMessage => {
|
|
103
|
-
if (issue.code === "model_required") return { ...issue, message: t.modelRequired };
|
|
104
|
-
const profile = labelOf(issue.profileId);
|
|
105
|
-
if (issue.code === "provider_credential_missing") return { ...issue, message: t.credentialMissing({ profile }) };
|
|
106
|
-
|
|
107
|
-
const setting = settingNoun(t, issue.setting);
|
|
108
|
-
const other = alternative(t, issue.setting);
|
|
109
|
-
const select = t.selectAnother({ setting });
|
|
110
|
-
const reference = { setting, profile, next: other ? t.or({ first: select, second: other }) : select };
|
|
111
|
-
if (issue.code === "model_profile_missing") return { ...issue, message: t.profileMissing(reference) };
|
|
112
|
-
if (issue.code === "model_profile_disabled") return { ...issue, message: t.profileDisabled(reference) };
|
|
113
|
-
const message =
|
|
114
|
-
issue.setting === "ai.vision_model_id"
|
|
115
|
-
? t.noVision(reference)
|
|
116
|
-
: issue.setting === "ai.audio_model_id"
|
|
117
|
-
? t.noTranscription(reference)
|
|
118
|
-
: t.transcriptionOnly(reference);
|
|
119
|
-
return { ...issue, message };
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
const errors: Record<string, string> = {};
|
|
123
|
-
for (const issue of described)
|
|
124
|
-
errors[issue.setting] = errors[issue.setting] ? `${errors[issue.setting]} ${issue.message}` : issue.message;
|
|
125
|
-
return { issues: described, errors };
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
export const aiSettingsNotSavedMessage = (locale?: string | null): string => catalog.resolve(locale ? [locale] : []).t.notSaved;
|
|
129
|
-
export const checkAiSettingsMessages = () => catalog.check();
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { AiExtraBodySchema, AiReasoningEffortSchema, AiRequestHeadersSchema } from "./ai-request-options";
|
|
3
|
-
|
|
4
|
-
export const AiModelRequestSettingsUpdateSchema = z
|
|
5
|
-
.object({
|
|
6
|
-
expected: z.string().min(1),
|
|
7
|
-
reasoningEffort: AiReasoningEffortSchema.nullable(),
|
|
8
|
-
extraBody: AiExtraBodySchema.nullable().optional(),
|
|
9
|
-
requestHeaders: AiRequestHeadersSchema.optional(),
|
|
10
|
-
clearRequestHeaders: z.boolean().optional(),
|
|
11
|
-
})
|
|
12
|
-
.strict();
|
|
13
|
-
export type AiModelRequestSettingsUpdate = z.infer<typeof AiModelRequestSettingsUpdateSchema>;
|
|
14
|
-
export const AiModelRequestSettingsSchema = z.object({
|
|
15
|
-
id: z.string(),
|
|
16
|
-
reasoningEffort: z.string().nullable(),
|
|
17
|
-
extraBody: z.record(z.string(), z.unknown()).nullable(),
|
|
18
|
-
requestHeaderNames: z.array(z.string()),
|
|
19
|
-
revision: z.string(),
|
|
20
|
-
});
|
|
21
|
-
export type AiModelRequestSettings = z.infer<typeof AiModelRequestSettingsSchema>;
|