@cursor/bdk 0.2.12 → 0.2.13

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.
Files changed (152) hide show
  1. package/dist/channels/github/index.d.ts +22 -12
  2. package/dist/channels/github/index.d.ts.map +1 -1
  3. package/dist/channels/github/index.js +11 -12
  4. package/dist/channels/origin/index.d.ts +21 -11
  5. package/dist/channels/origin/index.d.ts.map +1 -1
  6. package/dist/channels/origin/index.js +10 -11
  7. package/dist/docs/404.html +2 -2
  8. package/dist/docs/assets/{app.CKta5zX1.js → app.CaLG1pPt.js} +4 -4
  9. package/dist/docs/assets/chunks/{@localSearchIndexroot.DtlCe4t6.js → @localSearchIndexroot.DvlKuIO-.js} +1 -1
  10. package/dist/docs/assets/chunks/{VPLocalSearchBox.4vRM3EDG.js → VPLocalSearchBox.YsP_2wqD.js} +1 -1
  11. package/dist/docs/assets/chunks/{arc.CofbA8tA.js → arc.C2j9hR7c.js} +1 -1
  12. package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.Mt2UV5M-.js → architectureDiagram-Q4EWVU46.C5qkGp7y.js} +1 -1
  13. package/dist/docs/assets/chunks/{baseUniq.C_W0Aqp4.js → baseUniq.U6GgTHOD.js} +1 -1
  14. package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.dAc4goE-.js → blockDiagram-DXYQGD6D.D51mJop2.js} +1 -1
  15. package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.dnbRC3Dm.js → c4Diagram-AHTNJAMY.w1d6QxV7.js} +1 -1
  16. package/dist/docs/assets/chunks/channel.BRSFxCcD.js +1 -0
  17. package/dist/docs/assets/chunks/{chunk-4BX2VUAB.B42ltSTd.js → chunk-4BX2VUAB.B_A815un.js} +1 -1
  18. package/dist/docs/assets/chunks/{chunk-4TB4RGXK.2GbAul_E.js → chunk-4TB4RGXK.DMrm-ZCb.js} +1 -1
  19. package/dist/docs/assets/chunks/{chunk-55IACEB6.pjzY-v-B.js → chunk-55IACEB6.8qw6Xdal.js} +1 -1
  20. package/dist/docs/assets/chunks/{chunk-EDXVE4YY.BB1GXLj2.js → chunk-EDXVE4YY.Cq_nHODn.js} +1 -1
  21. package/dist/docs/assets/chunks/{chunk-FMBD7UC4.B2WxZkoA.js → chunk-FMBD7UC4.B67ohCYn.js} +1 -1
  22. package/dist/docs/assets/chunks/{chunk-OYMX7WX6.BMvb2w73.js → chunk-OYMX7WX6.Bo8rQI8F.js} +1 -1
  23. package/dist/docs/assets/chunks/{chunk-QZHKN3VN.Bmu_2lNr.js → chunk-QZHKN3VN.BERUMfE9.js} +1 -1
  24. package/dist/docs/assets/chunks/{chunk-YZCP3GAM.Cth65EaC.js → chunk-YZCP3GAM.DWG2tXIX.js} +1 -1
  25. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.Cmtm6WkN.js +1 -0
  26. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.Cmtm6WkN.js +1 -0
  27. package/dist/docs/assets/chunks/clone.JMC96Eo6.js +1 -0
  28. package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.CrfA7Iw_.js → cose-bilkent-S5V4N54A.tezXBs9b.js} +1 -1
  29. package/dist/docs/assets/chunks/{dagre-KV5264BT.PCD6KQDb.js → dagre-KV5264BT.aSbEUwT7.js} +1 -1
  30. package/dist/docs/assets/chunks/{diagram-5BDNPKRD.CGNlYlP1.js → diagram-5BDNPKRD.vnT6aJ57.js} +1 -1
  31. package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.C0cvryPD.js → diagram-G4DWMVQ6.hGYdrDa2.js} +1 -1
  32. package/dist/docs/assets/chunks/{diagram-MMDJMWI5.DHlkZHNV.js → diagram-MMDJMWI5.CmdSUP6L.js} +1 -1
  33. package/dist/docs/assets/chunks/{diagram-TYMM5635.DDGqH_4B.js → diagram-TYMM5635.BbAnLEBB.js} +1 -1
  34. package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.4gOY_C3v.js → erDiagram-SMLLAGMA.H40W4HWE.js} +1 -1
  35. package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.8i7zsxuh.js → flowDiagram-DWJPFMVM.BFMtUSv-.js} +1 -1
  36. package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.BEKHYdM-.js → ganttDiagram-T4ZO3ILL.CbYiu7Dt.js} +1 -1
  37. package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.ACzeLGiB.js → gitGraphDiagram-UUTBAWPF.Cyc5mzZD.js} +1 -1
  38. package/dist/docs/assets/chunks/{graph.08C3hS6m.js → graph.BRptDG1H.js} +1 -1
  39. package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.D8R9obOH.js → infoDiagram-42DDH7IO.Bz6KCA3a.js} +1 -1
  40. package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.CmgYpCWL.js → ishikawaDiagram-UXIWVN3A.DDJ_7_Fq.js} +1 -1
  41. package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.DUzjGfoZ.js → journeyDiagram-VCZTEJTY.D0t_ltlb.js} +1 -1
  42. package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.DbcW2iZ0.js → kanban-definition-6JOO6SKY.DyyNsMfi.js} +1 -1
  43. package/dist/docs/assets/chunks/{layout.BaDEpJzu.js → layout.Cbxq-Rhp.js} +1 -1
  44. package/dist/docs/assets/chunks/{linear.B_zRQgCU.js → linear.DxGYL0MP.js} +1 -1
  45. package/dist/docs/assets/chunks/{min.BYscCdSu.js → min.DA5KL8wu.js} +1 -1
  46. package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.Ggu0jg86.js → mindmap-definition-QFDTVHPH.Bc72Utls.js} +1 -1
  47. package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.D_q4SVDT.js → pieDiagram-DEJITSTG.BtpHnIB_.js} +1 -1
  48. package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.D3zGj5ok.js → quadrantDiagram-34T5L4WZ.Cx4oCSRR.js} +1 -1
  49. package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.DVTg7zr2.js → requirementDiagram-MS252O5E.BC0hXWlW.js} +1 -1
  50. package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.D3X8jm57.js → sankeyDiagram-XADWPNL6.Dg8T1SEp.js} +1 -1
  51. package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.Dpjai9YP.js → sequenceDiagram-FGHM5R23.CWSdHYAF.js} +1 -1
  52. package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.D_AbQBuP.js → stateDiagram-FHFEXIEX.0MVPRI28.js} +1 -1
  53. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.N4Am6sXd.js +1 -0
  54. package/dist/docs/assets/chunks/{theme.BcgOnbZ6.js → theme.DO1avLBn.js} +2 -2
  55. package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.Cp3DKBe2.js → timeline-definition-GMOUNBTQ.BuRinAVi.js} +1 -1
  56. package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.Bcvg-Aqu.js → vennDiagram-DHZGUBPP.DXf0PCoJ.js} +1 -1
  57. package/dist/docs/assets/chunks/{wardley-RL74JXVD.CCpdcUSq.js → wardley-RL74JXVD._eATmGtu.js} +1 -1
  58. package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.L0yehCc5.js → wardleyDiagram-NUSXRM2D.T4ThngYV.js} +1 -1
  59. package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.Cw8-tJmw.js → xychartDiagram-5P7HB3ND.b4pZF3D5.js} +1 -1
  60. package/dist/docs/assets/{reference_skills.md.ClkMoQsV.js → reference_skills.md.C0guGcH0.js} +3 -3
  61. package/dist/docs/building-with-agents.html +35 -35
  62. package/dist/docs/deployment.html +35 -35
  63. package/dist/docs/evals.html +35 -35
  64. package/dist/docs/guides/agent-to-agent.html +35 -35
  65. package/dist/docs/guides/bitbucket.html +35 -35
  66. package/dist/docs/guides/cloud-agents.html +35 -35
  67. package/dist/docs/guides/convert-automation.html +35 -35
  68. package/dist/docs/guides/github.html +35 -35
  69. package/dist/docs/guides/gitlab.html +35 -35
  70. package/dist/docs/guides/grokbot-agents.html +35 -35
  71. package/dist/docs/guides/hooks.html +35 -35
  72. package/dist/docs/guides/improve.html +35 -35
  73. package/dist/docs/guides/jev.html +35 -35
  74. package/dist/docs/guides/mcp-oauth.html +35 -35
  75. package/dist/docs/guides/migrate.html +35 -35
  76. package/dist/docs/guides/opentelemetry.html +35 -35
  77. package/dist/docs/guides/slack.html +35 -35
  78. package/dist/docs/guides/webhooks.html +35 -35
  79. package/dist/docs/hashmap.json +1 -1
  80. package/dist/docs/hillclimbing.html +35 -35
  81. package/dist/docs/index.html +35 -35
  82. package/dist/docs/quickstart.html +35 -35
  83. package/dist/docs/reference/agent-config.html +35 -35
  84. package/dist/docs/reference/artifacts.html +35 -35
  85. package/dist/docs/reference/channels.html +35 -35
  86. package/dist/docs/reference/cli.html +35 -35
  87. package/dist/docs/reference/connections.html +35 -35
  88. package/dist/docs/reference/evals.html +35 -35
  89. package/dist/docs/reference/extensions.html +35 -35
  90. package/dist/docs/reference/hooks.html +35 -35
  91. package/dist/docs/reference/http-api.html +35 -35
  92. package/dist/docs/reference/instructions.html +35 -35
  93. package/dist/docs/reference/playground.html +35 -35
  94. package/dist/docs/reference/project-layout.html +35 -35
  95. package/dist/docs/reference/prompt.html +35 -35
  96. package/dist/docs/reference/schedules.html +35 -35
  97. package/dist/docs/reference/sessions.html +35 -35
  98. package/dist/docs/reference/skills.html +38 -38
  99. package/dist/docs/reference/subagents.html +35 -35
  100. package/dist/docs/reference/tools.html +35 -35
  101. package/dist/docs/templates/agentic-owners.html +35 -35
  102. package/dist/docs/templates/grokbot-agents.html +35 -35
  103. package/dist/docs/templates/security-reviewer.html +35 -35
  104. package/dist/docs/templates/thermo-quality-review.html +35 -35
  105. package/dist/docs/templates/thermo-review.html +35 -35
  106. package/dist/docs/templates/triage.html +35 -35
  107. package/dist/docs/troubleshooting.html +35 -35
  108. package/dist/internal/authored-alias-hooks.d.ts +4 -3
  109. package/dist/internal/authored-alias-hooks.d.ts.map +1 -1
  110. package/dist/internal/authored-alias-hooks.js +15 -6
  111. package/dist/internal/authored-loaders.d.ts.map +1 -1
  112. package/dist/internal/authored-loaders.js +21 -5
  113. package/dist/internal/deploy-manifest.d.ts +14 -0
  114. package/dist/internal/deploy-manifest.d.ts.map +1 -1
  115. package/dist/internal/deploy-manifest.js +23 -0
  116. package/dist/internal/evals-client.d.ts.map +1 -1
  117. package/dist/internal/hosted-delivery-protocol.d.ts +24 -0
  118. package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
  119. package/dist/internal/hosted-delivery-protocol.js +44 -0
  120. package/dist/internal/hosted-delivery.d.ts +6 -0
  121. package/dist/internal/hosted-delivery.d.ts.map +1 -1
  122. package/dist/internal/hosted-delivery.js +41 -4
  123. package/dist/internal/hosted-managed-automation.d.ts +3 -3
  124. package/dist/internal/hosted-managed-automation.js +3 -3
  125. package/dist/internal/reminder-runner.d.ts.map +1 -1
  126. package/dist/internal/schedule-runner.d.ts +13 -2
  127. package/dist/internal/schedule-runner.d.ts.map +1 -1
  128. package/dist/internal/schedule-runner.js +42 -3
  129. package/dist/internal/sdk-runner.d.ts +2 -1
  130. package/dist/internal/sdk-runner.d.ts.map +1 -1
  131. package/dist/internal/sdk-runner.js +7 -2
  132. package/dist/internal/server.d.ts.map +1 -1
  133. package/dist/internal/server.js +8 -4
  134. package/dist/internal/session-live-publisher.d.ts +4 -2
  135. package/dist/internal/session-live-publisher.d.ts.map +1 -1
  136. package/dist/internal/session-live-publisher.js +73 -10
  137. package/dist/internal/testing/conversation-identity-vectors.d.ts +48 -0
  138. package/dist/internal/testing/conversation-identity-vectors.d.ts.map +1 -0
  139. package/dist/internal/testing/conversation-identity-vectors.js +136 -0
  140. package/dist/playground/assets/index-CzttDc-d.css +1 -0
  141. package/dist/playground/assets/{index-HN5lOuAX.js → index-DIiKbZ25.js} +2 -2
  142. package/dist/playground/index.html +2 -2
  143. package/dist/types.d.ts +6 -4
  144. package/dist/types.d.ts.map +1 -1
  145. package/package.json +1 -1
  146. package/dist/docs/assets/chunks/channel.DpljPUVU.js +0 -1
  147. package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.DFNHq2OM.js +0 -1
  148. package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.DFNHq2OM.js +0 -1
  149. package/dist/docs/assets/chunks/clone.DssygCzX.js +0 -1
  150. package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CWKWRxRx.js +0 -1
  151. package/dist/playground/assets/index-JY1wKCMg.css +0 -1
  152. /package/dist/docs/assets/{reference_skills.md.ClkMoQsV.lean.js → reference_skills.md.C0guGcH0.lean.js} +0 -0
