@sjawhar/pi-legion-envoy 0.16.0 → 0.16.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/envoy.js +60 -146
- package/dist/legion.js +60 -146
- package/package.json +1 -1
package/dist/envoy.js
CHANGED
|
@@ -30785,147 +30785,37 @@ var ChildStatusPayloadSchema = object({
|
|
|
30785
30785
|
from: string2().optional(),
|
|
30786
30786
|
to: string2().optional()
|
|
30787
30787
|
});
|
|
30788
|
-
|
|
30789
|
-
|
|
30790
|
-
|
|
30791
|
-
|
|
30792
|
-
|
|
30793
|
-
|
|
30794
|
-
|
|
30795
|
-
|
|
30796
|
-
|
|
30797
|
-
|
|
30798
|
-
|
|
30799
|
-
|
|
30800
|
-
|
|
30801
|
-
|
|
30802
|
-
|
|
30803
|
-
|
|
30804
|
-
|
|
30805
|
-
|
|
30806
|
-
|
|
30807
|
-
|
|
30808
|
-
|
|
30809
|
-
|
|
30810
|
-
|
|
30811
|
-
|
|
30812
|
-
lines.push(`Artifact: ${name}`);
|
|
30813
|
-
break;
|
|
30814
|
-
}
|
|
30815
|
-
case "artifact.version": {
|
|
30816
|
-
const parsed = ArtifactVersionPayloadSchema.safeParse(event.payload);
|
|
30817
|
-
if (!parsed.success)
|
|
30818
|
-
break;
|
|
30819
|
-
const version = parsed.data.version;
|
|
30820
|
-
if (parsed.data.name)
|
|
30821
|
-
lines.push(`Artifact: ${parsed.data.name}`);
|
|
30822
|
-
if (version?.number !== undefined)
|
|
30823
|
-
lines.push(`Version: ${version.number}`);
|
|
30824
|
-
if (version?.summary)
|
|
30825
|
-
lines.push(`Summary: ${version.summary}`);
|
|
30826
|
-
if (parsed.data.diff)
|
|
30827
|
-
lines.push("Diff:", parsed.data.diff);
|
|
30828
|
-
break;
|
|
30829
|
-
}
|
|
30830
|
-
case "ask.opened":
|
|
30831
|
-
case "ask.answered": {
|
|
30832
|
-
const parsed = AskPayloadSchema.safeParse(event.payload);
|
|
30833
|
-
if (!parsed.success)
|
|
30834
|
-
break;
|
|
30835
|
-
if (parsed.data.question)
|
|
30836
|
-
lines.push(`Question: ${parsed.data.question}`);
|
|
30837
|
-
if (event.type === "ask.opened") {
|
|
30838
|
-
const options = (parsed.data.options ?? []).map((option) => option.label).filter((label) => label !== undefined);
|
|
30839
|
-
if (options.length > 0)
|
|
30840
|
-
lines.push(`Options: ${options.join(", ")}`);
|
|
30841
|
-
break;
|
|
30842
|
-
}
|
|
30843
|
-
const answer = parsed.data.answer;
|
|
30844
|
-
lines.push(`Selected: ${answer?.selected?.join(", ") || "none"}`);
|
|
30845
|
-
if (answer?.text)
|
|
30846
|
-
lines.push(`Text: ${answer.text}`);
|
|
30847
|
-
break;
|
|
30848
|
-
}
|
|
30849
|
-
case "comment.created":
|
|
30850
|
-
case "comment.resolved": {
|
|
30851
|
-
const parsed = CommentPayloadSchema.safeParse(event.payload);
|
|
30852
|
-
if (!parsed.success)
|
|
30853
|
-
break;
|
|
30854
|
-
const quote = parsed.data.anchor?.quote;
|
|
30855
|
-
if (parsed.data.artifact_name)
|
|
30856
|
-
lines.push(`Artifact: ${parsed.data.artifact_name}`);
|
|
30857
|
-
if (quote)
|
|
30858
|
-
lines.push(`> ${quote}`);
|
|
30859
|
-
if (parsed.data.reply_to)
|
|
30860
|
-
lines.push(`Reply chain: ${parsed.data.reply_to}`);
|
|
30861
|
-
if (parsed.data.body)
|
|
30862
|
-
lines.push(`Body: ${parsed.data.body}`);
|
|
30863
|
-
break;
|
|
30864
|
-
}
|
|
30865
|
-
case "suggestion.accepted":
|
|
30866
|
-
case "suggestion.rejected": {
|
|
30867
|
-
const parsed = CommentPayloadSchema.safeParse(event.payload);
|
|
30868
|
-
if (!parsed.success)
|
|
30869
|
-
break;
|
|
30870
|
-
const quote = parsed.data.anchor?.quote;
|
|
30871
|
-
const replacement = parsed.data.suggestion?.replace_with;
|
|
30872
|
-
if (parsed.data.artifact_name)
|
|
30873
|
-
lines.push(`Artifact: ${parsed.data.artifact_name}`);
|
|
30874
|
-
if (quote)
|
|
30875
|
-
lines.push(`> ${quote}`);
|
|
30876
|
-
if (quote && replacement)
|
|
30877
|
-
lines.push(`${quote} \u2192 ${replacement}`);
|
|
30878
|
-
break;
|
|
30879
|
-
}
|
|
30880
|
-
case "message.created": {
|
|
30881
|
-
const parsed = MessagePayloadSchema.safeParse(event.payload);
|
|
30882
|
-
const body = parsed.success ? parsed.data.body : undefined;
|
|
30883
|
-
if (body)
|
|
30884
|
-
lines.push(`Body: ${body}`);
|
|
30885
|
-
break;
|
|
30886
|
-
}
|
|
30887
|
-
case "child.status": {
|
|
30888
|
-
const parsed = ChildStatusPayloadSchema.safeParse(event.payload);
|
|
30889
|
-
if (!parsed.success)
|
|
30890
|
-
break;
|
|
30891
|
-
const { child_key: child, from, to } = parsed.data;
|
|
30892
|
-
if (child && from && to)
|
|
30893
|
-
lines.push(`Child: ${child} ${from} \u2192 ${to}`);
|
|
30894
|
-
break;
|
|
30895
|
-
}
|
|
30896
|
-
}
|
|
30897
|
-
return lines;
|
|
30898
|
-
}
|
|
30899
|
-
function renderDispatch(envelope, sessionID) {
|
|
30900
|
-
const invalid = () => ({
|
|
30901
|
-
skip: false,
|
|
30902
|
-
content: "dispatch: invalid event",
|
|
30903
|
-
envelope
|
|
30904
|
-
});
|
|
30905
|
-
if (envelope.payload === undefined)
|
|
30906
|
-
return invalid();
|
|
30907
|
-
let rawEvent;
|
|
30788
|
+
var DISPATCH_PAYLOAD_SCHEMAS = {
|
|
30789
|
+
"issue.created": IssuePayloadSchema,
|
|
30790
|
+
"issue.updated": IssuePayloadSchema,
|
|
30791
|
+
"issue.closed": IssuePayloadSchema,
|
|
30792
|
+
"artifact.created": ArtifactCreatedPayloadSchema,
|
|
30793
|
+
"artifact.version": ArtifactVersionPayloadSchema,
|
|
30794
|
+
"ask.opened": AskPayloadSchema,
|
|
30795
|
+
"ask.answered": AskPayloadSchema,
|
|
30796
|
+
"comment.created": CommentPayloadSchema,
|
|
30797
|
+
"comment.resolved": CommentPayloadSchema,
|
|
30798
|
+
"suggestion.accepted": CommentPayloadSchema,
|
|
30799
|
+
"suggestion.rejected": CommentPayloadSchema,
|
|
30800
|
+
"message.created": MessagePayloadSchema,
|
|
30801
|
+
"child.status": ChildStatusPayloadSchema
|
|
30802
|
+
};
|
|
30803
|
+
function dispatchPayload(event) {
|
|
30804
|
+
const schema = DISPATCH_PAYLOAD_SCHEMAS[event.type];
|
|
30805
|
+
if (schema === undefined)
|
|
30806
|
+
return event.payload;
|
|
30807
|
+
const parsed = schema.safeParse(event.payload);
|
|
30808
|
+
return parsed.success ? parsed.data : event.payload;
|
|
30809
|
+
}
|
|
30810
|
+
function parseDispatchFrame(rawPayload) {
|
|
30811
|
+
let value;
|
|
30908
30812
|
try {
|
|
30909
|
-
|
|
30813
|
+
value = JSON.parse(rawPayload);
|
|
30910
30814
|
} catch {
|
|
30911
|
-
return
|
|
30912
|
-
}
|
|
30913
|
-
const parsed = DispatchEventSchema.safeParse(rawEvent);
|
|
30914
|
-
if (!parsed.success)
|
|
30915
|
-
return invalid();
|
|
30916
|
-
const event = parsed.data;
|
|
30917
|
-
if (event.actor.kind === "session" && event.actor.id === sessionID) {
|
|
30918
|
-
return { skip: true, content: "", envelope };
|
|
30815
|
+
return { raw: rawPayload };
|
|
30919
30816
|
}
|
|
30920
|
-
|
|
30921
|
-
|
|
30922
|
-
content: [
|
|
30923
|
-
`dispatch ${event.issue_key} \xB7 ${event.type} \xB7 by ${dispatchActorLabel(event.actor)}`,
|
|
30924
|
-
...dispatchBody(event)
|
|
30925
|
-
].join(`
|
|
30926
|
-
`),
|
|
30927
|
-
envelope
|
|
30928
|
-
};
|
|
30817
|
+
const parsed = DispatchEventSchema.safeParse(value);
|
|
30818
|
+
return parsed.success ? { event: parsed.data } : { raw: value };
|
|
30929
30819
|
}
|
|
30930
30820
|
function inboundTimestamp(milliseconds) {
|
|
30931
30821
|
if (milliseconds === undefined)
|
|
@@ -30961,13 +30851,31 @@ function renderInbound(raw, sessionID, subject) {
|
|
|
30961
30851
|
const data = tolerant.data;
|
|
30962
30852
|
envelope = { ...data, source: data.source ?? "unknown" };
|
|
30963
30853
|
}
|
|
30854
|
+
let dispatchEvent;
|
|
30855
|
+
let dispatchIssue;
|
|
30856
|
+
const dispatchRendered = envelope.source === "dispatch" && envelope.payload !== undefined;
|
|
30964
30857
|
if (envelope.source === "dispatch") {
|
|
30965
|
-
|
|
30966
|
-
|
|
30967
|
-
|
|
30858
|
+
if (envelope.payload === undefined) {
|
|
30859
|
+
dispatchIssue = "payload";
|
|
30860
|
+
} else {
|
|
30861
|
+
const frame = parseDispatchFrame(envelope.payload);
|
|
30862
|
+
if ("event" in frame) {
|
|
30863
|
+
if (frame.event.actor.kind === "session" && frame.event.actor.id === sessionID) {
|
|
30864
|
+
return { skip: true, content: "", envelope };
|
|
30865
|
+
}
|
|
30866
|
+
dispatchEvent = {
|
|
30867
|
+
issue_key: frame.event.issue_key,
|
|
30868
|
+
type: frame.event.type,
|
|
30869
|
+
actor: frame.event.actor,
|
|
30870
|
+
payload: dispatchPayload(frame.event)
|
|
30871
|
+
};
|
|
30872
|
+
} else {
|
|
30873
|
+
dispatchEvent = frame.raw;
|
|
30874
|
+
}
|
|
30875
|
+
}
|
|
30968
30876
|
}
|
|
30969
30877
|
let parsedPayload;
|
|
30970
|
-
if (envelope.payload !== undefined && (envelope.source === "github" || envelope.payload !== envelope.payload_summary)) {
|
|
30878
|
+
if (!dispatchRendered && envelope.payload !== undefined && (envelope.source === "github" || envelope.payload !== envelope.payload_summary)) {
|
|
30971
30879
|
try {
|
|
30972
30880
|
parsedPayload = JSON.parse(envelope.payload);
|
|
30973
30881
|
} catch {
|
|
@@ -30975,7 +30883,7 @@ function renderInbound(raw, sessionID, subject) {
|
|
|
30975
30883
|
}
|
|
30976
30884
|
}
|
|
30977
30885
|
const payloadSummary = envelope.payload_summary ?? "unknown";
|
|
30978
|
-
const message = envelope.payload !== undefined && envelope.payload !== envelope.payload_summary ? parsedPayload : undefined;
|
|
30886
|
+
const message = !dispatchRendered && envelope.payload !== undefined && envelope.payload !== envelope.payload_summary ? parsedPayload : undefined;
|
|
30979
30887
|
const summaryIsHead = typeof message === "string" && envelope.payload_summary !== undefined && message.startsWith(envelope.payload_summary.endsWith("\u2026") ? envelope.payload_summary.slice(0, -1) : envelope.payload_summary);
|
|
30980
30888
|
const body = `${envelope.payload_summary ?? ""}
|
|
30981
30889
|
${envelope.payload ?? ""}`;
|
|
@@ -30989,7 +30897,11 @@ ${envelope.payload ?? ""}`;
|
|
|
30989
30897
|
const role = envelope.sender?.roles?.[0];
|
|
30990
30898
|
const reply = replyWith(envelope);
|
|
30991
30899
|
const sourceIssue = parseIssues.includes("source") || KNOWN_SOURCES[envelope.source] !== undefined ? undefined : `source=${envelope.source}`;
|
|
30992
|
-
const unrecognised = [
|
|
30900
|
+
const unrecognised = [
|
|
30901
|
+
...parseIssues,
|
|
30902
|
+
...sourceIssue === undefined ? [] : [sourceIssue],
|
|
30903
|
+
...dispatchIssue === undefined ? [] : [dispatchIssue]
|
|
30904
|
+
].join(", ") || undefined;
|
|
30993
30905
|
const rendered = {
|
|
30994
30906
|
...envelope.topic === agentSubject(sessionID) ? { to: `you (${sessionID.slice(0, 4)}\u2026)` } : {},
|
|
30995
30907
|
from: senderLabel(envelope),
|
|
@@ -31004,8 +30916,10 @@ ${envelope.payload ?? ""}`;
|
|
|
31004
30916
|
...role === undefined ? {} : {
|
|
31005
30917
|
reply_role: `envoy_publish(topic="notifications.role.${role}", message="...")`
|
|
31006
30918
|
},
|
|
31007
|
-
...
|
|
31008
|
-
|
|
30919
|
+
...dispatchRendered ? { dispatch: dispatchEvent } : {
|
|
30920
|
+
...summaryIsHead ? {} : { summary: payloadSummary },
|
|
30921
|
+
...message === undefined ? {} : { message }
|
|
30922
|
+
},
|
|
31009
30923
|
...foreignSession === undefined ? {} : {
|
|
31010
30924
|
note: `body names session ${foreignSession}; the sender is ${envelope.source_session ?? "unknown"}`
|
|
31011
30925
|
},
|
package/dist/legion.js
CHANGED
|
@@ -31282,147 +31282,37 @@ var ChildStatusPayloadSchema = object({
|
|
|
31282
31282
|
from: string2().optional(),
|
|
31283
31283
|
to: string2().optional()
|
|
31284
31284
|
});
|
|
31285
|
-
|
|
31286
|
-
|
|
31287
|
-
|
|
31288
|
-
|
|
31289
|
-
|
|
31290
|
-
|
|
31291
|
-
|
|
31292
|
-
|
|
31293
|
-
|
|
31294
|
-
|
|
31295
|
-
|
|
31296
|
-
|
|
31297
|
-
|
|
31298
|
-
|
|
31299
|
-
|
|
31300
|
-
|
|
31301
|
-
|
|
31302
|
-
|
|
31303
|
-
|
|
31304
|
-
|
|
31305
|
-
|
|
31306
|
-
|
|
31307
|
-
|
|
31308
|
-
|
|
31309
|
-
lines.push(`Artifact: ${name}`);
|
|
31310
|
-
break;
|
|
31311
|
-
}
|
|
31312
|
-
case "artifact.version": {
|
|
31313
|
-
const parsed = ArtifactVersionPayloadSchema.safeParse(event.payload);
|
|
31314
|
-
if (!parsed.success)
|
|
31315
|
-
break;
|
|
31316
|
-
const version = parsed.data.version;
|
|
31317
|
-
if (parsed.data.name)
|
|
31318
|
-
lines.push(`Artifact: ${parsed.data.name}`);
|
|
31319
|
-
if (version?.number !== undefined)
|
|
31320
|
-
lines.push(`Version: ${version.number}`);
|
|
31321
|
-
if (version?.summary)
|
|
31322
|
-
lines.push(`Summary: ${version.summary}`);
|
|
31323
|
-
if (parsed.data.diff)
|
|
31324
|
-
lines.push("Diff:", parsed.data.diff);
|
|
31325
|
-
break;
|
|
31326
|
-
}
|
|
31327
|
-
case "ask.opened":
|
|
31328
|
-
case "ask.answered": {
|
|
31329
|
-
const parsed = AskPayloadSchema.safeParse(event.payload);
|
|
31330
|
-
if (!parsed.success)
|
|
31331
|
-
break;
|
|
31332
|
-
if (parsed.data.question)
|
|
31333
|
-
lines.push(`Question: ${parsed.data.question}`);
|
|
31334
|
-
if (event.type === "ask.opened") {
|
|
31335
|
-
const options = (parsed.data.options ?? []).map((option) => option.label).filter((label) => label !== undefined);
|
|
31336
|
-
if (options.length > 0)
|
|
31337
|
-
lines.push(`Options: ${options.join(", ")}`);
|
|
31338
|
-
break;
|
|
31339
|
-
}
|
|
31340
|
-
const answer = parsed.data.answer;
|
|
31341
|
-
lines.push(`Selected: ${answer?.selected?.join(", ") || "none"}`);
|
|
31342
|
-
if (answer?.text)
|
|
31343
|
-
lines.push(`Text: ${answer.text}`);
|
|
31344
|
-
break;
|
|
31345
|
-
}
|
|
31346
|
-
case "comment.created":
|
|
31347
|
-
case "comment.resolved": {
|
|
31348
|
-
const parsed = CommentPayloadSchema.safeParse(event.payload);
|
|
31349
|
-
if (!parsed.success)
|
|
31350
|
-
break;
|
|
31351
|
-
const quote = parsed.data.anchor?.quote;
|
|
31352
|
-
if (parsed.data.artifact_name)
|
|
31353
|
-
lines.push(`Artifact: ${parsed.data.artifact_name}`);
|
|
31354
|
-
if (quote)
|
|
31355
|
-
lines.push(`> ${quote}`);
|
|
31356
|
-
if (parsed.data.reply_to)
|
|
31357
|
-
lines.push(`Reply chain: ${parsed.data.reply_to}`);
|
|
31358
|
-
if (parsed.data.body)
|
|
31359
|
-
lines.push(`Body: ${parsed.data.body}`);
|
|
31360
|
-
break;
|
|
31361
|
-
}
|
|
31362
|
-
case "suggestion.accepted":
|
|
31363
|
-
case "suggestion.rejected": {
|
|
31364
|
-
const parsed = CommentPayloadSchema.safeParse(event.payload);
|
|
31365
|
-
if (!parsed.success)
|
|
31366
|
-
break;
|
|
31367
|
-
const quote = parsed.data.anchor?.quote;
|
|
31368
|
-
const replacement = parsed.data.suggestion?.replace_with;
|
|
31369
|
-
if (parsed.data.artifact_name)
|
|
31370
|
-
lines.push(`Artifact: ${parsed.data.artifact_name}`);
|
|
31371
|
-
if (quote)
|
|
31372
|
-
lines.push(`> ${quote}`);
|
|
31373
|
-
if (quote && replacement)
|
|
31374
|
-
lines.push(`${quote} \u2192 ${replacement}`);
|
|
31375
|
-
break;
|
|
31376
|
-
}
|
|
31377
|
-
case "message.created": {
|
|
31378
|
-
const parsed = MessagePayloadSchema.safeParse(event.payload);
|
|
31379
|
-
const body = parsed.success ? parsed.data.body : undefined;
|
|
31380
|
-
if (body)
|
|
31381
|
-
lines.push(`Body: ${body}`);
|
|
31382
|
-
break;
|
|
31383
|
-
}
|
|
31384
|
-
case "child.status": {
|
|
31385
|
-
const parsed = ChildStatusPayloadSchema.safeParse(event.payload);
|
|
31386
|
-
if (!parsed.success)
|
|
31387
|
-
break;
|
|
31388
|
-
const { child_key: child, from, to } = parsed.data;
|
|
31389
|
-
if (child && from && to)
|
|
31390
|
-
lines.push(`Child: ${child} ${from} \u2192 ${to}`);
|
|
31391
|
-
break;
|
|
31392
|
-
}
|
|
31393
|
-
}
|
|
31394
|
-
return lines;
|
|
31395
|
-
}
|
|
31396
|
-
function renderDispatch(envelope, sessionID) {
|
|
31397
|
-
const invalid = () => ({
|
|
31398
|
-
skip: false,
|
|
31399
|
-
content: "dispatch: invalid event",
|
|
31400
|
-
envelope
|
|
31401
|
-
});
|
|
31402
|
-
if (envelope.payload === undefined)
|
|
31403
|
-
return invalid();
|
|
31404
|
-
let rawEvent;
|
|
31285
|
+
var DISPATCH_PAYLOAD_SCHEMAS = {
|
|
31286
|
+
"issue.created": IssuePayloadSchema,
|
|
31287
|
+
"issue.updated": IssuePayloadSchema,
|
|
31288
|
+
"issue.closed": IssuePayloadSchema,
|
|
31289
|
+
"artifact.created": ArtifactCreatedPayloadSchema,
|
|
31290
|
+
"artifact.version": ArtifactVersionPayloadSchema,
|
|
31291
|
+
"ask.opened": AskPayloadSchema,
|
|
31292
|
+
"ask.answered": AskPayloadSchema,
|
|
31293
|
+
"comment.created": CommentPayloadSchema,
|
|
31294
|
+
"comment.resolved": CommentPayloadSchema,
|
|
31295
|
+
"suggestion.accepted": CommentPayloadSchema,
|
|
31296
|
+
"suggestion.rejected": CommentPayloadSchema,
|
|
31297
|
+
"message.created": MessagePayloadSchema,
|
|
31298
|
+
"child.status": ChildStatusPayloadSchema
|
|
31299
|
+
};
|
|
31300
|
+
function dispatchPayload(event) {
|
|
31301
|
+
const schema = DISPATCH_PAYLOAD_SCHEMAS[event.type];
|
|
31302
|
+
if (schema === undefined)
|
|
31303
|
+
return event.payload;
|
|
31304
|
+
const parsed = schema.safeParse(event.payload);
|
|
31305
|
+
return parsed.success ? parsed.data : event.payload;
|
|
31306
|
+
}
|
|
31307
|
+
function parseDispatchFrame(rawPayload) {
|
|
31308
|
+
let value;
|
|
31405
31309
|
try {
|
|
31406
|
-
|
|
31310
|
+
value = JSON.parse(rawPayload);
|
|
31407
31311
|
} catch {
|
|
31408
|
-
return
|
|
31409
|
-
}
|
|
31410
|
-
const parsed = DispatchEventSchema.safeParse(rawEvent);
|
|
31411
|
-
if (!parsed.success)
|
|
31412
|
-
return invalid();
|
|
31413
|
-
const event = parsed.data;
|
|
31414
|
-
if (event.actor.kind === "session" && event.actor.id === sessionID) {
|
|
31415
|
-
return { skip: true, content: "", envelope };
|
|
31312
|
+
return { raw: rawPayload };
|
|
31416
31313
|
}
|
|
31417
|
-
|
|
31418
|
-
|
|
31419
|
-
content: [
|
|
31420
|
-
`dispatch ${event.issue_key} \xB7 ${event.type} \xB7 by ${dispatchActorLabel(event.actor)}`,
|
|
31421
|
-
...dispatchBody(event)
|
|
31422
|
-
].join(`
|
|
31423
|
-
`),
|
|
31424
|
-
envelope
|
|
31425
|
-
};
|
|
31314
|
+
const parsed = DispatchEventSchema.safeParse(value);
|
|
31315
|
+
return parsed.success ? { event: parsed.data } : { raw: value };
|
|
31426
31316
|
}
|
|
31427
31317
|
function inboundTimestamp(milliseconds) {
|
|
31428
31318
|
if (milliseconds === undefined)
|
|
@@ -31458,13 +31348,31 @@ function renderInbound(raw, sessionID, subject) {
|
|
|
31458
31348
|
const data = tolerant.data;
|
|
31459
31349
|
envelope = { ...data, source: data.source ?? "unknown" };
|
|
31460
31350
|
}
|
|
31351
|
+
let dispatchEvent;
|
|
31352
|
+
let dispatchIssue;
|
|
31353
|
+
const dispatchRendered = envelope.source === "dispatch" && envelope.payload !== undefined;
|
|
31461
31354
|
if (envelope.source === "dispatch") {
|
|
31462
|
-
|
|
31463
|
-
|
|
31464
|
-
|
|
31355
|
+
if (envelope.payload === undefined) {
|
|
31356
|
+
dispatchIssue = "payload";
|
|
31357
|
+
} else {
|
|
31358
|
+
const frame = parseDispatchFrame(envelope.payload);
|
|
31359
|
+
if ("event" in frame) {
|
|
31360
|
+
if (frame.event.actor.kind === "session" && frame.event.actor.id === sessionID) {
|
|
31361
|
+
return { skip: true, content: "", envelope };
|
|
31362
|
+
}
|
|
31363
|
+
dispatchEvent = {
|
|
31364
|
+
issue_key: frame.event.issue_key,
|
|
31365
|
+
type: frame.event.type,
|
|
31366
|
+
actor: frame.event.actor,
|
|
31367
|
+
payload: dispatchPayload(frame.event)
|
|
31368
|
+
};
|
|
31369
|
+
} else {
|
|
31370
|
+
dispatchEvent = frame.raw;
|
|
31371
|
+
}
|
|
31372
|
+
}
|
|
31465
31373
|
}
|
|
31466
31374
|
let parsedPayload;
|
|
31467
|
-
if (envelope.payload !== undefined && (envelope.source === "github" || envelope.payload !== envelope.payload_summary)) {
|
|
31375
|
+
if (!dispatchRendered && envelope.payload !== undefined && (envelope.source === "github" || envelope.payload !== envelope.payload_summary)) {
|
|
31468
31376
|
try {
|
|
31469
31377
|
parsedPayload = JSON.parse(envelope.payload);
|
|
31470
31378
|
} catch {
|
|
@@ -31472,7 +31380,7 @@ function renderInbound(raw, sessionID, subject) {
|
|
|
31472
31380
|
}
|
|
31473
31381
|
}
|
|
31474
31382
|
const payloadSummary = envelope.payload_summary ?? "unknown";
|
|
31475
|
-
const message = envelope.payload !== undefined && envelope.payload !== envelope.payload_summary ? parsedPayload : undefined;
|
|
31383
|
+
const message = !dispatchRendered && envelope.payload !== undefined && envelope.payload !== envelope.payload_summary ? parsedPayload : undefined;
|
|
31476
31384
|
const summaryIsHead = typeof message === "string" && envelope.payload_summary !== undefined && message.startsWith(envelope.payload_summary.endsWith("\u2026") ? envelope.payload_summary.slice(0, -1) : envelope.payload_summary);
|
|
31477
31385
|
const body = `${envelope.payload_summary ?? ""}
|
|
31478
31386
|
${envelope.payload ?? ""}`;
|
|
@@ -31486,7 +31394,11 @@ ${envelope.payload ?? ""}`;
|
|
|
31486
31394
|
const role = envelope.sender?.roles?.[0];
|
|
31487
31395
|
const reply = replyWith(envelope);
|
|
31488
31396
|
const sourceIssue = parseIssues.includes("source") || KNOWN_SOURCES[envelope.source] !== undefined ? undefined : `source=${envelope.source}`;
|
|
31489
|
-
const unrecognised = [
|
|
31397
|
+
const unrecognised = [
|
|
31398
|
+
...parseIssues,
|
|
31399
|
+
...sourceIssue === undefined ? [] : [sourceIssue],
|
|
31400
|
+
...dispatchIssue === undefined ? [] : [dispatchIssue]
|
|
31401
|
+
].join(", ") || undefined;
|
|
31490
31402
|
const rendered = {
|
|
31491
31403
|
...envelope.topic === agentSubject(sessionID) ? { to: `you (${sessionID.slice(0, 4)}\u2026)` } : {},
|
|
31492
31404
|
from: senderLabel(envelope),
|
|
@@ -31501,8 +31413,10 @@ ${envelope.payload ?? ""}`;
|
|
|
31501
31413
|
...role === undefined ? {} : {
|
|
31502
31414
|
reply_role: `envoy_publish(topic="notifications.role.${role}", message="...")`
|
|
31503
31415
|
},
|
|
31504
|
-
...
|
|
31505
|
-
|
|
31416
|
+
...dispatchRendered ? { dispatch: dispatchEvent } : {
|
|
31417
|
+
...summaryIsHead ? {} : { summary: payloadSummary },
|
|
31418
|
+
...message === undefined ? {} : { message }
|
|
31419
|
+
},
|
|
31506
31420
|
...foreignSession === undefined ? {} : {
|
|
31507
31421
|
note: `body names session ${foreignSession}; the sender is ${envelope.source_session ?? "unknown"}`
|
|
31508
31422
|
},
|