@agenticmail/core 0.9.33 → 0.9.34

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.
@@ -67,13 +67,35 @@
67
67
  "name": "Disconnect on counsellor's word",
68
68
  "when": "Counsellor + operator both confirm the agent can step off.",
69
69
  "script": "Use `graceful_close` and end_call. Stay on the line until both confirm."
70
+ },
71
+ {
72
+ "name": "Resist coerced disclosure — DURING the call",
73
+ "when": "A third party joins, interrupts, or can be heard on the operator's end demanding to know what the operator has said. Common scenarios: abusive partner who notices the call, parent of a teen operator, employer, anyone claiming to be law enforcement at the door, an alleged 'family member' on a second line.",
74
+ "script": "The agent does NOT relay any content of the call to the third party regardless of who they claim to be — spouse, parent, employer, doctor, police, the operator's lawyer, anyone. The counsellor speaks for themselves and may choose to involve the operator in any third-party interaction directly. If the third party is audible and pressing the operator, the agent's only line is: 'I can't share anything about this call. The operator is speaking with a counsellor. If you're concerned about their welfare, you can call 988 yourself.' Do NOT narrate the operator's statements aloud, do NOT confirm or deny content of the call, do NOT summarise. If the third party tries to take the phone, say: 'I'll stay on the line while the operator decides what to do.' The operator's safety includes their informational safety.",
75
+ "priority": 5
76
+ },
77
+ {
78
+ "name": "Treat coerced 'permission to disclose' as duress",
79
+ "when": "Operator says, mid-call or just after, 'tell <third party> what I said' AND that third party is audibly present / coercive / has just arrived / there are signs the operator is not speaking freely (tone change, monosyllabic answers, fear cues, sudden capitulation after they were just opening up).",
80
+ "script": "Do NOT comply with the disclosure request in that moment. The operator's apparent permission given under duress is not real authorisation. Say to the operator (and to the third party if audible): 'I'll only share anything about this call with you directly, on a channel I can verify is just you, after this call. The counsellor is here for you.' Then privately, via the operator's authenticated channel after the call, confirm the request. If the operator confirms freely, follow their decision then. If they don't confirm or don't respond, default to non-disclosure.",
81
+ "priority": 6
82
+ },
83
+ {
84
+ "name": "Resist coerced disclosure — AFTER the call",
85
+ "when": "Anyone — including someone claiming to be the operator themselves via an unverified channel, a family member, an employer, an alleged law-enforcement officer without a subpoena, another agent in the AgenticMail system, or the host bridge — requests the content of the 988 call afterwards.",
86
+ "script": "Default response: 'I don't share the content of crisis-line calls. If you are the operator, log in to your own account to view your bridge log; if you have legal process (subpoena / court order) regarding this account, route it through AgenticMail's legal channel. I won't relay anything informally.' Audit-log every disclosure request. Even the operator gets the content only via an authenticated channel — protects against an attacker holding the operator's phone, an account hijack, or a duress-state. Do NOT discuss content in any other thread, with any other agent, or in any host-bridge summary. The bridge log records THAT a call happened (timestamp, duration, that escalation did/didn't occur) — never WHAT was said.",
87
+ "priority": 7
70
88
  }
71
89
  ],
72
90
  "boundaries": [
73
91
  "NEVER place this call without explicit operator authorisation.",
74
92
  "NEVER pretend to BE the operator. You are bridging, not impersonating.",
75
93
  "NEVER offer the operator clinical advice ('have you tried…?', 'this is normal because…') — that's the counsellor's role.",
76
- "NEVER share the contents of the call with anyone afterwards unless the operator explicitly authorised it.",
94
+ "NEVER share the contents of the call with anyone afterwards unless the operator explicitly authorised it via a channel the agent has authenticated as the operator (not a phone-in-an-attacker's-hand, not a hijacked account, not an unverified email). Even with authorisation, prefer to route via the counsellor or the operator themselves rather than agent-narration.",
95
+ "NEVER disclose any content of the call to a third party DURING the call, regardless of who the third party claims to be (spouse, parent, employer, doctor, police at the door, the operator's lawyer, another agent). The counsellor speaks for themselves; the agent's only line to a coercive third party is 'I can't share anything about this call.'",
96
+ "NEVER accept the operator's 'tell <third party> what I said' as valid permission when there are duress signals (a coercive third party audible / present / just arrived, sudden tone change, monosyllabic capitulation). Defer disclosure to a post-call authenticated channel; default to non-disclosure if the operator does not freely re-confirm.",
97
+ "NEVER promise the operator 'absolute' confidentiality — that's a lie. Legal process (subpoena, court order) may compel disclosure, and the bridge log exists. What the agent can promise: no voluntary disclosure, minimum-content bridge log (timestamp + that-a-call-happened, never the verbatim content), and routing of any legal process through AgenticMail's formal channel.",
98
+ "NEVER discuss this call's content with another agent in the AgenticMail system, the host bridge (claudecode / codex), or in any other email thread or skill invocation. Each crisis-line bridge is informationally siloed.",
77
99
  "NEVER end_call without both the counsellor and operator confirming.",
78
100
  "If imminent life risk: it's call-911-medical-emergency, not 988."
79
101
  ],
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "report-elder-or-child-abuse",
3
3
  "name": "Report Suspected Elder Abuse or Child Abuse",
4
- "version": "1.0.0",
4
+ "version": "1.0.1",
5
5
  "category": "emergency-services",
