@emseepea/feedback 0.5.3 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,6 +1,9 @@
1
+ import { createHash, randomUUID } from "node:crypto";
1
2
  import { defineTool, } from "@emseepea/server";
2
3
  import { z } from "zod";
3
4
  import { beforeDeadline, deadlineSignal } from "./deadline.js";
5
+ import { feedbackCollectionSchema, } from "./collections.js";
6
+ export * from "./collections.js";
4
7
  const identifier = z.string().min(1).max(240);
5
8
  const timestamp = z.iso.datetime({ offset: true });
6
9
  const body = z.string().min(1).max(4_000);
@@ -50,6 +53,289 @@ export const feedbackThreadSchema = z.object({
50
53
  export const feedbackConversationSchema = feedbackThreadSchema.extend({
51
54
  messages: z.array(feedbackMessageSchema).max(200).describe("Messages in stable sequence order. Private support notes are excluded."),
52
55
  });
56
+ export const feedbackSubmissionSourceReferenceSchema = z.strictObject({
57
+ system: identifier.describe("Stable name of the authoritative source system."),
58
+ id: identifier.describe("Stable non-secret record identifier in the source system."),
59
+ });
60
+ export const feedbackSubmissionRecordSchema = z.object({
61
+ collection: feedbackCollectionSchema,
62
+ submissionId: identifier.describe("Stable identifier within the feedback collection."),
63
+ scope: identifier.describe("Authorization scope associated with the submission."),
64
+ observation: feedbackObservationSchema,
65
+ detail: body,
66
+ context: z.unknown().optional(),
67
+ recordedAt: timestamp,
68
+ source: feedbackSubmissionSourceReferenceSchema,
69
+ });
70
+ export const feedbackSubmissionReferenceSchema = z.strictObject({
71
+ collection: feedbackCollectionSchema,
72
+ submissionId: identifier.describe("Stable identifier within the feedback collection."),
73
+ });
74
+ export const feedbackSubmissionRecordedEventSchema = z.strictObject({
75
+ id: identifier,
76
+ type: z.literal("feedback.submission.recorded"),
77
+ occurredAt: timestamp,
78
+ record: feedbackSubmissionReferenceSchema,
79
+ source: feedbackSubmissionSourceReferenceSchema,
80
+ });
81
+ export const getFeedbackSubmissionQuerySchema = feedbackSubmissionReferenceSchema;
82
+ export const listFeedbackSubmissionsQuerySchema = z.strictObject({
83
+ collection: feedbackCollectionSchema,
84
+ cursor: z.string().min(1).max(1_000).optional(),
85
+ limit: z.number().int().min(1).max(50).default(20),
86
+ });
87
+ export const feedbackSubmissionPageSchema = z.object({
88
+ submissions: z.array(feedbackSubmissionRecordSchema).max(50),
89
+ nextCursor: z.string().min(1).max(1_000).optional(),
90
+ });
91
+ export function createInMemoryFeedbackCollectionBackend(options = {}) {
92
+ const sourceSystem = identifier.parse(options.sourceSystem ?? "in-memory-feedback");
93
+ const preservedRecords = [];
94
+ const namedRecords = new Map();
95
+ for (const initial of options.initialRecords ?? []) {
96
+ const copied = cloneValue(initial);
97
+ preservedRecords.push(copied);
98
+ const checked = feedbackSubmissionRecordSchema.safeParse(copied);
99
+ if (!checked.success)
100
+ continue;
101
+ const record = freezeSubmissionRecord(checked.data);
102
+ const key = submissionKey(record.collection, record.submissionId);
103
+ if (namedRecords.has(key)) {
104
+ throw new Error("Initial feedback records contain a duplicate collection and submission identifier. " +
105
+ "Remove the duplicate record before starting the backend.");
106
+ }
107
+ namedRecords.set(key, record);
108
+ }
109
+ const backend = {
110
+ recordSubmission(command, context) {
111
+ context.signal.throwIfAborted();
112
+ const submissionId = identifier.parse((options.createSubmissionId ?? randomUUID)());
113
+ const record = freezeSubmissionRecord(feedbackSubmissionRecordSchema.parse({
114
+ collection: command.collection,
115
+ submissionId,
116
+ scope: context.scope,
117
+ observation: command.observation,
118
+ detail: command.detail,
119
+ context: cloneValue(command.context),
120
+ recordedAt: (options.now ?? (() => new Date().toISOString()))(),
121
+ source: { system: sourceSystem, id: submissionId },
122
+ }));
123
+ const key = submissionKey(record.collection, record.submissionId);
124
+ if (namedRecords.has(key)) {
125
+ throw new Error("Feedback could not be recorded because its identifier already exists in this collection. " +
126
+ "Configure the backend to generate unique submission identifiers, then try again.");
127
+ }
128
+ namedRecords.set(key, record);
129
+ preservedRecords.push(record);
130
+ return record;
131
+ },
132
+ getSubmission(query, context) {
133
+ context.signal.throwIfAborted();
134
+ const checked = getFeedbackSubmissionQuerySchema.parse(query);
135
+ const record = namedRecords.get(submissionKey(checked.collection, checked.submissionId));
136
+ return record?.scope === context.scope ? record : undefined;
137
+ },
138
+ listSubmissions(query, context) {
139
+ context.signal.throwIfAborted();
140
+ const checked = listFeedbackSubmissionsQuerySchema.parse(query);
141
+ const records = [...namedRecords.values()]
142
+ .filter(({ collection, scope }) => collection === checked.collection && scope === context.scope)
143
+ .sort(compareSubmissionRecords);
144
+ const start = checked.cursor === undefined
145
+ ? 0
146
+ : submissionCursorStart(checked.cursor, checked.collection, context.scope, records);
147
+ const submissions = records.slice(start, start + checked.limit);
148
+ const last = submissions.at(-1);
149
+ return Object.freeze({
150
+ submissions,
151
+ nextCursor: start + submissions.length < records.length && last
152
+ ? encodeSubmissionCursor(last)
153
+ : undefined,
154
+ });
155
+ },
156
+ };
157
+ return Object.freeze(backend);
158
+ }
159
+ export function defineFeedbackCollectionSubmissions(options) {
160
+ const tools = options.definition.submissions.map((submission) => {
161
+ const inputSchema = z.strictObject({
162
+ observation: feedbackObservationSchema,
163
+ detail: body.describe("What happened, what helped or failed, what was harder than it should have been, or what was surprising."),
164
+ ...(options.contextSchema ? {
165
+ context: options.contextSchema.optional().describe("Application-declared structured context. Do not include chat history, credentials, raw tool data, or personal information."),
166
+ } : {}),
167
+ });
168
+ const outputSchema = z.object({
169
+ collection: z.literal(submission.collection).describe("The deployment-configured feedback collection."),
170
+ submissionId: identifier.describe("Stable identifier within the feedback collection."),
171
+ recordedAt: timestamp.describe("When the feedback was durably recorded."),
172
+ nextAction: z.literal(submissionNextAction).describe("What the AI should do after the feedback was durably recorded."),
173
+ });
174
+ const label = collectionLabel(submission.collection);
175
+ const common = {
176
+ name: submission.toolName,
177
+ title: `Record ${label} Feedback`,
178
+ description: `Record one feedback observation in the ${label.toLowerCase()} collection configured for this deployment. ` +
179
+ submissionBehaviorGuidance,
180
+ annotations: { readOnlyHint: false, idempotentHint: false, openWorldHint: true },
181
+ inputSchema,
182
+ outputSchema,
183
+ };
184
+ const execute = async (input, toolContext) => {
185
+ const adapterContext = createAdapterContext(options.scope, toolContext);
186
+ const record = freezeSubmissionRecord(await feedbackSubmissionRecordSchema.parseAsync(await options.backend.recordSubmission({
187
+ collection: submission.collection,
188
+ observation: input.observation,
189
+ detail: input.detail,
190
+ context: ("context" in input ? input.context : undefined),
191
+ }, adapterContext)));
192
+ if (record.collection !== submission.collection || record.scope !== adapterContext.scope) {
193
+ throw new Error("Feedback could not be recorded because the backend returned a different collection or authorization scope. " +
194
+ "Correct the backend configuration, then try again.");
195
+ }
196
+ await dispatchSubmissionRecordedHooks(options.hooks, record, adapterContext);
197
+ return {
198
+ data: {
199
+ collection: record.collection,
200
+ submissionId: record.submissionId,
201
+ recordedAt: record.recordedAt,
202
+ nextAction: submissionNextAction,
203
+ },
204
+ };
205
+ };
206
+ if (submission.access === "public") {
207
+ return defineTool({ ...common, access: "public", handler: execute });
208
+ }
209
+ return defineTool({
210
+ ...common,
211
+ access: "protected",
212
+ requiredScopes: submission.requiredScopes,
213
+ handler: execute,
214
+ });
215
+ });
216
+ return Object.freeze(tools);
217
+ }
218
+ const operatorReadError = "Feedback submissions could not be read. Check that you can access the collection. " +
219
+ "If you requested one submission, check its identifier, then try again.";
220
+ const maximumOperatorResultBytes = 262_144;
221
+ export function defineFeedbackCollectionOperators(options) {
222
+ if (options.definition.operators.length === 0)
223
+ return Object.freeze([]);
224
+ const collections = options.definition.operators.map(({ collection }) => collection);
225
+ const collectionSchema = z.enum(collections)
226
+ .describe("Configured feedback collection to read.");
227
+ const roles = new Map(options.definition.operators.map((role) => [role.collection, role]));
228
+ const requiredScopes = operatorToolScopes(options.definition.operators);
229
+ const contextSchema = options.contextSchema;
230
+ const safeRecordSchema = z.object({
231
+ collection: collectionSchema,
232
+ submissionId: identifier.describe("Stable identifier within the feedback collection."),
233
+ observation: feedbackObservationSchema,
234
+ detail: body,
235
+ ...(contextSchema ? {
236
+ context: contextSchema.optional().describe("Validated application context recorded with the feedback."),
237
+ } : {}),
238
+ recordedAt: timestamp,
239
+ });
240
+ const listInputSchema = z.strictObject({
241
+ collection: collectionSchema,
242
+ cursor: z.string().min(1).max(1_000).optional().describe("Opaque cursor from the previous page."),
243
+ limit: z.number().int().min(1).max(50).default(20).describe("Maximum submissions to return."),
244
+ });
245
+ const getInputSchema = z.strictObject({
246
+ collection: collectionSchema,
247
+ submissionId: identifier.describe("Exact submission identifier returned for this collection."),
248
+ });
249
+ const pageSchema = z.object({
250
+ submissions: z.array(safeRecordSchema).max(50),
251
+ nextCursor: z.string().min(1).max(1_000).optional(),
252
+ });
253
+ const access = { access: "protected", requiredScopes };
254
+ const authorize = (collection, principal) => {
255
+ const role = roles.get(collection);
256
+ if (!role || !principal ||
257
+ !role.requiredScopes.every((scope) => principal.permissions.includes(scope))) {
258
+ throw new Error(operatorReadError);
259
+ }
260
+ };
261
+ const adapterContext = (toolContext) => createAdapterContext(options.scope, toolContext);
262
+ const safeRecord = (value, collection, scope) => {
263
+ const checked = feedbackSubmissionRecordSchema.safeParse(value);
264
+ if (!checked.success || checked.data.collection !== collection || checked.data.scope !== scope) {
265
+ throw new Error(operatorReadError);
266
+ }
267
+ const safe = {
268
+ collection: checked.data.collection,
269
+ submissionId: checked.data.submissionId,
270
+ observation: checked.data.observation,
271
+ detail: checked.data.detail,
272
+ ...(contextSchema && checked.data.context !== undefined
273
+ ? { context: checked.data.context }
274
+ : {}),
275
+ recordedAt: checked.data.recordedAt,
276
+ };
277
+ const parsed = safeRecordSchema.safeParse(safe);
278
+ if (!parsed.success)
279
+ throw new Error(operatorReadError);
280
+ return Object.freeze(parsed.data);
281
+ };
282
+ const bounded = (value) => {
283
+ try {
284
+ if (Buffer.byteLength(JSON.stringify(value), "utf8") > maximumOperatorResultBytes) {
285
+ throw new Error(operatorReadError);
286
+ }
287
+ return value;
288
+ }
289
+ catch (error) {
290
+ if (error instanceof Error && error.message === operatorReadError)
291
+ throw error;
292
+ throw new Error(operatorReadError);
293
+ }
294
+ };
295
+ const list = defineTool({
296
+ name: "list-feedback-submissions",
297
+ ...access,
298
+ title: "List Feedback Submissions",
299
+ description: "List feedback submissions from one configured collection.",
300
+ annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
301
+ inputSchema: listInputSchema,
302
+ outputSchema: pageSchema,
303
+ async handler(input, toolContext) {
304
+ authorize(input.collection, toolContext.principal);
305
+ const context = adapterContext(toolContext);
306
+ const page = await feedbackSubmissionPageSchema.parseAsync(await options.backend.listSubmissions(input, context));
307
+ const safePage = {
308
+ submissions: page.submissions.map((record) => safeRecord(record, input.collection, context.scope)),
309
+ ...(page.nextCursor === undefined ? {} : { nextCursor: page.nextCursor }),
310
+ };
311
+ const parsed = pageSchema.safeParse(safePage);
312
+ if (!parsed.success)
313
+ throw new Error(operatorReadError);
314
+ return { data: bounded(Object.freeze(parsed.data)) };
315
+ },
316
+ });
317
+ const get = defineTool({
318
+ name: "get-feedback-submission",
319
+ ...access,
320
+ title: "Read Feedback Submission",
321
+ description: "Read one feedback submission by its exact collection and submission identifier.",
322
+ annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
323
+ inputSchema: getInputSchema,
324
+ outputSchema: safeRecordSchema,
325
+ async handler(input, toolContext) {
326
+ authorize(input.collection, toolContext.principal);
327
+ const context = adapterContext(toolContext);
328
+ const record = await options.backend.getSubmission(input, context);
329
+ if (record === undefined)
330
+ throw new Error(operatorReadError);
331
+ const safe = safeRecord(record, input.collection, context.scope);
332
+ if (safe.submissionId !== input.submissionId)
333
+ throw new Error(operatorReadError);
334
+ return { data: bounded(safe) };
335
+ },
336
+ });
337
+ return Object.freeze([list, get]);
338
+ }
53
339
  const feedbackEventTypeSchema = z.enum([
54
340
  "feedback.thread.created",
55
341
  "feedback.message.added",
@@ -77,6 +363,12 @@ const backendEventsSchema = z.custom(() => true).optional();
77
363
  // rejecting the result: the work it describes is already done.
78
364
  const maxDispatchedEvents = 100;
79
365
  const submissionNextAction = "Start your final response by answering every part of the user's original request from earlier tool results. A response that only discusses feedback is incomplete. Then tell the user, \"I recorded feedback about ...\", with a brief, specific summary of the observation.";
366
+ const submissionBehaviorGuidance = "Call this tool before answering when another tool result or the user's message reveals notable friction or another qualifying observation. " +
367
+ "Use it without asking a separate permission question. After it succeeds, fully answer the user's original request. " +
368
+ "Then briefly state the specific observation you recorded. Only say you recorded feedback after this tool succeeds. " +
369
+ "Do not let feedback replace the requested answer. A tool that works as designed, returns structured data, or takes only the expected steps is ordinary operation. " +
370
+ "Do not record these outcomes as feedback. Do not record expected empty results, session opening or closing, duplicate observations, or anything after the user objects. " +
371
+ "Never include surrounding conversation, credentials, raw tool data, or personal information.";
80
372
  const submissionResultSchema = z.object({
81
373
  id: identifier.describe("Stable feedback submission identifier."),
82
374
  recordedAt: timestamp.describe("When the feedback was durably recorded."),
@@ -97,8 +389,13 @@ export function defineFeedbackSubmission(options) {
97
389
  name: "submit-feedback",
98
390
  title: "Record Detailed Feedback",
99
391
  description: "Record one notable observation about an error, friction, annoyance, unnecessary difficulty, confusion, repetition, an unexpected result, a capability mismatch, a suggestion, or a notable success. " +
100
- "Call this tool before answering when another tool result or the user's message reveals notable friction or another qualifying observation. Use it without asking a separate permission question. After it succeeds, fully answer the user's original request. Then briefly state the specific observation you recorded. Only say you recorded feedback after this tool succeeds. Do not let feedback replace the requested answer. A tool that works as designed, returns structured data, or takes only the expected steps is ordinary operation. Do not record these outcomes as feedback. Do not record expected empty results, session opening or closing, duplicate observations, or anything after the user objects. Never include surrounding conversation, credentials, raw tool data, or personal information.",
101
- annotations: { readOnlyHint: false, idempotentHint: false, openWorldHint: true },
392
+ submissionBehaviorGuidance,
393
+ annotations: {
394
+ readOnlyHint: false,
395
+ destructiveHint: false,
396
+ idempotentHint: false,
397
+ openWorldHint: true,
398
+ },
102
399
  inputSchema,
103
400
  outputSchema,
104
401
  };
@@ -261,6 +558,112 @@ async function dispatchHooks(hooks, events, context) {
261
558
  // getter there still fails the call. See the backlog.
262
559
  }
263
560
  }
561
+ async function dispatchSubmissionRecordedHooks(hooks, record, context) {
562
+ if (!hooks?.length)
563
+ return;
564
+ const event = Object.freeze(feedbackSubmissionRecordedEventSchema.parse({
565
+ id: `feedback.submission.recorded:${createHash("sha256")
566
+ .update(`${record.collection}\0${record.submissionId}`)
567
+ .digest("hex")}`,
568
+ type: "feedback.submission.recorded",
569
+ occurredAt: record.recordedAt,
570
+ record: Object.freeze({
571
+ collection: record.collection,
572
+ submissionId: record.submissionId,
573
+ }),
574
+ source: Object.freeze({ ...record.source }),
575
+ }));
576
+ const hookDeadlineMs = context.deadlineMs - 25;
577
+ for (const hook of hooks) {
578
+ if (context.signal.aborted || Date.now() >= hookDeadlineMs)
579
+ return;
580
+ try {
581
+ const hookContext = Object.freeze({ ...context, deadlineMs: hookDeadlineMs });
582
+ const signal = deadlineSignal(hookContext);
583
+ await beforeDeadline(Promise.resolve(hook(event, Object.freeze({
584
+ ...hookContext,
585
+ signal,
586
+ }))), hookContext);
587
+ }
588
+ catch {
589
+ // The record is already committed. Event hooks are best effort and cannot
590
+ // turn a successful write into a failed submission.
591
+ }
592
+ }
593
+ }
594
+ function submissionKey(collection, submissionId) {
595
+ return `${collection}\0${submissionId}`;
596
+ }
597
+ function compareSubmissionRecords(a, b) {
598
+ if (a.recordedAt !== b.recordedAt)
599
+ return a.recordedAt > b.recordedAt ? -1 : 1;
600
+ return a.submissionId > b.submissionId ? -1 : a.submissionId < b.submissionId ? 1 : 0;
601
+ }
602
+ const submissionCursorSchema = z.strictObject({
603
+ version: z.literal(1),
604
+ collection: feedbackCollectionSchema,
605
+ scope: identifier,
606
+ recordedAt: timestamp,
607
+ submissionId: identifier,
608
+ });
609
+ function operatorToolScopes(operators) {
610
+ const first = operators[0];
611
+ if (!first)
612
+ throw new TypeError("Feedback operator tools require at least one operator role");
613
+ const shared = first.requiredScopes.filter((scope) => operators.every((operator) => operator.requiredScopes.includes(scope)));
614
+ if (shared.length > 0)
615
+ return Object.freeze(shared);
616
+ throw new TypeError("Feedback operator roles must share at least one scope used to protect the operator tools. " +
617
+ "Add a shared operator scope to every configured operator role.");
618
+ }
619
+ function encodeSubmissionCursor(record) {
620
+ return Buffer.from(JSON.stringify({
621
+ version: 1,
622
+ collection: record.collection,
623
+ scope: record.scope,
624
+ recordedAt: record.recordedAt,
625
+ submissionId: record.submissionId,
626
+ }), "utf8").toString("base64url");
627
+ }
628
+ function submissionCursorStart(cursor, collection, scope, records) {
629
+ try {
630
+ const decoded = submissionCursorSchema.parse(JSON.parse(Buffer.from(cursor, "base64url").toString("utf8")));
631
+ if (decoded.collection !== collection || decoded.scope !== scope)
632
+ throw new Error();
633
+ const position = records.findIndex((record) => record.recordedAt === decoded.recordedAt && record.submissionId === decoded.submissionId);
634
+ if (position < 0)
635
+ throw new Error();
636
+ return position + 1;
637
+ }
638
+ catch {
639
+ throw new TypeError("This cursor does not match the requested feedback collection and authorization scope. " +
640
+ "Start the listing again without a cursor.");
641
+ }
642
+ }
643
+ function collectionLabel(collection) {
644
+ return collection.split(/[._-]+/)
645
+ .filter(Boolean)
646
+ .map((part) => `${part[0]?.toUpperCase()}${part.slice(1)}`)
647
+ .join(" ");
648
+ }
649
+ function cloneValue(value) {
650
+ return value === undefined ? value : structuredClone(value);
651
+ }
652
+ function freezeSubmissionRecord(record) {
653
+ deepFreeze(record.context);
654
+ return Object.freeze({
655
+ ...record,
656
+ source: Object.freeze({ ...record.source }),
657
+ });
658
+ }
659
+ function deepFreeze(value, seen = new WeakSet()) {
660
+ if (typeof value !== "object" || value === null || seen.has(value))
661
+ return;
662
+ seen.add(value);
663
+ for (const nested of Object.values(value))
664
+ deepFreeze(nested, seen);
665
+ Object.freeze(value);
666
+ }
264
667
  async function dispatchEachEvent(hooks, events, context) {
265
668
  if (!Array.isArray(events) || events.length === 0)
266
669
  return;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { publishMcpEvent, type McpEventsOptions } from "@emseepea/server";
2
+ import { type FeedbackAdapterContext } from "./index.js";
3
+ import type { FeedbackCollection, FeedbackCollectionsDefinition } from "./collections.js";
4
+ export declare const feedbackReplyEventName = "feedback.reply.ready";
5
+ export declare const feedbackSubmittedEventName = "feedback.submitted";
6
+ export interface FeedbackReplyEventsOptions {
7
+ /** Use the same stable scope projection as defineFeedbackConversation. */
8
+ readonly ownerKey: McpEventsOptions["ownerKey"];
9
+ /** Check access to this exact thread, including when a delivery is due. */
10
+ readonly canReadThread: (ownerKey: string, threadId: string) => boolean | Promise<boolean>;
11
+ readonly health: McpEventsOptions["health"];
12
+ readonly store: McpEventsOptions["store"];
13
+ readonly callbackTimeoutMs?: number;
14
+ }
15
+ export declare function createFeedbackReplyEventsOptions(options: FeedbackReplyEventsOptions): McpEventsOptions;
16
+ /** Publish a durable team reply reference after the feedback backend commits it. */
17
+ export declare function publishFeedbackTeamReplyEvent(app: Parameters<typeof publishMcpEvent>[0], event: unknown): Promise<boolean>;
18
+ export type FeedbackMonitorAuthorizationPhase = "list" | "subscribe" | "refresh" | "delivery";
19
+ export interface FeedbackSubmittedEventsOptions {
20
+ readonly definition: FeedbackCollectionsDefinition;
21
+ /** Return the same stable scope used by feedback submission adapters. */
22
+ readonly ownerKey: McpEventsOptions["ownerKey"];
23
+ readonly canMonitorCollection: (request: Readonly<{
24
+ ownerKey: string;
25
+ collection: FeedbackCollection;
26
+ phase: FeedbackMonitorAuthorizationPhase;
27
+ }>) => boolean | Promise<boolean>;
28
+ readonly health: McpEventsOptions["health"];
29
+ readonly store: McpEventsOptions["store"];
30
+ readonly callbackTimeoutMs?: number;
31
+ }
32
+ export declare function createFeedbackSubmittedEventsOptions(options: FeedbackSubmittedEventsOptions): McpEventsOptions | undefined;
33
+ /**
34
+ * Publish a body-free submission reference from a validated durable-record event.
35
+ * `context.scope` selects the event owner and must equal the stable key returned by `ownerKey`.
36
+ */
37
+ export declare function publishFeedbackSubmittedEvent(app: Parameters<typeof publishMcpEvent>[0], event: unknown, context: Pick<FeedbackAdapterContext, "scope">): Promise<boolean>;
38
+ //# sourceMappingURL=mcp-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-events.d.ts","sourceRoot":"","sources":["../src/mcp-events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE1E,OAAO,EACL,KAAK,sBAAsB,EAG5B,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EACV,kBAAkB,EAClB,6BAA6B,EAC9B,MAAM,kBAAkB,CAAC;AAE1B,eAAO,MAAM,sBAAsB,yBAAyB,CAAC;AAC7D,eAAO,MAAM,0BAA0B,uBAAuB,CAAC;AAa/D,MAAM,WAAW,0BAA0B;IACzC,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAChD,2EAA2E;IAC3E,QAAQ,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3F,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,0BAA0B,GAAG,gBAAgB,CAuBtG;AAED,oFAAoF;AACpF,wBAAsB,6BAA6B,CACjD,GAAG,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,EAC1C,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,OAAO,CAAC,CAYlB;AAED,MAAM,MAAM,iCAAiC,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;AAE9F,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,UAAU,EAAE,6BAA6B,CAAC;IACnD,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAChD,QAAQ,CAAC,oBAAoB,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;QAChD,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,kBAAkB,CAAC;QAC/B,KAAK,EAAE,iCAAiC,CAAC;KAC1C,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AASD,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,8BAA8B,GACtC,gBAAgB,GAAG,SAAS,CAmE9B;AA4BD;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,GAAG,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,EAC1C,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,IAAI,CAAC,sBAAsB,EAAE,OAAO,CAAC,GAC7C,OAAO,CAAC,OAAO,CAAC,CAQlB"}