@@ -44,10 +44,62 @@ const DELTA_EVENT_TYPES = new Set(["message.appended", "reasoning.appended"]);
44
44
  function utf8Bytes(text) {
45
45
  return Buffer.byteLength(text, "utf8");
46
46
  }
47
+ /** Per-string length limits tried, longest first, until an event fits the cap. */
48
+ const LIVE_TRUNCATION_STEPS = [4096, 1024, 256, 64];
49
+ /**
50
+ * `data` fields viewers use to place an event (which tool card, which
51
+ * subagent, how the turn ended). They survive every truncation step.
52
+ */
53
+ const LIVE_IDENTITY_KEYS = [
54
+ "callId",
55
+ "toolName",
56
+ "parentCallId",
57
+ "isError",
58
+ "finishReason",
59
+ "stepId",
60
+ "decision",
61
+ "sdkAgentId",
62
+ ];
63
+ const LIVE_TRUNCATION_MARKER = "… [truncated in the live view]";
64
+ function truncateStrings(value, maxChars) {
65
+ if (typeof value === "string") {
66
+ return value.length > maxChars ? `${value.slice(0, maxChars)}${LIVE_TRUNCATION_MARKER}` : value;
67
+ }
68
+ if (Array.isArray(value)) {
69
+ return value.map((item) => truncateStrings(item, maxChars));
70
+ }
71
+ if (value !== null && typeof value === "object") {
72
+ return Object.fromEntries(Object.entries(value).map(([key, item]) => [key, truncateStrings(item, maxChars)]));
73
+ }
74
+ return value;
75
+ }
76
+ function identityData(data) {
77
+ const kept = {};
78
+ if (data === null || typeof data !== "object" || Array.isArray(data)) {
79
+ return kept;
80
+ }
81
+ for (const key of LIVE_IDENTITY_KEYS) {
82
+ const value = data[key];
83
+ if (typeof value === "number" || typeof value === "boolean") {
84
+ kept[key] = value;
85
+ }
86
+ else if (typeof value === "string") {
87
+ kept[key] = truncateStrings(value, 256);
88
+ }
89
+ }
90
+ // `actions.requested` places its tool cards from `calls`.
91
+ const calls = data.calls;
92
+ if (Array.isArray(calls)) {
93
+ kept.calls = calls.slice(0, 50).map((call) => identityData(call));
94
+ }
95
+ return kept;
96
+ }
47
97
  /**
48
98
  * The event as it crosses the live wire. Delta events drop the accumulated
49
- * `text` (viewers rebuild it from deltas), and an event over the per-event
50
- * cap keeps only its envelope, marked `liveTruncated`.
99
+ * `text` (viewers rebuild it from deltas). An event over the per-event cap
100
+ * keeps its envelope and `data` with long strings shortened, marked
101
+ * `liveTruncated`; when even that is too large, `data` keeps only the fields
102
+ * viewers need to place the event.
51
103
  */
