@case-framework/survey-assistant 0.6.0 → 0.8.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 +67 -7
- package/dist/{attachments-B0hg3vpT.mjs → attachments-BuNni5vB.mjs} +1 -1
- package/dist/{attachments-B0hg3vpT.mjs.map → attachments-BuNni5vB.mjs.map} +1 -1
- package/dist/{authoring-references-CW38pYzK.mjs → authoring-references-DbuOKerg.mjs} +13 -4
- package/dist/authoring-references-DbuOKerg.mjs.map +1 -0
- package/dist/{capabilities-DVTfogjv.d.mts → capabilities-CmeeAjEc.d.mts} +3 -4
- package/dist/capabilities-CmeeAjEc.d.mts.map +1 -0
- package/dist/capabilities-DCMA71PP.mjs +58 -0
- package/dist/capabilities-DCMA71PP.mjs.map +1 -0
- package/dist/capabilities-default.d.mts +13 -12
- package/dist/capabilities-default.d.mts.map +1 -1
- package/dist/capabilities-default.mjs +2 -414
- package/dist/{constants-BMGTgfjv.d.mts → constants-B6HzpEsx.d.mts} +7 -28
- package/dist/constants-B6HzpEsx.d.mts.map +1 -0
- package/dist/{constants-0UHGFcRJ.mjs → constants-Ct-vv9cu.mjs} +1 -1
- package/dist/{constants-0UHGFcRJ.mjs.map → constants-Ct-vv9cu.mjs.map} +1 -1
- package/dist/controller-proxy-D7uQfm5f.d.mts +65 -0
- package/dist/controller-proxy-D7uQfm5f.d.mts.map +1 -0
- package/dist/{controller-proxy-DMTqer6T.mjs → controller-proxy-DEeFl9IA.mjs} +29 -26
- package/dist/controller-proxy-DEeFl9IA.mjs.map +1 -0
- package/dist/default-fhSon2RM.mjs +760 -0
- package/dist/default-fhSon2RM.mjs.map +1 -0
- package/dist/{digest-SJmoYVaK.d.mts → digest-C39WyAWG.d.mts} +2 -3
- package/dist/digest-C39WyAWG.d.mts.map +1 -0
- package/dist/digest.d.mts +1 -1
- package/dist/digest.mjs.map +1 -1
- package/dist/{engine-CQwOAcwK.mjs → engine-nXoCWYpQ.mjs} +2821 -2018
- package/dist/engine-nXoCWYpQ.mjs.map +1 -0
- package/dist/engine.d.mts +3 -3
- package/dist/engine.mjs +3 -3
- package/dist/{fair-guidance-CRYCRxQm.mjs → fair-guidance-BmO4PswW.mjs} +1 -1
- package/dist/{fair-guidance-CRYCRxQm.mjs.map → fair-guidance-BmO4PswW.mjs.map} +1 -1
- package/dist/{index-D6nqkz0O.d.mts → index-Ciq7vHIs.d.mts} +121 -197
- package/dist/index-Ciq7vHIs.d.mts.map +1 -0
- package/dist/{index-DvTqML-0.d.mts → index-D7wT6P3t.d.mts} +294 -63
- package/dist/index-D7wT6P3t.d.mts.map +1 -0
- package/dist/index-WB5kfnz0.d.mts +348 -0
- package/dist/index-WB5kfnz0.d.mts.map +1 -0
- package/dist/{index-B0lxsAzx.d.mts → index-r5riv4md.d.mts} +50 -29
- package/dist/index-r5riv4md.d.mts.map +1 -0
- package/dist/{lifecycle-BmGAIUlv.d.mts → lifecycle-Dm8u7QFh.d.mts} +40 -18
- package/dist/lifecycle-Dm8u7QFh.d.mts.map +1 -0
- package/dist/{memory-thread-repository-CjFGVNZh.mjs → memory-thread-repository-DAnOGIB3.mjs} +89 -34
- package/dist/memory-thread-repository-DAnOGIB3.mjs.map +1 -0
- package/dist/{protocol-DJUP4gc0.mjs → protocol-CF4Bh_Ch.mjs} +182 -50
- package/dist/protocol-CF4Bh_Ch.mjs.map +1 -0
- package/dist/protocol.d.mts +4 -4
- package/dist/protocol.mjs +3 -3
- package/dist/react-C_GY-Fsc.mjs +1727 -0
- package/dist/react-C_GY-Fsc.mjs.map +1 -0
- package/dist/react-integration.d.mts +2 -2
- package/dist/react-integration.mjs +2 -2
- package/dist/react.d.mts +3 -3
- package/dist/react.mjs +3 -3
- package/dist/references/assistant-operations.md +143 -68
- package/dist/references/core-rules.md +6 -3
- package/dist/references/embedded-forms.md +34 -14
- package/dist/references/expressions.md +238 -48
- package/dist/references/fair-by-design.md +9 -9
- package/dist/references/item-types.md +306 -72
- package/dist/references/localization.md +5 -4
- package/dist/references/response-variables.md +38 -0
- package/dist/references/rich-text-content.md +60 -27
- package/dist/references/source-material-surveys.md +13 -5
- package/dist/references/survey-data-model.md +32 -9
- package/dist/{request-context-BjTHNcDd.mjs → request-context-Dg4jSwN1.mjs} +4 -10
- package/dist/request-context-Dg4jSwN1.mjs.map +1 -0
- package/dist/{request-guardrails-TmgQtqp4.mjs → request-guardrails-C0ugBOp0.mjs} +6 -5
- package/dist/request-guardrails-C0ugBOp0.mjs.map +1 -0
- package/dist/server-agent.d.mts +53 -44
- package/dist/server-agent.d.mts.map +1 -1
- package/dist/server-agent.mjs +48 -27
- package/dist/server-agent.mjs.map +1 -1
- package/dist/server-runtime.d.mts +36 -49
- package/dist/server-runtime.d.mts.map +1 -1
- package/dist/server-runtime.mjs +17 -12
- package/dist/server-runtime.mjs.map +1 -1
- package/dist/server-tasks.d.mts +2 -2
- package/dist/server-tasks.mjs +2 -313
- package/dist/server-tools.d.mts +1 -1
- package/dist/server-tools.mjs +1 -1
- package/dist/server.d.mts +13 -36
- package/dist/server.d.mts.map +1 -1
- package/dist/server.mjs +5 -5
- package/dist/server.mjs.map +1 -1
- package/dist/storage-postgres.d.mts +9 -25
- package/dist/storage-postgres.d.mts.map +1 -1
- package/dist/storage-postgres.mjs +5 -4
- package/dist/storage-postgres.mjs.map +1 -1
- package/dist/{tasks-DxzD25Zc.d.mts → tasks-B9h3LPam.d.mts} +19 -35
- package/dist/tasks-B9h3LPam.d.mts.map +1 -0
- package/dist/tasks-BZEiwgxA.mjs +396 -0
- package/dist/tasks-BZEiwgxA.mjs.map +1 -0
- package/dist/thread-documents-DrHbaXqP.d.mts +119 -0
- package/dist/thread-documents-DrHbaXqP.d.mts.map +1 -0
- package/dist/{thread-handlers-AbQbt4sX.d.mts → thread-handlers-Bef0td9N.d.mts} +10 -40
- package/dist/thread-handlers-Bef0td9N.d.mts.map +1 -0
- package/dist/{tools-CFh35R4d.mjs → tools-CEsv-WoO.mjs} +705 -578
- package/dist/tools-CEsv-WoO.mjs.map +1 -0
- package/dist/ui.css +1 -1
- package/dist/ui.d.mts +17 -55
- package/dist/ui.d.mts.map +1 -1
- package/dist/ui.mjs +759 -171
- package/dist/ui.mjs.map +1 -1
- package/docs/integration.md +51 -1
- package/package.json +49 -42
- package/dist/authoring-references-CW38pYzK.mjs.map +0 -1
- package/dist/capabilities-DVTfogjv.d.mts.map +0 -1
- package/dist/capabilities-default.mjs.map +0 -1
- package/dist/constants-BMGTgfjv.d.mts.map +0 -1
- package/dist/controller-proxy-DMTqer6T.mjs.map +0 -1
- package/dist/controller-proxy-mRvez2qw.d.mts +0 -85
- package/dist/controller-proxy-mRvez2qw.d.mts.map +0 -1
- package/dist/digest-SJmoYVaK.d.mts.map +0 -1
- package/dist/engine-CQwOAcwK.mjs.map +0 -1
- package/dist/form-authoring-kQDgC5oz.mjs +0 -155
- package/dist/form-authoring-kQDgC5oz.mjs.map +0 -1
- package/dist/index-B0lxsAzx.d.mts.map +0 -1
- package/dist/index-BS-Xjk1h.d.mts +0 -224
- package/dist/index-BS-Xjk1h.d.mts.map +0 -1
- package/dist/index-D6nqkz0O.d.mts.map +0 -1
- package/dist/index-DvTqML-0.d.mts.map +0 -1
- package/dist/lifecycle-BmGAIUlv.d.mts.map +0 -1
- package/dist/memory-thread-repository-CjFGVNZh.mjs.map +0 -1
- package/dist/protocol-DJUP4gc0.mjs.map +0 -1
- package/dist/react-Dqlmasrs.mjs +0 -768
- package/dist/react-Dqlmasrs.mjs.map +0 -1
- package/dist/request-context-BjTHNcDd.mjs.map +0 -1
- package/dist/request-guardrails-TmgQtqp4.mjs.map +0 -1
- package/dist/server-tasks.mjs.map +0 -1
- package/dist/tasks-DxzD25Zc.d.mts.map +0 -1
- package/dist/thread-documents-rmd6nyX9.d.mts +0 -107
- package/dist/thread-documents-rmd6nyX9.d.mts.map +0 -1
- package/dist/thread-handlers-AbQbt4sX.d.mts.map +0 -1
- package/dist/tools-CFh35R4d.mjs.map +0 -1
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { i as AssistantItemTypeManifest, o as SurveyAssistantCapabilityManifest } from "./capabilities-
|
|
1
|
+
import { i as AssistantItemTypeManifest, o as SurveyAssistantCapabilityManifest } from "./capabilities-CmeeAjEc.mjs";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { SURVEY_EDITOR_ITEM_COLORS } from "@case-framework/survey-core/editor/colors";
|
|
4
4
|
import { Content, JsonPatchOperation, JsonValue, RawSurvey, RawSurveyAsset, RawSurveyItem, RichTextImageDimension, SurveyContentImageSource } from "@case-framework/survey-core";
|
|
5
|
-
|
|
6
5
|
//#region src/protocol/content.d.ts
|
|
7
6
|
declare const jsonValueSchema: z.ZodType<JsonValue>;
|
|
8
7
|
declare const surveyContentSchema: z.ZodType<Content>;
|
|
@@ -18,8 +17,9 @@ interface SurveyDocumentVersionShape {
|
|
|
18
17
|
capabilityDigest: string;
|
|
19
18
|
}
|
|
20
19
|
interface SurveyEditorUIContextShape {
|
|
21
|
-
view: "item-editor" | "preview-mode" | "translation-mode" | "asset-manager";
|
|
20
|
+
view: "item-editor" | "preview-mode" | "translation-mode" | "asset-manager" | "response-data";
|
|
22
21
|
selectedItemId?: string;
|
|
22
|
+
responseSlotId?: string;
|
|
23
23
|
selectedLocale: string;
|
|
24
24
|
focusItemId?: string;
|
|
25
25
|
recentItemIds?: string[];
|
|
@@ -92,16 +92,12 @@ interface CreateItemOperation extends OperationBase {
|
|
|
92
92
|
parentItemId: string;
|
|
93
93
|
index?: number;
|
|
94
94
|
};
|
|
95
|
+
presetId?: string;
|
|
95
96
|
item: Omit<RawSurveyItem, "id"> & {
|
|
96
97
|
id?: string;
|
|
97
98
|
};
|
|
98
99
|
translations?: ItemTranslation[];
|
|
99
100
|
}
|
|
100
|
-
interface UpdateItemKeyOperation extends OperationBase {
|
|
101
|
-
kind: "update-item-key";
|
|
102
|
-
itemId: string;
|
|
103
|
-
key: string;
|
|
104
|
-
}
|
|
105
101
|
interface UpdateItemLabelOperation extends OperationBase {
|
|
106
102
|
kind: "update-item-label";
|
|
107
103
|
itemId: string;
|
|
@@ -142,6 +138,7 @@ interface PatchItemConfigOperation extends OperationBase {
|
|
|
142
138
|
itemId: string;
|
|
143
139
|
/** JSON Patch paths are relative to the item's config root. */
|
|
144
140
|
patches: JsonPatchOperation[];
|
|
141
|
+
translations?: ItemTranslation[];
|
|
145
142
|
}
|
|
146
143
|
interface FormTarget {
|
|
147
144
|
itemId: string;
|
|
@@ -174,7 +171,7 @@ interface UpsertFormFieldOperation extends OperationBase {
|
|
|
174
171
|
index?: number;
|
|
175
172
|
field: Record<string, unknown> & {
|
|
176
173
|
id: string;
|
|
177
|
-
|
|
174
|
+
variableName: string;
|
|
178
175
|
type: string;
|
|
179
176
|
};
|
|
180
177
|
translations?: ItemTranslation[];
|
|
@@ -208,7 +205,7 @@ interface RemoveEmbeddedFormOperation extends OperationBase {
|
|
|
208
205
|
}
|
|
209
206
|
interface ChoiceOptionInput {
|
|
210
207
|
id?: string;
|
|
211
|
-
|
|
208
|
+
code?: string;
|
|
212
209
|
label: string;
|
|
213
210
|
}
|
|
214
211
|
interface AddChoiceOptionOperation extends OperationBase {
|
|
@@ -247,6 +244,7 @@ interface MoveItemOperation extends OperationBase {
|
|
|
247
244
|
parentItemId: string;
|
|
248
245
|
index?: number;
|
|
249
246
|
};
|
|
247
|
+
presetId?: string;
|
|
250
248
|
}
|
|
251
249
|
interface ReorderItemsOperation extends OperationBase {
|
|
252
250
|
kind: "reorder-items";
|
|
@@ -301,7 +299,12 @@ interface SurveyPatchOperation extends OperationBase {
|
|
|
301
299
|
kind: "survey-json-patch";
|
|
302
300
|
patches: JsonPatchOperation[];
|
|
303
301
|
}
|
|
304
|
-
|
|
302
|
+
interface UpdateResponseSettingsOperation extends OperationBase {
|
|
303
|
+
kind: "update-response-settings";
|
|
304
|
+
naming: import("@case-framework/survey-core/editor").ResponseNamingEdit[];
|
|
305
|
+
settings: import("@case-framework/survey-core/editor").ResponseSettingsEdit[];
|
|
306
|
+
}
|
|
307
|
+
type SurveyOperationShape = UpdateResponseSettingsOperation | CreateItemOperation | UpdateItemLabelOperation | UpdateItemColorOperation | UpdateItemTranslationOperation | UpdatePlacedImageOperation | PatchItemConfigOperation | UpsertFormFieldGroupOperation | RemoveFormFieldGroupOperation | ReorderFormFieldGroupsOperation | UpsertFormFieldOperation | RemoveFormFieldOperation | MoveFormFieldOperation | SetEmbeddedFormOperation | RemoveEmbeddedFormOperation | AddChoiceOptionOperation | UpdateChoiceOptionLabelOperation | RemoveChoiceOptionOperation | ReorderChoiceOptionsOperation | RemoveItemOperation | MoveItemOperation | ReorderItemsOperation | UpdateSurveyMetadataOperation | UpdateSurveyPaginationOperation | UpdateSurveyTranslationOperation | AddSurveyLocaleOperation | RemoveSurveyLocaleOperation | SetImageAssetOperation | UpdateImageAssetMetadataOperation | RemoveImageAssetOperation | SurveyPatchOperation;
|
|
305
308
|
type SurveyOperationKind = SurveyOperationShape["kind"];
|
|
306
309
|
interface SurveyValidationIssueShape {
|
|
307
310
|
severity: "error" | "warning";
|
|
@@ -319,7 +322,6 @@ interface SurveyValidationResultShape {
|
|
|
319
322
|
}
|
|
320
323
|
declare const jsonPatchOperationSchema: z.ZodType<JsonPatchOperation>;
|
|
321
324
|
declare const createItemOperationSchema: z.ZodType<CreateItemOperation>;
|
|
322
|
-
declare const updateItemKeyOperationSchema: z.ZodType<UpdateItemKeyOperation>;
|
|
323
325
|
declare const updateItemLabelOperationSchema: z.ZodType<UpdateItemLabelOperation>;
|
|
324
326
|
declare const updateItemColorOperationSchema: z.ZodType<UpdateItemColorOperation>;
|
|
325
327
|
declare const updateItemTranslationOperationSchema: z.ZodType<UpdateItemTranslationOperation>;
|
|
@@ -340,7 +342,6 @@ type SurveyValidationIssue = z.infer<typeof surveyValidationIssueSchema>;
|
|
|
340
342
|
type SurveyValidationResult = z.infer<typeof surveyValidationResultSchema>;
|
|
341
343
|
declare const surveyJsonPatchOperationSchema: z.ZodType<JsonPatchOperation, unknown, z.core.$ZodTypeInternals<JsonPatchOperation, unknown>>;
|
|
342
344
|
declare const surveyAssistantCreateItemOperationSchema: z.ZodType<CreateItemOperation, unknown, z.core.$ZodTypeInternals<CreateItemOperation, unknown>>;
|
|
343
|
-
declare const surveyAssistantUpdateItemKeyOperationSchema: z.ZodType<UpdateItemKeyOperation, unknown, z.core.$ZodTypeInternals<UpdateItemKeyOperation, unknown>>;
|
|
344
345
|
declare const surveyAssistantUpdateItemLabelOperationSchema: z.ZodType<UpdateItemLabelOperation, unknown, z.core.$ZodTypeInternals<UpdateItemLabelOperation, unknown>>;
|
|
345
346
|
declare const surveyAssistantUpdateItemColorOperationSchema: z.ZodType<UpdateItemColorOperation, unknown, z.core.$ZodTypeInternals<UpdateItemColorOperation, unknown>>;
|
|
346
347
|
declare const surveyAssistantUpdateItemTranslationOperationSchema: z.ZodType<UpdateItemTranslationOperation, unknown, z.core.$ZodTypeInternals<UpdateItemTranslationOperation, unknown>>;
|
|
@@ -367,6 +368,12 @@ interface SurveyChangeSetShape {
|
|
|
367
368
|
summary: string;
|
|
368
369
|
operations: SurveyOperation[];
|
|
369
370
|
supersedesChangeIds?: string[];
|
|
371
|
+
pendingRepairs?: Array<{
|
|
372
|
+
changeId: string;
|
|
373
|
+
targets: string[];
|
|
374
|
+
requiresExplicitRetry: boolean;
|
|
375
|
+
allowsAcknowledgment?: boolean;
|
|
376
|
+
}>;
|
|
370
377
|
precondition?: SurveyDocumentVersion;
|
|
371
378
|
postChange?: SurveyAssistantPostChangeProjectionShape;
|
|
372
379
|
verification?: SurveyAssistantChangeVerificationShape;
|
|
@@ -403,9 +410,23 @@ interface SurveyAssistantPostChangeProjectionShape {
|
|
|
403
410
|
touchedItems: Array<{
|
|
404
411
|
itemId: string;
|
|
405
412
|
itemType: string;
|
|
406
|
-
|
|
407
|
-
|
|
413
|
+
editorName: string;
|
|
414
|
+
breadcrumb: string;
|
|
408
415
|
itemLabel?: string;
|
|
416
|
+
placement?: {
|
|
417
|
+
parentItemId: string;
|
|
418
|
+
index: number;
|
|
419
|
+
siblingCount: number;
|
|
420
|
+
previousItemId?: string;
|
|
421
|
+
nextItemId?: string;
|
|
422
|
+
shuffled: boolean;
|
|
423
|
+
};
|
|
424
|
+
childOrder?: {
|
|
425
|
+
itemIds: string[];
|
|
426
|
+
total: number;
|
|
427
|
+
truncated: boolean;
|
|
428
|
+
shuffled: boolean;
|
|
429
|
+
};
|
|
409
430
|
translationCount: number;
|
|
410
431
|
translations: Array<{
|
|
411
432
|
locale: string;
|
|
@@ -416,6 +437,7 @@ interface SurveyAssistantPostChangeProjectionShape {
|
|
|
416
437
|
}>;
|
|
417
438
|
responseSlotCount: number;
|
|
418
439
|
responseSlots: string[];
|
|
440
|
+
responseVariables?: unknown[];
|
|
419
441
|
}>;
|
|
420
442
|
truncated: boolean;
|
|
421
443
|
}
|
|
@@ -486,13 +508,13 @@ interface ApplyReceiptShape {
|
|
|
486
508
|
}
|
|
487
509
|
declare const surveyChangeSetSchema: z.ZodType<SurveyChangeSetShape>;
|
|
488
510
|
declare const surveyAssistantTurnTerminationReasonSchema: z.ZodEnum<{
|
|
511
|
+
"content-filter": "content-filter";
|
|
489
512
|
"client-abort": "client-abort";
|
|
490
513
|
"first-response-timeout": "first-response-timeout";
|
|
491
514
|
"idle-timeout": "idle-timeout";
|
|
492
515
|
"max-duration": "max-duration";
|
|
493
516
|
"max-steps": "max-steps";
|
|
494
517
|
"length-limit": "length-limit";
|
|
495
|
-
"content-filter": "content-filter";
|
|
496
518
|
"provider-error": "provider-error";
|
|
497
519
|
"stream-error": "stream-error";
|
|
498
520
|
"incomplete-response": "incomplete-response";
|
|
@@ -519,5 +541,5 @@ type SurveyAssistantApplyStatus = SurveyApplyStatus;
|
|
|
519
541
|
type SurveyAssistantApplyResult = SurveyApplyResult;
|
|
520
542
|
type SurveyAssistantBatchApplyResult = SurveyBatchApplyResult;
|
|
521
543
|
//#endregion
|
|
522
|
-
export {
|
|
523
|
-
//# sourceMappingURL=lifecycle-
|
|
544
|
+
export { surveyAssistantUpdateItemLabelOperationSchema as $, SurveyAssistantSurveyJsonPatchOperation as A, surveyDocumentVersionSchema as At, patchItemConfigOperationSchema as B, surveyAssistantTurnFinalSchema as C, SurveyEditorUIContext as Ct, JsonPatchOperation$1 as D, surveyAssistantSnapshotPayloadSchema as Dt, surveyChangeSetSchema as E, surveyAssistantProtocolVersionSchema as Et, SurveyValidationIssue as F, surveyContentSchema as Ft, surveyAssistantCreateItemOperationSchema as G, removeItemOperationSchema as H, SurveyValidationResult as I, surveyAssistantRemoveItemOperationSchema as J, surveyAssistantOperationSchema as K, addChoiceOptionOperationSchema as L, SurveyAssistantValidationResult as M, JsonValue$1 as Mt, SurveyOperation as N, SurveyContent as Nt, SURVEY_OPERATION_KINDS as O, surveyAssistantSnapshotSchema as Ot, SurveyOperationKind as P, jsonValueSchema as Pt, surveyAssistantUpdateItemColorOperationSchema as Q, createItemOperationSchema as R, surveyAssistantDraftChangeEventSchema as S, SurveyDocumentVersion as St, surveyBatchApplyResultSchema as T, surveyAssistantDraftChangePreconditionSchema as Tt, reorderChoiceOptionsOperationSchema as U, removeChoiceOptionOperationSchema as V, surveyAssistantAddChoiceOptionOperationSchema as W, surveyAssistantSurveyJsonPatchOperationSchema as X, surveyAssistantReorderChoiceOptionsOperationSchema as Y, surveyAssistantUpdateChoiceOptionLabelOperationSchema as Z, applyReceiptSchema as _, SurveyAssistantItemTypeManifestEntry as _t, SurveyApplyStatus as a, surveyPatchOperationSchema as at, surveyAssistantApplyOutcomeSchema as b, SurveyAssistantSnapshotPayload as bt, SurveyAssistantApplyResult as c, updateChoiceOptionLabelOperationSchema as ct, SurveyAssistantDraftChangeEvent as d, updateItemTranslationOperationSchema as dt, surveyAssistantUpdateItemTranslationOperationSchema as et, SurveyAssistantTurnFinal as f, RawSurveyDocument as ft, SurveyChangeSetShape as g, SurveyAssistantItemRegistryManifest as gt, SurveyChangeSet as h, SurveyAssistantItemCreateStrategy as ht, SurveyApplyResult as i, surveyOperationSchema as it, SurveyAssistantValidationIssue as j, surveyEditorUIContextSchema as jt, SurveyAssistantOperation as k, surveyDocumentSnapshotSchema as kt, SurveyAssistantApplyStatus as l, updateItemColorOperationSchema as lt, SurveyBatchApplyResult as m, SurveyAssistantDraftChangePrecondition as mt, SURVEY_ASSISTANT_TURN_FINAL_DATA_NAME as n, surveyAssistantValidationResultSchema as nt, SurveyAssistantApplyOutcome as o, surveyValidationIssueSchema as ot, SurveyAssistantTurnTerminationReason as p, SURVEY_ASSISTANT_PROTOCOL_VERSION as pt, surveyAssistantRemoveChoiceOptionOperationSchema as q, SURVEY_ASSISTANT_TURN_FINAL_PART_TYPE as r, surveyJsonPatchOperationSchema as rt, SurveyAssistantApplyPolicy as s, surveyValidationResultSchema as st, ApplyReceipt as t, surveyAssistantValidationIssueSchema as tt, SurveyAssistantBatchApplyResult as u, updateItemLabelOperationSchema as ut, surveyApplyResultSchema as v, SurveyAssistantProtocolVersion as vt, surveyAssistantTurnTerminationReasonSchema as w, rawSurveyDocumentSchema as wt, surveyAssistantApplyPolicySchema as x, SurveyDocumentSnapshot as xt, surveyApplyStatusSchema as y, SurveyAssistantSnapshot as yt, jsonPatchOperationSchema as z };
|
|
545
|
+
//# sourceMappingURL=lifecycle-Dm8u7QFh.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle-Dm8u7QFh.d.mts","names":[],"sources":["../src/protocol/content.ts","../src/protocol/document.ts","../src/protocol/operations.ts","../src/protocol/lifecycle.ts"],"mappings":"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"}
|
package/dist/{memory-thread-repository-CjFGVNZh.mjs → memory-thread-repository-DAnOGIB3.mjs}
RENAMED
|
@@ -1,13 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import "./constants-
|
|
5
|
-
import { a as parseSurveyAssistantPreviousSettledVersion, i as parseSurveyAssistantPreviousApplyOutcome, o as parseSurveyAssistantSnapshot, t as buildSurveyAssistantRequestContext } from "./request-context-
|
|
6
|
-
import { d as readSurveyAssistantRequestJson, f as validateSurveyAssistantMessages, n as SURVEY_ASSISTANT_DEFAULT_REQUEST_LIMITS, u as SurveyAssistantRequestError } from "./request-guardrails-
|
|
1
|
+
import { Ft as isSurveyAssistantErrorRetryable, I as updateSurveyAssistantThreadInputSchema, Lt as serializeSurveyAssistantError, M as createSurveyAssistantThreadInputSchema, Wt as sanitizeSurveyAssistantDiagnosticText, j as SURVEY_ASSISTANT_ATTACHMENT_PART_TYPE, n as SURVEY_ASSISTANT_TURN_FINAL_PART_TYPE } from "./protocol-CF4Bh_Ch.mjs";
|
|
2
|
+
import { l as TurnSurveyDraft } from "./engine-nXoCWYpQ.mjs";
|
|
3
|
+
import { t as SurveyAssistantCapabilityMismatchError } from "./capabilities-DCMA71PP.mjs";
|
|
4
|
+
import "./constants-Ct-vv9cu.mjs";
|
|
5
|
+
import { a as parseSurveyAssistantPreviousSettledVersion, i as parseSurveyAssistantPreviousApplyOutcome, o as parseSurveyAssistantSnapshot, t as buildSurveyAssistantRequestContext } from "./request-context-Dg4jSwN1.mjs";
|
|
6
|
+
import { d as readSurveyAssistantRequestJson, f as validateSurveyAssistantMessages, n as SURVEY_ASSISTANT_DEFAULT_REQUEST_LIMITS, u as SurveyAssistantRequestError } from "./request-guardrails-C0ugBOp0.mjs";
|
|
7
7
|
import { createUIMessageStreamResponse } from "ai";
|
|
8
|
-
import { handleChatStream } from "@mastra/ai-sdk";
|
|
9
8
|
import { createHash } from "node:crypto";
|
|
9
|
+
import { handleChatStream } from "@mastra/ai-sdk";
|
|
10
10
|
import { toAISdkMessages } from "@mastra/ai-sdk/ui";
|
|
11
|
+
//#region src/server/message-identity.ts
|
|
12
|
+
/** Bind client message ids to the host-authorized storage scope before Mastra's id-only upsert. */
|
|
13
|
+
const scopeSurveyAssistantMessage = (message, identity) => {
|
|
14
|
+
const prefix = `survey-user-${createHash("sha256").update(JSON.stringify([identity.resourceId, identity.threadId])).digest("hex")}-`;
|
|
15
|
+
return {
|
|
16
|
+
id: message.id.startsWith(prefix) && /^[a-f0-9]{64}$/.test(message.id.slice(prefix.length)) ? message.id : `${prefix}${createHash("sha256").update(message.id).digest("hex")}`,
|
|
17
|
+
role: "user",
|
|
18
|
+
parts: message.parts
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
//#endregion
|
|
11
22
|
//#region src/server/execution-timeout.ts
|
|
12
23
|
const timeoutMessages = {
|
|
13
24
|
"first-response": "The survey assistant timed out while waiting for its first response.",
|
|
@@ -146,8 +157,10 @@ const createSurveyAssistantTurnStream = ({ turnDraft, getAbortErrorText, getAbor
|
|
|
146
157
|
}
|
|
147
158
|
controller.enqueue(value);
|
|
148
159
|
}
|
|
149
|
-
if (!emittedTurnFinal)
|
|
150
|
-
|
|
160
|
+
if (!emittedTurnFinal) {
|
|
161
|
+
if (signal?.aborted) emitAbortOutcome();
|
|
162
|
+
else emitTurnFinal(sawFinish && (finishReason === void 0 || finishReason === "stop") ? "completed" : "failed", sawFinish && finishReason !== void 0 && finishReason !== "stop" ? getFinishTerminationReason(finishReason) : !sawFinish ? "incomplete-response" : void 0);
|
|
163
|
+
}
|
|
151
164
|
controller.close();
|
|
152
165
|
} catch (error) {
|
|
153
166
|
try {
|
|
@@ -219,8 +232,9 @@ const replaceCurrentSurveyAssistantAttachmentsWithReferences = ({ documents, mes
|
|
|
219
232
|
changed = true;
|
|
220
233
|
const parsed = typeof part.url === "string" ? parseFileDataUrl(part.url) : null;
|
|
221
234
|
const mediaType = parsed?.mediaType || part.mediaType;
|
|
235
|
+
const document = parsed ? documentIndex.get(`${mediaType}\u0000${getAttachmentContentHash(parsed.data)}`) : void 0;
|
|
222
236
|
return createAttachmentReferencePart({
|
|
223
|
-
document
|
|
237
|
+
document,
|
|
224
238
|
filename: part.filename,
|
|
225
239
|
mediaType,
|
|
226
240
|
parsedData: parsed?.data
|
|
@@ -273,8 +287,9 @@ const removeHistoricalSurveyAssistantAttachments = (messages) => {
|
|
|
273
287
|
*/
|
|
274
288
|
const getSurveyAssistantReplayableDocuments = (documents, currentDocumentIds) => documents.filter((document) => !currentDocumentIds.has(document.id));
|
|
275
289
|
const loadSurveyAssistantThreadAttachments = async ({ currentDocumentIds = /* @__PURE__ */ new Set(), documents, repository, resourceId, threadId }) => {
|
|
290
|
+
const replayableDocuments = getSurveyAssistantReplayableDocuments(documents, currentDocumentIds);
|
|
276
291
|
return loadSurveyAssistantDocuments({
|
|
277
|
-
documents:
|
|
292
|
+
documents: replayableDocuments,
|
|
278
293
|
repository,
|
|
279
294
|
resourceId,
|
|
280
295
|
threadId
|
|
@@ -290,6 +305,7 @@ const loadSurveyAssistantDocuments = async ({ documents, repository, resourceId,
|
|
|
290
305
|
});
|
|
291
306
|
if (!content) continue;
|
|
292
307
|
attachments.push({
|
|
308
|
+
documentId: document.id,
|
|
293
309
|
filename: content.name,
|
|
294
310
|
mediaType: content.mediaType,
|
|
295
311
|
data: content.data,
|
|
@@ -302,10 +318,9 @@ const loadSurveyAssistantDocuments = async ({ documents, repository, resourceId,
|
|
|
302
318
|
//#region src/server/handler.ts
|
|
303
319
|
const DEFAULT_MAX_STEPS = 48;
|
|
304
320
|
const DEFAULT_MAX_CONCURRENT_REQUESTS = 8;
|
|
305
|
-
const DEFAULT_FIRST_RESPONSE_TIMEOUT_MS =
|
|
306
|
-
const DEFAULT_IDLE_TIMEOUT_MS =
|
|
307
|
-
const DEFAULT_MAX_DURATION_MS =
|
|
308
|
-
const MAX_USER_ERROR_MESSAGE_LENGTH = 700;
|
|
321
|
+
const DEFAULT_FIRST_RESPONSE_TIMEOUT_MS = 9e5;
|
|
322
|
+
const DEFAULT_IDLE_TIMEOUT_MS = 3e5;
|
|
323
|
+
const DEFAULT_MAX_DURATION_MS = 36e5;
|
|
309
324
|
const MAX_ERROR_CAUSE_DEPTH = 5;
|
|
310
325
|
const getTimeoutTerminationReason = (kind) => {
|
|
311
326
|
switch (kind) {
|
|
@@ -328,6 +343,11 @@ const optionalRequestedId = (value) => {
|
|
|
328
343
|
const normalized = value.trim();
|
|
329
344
|
return normalized.length > 0 && normalized.length <= 240 ? normalized : void 0;
|
|
330
345
|
};
|
|
346
|
+
const optionalDiagnosticId = (value) => {
|
|
347
|
+
if (typeof value !== "string") return void 0;
|
|
348
|
+
const normalized = value.trim();
|
|
349
|
+
return /^[A-Za-z0-9_-]{8,64}$/.test(normalized) ? normalized : void 0;
|
|
350
|
+
};
|
|
331
351
|
const validateAuthorizedIdentity = (identity) => {
|
|
332
352
|
if (!identity || identity.authority !== "authenticated-host" && identity.authority !== "experimental-client-request" || typeof identity.resourceId !== "string" || identity.resourceId.trim().length === 0 || identity.resourceId.length > 240 || identity.surveyId !== void 0 && !optionalRequestedId(identity.surveyId) || typeof identity.threadId !== "string" || identity.threadId.trim().length === 0 || identity.threadId.length > 240) throw new SurveyAssistantAuthorizationError("The host returned an invalid survey assistant identity.", 500);
|
|
333
353
|
return {
|
|
@@ -422,8 +442,7 @@ const describeSurveyAssistantStreamError = (error) => {
|
|
|
422
442
|
return levels.length === 1 ? levels[0] : { levels };
|
|
423
443
|
};
|
|
424
444
|
const clampUserErrorMessage = (message) => {
|
|
425
|
-
|
|
426
|
-
return normalized.length <= MAX_USER_ERROR_MESSAGE_LENGTH ? normalized : `${normalized.slice(0, MAX_USER_ERROR_MESSAGE_LENGTH - 1)}…`;
|
|
445
|
+
return sanitizeSurveyAssistantDiagnosticText(message, 700);
|
|
427
446
|
};
|
|
428
447
|
const getProviderModelName = (message) => message.match(/\bmodel\s+[`'"]([^`'"]+)[`'"]/i)?.[1]?.trim();
|
|
429
448
|
const classifyStreamError = (message, statusCode) => {
|
|
@@ -451,14 +470,26 @@ const parseProviderResponseBodyMessage = (responseBody) => {
|
|
|
451
470
|
const parsed = JSON.parse(responseBody);
|
|
452
471
|
if (isRecord(parsed) && isRecord(parsed.error) && typeof parsed.error.message === "string") return parsed.error.message;
|
|
453
472
|
} catch {
|
|
454
|
-
return
|
|
473
|
+
return;
|
|
474
|
+
}
|
|
475
|
+
};
|
|
476
|
+
const getProviderRequestId = (levels) => {
|
|
477
|
+
for (const level of levels) {
|
|
478
|
+
if (!isRecord(level) || !isRecord(level.responseHeaders)) continue;
|
|
479
|
+
for (const [key, value] of Object.entries(level.responseHeaders)) {
|
|
480
|
+
const normalizedKey = key.toLocaleLowerCase();
|
|
481
|
+
if ((normalizedKey === "request-id" || normalizedKey === "x-request-id") && typeof value === "string") {
|
|
482
|
+
const normalized = sanitizeSurveyAssistantDiagnosticText(value, 240);
|
|
483
|
+
if (normalized) return normalized;
|
|
484
|
+
}
|
|
485
|
+
}
|
|
455
486
|
}
|
|
456
|
-
return responseBody;
|
|
457
487
|
};
|
|
458
488
|
const extractUserErrorMessageFromLevel = (level) => {
|
|
459
489
|
if (isRecord(level.data) && isRecord(level.data.error) && typeof level.data.error.message === "string") return level.data.error.message;
|
|
460
490
|
return parseProviderResponseBodyMessage(level.responseBody) ?? (typeof level.message === "string" ? level.message : void 0);
|
|
461
491
|
};
|
|
492
|
+
const isProviderCallErrorLevel = (level) => level.constructorName === "APICallError" || level.name === "AI_APICallError" || level.statusCode !== void 0 && (level.responseBody !== void 0 || level.responseHeaders !== void 0);
|
|
462
493
|
const formatSurveyAssistantStreamError = (error) => {
|
|
463
494
|
const describedError = describeSurveyAssistantStreamError(error);
|
|
464
495
|
const levels = Array.isArray(describedError.levels) ? describedError.levels : [describedError];
|
|
@@ -466,12 +497,23 @@ const formatSurveyAssistantStreamError = (error) => {
|
|
|
466
497
|
const statusLevel = levels.find((level) => isRecord(level) && level.statusCode !== void 0);
|
|
467
498
|
const statusCode = Number(statusLevel?.statusCode);
|
|
468
499
|
const detail = messageLevel ? extractUserErrorMessageFromLevel(messageLevel) : void 0;
|
|
500
|
+
const providerLevel = levels.find((level) => isRecord(level) && isProviderCallErrorLevel(level));
|
|
501
|
+
const providerDetail = providerLevel ? extractUserErrorMessageFromLevel(providerLevel) : void 0;
|
|
469
502
|
const formattedDetail = detail ? formatKnownProviderError(detail) : void 0;
|
|
470
|
-
const code = classifyStreamError(formattedDetail ?? "", Number.isFinite(statusCode) ? statusCode : void 0);
|
|
503
|
+
const code = classifyStreamError(detail ?? formattedDetail ?? "", Number.isFinite(statusCode) ? statusCode : void 0);
|
|
504
|
+
const providerMessage = code === "authorization_failed" || !providerDetail ? void 0 : sanitizeSurveyAssistantDiagnosticText(providerDetail, 700);
|
|
505
|
+
const upstreamStatus = Number.isFinite(statusCode) ? statusCode : void 0;
|
|
506
|
+
const providerRequestId = getProviderRequestId(levels);
|
|
471
507
|
return serializeSurveyAssistantError({
|
|
472
508
|
code,
|
|
473
509
|
...formattedDetail ? { detail: formattedDetail } : {},
|
|
474
|
-
|
|
510
|
+
...upstreamStatus ? { upstreamStatus } : {},
|
|
511
|
+
...providerRequestId ? { providerRequestId } : {},
|
|
512
|
+
...providerMessage ? { providerMessage } : {},
|
|
513
|
+
retryable: isSurveyAssistantErrorRetryable({
|
|
514
|
+
code,
|
|
515
|
+
upstreamStatus
|
|
516
|
+
})
|
|
475
517
|
});
|
|
476
518
|
};
|
|
477
519
|
const requestErrorResponse = (error, fallback) => {
|
|
@@ -516,6 +558,7 @@ const createSurveyAssistantChatHandler = (options) => {
|
|
|
516
558
|
return requestErrorResponse(error, "The survey assistant request could not be read.");
|
|
517
559
|
}
|
|
518
560
|
const params = isRecord(rawParams) ? rawParams : {};
|
|
561
|
+
const requestId = optionalDiagnosticId(params.requestId);
|
|
519
562
|
let identity;
|
|
520
563
|
try {
|
|
521
564
|
identity = validateAuthorizedIdentity(await options.authorize({
|
|
@@ -533,7 +576,7 @@ const createSurveyAssistantChatHandler = (options) => {
|
|
|
533
576
|
}
|
|
534
577
|
let messages;
|
|
535
578
|
try {
|
|
536
|
-
messages = validateSurveyAssistantMessages(params.messages, requestLimits);
|
|
579
|
+
messages = validateSurveyAssistantMessages(params.messages, requestLimits).map((message) => scopeSurveyAssistantMessage(message, identity));
|
|
537
580
|
} catch (error) {
|
|
538
581
|
return requestErrorResponse(error, "The survey assistant messages are invalid.");
|
|
539
582
|
}
|
|
@@ -552,6 +595,7 @@ const createSurveyAssistantChatHandler = (options) => {
|
|
|
552
595
|
})) ?? void 0;
|
|
553
596
|
} catch (error) {
|
|
554
597
|
options.onStreamError?.(error, {
|
|
598
|
+
requestId,
|
|
555
599
|
resourceId: identity.resourceId,
|
|
556
600
|
surveyId: identity.surveyId,
|
|
557
601
|
threadId: identity.threadId
|
|
@@ -617,12 +661,14 @@ const createSurveyAssistantChatHandler = (options) => {
|
|
|
617
661
|
messages
|
|
618
662
|
});
|
|
619
663
|
messages = removeHistoricalSurveyAssistantAttachments(messages);
|
|
620
|
-
const
|
|
664
|
+
const registeredIds = new Set(registered.map((document) => document.id));
|
|
665
|
+
const replayableDocuments = getSurveyAssistantReplayableDocuments(manifest, registeredIds);
|
|
621
666
|
const documents = [...registered, ...replayableDocuments];
|
|
622
667
|
if (documents.length > 0) attachmentAccess = {
|
|
623
668
|
documents,
|
|
624
669
|
currentDocumentIds: registered.map((document) => document.id),
|
|
625
670
|
selectedAttachments: [],
|
|
671
|
+
limits: requestLimits,
|
|
626
672
|
load: (documentIds) => loadSurveyAssistantDocuments({
|
|
627
673
|
documents: documents.filter((document) => documentIds.includes(document.id)),
|
|
628
674
|
repository,
|
|
@@ -650,6 +696,7 @@ const createSurveyAssistantChatHandler = (options) => {
|
|
|
650
696
|
code: error.code
|
|
651
697
|
}, { status: 409 });
|
|
652
698
|
options.onStreamError?.(error, {
|
|
699
|
+
requestId,
|
|
653
700
|
resourceId: identity.resourceId,
|
|
654
701
|
surveyId: identity.surveyId,
|
|
655
702
|
threadId: identity.threadId
|
|
@@ -664,6 +711,7 @@ const createSurveyAssistantChatHandler = (options) => {
|
|
|
664
711
|
toolCalls: 0
|
|
665
712
|
};
|
|
666
713
|
const streamErrorContext = {
|
|
714
|
+
requestId,
|
|
667
715
|
resourceId: identity.resourceId,
|
|
668
716
|
surveyId: identity.surveyId,
|
|
669
717
|
threadId: identity.threadId
|
|
@@ -690,8 +738,9 @@ const createSurveyAssistantChatHandler = (options) => {
|
|
|
690
738
|
};
|
|
691
739
|
let stream;
|
|
692
740
|
try {
|
|
741
|
+
const mastra = typeof options.mastra === "function" ? await options.mastra() : options.mastra;
|
|
693
742
|
stream = await handleChatStream({
|
|
694
|
-
mastra
|
|
743
|
+
mastra,
|
|
695
744
|
agentId: options.agentId ?? "survey-assistant-agent",
|
|
696
745
|
version: "v6",
|
|
697
746
|
params: {
|
|
@@ -731,7 +780,7 @@ const createSurveyAssistantChatHandler = (options) => {
|
|
|
731
780
|
releaseRequestSlot();
|
|
732
781
|
return Response.json({ error: executionTimeout.timeoutKind ? getSurveyAssistantExecutionTimeoutMessage(executionTimeout.timeoutKind) : handleStreamError(error) }, { status: 503 });
|
|
733
782
|
}
|
|
734
|
-
|
|
783
|
+
const turnStream = createSurveyAssistantTurnStream({
|
|
735
784
|
stream,
|
|
736
785
|
turnDraft,
|
|
737
786
|
signal: executionSignal,
|
|
@@ -749,6 +798,7 @@ const createSurveyAssistantChatHandler = (options) => {
|
|
|
749
798
|
identity,
|
|
750
799
|
metrics,
|
|
751
800
|
provider: modelSelection?.providerName ?? options.providerName,
|
|
801
|
+
requestId,
|
|
752
802
|
turnId: turnDraft.turnId
|
|
753
803
|
});
|
|
754
804
|
} catch (error) {
|
|
@@ -758,13 +808,14 @@ const createSurveyAssistantChatHandler = (options) => {
|
|
|
758
808
|
}
|
|
759
809
|
},
|
|
760
810
|
turnStartedAt: executionStartedAt
|
|
761
|
-
})
|
|
811
|
+
});
|
|
812
|
+
return createUIMessageStreamResponse({ stream: turnStream });
|
|
762
813
|
};
|
|
763
814
|
};
|
|
764
815
|
//#endregion
|
|
765
816
|
//#region src/server/thread-handlers.ts
|
|
766
817
|
const DEFAULT_TITLE = "New chat";
|
|
767
|
-
const MAX_THREAD_MUTATION_BYTES =
|
|
818
|
+
const MAX_THREAD_MUTATION_BYTES = 16384;
|
|
768
819
|
const MANUAL_TITLE_METADATA_KEY = "surveyAssistant.manualTitle";
|
|
769
820
|
const AUTOMATIC_TITLE_METADATA_KEY = "surveyAssistant.automaticTitle";
|
|
770
821
|
const getMetadataString = (metadata, key) => {
|
|
@@ -820,8 +871,9 @@ const createSurveyAssistantThreadHandlers = ({ authorize, onError, repository })
|
|
|
820
871
|
const identity = await authorize(request);
|
|
821
872
|
const cursor = new URL(request.url).searchParams.get("cursor")?.trim() || void 0;
|
|
822
873
|
const result = await repository.list(identity.resourceId, identity.metadata, { ...cursor ? { cursor } : {} });
|
|
874
|
+
const threads = (Array.isArray(result) ? result : result.threads).filter((thread) => ownsThread(thread, identity) && typeof thread.metadata?.archivedAt !== "string").map(asThread);
|
|
823
875
|
return json({
|
|
824
|
-
threads
|
|
876
|
+
threads,
|
|
825
877
|
...!Array.isArray(result) && result.nextCursor ? { nextCursor: result.nextCursor } : {}
|
|
826
878
|
});
|
|
827
879
|
} catch (error) {
|
|
@@ -840,11 +892,12 @@ const createSurveyAssistantThreadHandlers = ({ authorize, onError, repository })
|
|
|
840
892
|
metadata[MANUAL_TITLE_METADATA_KEY] = parsed.title;
|
|
841
893
|
metadata[AUTOMATIC_TITLE_METADATA_KEY] = DEFAULT_TITLE;
|
|
842
894
|
}
|
|
843
|
-
|
|
895
|
+
const thread = await repository.create({
|
|
844
896
|
resourceId: identity.resourceId,
|
|
845
897
|
title: parsed.title ?? DEFAULT_TITLE,
|
|
846
898
|
metadata
|
|
847
|
-
})
|
|
899
|
+
});
|
|
900
|
+
return json({ thread: asThread(thread) }, 201);
|
|
848
901
|
} catch (error) {
|
|
849
902
|
return errorResponse(error, onError, {
|
|
850
903
|
operation: "create",
|
|
@@ -892,11 +945,12 @@ const createSurveyAssistantThreadHandlers = ({ authorize, onError, repository })
|
|
|
892
945
|
metadata[MANUAL_TITLE_METADATA_KEY] = title;
|
|
893
946
|
metadata[AUTOMATIC_TITLE_METADATA_KEY] = automaticTitle;
|
|
894
947
|
}
|
|
895
|
-
|
|
948
|
+
const updated = await repository.update({
|
|
896
949
|
id: thread.id,
|
|
897
950
|
title,
|
|
898
951
|
metadata
|
|
899
|
-
})
|
|
952
|
+
});
|
|
953
|
+
return json({ thread: asThread(updated) });
|
|
900
954
|
} catch (error) {
|
|
901
955
|
return errorResponse(error, onError, {
|
|
902
956
|
operation: "update",
|
|
@@ -907,7 +961,8 @@ const createSurveyAssistantThreadHandlers = ({ authorize, onError, repository })
|
|
|
907
961
|
};
|
|
908
962
|
const deleteThread = async (request, threadId) => {
|
|
909
963
|
try {
|
|
910
|
-
const
|
|
964
|
+
const identity = await authorize(request);
|
|
965
|
+
const thread = await getOwnedThread(repository, identity, threadId);
|
|
911
966
|
if (!thread) return json({ error: "Chat not found." }, 404);
|
|
912
967
|
await repository.delete(thread.id);
|
|
913
968
|
return new Response(null, { status: 204 });
|
|
@@ -998,4 +1053,4 @@ const createMastraMemoryThreadRepository = ({ getMemory, maxMessagesPerTranscrip
|
|
|
998
1053
|
//#endregion
|
|
999
1054
|
export { describeSurveyAssistantStreamError as a, loadSurveyAssistantDocuments as c, removeHistoricalSurveyAssistantAttachments as d, replaceCurrentSurveyAssistantAttachmentsWithReferences as f, createSurveyAssistantChatHandler as i, loadSurveyAssistantThreadAttachments as l, createSurveyAssistantThreadHandlers as n, formatSurveyAssistantStreamError as o, createSurveyAssistantTurnStream as p, SurveyAssistantAuthorizationError as r, getSurveyAssistantReplayableDocuments as s, createMastraMemoryThreadRepository as t, registerSurveyAssistantThreadAttachments as u };
|
|
1000
1055
|
|
|
1001
|
-
//# sourceMappingURL=memory-thread-repository-
|
|
1056
|
+
//# sourceMappingURL=memory-thread-repository-DAnOGIB3.mjs.map
|