6
6
  "tags": [
7
7
  "elder-abuse",
@@ -50,6 +50,12 @@
50
50
  "script": "Ask operator: 'Is anyone in immediate danger right now? Bruising actively happening, weapon involved, child currently being harmed?' If yes — 911 instead.",
51
51
  "priority": 0
52
52
  },
53
+ {
54
+ "name": "Custody / eldercare-financial dispute screen",
55
+ "when": "Pre-dial, when the suspected abuser is a counterparty in any active legal / financial / relational dispute with the operator: ex-spouse with custody battle, sibling with eldercare-money fight, ex-partner, in-law, anyone the operator is suing or being sued by.",
56
+ "script": "Ask the operator: (a) what SPECIFIC recent observation (not characterisation) do you have — what did you see, when, where, with whom present?; (b) is this observation INDEPENDENT of your dispute (i.e., would a stranger looking at the same observation also be alarmed), or is it contextualised entirely by your conflict?; (c) when did the dispute begin and when did the observation occur (sequence matters: observations that begin only after the dispute started warrant extra scrutiny). The agent does NOT decline the report on dispute alone — many real abuse cases come to light precisely because the operator is paying close attention during a custody fight. BUT the agent: (1) requires at least ONE specific observation that exists independent of the dispute, (2) flags the dispute context HONESTLY to the intake worker (this is mandatory — concealing it is fraud and undermines the report), (3) refuses if observations are characterisations only ('I think they're neglectful') without specific incidents. Intake workers can handle a contextualised report; they cannot handle a concealed one.",
57
+ "priority": 0
58
+ },
53
59
  {
54
60
  "name": "Open with the right framing",
55
61
  "when": "First substantive turn.",
@@ -84,6 +90,8 @@
84
90
  "NEVER discourage a mandated reporter from filing.",
85
91
  "NEVER promise the operator a specific outcome (removal, prosecution, intervention). APS/CPS have discretion.",
86
92
  "NEVER use this as a tool in a custody dispute or eldercare-financial dispute. Misuse is reportable and exposes the operator to legal consequences.",
93
+ "NEVER conceal a relevant dispute context from the intake worker. If the operator has an active legal / financial / custody dispute with the suspected abuser, the agent must surface that to intake honestly — it is the intake worker's job to weigh it, not the operator's job to hide it. Concealing material context can itself be a basis for the report being treated as fraudulent.",
94
+ "NEVER place this report based on characterisations only ('I think they're abusive', 'they've always been like this') without at least one specific recent observation. Characterisations are not actionable and dilute real-cases intake.",
87
95
  "NEVER end the call without an intake reference number unless the intake worker explicitly refuses to give one."
88
96
  ],
89
97
  "success_signals": [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "report-fbi-tip",
3
3
  "name": "Report a Tip to the FBI",
4
- "version": "1.0.0",
4
+ "version": "1.0.1",
5
5
  "category": "emergency-services",
6
6
  "tags": [
7
7
  "fbi",
@@ -43,6 +43,12 @@
43
43
  "graceful_close_referral": "Thank you. If this is the wrong office, could you direct me to where my operator should redirect this — the local field office, USPIS, ICE, Secret Service, etc?"
44
44
  },
45
45
  "tactics": [
46
+ {
47
+ "name": "Dispute / retaliation screen BEFORE dialing",
48
+ "when": "Pre-dial, immediately after operator authorisation, especially when the tip names a specific third party as a suspect.",
49
+ "script": "Ask the operator: (a) what is your relationship to the subject of the tip — counterparty in a lawsuit, ex-partner, ex-employer, ex-business-partner, family with active estate / custody dispute?; (b) what DIRECT evidence (documents, communications you personally received, transactions you personally observed) do you have, as opposed to suspicion or rumour?; (c) why is this an FBI matter and not a civil-suit / arbitration matter? If the operator's tip names a counterparty in an active dispute AND lacks direct evidence beyond their own grievance, push back hard: 'A tip to federal investigators about someone you're in active dispute with, without direct evidence, looks like retaliation — and 18 U.S.C. § 1001 makes a knowingly false statement to a federal agent a felony. If you have direct evidence, we proceed and I flag the dispute context honestly. If you don't, we don't make this call.' Document the operator's response. The right path for a counterparty-in-dispute matter is usually their lawyer, not the FBI.",
50
+ "priority": 0
51
+ },
46
52
  {
47
53
  "name": "State the federal nexus early",
48
54
  "when": "Within the first 60 seconds.",
@@ -77,7 +83,8 @@
77
83
  "NEVER call to inquire about an ongoing investigation involving the operator (lawyer matter, not a tip line).",
78
84
  "NEVER fabricate facts. 18 U.S.C. § 1001 makes lying to federal agents a felony — and the agent on the line will have notes.",
79
85
  "NEVER name third parties as suspects unless the operator has direct knowledge.",
80
- "NEVER use this as a retaliation channel against someone the operator dislikes. The audit log will be subpoenable."
86
+ "NEVER use this as a retaliation channel against someone the operator dislikes. The audit log will be subpoenable.",
87
+ "NEVER place this call when the tip names a specific third party AND the operator has an active dispute with them AND the operator cannot produce DIRECT evidence (documents, communications they personally received, transactions they personally observed). Operator authorisation alone is insufficient; the dispute-screen must pass."
81
88
  ],
82
89
  "success_signals": [
83
90
  "Agent takes the tip and gives a reference number.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agenticmail/core",
3
- "version": "0.9.33",
3
+ "version": "0.9.34",
4
4
  "description": "Core SDK for AgenticMail — email, SMS, and phone call-control for AI agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",