@pidgeon-ai/sdk 1.11.0 → 1.12.0
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 +10 -0
- package/dist/index.d.cts +48 -0
- package/dist/index.d.ts +48 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,16 @@ call shapes, the result shape — not to the API behind it.
|
|
|
9
9
|
|
|
10
10
|
## Unreleased
|
|
11
11
|
|
|
12
|
+
## 1.12.0 — Pidgeon Firewall
|
|
13
|
+
|
|
14
|
+
Every inbound `Message` carries `firewall`: a `verdict` (`clean` or
|
|
15
|
+
`suspicious`) and the `signals` that produced it — hidden text, instructions
|
|
16
|
+
addressed to an AI, impersonated chat turns, directives buried in quoted
|
|
17
|
+
history, look-alike senders, display-name spoofing, and requests to send
|
|
18
|
+
secrets out — each with where it fired and a sentence quoting it.
|
|
19
|
+
`message.received` carries the verdict and the signal kinds. Observe-only:
|
|
20
|
+
nothing is held or changed. Read it before acting on what a message asks.
|
|
21
|
+
|
|
12
22
|
## 1.11.0 — a key for one pod
|
|
13
23
|
|
|
14
24
|
`apiKeysCreate` takes `pod_id` in place of `identity_ids`: the key reaches
|
package/dist/index.d.cts
CHANGED
|
@@ -528,6 +528,30 @@ type Message = {
|
|
|
528
528
|
* The event the calendar made of that invitation, or null. A different fact from `invitation`: that is what the mail said, this is what the calendar now holds — a meeting later moved still reports the time this message invited you to.
|
|
529
529
|
*/
|
|
530
530
|
calendar_event_id: string | null;
|
|
531
|
+
/**
|
|
532
|
+
* Pidgeon Firewall: does this message try to steer the agent reading it — hidden text, instructions addressed to an AI, impersonated chat turns, look-alike senders, requests to send secrets out. Null on outbound mail. Read it before acting on what the message asks.
|
|
533
|
+
*/
|
|
534
|
+
firewall: {
|
|
535
|
+
/**
|
|
536
|
+
* `suspicious` when any signal fired. Observe-only: nothing is held or changed.
|
|
537
|
+
*/
|
|
538
|
+
verdict: 'clean' | 'suspicious';
|
|
539
|
+
/**
|
|
540
|
+
* The rules that fired, most specific first. Empty when the verdict is `clean`.
|
|
541
|
+
*/
|
|
542
|
+
signals: Array<{
|
|
543
|
+
kind: 'hidden_text' | 'invisible_characters' | 'assistant_directive' | 'role_spoof' | 'quoted_directive' | 'lookalike_sender' | 'display_name_spoof' | 'unauthenticated_with_directive' | 'exfiltration_request';
|
|
544
|
+
/**
|
|
545
|
+
* What was found, with a short quote of it.
|
|
546
|
+
*/
|
|
547
|
+
detail: string;
|
|
548
|
+
where: 'subject' | 'text' | 'html' | 'from' | 'quoted';
|
|
549
|
+
}>;
|
|
550
|
+
/**
|
|
551
|
+
* Bumped when the rules change in a way that could change a verdict.
|
|
552
|
+
*/
|
|
553
|
+
version: number;
|
|
554
|
+
} | null;
|
|
531
555
|
/**
|
|
532
556
|
* Verification codes and links found in the message, most likely first — read from the new text, never the quoted history. Empty lists when nothing was found.
|
|
533
557
|
*/
|
|
@@ -681,6 +705,30 @@ type AwaitedMessage = {
|
|
|
681
705
|
* The event the calendar made of that invitation, or null. A different fact from `invitation`: that is what the mail said, this is what the calendar now holds — a meeting later moved still reports the time this message invited you to.
|
|
682
706
|
*/
|
|
683
707
|
calendar_event_id: string | null;
|
|
708
|
+
/**
|
|
709
|
+
* Pidgeon Firewall: does this message try to steer the agent reading it — hidden text, instructions addressed to an AI, impersonated chat turns, look-alike senders, requests to send secrets out. Null on outbound mail. Read it before acting on what the message asks.
|
|
710
|
+
*/
|
|
711
|
+
firewall: {
|
|
712
|
+
/**
|
|
713
|
+
* `suspicious` when any signal fired. Observe-only: nothing is held or changed.
|
|
714
|
+
*/
|
|
715
|
+
verdict: 'clean' | 'suspicious';
|
|
716
|
+
/**
|
|
717
|
+
* The rules that fired, most specific first. Empty when the verdict is `clean`.
|
|
718
|
+
*/
|
|
719
|
+
signals: Array<{
|
|
720
|
+
kind: 'hidden_text' | 'invisible_characters' | 'assistant_directive' | 'role_spoof' | 'quoted_directive' | 'lookalike_sender' | 'display_name_spoof' | 'unauthenticated_with_directive' | 'exfiltration_request';
|
|
721
|
+
/**
|
|
722
|
+
* What was found, with a short quote of it.
|
|
723
|
+
*/
|
|
724
|
+
detail: string;
|
|
725
|
+
where: 'subject' | 'text' | 'html' | 'from' | 'quoted';
|
|
726
|
+
}>;
|
|
727
|
+
/**
|
|
728
|
+
* Bumped when the rules change in a way that could change a verdict.
|
|
729
|
+
*/
|
|
730
|
+
version: number;
|
|
731
|
+
} | null;
|
|
684
732
|
/**
|
|
685
733
|
* Verification codes and links found in the message, most likely first — read from the new text, never the quoted history. Empty lists when nothing was found.
|
|
686
734
|
*/
|
package/dist/index.d.ts
CHANGED
|
@@ -528,6 +528,30 @@ type Message = {
|
|
|
528
528
|
* The event the calendar made of that invitation, or null. A different fact from `invitation`: that is what the mail said, this is what the calendar now holds — a meeting later moved still reports the time this message invited you to.
|
|
529
529
|
*/
|
|
530
530
|
calendar_event_id: string | null;
|
|
531
|
+
/**
|
|
532
|
+
* Pidgeon Firewall: does this message try to steer the agent reading it — hidden text, instructions addressed to an AI, impersonated chat turns, look-alike senders, requests to send secrets out. Null on outbound mail. Read it before acting on what the message asks.
|
|
533
|
+
*/
|
|
534
|
+
firewall: {
|
|
535
|
+
/**
|
|
536
|
+
* `suspicious` when any signal fired. Observe-only: nothing is held or changed.
|
|
537
|
+
*/
|
|
538
|
+
verdict: 'clean' | 'suspicious';
|
|
539
|
+
/**
|
|
540
|
+
* The rules that fired, most specific first. Empty when the verdict is `clean`.
|
|
541
|
+
*/
|
|
542
|
+
signals: Array<{
|
|
543
|
+
kind: 'hidden_text' | 'invisible_characters' | 'assistant_directive' | 'role_spoof' | 'quoted_directive' | 'lookalike_sender' | 'display_name_spoof' | 'unauthenticated_with_directive' | 'exfiltration_request';
|
|
544
|
+
/**
|
|
545
|
+
* What was found, with a short quote of it.
|
|
546
|
+
*/
|
|
547
|
+
detail: string;
|
|
548
|
+
where: 'subject' | 'text' | 'html' | 'from' | 'quoted';
|
|
549
|
+
}>;
|
|
550
|
+
/**
|
|
551
|
+
* Bumped when the rules change in a way that could change a verdict.
|
|
552
|
+
*/
|
|
553
|
+
version: number;
|
|
554
|
+
} | null;
|
|
531
555
|
/**
|
|
532
556
|
* Verification codes and links found in the message, most likely first — read from the new text, never the quoted history. Empty lists when nothing was found.
|
|
533
557
|
*/
|
|
@@ -681,6 +705,30 @@ type AwaitedMessage = {
|
|
|
681
705
|
* The event the calendar made of that invitation, or null. A different fact from `invitation`: that is what the mail said, this is what the calendar now holds — a meeting later moved still reports the time this message invited you to.
|
|
682
706
|
*/
|
|
683
707
|
calendar_event_id: string | null;
|
|
708
|
+
/**
|
|
709
|
+
* Pidgeon Firewall: does this message try to steer the agent reading it — hidden text, instructions addressed to an AI, impersonated chat turns, look-alike senders, requests to send secrets out. Null on outbound mail. Read it before acting on what the message asks.
|
|
710
|
+
*/
|
|
711
|
+
firewall: {
|
|
712
|
+
/**
|
|
713
|
+
* `suspicious` when any signal fired. Observe-only: nothing is held or changed.
|
|
714
|
+
*/
|
|
715
|
+
verdict: 'clean' | 'suspicious';
|
|
716
|
+
/**
|
|
717
|
+
* The rules that fired, most specific first. Empty when the verdict is `clean`.
|
|
718
|
+
*/
|
|
719
|
+
signals: Array<{
|
|
720
|
+
kind: 'hidden_text' | 'invisible_characters' | 'assistant_directive' | 'role_spoof' | 'quoted_directive' | 'lookalike_sender' | 'display_name_spoof' | 'unauthenticated_with_directive' | 'exfiltration_request';
|
|
721
|
+
/**
|
|
722
|
+
* What was found, with a short quote of it.
|
|
723
|
+
*/
|
|
724
|
+
detail: string;
|
|
725
|
+
where: 'subject' | 'text' | 'html' | 'from' | 'quoted';
|
|
726
|
+
}>;
|
|
727
|
+
/**
|
|
728
|
+
* Bumped when the rules change in a way that could change a verdict.
|
|
729
|
+
*/
|
|
730
|
+
version: number;
|
|
731
|
+
} | null;
|
|
684
732
|
/**
|
|
685
733
|
* Verification codes and links found in the message, most likely first — read from the new text, never the quoted history. Empty lists when nothing was found.
|
|
686
734
|
*/
|