@case-framework/survey-assistant 0.1.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 +212 -0
- package/dist/authoring-references-Cy8J-DWt.d.mts +48 -0
- package/dist/authoring-references-Cy8J-DWt.d.mts.map +1 -0
- package/dist/authoring-references-X6uRaWuf.mjs +68 -0
- package/dist/authoring-references-X6uRaWuf.mjs.map +1 -0
- package/dist/capabilities-B6tvE7fK.mjs +66 -0
- package/dist/capabilities-B6tvE7fK.mjs.map +1 -0
- package/dist/capabilities-DvSKtjAw.d.mts +182 -0
- package/dist/capabilities-DvSKtjAw.d.mts.map +1 -0
- package/dist/capabilities-default.d.mts +15 -0
- package/dist/capabilities-default.d.mts.map +1 -0
- package/dist/capabilities-default.mjs +347 -0
- package/dist/capabilities-default.mjs.map +1 -0
- package/dist/constants-CFUWrRtl.mjs +7 -0
- package/dist/constants-CFUWrRtl.mjs.map +1 -0
- package/dist/constants-Jw0k8ojS.d.mts +67 -0
- package/dist/constants-Jw0k8ojS.d.mts.map +1 -0
- package/dist/controller-proxy-BRDusFiO.d.mts +57 -0
- package/dist/controller-proxy-BRDusFiO.d.mts.map +1 -0
- package/dist/controller-proxy-Duxo2IFE.mjs +92 -0
- package/dist/controller-proxy-Duxo2IFE.mjs.map +1 -0
- package/dist/digest-BsoVq49o.d.mts +9 -0
- package/dist/digest-BsoVq49o.d.mts.map +1 -0
- package/dist/digest.d.mts +2 -0
- package/dist/digest.mjs +20 -0
- package/dist/digest.mjs.map +1 -0
- package/dist/engine-sPvuixWg.mjs +4857 -0
- package/dist/engine-sPvuixWg.mjs.map +1 -0
- package/dist/engine.d.mts +3 -0
- package/dist/engine.mjs +4 -0
- package/dist/index-BWNHkpkh.d.mts +187 -0
- package/dist/index-BWNHkpkh.d.mts.map +1 -0
- package/dist/index-CUqbBjkc.d.mts +641 -0
- package/dist/index-CUqbBjkc.d.mts.map +1 -0
- package/dist/index-MpEMQzTm.d.mts +123 -0
- package/dist/index-MpEMQzTm.d.mts.map +1 -0
- package/dist/index-TFtvBiSQ.d.mts +1149 -0
- package/dist/index-TFtvBiSQ.d.mts.map +1 -0
- package/dist/memory-thread-repository-CJkkVE2-.mjs +718 -0
- package/dist/memory-thread-repository-CJkkVE2-.mjs.map +1 -0
- package/dist/protocol-DV0ka9WT.mjs +1032 -0
- package/dist/protocol-DV0ka9WT.mjs.map +1 -0
- package/dist/protocol.d.mts +3 -0
- package/dist/protocol.mjs +2 -0
- package/dist/react-VuYe-cPh.mjs +521 -0
- package/dist/react-VuYe-cPh.mjs.map +1 -0
- package/dist/react-integration.d.mts +2 -0
- package/dist/react-integration.mjs +3 -0
- package/dist/react.d.mts +3 -0
- package/dist/react.mjs +4 -0
- package/dist/references/assistant-operations.md +287 -0
- package/dist/references/core-rules.md +11 -0
- package/dist/references/embedded-forms.md +80 -0
- package/dist/references/expressions.md +301 -0
- package/dist/references/item-types.md +364 -0
- package/dist/references/localization.md +25 -0
- package/dist/references/rich-text-content.md +193 -0
- package/dist/references/source-material-surveys.md +60 -0
- package/dist/references/survey-data-model.md +109 -0
- package/dist/references/survey-quality.md +23 -0
- package/dist/request-context-jcmXT_Q2.mjs +44 -0
- package/dist/request-context-jcmXT_Q2.mjs.map +1 -0
- package/dist/request-guardrails-C59IWnH8.mjs +73 -0
- package/dist/request-guardrails-C59IWnH8.mjs.map +1 -0
- package/dist/server-agent.d.mts +131 -0
- package/dist/server-agent.d.mts.map +1 -0
- package/dist/server-agent.mjs +229 -0
- package/dist/server-agent.mjs.map +1 -0
- package/dist/server-runtime.d.mts +123 -0
- package/dist/server-runtime.d.mts.map +1 -0
- package/dist/server-runtime.mjs +296 -0
- package/dist/server-runtime.mjs.map +1 -0
- package/dist/server-tasks.d.mts +78 -0
- package/dist/server-tasks.d.mts.map +1 -0
- package/dist/server-tasks.mjs +253 -0
- package/dist/server-tasks.mjs.map +1 -0
- package/dist/server-tools.d.mts +2 -0
- package/dist/server-tools.mjs +2 -0
- package/dist/server.d.mts +52 -0
- package/dist/server.d.mts.map +1 -0
- package/dist/server.mjs +6 -0
- package/dist/storage-postgres.d.mts +37 -0
- package/dist/storage-postgres.d.mts.map +1 -0
- package/dist/storage-postgres.mjs +167 -0
- package/dist/storage-postgres.mjs.map +1 -0
- package/dist/thread-documents-DamIq9Od.d.mts +91 -0
- package/dist/thread-documents-DamIq9Od.d.mts.map +1 -0
- package/dist/thread-handlers-DpynUc64.d.mts +112 -0
- package/dist/thread-handlers-DpynUc64.d.mts.map +1 -0
- package/dist/tools-Hz2p7vyv.mjs +1879 -0
- package/dist/tools-Hz2p7vyv.mjs.map +1 -0
- package/dist/ui.css +2 -0
- package/dist/ui.d.mts +63 -0
- package/dist/ui.d.mts.map +1 -0
- package/dist/ui.mjs +2238 -0
- package/dist/ui.mjs.map +1 -0
- package/package.json +166 -0
- package/ui.css.d.ts +3 -0
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
import { n as SURVEY_ASSISTANT_TASK_AGENT_ID, t as SURVEY_ASSISTANT_AGENT_ID } from "./constants-CFUWrRtl.mjs";
|
|
2
|
+
import { i as createSurveyAssistantChatHandler, n as createSurveyAssistantThreadHandlers, r as SurveyAssistantAuthorizationError, t as createMastraMemoryThreadRepository } from "./memory-thread-repository-CJkkVE2-.mjs";
|
|
3
|
+
import { t as SURVEY_ASSISTANT_TOOL_IDS } from "./tools-Hz2p7vyv.mjs";
|
|
4
|
+
import { SURVEY_ASSISTANT_OBSERVATIONAL_MEMORY_DEFAULTS, createSurveyAssistantAgent, createSurveyAssistantObservationalMemoryOptions } from "./server-agent.mjs";
|
|
5
|
+
import { createSurveyAssistantTaskAgent, createSurveyAssistantTaskHandler } from "./server-tasks.mjs";
|
|
6
|
+
import { AzureOpenAIGateway } from "@mastra/core/llm";
|
|
7
|
+
//#region src/server/runtime-config.ts
|
|
8
|
+
const DEFAULT_MAX_STEPS = 48;
|
|
9
|
+
const HARD_MAX_STEPS = 64;
|
|
10
|
+
const DEFAULT_CATALOG_TTL_MS = 300 * 1e3;
|
|
11
|
+
const getValue = (env, name) => {
|
|
12
|
+
return env[name]?.trim() || void 0;
|
|
13
|
+
};
|
|
14
|
+
const getBoolean = (env, name, fallback) => {
|
|
15
|
+
const value = getValue(env, name)?.toLowerCase();
|
|
16
|
+
if (value === "true") return true;
|
|
17
|
+
if (value === "false") return false;
|
|
18
|
+
return fallback;
|
|
19
|
+
};
|
|
20
|
+
const getPositiveNumber = (env, name, fallback) => {
|
|
21
|
+
const value = Number(getValue(env, name));
|
|
22
|
+
return Number.isFinite(value) && value > 0 ? value : fallback;
|
|
23
|
+
};
|
|
24
|
+
const getEnum = (env, name, values) => {
|
|
25
|
+
const value = getValue(env, name);
|
|
26
|
+
return value && values.includes(value) ? value : void 0;
|
|
27
|
+
};
|
|
28
|
+
const getCommaSeparatedValues = (env, name) => [...new Set((getValue(env, name) ?? "").split(",").map((value) => value.trim()).filter(Boolean))];
|
|
29
|
+
const resolveSurveyAssistantProviderOptionsKey = (provider) => provider === "azure-openai" ? "azure" : provider;
|
|
30
|
+
const parseProvider = (env, fallback) => {
|
|
31
|
+
const value = getValue(env, "SURVEY_ASSISTANT_PROVIDER")?.toLowerCase();
|
|
32
|
+
if (value === "azure" || value === "azure-openai") return "azure-openai";
|
|
33
|
+
if (value === "openai" || value === "mistral") return value;
|
|
34
|
+
return fallback;
|
|
35
|
+
};
|
|
36
|
+
const parseAzureManagement = (env) => {
|
|
37
|
+
if (!getBoolean(env, "SURVEY_ASSISTANT_AZURE_DISCOVER_MODELS", false)) return void 0;
|
|
38
|
+
const management = {
|
|
39
|
+
tenantId: getValue(env, "AZURE_TENANT_ID"),
|
|
40
|
+
clientId: getValue(env, "AZURE_CLIENT_ID"),
|
|
41
|
+
clientSecret: getValue(env, "AZURE_CLIENT_SECRET"),
|
|
42
|
+
subscriptionId: getValue(env, "AZURE_SUBSCRIPTION_ID"),
|
|
43
|
+
resourceGroup: getValue(env, "AZURE_RESOURCE_GROUP")
|
|
44
|
+
};
|
|
45
|
+
return Object.values(management).every(Boolean) ? management : void 0;
|
|
46
|
+
};
|
|
47
|
+
const getReadinessError = ({ azure, env, modelWasConfigured, provider, requireStorage }) => {
|
|
48
|
+
if (requireStorage && !getValue(env, "SURVEY_ASSISTANT_DATABASE_URL") && !getValue(env, "DATABASE_URL")) return "Survey assistant storage is not configured.";
|
|
49
|
+
if (provider === "openai" && !getValue(env, "OPENAI_API_KEY")) return "The OpenAI API key is not configured for the survey assistant.";
|
|
50
|
+
if (provider === "mistral" && !getValue(env, "MISTRAL_API_KEY")) return "The Mistral API key is not configured for the survey assistant.";
|
|
51
|
+
if (provider === "azure-openai") {
|
|
52
|
+
if (!azure?.resourceName) return "The Azure OpenAI resource name is not configured for the survey assistant.";
|
|
53
|
+
if (!azure.apiKey) return "The Azure OpenAI API key is not configured for the survey assistant.";
|
|
54
|
+
if (!modelWasConfigured) return "The Azure OpenAI deployment name is not configured for the survey assistant.";
|
|
55
|
+
if (azure.discoverModels && !azure.management) return "Azure deployment discovery requires complete tenant, client, subscription, and resource-group settings.";
|
|
56
|
+
}
|
|
57
|
+
return null;
|
|
58
|
+
};
|
|
59
|
+
const parseSurveyAssistantEnvironment = (env, { defaultMistralModel = "mistral-medium-latest", defaultOpenAIModel = "gpt-5.4-nano", defaultProvider = "openai", requireExperimentalIdentityOptIn = false, requireStorage = true } = {}) => {
|
|
60
|
+
const provider = parseProvider(env, defaultProvider);
|
|
61
|
+
const configuredModelId = getValue(env, "SURVEY_ASSISTANT_MODEL");
|
|
62
|
+
const defaultModelId = configuredModelId ?? (provider === "mistral" ? defaultMistralModel : defaultOpenAIModel);
|
|
63
|
+
const modelIds = [...new Set([defaultModelId, ...getCommaSeparatedValues(env, "SURVEY_ASSISTANT_MODELS")])];
|
|
64
|
+
const sendReasoning = getBoolean(env, "SURVEY_ASSISTANT_SEND_REASONING", true);
|
|
65
|
+
const providerOptionsKey = resolveSurveyAssistantProviderOptionsKey(provider);
|
|
66
|
+
const reasoningEffort = getValue(env, `SURVEY_ASSISTANT_${providerOptionsKey.toUpperCase()}_REASONING_EFFORT`) ?? getValue(env, "SURVEY_ASSISTANT_REASONING_EFFORT") ?? (provider === "openai" || provider === "azure-openai" ? "low" : "none");
|
|
67
|
+
const promptCacheRetention = getEnum(env, provider === "azure-openai" ? "SURVEY_ASSISTANT_AZURE_PROMPT_CACHE_RETENTION" : "SURVEY_ASSISTANT_PROMPT_CACHE_RETENTION", ["in_memory", "24h"]);
|
|
68
|
+
const serviceTier = getEnum(env, "SURVEY_ASSISTANT_OPENAI_SERVICE_TIER", [
|
|
69
|
+
"auto",
|
|
70
|
+
"flex",
|
|
71
|
+
"priority",
|
|
72
|
+
"default"
|
|
73
|
+
]);
|
|
74
|
+
const textVerbosity = getEnum(env, "SURVEY_ASSISTANT_OPENAI_TEXT_VERBOSITY", [
|
|
75
|
+
"low",
|
|
76
|
+
"medium",
|
|
77
|
+
"high"
|
|
78
|
+
]);
|
|
79
|
+
const reasoningSummaryValue = getEnum(env, "SURVEY_ASSISTANT_OPENAI_REASONING_SUMMARY", [
|
|
80
|
+
"auto",
|
|
81
|
+
"concise",
|
|
82
|
+
"detailed",
|
|
83
|
+
"off",
|
|
84
|
+
"none"
|
|
85
|
+
]);
|
|
86
|
+
const reasoningSummary = reasoningSummaryValue === "off" || reasoningSummaryValue === "none" ? void 0 : reasoningSummaryValue ?? "auto";
|
|
87
|
+
const resolvedReasoningEffort = reasoningEffort === "default" || reasoningEffort === "provider-default" ? void 0 : reasoningEffort;
|
|
88
|
+
const providerOptions = { [providerOptionsKey]: {
|
|
89
|
+
parallelToolCalls: false,
|
|
90
|
+
...resolvedReasoningEffort ? { reasoningEffort: resolvedReasoningEffort } : {},
|
|
91
|
+
...provider === "openai" || provider === "azure-openai" ? {
|
|
92
|
+
promptCacheKey: getValue(env, "SURVEY_ASSISTANT_PROMPT_CACHE_KEY") ?? "survey-assistant-chat-v21",
|
|
93
|
+
...promptCacheRetention ? { promptCacheRetention } : {},
|
|
94
|
+
...sendReasoning && reasoningSummary ? { reasoningSummary } : {},
|
|
95
|
+
...provider === "openai" && serviceTier ? { serviceTier } : {},
|
|
96
|
+
...textVerbosity ? { textVerbosity } : {}
|
|
97
|
+
} : {}
|
|
98
|
+
} };
|
|
99
|
+
const azure = provider === "azure-openai" ? {
|
|
100
|
+
resourceName: getValue(env, "AZURE_RESOURCE_NAME"),
|
|
101
|
+
apiKey: getValue(env, "AZURE_API_KEY"),
|
|
102
|
+
apiVersion: getValue(env, "SURVEY_ASSISTANT_AZURE_API_VERSION") ?? "v1",
|
|
103
|
+
discoverModels: getBoolean(env, "SURVEY_ASSISTANT_AZURE_DISCOVER_MODELS", false),
|
|
104
|
+
management: parseAzureManagement(env)
|
|
105
|
+
} : void 0;
|
|
106
|
+
const memoryModelValue = getValue(env, "SURVEY_ASSISTANT_MEMORY_MODEL");
|
|
107
|
+
const memoryModel = memoryModelValue ? memoryModelValue.includes("/") ? memoryModelValue : `${provider}/${memoryModelValue}` : `${provider}/${defaultModelId}`;
|
|
108
|
+
const observationalMemory = getBoolean(env, "SURVEY_ASSISTANT_MEMORY_ENABLED", true) ? createSurveyAssistantObservationalMemoryOptions({
|
|
109
|
+
model: memoryModel,
|
|
110
|
+
temporalMarkers: getBoolean(env, "SURVEY_ASSISTANT_MEMORY_TEMPORAL_MARKERS", false),
|
|
111
|
+
observation: {
|
|
112
|
+
messageTokens: getPositiveNumber(env, "SURVEY_ASSISTANT_MEMORY_MESSAGE_TOKENS", SURVEY_ASSISTANT_OBSERVATIONAL_MEMORY_DEFAULTS.messageTokens),
|
|
113
|
+
bufferOnIdle: getBoolean(env, "SURVEY_ASSISTANT_MEMORY_BUFFER_ON_IDLE", false),
|
|
114
|
+
observeAttachments: false
|
|
115
|
+
},
|
|
116
|
+
reflection: { observationTokens: getPositiveNumber(env, "SURVEY_ASSISTANT_MEMORY_OBSERVATION_TOKENS", SURVEY_ASSISTANT_OBSERVATIONAL_MEMORY_DEFAULTS.observationTokens) }
|
|
117
|
+
}) : false;
|
|
118
|
+
const configuredMaxSteps = getPositiveNumber(env, "SURVEY_ASSISTANT_MAX_STEPS", DEFAULT_MAX_STEPS);
|
|
119
|
+
const enabledSetting = getValue(env, "SURVEY_ASSISTANT_ENABLED")?.toLowerCase();
|
|
120
|
+
const enabled = enabledSetting === "false" ? false : enabledSetting === "true" ? !requireExperimentalIdentityOptIn || env.NODE_ENV === "development" || getBoolean(env, "SURVEY_ASSISTANT_ALLOW_EXPERIMENTAL_IDENTITY", false) : env.NODE_ENV === "development";
|
|
121
|
+
return {
|
|
122
|
+
provider,
|
|
123
|
+
defaultModelId,
|
|
124
|
+
modelIds,
|
|
125
|
+
modelCatalogTtlMs: getPositiveNumber(env, "SURVEY_ASSISTANT_MODEL_CATALOG_TTL_MS", DEFAULT_CATALOG_TTL_MS),
|
|
126
|
+
azure,
|
|
127
|
+
enabled,
|
|
128
|
+
readinessError: getReadinessError({
|
|
129
|
+
azure,
|
|
130
|
+
env,
|
|
131
|
+
modelWasConfigured: Boolean(configuredModelId),
|
|
132
|
+
provider,
|
|
133
|
+
requireStorage
|
|
134
|
+
}),
|
|
135
|
+
execution: {
|
|
136
|
+
maxConcurrentRequests: getPositiveNumber(env, "SURVEY_ASSISTANT_MAX_CONCURRENT_REQUESTS", 4),
|
|
137
|
+
maxSteps: Math.min(configuredMaxSteps, HARD_MAX_STEPS),
|
|
138
|
+
providerOptions,
|
|
139
|
+
sendReasoning
|
|
140
|
+
},
|
|
141
|
+
observationalMemory
|
|
142
|
+
};
|
|
143
|
+
};
|
|
144
|
+
//#endregion
|
|
145
|
+
//#region src/server/runtime.ts
|
|
146
|
+
const createSurveyAssistantModelRouter = (config) => {
|
|
147
|
+
const azureGateway = config.azure ? new AzureOpenAIGateway({
|
|
148
|
+
resourceName: config.azure.resourceName ?? "",
|
|
149
|
+
apiKey: config.azure.apiKey,
|
|
150
|
+
apiVersion: config.azure.apiVersion,
|
|
151
|
+
useResponsesAPI: true,
|
|
152
|
+
...config.azure.management ? { management: config.azure.management } : { deployments: config.modelIds }
|
|
153
|
+
}) : void 0;
|
|
154
|
+
let cachedCatalog;
|
|
155
|
+
const getCatalog = async ({ refresh = false } = {}) => {
|
|
156
|
+
if (!refresh && cachedCatalog && cachedCatalog.expiresAt > Date.now()) return cachedCatalog.value;
|
|
157
|
+
let ids = config.modelIds;
|
|
158
|
+
if (azureGateway && config.azure?.discoverModels) try {
|
|
159
|
+
const providers = await azureGateway.fetchProviders();
|
|
160
|
+
ids = [...new Set([...config.modelIds, ...providers["azure-openai"]?.models ?? []])];
|
|
161
|
+
} catch {}
|
|
162
|
+
const value = {
|
|
163
|
+
defaultModelId: config.defaultModelId,
|
|
164
|
+
models: ids.map((id) => ({
|
|
165
|
+
id,
|
|
166
|
+
label: id
|
|
167
|
+
}))
|
|
168
|
+
};
|
|
169
|
+
cachedCatalog = {
|
|
170
|
+
expiresAt: Date.now() + config.modelCatalogTtlMs,
|
|
171
|
+
value
|
|
172
|
+
};
|
|
173
|
+
return value;
|
|
174
|
+
};
|
|
175
|
+
return {
|
|
176
|
+
defaultModel: `${config.provider}/${config.defaultModelId}`,
|
|
177
|
+
gateways: azureGateway ? { "azure-openai": azureGateway } : void 0,
|
|
178
|
+
getCatalog,
|
|
179
|
+
providerName: config.provider,
|
|
180
|
+
providerOptions: config.execution.providerOptions,
|
|
181
|
+
resolveModel: async ({ requestedModelId }) => {
|
|
182
|
+
const catalog = await getCatalog();
|
|
183
|
+
const id = requestedModelId ?? catalog.defaultModelId;
|
|
184
|
+
return catalog.models.some((model) => model.id === id) ? {
|
|
185
|
+
id,
|
|
186
|
+
model: `${config.provider}/${id}`
|
|
187
|
+
} : null;
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
};
|
|
191
|
+
const createSurveyAssistantRuntimeComponents = (config) => {
|
|
192
|
+
const modelRouter = createSurveyAssistantModelRouter(config);
|
|
193
|
+
const model = ({ requestContext }) => requestContext.get("modelSelection")?.model ?? modelRouter.defaultModel;
|
|
194
|
+
return {
|
|
195
|
+
agents: {
|
|
196
|
+
[SURVEY_ASSISTANT_AGENT_ID]: createSurveyAssistantAgent({
|
|
197
|
+
model,
|
|
198
|
+
observationalMemory: config.observationalMemory
|
|
199
|
+
}),
|
|
200
|
+
[SURVEY_ASSISTANT_TASK_AGENT_ID]: createSurveyAssistantTaskAgent({ model })
|
|
201
|
+
},
|
|
202
|
+
gateways: modelRouter.gateways,
|
|
203
|
+
modelRouter
|
|
204
|
+
};
|
|
205
|
+
};
|
|
206
|
+
const resolveMastra = async (mastra) => typeof mastra === "function" ? mastra() : mastra;
|
|
207
|
+
const createSurveyAssistantRuntimeHandlers = ({ authorize, chat = {}, config, mastra, modelRouter, threadDocuments }) => {
|
|
208
|
+
const isEnabled = chat.isEnabled ?? (() => config.enabled);
|
|
209
|
+
const getReadinessError = chat.getReadinessError ?? (() => config.readinessError);
|
|
210
|
+
const chatHandler = createSurveyAssistantChatHandler({
|
|
211
|
+
...chat,
|
|
212
|
+
mastra,
|
|
213
|
+
agentId: SURVEY_ASSISTANT_AGENT_ID,
|
|
214
|
+
activeTools: chat.activeTools ?? (config.observationalMemory === false ? SURVEY_ASSISTANT_TOOL_IDS : [...SURVEY_ASSISTANT_TOOL_IDS, "recall"]),
|
|
215
|
+
authorize: authorize.chat,
|
|
216
|
+
getReadinessError,
|
|
217
|
+
isEnabled,
|
|
218
|
+
maxConcurrentRequests: chat.maxConcurrentRequests ?? config.execution.maxConcurrentRequests,
|
|
219
|
+
maxSteps: chat.maxSteps ?? config.execution.maxSteps,
|
|
220
|
+
providerName: modelRouter.providerName,
|
|
221
|
+
providerOptions: modelRouter.providerOptions,
|
|
222
|
+
resolveModel: modelRouter.resolveModel,
|
|
223
|
+
sendReasoning: chat.sendReasoning ?? config.execution.sendReasoning,
|
|
224
|
+
threadDocuments
|
|
225
|
+
});
|
|
226
|
+
const taskHandler = createSurveyAssistantTaskHandler({
|
|
227
|
+
agent: async () => (await resolveMastra(mastra)).getAgent(SURVEY_ASSISTANT_TASK_AGENT_ID),
|
|
228
|
+
authorize: authorize.task,
|
|
229
|
+
getReadinessError,
|
|
230
|
+
isEnabled,
|
|
231
|
+
providerOptions: modelRouter.providerOptions,
|
|
232
|
+
resolveModel: modelRouter.resolveModel
|
|
233
|
+
});
|
|
234
|
+
const getMemory = async () => {
|
|
235
|
+
const memory = await (await resolveMastra(mastra)).getAgent(SURVEY_ASSISTANT_AGENT_ID).getMemory();
|
|
236
|
+
if (!memory) throw new Error("Survey assistant memory is not configured.");
|
|
237
|
+
return memory;
|
|
238
|
+
};
|
|
239
|
+
const threads = createSurveyAssistantThreadHandlers({
|
|
240
|
+
authorize: async (request) => {
|
|
241
|
+
if (!config.enabled) throw new SurveyAssistantAuthorizationError("Survey assistant is disabled.", 404);
|
|
242
|
+
return authorize.thread(request);
|
|
243
|
+
},
|
|
244
|
+
repository: createMastraMemoryThreadRepository({
|
|
245
|
+
getMemory,
|
|
246
|
+
threadDocuments
|
|
247
|
+
})
|
|
248
|
+
});
|
|
249
|
+
const models = async (request) => {
|
|
250
|
+
if (!config.enabled) return Response.json({
|
|
251
|
+
code: "authorization_failed",
|
|
252
|
+
error: "Survey assistant is disabled."
|
|
253
|
+
}, { status: 404 });
|
|
254
|
+
try {
|
|
255
|
+
await (authorize.model ?? authorize.task)(request);
|
|
256
|
+
return Response.json(await modelRouter.getCatalog());
|
|
257
|
+
} catch (error) {
|
|
258
|
+
const status = typeof error === "object" && error !== null && "status" in error && typeof error.status === "number" ? error.status : 403;
|
|
259
|
+
return Response.json({
|
|
260
|
+
code: "authorization_failed",
|
|
261
|
+
error: error instanceof Error ? error.message : "The survey assistant request is not authorized."
|
|
262
|
+
}, { status });
|
|
263
|
+
}
|
|
264
|
+
};
|
|
265
|
+
return {
|
|
266
|
+
chat: chatHandler,
|
|
267
|
+
models,
|
|
268
|
+
task: taskHandler,
|
|
269
|
+
threads
|
|
270
|
+
};
|
|
271
|
+
};
|
|
272
|
+
/**
|
|
273
|
+
* Creates the reusable assistant runtime without hiding Mastra from the host.
|
|
274
|
+
* Register `agents` and `gateways` in the host's standard Mastra instance, then
|
|
275
|
+
* call `createHandlers` with that instance and host authorization policy.
|
|
276
|
+
*/
|
|
277
|
+
const createSurveyAssistantRuntime = (config, runtimeOptions = {}) => {
|
|
278
|
+
const components = createSurveyAssistantRuntimeComponents(config);
|
|
279
|
+
return {
|
|
280
|
+
...components,
|
|
281
|
+
config,
|
|
282
|
+
createHandlers: (handlerOptions) => createSurveyAssistantRuntimeHandlers({
|
|
283
|
+
...handlerOptions,
|
|
284
|
+
chat: {
|
|
285
|
+
...handlerOptions.chat,
|
|
286
|
+
trustedCapabilities: handlerOptions.chat?.trustedCapabilities ?? runtimeOptions.trustedCapabilities
|
|
287
|
+
},
|
|
288
|
+
config,
|
|
289
|
+
modelRouter: components.modelRouter
|
|
290
|
+
})
|
|
291
|
+
};
|
|
292
|
+
};
|
|
293
|
+
//#endregion
|
|
294
|
+
export { createSurveyAssistantModelRouter, createSurveyAssistantRuntime, createSurveyAssistantRuntimeComponents, createSurveyAssistantRuntimeHandlers, parseSurveyAssistantEnvironment, resolveSurveyAssistantProviderOptionsKey };
|
|
295
|
+
|
|
296
|
+
//# sourceMappingURL=server-runtime.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-runtime.mjs","names":[],"sources":["../src/server/runtime-config.ts","../src/server/runtime.ts"],"sourcesContent":["import type { AgentExecutionOptions } from \"@mastra/core/agent\";\nimport type { AzureOpenAIGatewayConfig } from \"@mastra/core/llm\";\nimport {\n createSurveyAssistantObservationalMemoryOptions,\n SURVEY_ASSISTANT_OBSERVATIONAL_MEMORY_DEFAULTS,\n type SurveyAssistantObservationalMemoryOptions,\n} from \"./agent\";\n\nexport type SurveyAssistantProvider = \"azure-openai\" | \"mistral\" | \"openai\";\nexport type SurveyAssistantProviderOptionsKey = \"azure\" | \"mistral\" | \"openai\";\n\nexport interface SurveyAssistantAzureConfig {\n apiKey?: string;\n apiVersion: string;\n discoverModels: boolean;\n management?: AzureOpenAIGatewayConfig[\"management\"];\n resourceName?: string;\n}\n\nexport interface SurveyAssistantExecutionConfig {\n maxConcurrentRequests: number;\n maxSteps: number;\n providerOptions?: AgentExecutionOptions[\"providerOptions\"];\n sendReasoning: boolean;\n}\n\nexport interface SurveyAssistantRuntimeConfig {\n azure?: SurveyAssistantAzureConfig;\n defaultModelId: string;\n enabled: boolean;\n modelCatalogTtlMs: number;\n modelIds: string[];\n observationalMemory: SurveyAssistantObservationalMemoryOptions | false;\n provider: SurveyAssistantProvider;\n readinessError: string | null;\n execution: SurveyAssistantExecutionConfig;\n}\n\nexport interface ParseSurveyAssistantEnvironmentOptions {\n defaultMistralModel?: string;\n defaultOpenAIModel?: string;\n defaultProvider?: SurveyAssistantProvider;\n requireExperimentalIdentityOptIn?: boolean;\n requireStorage?: boolean;\n}\n\ntype Environment = Record<string, string | undefined>;\n\nconst DEFAULT_MAX_STEPS = 48;\nconst HARD_MAX_STEPS = 64;\nconst DEFAULT_CATALOG_TTL_MS = 5 * 60 * 1_000;\n\nconst getValue = (env: Environment, name: string) => {\n const value = env[name]?.trim();\n return value || undefined;\n};\n\nconst getBoolean = (env: Environment, name: string, fallback: boolean) => {\n const value = getValue(env, name)?.toLowerCase();\n if (value === \"true\") return true;\n if (value === \"false\") return false;\n return fallback;\n};\n\nconst getPositiveNumber = (env: Environment, name: string, fallback: number) => {\n const value = Number(getValue(env, name));\n return Number.isFinite(value) && value > 0 ? value : fallback;\n};\n\nconst getEnum = <TValue extends string>(\n env: Environment,\n name: string,\n values: readonly TValue[],\n) => {\n const value = getValue(env, name);\n return value && (values as readonly string[]).includes(value) ? (value as TValue) : undefined;\n};\n\nconst getCommaSeparatedValues = (env: Environment, name: string) => [\n ...new Set(\n (getValue(env, name) ?? \"\")\n .split(\",\")\n .map((value) => value.trim())\n .filter(Boolean),\n ),\n];\n\nexport const resolveSurveyAssistantProviderOptionsKey = (\n provider: SurveyAssistantProvider,\n): SurveyAssistantProviderOptionsKey => (provider === \"azure-openai\" ? \"azure\" : provider);\n\nconst parseProvider = (\n env: Environment,\n fallback: SurveyAssistantProvider,\n): SurveyAssistantProvider => {\n const value = getValue(env, \"SURVEY_ASSISTANT_PROVIDER\")?.toLowerCase();\n if (value === \"azure\" || value === \"azure-openai\") return \"azure-openai\";\n if (value === \"openai\" || value === \"mistral\") return value;\n return fallback;\n};\n\nconst parseAzureManagement = (\n env: Environment,\n): AzureOpenAIGatewayConfig[\"management\"] | undefined => {\n if (!getBoolean(env, \"SURVEY_ASSISTANT_AZURE_DISCOVER_MODELS\", false)) return undefined;\n const management = {\n tenantId: getValue(env, \"AZURE_TENANT_ID\"),\n clientId: getValue(env, \"AZURE_CLIENT_ID\"),\n clientSecret: getValue(env, \"AZURE_CLIENT_SECRET\"),\n subscriptionId: getValue(env, \"AZURE_SUBSCRIPTION_ID\"),\n resourceGroup: getValue(env, \"AZURE_RESOURCE_GROUP\"),\n };\n return Object.values(management).every(Boolean)\n ? (management as AzureOpenAIGatewayConfig[\"management\"])\n : undefined;\n};\n\nconst getReadinessError = ({\n azure,\n env,\n modelWasConfigured,\n provider,\n requireStorage,\n}: {\n azure?: SurveyAssistantAzureConfig;\n env: Environment;\n modelWasConfigured: boolean;\n provider: SurveyAssistantProvider;\n requireStorage: boolean;\n}) => {\n if (\n requireStorage &&\n !getValue(env, \"SURVEY_ASSISTANT_DATABASE_URL\") &&\n !getValue(env, \"DATABASE_URL\")\n ) {\n return \"Survey assistant storage is not configured.\";\n }\n if (provider === \"openai\" && !getValue(env, \"OPENAI_API_KEY\")) {\n return \"The OpenAI API key is not configured for the survey assistant.\";\n }\n if (provider === \"mistral\" && !getValue(env, \"MISTRAL_API_KEY\")) {\n return \"The Mistral API key is not configured for the survey assistant.\";\n }\n if (provider === \"azure-openai\") {\n if (!azure?.resourceName) {\n return \"The Azure OpenAI resource name is not configured for the survey assistant.\";\n }\n if (!azure.apiKey) {\n return \"The Azure OpenAI API key is not configured for the survey assistant.\";\n }\n if (!modelWasConfigured) {\n return \"The Azure OpenAI deployment name is not configured for the survey assistant.\";\n }\n if (azure.discoverModels && !azure.management) {\n return \"Azure deployment discovery requires complete tenant, client, subscription, and resource-group settings.\";\n }\n }\n return null;\n};\n\nexport const parseSurveyAssistantEnvironment = (\n env: Environment,\n {\n defaultMistralModel = \"mistral-medium-latest\",\n defaultOpenAIModel = \"gpt-5.4-nano\",\n defaultProvider = \"openai\",\n requireExperimentalIdentityOptIn = false,\n requireStorage = true,\n }: ParseSurveyAssistantEnvironmentOptions = {},\n): SurveyAssistantRuntimeConfig => {\n const provider = parseProvider(env, defaultProvider);\n const configuredModelId = getValue(env, \"SURVEY_ASSISTANT_MODEL\");\n const defaultModelId =\n configuredModelId ?? (provider === \"mistral\" ? defaultMistralModel : defaultOpenAIModel);\n const modelIds = [\n ...new Set([defaultModelId, ...getCommaSeparatedValues(env, \"SURVEY_ASSISTANT_MODELS\")]),\n ];\n const sendReasoning = getBoolean(env, \"SURVEY_ASSISTANT_SEND_REASONING\", true);\n const providerOptionsKey = resolveSurveyAssistantProviderOptionsKey(provider);\n const providerReasoningEffort = getValue(\n env,\n `SURVEY_ASSISTANT_${providerOptionsKey.toUpperCase()}_REASONING_EFFORT`,\n );\n const reasoningEffort =\n providerReasoningEffort ??\n getValue(env, \"SURVEY_ASSISTANT_REASONING_EFFORT\") ??\n (provider === \"openai\" || provider === \"azure-openai\" ? \"low\" : \"none\");\n const promptCacheRetention = getEnum(\n env,\n provider === \"azure-openai\"\n ? \"SURVEY_ASSISTANT_AZURE_PROMPT_CACHE_RETENTION\"\n : \"SURVEY_ASSISTANT_PROMPT_CACHE_RETENTION\",\n [\"in_memory\", \"24h\"] as const,\n );\n const serviceTier = getEnum(env, \"SURVEY_ASSISTANT_OPENAI_SERVICE_TIER\", [\n \"auto\",\n \"flex\",\n \"priority\",\n \"default\",\n ] as const);\n const textVerbosity = getEnum(env, \"SURVEY_ASSISTANT_OPENAI_TEXT_VERBOSITY\", [\n \"low\",\n \"medium\",\n \"high\",\n ] as const);\n const reasoningSummaryValue = getEnum(env, \"SURVEY_ASSISTANT_OPENAI_REASONING_SUMMARY\", [\n \"auto\",\n \"concise\",\n \"detailed\",\n \"off\",\n \"none\",\n ] as const);\n const reasoningSummary =\n reasoningSummaryValue === \"off\" || reasoningSummaryValue === \"none\"\n ? undefined\n : (reasoningSummaryValue ?? \"auto\");\n const resolvedReasoningEffort =\n reasoningEffort === \"default\" || reasoningEffort === \"provider-default\"\n ? undefined\n : reasoningEffort;\n const providerOptions: AgentExecutionOptions[\"providerOptions\"] = {\n [providerOptionsKey]: {\n parallelToolCalls: false,\n ...(resolvedReasoningEffort ? { reasoningEffort: resolvedReasoningEffort } : {}),\n ...(provider === \"openai\" || provider === \"azure-openai\"\n ? {\n promptCacheKey:\n getValue(env, \"SURVEY_ASSISTANT_PROMPT_CACHE_KEY\") ?? \"survey-assistant-chat-v21\",\n ...(promptCacheRetention ? { promptCacheRetention } : {}),\n ...(sendReasoning && reasoningSummary ? { reasoningSummary } : {}),\n ...(provider === \"openai\" && serviceTier ? { serviceTier } : {}),\n ...(textVerbosity ? { textVerbosity } : {}),\n }\n : {}),\n },\n };\n const azure: SurveyAssistantAzureConfig | undefined =\n provider === \"azure-openai\"\n ? {\n resourceName: getValue(env, \"AZURE_RESOURCE_NAME\"),\n apiKey: getValue(env, \"AZURE_API_KEY\"),\n apiVersion: getValue(env, \"SURVEY_ASSISTANT_AZURE_API_VERSION\") ?? \"v1\",\n discoverModels: getBoolean(env, \"SURVEY_ASSISTANT_AZURE_DISCOVER_MODELS\", false),\n management: parseAzureManagement(env),\n }\n : undefined;\n const memoryModelValue = getValue(env, \"SURVEY_ASSISTANT_MEMORY_MODEL\");\n const memoryModel = memoryModelValue\n ? memoryModelValue.includes(\"/\")\n ? memoryModelValue\n : `${provider}/${memoryModelValue}`\n : `${provider}/${defaultModelId}`;\n const observationalMemory = getBoolean(env, \"SURVEY_ASSISTANT_MEMORY_ENABLED\", true)\n ? createSurveyAssistantObservationalMemoryOptions({\n model: memoryModel,\n temporalMarkers: getBoolean(env, \"SURVEY_ASSISTANT_MEMORY_TEMPORAL_MARKERS\", false),\n observation: {\n messageTokens: getPositiveNumber(\n env,\n \"SURVEY_ASSISTANT_MEMORY_MESSAGE_TOKENS\",\n SURVEY_ASSISTANT_OBSERVATIONAL_MEMORY_DEFAULTS.messageTokens,\n ),\n bufferOnIdle: getBoolean(env, \"SURVEY_ASSISTANT_MEMORY_BUFFER_ON_IDLE\", false),\n observeAttachments: false,\n },\n reflection: {\n observationTokens: getPositiveNumber(\n env,\n \"SURVEY_ASSISTANT_MEMORY_OBSERVATION_TOKENS\",\n SURVEY_ASSISTANT_OBSERVATIONAL_MEMORY_DEFAULTS.observationTokens,\n ),\n },\n })\n : false;\n const configuredMaxSteps = getPositiveNumber(\n env,\n \"SURVEY_ASSISTANT_MAX_STEPS\",\n DEFAULT_MAX_STEPS,\n );\n const enabledSetting = getValue(env, \"SURVEY_ASSISTANT_ENABLED\")?.toLowerCase();\n const enabled =\n enabledSetting === \"false\"\n ? false\n : enabledSetting === \"true\"\n ? !requireExperimentalIdentityOptIn ||\n env.NODE_ENV === \"development\" ||\n getBoolean(env, \"SURVEY_ASSISTANT_ALLOW_EXPERIMENTAL_IDENTITY\", false)\n : env.NODE_ENV === \"development\";\n\n return {\n provider,\n defaultModelId,\n modelIds,\n modelCatalogTtlMs: getPositiveNumber(\n env,\n \"SURVEY_ASSISTANT_MODEL_CATALOG_TTL_MS\",\n DEFAULT_CATALOG_TTL_MS,\n ),\n azure,\n enabled,\n readinessError: getReadinessError({\n azure,\n env,\n modelWasConfigured: Boolean(configuredModelId),\n provider,\n requireStorage,\n }),\n execution: {\n maxConcurrentRequests: getPositiveNumber(env, \"SURVEY_ASSISTANT_MAX_CONCURRENT_REQUESTS\", 4),\n maxSteps: Math.min(configuredMaxSteps, HARD_MAX_STEPS),\n providerOptions,\n sendReasoning,\n },\n observationalMemory,\n };\n};\n","import type { AgentExecutionOptions } from \"@mastra/core/agent\";\nimport { AzureOpenAIGateway, type MastraModelGatewayInterface } from \"@mastra/core/llm\";\nimport type { Mastra } from \"@mastra/core/mastra\";\nimport type { RequestContext } from \"@mastra/core/request-context\";\nimport type { SurveyAssistantModelCatalog } from \"../protocol\";\nimport { createSurveyAssistantAgent, type CreateSurveyAssistantAgentOptions } from \"./agent\";\nimport { SURVEY_ASSISTANT_AGENT_ID, SURVEY_ASSISTANT_TASK_AGENT_ID } from \"./constants\";\nimport {\n createSurveyAssistantChatHandler,\n SurveyAssistantAuthorizationError,\n type SurveyAssistantAuthorize,\n type SurveyAssistantChatHandlerOptions,\n type SurveyAssistantResolveModel,\n} from \"./handler\";\nimport { createMastraMemoryThreadRepository } from \"./memory-thread-repository\";\nimport type { SurveyAssistantRequestContext } from \"./request-context\";\nimport type { SurveyAssistantCapabilitySet } from \"../engine\";\nimport type { SurveyAssistantRuntimeConfig } from \"./runtime-config\";\nimport {\n createSurveyAssistantTaskAgent,\n createSurveyAssistantTaskHandler,\n type CreateSurveyAssistantTaskHandlerOptions,\n} from \"./tasks\";\nimport type { SurveyAssistantThreadDocumentRepository } from \"./thread-documents\";\nimport {\n createSurveyAssistantThreadHandlers,\n type CreateSurveyAssistantThreadHandlersOptions,\n} from \"./thread-handlers\";\nimport { SURVEY_ASSISTANT_TOOL_IDS } from \"./tools\";\n\nexport {\n parseSurveyAssistantEnvironment,\n resolveSurveyAssistantProviderOptionsKey,\n type ParseSurveyAssistantEnvironmentOptions,\n type SurveyAssistantAzureConfig,\n type SurveyAssistantExecutionConfig,\n type SurveyAssistantProvider,\n type SurveyAssistantProviderOptionsKey,\n type SurveyAssistantRuntimeConfig,\n} from \"./runtime-config\";\n\nexport interface SurveyAssistantModelRouter {\n defaultModel: string;\n gateways?: Record<string, MastraModelGatewayInterface>;\n getCatalog(options?: { refresh?: boolean }): Promise<SurveyAssistantModelCatalog>;\n providerName: string;\n providerOptions?: AgentExecutionOptions[\"providerOptions\"];\n resolveModel: SurveyAssistantResolveModel;\n}\n\nexport const createSurveyAssistantModelRouter = (\n config: SurveyAssistantRuntimeConfig,\n): SurveyAssistantModelRouter => {\n const azureGateway = config.azure\n ? new AzureOpenAIGateway({\n resourceName: config.azure.resourceName ?? \"\",\n apiKey: config.azure.apiKey,\n apiVersion: config.azure.apiVersion,\n useResponsesAPI: true,\n ...(config.azure.management\n ? { management: config.azure.management }\n : { deployments: config.modelIds }),\n })\n : undefined;\n let cachedCatalog: { expiresAt: number; value: SurveyAssistantModelCatalog } | undefined;\n\n const getCatalog = async ({ refresh = false }: { refresh?: boolean } = {}) => {\n if (!refresh && cachedCatalog && cachedCatalog.expiresAt > Date.now()) {\n return cachedCatalog.value;\n }\n let ids = config.modelIds;\n if (azureGateway && config.azure?.discoverModels) {\n try {\n const providers = await azureGateway.fetchProviders();\n ids = [...new Set([...config.modelIds, ...(providers[\"azure-openai\"]?.models ?? [])])];\n } catch {\n // Keep the explicit catalog available when Azure management discovery is temporarily down.\n }\n }\n const value = {\n defaultModelId: config.defaultModelId,\n models: ids.map((id) => ({ id, label: id })),\n } satisfies SurveyAssistantModelCatalog;\n cachedCatalog = { expiresAt: Date.now() + config.modelCatalogTtlMs, value };\n return value;\n };\n\n return {\n defaultModel: `${config.provider}/${config.defaultModelId}`,\n gateways: azureGateway\n ? {\n // Mastra 1.47 narrows one method's environment type in the concrete class.\n \"azure-openai\": azureGateway as unknown as MastraModelGatewayInterface,\n }\n : undefined,\n getCatalog,\n providerName: config.provider,\n providerOptions: config.execution.providerOptions,\n resolveModel: async ({ requestedModelId }) => {\n const catalog = await getCatalog();\n const id = requestedModelId ?? catalog.defaultModelId;\n return catalog.models.some((model) => model.id === id)\n ? { id, model: `${config.provider}/${id}` }\n : null;\n },\n };\n};\n\nexport interface SurveyAssistantRuntimeComponents {\n agents: Record<\n string,\n | ReturnType<typeof createSurveyAssistantAgent>\n | ReturnType<typeof createSurveyAssistantTaskAgent>\n >;\n gateways?: Record<string, MastraModelGatewayInterface>;\n modelRouter: SurveyAssistantModelRouter;\n}\n\nexport const createSurveyAssistantRuntimeComponents = (\n config: SurveyAssistantRuntimeConfig,\n): SurveyAssistantRuntimeComponents => {\n const modelRouter = createSurveyAssistantModelRouter(config);\n const model: CreateSurveyAssistantAgentOptions[\"model\"] = ({\n requestContext,\n }: {\n requestContext: RequestContext<SurveyAssistantRequestContext>;\n }) => requestContext.get(\"modelSelection\")?.model ?? modelRouter.defaultModel;\n return {\n agents: {\n [SURVEY_ASSISTANT_AGENT_ID]: createSurveyAssistantAgent({\n model,\n observationalMemory: config.observationalMemory,\n }),\n [SURVEY_ASSISTANT_TASK_AGENT_ID]: createSurveyAssistantTaskAgent({ model }),\n },\n gateways: modelRouter.gateways,\n modelRouter,\n };\n};\n\ntype ChatHandlerOverrides = Partial<\n Omit<\n SurveyAssistantChatHandlerOptions,\n \"authorize\" | \"mastra\" | \"providerName\" | \"providerOptions\" | \"resolveModel\"\n >\n>;\n\nexport interface CreateSurveyAssistantRuntimeHandlersOptions {\n authorize: {\n chat: SurveyAssistantAuthorize;\n model?: (request: Request) => unknown | Promise<unknown>;\n task: CreateSurveyAssistantTaskHandlerOptions[\"authorize\"];\n thread: CreateSurveyAssistantThreadHandlersOptions[\"authorize\"];\n };\n chat?: ChatHandlerOverrides;\n config: SurveyAssistantRuntimeConfig;\n mastra: Mastra | (() => Mastra | Promise<Mastra>);\n modelRouter: SurveyAssistantModelRouter;\n threadDocuments?: SurveyAssistantThreadDocumentRepository;\n}\n\nexport type CreateConfiguredSurveyAssistantRuntimeHandlersOptions = Omit<\n CreateSurveyAssistantRuntimeHandlersOptions,\n \"config\" | \"modelRouter\"\n>;\n\nconst resolveMastra = async (mastra: Mastra | (() => Mastra | Promise<Mastra>)) =>\n typeof mastra === \"function\" ? mastra() : mastra;\n\nexport const createSurveyAssistantRuntimeHandlers = ({\n authorize,\n chat = {},\n config,\n mastra,\n modelRouter,\n threadDocuments,\n}: CreateSurveyAssistantRuntimeHandlersOptions) => {\n const isEnabled = chat.isEnabled ?? (() => config.enabled);\n const getReadinessError = chat.getReadinessError ?? (() => config.readinessError);\n const chatHandler = createSurveyAssistantChatHandler({\n ...chat,\n mastra,\n agentId: SURVEY_ASSISTANT_AGENT_ID,\n activeTools:\n chat.activeTools ??\n (config.observationalMemory === false\n ? SURVEY_ASSISTANT_TOOL_IDS\n : [...SURVEY_ASSISTANT_TOOL_IDS, \"recall\"]),\n authorize: authorize.chat,\n getReadinessError,\n isEnabled,\n maxConcurrentRequests: chat.maxConcurrentRequests ?? config.execution.maxConcurrentRequests,\n maxSteps: chat.maxSteps ?? config.execution.maxSteps,\n providerName: modelRouter.providerName,\n providerOptions: modelRouter.providerOptions,\n resolveModel: modelRouter.resolveModel,\n sendReasoning: chat.sendReasoning ?? config.execution.sendReasoning,\n threadDocuments,\n });\n const taskHandler = createSurveyAssistantTaskHandler({\n agent: async () => (await resolveMastra(mastra)).getAgent(SURVEY_ASSISTANT_TASK_AGENT_ID),\n authorize: authorize.task,\n getReadinessError,\n isEnabled,\n providerOptions: modelRouter.providerOptions,\n resolveModel: modelRouter.resolveModel,\n });\n const getMemory = async () => {\n const memory = await (\n await resolveMastra(mastra)\n )\n .getAgent(SURVEY_ASSISTANT_AGENT_ID)\n .getMemory();\n if (!memory) throw new Error(\"Survey assistant memory is not configured.\");\n return memory;\n };\n const threads = createSurveyAssistantThreadHandlers({\n authorize: async (request) => {\n if (!config.enabled) {\n throw new SurveyAssistantAuthorizationError(\"Survey assistant is disabled.\", 404);\n }\n return authorize.thread(request);\n },\n repository: createMastraMemoryThreadRepository({ getMemory, threadDocuments }),\n });\n const models = async (request: Request) => {\n if (!config.enabled) {\n return Response.json(\n { code: \"authorization_failed\", error: \"Survey assistant is disabled.\" },\n { status: 404 },\n );\n }\n try {\n await (authorize.model ?? authorize.task)(request);\n return Response.json(await modelRouter.getCatalog());\n } catch (error) {\n const status =\n typeof error === \"object\" &&\n error !== null &&\n \"status\" in error &&\n typeof error.status === \"number\"\n ? error.status\n : 403;\n return Response.json(\n {\n code: \"authorization_failed\",\n error:\n error instanceof Error\n ? error.message\n : \"The survey assistant request is not authorized.\",\n },\n { status },\n );\n }\n };\n\n return {\n chat: chatHandler,\n models,\n task: taskHandler,\n threads,\n };\n};\n\nexport interface SurveyAssistantRuntime extends SurveyAssistantRuntimeComponents {\n config: SurveyAssistantRuntimeConfig;\n createHandlers(\n options: CreateConfiguredSurveyAssistantRuntimeHandlersOptions,\n ): ReturnType<typeof createSurveyAssistantRuntimeHandlers>;\n}\n\nexport interface CreateSurveyAssistantRuntimeOptions {\n /** Trusted server-side capabilities for custom registry item types. */\n trustedCapabilities?: SurveyAssistantCapabilitySet;\n}\n\n/**\n * Creates the reusable assistant runtime without hiding Mastra from the host.\n * Register `agents` and `gateways` in the host's standard Mastra instance, then\n * call `createHandlers` with that instance and host authorization policy.\n */\nexport const createSurveyAssistantRuntime = (\n config: SurveyAssistantRuntimeConfig,\n runtimeOptions: CreateSurveyAssistantRuntimeOptions = {},\n): SurveyAssistantRuntime => {\n const components = createSurveyAssistantRuntimeComponents(config);\n return {\n ...components,\n config,\n createHandlers: (handlerOptions) =>\n createSurveyAssistantRuntimeHandlers({\n ...handlerOptions,\n chat: {\n ...handlerOptions.chat,\n trustedCapabilities:\n handlerOptions.chat?.trustedCapabilities ?? runtimeOptions.trustedCapabilities,\n },\n config,\n modelRouter: components.modelRouter,\n }),\n };\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { A as SurveyAssistantSuggestItemKeyResult, B as SurveyAssistantTranslateContentResult, F as SurveyAssistantTaskInvocationMode, M as SurveyAssistantSuggestItemLabelResult, P as SurveyAssistantTaskContext, j as SurveyAssistantSuggestItemLabelInput, k as SurveyAssistantSuggestItemKeyInput, z as SurveyAssistantTranslateContentInput } from "./index-TFtvBiSQ.mjs";
|
|
2
|
+
import { a as SurveyAssistantRequestContext, i as SurveyAssistantModelSelection, n as SURVEY_ASSISTANT_TASK_AGENT_ID } from "./constants-Jw0k8ojS.mjs";
|
|
3
|
+
import { t as SurveyAuthoringReferenceTopic } from "./authoring-references-Cy8J-DWt.mjs";
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import { RequestContext } from "@mastra/core/request-context";
|
|
6
|
+
import * as _$_mastra_core_agent0 from "@mastra/core/agent";
|
|
7
|
+
import { Agent, AgentConfig, AgentExecutionOptions } from "@mastra/core/agent";
|
|
8
|
+
|
|
9
|
+
//#region src/server/tasks.d.ts
|
|
10
|
+
type SurveyAssistantTaskAgentConfig = AgentConfig<typeof SURVEY_ASSISTANT_TASK_AGENT_ID, Record<string, never>, undefined, SurveyAssistantRequestContext>;
|
|
11
|
+
interface CreateSurveyAssistantTaskAgentOptions {
|
|
12
|
+
model: SurveyAssistantTaskAgentConfig["model"];
|
|
13
|
+
}
|
|
14
|
+
declare const createSurveyAssistantTaskAgent: ({
|
|
15
|
+
model
|
|
16
|
+
}: CreateSurveyAssistantTaskAgentOptions) => Agent<"survey-assistant-task-agent", Record<string, never>, undefined, SurveyAssistantRequestContext, _$_mastra_core_agent0.AgentEditorConfig | undefined>;
|
|
17
|
+
interface RunSurveyAssistantTaskOptions<TSchema extends z.ZodType> {
|
|
18
|
+
agent: Pick<Agent, "generate">;
|
|
19
|
+
taskId: string;
|
|
20
|
+
input: unknown;
|
|
21
|
+
context: SurveyAssistantTaskContext;
|
|
22
|
+
schema: TSchema;
|
|
23
|
+
instructions: readonly string[];
|
|
24
|
+
referenceTopics?: readonly SurveyAuthoringReferenceTopic[];
|
|
25
|
+
requestContext?: RequestContext<SurveyAssistantRequestContext>;
|
|
26
|
+
providerOptions?: AgentExecutionOptions["providerOptions"];
|
|
27
|
+
abortSignal?: AbortSignal;
|
|
28
|
+
}
|
|
29
|
+
declare const runSurveyAssistantTask: <TSchema extends z.ZodType>({
|
|
30
|
+
agent,
|
|
31
|
+
taskId,
|
|
32
|
+
input,
|
|
33
|
+
context,
|
|
34
|
+
schema,
|
|
35
|
+
instructions,
|
|
36
|
+
referenceTopics,
|
|
37
|
+
requestContext,
|
|
38
|
+
providerOptions,
|
|
39
|
+
abortSignal
|
|
40
|
+
}: RunSurveyAssistantTaskOptions<TSchema>) => Promise<z.output<TSchema>>;
|
|
41
|
+
interface RunSurveyAssistantBuiltInTaskOptions {
|
|
42
|
+
agent: Pick<Agent, "generate">;
|
|
43
|
+
context: SurveyAssistantTaskContext;
|
|
44
|
+
mode?: SurveyAssistantTaskInvocationMode;
|
|
45
|
+
requestContext?: RequestContext<SurveyAssistantRequestContext>;
|
|
46
|
+
providerOptions?: AgentExecutionOptions["providerOptions"];
|
|
47
|
+
abortSignal?: AbortSignal;
|
|
48
|
+
}
|
|
49
|
+
declare const runSurveyAssistantSuggestItemKeyTask: (input: SurveyAssistantSuggestItemKeyInput, options: RunSurveyAssistantBuiltInTaskOptions) => Promise<SurveyAssistantSuggestItemKeyResult>;
|
|
50
|
+
declare const runSurveyAssistantSuggestItemLabelTask: (input: SurveyAssistantSuggestItemLabelInput, options: RunSurveyAssistantBuiltInTaskOptions) => Promise<SurveyAssistantSuggestItemLabelResult>;
|
|
51
|
+
declare const runSurveyAssistantTranslateContentTask: (input: SurveyAssistantTranslateContentInput, options: RunSurveyAssistantBuiltInTaskOptions) => Promise<SurveyAssistantTranslateContentResult>;
|
|
52
|
+
interface SurveyAssistantTaskAuthorizedIdentity {
|
|
53
|
+
resourceId: string;
|
|
54
|
+
}
|
|
55
|
+
interface SurveyAssistantTaskModelResolutionInput {
|
|
56
|
+
identity: SurveyAssistantTaskAuthorizedIdentity;
|
|
57
|
+
request: Request;
|
|
58
|
+
requestedModelId?: string;
|
|
59
|
+
}
|
|
60
|
+
interface CreateSurveyAssistantTaskHandlerOptions {
|
|
61
|
+
agent: Pick<Agent, "generate"> | (() => Pick<Agent, "generate"> | Promise<Pick<Agent, "generate">>);
|
|
62
|
+
authorize(request: Request): SurveyAssistantTaskAuthorizedIdentity | Promise<SurveyAssistantTaskAuthorizedIdentity>;
|
|
63
|
+
getReadinessError?(request: Request): string | null | Promise<string | null>;
|
|
64
|
+
isEnabled?(request: Request): boolean | Promise<boolean>;
|
|
65
|
+
providerOptions?: AgentExecutionOptions["providerOptions"];
|
|
66
|
+
resolveModel?(input: SurveyAssistantTaskModelResolutionInput): SurveyAssistantModelSelection | null | undefined | Promise<SurveyAssistantModelSelection | null | undefined>;
|
|
67
|
+
}
|
|
68
|
+
declare const createSurveyAssistantTaskHandler: ({
|
|
69
|
+
agent,
|
|
70
|
+
authorize,
|
|
71
|
+
getReadinessError,
|
|
72
|
+
isEnabled,
|
|
73
|
+
providerOptions,
|
|
74
|
+
resolveModel
|
|
75
|
+
}: CreateSurveyAssistantTaskHandlerOptions) => (request: Request) => Promise<Response>;
|
|
76
|
+
//#endregion
|
|
77
|
+
export { CreateSurveyAssistantTaskAgentOptions, CreateSurveyAssistantTaskHandlerOptions, RunSurveyAssistantBuiltInTaskOptions, RunSurveyAssistantTaskOptions, SurveyAssistantTaskAuthorizedIdentity, SurveyAssistantTaskModelResolutionInput, createSurveyAssistantTaskAgent, createSurveyAssistantTaskHandler, runSurveyAssistantSuggestItemKeyTask, runSurveyAssistantSuggestItemLabelTask, runSurveyAssistantTask, runSurveyAssistantTranslateContentTask };
|
|
78
|
+
//# sourceMappingURL=server-tasks.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-tasks.d.mts","names":[],"sources":["../src/server/tasks.ts"],"mappings":";;;;;;;;;KAyBK,8BAAA,GAAiC,WAAA,QAC7B,8BAAA,EACP,MAAA,4BAEA,6BAAA;AAAA,UAGe,qCAAA;EACf,KAAA,EAAO,8BAAA;AAAA;AAAA,cAGI,8BAAA;EAAkC;AAAA,GAAW,qCAAA,KAAqC,KAAA,gCAAA,MAAA,4BAAA,6BAAA,EAAA,qBAAA,CAAA,iBAAA;AAAA,UAc9E,6BAAA,iBAA8C,CAAA,CAAE,OAAA;EAC/D,KAAA,EAAO,IAAA,CAAK,KAAA;EACZ,MAAA;EACA,KAAA;EACA,OAAA,EAAS,0BAAA;EACT,MAAA,EAAQ,OAAA;EACR,YAAA;EACA,eAAA,YAA2B,6BAAA;EAC3B,cAAA,GAAiB,cAAA,CAAe,6BAAA;EAChC,eAAA,GAAkB,qBAAA;EAClB,WAAA,GAAc,WAAA;AAAA;AAAA,cAUH,sBAAA,mBAAgD,CAAA,CAAE,OAAA;EAAS,KAAA;EAAA,MAAA;EAAA,KAAA;EAAA,OAAA;EAAA,MAAA;EAAA,YAAA;EAAA,eAAA;EAAA,cAAA;EAAA,eAAA;EAAA;AAAA,GAWrE,6BAAA,CAA8B,OAAA,MAAW,OAAA,CAAQ,CAAA,CAAE,MAAA,CAAO,OAAA;AAAA,UAiF5C,oCAAA;EACf,KAAA,EAAO,IAAA,CAAK,KAAA;EACZ,OAAA,EAAS,0BAAA;EACT,IAAA,GAAO,iCAAA;EACP,cAAA,GAAiB,cAAA,CAAe,6BAAA;EAChC,eAAA,GAAkB,qBAAA;EAClB,WAAA,GAAc,WAAA;AAAA;AAAA,cAqBH,oCAAA,GACX,KAAA,EAAO,kCAAA,EACP,OAAA,EAAS,oCAAA,KACR,OAAA,CAAQ,mCAAA;AAAA,cAoDE,sCAAA,GACX,KAAA,EAAO,oCAAA,EACP,OAAA,EAAS,oCAAA,KACR,OAAA,CAAQ,qCAAA;AAAA,cA6CE,sCAAA,GACX,KAAA,EAAO,oCAAA,EACP,OAAA,EAAS,oCAAA,KACR,OAAA,CAAQ,qCAAA;AAAA,UA4CM,qCAAA;EACf,UAAA;AAAA;AAAA,UAGe,uCAAA;EACf,QAAA,EAAU,qCAAA;EACV,OAAA,EAAS,OAAA;EACT,gBAAA;AAAA;AAAA,UAGe,uCAAA;EACf,KAAA,EACI,IAAA,CAAK,KAAA,uBACE,IAAA,CAAK,KAAA,gBAAqB,OAAA,CAAQ,IAAA,CAAK,KAAA;EAClD,SAAA,CACE,OAAA,EAAS,OAAA,GACR,qCAAA,GAAwC,OAAA,CAAQ,qCAAA;EACnD,iBAAA,EAAmB,OAAA,EAAS,OAAA,mBAA0B,OAAA;EACtD,SAAA,EAAW,OAAA,EAAS,OAAA,aAAoB,OAAA;EACxC,eAAA,GAAkB,qBAAA;EAClB,YAAA,EACE,KAAA,EAAO,uCAAA,GAEL,6BAAA,sBAGA,OAAA,CAAQ,6BAAA;AAAA;AAAA,cAsBD,gCAAA;EACV,KAAA;EAAA,SAAA;EAAA,iBAAA;EAAA,SAAA;EAAA,eAAA;EAAA;AAAA,GAOE,uCAAA,MACI,OAAA,EAAS,OAAA,KAAU,OAAA,CAAQ,QAAA"}
|