@cello-protocol/daemon 0.0.197 → 0.0.199
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/agent-admin-handlers.d.ts +56 -0
- package/dist/agent-admin-handlers.d.ts.map +1 -0
- package/dist/agent-admin-handlers.js +70 -0
- package/dist/agent-admin-handlers.js.map +1 -0
- package/dist/agent-handlers.d.ts +8 -7
- package/dist/agent-handlers.d.ts.map +1 -1
- package/dist/agent-handlers.js +10 -1
- package/dist/agent-handlers.js.map +1 -1
- package/dist/agent-selection-root.d.ts +29 -0
- package/dist/agent-selection-root.d.ts.map +1 -0
- package/dist/agent-selection-root.js +126 -0
- package/dist/agent-selection-root.js.map +1 -0
- package/dist/attendance-wiring.d.ts +44 -0
- package/dist/attendance-wiring.d.ts.map +1 -0
- package/dist/attendance-wiring.js +432 -0
- package/dist/attendance-wiring.js.map +1 -0
- package/dist/backup-restore-handlers.d.ts +10 -0
- package/dist/backup-restore-handlers.d.ts.map +1 -0
- package/dist/backup-restore-handlers.js +82 -0
- package/dist/backup-restore-handlers.js.map +1 -0
- package/dist/boot-agents.d.ts +64 -0
- package/dist/boot-agents.d.ts.map +1 -0
- package/dist/boot-agents.js +241 -0
- package/dist/boot-agents.js.map +1 -0
- package/dist/boot-connection-state.d.ts +40 -0
- package/dist/boot-connection-state.d.ts.map +1 -0
- package/dist/boot-connection-state.js +136 -0
- package/dist/boot-connection-state.js.map +1 -0
- package/dist/boot-core.d.ts +36 -0
- package/dist/boot-core.d.ts.map +1 -0
- package/dist/boot-core.js +292 -0
- package/dist/boot-core.js.map +1 -0
- package/dist/boot-parked-content.d.ts +34 -0
- package/dist/boot-parked-content.d.ts.map +1 -0
- package/dist/boot-parked-content.js +527 -0
- package/dist/boot-parked-content.js.map +1 -0
- package/dist/boot-sweeps.d.ts +22 -0
- package/dist/boot-sweeps.d.ts.map +1 -0
- package/dist/boot-sweeps.js +50 -0
- package/dist/boot-sweeps.js.map +1 -0
- package/dist/connection-agents.d.ts +16 -0
- package/dist/connection-agents.d.ts.map +1 -0
- package/dist/connection-agents.js +68 -0
- package/dist/connection-agents.js.map +1 -0
- package/dist/content-park.d.ts.map +1 -1
- package/dist/content-park.js +274 -25
- package/dist/content-park.js.map +1 -1
- package/dist/daemon-handle.d.ts +57 -0
- package/dist/daemon-handle.d.ts.map +1 -0
- package/dist/daemon-handle.js +2 -0
- package/dist/daemon-handle.js.map +1 -0
- package/dist/daemon-status-report.d.ts +40 -0
- package/dist/daemon-status-report.d.ts.map +1 -0
- package/dist/daemon-status-report.js +78 -0
- package/dist/daemon-status-report.js.map +1 -0
- package/dist/daemon.d.ts +5 -66
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +332 -4894
- package/dist/daemon.js.map +1 -1
- package/dist/delivery-open-registry.d.ts +1 -1
- package/dist/delivery-open-registry.js +1 -1
- package/dist/directory-connect.d.ts +27 -0
- package/dist/directory-connect.d.ts.map +1 -0
- package/dist/directory-connect.js +98 -0
- package/dist/directory-connect.js.map +1 -0
- package/dist/disconnect-cleanup.d.ts +45 -0
- package/dist/disconnect-cleanup.d.ts.map +1 -0
- package/dist/disconnect-cleanup.js +65 -0
- package/dist/disconnect-cleanup.js.map +1 -0
- package/dist/document-surface.d.ts +32 -0
- package/dist/document-surface.d.ts.map +1 -0
- package/dist/document-surface.js +150 -0
- package/dist/document-surface.js.map +1 -0
- package/dist/document-wiring.d.ts +53 -0
- package/dist/document-wiring.d.ts.map +1 -0
- package/dist/document-wiring.js +323 -0
- package/dist/document-wiring.js.map +1 -0
- package/dist/inbound-sessions.d.ts +9 -1
- package/dist/inbound-sessions.d.ts.map +1 -1
- package/dist/inbound-sessions.js +9 -1
- package/dist/inbound-sessions.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/ipc-surface.d.ts +44 -0
- package/dist/ipc-surface.d.ts.map +1 -0
- package/dist/ipc-surface.js +106 -0
- package/dist/ipc-surface.js.map +1 -0
- package/dist/network-directory-node.d.ts +0 -18
- package/dist/network-directory-node.d.ts.map +1 -1
- package/dist/network-directory-node.js +1 -38
- package/dist/network-directory-node.js.map +1 -1
- package/dist/notification-handlers.d.ts.map +1 -1
- package/dist/notification-handlers.js +2 -0
- package/dist/notification-handlers.js.map +1 -1
- package/dist/onboarding-guidance.d.ts +79 -0
- package/dist/onboarding-guidance.d.ts.map +1 -0
- package/dist/onboarding-guidance.js +95 -0
- package/dist/onboarding-guidance.js.map +1 -0
- package/dist/operator-guidance.d.ts +25 -0
- package/dist/operator-guidance.d.ts.map +1 -0
- package/dist/operator-guidance.js +50 -0
- package/dist/operator-guidance.js.map +1 -0
- package/dist/park-recovery.d.ts +22 -1
- package/dist/park-recovery.d.ts.map +1 -1
- package/dist/park-recovery.js.map +1 -1
- package/dist/park-refusals.d.ts +147 -0
- package/dist/park-refusals.d.ts.map +1 -0
- package/dist/park-refusals.js +331 -0
- package/dist/park-refusals.js.map +1 -0
- package/dist/refusal-notices.d.ts.map +1 -1
- package/dist/refusal-notices.js +22 -2
- package/dist/refusal-notices.js.map +1 -1
- package/dist/refusal-reasons.d.ts +13 -0
- package/dist/refusal-reasons.d.ts.map +1 -1
- package/dist/refusal-reasons.js +19 -0
- package/dist/refusal-reasons.js.map +1 -1
- package/dist/register-handler.d.ts +8 -7
- package/dist/register-handler.d.ts.map +1 -1
- package/dist/register-handler.js.map +1 -1
- package/dist/session-content-handlers.d.ts.map +1 -1
- package/dist/session-content-handlers.js +2 -0
- package/dist/session-content-handlers.js.map +1 -1
- package/dist/session-content-ingest.d.ts +1 -0
- package/dist/session-content-ingest.d.ts.map +1 -1
- package/dist/session-content-ingest.js +2 -2
- package/dist/session-content-ingest.js.map +1 -1
- package/dist/session-node-factory.d.ts +18 -0
- package/dist/session-node-factory.d.ts.map +1 -0
- package/dist/session-node-factory.js +182 -0
- package/dist/session-node-factory.js.map +1 -0
- package/dist/session-node-manager.d.ts +1 -0
- package/dist/session-node-manager.d.ts.map +1 -1
- package/dist/session-node-manager.js.map +1 -1
- package/dist/session-node-types.d.ts +8 -0
- package/dist/session-node-types.d.ts.map +1 -1
- package/dist/session-node-types.js.map +1 -1
- package/dist/session-notify.d.ts +46 -0
- package/dist/session-notify.d.ts.map +1 -0
- package/dist/session-notify.js +115 -0
- package/dist/session-notify.js.map +1 -0
- package/dist/session-read-handlers.d.ts.map +1 -1
- package/dist/session-read-handlers.js +0 -1
- package/dist/session-read-handlers.js.map +1 -1
- package/dist/session-salt-agreement.d.ts +0 -7
- package/dist/session-salt-agreement.d.ts.map +1 -1
- package/dist/session-salt-agreement.js +0 -7
- package/dist/session-salt-agreement.js.map +1 -1
- package/dist/session-views.d.ts +46 -0
- package/dist/session-views.d.ts.map +1 -0
- package/dist/session-views.js +197 -0
- package/dist/session-views.js.map +1 -0
- package/dist/signal-handlers.d.ts +66 -0
- package/dist/signal-handlers.d.ts.map +1 -0
- package/dist/signal-handlers.js +975 -0
- package/dist/signal-handlers.js.map +1 -0
- package/dist/signaling-wiring.d.ts +100 -0
- package/dist/signaling-wiring.d.ts.map +1 -0
- package/dist/signaling-wiring.js +392 -0
- package/dist/signaling-wiring.js.map +1 -0
- package/dist/start-agent.d.ts +64 -0
- package/dist/start-agent.d.ts.map +1 -0
- package/dist/start-agent.js +136 -0
- package/dist/start-agent.js.map +1 -0
- package/dist/status-handler.d.ts +46 -0
- package/dist/status-handler.d.ts.map +1 -0
- package/dist/status-handler.js +58 -0
- package/dist/status-handler.js.map +1 -0
- package/dist/test-handlers.d.ts +62 -0
- package/dist/test-handlers.d.ts.map +1 -0
- package/dist/test-handlers.js +239 -0
- package/dist/test-handlers.js.map +1 -0
- package/dist/types.d.ts +0 -11
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -12
- package/dist/types.js.map +1 -1
- package/dist/unresolved-nodes-report.d.ts +14 -0
- package/dist/unresolved-nodes-report.d.ts.map +1 -0
- package/dist/unresolved-nodes-report.js +96 -0
- package/dist/unresolved-nodes-report.js.map +1 -0
- package/dist/who-resolver.d.ts +15 -0
- package/dist/who-resolver.d.ts.map +1 -0
- package/dist/who-resolver.js +46 -0
- package/dist/who-resolver.js.map +1 -0
- package/dist/wire-content-hash.d.ts +0 -2
- package/dist/wire-content-hash.d.ts.map +1 -1
- package/dist/wire-content-hash.js +0 -4
- package/dist/wire-content-hash.js.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CELLO Daemon — WHY A PARKED MESSAGE NEVER LEFT THE RELAY MAILBOX, said to the OPERATOR.
|
|
3
|
+
*
|
|
4
|
+
* `041-PARKSTUCK`. Every refusal the park drain can produce already had a `reason`, an `impact` and
|
|
5
|
+
* a `guidance` — written for a person, at ERROR, in `daemon.log`. None of them called
|
|
6
|
+
* `noteContentRefusal`, so no person ever received one. What the operator saw instead was the
|
|
7
|
+
* INGEST reason (`session_committed`), which says where the message was turned away on arrival and
|
|
8
|
+
* says nothing about why it will not leave: error substitution, in the one place there is no
|
|
9
|
+
* upstream for the reader to chase, because `daemon.log` is not an operator affordance.
|
|
10
|
+
*
|
|
11
|
+
* ⚠️ **A CLOSED SET WITH A TOTAL NOTICE MAP, for the reason `refusal-reasons.ts` gives.** The park
|
|
12
|
+
* drain pushed bare string literals into its refusal list, so a new branch could ship a reason the
|
|
13
|
+
* operator surface had never heard of and every test would stay green — a test cannot enumerate a
|
|
14
|
+
* code that does not exist yet, and a type can. Adding a member here without a notice below is a
|
|
15
|
+
* compile error.
|
|
16
|
+
*
|
|
17
|
+
* ⚠️ **THE GUIDANCE IS A FUNCTION OF THE SESSION'S STATUS, and that is the defect it exists to
|
|
18
|
+
* fix.** The salt branch's log line told operators *"this message will keep being re-pulled and
|
|
19
|
+
* re-refused until the session is closed, so close it and start a new one"* — for a session that
|
|
20
|
+
* had been closed three days earlier, which is what made the refusal permanent in the first place.
|
|
21
|
+
* Advice naming an action the reader already took is worse than silence: it spends the trust they
|
|
22
|
+
* would otherwise bring to the next notice.
|
|
23
|
+
*/
|
|
24
|
+
import { REFUSAL_KINDS } from "./refusal-reasons.js";
|
|
25
|
+
/**
|
|
26
|
+
* Every reason the park drain can decline to file a parked message with.
|
|
27
|
+
*
|
|
28
|
+
* These are the ANNEX reasons — why the entry is STUCK — and they are deliberately distinct from
|
|
29
|
+
* the ingest reason that sits beside them on the same message. Both reach the inbox; the ingest one
|
|
30
|
+
* says the conversation is closed, this one says why the message cannot leave the mailbox.
|
|
31
|
+
*/
|
|
32
|
+
export const PARK_REFUSAL_REASONS = {
|
|
33
|
+
/** The sender named a salted algorithm and this side holds no usable salt for the session. */
|
|
34
|
+
ANNEX_SALT_UNAVAILABLE: "annex_salt_unavailable",
|
|
35
|
+
/** The sender named a content-hash algorithm this build cannot compute. */
|
|
36
|
+
ANNEX_ALG_UNKNOWN: "annex_alg_unknown",
|
|
37
|
+
/** The content does not match the hash the sender signed over. */
|
|
38
|
+
ANNEX_HASH_MISMATCH: "annex_hash_mismatch",
|
|
39
|
+
/** The park envelope could not be decoded. */
|
|
40
|
+
ANNEX_DECODE_FAILED: "annex_decode_failed",
|
|
41
|
+
/** The inbound screener was unreachable. TRANSIENT — the relay copy is kept and re-screened. */
|
|
42
|
+
ANNEX_SCREEN_UNAVAILABLE: "annex_screen_unavailable",
|
|
43
|
+
/** The annex write itself ran and failed. */
|
|
44
|
+
ANNEX_WRITE_FAILED: "annex_write_failed",
|
|
45
|
+
/**
|
|
46
|
+
* The inbound screener TERMINALLY blocked the content. Retained as quarantined evidence and
|
|
47
|
+
* deleted from the relay — the only park branch that destroys the remote copy on purpose.
|
|
48
|
+
*
|
|
49
|
+
* ⚠️ IT HAD NO OPERATOR SURFACE AT ALL — review M9. It is the branch with the strongest claim on
|
|
50
|
+
* an operator's attention (hostile bytes aimed at a conversation that is already closed) and the
|
|
51
|
+
* only one that deletes the relay's copy in silence, and its `impact` field was addressed to
|
|
52
|
+
* nobody. Unit 2's scope is every `content.recover.*` refusal, not only the one that loops.
|
|
53
|
+
*/
|
|
54
|
+
ANNEX_SCREENED_OUT: "annex_screened_out",
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* The two session statuses from which nothing can change back.
|
|
58
|
+
*
|
|
59
|
+
* `seal_interrupted_pending` is deliberately NOT here — `types.ts` documents it as explicitly
|
|
60
|
+
* non-terminal, and a session still moving toward a notarization is not a session whose inputs are
|
|
61
|
+
* immutable. Excluding it costs a few more drains on a rare state and keeps the release honest.
|
|
62
|
+
*/
|
|
63
|
+
export const TERMINAL_SESSION_STATUSES = new Set(["sealed", "abandoned"]);
|
|
64
|
+
/** The one sentence every reader of a park refusal needs before the reason: nobody did anything wrong. */
|
|
65
|
+
const NOT_THEIR_FAULT = "The sender's signature on this message VERIFIED, so nothing here says they did anything wrong " +
|
|
66
|
+
"and there is no version of theirs to ask about.";
|
|
67
|
+
/**
|
|
68
|
+
* A closed conversation cannot be reopened, so "close it" is never the advice for one — but the
|
|
69
|
+
* reader still needs a next step, and for a released message the honest one is that there is none
|
|
70
|
+
* inside CELLO.
|
|
71
|
+
*/
|
|
72
|
+
function saltGuidance(ctx) {
|
|
73
|
+
/**
|
|
74
|
+
* ⚠️ THE TWO CAUSES SEND THE OPERATOR TO OPPOSITE PLACES — one to the conversation, one to their
|
|
75
|
+
* own disk — and only the first can ever be released. A message is dropped from the relay solely
|
|
76
|
+
* on `none`; `unreadable` keeps its copy, because the read that failed may succeed next drain.
|
|
77
|
+
* So the `unreadable` text below never appears beside "there is nothing to retry", and review H2
|
|
78
|
+
* measured the pair contradicting each other when it could.
|
|
79
|
+
*/
|
|
80
|
+
const cause = ctx.saltReason === "unreadable"
|
|
81
|
+
? "A salt row for this conversation EXISTS on this machine and could not be used — the read " +
|
|
82
|
+
"failed, or the stored value is the wrong shape. That is a fault on YOUR side, not anything " +
|
|
83
|
+
"the sender did, and it may simply be a database that was busy. Look for " +
|
|
84
|
+
"session.salt.read.failed in the daemon log; if it does not repeat, the next attempt will " +
|
|
85
|
+
"check this message normally."
|
|
86
|
+
: "No salt was ever agreed for this conversation, so there is nothing here to check the " +
|
|
87
|
+
"message against. Look for session.salt.persist.failed or session.salt.announce.failed in " +
|
|
88
|
+
"the daemon log for which half never completed.";
|
|
89
|
+
if (ctx.released) {
|
|
90
|
+
/**
|
|
91
|
+
* ⚠️ **IT NAMES WHERE THE BYTES STILL ARE — review M7, and the affordance was missing.**
|
|
92
|
+
*
|
|
93
|
+
* The reader is told a message existed, was never shown to them, and is gone from the relay.
|
|
94
|
+
* Without the next sentence that is a dead end, and the log line for the same event already
|
|
95
|
+
* said `cello_quarantined` — so the person who needed it was the only one not told.
|
|
96
|
+
*
|
|
97
|
+
* Safe to promise only because the release is now gated on the retention having SUCCEEDED
|
|
98
|
+
* (review H1). Before that gate this sentence would have been a lie on exactly the daemons
|
|
99
|
+
* where it mattered most.
|
|
100
|
+
*/
|
|
101
|
+
return (`${cause} THERE IS NOTHING TO REPAIR AND NOTHING TO RETRY. This conversation is closed ` +
|
|
102
|
+
`("${ctx.sessionStatus}"), so no salt can ever be agreed for it and this message could never ` +
|
|
103
|
+
`have been checked on any future attempt. The relay's copy has now been dropped, which is what ` +
|
|
104
|
+
`stops it being pulled and refused every few minutes forever. THE MESSAGE ITSELF IS STILL HERE: ` +
|
|
105
|
+
`this agent kept the bytes it could not check, and cello_quarantined shows them — treat what ` +
|
|
106
|
+
`you read there as unverified, because the whole reason it is in there is that nothing could ` +
|
|
107
|
+
`confirm it arrived unaltered. If it matters, ask the sender OUT OF BAND — a channel that is ` +
|
|
108
|
+
`not this one — to say it again in a NEW conversation.`);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* ⚠️ **IT DOES NOT ASK THE READER TO WORK OUT SOMETHING IT ALREADY KNOWS — review L10.**
|
|
112
|
+
*
|
|
113
|
+
* This read *"if the conversation is still open, staying connected is what fixes it; if it is
|
|
114
|
+
* already closed, nothing will"* — a hedge over a status this function is handed. In production
|
|
115
|
+
* the branch is reachable only when ingest returned `session_committed`, so the status is
|
|
116
|
+
* `seal_interrupted_pending` or a record that could not be read; the hedge is right for the
|
|
117
|
+
* second and lazy for the first.
|
|
118
|
+
*/
|
|
119
|
+
if (ctx.sessionStatus === null) {
|
|
120
|
+
return (`${cause} The relay still holds this message and it is pulled again on every drain. This ` +
|
|
121
|
+
`agent could not read its own record of the conversation, so it cannot tell you whether the ` +
|
|
122
|
+
`conversation is still open — and that unreadable record is itself worth looking at. If the ` +
|
|
123
|
+
`conversation IS still open, being connected at the same time as your counterparty is what ` +
|
|
124
|
+
`agrees a salt and clears this.`);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* ⚠️ **THREE PATHS REACH HERE NOW, AND ONLY ONE OF THEM IS ABOUT RECONNECTING — verification
|
|
128
|
+
* NEW-1.**
|
|
129
|
+
*
|
|
130
|
+
* Before the release was gated on `saltReason` and on the retention, terminal + no-salt ALWAYS
|
|
131
|
+
* released, so this branch only ever saw a non-terminal session. Those two fixes opened two more
|
|
132
|
+
* ways in — a terminal session whose bytes could not be retained, and a salt row that exists and
|
|
133
|
+
* could not be read — and the reconnection advice is wrong for both. Telling someone to get
|
|
134
|
+
* online at the same time as a counterparty on a `sealed` conversation names an action they
|
|
135
|
+
* cannot perform, which is this unit's own DoD clause turned on the unit.
|
|
136
|
+
*/
|
|
137
|
+
if (ctx.saltReason === "unreadable") {
|
|
138
|
+
return (`${cause} The relay still holds this message and it is pulled again on every drain, so ` +
|
|
139
|
+
`nothing is lost while this lasts. Your counterparty is not involved and there is nothing to ` +
|
|
140
|
+
`ask them for: a salt for this conversation already exists on this machine and this machine ` +
|
|
141
|
+
`could not read it. If the read succeeds on a later drain the message is checked and handled ` +
|
|
142
|
+
`normally.`);
|
|
143
|
+
}
|
|
144
|
+
if (TERMINAL_SESSION_STATUSES.has(ctx.sessionStatus)) {
|
|
145
|
+
return (`${cause} This conversation is "${ctx.sessionStatus}" and cannot be reopened, so no salt can ` +
|
|
146
|
+
`ever be agreed for it and this message can never be checked — there is nothing to reconnect ` +
|
|
147
|
+
`to and nothing to retry. The relay's copy would normally be dropped for exactly that reason; ` +
|
|
148
|
+
`it is being KEPT only because this agent could not store a copy of its own, and deleting it ` +
|
|
149
|
+
`would leave the message nowhere at all. Free space for this conversation and it resolves ` +
|
|
150
|
+
`itself. If the message mattered, ask the sender OUT OF BAND to say it again in a NEW ` +
|
|
151
|
+
`conversation.`);
|
|
152
|
+
}
|
|
153
|
+
return (`${cause} The relay still holds this message and it is pulled again on every drain. A salt is ` +
|
|
154
|
+
`agreed while both sides are connected, so being online at the same time as your counterparty ` +
|
|
155
|
+
`is what clears this — the message is then checked and delivered on a later drain. This ` +
|
|
156
|
+
`conversation is "${ctx.sessionStatus}", which is not closed, so that can still happen.`);
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* The operator-facing notice for each park refusal — TOTAL over the reason set.
|
|
160
|
+
*
|
|
161
|
+
* A function per reason rather than a string, because two of them must know whether the session is
|
|
162
|
+
* closed before they can say anything true about what to do next.
|
|
163
|
+
*/
|
|
164
|
+
export const PARK_REFUSAL_NOTICE = {
|
|
165
|
+
[PARK_REFUSAL_REASONS.ANNEX_SALT_UNAVAILABLE]: (ctx) => ({
|
|
166
|
+
// REFUSED, never DEFERRED: nothing was recorded and nothing acknowledged, and — released or not
|
|
167
|
+
// — the sender's daemon is not going to fix this by resending.
|
|
168
|
+
kind: REFUSAL_KINDS.REFUSED,
|
|
169
|
+
impact: `A message you were sent could NOT BE CHECKED — not that it failed a check. ${NOT_THEIR_FAULT} ` +
|
|
170
|
+
`This side cannot recompute the fingerprint they committed to, because the shared secret that ` +
|
|
171
|
+
`fingerprint is built from does not exist here. ` +
|
|
172
|
+
(ctx.released
|
|
173
|
+
? "It was never shown to you and it is now gone from the relay, so this conversation will stop reporting it."
|
|
174
|
+
: "It was never shown to you, and the relay still holds its copy."),
|
|
175
|
+
guidance: saltGuidance(ctx),
|
|
176
|
+
}),
|
|
177
|
+
[PARK_REFUSAL_REASONS.ANNEX_ALG_UNKNOWN]: (ctx) => ({
|
|
178
|
+
kind: REFUSAL_KINDS.DEFERRED,
|
|
179
|
+
impact: `A message you were sent was fingerprinted with a method this build cannot compute ` +
|
|
180
|
+
`("${ctx.declaredAlg}"), so it could not be checked and was not shown to you. ` +
|
|
181
|
+
`${NOT_THEIR_FAULT} The relay still holds it.`,
|
|
182
|
+
guidance: "Their CELLO build is NEWER than this one. Upgrade this agent's client; the message stays on " +
|
|
183
|
+
"the relay and is delivered on the next drain once this daemon can compute that method. " +
|
|
184
|
+
"Nothing to ask the sender for and nothing to resend.",
|
|
185
|
+
}),
|
|
186
|
+
[PARK_REFUSAL_REASONS.ANNEX_HASH_MISMATCH]: () => ({
|
|
187
|
+
kind: REFUSAL_KINDS.REFUSED,
|
|
188
|
+
impact: "A message you were sent does NOT match the fingerprint its sender signed over, so the bytes " +
|
|
189
|
+
"that arrived are not the bytes they committed to. It was not shown to you. This is the one " +
|
|
190
|
+
"park refusal that is evidence of tampering rather than of a version or storage difference — " +
|
|
191
|
+
"the party best placed to have done it is the relay that stored it.",
|
|
192
|
+
guidance: "Do not ask the sender to resend into this conversation. Confirm OUT OF BAND — a channel that " +
|
|
193
|
+
"is not this one — what they actually sent, and read the retained copy with cello_quarantined " +
|
|
194
|
+
"to compare. If it repeats with the same counterparty, stop using this conversation.",
|
|
195
|
+
}),
|
|
196
|
+
[PARK_REFUSAL_REASONS.ANNEX_DECODE_FAILED]: (ctx) => ({
|
|
197
|
+
kind: REFUSAL_KINDS.DEFERRED,
|
|
198
|
+
impact: "A parked message could not be decoded at all, so nothing about it could be checked and it " +
|
|
199
|
+
"was not shown to you. The relay still holds it. This is a wire or version difference, not a " +
|
|
200
|
+
"claim about the sender." + errorClause(ctx),
|
|
201
|
+
guidance: "If the sender is on a newer build, upgrading this client is the fix; the relay keeps the " +
|
|
202
|
+
"message meanwhile, and it is decoded on a later drain. Nothing to ask the sender for.",
|
|
203
|
+
}),
|
|
204
|
+
[PARK_REFUSAL_REASONS.ANNEX_SCREEN_UNAVAILABLE]: () => ({
|
|
205
|
+
// The one TRANSIENT reason in the set. A screener that is down comes back, and the message is
|
|
206
|
+
// re-screened on the next drain with nothing lost — so the operator must not be told to act.
|
|
207
|
+
kind: REFUSAL_KINDS.DEFERRED,
|
|
208
|
+
impact: "A parked message could not be screened because this agent's screener did not answer, so it " +
|
|
209
|
+
"was not stored and not shown to you. Nothing was lost: the relay keeps its copy and the " +
|
|
210
|
+
"message is screened again on the next drain.",
|
|
211
|
+
guidance: "Nothing to do unless it keeps happening. If it does, the screener on THIS machine is not " +
|
|
212
|
+
"running — look for content.recover.annex.screen_unavailable in the daemon log. Do not ask " +
|
|
213
|
+
"the sender for anything; they cannot see this and there is nothing for them to resend.",
|
|
214
|
+
}),
|
|
215
|
+
[PARK_REFUSAL_REASONS.ANNEX_SCREENED_OUT]: (ctx) => ({
|
|
216
|
+
/**
|
|
217
|
+
* WITHHELD, not BLOCKED — verification NEW-3. `BLOCKED`'s header asserts the message IS in the
|
|
218
|
+
* conversation's hash chain and the sender WAS acknowledged. Both hold for the live screener
|
|
219
|
+
* and neither holds here: the conversation is closed, so nothing was appended, and deleting a
|
|
220
|
+
* mailbox blob is not an acknowledgement. The header would have contradicted this impact.
|
|
221
|
+
*/
|
|
222
|
+
kind: REFUSAL_KINDS.WITHHELD,
|
|
223
|
+
impact: "A message that arrived for this closed conversation was BLOCKED by this agent's screener — " +
|
|
224
|
+
"its content was rejected outright, not merely unrecognised. It was never shown to the agent " +
|
|
225
|
+
"and never added to the conversation's record." +
|
|
226
|
+
// ⚠️ NEW-2: retention is a FACT read back, never an assumption. Saying "it is KEPT" when the
|
|
227
|
+
// quarantine refused it is the claim H1 removed, reprinted one branch over.
|
|
228
|
+
(ctx.retained
|
|
229
|
+
? " It is KEPT as evidence and cello_quarantined shows it."
|
|
230
|
+
: " THIS AGENT COULD NOT KEEP A COPY of it — see session.content.quarantine.skipped or .failed in the daemon log — so only this notice records that it was ever sent.") +
|
|
231
|
+
(ctx.released
|
|
232
|
+
? " The relay's copy has been dropped so it stops arriving."
|
|
233
|
+
: " The relay still holds its copy, so it may arrive and be blocked again."),
|
|
234
|
+
guidance: "This is the protection working, and there is nothing to repair. Do not turn screening off " +
|
|
235
|
+
"to read it and do not ask the sender about it — if the content was hostile, telling them " +
|
|
236
|
+
"what was caught tells whoever sent it what to change. cello_quarantined shows it if you " +
|
|
237
|
+
"need to produce it.",
|
|
238
|
+
}),
|
|
239
|
+
[PARK_REFUSAL_REASONS.ANNEX_WRITE_FAILED]: (ctx) => ({
|
|
240
|
+
kind: REFUSAL_KINDS.DEFERRED,
|
|
241
|
+
impact: "A parked message decoded and then a later step failed on THIS machine — screening it, " +
|
|
242
|
+
"keeping it, or writing it into the record — so it was not shown to you. THIS IS A FAULT ON " +
|
|
243
|
+
"THIS MACHINE, not something the sender did. The relay keeps its copy, so nothing is lost " +
|
|
244
|
+
"yet." + errorClause(ctx),
|
|
245
|
+
guidance: "Check that this machine has disk space and that ~/.cello is writable, then wait for the next " +
|
|
246
|
+
"drain — the message is still on the relay and is retried. Do not ask the sender to resend.",
|
|
247
|
+
}),
|
|
248
|
+
};
|
|
249
|
+
/**
|
|
250
|
+
* ⚠️ **HOW OFTEN, NOT JUST HOW MANY — `041-PARKSTUCK` Unit 2, property 2.**
|
|
251
|
+
*
|
|
252
|
+
* A count with no cadence beside it reads as that many separate events. On the machine this was
|
|
253
|
+
* written for, ONE message had been refused 731 times in 64 hours and the notice said `731`, which
|
|
254
|
+
* an operator reads as 731 messages going wrong rather than one going wrong every five minutes.
|
|
255
|
+
*
|
|
256
|
+
* Says only what the stored row proves: the number of refusals of this reason on this conversation,
|
|
257
|
+
* and the average gap across the span they cover. It does NOT claim one message — a reason can fire
|
|
258
|
+
* for several — because the row cannot tell them apart.
|
|
259
|
+
*
|
|
260
|
+
* `null` below three refusals or across a zero span: two points are not a cadence, and dividing by a
|
|
261
|
+
* zero span would print an interval that is an artifact of the clock rather than of the behaviour.
|
|
262
|
+
*/
|
|
263
|
+
export function refusalRecurrence(total, firstAt, lastAt,
|
|
264
|
+
/**
|
|
265
|
+
* Is `total` an exact count or a FLOOR? — review M5.
|
|
266
|
+
*
|
|
267
|
+
* A row seeded at upgrade takes its total from a notice's `count`, which resets on dismissal, so
|
|
268
|
+
* both the count and the span are lower bounds. The drain five lines away already reports a
|
|
269
|
+
* seeded row as `timesTotalAtLeast` for exactly this reason, and this sentence was asserting the
|
|
270
|
+
* same number as a figure right beside it — *"the original lie with the new name on it"*, which
|
|
271
|
+
* is the phrase `DOD-M15-REFUSALTERMINAL-1` used about the defect it removed.
|
|
272
|
+
*
|
|
273
|
+
* On the daemon this unit was written for the row IS seeded: the inbox reported
|
|
274
|
+
* `times_total_at_least: 731`, so the very first thing an unqualified sentence would have shipped
|
|
275
|
+
* is "it has fired 731 times" next to a field saying "at least".
|
|
276
|
+
*/
|
|
277
|
+
seeded) {
|
|
278
|
+
if (!Number.isFinite(total) || total < 3)
|
|
279
|
+
return null;
|
|
280
|
+
const span = lastAt - firstAt;
|
|
281
|
+
if (!Number.isFinite(span) || span <= 0)
|
|
282
|
+
return null;
|
|
283
|
+
const everyMs = span / (total - 1);
|
|
284
|
+
/**
|
|
285
|
+
* ⚠️ **IT SAYS ONLY WHAT THE ROW PROVES — review M6, and the first version made two claims it
|
|
286
|
+
* could not.**
|
|
287
|
+
*
|
|
288
|
+
* Dropped: *"THIS REFUSAL IS A LOOP, NOT N SEPARATE EVENTS"*. This function serves EVERY reason
|
|
289
|
+
* in the drain, not only park ones, and a counterparty who keeps writing into a closed
|
|
290
|
+
* conversation generates N genuinely separate `session_committed` refusals — the notice would
|
|
291
|
+
* have told the operator they were not separate, beside guidance saying the sender "may not
|
|
292
|
+
* realise it ended". Its own doc comment already said a reason can fire for several messages.
|
|
293
|
+
*
|
|
294
|
+
* Dropped: *"It will keep firing at that rate until the cause is dealt with"*. Notices are
|
|
295
|
+
* durable and re-drained for every new consumer, so that prints long after a cause is resolved —
|
|
296
|
+
* including, immediately after this unit lands, on the released message whose impact in the SAME
|
|
297
|
+
* row says it is gone and will stop being reported.
|
|
298
|
+
*
|
|
299
|
+
* What is left is arithmetic over two stored timestamps and a count, which is all the row has.
|
|
300
|
+
*/
|
|
301
|
+
const count = seeded ? `at least ${total} times` : `${total} times`;
|
|
302
|
+
return (`RECORDED ${count.toUpperCase()} on this conversation, about once every ` +
|
|
303
|
+
`${humanizeInterval(everyMs)} across ${humanizeInterval(span)} — so read the number as ONE ` +
|
|
304
|
+
`recurring refusal being counted, not as that many separate problems to work through` +
|
|
305
|
+
(seeded
|
|
306
|
+
? ". The count began when this daemon was upgraded and dismissals are not counted, so the true figure may be far higher."
|
|
307
|
+
: "."));
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* The upstream error's own words, appended rather than replacing anything — Invariant 3.
|
|
311
|
+
*
|
|
312
|
+
* Empty when there was no throw, so a notice never carries a dangling "it said:" with nothing after.
|
|
313
|
+
*/
|
|
314
|
+
function errorClause(ctx) {
|
|
315
|
+
return ctx.errorDetail === null || ctx.errorDetail === "" ? "" : ` The failure said: ${ctx.errorDetail}.`;
|
|
316
|
+
}
|
|
317
|
+
/** A duration a person reads without converting it. Whole units, because a cadence is an estimate. */
|
|
318
|
+
function humanizeInterval(ms) {
|
|
319
|
+
const s = Math.round(ms / 1000);
|
|
320
|
+
if (s < 60)
|
|
321
|
+
return `${Math.max(1, s)} second${s === 1 ? "" : "s"}`;
|
|
322
|
+
const m = Math.round(s / 60);
|
|
323
|
+
if (m < 60)
|
|
324
|
+
return `${m} minute${m === 1 ? "" : "s"}`;
|
|
325
|
+
const h = Math.round(m / 60);
|
|
326
|
+
if (h < 48)
|
|
327
|
+
return `${h} hour${h === 1 ? "" : "s"}`;
|
|
328
|
+
const d = Math.round(h / 24);
|
|
329
|
+
return `${d} days`;
|
|
330
|
+
}
|
|
331
|
+
//# sourceMappingURL=park-refusals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"park-refusals.js","sourceRoot":"","sources":["../src/park-refusals.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refusal-notices.d.ts","sourceRoot":"","sources":["../src/refusal-notices.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"refusal-notices.d.ts","sourceRoot":"","sources":["../src/refusal-notices.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIvE,OAAO,EACL,KAAK,aAAa,EAGnB,MAAM,yBAAyB,CAAC;AAEjC,uDAAuD;AACvD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,gGAAgG;IAChG,EAAE,IAAI,cAAc,GAAG,IAAI,CAAC;IAC5B,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1C,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IACzD,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACtD;AAED,qBAAa,cAAc;;gBAGb,GAAG,EAAE,oBAAoB;IAkBrC;;;;;OAKG;IACH,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB;QAAE,OAAO,EAAE,aAAa,EAAE,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE;IAyMnD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH;;;;;;;;;;OAUG;IACH,kBAAkB,CAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM;IACd;;;;;;;OAOG;IACH,MAAM,EAAE;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAC9D,IAAI;IA0FP;;;;;;;;;;;OAWG;IACH;;;;;;;;;;;;;;OAcG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAuBzF;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,mBAAmB,CACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM;IACjB;;;;;;;;OAQG;IACH,UAAU,EAAE,MAAM,GACjB,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAS1C;;;;;;;;;;;;OAYG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAapE;;;;;;;OAOG;IACH,wBAAwB,CACtB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB;QAAE,OAAO,EAAE,aAAa,EAAE,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE;IAInD;;;;;;;;OAQG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAGzD"}
|
package/dist/refusal-notices.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { REFUSAL_KINDS } from "./refusal-reasons.js";
|
|
2
|
+
import { refusalRecurrence } from "./park-refusals.js";
|
|
2
3
|
import { extractErrorMessage } from "./error-message.js";
|
|
3
4
|
import { TIER } from "./contacts-tier-migration.js";
|
|
4
5
|
import { MAX_REFUSALS_PER_READ, MAX_REFUSAL_READERS, } from "./session-node-types.js";
|
|
@@ -64,7 +65,8 @@ export class RefusalNotices {
|
|
|
64
65
|
const rows = (sessionId === undefined
|
|
65
66
|
? this.#db
|
|
66
67
|
.prepare(`SELECT n.session_id, n.reason, n.kind, n.impact, n.guidance, n.count, r.seen_count,
|
|
67
|
-
t.total AS lifetime_total, t.seeded AS lifetime_seeded
|
|
68
|
+
t.total AS lifetime_total, t.seeded AS lifetime_seeded,
|
|
69
|
+
t.first_at AS lifetime_first_at, t.last_at AS lifetime_last_at
|
|
68
70
|
FROM content_refusal_notices n
|
|
69
71
|
LEFT JOIN content_refusal_reads r
|
|
70
72
|
ON r.agent_id = n.agent_id AND r.session_id = n.session_id
|
|
@@ -78,7 +80,8 @@ export class RefusalNotices {
|
|
|
78
80
|
.all(consumerId, agentId, MAX_REFUSALS_PER_READ + 1)
|
|
79
81
|
: this.#db
|
|
80
82
|
.prepare(`SELECT n.session_id, n.reason, n.kind, n.impact, n.guidance, n.count, r.seen_count,
|
|
81
|
-
t.total AS lifetime_total, t.seeded AS lifetime_seeded
|
|
83
|
+
t.total AS lifetime_total, t.seeded AS lifetime_seeded,
|
|
84
|
+
t.first_at AS lifetime_first_at, t.last_at AS lifetime_last_at
|
|
82
85
|
FROM content_refusal_notices n
|
|
83
86
|
LEFT JOIN content_refusal_reads r
|
|
84
87
|
ON r.agent_id = n.agent_id AND r.session_id = n.session_id
|
|
@@ -137,6 +140,23 @@ export class RefusalNotices {
|
|
|
137
140
|
: row.lifetime_seeded === 1
|
|
138
141
|
? { timesTotalAtLeast: row.lifetime_total }
|
|
139
142
|
: { timesTotal: row.lifetime_total }),
|
|
143
|
+
/**
|
|
144
|
+
* `041-PARKSTUCK` Unit 2, property 2 — A LOOP SAYS THAT IT IS ONE.
|
|
145
|
+
*
|
|
146
|
+
* `times_total_at_least: 731` with nothing beside it reads as 731 things going wrong.
|
|
147
|
+
* The row knows better: it holds the first and last time this reason fired, so the
|
|
148
|
+
* cadence is a division rather than a guess. Absent when the row cannot support the
|
|
149
|
+
* claim — see `refusalRecurrence`.
|
|
150
|
+
*/
|
|
151
|
+
...(() => {
|
|
152
|
+
const r = row.lifetime_total === null || row.lifetime_first_at === null || row.lifetime_last_at === null
|
|
153
|
+
? null
|
|
154
|
+
: refusalRecurrence(row.lifetime_total, row.lifetime_first_at, row.lifetime_last_at,
|
|
155
|
+
// Review M5: the SAME flag the two fields above branch on. Reading it here is
|
|
156
|
+
// what stops the sentence asserting a figure the row records as a floor.
|
|
157
|
+
row.lifetime_seeded === 1);
|
|
158
|
+
return r === null ? {} : { recurrence: r };
|
|
159
|
+
})(),
|
|
140
160
|
...(firstTime ? {} : { repeat: true }),
|
|
141
161
|
});
|
|
142
162
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refusal-notices.js","sourceRoot":"","sources":["../src/refusal-notices.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,aAAa,EAAoB,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAEL,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAajC,MAAM,OAAO,cAAc;IAChB,IAAI,CAAuB;IAEpC,YAAY,GAAyB;QACnC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IAClB,CAAC;IAED,0FAA0F;IAC1F,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;IACxB,CAAC;IAED;;;;;;;OAOG;IACH,gBAAgB,GAAG,IAAI,GAAG,EAAgI,CAAC;IAC3J;;;;;OAKG;IACH,aAAa,CACX,SAAiB,EACjB,UAAkB,EAClB,SAAkB;QAElB,MAAM,GAAG,GAAoB,EAAE,CAAC;QAChC,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,OAAO,GAAkB,IAAI,CAAC;QAClC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAChD,CAAC;YAAC,MAAM,CAAC;gBACP,4FAA4F;gBAC5F,6EAA6E;gBAC7E,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;QACH,CAAC;QACD,IAAI,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACjC;;;;;;;;;;;;;;;;;;eAkBG;YACH,MAAM,IAAI,GAAG,CACX,SAAS,KAAK,SAAS;gBACrB,CAAC,CAAC,IAAI,CAAC,GAAG;qBACL,OAAO,CACN
|
|
1
|
+
{"version":3,"file":"refusal-notices.js","sourceRoot":"","sources":["../src/refusal-notices.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,19 @@ export declare const REFUSAL_KINDS: {
|
|
|
38
38
|
readonly LOST: "lost";
|
|
39
39
|
/** Nothing was received. This side's own send or acknowledgement failed to reach them. */
|
|
40
40
|
readonly OUTBOUND: "outbound";
|
|
41
|
+
/**
|
|
42
|
+
* Screened out and WITHHELD: checked, refused, kept as evidence — and NOTHING was recorded and
|
|
43
|
+
* nobody was acknowledged.
|
|
44
|
+
*
|
|
45
|
+
* ⚠️ **NOT `BLOCKED`, AND THE DIFFERENCE IS TWO FALSE CLAIMS — `041-PARKSTUCK` verification
|
|
46
|
+
* NEW-3.** `BLOCKED`'s header says the messages *"ARE recorded in the conversation's hash chain"*
|
|
47
|
+
* and *"the sender WAS acknowledged"*. Both are true of the LIVE inbound screener, which leafs at
|
|
48
|
+
* a canonical position and acks. Both are false on the park route: the conversation is already
|
|
49
|
+
* closed, so appending is precisely what that branch exists to avoid, and deleting a mailbox blob
|
|
50
|
+
* is not an acknowledgement to the sender. Reusing the kind imported a header that contradicted
|
|
51
|
+
* the notice printed underneath it.
|
|
52
|
+
*/
|
|
53
|
+
readonly WITHHELD: "withheld";
|
|
41
54
|
};
|
|
42
55
|
export type RefusalKind = (typeof REFUSAL_KINDS)[keyof typeof REFUSAL_KINDS];
|
|
43
56
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refusal-reasons.d.ts","sourceRoot":"","sources":["../src/refusal-reasons.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,aAAa;IACxB,6FAA6F;;IAE7F,2FAA2F;;IAE3F,mGAAmG;;IAEnG,gGAAgG;;IAEhG,0FAA0F;;
|
|
1
|
+
{"version":3,"file":"refusal-reasons.d.ts","sourceRoot":"","sources":["../src/refusal-reasons.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,aAAa;IACxB,6FAA6F;;IAE7F,2FAA2F;;IAE3F,mGAAmG;;IAEnG,gGAAgG;;IAEhG,0FAA0F;;IAE1F;;;;;;;;;;;OAWG;;CAEK,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE7E;;;;;;;GAOG;AACH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,QAQoC,CAAC;AAExE,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CA6D7D,CAAC;AAEF,eAAO,MAAM,eAAe;IAC1B,4FAA4F;;IAE5F,6FAA6F;;IAE7F,gFAAgF;;IAEhF;;;;;;;;;OASG;;IAEH;;;;;;;;;;OAUG;;IAEH;;;;;;;;;OASG;;CAEK,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAEnF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB;;;CAGnB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC;AAEtF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,cAAc,CAAC;AAE9D;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAwE1D,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,OAAO,EAAE,qBAAqB,EAAE,OAAO,GAAG;IAC9F,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,CASA"}
|
package/dist/refusal-reasons.js
CHANGED
|
@@ -38,6 +38,19 @@ export const REFUSAL_KINDS = {
|
|
|
38
38
|
LOST: "lost",
|
|
39
39
|
/** Nothing was received. This side's own send or acknowledgement failed to reach them. */
|
|
40
40
|
OUTBOUND: "outbound",
|
|
41
|
+
/**
|
|
42
|
+
* Screened out and WITHHELD: checked, refused, kept as evidence — and NOTHING was recorded and
|
|
43
|
+
* nobody was acknowledged.
|
|
44
|
+
*
|
|
45
|
+
* ⚠️ **NOT `BLOCKED`, AND THE DIFFERENCE IS TWO FALSE CLAIMS — `041-PARKSTUCK` verification
|
|
46
|
+
* NEW-3.** `BLOCKED`'s header says the messages *"ARE recorded in the conversation's hash chain"*
|
|
47
|
+
* and *"the sender WAS acknowledged"*. Both are true of the LIVE inbound screener, which leafs at
|
|
48
|
+
* a canonical position and acks. Both are false on the park route: the conversation is already
|
|
49
|
+
* closed, so appending is precisely what that branch exists to avoid, and deleting a mailbox blob
|
|
50
|
+
* is not an acknowledgement to the sender. Reusing the kind imported a header that contradicted
|
|
51
|
+
* the notice printed underneath it.
|
|
52
|
+
*/
|
|
53
|
+
WITHHELD: "withheld",
|
|
41
54
|
};
|
|
42
55
|
/**
|
|
43
56
|
* The header for each kind — total over `RefusalKind`, so a new kind cannot be added without one.
|
|
@@ -115,6 +128,12 @@ export const REFUSAL_KIND_GUIDANCE = {
|
|
|
115
128
|
"not be written to local storage, so they can never be delivered. THIS IS A FAULT ON THIS " +
|
|
116
129
|
"MACHINE, not a quiet counterparty. Waiting cannot recover them; the text is gone and only its " +
|
|
117
130
|
"hash remains. Fix the local fault named below, then ask them to resend.",
|
|
131
|
+
[REFUSAL_KINDS.WITHHELD]: "Message(s) aimed at this agent were refused by its screener and are being WITHHELD from you. " +
|
|
132
|
+
"Unlike a blocked message on a live conversation, NOTHING was recorded and the sender was NOT " +
|
|
133
|
+
"acknowledged — these arrived for a conversation that had already closed, so there was nothing " +
|
|
134
|
+
"to add them to. They were never shown to the agent, and that is the protection working. The " +
|
|
135
|
+
"bytes are kept so you can produce them; do not turn screening off to read them, and do not " +
|
|
136
|
+
"tell the sender what was caught.",
|
|
118
137
|
[REFUSAL_KINDS.OUTBOUND]: "NOTHING WAS REFUSED BY THIS AGENT — this is the other direction. A message YOU sent did not get " +
|
|
119
138
|
"through, and could not be saved to send later, so it is gone. Do not go to the counterparty " +
|
|
120
139
|
"about it: they never saw it and there is nothing for them to do. Send it again.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refusal-reasons.js","sourceRoot":"","sources":["../src/refusal-reasons.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"refusal-reasons.js","sourceRoot":"","sources":["../src/refusal-reasons.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { StartAgentResult } from "./start-agent.js";
|
|
1
2
|
import type { IpcHandler } from "./ipc-server.js";
|
|
2
3
|
import type { Logger } from "./types.js";
|
|
3
4
|
import type { KeyProvider } from "@cello-protocol/crypto";
|
|
@@ -15,13 +16,13 @@ export interface RegisterHandlerDeps {
|
|
|
15
16
|
};
|
|
16
17
|
waitForSignalingConnected: (mgr: SignalingManager, timeoutMs: number) => Promise<boolean>;
|
|
17
18
|
dropAgentSignaling: (agentName: string) => Promise<void>;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
/**
|
|
20
|
+
* ⚠️ THE THREE-WAY UNION, NOT `{ ok: true }`. The readiness half is the point: an agent can be
|
|
21
|
+
* online and DEAF — marked started while its standing receiver never came up — and the two states
|
|
22
|
+
* render identically at every surface without it. Declared narrow, dropping it is invisible to the
|
|
23
|
+
* type checker.
|
|
24
|
+
*/
|
|
25
|
+
startAgentInternal: (name: string) => StartAgentResult;
|
|
25
26
|
directoryEndpointResolver?: () => Promise<import("./signaling-connect.js").DirectoryEndpoint | null>;
|
|
26
27
|
loadedAgents: Array<{
|
|
27
28
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-handler.d.ts","sourceRoot":"","sources":["../src/register-handler.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAOnE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACvC,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,yBAAyB,CAAC;IACjE,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,KAAK;QAAE,SAAS,EAAE,gBAAgB,CAAC;QAAC,OAAO,EAAE,MAAM,SAAS,GAAG,IAAI,CAAA;KAAE,CAAC;IACxJ,yBAAyB,EAAE,CAAC,GAAG,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1F,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK
|
|
1
|
+
{"version":3,"file":"register-handler.d.ts","sourceRoot":"","sources":["../src/register-handler.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAOnE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACvC,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,yBAAyB,CAAC;IACjE,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,KAAK;QAAE,SAAS,EAAE,gBAAgB,CAAC;QAAC,OAAO,EAAE,MAAM,SAAS,GAAG,IAAI,CAAA;KAAE,CAAC;IACxJ,yBAAyB,EAAE,CAAC,GAAG,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1F,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD;;;;;OAKG;IACH,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,gBAAgB,CAAC;IACvD,yBAAyB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,wBAAwB,EAAE,iBAAiB,GAAG,IAAI,CAAC,CAAC;IACrG,YAAY,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,WAAW,CAAA;KAAE,CAAC,CAAC;IAChF,oBAAoB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAClE,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;CACtC;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CA4PvE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-handler.js","sourceRoot":"","sources":["../src/register-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"register-handler.js","sourceRoot":"","sources":["../src/register-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-content-handlers.d.ts","sourceRoot":"","sources":["../src/session-content-handlers.ts"],"names":[],"mappings":"AAmBA,OAAO,EAA2C,KAAK,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC9G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"session-content-handlers.d.ts","sourceRoot":"","sources":["../src/session-content-handlers.ts"],"names":[],"mappings":"AAmBA,OAAO,EAA2C,KAAK,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC9G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AA8G5D;;;;;;;GAOG;AACH;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,WAAW,CAAC,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,KAAK,CAAA;CAAE,GAAG,OAAO,CAEjG;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,CAY3F;AAED,wBAAgB,cAAc,CAC5B,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC,GACxD;IAAE,YAAY,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,UAAU,CAAA;CAAE,GAAG,SAAS,CAUjE;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,eAAe,EAAE,qBAAqB,CAAC;IACvC,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,SAAS,GAAG,SAAS,CAAC;IAC9D,mBAAmB,EAAE,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACjG,yBAAyB,EAAE,OAAO,CAAC;IACnC,+EAA+E;IAC/E,mBAAmB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IACzE,uBAAuB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACxF,qEAAqE;IACrE,iBAAiB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACzG;;;;;OAKG;IACH,mBAAmB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IACzE,uBAAuB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACxF,uEAAuE;IACvE,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,iGAAiG;IACjG,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C;;;;OAIG;IACH,YAAY,EAAE,iBAAiB,CAAC;CACjC;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAs1C7E"}
|
|
@@ -85,6 +85,8 @@ consumerId) {
|
|
|
85
85
|
times_since_dismissed: r.timesSinceDismissed,
|
|
86
86
|
...(r.timesTotal === undefined ? {} : { times_total: r.timesTotal }),
|
|
87
87
|
...(r.timesTotalAtLeast === undefined ? {} : { times_total_at_least: r.timesTotalAtLeast }),
|
|
88
|
+
// `041-PARKSTUCK`: the cadence beside the count, so a loop is not read as a crowd.
|
|
89
|
+
...(r.recurrence === undefined ? {} : { recurrence: r.recurrence }),
|
|
88
90
|
...(r.repeat === true ? { repeat: true } : {}),
|
|
89
91
|
})),
|
|
90
92
|
// DOD-M15-REFUSALTERMINAL-1 review F4: the counts need their sentence at BOTH doors. Without
|