52
104
  export function toSessionLiveWire(event) {
53
105
  let wire = event;
@@ -58,20 +110,31 @@ export function toSessionLiveWire(event) {
58
110
  wire = { ...wire, data: rest };
59
111
  }
60
112
  }
61
- const serialized = JSON.stringify(wire);
62
- const bytes = utf8Bytes(serialized);
113
+ const bytes = utf8Bytes(JSON.stringify(wire));
63
114
  if (bytes <= SESSION_LIVE_MAX_EVENT_BYTES) {
64
115
  return { wire, bytes };
65
116
  }
66
- const stub = { index: event.index, type: event.type };
117
+ for (const maxChars of LIVE_TRUNCATION_STEPS) {
118
+ const candidate = {
119
+ ...wire,
120
+ data: truncateStrings(wire.data, maxChars),
121
+ liveTruncated: true,
122
+ };
123
+ const candidateBytes = utf8Bytes(JSON.stringify(candidate));
124
+ if (candidateBytes <= SESSION_LIVE_MAX_EVENT_BYTES) {
125
+ return { wire: candidate, bytes: candidateBytes };
126
+ }
127
+ }
128
+ const minimal = { index: event.index, type: event.type };
67
129
  if (typeof event.at === "string")
68
- stub.at = event.at;
130
+ minimal.at = event.at;
69
131
  if (typeof event.turnId === "string")
