@indexnetwork/protocol 13.0.0-rc.464.1 → 13.2.0-rc.466.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/CHANGELOG.md CHANGED
@@ -20,6 +20,16 @@ went 6.7.1 → 8.0.2 with no 7.x in between because the whole 7.x line shipped a
20
20
  prereleases between the two promotions. To track every change, read `rc`; to
21
21
  pin a supported release, use `latest`.
22
22
 
23
+ ## 13.2.0 - 2026-08-16
24
+
25
+ ### Added
26
+
27
+ - `retired_mode` to `QuestionVoidedReasonSchema`, marking rows whose generating
28
+ mode was removed. Written only by the one-time
29
+ `0127_dismiss_retired_discovery_questions` migration — no runtime path emits
30
+ it, since a retired mode produces nothing by definition. The marker makes the
31
+ cleanup auditable and exactly reversible.
32
+
23
33
  ## 13.0.0 - 2026-08-13
24
34
 
25
35
  ### Removed
@@ -661,7 +661,15 @@ export declare const QuestionPoolPushSchema: z.ZodObject<{
661
661
  intentId: z.ZodString;
662
662
  cycleKey: z.ZodString;
663
663
  messageId: z.ZodString;
664
- surfaces: z.ZodTuple<[z.ZodLiteral<"personal_agent_badge">, z.ZodLiteral<"negotiator_dm">], null>;
664
+ /**
665
+ * Where a claimed push is delivered. The second slot names the negotiator
666
+ * surface: new claims write `negotiator_intent_chat` (the intent-pinned
667
+ * session). `negotiator_dm` is the legacy literal for rows persisted before
668
+ * the unscoped DM was removed — this schema is validated on read, so the
669
+ * union keeps those rows parsing instead of rejecting them. Read-compat
670
+ * only; nothing writes it.
671
+ */
672
+ surfaces: z.ZodTuple<[z.ZodLiteral<"personal_agent_badge">, z.ZodUnion<[z.ZodLiteral<"negotiator_intent_chat">, z.ZodLiteral<"negotiator_dm">]>], null>;
665
673
  claimedAt: z.ZodString;
666
674
  deliveryStatus: z.ZodEnum<["claimed", "delivered", "suppressed", "failed"]>;
667
675
  conversationId: z.ZodOptional<z.ZodString>;
@@ -675,7 +683,7 @@ export declare const QuestionPoolPushSchema: z.ZodObject<{
675
683
  intentId: string;
676
684
  cycleKey: string;
677
685
  messageId: string;
678
- surfaces: ["personal_agent_badge", "negotiator_dm"];
686
+ surfaces: ["personal_agent_badge", "negotiator_intent_chat" | "negotiator_dm"];
679
687
  claimedAt: string;
680
688
  deliveryStatus: "failed" | "claimed" | "delivered" | "suppressed";
681
689
  conversationId?: string | undefined;
@@ -689,7 +697,7 @@ export declare const QuestionPoolPushSchema: z.ZodObject<{
689
697
  intentId: string;
690
698
  cycleKey: string;
691
699
  messageId: string;
692
- surfaces: ["personal_agent_badge", "negotiator_dm"];
700
+ surfaces: ["personal_agent_badge", "negotiator_intent_chat" | "negotiator_dm"];
693
701
  claimedAt: string;
694
702
  deliveryStatus: "failed" | "claimed" | "delivered" | "suppressed";
695
703
  conversationId?: string | undefined;
@@ -722,7 +730,7 @@ export declare const QuestionRecoverySnapshotSchema: z.ZodObject<{
722
730
  rejectedNegotiationCount?: number | undefined;
723
731
  }>;
724
732
  /** Internal reason a pending question was voided. */
725
- export declare const QuestionVoidedReasonSchema: z.ZodEnum<["pool_drift", "intent_edit", "recovery_drift", "negotiation_stale"]>;
733
+ export declare const QuestionVoidedReasonSchema: z.ZodEnum<["pool_drift", "intent_edit", "recovery_drift", "negotiation_stale", "retired_mode"]>;
726
734
  /** Permanent reasons that terminalize an unclaimed proactive push request. */
727
735
  export declare const QuestionPoolPushRequestReasonSchema: z.ZodEnum<["question_lifecycle", "intent_lifecycle", "malformed_source", "malformed_actor", "malformed_pool", "malformed_cycle", "visited", "pool_size", "voi", "cycle_budget"]>;
728
736
  export declare const QuestionDetectionSchema: z.ZodEffects<z.ZodObject<{
@@ -1064,7 +1072,15 @@ export declare const QuestionDetectionSchema: z.ZodEffects<z.ZodObject<{
1064
1072
  intentId: z.ZodString;
1065
1073
  cycleKey: z.ZodString;
1066
1074
  messageId: z.ZodString;
1067
- surfaces: z.ZodTuple<[z.ZodLiteral<"personal_agent_badge">, z.ZodLiteral<"negotiator_dm">], null>;
1075
+ /**
1076
+ * Where a claimed push is delivered. The second slot names the negotiator
1077
+ * surface: new claims write `negotiator_intent_chat` (the intent-pinned
1078
+ * session). `negotiator_dm` is the legacy literal for rows persisted before
1079
+ * the unscoped DM was removed — this schema is validated on read, so the
1080
+ * union keeps those rows parsing instead of rejecting them. Read-compat
1081
+ * only; nothing writes it.
1082
+ */
1083
+ surfaces: z.ZodTuple<[z.ZodLiteral<"personal_agent_badge">, z.ZodUnion<[z.ZodLiteral<"negotiator_intent_chat">, z.ZodLiteral<"negotiator_dm">]>], null>;
1068
1084
  claimedAt: z.ZodString;
1069
1085
  deliveryStatus: z.ZodEnum<["claimed", "delivered", "suppressed", "failed"]>;
1070
1086
  conversationId: z.ZodOptional<z.ZodString>;
@@ -1078,7 +1094,7 @@ export declare const QuestionDetectionSchema: z.ZodEffects<z.ZodObject<{
1078
1094
  intentId: string;
1079
1095
  cycleKey: string;
1080
1096
  messageId: string;
1081
- surfaces: ["personal_agent_badge", "negotiator_dm"];
1097
+ surfaces: ["personal_agent_badge", "negotiator_intent_chat" | "negotiator_dm"];
1082
1098
  claimedAt: string;
1083
1099
  deliveryStatus: "failed" | "claimed" | "delivered" | "suppressed";
1084
1100
  conversationId?: string | undefined;
@@ -1092,7 +1108,7 @@ export declare const QuestionDetectionSchema: z.ZodEffects<z.ZodObject<{
1092
1108
  intentId: string;
1093
1109
  cycleKey: string;
1094
1110
  messageId: string;
1095
- surfaces: ["personal_agent_badge", "negotiator_dm"];
1111
+ surfaces: ["personal_agent_badge", "negotiator_intent_chat" | "negotiator_dm"];
1096
1112
  claimedAt: string;
1097
1113
  deliveryStatus: "failed" | "claimed" | "delivered" | "suppressed";
1098
1114
  conversationId?: string | undefined;
@@ -1101,7 +1117,7 @@ export declare const QuestionDetectionSchema: z.ZodEffects<z.ZodObject<{
1101
1117
  failure?: string | undefined;
1102
1118
  }>>;
1103
1119
  /** Internal reason this question was voided after pool or intent drift. */
1104
- voidedReason: z.ZodOptional<z.ZodEnum<["pool_drift", "intent_edit", "recovery_drift", "negotiation_stale"]>>;
1120
+ voidedReason: z.ZodOptional<z.ZodEnum<["pool_drift", "intent_edit", "recovery_drift", "negotiation_stale", "retired_mode"]>>;
1105
1121
  /** Authoritative successful-delivery ledger timestamp. Internal only. */
1106
1122
  pushedAt: z.ZodOptional<z.ZodString>;
1107
1123
  }, "strip", z.ZodTypeAny, {
@@ -1116,7 +1132,7 @@ export declare const QuestionDetectionSchema: z.ZodEffects<z.ZodObject<{
1116
1132
  intentId: string;
1117
1133
  cycleKey: string;
1118
1134
  messageId: string;
1119
- surfaces: ["personal_agent_badge", "negotiator_dm"];
1135
+ surfaces: ["personal_agent_badge", "negotiator_intent_chat" | "negotiator_dm"];
1120
1136
  claimedAt: string;
1121
1137
  deliveryStatus: "failed" | "claimed" | "delivered" | "suppressed";
1122
1138
  conversationId?: string | undefined;
@@ -1196,7 +1212,7 @@ export declare const QuestionDetectionSchema: z.ZodEffects<z.ZodObject<{
1196
1212
  pushRequestStatus?: "suppressed" | "requested" | undefined;
1197
1213
  pushRequestReason?: "voi" | "question_lifecycle" | "intent_lifecycle" | "malformed_source" | "malformed_actor" | "malformed_pool" | "malformed_cycle" | "visited" | "pool_size" | "cycle_budget" | undefined;
1198
1214
  pushRequestSuppressedAt?: string | undefined;
1199
- voidedReason?: "pool_drift" | "intent_edit" | "recovery_drift" | "negotiation_stale" | undefined;
1215
+ voidedReason?: "pool_drift" | "intent_edit" | "recovery_drift" | "negotiation_stale" | "retired_mode" | undefined;
1200
1216
  pushedAt?: string | undefined;
1201
1217
  }, {
1202
1218
  mode: "chat" | "intent" | "negotiation" | "negotiation_inflight" | "pool_discovery";
@@ -1210,7 +1226,7 @@ export declare const QuestionDetectionSchema: z.ZodEffects<z.ZodObject<{
1210
1226
  intentId: string;
1211
1227
  cycleKey: string;
1212
1228
  messageId: string;
1213
- surfaces: ["personal_agent_badge", "negotiator_dm"];
1229
+ surfaces: ["personal_agent_badge", "negotiator_intent_chat" | "negotiator_dm"];
1214
1230
  claimedAt: string;
1215
1231
  deliveryStatus: "failed" | "claimed" | "delivered" | "suppressed";
1216
1232
  conversationId?: string | undefined;
@@ -1290,7 +1306,7 @@ export declare const QuestionDetectionSchema: z.ZodEffects<z.ZodObject<{
1290
1306
  pushRequestStatus?: "suppressed" | "requested" | undefined;
1291
1307
  pushRequestReason?: "voi" | "question_lifecycle" | "intent_lifecycle" | "malformed_source" | "malformed_actor" | "malformed_pool" | "malformed_cycle" | "visited" | "pool_size" | "cycle_budget" | undefined;
1292
1308
  pushRequestSuppressedAt?: string | undefined;
1293
- voidedReason?: "pool_drift" | "intent_edit" | "recovery_drift" | "negotiation_stale" | undefined;
1309
+ voidedReason?: "pool_drift" | "intent_edit" | "recovery_drift" | "negotiation_stale" | "retired_mode" | undefined;
1294
1310
  pushedAt?: string | undefined;
1295
1311
  }>, {
1296
1312
  mode: "chat" | "intent" | "negotiation" | "negotiation_inflight" | "pool_discovery";
@@ -1304,7 +1320,7 @@ export declare const QuestionDetectionSchema: z.ZodEffects<z.ZodObject<{
1304
1320
  intentId: string;
1305
1321
  cycleKey: string;
1306
1322
  messageId: string;
1307
- surfaces: ["personal_agent_badge", "negotiator_dm"];
1323
+ surfaces: ["personal_agent_badge", "negotiator_intent_chat" | "negotiator_dm"];
1308
1324
  claimedAt: string;
1309
1325
  deliveryStatus: "failed" | "claimed" | "delivered" | "suppressed";
1310
1326
  conversationId?: string | undefined;
@@ -1384,7 +1400,7 @@ export declare const QuestionDetectionSchema: z.ZodEffects<z.ZodObject<{
1384
1400
  pushRequestStatus?: "suppressed" | "requested" | undefined;
1385
1401
  pushRequestReason?: "voi" | "question_lifecycle" | "intent_lifecycle" | "malformed_source" | "malformed_actor" | "malformed_pool" | "malformed_cycle" | "visited" | "pool_size" | "cycle_budget" | undefined;
1386
1402
  pushRequestSuppressedAt?: string | undefined;
1387
- voidedReason?: "pool_drift" | "intent_edit" | "recovery_drift" | "negotiation_stale" | undefined;
1403
+ voidedReason?: "pool_drift" | "intent_edit" | "recovery_drift" | "negotiation_stale" | "retired_mode" | undefined;
1388
1404
  pushedAt?: string | undefined;
1389
1405
  }, {
1390
1406
  mode: "chat" | "intent" | "negotiation" | "negotiation_inflight" | "pool_discovery";
@@ -1398,7 +1414,7 @@ export declare const QuestionDetectionSchema: z.ZodEffects<z.ZodObject<{
1398
1414
  intentId: string;
1399
1415
  cycleKey: string;
1400
1416
  messageId: string;
1401
- surfaces: ["personal_agent_badge", "negotiator_dm"];
1417
+ surfaces: ["personal_agent_badge", "negotiator_intent_chat" | "negotiator_dm"];
1402
1418
  claimedAt: string;
1403
1419
  deliveryStatus: "failed" | "claimed" | "delivered" | "suppressed";
1404
1420
  conversationId?: string | undefined;
@@ -1478,7 +1494,7 @@ export declare const QuestionDetectionSchema: z.ZodEffects<z.ZodObject<{
1478
1494
  pushRequestStatus?: "suppressed" | "requested" | undefined;
1479
1495
  pushRequestReason?: "voi" | "question_lifecycle" | "intent_lifecycle" | "malformed_source" | "malformed_actor" | "malformed_pool" | "malformed_cycle" | "visited" | "pool_size" | "cycle_budget" | undefined;
1480
1496
  pushRequestSuppressedAt?: string | undefined;
1481
- voidedReason?: "pool_drift" | "intent_edit" | "recovery_drift" | "negotiation_stale" | undefined;
1497
+ voidedReason?: "pool_drift" | "intent_edit" | "recovery_drift" | "negotiation_stale" | "retired_mode" | undefined;
1482
1498
  pushedAt?: string | undefined;
1483
1499
  }>;
1484
1500
  export declare const QuestionActorSchema: z.ZodObject<{
@@ -225,9 +225,17 @@ export const QuestionPoolPushSchema = z.object({
225
225
  intentId: z.string().min(1),
226
226
  cycleKey: z.string().min(1),
227
227
  messageId: z.string().min(1),
228
+ /**
229
+ * Where a claimed push is delivered. The second slot names the negotiator
230
+ * surface: new claims write `negotiator_intent_chat` (the intent-pinned
231
+ * session). `negotiator_dm` is the legacy literal for rows persisted before
232
+ * the unscoped DM was removed — this schema is validated on read, so the
233
+ * union keeps those rows parsing instead of rejecting them. Read-compat
234
+ * only; nothing writes it.
235
+ */
228
236
  surfaces: z.tuple([
229
237
  z.literal("personal_agent_badge"),
230
- z.literal("negotiator_dm"),
238
+ z.union([z.literal("negotiator_intent_chat"), z.literal("negotiator_dm")]),
231
239
  ]),
232
240
  claimedAt: z.string().min(1),
233
241
  deliveryStatus: z.enum(["claimed", "delivered", "suppressed", "failed"]),
@@ -254,6 +262,10 @@ export const QuestionVoidedReasonSchema = z.enum([
254
262
  "intent_edit",
255
263
  "recovery_drift",
256
264
  "negotiation_stale",
265
+ // The generator that produced the row was retired, so the question can no
266
+ // longer lead anywhere. Written once by a one-time migration, never by
267
+ // runtime code — nothing produces a retired mode by definition.
268
+ "retired_mode",
257
269
  ]);
258
270
  /** Permanent reasons that terminalize an unclaimed proactive push request. */
259
271
  export const QuestionPoolPushRequestReasonSchema = z.enum([
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@indexnetwork/protocol",
3
- "version": "13.0.0-rc.464.1",
3
+ "version": "13.2.0-rc.466.1",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",