@getuserfeedback/protocol 3.1.0 → 3.1.1
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/attention-policy.d.ts +1 -1
- package/dist/attention-policy.d.ts.map +1 -1
- package/dist/attention-policy.js +4 -1
- package/dist/flow-display.d.ts +2 -1
- package/dist/flow-display.d.ts.map +1 -1
- package/dist/flow-display.js +17 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/src/attention-policy.ts +4 -1
- package/src/flow-display.test.ts +107 -0
- package/src/flow-display.ts +25 -0
- package/src/index.ts +1 -0
|
@@ -37,7 +37,7 @@ export declare const attentionPolicyConfigSchema: z.ZodMiniObject<{
|
|
|
37
37
|
blockedBroadcastStrategy: z.ZodMiniEnum<{
|
|
38
38
|
queue: "queue";
|
|
39
39
|
}>;
|
|
40
|
-
}, z.core.$
|
|
40
|
+
}, z.core.$loose>;
|
|
41
41
|
export type AttentionPolicyConfig = z.output<typeof attentionPolicyConfigSchema>;
|
|
42
42
|
export declare const DEFAULT_ATTENTION_POLICY_CONFIG: AttentionPolicyConfig;
|
|
43
43
|
//# sourceMappingURL=attention-policy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attention-policy.d.ts","sourceRoot":"","sources":["../src/attention-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B,eAAO,MAAM,2BAA2B;;;EAAgC,CAAC;AAEzE,eAAO,MAAM,uCAAuC;;EAAoB,CAAC;AAEzE,eAAO,MAAM,uCAAuC;;EAAoB,CAAC;AAUzE,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;kBAE7C,CAAC;
|
|
1
|
+
{"version":3,"file":"attention-policy.d.ts","sourceRoot":"","sources":["../src/attention-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B,eAAO,MAAM,2BAA2B;;;EAAgC,CAAC;AAEzE,eAAO,MAAM,uCAAuC;;EAAoB,CAAC;AAEzE,eAAO,MAAM,uCAAuC;;EAAoB,CAAC;AAUzE,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;kBAE7C,CAAC;AAKF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;iBAGtC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAC3C,OAAO,2BAA2B,CAClC,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,qBAO7C,CAAC"}
|
package/dist/attention-policy.js
CHANGED
|
@@ -10,7 +10,10 @@ const legacyAttentionPolicyConfigFields = {
|
|
|
10
10
|
blockedBroadcastStrategy: attentionBlockedBroadcastStrategySchema,
|
|
11
11
|
};
|
|
12
12
|
export const legacyAttentionPolicyConfigSchema = z.strictObject(legacyAttentionPolicyConfigFields);
|
|
13
|
-
|
|
13
|
+
// V2 is the additive policy envelope for the flow-display wire contract.
|
|
14
|
+
// Keep legacy strict, and add future policy controls here instead of creating
|
|
15
|
+
// another versioned sibling field for every new setting.
|
|
16
|
+
export const attentionPolicyConfigSchema = z.looseObject({
|
|
14
17
|
...legacyAttentionPolicyConfigFields,
|
|
15
18
|
recentInAppCooldownMs: z._default(z.number().check(z.nonnegative()), 0),
|
|
16
19
|
});
|
package/dist/flow-display.d.ts
CHANGED
|
@@ -228,7 +228,7 @@ export declare const flowDisplaySyncResponseSchema: z.ZodMiniObject<{
|
|
|
228
228
|
blockedBroadcastStrategy: z.ZodMiniEnum<{
|
|
229
229
|
queue: "queue";
|
|
230
230
|
}>;
|
|
231
|
-
}, z.core.$
|
|
231
|
+
}, z.core.$loose>>;
|
|
232
232
|
assignments: z.ZodMiniObject<{
|
|
233
233
|
claimed: z.ZodMiniArray<z.ZodMiniObject<{
|
|
234
234
|
flowAssignmentId: z.ZodMiniString<string>;
|
|
@@ -303,4 +303,5 @@ export type RuntimeDisplayTrigger = z.output<typeof runtimeDisplayTriggerSchema>
|
|
|
303
303
|
export type FlowDisplaySyncRequest = z.output<typeof flowDisplaySyncRequestSchema>;
|
|
304
304
|
export type FlowDisplaySyncResponse = z.output<typeof flowDisplaySyncResponseSchema>;
|
|
305
305
|
export type FlowDisplayAttentionPolicyConfig = AttentionPolicyConfig;
|
|
306
|
+
export declare const resolveFlowDisplayAttentionPolicyConfig: (displaySync: Pick<FlowDisplaySyncResponse, "attentionPolicy" | "attentionPolicyV2">) => FlowDisplayAttentionPolicyConfig | undefined;
|
|
306
307
|
//# sourceMappingURL=flow-display.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow-display.d.ts","sourceRoot":"","sources":["../src/flow-display.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B,OAAO,EACN,KAAK,qBAAqB,EAG1B,MAAM,uBAAuB,CAAC;AAO/B,eAAO,MAAM,+BAA+B;;;;;iBAU1C,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;2BAOtC,CAAC;AAQH,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;iBAY9C,CAAC;AAEH,eAAO,MAAM,wCAAwC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAenD,CAAC;AAEH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGzC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBASvC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQxC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAC9C,OAAO,8BAA8B,CACrC,CAAC;AACF,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,MAAM,CACxD,OAAO,wCAAwC,CAC/C,CAAC;AACF,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CACnD,OAAO,mCAAmC,CAC1C,CAAC;AACF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAC/C,OAAO,+BAA+B,CACtC,CAAC;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAC3C,OAAO,2BAA2B,CAClC,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAC5C,OAAO,4BAA4B,CACnC,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAC7C,OAAO,6BAA6B,CACpC,CAAC;AACF,MAAM,MAAM,gCAAgC,GAAG,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"flow-display.d.ts","sourceRoot":"","sources":["../src/flow-display.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B,OAAO,EACN,KAAK,qBAAqB,EAG1B,MAAM,uBAAuB,CAAC;AAO/B,eAAO,MAAM,+BAA+B;;;;;iBAU1C,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;2BAOtC,CAAC;AAQH,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;iBAY9C,CAAC;AAEH,eAAO,MAAM,wCAAwC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAenD,CAAC;AAEH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGzC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBASvC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQxC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAC9C,OAAO,8BAA8B,CACrC,CAAC;AACF,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,MAAM,CACxD,OAAO,wCAAwC,CAC/C,CAAC;AACF,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CACnD,OAAO,mCAAmC,CAC1C,CAAC;AACF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAC/C,OAAO,+BAA+B,CACtC,CAAC;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAC3C,OAAO,2BAA2B,CAClC,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAC5C,OAAO,4BAA4B,CACnC,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAC7C,OAAO,6BAA6B,CACpC,CAAC;AACF,MAAM,MAAM,gCAAgC,GAAG,qBAAqB,CAAC;AAErE,eAAO,MAAM,uCAAuC,GACnD,aAAa,IAAI,CAChB,uBAAuB,EACvB,iBAAiB,GAAG,mBAAmB,CACvC,KACC,gCAAgC,GAAG,SAkBrC,CAAC"}
|
package/dist/flow-display.js
CHANGED
|
@@ -63,3 +63,20 @@ export const flowDisplaySyncResponseSchema = z.object({
|
|
|
63
63
|
}),
|
|
64
64
|
broadcasts: runtimeDisplayBroadcastsSchema,
|
|
65
65
|
});
|
|
66
|
+
export const resolveFlowDisplayAttentionPolicyConfig = (displaySync) => {
|
|
67
|
+
const policy = displaySync.attentionPolicyV2 ?? displaySync.attentionPolicy;
|
|
68
|
+
if (!policy) {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
version: policy.version,
|
|
73
|
+
source: policy.source,
|
|
74
|
+
recentFlowCooldownMs: policy.recentFlowCooldownMs,
|
|
75
|
+
recentInAppCooldownMs: "recentInAppCooldownMs" in policy &&
|
|
76
|
+
typeof policy.recentInAppCooldownMs === "number"
|
|
77
|
+
? policy.recentInAppCooldownMs
|
|
78
|
+
: 0,
|
|
79
|
+
exclusiveSurfaceStrategy: policy.exclusiveSurfaceStrategy,
|
|
80
|
+
blockedBroadcastStrategy: policy.blockedBroadcastStrategy,
|
|
81
|
+
};
|
|
82
|
+
};
|
package/dist/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export { DEFAULT_AUTO_DETECT_COLOR_SCHEME_ATTRS } from "./defaults.js";
|
|
|
7
7
|
export type { ErrorEvent, ProtocolErrorCode } from "./errors.js";
|
|
8
8
|
export { ErrorCategory, ErrorCategorySchema, ErrorEventSchema, ProtocolError, } from "./errors.js";
|
|
9
9
|
export { type ClaimPendingFlowAssignmentsRequest, type ClaimPendingFlowAssignmentsResponse, claimPendingFlowAssignmentsRequestSchema, claimPendingFlowAssignmentsResponseSchema, type FlowAssignmentExternalIdIdentityTypeValue, type FlowAssignmentIdentityTypeValue, type FlowAssignmentRecipientRequest, type FlowAssignmentRecord, type FlowAssignmentStatus, type FlowAssignmentTargetingContext, flowAssignmentRecipientRequestSchema, flowAssignmentRecordSchema, flowAssignmentStatusSchema, flowAssignmentTargetingContextSchema, type ListPendingFlowAssignmentsResponse, listPendingFlowAssignmentsResponseSchema, nullableUpdateFlowAssignmentLifecycleResponseSchema, type ReleaseFlowAssignmentClaimRequest, type ReleaseFlowAssignmentClaimResponse, releaseFlowAssignmentClaimRequestSchema, releaseFlowAssignmentClaimResponseSchema, type UpdateFlowAssignmentLifecycleRequest, type UpdateFlowAssignmentLifecycleResponse, updateFlowAssignmentLifecycleRequestSchema, updateFlowAssignmentLifecycleResponseSchema, } from "./flow-assignments.js";
|
|
10
|
-
export { type FlowDisplaySyncRequest, type FlowDisplaySyncResponse, flowDisplaySyncRequestSchema, flowDisplaySyncResponseSchema, type RuntimeDisplayAttentionPolicy, type RuntimeDisplayBroadcastOpportunity, type RuntimeDisplayBroadcasts, type RuntimeDisplayEligibility, type RuntimeDisplayTrigger, runtimeDisplayAttentionPolicySchema, runtimeDisplayBroadcastOpportunitySchema, runtimeDisplayBroadcastsSchema, runtimeDisplayEligibilitySchema, runtimeDisplayTriggerSchema, } from "./flow-display.js";
|
|
10
|
+
export { type FlowDisplaySyncRequest, type FlowDisplaySyncResponse, flowDisplaySyncRequestSchema, flowDisplaySyncResponseSchema, type RuntimeDisplayAttentionPolicy, type RuntimeDisplayBroadcastOpportunity, type RuntimeDisplayBroadcasts, type RuntimeDisplayEligibility, type RuntimeDisplayTrigger, resolveFlowDisplayAttentionPolicyConfig, runtimeDisplayAttentionPolicySchema, runtimeDisplayBroadcastOpportunitySchema, runtimeDisplayBroadcastsSchema, runtimeDisplayEligibilitySchema, runtimeDisplayTriggerSchema, } from "./flow-display.js";
|
|
11
11
|
export { buildIdentityTypeGuidanceMessage, getIdentityTypeSuggestion, IDENTITY_TYPE_VALUES, type IdentityTypeValue, isIdentityTypeValue, type StandardIdentityTypeValue, } from "./identity-type.js";
|
|
12
12
|
export { type CaptureInstanceFeedbackRequest, type CaptureInstanceFeedbackResponse, captureInstanceFeedbackRequestSchema, captureInstanceFeedbackResponseSchema, type InstanceFeedbackDataType, type InstanceFeedbackValence, instanceFeedbackDataTypeSchema, instanceFeedbackValenceSchema, } from "./instance-feedback.js";
|
|
13
13
|
export { type PreviewConnectionPairRequest, type PreviewConnectionPairResponse, previewConnectionPairRequestSchema, previewConnectionPairResponseSchema, } from "./preview-connection.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ export { coreCommandPayloadSchema, } from "./core-commands.js";
|
|
|
6
6
|
export { DEFAULT_AUTO_DETECT_COLOR_SCHEME_ATTRS } from "./defaults.js";
|
|
7
7
|
export { ErrorCategory, ErrorCategorySchema, ErrorEventSchema, ProtocolError, } from "./errors.js";
|
|
8
8
|
export { claimPendingFlowAssignmentsRequestSchema, claimPendingFlowAssignmentsResponseSchema, flowAssignmentRecipientRequestSchema, flowAssignmentRecordSchema, flowAssignmentStatusSchema, flowAssignmentTargetingContextSchema, listPendingFlowAssignmentsResponseSchema, nullableUpdateFlowAssignmentLifecycleResponseSchema, releaseFlowAssignmentClaimRequestSchema, releaseFlowAssignmentClaimResponseSchema, updateFlowAssignmentLifecycleRequestSchema, updateFlowAssignmentLifecycleResponseSchema, } from "./flow-assignments.js";
|
|
9
|
-
export { flowDisplaySyncRequestSchema, flowDisplaySyncResponseSchema, runtimeDisplayAttentionPolicySchema, runtimeDisplayBroadcastOpportunitySchema, runtimeDisplayBroadcastsSchema, runtimeDisplayEligibilitySchema, runtimeDisplayTriggerSchema, } from "./flow-display.js";
|
|
9
|
+
export { flowDisplaySyncRequestSchema, flowDisplaySyncResponseSchema, resolveFlowDisplayAttentionPolicyConfig, runtimeDisplayAttentionPolicySchema, runtimeDisplayBroadcastOpportunitySchema, runtimeDisplayBroadcastsSchema, runtimeDisplayEligibilitySchema, runtimeDisplayTriggerSchema, } from "./flow-display.js";
|
|
10
10
|
export { buildIdentityTypeGuidanceMessage, getIdentityTypeSuggestion, IDENTITY_TYPE_VALUES, isIdentityTypeValue, } from "./identity-type.js";
|
|
11
11
|
export { captureInstanceFeedbackRequestSchema, captureInstanceFeedbackResponseSchema, instanceFeedbackDataTypeSchema, instanceFeedbackValenceSchema, } from "./instance-feedback.js";
|
|
12
12
|
export { previewConnectionPairRequestSchema, previewConnectionPairResponseSchema, } from "./preview-connection.js";
|
package/package.json
CHANGED
package/src/attention-policy.ts
CHANGED
|
@@ -18,7 +18,10 @@ export const legacyAttentionPolicyConfigSchema = z.strictObject(
|
|
|
18
18
|
legacyAttentionPolicyConfigFields,
|
|
19
19
|
);
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
// V2 is the additive policy envelope for the flow-display wire contract.
|
|
22
|
+
// Keep legacy strict, and add future policy controls here instead of creating
|
|
23
|
+
// another versioned sibling field for every new setting.
|
|
24
|
+
export const attentionPolicyConfigSchema = z.looseObject({
|
|
22
25
|
...legacyAttentionPolicyConfigFields,
|
|
23
26
|
recentInAppCooldownMs: z._default(z.number().check(z.nonnegative()), 0),
|
|
24
27
|
});
|
package/src/flow-display.test.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { describe, expect, it } from "bun:test";
|
|
|
2
2
|
import {
|
|
3
3
|
flowDisplaySyncRequestSchema,
|
|
4
4
|
flowDisplaySyncResponseSchema,
|
|
5
|
+
resolveFlowDisplayAttentionPolicyConfig,
|
|
5
6
|
} from "./flow-display";
|
|
6
7
|
|
|
7
8
|
describe("flow display sync contracts", () => {
|
|
@@ -122,6 +123,112 @@ describe("flow display sync contracts", () => {
|
|
|
122
123
|
).toThrow();
|
|
123
124
|
});
|
|
124
125
|
|
|
126
|
+
it("accepts future additive fields on the v2 attention policy envelope", () => {
|
|
127
|
+
const result = flowDisplaySyncResponseSchema.parse({
|
|
128
|
+
fetchedAt: "2026-06-18T00:00:00.000Z",
|
|
129
|
+
attentionPolicyV2: {
|
|
130
|
+
version: "attention-policy-organization-override-v1",
|
|
131
|
+
source: "custom",
|
|
132
|
+
recentFlowCooldownMs: 45_000,
|
|
133
|
+
recentInAppCooldownMs: 60_000,
|
|
134
|
+
exclusiveSurfaceStrategy: "queue",
|
|
135
|
+
blockedBroadcastStrategy: "queue",
|
|
136
|
+
futureChannelStrategy: "digest",
|
|
137
|
+
},
|
|
138
|
+
assignments: {
|
|
139
|
+
claimed: [],
|
|
140
|
+
},
|
|
141
|
+
broadcasts: {
|
|
142
|
+
version: "empty",
|
|
143
|
+
opportunities: [],
|
|
144
|
+
},
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
expect(result.attentionPolicyV2).toEqual({
|
|
148
|
+
version: "attention-policy-organization-override-v1",
|
|
149
|
+
source: "custom",
|
|
150
|
+
recentFlowCooldownMs: 45_000,
|
|
151
|
+
recentInAppCooldownMs: 60_000,
|
|
152
|
+
exclusiveSurfaceStrategy: "queue",
|
|
153
|
+
blockedBroadcastStrategy: "queue",
|
|
154
|
+
futureChannelStrategy: "digest",
|
|
155
|
+
});
|
|
156
|
+
expect(resolveFlowDisplayAttentionPolicyConfig(result)).toEqual({
|
|
157
|
+
version: "attention-policy-organization-override-v1",
|
|
158
|
+
source: "custom",
|
|
159
|
+
recentFlowCooldownMs: 45_000,
|
|
160
|
+
recentInAppCooldownMs: 60_000,
|
|
161
|
+
exclusiveSurfaceStrategy: "queue",
|
|
162
|
+
blockedBroadcastStrategy: "queue",
|
|
163
|
+
});
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
it("resolves the v2 attention policy before the legacy fallback", () => {
|
|
167
|
+
const result = flowDisplaySyncResponseSchema.parse({
|
|
168
|
+
fetchedAt: "2026-06-18T00:00:00.000Z",
|
|
169
|
+
attentionPolicy: {
|
|
170
|
+
version: "attention-policy-legacy-v1",
|
|
171
|
+
source: "custom",
|
|
172
|
+
recentFlowCooldownMs: 45_000,
|
|
173
|
+
exclusiveSurfaceStrategy: "queue",
|
|
174
|
+
blockedBroadcastStrategy: "queue",
|
|
175
|
+
},
|
|
176
|
+
attentionPolicyV2: {
|
|
177
|
+
version: "attention-policy-v2-v1",
|
|
178
|
+
source: "custom",
|
|
179
|
+
recentFlowCooldownMs: 90_000,
|
|
180
|
+
recentInAppCooldownMs: 30_000,
|
|
181
|
+
exclusiveSurfaceStrategy: "queue",
|
|
182
|
+
blockedBroadcastStrategy: "queue",
|
|
183
|
+
},
|
|
184
|
+
assignments: {
|
|
185
|
+
claimed: [],
|
|
186
|
+
},
|
|
187
|
+
broadcasts: {
|
|
188
|
+
version: "empty",
|
|
189
|
+
opportunities: [],
|
|
190
|
+
},
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
expect(resolveFlowDisplayAttentionPolicyConfig(result)).toEqual({
|
|
194
|
+
version: "attention-policy-v2-v1",
|
|
195
|
+
source: "custom",
|
|
196
|
+
recentFlowCooldownMs: 90_000,
|
|
197
|
+
recentInAppCooldownMs: 30_000,
|
|
198
|
+
exclusiveSurfaceStrategy: "queue",
|
|
199
|
+
blockedBroadcastStrategy: "queue",
|
|
200
|
+
});
|
|
201
|
+
});
|
|
202
|
+
|
|
203
|
+
it("resolves legacy attention policy with default v2-only fields", () => {
|
|
204
|
+
const result = flowDisplaySyncResponseSchema.parse({
|
|
205
|
+
fetchedAt: "2026-06-18T00:00:00.000Z",
|
|
206
|
+
attentionPolicy: {
|
|
207
|
+
version: "attention-policy-legacy-v1",
|
|
208
|
+
source: "custom",
|
|
209
|
+
recentFlowCooldownMs: 45_000,
|
|
210
|
+
exclusiveSurfaceStrategy: "queue",
|
|
211
|
+
blockedBroadcastStrategy: "queue",
|
|
212
|
+
},
|
|
213
|
+
assignments: {
|
|
214
|
+
claimed: [],
|
|
215
|
+
},
|
|
216
|
+
broadcasts: {
|
|
217
|
+
version: "empty",
|
|
218
|
+
opportunities: [],
|
|
219
|
+
},
|
|
220
|
+
});
|
|
221
|
+
|
|
222
|
+
expect(resolveFlowDisplayAttentionPolicyConfig(result)).toEqual({
|
|
223
|
+
version: "attention-policy-legacy-v1",
|
|
224
|
+
source: "custom",
|
|
225
|
+
recentFlowCooldownMs: 45_000,
|
|
226
|
+
recentInAppCooldownMs: 0,
|
|
227
|
+
exclusiveSurfaceStrategy: "queue",
|
|
228
|
+
blockedBroadcastStrategy: "queue",
|
|
229
|
+
});
|
|
230
|
+
});
|
|
231
|
+
|
|
125
232
|
it("accepts runtime broadcast opportunities", () => {
|
|
126
233
|
const result = flowDisplaySyncResponseSchema.parse({
|
|
127
234
|
fetchedAt: "2026-06-18T00:00:00.000Z",
|
package/src/flow-display.ts
CHANGED
|
@@ -117,3 +117,28 @@ export type FlowDisplaySyncResponse = z.output<
|
|
|
117
117
|
typeof flowDisplaySyncResponseSchema
|
|
118
118
|
>;
|
|
119
119
|
export type FlowDisplayAttentionPolicyConfig = AttentionPolicyConfig;
|
|
120
|
+
|
|
121
|
+
export const resolveFlowDisplayAttentionPolicyConfig = (
|
|
122
|
+
displaySync: Pick<
|
|
123
|
+
FlowDisplaySyncResponse,
|
|
124
|
+
"attentionPolicy" | "attentionPolicyV2"
|
|
125
|
+
>,
|
|
126
|
+
): FlowDisplayAttentionPolicyConfig | undefined => {
|
|
127
|
+
const policy = displaySync.attentionPolicyV2 ?? displaySync.attentionPolicy;
|
|
128
|
+
if (!policy) {
|
|
129
|
+
return undefined;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
return {
|
|
133
|
+
version: policy.version,
|
|
134
|
+
source: policy.source,
|
|
135
|
+
recentFlowCooldownMs: policy.recentFlowCooldownMs,
|
|
136
|
+
recentInAppCooldownMs:
|
|
137
|
+
"recentInAppCooldownMs" in policy &&
|
|
138
|
+
typeof policy.recentInAppCooldownMs === "number"
|
|
139
|
+
? policy.recentInAppCooldownMs
|
|
140
|
+
: 0,
|
|
141
|
+
exclusiveSurfaceStrategy: policy.exclusiveSurfaceStrategy,
|
|
142
|
+
blockedBroadcastStrategy: policy.blockedBroadcastStrategy,
|
|
143
|
+
};
|
|
144
|
+
};
|
package/src/index.ts
CHANGED
|
@@ -88,6 +88,7 @@ export {
|
|
|
88
88
|
type RuntimeDisplayBroadcasts,
|
|
89
89
|
type RuntimeDisplayEligibility,
|
|
90
90
|
type RuntimeDisplayTrigger,
|
|
91
|
+
resolveFlowDisplayAttentionPolicyConfig,
|
|
91
92
|
runtimeDisplayAttentionPolicySchema,
|
|
92
93
|
runtimeDisplayBroadcastOpportunitySchema,
|
|
93
94
|
runtimeDisplayBroadcastsSchema,
|