70
- stub.turnId = event.turnId;
132
+ minimal.turnId = event.turnId;
71
133
  if (typeof event.sessionId === "string")
72
- stub.sessionId = event.sessionId;
73
- stub.liveTruncated = true;
74
- return { wire: stub, bytes: utf8Bytes(JSON.stringify(stub)) };
134
+ minimal.sessionId = event.sessionId;
135
+ minimal.data = identityData(wire.data);
136
+ minimal.liveTruncated = true;
137
+ return { wire: minimal, bytes: utf8Bytes(JSON.stringify(minimal)) };
75
138
  }
76
139
  export function createSessionLivePublisher(options) {
77
140
  const now = options.now ?? Date.now;
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Logical resources shared by the July and control-plane conversation
3
+ * identity suites. Each vector exercises both claim minting and mailbox
4
+ * extraction for one typed conversation.
5
+ *
6
+ * Pure data: server-shared loads this module without importing July runtime
7
+ * code into the control plane.
8
+ */
9
+ type RepoNumberClaim = {
10
+ type: "pr" | "issue" | "origin-pr" | "gitlab-mr" | "bitbucket-pr";
11
+ resource: {
12
+ fullName: string;
13
+ number: number;
14
+ };
15
+ };
16
+ type ConversationIdentityClaim = RepoNumberClaim | {
17
+ type: "thread";
18
+ resource: {
19
+ channelId: string;
20
+ threadTs: string;
21
+ };
22
+ } | {
23
+ type: "deployment";
24
+ resource: {
25
+ deploymentId: string;
26
+ };
27
+ } | {
28
+ type: "change-monitor-checkpoint";
29
+ resource: {
30
+ checkpointName: string;
31
+ };
32
+ } | {
33
+ type: "factory-issue";
34
+ resource: {
35
+ issueName: string;
36
+ };
37
+ };
38
+ export type ConversationIdentityVector = {
39
+ name: string;
40
+ kind: "github" | "slack" | "origin" | "gitlab" | "bitbucket" | "deployments" | "change_monitors" | "issues";
41
+ claim: ConversationIdentityClaim;
42
+ eventName: string;
43
+ payload: Record<string, unknown>;
44
+ expectedKey: string;
45
+ };
46
+ export declare const CONVERSATION_IDENTITY_VECTORS: readonly ConversationIdentityVector[];
47
+ export {};
48
+ //# sourceMappingURL=conversation-identity-vectors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation-identity-vectors.d.ts","sourceRoot":"","sources":["../../../src/internal/testing/conversation-identity-vectors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,IAAI,GAAG,OAAO,GAAG,WAAW,GAAG,WAAW,GAAG,cAAc,CAAC;IAClE,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD,CAAC;AAEF,KAAK,yBAAyB,GAC1B,eAAe,GACf;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD,GACD;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;CACpC,GACD;IACE,IAAI,EAAE,2BAA2B,CAAC;IAClC,QAAQ,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CACtC,GACD;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACjC,CAAC;AAEN,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EACA,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,aAAa,GACb,iBAAiB,GACjB,QAAQ,CAAC;IACb,KAAK,EAAE,yBAAyB,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,SAAS,0BAA0B,EA+H9E,CAAC"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Logical resources shared by the July and control-plane conversation
3
+ * identity suites. Each vector exercises both claim minting and mailbox
4
+ * extraction for one typed conversation.
5
+ *
6
+ * Pure data: server-shared loads this module without importing July runtime
7
+ * code into the control plane.
8
+ */
9
+ export const CONVERSATION_IDENTITY_VECTORS = [
10
+ {
11
+ name: "GitHub pull request",
12
+ kind: "github",
13
+ claim: {
14
+ type: "pr",
15
+ resource: { fullName: "Acme/Widgets", number: 12 },
16
+ },
17
+ eventName: "pull_request",
18
+ payload: {
19
+ repository: { full_name: "Acme/Widgets" },
20
+ pull_request: { number: 12 },
21
+ },
22
+ expectedKey: "cont:github-pr:Acme/Widgets#12",
23
+ },
24
+ {
25
+ name: "GitHub issue",
26
+ kind: "github",
27
+ claim: {
28
+ type: "issue",
29
+ resource: { fullName: "Acme/Widgets", number: 34 },
30
+ },
31
+ eventName: "issues",
32
+ payload: {
33
+ repository: { full_name: "Acme/Widgets" },
34
+ issue: { number: 34 },
35
+ },
36
+ expectedKey: "cont:github-issue:Acme/Widgets#34",
37
+ },
38
+ {
39
+ name: "Slack thread",
40
+ kind: "slack",
41
+ claim: {
42
+ type: "thread",
43
+ resource: { channelId: "C123", threadTs: "1719.000" },
44
+ },
45
+ eventName: "message",
46
+ payload: {
47
+ type: "event_callback",
48
+ event: {
49
+ type: "message",
50
+ channel: "C123",
51
+ ts: "1720.000",
52
+ thread_ts: "1719.000",
53
+ },
54
+ },
55
+ expectedKey: "cont:C123:1719.000",
56
+ },
57
+ {
58
+ name: "Origin pull request",
59
+ kind: "origin",
60
+ claim: {
61
+ type: "origin-pr",
62
+ resource: { fullName: "Acme/Widgets", number: 42 },
63
+ },
64
+ eventName: "pull_request.created",
65
+ payload: {
66
+ pullRequest: { number: 42 },
67
+ repository: { name: "Widgets", owner: { slug: "Acme" } },
68
+ },
69
+ expectedKey: "cont:origin-pr:Acme/Widgets#42",
70
+ },
71
+ {
72
+ name: "GitLab merge request",
73
+ kind: "gitlab",
74
+ claim: {
75
+ type: "gitlab-mr",
76
+ resource: { fullName: "Acme/Platform/API", number: 56 },
77
+ },
78
+ eventName: "merge_request",
79
+ payload: {
80
+ project: { path_with_namespace: "Acme/Platform/API" },
81
+ object_attributes: { iid: 56 },
82
+ },
83
+ expectedKey: "cont:gitlab-mr:acme/platform/api!56",
84
+ },
85
+ {
86
+ name: "Bitbucket pull request",
87
+ kind: "bitbucket",
88
+ claim: {
89
+ type: "bitbucket-pr",
90
+ resource: { fullName: "ACME/Widgets", number: 78 },
91
+ },
92
+ eventName: "pullrequest:created",
93
+ payload: {
94
+ repository: { full_name: "ACME/Widgets" },
95
+ pullrequest: { id: 78 },
96
+ },
97
+ expectedKey: "cont:bitbucket-pr:acme/widgets#78",
98
+ },
99
+ {
100
+ name: "deployment",
101
+ kind: "deployments",
102
+ claim: {
103
+ type: "deployment",
104
+ resource: { deploymentId: "dep-90" },
105
+ },
106
+ eventName: "deployment.created",
107
+ payload: { deploymentId: "dep-90" },
108
+ expectedKey: "cont:deployments:dep-90",
109
+ },
110
+ {
111
+ name: "change monitor checkpoint",
112
+ kind: "change_monitors",
113
+ claim: {
114
+ type: "change-monitor-checkpoint",
115
+ resource: {
116
+ checkpointName: "changeMonitors/cm-1/checkpoints/cp-2",
117
+ },
118
+ },
119
+ eventName: "checkpoint.created",
120
+ payload: {
121
+ checkpoint: { name: "changeMonitors/cm-1/checkpoints/cp-2" },
122
+ },
123
+ expectedKey: "cont:change_monitors:changeMonitors/cm-1/checkpoints/cp-2",
124
+ },
125
+ {
126
+ name: "factory issue",
127
+ kind: "issues",
128
+ claim: {
129
+ type: "factory-issue",
130
+ resource: { issueName: "issues/iss-3" },
131
+ },
132
+ eventName: "issue.created",
133
+ payload: { issue: { name: "issues/iss-3" } },
134
+ expectedKey: "cont:issues:issues/iss-3",
135
+ },
136
+ ];