@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.
- package/dist/channels/github/index.d.ts +22 -12
- package/dist/channels/github/index.d.ts.map +1 -1
- package/dist/channels/github/index.js +11 -12
- package/dist/channels/origin/index.d.ts +21 -11
- package/dist/channels/origin/index.d.ts.map +1 -1
- package/dist/channels/origin/index.js +10 -11
- package/dist/docs/404.html +2 -2
- package/dist/docs/assets/{app.CKta5zX1.js → app.CaLG1pPt.js} +4 -4
- package/dist/docs/assets/chunks/{@localSearchIndexroot.DtlCe4t6.js → @localSearchIndexroot.DvlKuIO-.js} +1 -1
- package/dist/docs/assets/chunks/{VPLocalSearchBox.4vRM3EDG.js → VPLocalSearchBox.YsP_2wqD.js} +1 -1
- package/dist/docs/assets/chunks/{arc.CofbA8tA.js → arc.C2j9hR7c.js} +1 -1
- package/dist/docs/assets/chunks/{architectureDiagram-Q4EWVU46.Mt2UV5M-.js → architectureDiagram-Q4EWVU46.C5qkGp7y.js} +1 -1
- package/dist/docs/assets/chunks/{baseUniq.C_W0Aqp4.js → baseUniq.U6GgTHOD.js} +1 -1
- package/dist/docs/assets/chunks/{blockDiagram-DXYQGD6D.dAc4goE-.js → blockDiagram-DXYQGD6D.D51mJop2.js} +1 -1
- package/dist/docs/assets/chunks/{c4Diagram-AHTNJAMY.dnbRC3Dm.js → c4Diagram-AHTNJAMY.w1d6QxV7.js} +1 -1
- package/dist/docs/assets/chunks/channel.BRSFxCcD.js +1 -0
- package/dist/docs/assets/chunks/{chunk-4BX2VUAB.B42ltSTd.js → chunk-4BX2VUAB.B_A815un.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-4TB4RGXK.2GbAul_E.js → chunk-4TB4RGXK.DMrm-ZCb.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-55IACEB6.pjzY-v-B.js → chunk-55IACEB6.8qw6Xdal.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-EDXVE4YY.BB1GXLj2.js → chunk-EDXVE4YY.Cq_nHODn.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-FMBD7UC4.B2WxZkoA.js → chunk-FMBD7UC4.B67ohCYn.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-OYMX7WX6.BMvb2w73.js → chunk-OYMX7WX6.Bo8rQI8F.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-QZHKN3VN.Bmu_2lNr.js → chunk-QZHKN3VN.BERUMfE9.js} +1 -1
- package/dist/docs/assets/chunks/{chunk-YZCP3GAM.Cth65EaC.js → chunk-YZCP3GAM.DWG2tXIX.js} +1 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.Cmtm6WkN.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.Cmtm6WkN.js +1 -0
- package/dist/docs/assets/chunks/clone.JMC96Eo6.js +1 -0
- package/dist/docs/assets/chunks/{cose-bilkent-S5V4N54A.CrfA7Iw_.js → cose-bilkent-S5V4N54A.tezXBs9b.js} +1 -1
- package/dist/docs/assets/chunks/{dagre-KV5264BT.PCD6KQDb.js → dagre-KV5264BT.aSbEUwT7.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-5BDNPKRD.CGNlYlP1.js → diagram-5BDNPKRD.vnT6aJ57.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-G4DWMVQ6.C0cvryPD.js → diagram-G4DWMVQ6.hGYdrDa2.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-MMDJMWI5.DHlkZHNV.js → diagram-MMDJMWI5.CmdSUP6L.js} +1 -1
- package/dist/docs/assets/chunks/{diagram-TYMM5635.DDGqH_4B.js → diagram-TYMM5635.BbAnLEBB.js} +1 -1
- package/dist/docs/assets/chunks/{erDiagram-SMLLAGMA.4gOY_C3v.js → erDiagram-SMLLAGMA.H40W4HWE.js} +1 -1
- package/dist/docs/assets/chunks/{flowDiagram-DWJPFMVM.8i7zsxuh.js → flowDiagram-DWJPFMVM.BFMtUSv-.js} +1 -1
- package/dist/docs/assets/chunks/{ganttDiagram-T4ZO3ILL.BEKHYdM-.js → ganttDiagram-T4ZO3ILL.CbYiu7Dt.js} +1 -1
- package/dist/docs/assets/chunks/{gitGraphDiagram-UUTBAWPF.ACzeLGiB.js → gitGraphDiagram-UUTBAWPF.Cyc5mzZD.js} +1 -1
- package/dist/docs/assets/chunks/{graph.08C3hS6m.js → graph.BRptDG1H.js} +1 -1
- package/dist/docs/assets/chunks/{infoDiagram-42DDH7IO.D8R9obOH.js → infoDiagram-42DDH7IO.Bz6KCA3a.js} +1 -1
- package/dist/docs/assets/chunks/{ishikawaDiagram-UXIWVN3A.CmgYpCWL.js → ishikawaDiagram-UXIWVN3A.DDJ_7_Fq.js} +1 -1
- package/dist/docs/assets/chunks/{journeyDiagram-VCZTEJTY.DUzjGfoZ.js → journeyDiagram-VCZTEJTY.D0t_ltlb.js} +1 -1
- package/dist/docs/assets/chunks/{kanban-definition-6JOO6SKY.DbcW2iZ0.js → kanban-definition-6JOO6SKY.DyyNsMfi.js} +1 -1
- package/dist/docs/assets/chunks/{layout.BaDEpJzu.js → layout.Cbxq-Rhp.js} +1 -1
- package/dist/docs/assets/chunks/{linear.B_zRQgCU.js → linear.DxGYL0MP.js} +1 -1
- package/dist/docs/assets/chunks/{min.BYscCdSu.js → min.DA5KL8wu.js} +1 -1
- package/dist/docs/assets/chunks/{mindmap-definition-QFDTVHPH.Ggu0jg86.js → mindmap-definition-QFDTVHPH.Bc72Utls.js} +1 -1
- package/dist/docs/assets/chunks/{pieDiagram-DEJITSTG.D_q4SVDT.js → pieDiagram-DEJITSTG.BtpHnIB_.js} +1 -1
- package/dist/docs/assets/chunks/{quadrantDiagram-34T5L4WZ.D3zGj5ok.js → quadrantDiagram-34T5L4WZ.Cx4oCSRR.js} +1 -1
- package/dist/docs/assets/chunks/{requirementDiagram-MS252O5E.DVTg7zr2.js → requirementDiagram-MS252O5E.BC0hXWlW.js} +1 -1
- package/dist/docs/assets/chunks/{sankeyDiagram-XADWPNL6.D3X8jm57.js → sankeyDiagram-XADWPNL6.Dg8T1SEp.js} +1 -1
- package/dist/docs/assets/chunks/{sequenceDiagram-FGHM5R23.Dpjai9YP.js → sequenceDiagram-FGHM5R23.CWSdHYAF.js} +1 -1
- package/dist/docs/assets/chunks/{stateDiagram-FHFEXIEX.D_AbQBuP.js → stateDiagram-FHFEXIEX.0MVPRI28.js} +1 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.N4Am6sXd.js +1 -0
- package/dist/docs/assets/chunks/{theme.BcgOnbZ6.js → theme.DO1avLBn.js} +2 -2
- package/dist/docs/assets/chunks/{timeline-definition-GMOUNBTQ.Cp3DKBe2.js → timeline-definition-GMOUNBTQ.BuRinAVi.js} +1 -1
- package/dist/docs/assets/chunks/{vennDiagram-DHZGUBPP.Bcvg-Aqu.js → vennDiagram-DHZGUBPP.DXf0PCoJ.js} +1 -1
- package/dist/docs/assets/chunks/{wardley-RL74JXVD.CCpdcUSq.js → wardley-RL74JXVD._eATmGtu.js} +1 -1
- package/dist/docs/assets/chunks/{wardleyDiagram-NUSXRM2D.L0yehCc5.js → wardleyDiagram-NUSXRM2D.T4ThngYV.js} +1 -1
- package/dist/docs/assets/chunks/{xychartDiagram-5P7HB3ND.Cw8-tJmw.js → xychartDiagram-5P7HB3ND.b4pZF3D5.js} +1 -1
- package/dist/docs/assets/{reference_skills.md.ClkMoQsV.js → reference_skills.md.C0guGcH0.js} +3 -3
- package/dist/docs/building-with-agents.html +35 -35
- package/dist/docs/deployment.html +35 -35
- package/dist/docs/evals.html +35 -35
- package/dist/docs/guides/agent-to-agent.html +35 -35
- package/dist/docs/guides/bitbucket.html +35 -35
- package/dist/docs/guides/cloud-agents.html +35 -35
- package/dist/docs/guides/convert-automation.html +35 -35
- package/dist/docs/guides/github.html +35 -35
- package/dist/docs/guides/gitlab.html +35 -35
- package/dist/docs/guides/grokbot-agents.html +35 -35
- package/dist/docs/guides/hooks.html +35 -35
- package/dist/docs/guides/improve.html +35 -35
- package/dist/docs/guides/jev.html +35 -35
- package/dist/docs/guides/mcp-oauth.html +35 -35
- package/dist/docs/guides/migrate.html +35 -35
- package/dist/docs/guides/opentelemetry.html +35 -35
- package/dist/docs/guides/slack.html +35 -35
- package/dist/docs/guides/webhooks.html +35 -35
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +35 -35
- package/dist/docs/index.html +35 -35
- package/dist/docs/quickstart.html +35 -35
- package/dist/docs/reference/agent-config.html +35 -35
- package/dist/docs/reference/artifacts.html +35 -35
- package/dist/docs/reference/channels.html +35 -35
- package/dist/docs/reference/cli.html +35 -35
- package/dist/docs/reference/connections.html +35 -35
- package/dist/docs/reference/evals.html +35 -35
- package/dist/docs/reference/extensions.html +35 -35
- package/dist/docs/reference/hooks.html +35 -35
- package/dist/docs/reference/http-api.html +35 -35
- package/dist/docs/reference/instructions.html +35 -35
- package/dist/docs/reference/playground.html +35 -35
- package/dist/docs/reference/project-layout.html +35 -35
- package/dist/docs/reference/prompt.html +35 -35
- package/dist/docs/reference/schedules.html +35 -35
- package/dist/docs/reference/sessions.html +35 -35
- package/dist/docs/reference/skills.html +38 -38
- package/dist/docs/reference/subagents.html +35 -35
- package/dist/docs/reference/tools.html +35 -35
- package/dist/docs/templates/agentic-owners.html +35 -35
- package/dist/docs/templates/grokbot-agents.html +35 -35
- package/dist/docs/templates/security-reviewer.html +35 -35
- package/dist/docs/templates/thermo-quality-review.html +35 -35
- package/dist/docs/templates/thermo-review.html +35 -35
- package/dist/docs/templates/triage.html +35 -35
- package/dist/docs/troubleshooting.html +35 -35
- package/dist/internal/authored-alias-hooks.d.ts +4 -3
- package/dist/internal/authored-alias-hooks.d.ts.map +1 -1
- package/dist/internal/authored-alias-hooks.js +15 -6
- package/dist/internal/authored-loaders.d.ts.map +1 -1
- package/dist/internal/authored-loaders.js +21 -5
- package/dist/internal/deploy-manifest.d.ts +14 -0
- package/dist/internal/deploy-manifest.d.ts.map +1 -1
- package/dist/internal/deploy-manifest.js +23 -0
- package/dist/internal/evals-client.d.ts.map +1 -1
- package/dist/internal/hosted-delivery-protocol.d.ts +24 -0
- package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
- package/dist/internal/hosted-delivery-protocol.js +44 -0
- package/dist/internal/hosted-delivery.d.ts +6 -0
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +41 -4
- package/dist/internal/hosted-managed-automation.d.ts +3 -3
- package/dist/internal/hosted-managed-automation.js +3 -3
- package/dist/internal/reminder-runner.d.ts.map +1 -1
- package/dist/internal/schedule-runner.d.ts +13 -2
- package/dist/internal/schedule-runner.d.ts.map +1 -1
- package/dist/internal/schedule-runner.js +42 -3
- package/dist/internal/sdk-runner.d.ts +2 -1
- package/dist/internal/sdk-runner.d.ts.map +1 -1
- package/dist/internal/sdk-runner.js +7 -2
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +8 -4
- package/dist/internal/session-live-publisher.d.ts +4 -2
- package/dist/internal/session-live-publisher.d.ts.map +1 -1
- package/dist/internal/session-live-publisher.js +73 -10
- package/dist/internal/testing/conversation-identity-vectors.d.ts +48 -0
- package/dist/internal/testing/conversation-identity-vectors.d.ts.map +1 -0
- package/dist/internal/testing/conversation-identity-vectors.js +136 -0
- package/dist/playground/assets/index-CzttDc-d.css +1 -0
- package/dist/playground/assets/{index-HN5lOuAX.js → index-DIiKbZ25.js} +2 -2
- package/dist/playground/index.html +2 -2
- package/dist/types.d.ts +6 -4
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/docs/assets/chunks/channel.DpljPUVU.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.DFNHq2OM.js +0 -1
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.DFNHq2OM.js +0 -1
- package/dist/docs/assets/chunks/clone.DssygCzX.js +0 -1
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.CWKWRxRx.js +0 -1
- package/dist/playground/assets/index-JY1wKCMg.css +0 -1
- /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)
|
|
50
|
-
*
|
|
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
|
|
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
|
|
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
|
-
|
|
130
|
+
minimal.at = event.at;
|
|
69
131
|
if (typeof event.turnId === "string")
|
|
70
|
-
|
|
132
|
+
minimal.turnId = event.turnId;
|
|
71
133
|
if (typeof event.sessionId === "string")
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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
|
+
];
|