cli-jaw 2.17.26 → 2.17.27

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.
@@ -17,7 +17,7 @@
17
17
  // needs a durable reservation taken before the send plus an ambiguous state to
18
18
  // resolve afterwards, which is more machinery than this is worth today. The limit
19
19
  // is written down rather than papered over.
20
- import { findMentionWatchSeen, insertMentionWatchSeen, pruneMentionWatchSeen, getMentionWatchCursor, upsertMentionWatchCursor, setMentionWatchResumeBefore, getMentionWatchRotation, upsertMentionWatchRotation, } from '../core/db.js';
20
+ import { hasSeenMention, recordSeenMention, pruneSeenMentions, readCursor, advanceCursor, setResumeBefore, readRotation, recordRotation, } from './mention-watch-ledger.js';
21
21
  import { scanSlackMentions, MENTION_WATCH_DEFAULT_MAX_HITS } from '../slack/mention-watch.js';
22
22
  /** Intersect the job's channels with the live allowlist.
23
23
  *
@@ -44,7 +44,7 @@ function authorizedChannels(configured, allowlist) {
44
44
  (permitted.has(id) ? allowed : rejected).push(id);
45
45
  return { allowed, rejected };
46
46
  }
47
- export async function runMentionWatchTick(jobId, job, watch, deps) {
47
+ export async function runMentionWatchTick(ns, job, watch, deps) {
48
48
  const now = deps.now ?? Date.now;
49
49
  const log = deps.log ?? (() => { });
50
50
  const result = {
@@ -66,28 +66,20 @@ export async function runMentionWatchTick(jobId, job, watch, deps) {
66
66
  }
67
67
  if (allowed.length === 0)
68
68
  return result;
69
- const rotation = getMentionWatchRotation.get(jobId);
69
+ const rotationAnchor = readRotation(ns);
70
70
  const scan = await scanSlackMentions(deps.token, {
71
71
  userId: watch.userId,
72
72
  channelIds: allowed,
73
73
  selfUserId: deps.selfUserId,
74
74
  maxHits: watch.maxHits ?? MENTION_WATCH_DEFAULT_MAX_HITS,
75
75
  ...(watch.since ? { since: watch.since } : {}),
76
- ...(rotation?.last_channel_id ? { startAfterChannelId: rotation.last_channel_id } : {}),
76
+ ...(rotationAnchor ? { startAfterChannelId: rotationAnchor } : {}),
77
77
  ...(deps.fetchImpl ? { fetchImpl: deps.fetchImpl } : {}),
78
78
  ...(deps.signal ? { signal: deps.signal } : {}),
79
79
  state: {
80
- cursor: (channelId) => {
81
- const row = getMentionWatchCursor.get(jobId, channelId);
82
- // An empty string is the placeholder a resume-only write leaves
83
- // behind; it must not read as a cursor at ts 0.
84
- return row?.last_ts ? row.last_ts : undefined;
85
- },
86
- resumeBefore: (channelId) => {
87
- const row = getMentionWatchCursor.get(jobId, channelId);
88
- return row?.resume_before ? row.resume_before : undefined;
89
- },
90
- seen: (channelId, ts) => findMentionWatchSeen.get(jobId, channelId, ts) !== undefined,
80
+ cursor: (channelId) => readCursor(ns, channelId).lastTs,
81
+ resumeBefore: (channelId) => readCursor(ns, channelId).resumeBefore,
82
+ seen: (channelId, ts) => hasSeenMention(ns, channelId, ts),
91
83
  },
92
84
  });
93
85
  result.unreadable = scan.failed.map(f => f.channelId);
@@ -102,9 +94,9 @@ export async function runMentionWatchTick(jobId, job, watch, deps) {
102
94
  // whenever the answering loop exits early, and the next tick would repeat the
103
95
  // same reads.
104
96
  if (scan.lastChannelId)
105
- upsertMentionWatchRotation.run(jobId, scan.lastChannelId, now());
97
+ recordRotation(ns, scan.lastChannelId, now());
106
98
  for (const [channelId, bound] of scan.resumeBounds) {
107
- setMentionWatchResumeBefore.run(jobId, channelId, jobId, channelId, bound, now());
99
+ setResumeBefore(ns, channelId, bound, now());
108
100
  }
109
101
  for (const hit of scan.hits) {
110
102
  if (deps.signal?.aborted) {
@@ -131,7 +123,7 @@ export async function runMentionWatchTick(jobId, job, watch, deps) {
131
123
  if (!text) {
132
124
  // Deliberate silence is a decision about this message, so record it:
133
125
  // otherwise every tick asks again and pays for the same answer.
134
- insertMentionWatchSeen.run(jobId, hit.channelId, hit.ts, now());
126
+ recordSeenMention(ns, hit.channelId, hit.ts, now());
135
127
  result.quiet += 1;
136
128
  continue;
137
129
  }
@@ -142,7 +134,7 @@ export async function runMentionWatchTick(jobId, job, watch, deps) {
142
134
  log(`mention watch: send failed for ${hit.channelId}/${hit.ts}`);
143
135
  continue;
144
136
  }
145
- insertMentionWatchSeen.run(jobId, hit.channelId, hit.ts, now());
137
+ recordSeenMention(ns, hit.channelId, hit.ts, now());
146
138
  result.answered += 1;
147
139
  }
148
140
  if (scan.rateLimited)
@@ -157,7 +149,7 @@ export async function runMentionWatchTick(jobId, job, watch, deps) {
157
149
  const unsettled = new Set();
158
150
  const settledHigh = new Map();
159
151
  for (const hit of scan.hits) {
160
- if (findMentionWatchSeen.get(jobId, hit.channelId, hit.ts) === undefined) {
152
+ if (!hasSeenMention(ns, hit.channelId, hit.ts)) {
161
153
  unsettled.add(hit.channelId);
162
154
  continue;
163
155
  }
@@ -183,10 +175,10 @@ export async function runMentionWatchTick(jobId, job, watch, deps) {
183
175
  // message this tick failed to answer, even if a later one succeeded.
184
176
  if (unsettled.has(channelId))
185
177
  continue;
186
- upsertMentionWatchCursor.run(jobId, channelId, frontier, now());
178
+ advanceCursor(ns, channelId, frontier, now());
187
179
  // Receipts at or below the frontier can never be consulted again: the
188
180
  // next scan reads strictly above it.
189
- pruneMentionWatchSeen.run(jobId, channelId, frontier);
181
+ pruneSeenMentions(ns, channelId, frontier);
190
182
  }
191
183
  return result;
192
184
  }
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat-mention-watch.js","sourceRoot":"","sources":["../../../src/memory/heartbeat-mention-watch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"heartbeat-mention-watch.js","sourceRoot":"","sources":["../../../src/memory/heartbeat-mention-watch.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,9 @@ import { sendChannelOutput, targetFromChatId } from '../messaging/send.js';
14
14
  import { nextDeliverySeq, wasSelfDelivered } from '../messaging/turn-delivery.js';
15
15
  import { isHeartbeatDestination, isHeartbeatMentionWatch } from '../core/config.js';
16
16
  import { runMentionWatchTick } from './heartbeat-mention-watch.js';
17
+ import { watchNamespace } from './mention-watch-ledger.js';
18
+ import { detectLegacyMentionWatch, isQuarantined } from './legacy-mention-watch-quarantine.js';
19
+ import { verifiedSlackWorkspace } from '../slack/verified-workspace.js';
17
20
  import { getSlackSelfUserId } from '../slack/bot.js';
18
21
  import { readSlackAllowlist } from '../slack/events.js';
19
22
  import { getEmployees, insertHeartbeatAnchor } from '../core/db.js';
@@ -63,6 +66,10 @@ function pendingSnapshot(reason, policy) {
63
66
  pending: pendingJobs.length,
64
67
  deferredPending,
65
68
  agentBusyPending,
69
+ // How many jobs actually own a timer. A job held for an unmigrated ledger
70
+ // is absent here, which is the difference between 'not scheduled' and
71
+ // 'scheduled and refused on every tick'.
72
+ scheduled: heartbeatTimers.size,
66
73
  ...(reason ? { reason } : {}),
67
74
  ...(policy ? { policy } : {}),
68
75
  };
@@ -84,9 +91,25 @@ export function getHeartbeatRuntimeState() {
84
91
  export function startHeartbeat() {
85
92
  stopHeartbeat();
86
93
  const { jobs } = loadHeartbeatFile();
94
+ // Re-run on every (re)start rather than once at table creation. A job that
95
+ // was absent at upgrade time and returns under the same id later carries the
96
+ // same unmigrated ledger, and a one-shot check would wave it through.
97
+ const held = detectLegacyMentionWatch(Date.now());
98
+ if (held.length) {
99
+ log.warn(`[heartbeat] ${held.length} job(s) held for an unmigrated mention-watch ledger: ${held.join(', ')}`);
100
+ }
87
101
  for (const job of jobs) {
88
102
  if (!job?.enabled || !job.id)
89
103
  continue;
104
+ // No timer at all for a held job. The tick-time check still has to exist
105
+ // for a hold that appears while a timer is already live, but stopping only
106
+ // there would leave the job counted as active and logging a refusal on
107
+ // every interval — which reads as a broken job rather than a held one.
108
+ if (job.mentionWatch && isQuarantined(job.id)) {
109
+ log.warn(`[heartbeat:${job.name}] not scheduled: unmigrated mention-watch ledger. `
110
+ + `POST /api/heartbeat/${job.id}/mention-watch-fresh-start with a new since to clear it.`);
111
+ continue;
112
+ }
90
113
  const schedule = normalizeHeartbeatSchedule(job.schedule);
91
114
  if (schedule.kind === 'cron') {
92
115
  const cronError = validateHeartbeatCron(schedule.cron);
@@ -185,7 +208,30 @@ async function runMentionWatchJob(job, watch) {
185
208
  log.error(`[heartbeat:${job["name"]}] malformed destination — mention watch not run`);
186
209
  return false;
187
210
  }
188
- const outcome = await runMentionWatchTick(String(job["id"] ?? job["name"] ?? 'unknown'), job, watch, {
211
+ const jobId = String(job["id"] ?? job["name"] ?? 'unknown');
212
+ // A job whose v1 ledger was never migrated is HELD until an operator restarts
213
+ // it with a fresh floor. Checked here rather than at load time because the
214
+ // enabled flag in heartbeat.json is the operator's intent, while this is the
215
+ // system's judgement — and a job absent at upgrade time can return under the
216
+ // same id later.
217
+ if (isQuarantined(jobId)) {
218
+ log.error(`[heartbeat:${job["name"]}] held: this job has an unmigrated mention-watch ledger. `
219
+ + `Restart it with a fresh mentionWatch.since to clear the hold.`);
220
+ return false;
221
+ }
222
+ // The ledger is keyed by (workspace, user), so the workspace has to come from
223
+ // Slack rather than from settings — which records a team id once and never
224
+ // re-checks it against the token. Taken ONCE here and passed as an immutable
225
+ // snapshot: re-reading it per write would let a tick that started before a
226
+ // workspace switch file its later rows under the new one.
227
+ const verified = await verifiedSlackWorkspace(token);
228
+ const ns = verified && watchNamespace(jobId, verified.teamId, watch.userId);
229
+ if (!ns) {
230
+ log.error(`[heartbeat:${job["name"]}] could not verify the Slack workspace for this token; `
231
+ + `skipping this tick rather than filing the ledger under a guess`);
232
+ return false;
233
+ }
234
+ const outcome = await runMentionWatchTick(ns, job, watch, {
189
235
  token,
190
236
  selfUserId: getSlackSelfUserId(),
191
237
  allowlist: readSlackAllowlist(sc["channelIds"]),
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../../../src/memory/heartbeat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../../../src/memory/heartbeat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ // ─── Legacy mention-watch quarantine ─────────────────
2
+ // v1 ledger rows recorded no workspace or user, so they cannot be migrated into
3
+ // the v2 key without guessing whose they were — and a wrong guess is the
4
+ // misattribution v2 exists to prevent. Leaving them and starting fresh is not
5
+ // free either: a watch with no cursor walks backward through all reachable
6
+ // history and re-answers what it already answered.
7
+ //
8
+ // So a job with v1 rows is HELD OUT of scheduling until an operator restarts it
9
+ // with a fresh floor. Two properties make this correct rather than annoying:
10
+ //
11
+ // DURABLE. The marker lives in the database, not in heartbeat.json. The file is
12
+ // the operator intent; quarantine is the system judgement. Written to one place
13
+ // they erase each other, and a file rewrite cannot be made atomic with the
14
+ // table creation that detected the problem.
15
+ //
16
+ // NOT ONE-SHOT. Detection also has to catch a job that was absent at upgrade
17
+ // time and returns under the same id later, which is the original defect
18
+ // arriving by another road.
19
+ import { countLegacyMentionWatchRows, insertLegacyQuarantine, getLegacyQuarantine, requarantineLegacy, commitLegacyFreshStart, } from '../core/db.js';
20
+ /** Record every job that still has v1 rows.
21
+ *
22
+ * Idempotent by INSERT OR IGNORE, so running it on every load is safe and a
23
+ * job already resolved is not dragged back to pending. Re-quarantine after a
24
+ * rollback is a separate, deliberate transition below. */
25
+ export function detectLegacyMentionWatch(now) {
26
+ const rows = countLegacyMentionWatchRows.all();
27
+ const detected = [];
28
+ for (const row of rows) {
29
+ if (!row.job_id)
30
+ continue;
31
+ const existing = getLegacyQuarantine.get(row.job_id);
32
+ if (existing === undefined) {
33
+ insertLegacyQuarantine.run(row.job_id, now);
34
+ detected.push(row.job_id);
35
+ continue;
36
+ }
37
+ // Resolved, yet v1 rows are back. The only way that happens is a
38
+ // DOWNGRADE: an older build still holds v1 prepared statements and writes
39
+ // to the tables this build stopped using. Those receipts exist only in v1,
40
+ // so resuming on the v2 ledger would answer them again. Re-quarantine
41
+ // rather than trusting the old resolution.
42
+ if (existing.status === 'resolved') {
43
+ requarantineLegacy.run(now, row.job_id);
44
+ detected.push(row.job_id);
45
+ }
46
+ }
47
+ return detected;
48
+ }
49
+ /** True when this job must not be scheduled, whatever heartbeat.json says. */
50
+ export function isQuarantined(jobId) {
51
+ const row = getLegacyQuarantine.get(jobId);
52
+ return row?.status === 'pending';
53
+ }
54
+ export function quarantineState(jobId) {
55
+ const row = getLegacyQuarantine.get(jobId);
56
+ if (!row?.job_id || !row.status)
57
+ return null;
58
+ return {
59
+ jobId: row.job_id,
60
+ status: row.status,
61
+ ...(row.resolution ? { resolution: row.resolution } : {}),
62
+ };
63
+ }
64
+ /**
65
+ * Clear a quarantine, in ONE transaction.
66
+ *
67
+ * Archive, delete, and the status flip have to succeed or fail together. Split
68
+ * apart they produce two half-states: resolved with v1 rows still present, which
69
+ * re-quarantines immediately on the next load, or rows gone while still pending,
70
+ * which is safe but makes a retry ambiguous.
71
+ *
72
+ * The caller must have already written the new floor to heartbeat.json AND had
73
+ * the rename succeed. That ordering is the crash-safety argument: a crash
74
+ * between the two leaves the file updated and the job still pending, which is
75
+ * recoverable by retrying. The reverse order lifts the hold while the old
76
+ * configuration is still live, which replays the backlog.
77
+ */
78
+ export function approveLegacyFreshStart(jobId, resolution, now) {
79
+ const row = getLegacyQuarantine.get(jobId);
80
+ if (row === undefined)
81
+ return 'not-pending';
82
+ if (row.status === 'resolved') {
83
+ // A retry of the SAME approval is the caller asking again after a lost
84
+ // response, so report the success it already has. A DIFFERENT resolution
85
+ // is a second, conflicting decision and must not silently overwrite the
86
+ // recorded one.
87
+ return (row.resolution ?? '') === resolution ? 'already-resolved' : 'conflict';
88
+ }
89
+ // One transaction: archive, delete, and the status flip succeed or fail
90
+ // together. See commitLegacyFreshStart for why the halves are not acceptable.
91
+ return commitLegacyFreshStart(jobId, resolution, now) ? 'resolved' : 'not-pending';
92
+ }
93
+ //# sourceMappingURL=legacy-mention-watch-quarantine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-mention-watch-quarantine.js","sourceRoot":"","sources":["../../../src/memory/legacy-mention-watch-quarantine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ // ─── Mention-watch ledger (v2, namespace-scoped) ─────
2
+ // Every read and write here takes a WatchNamespace, and the SQL behind it always
3
+ // carries all three parts. That is the whole point of routing through one module:
4
+ // a bare prepared statement invites a caller to forget the workspace, and one
5
+ // forgotten predicate silently merges two people's ledgers.
6
+ //
7
+ // This does NOT make the mistake structurally impossible — a method could accept
8
+ // the namespace and leave it out of its WHERE clause. The real guarantee is the
9
+ // A/B symmetry suite in tests/unit/mention-watch-ledger.test.ts, which builds two
10
+ // namespaces over the same job/channel/ts and asserts neither can see or disturb
11
+ // the other.
12
+ import { findMentionWatchSeenV2, insertMentionWatchSeenV2, pruneMentionWatchSeenV2, getMentionWatchCursorV2, upsertMentionWatchCursorV2, setMentionWatchResumeBeforeV2, getMentionWatchRotationV2, upsertMentionWatchRotationV2, } from '../core/db.js';
13
+ /** Reject anything that cannot be a stable key.
14
+ *
15
+ * Trimmed once here so a padded id cannot become a second identity for the same
16
+ * person. An empty part means the caller could not establish identity, and a
17
+ * ledger write under a guessed key is worse than not writing at all. */
18
+ export function watchNamespace(jobId, workspaceId, userId) {
19
+ const job = typeof jobId === 'string' ? jobId.trim() : '';
20
+ const workspace = typeof workspaceId === 'string' ? workspaceId.trim() : '';
21
+ const user = typeof userId === 'string' ? userId.trim() : '';
22
+ if (!job || !workspace || !user)
23
+ return null;
24
+ return { jobId: job, workspaceId: workspace, userId: user };
25
+ }
26
+ export function hasSeenMention(ns, channelId, messageTs) {
27
+ return findMentionWatchSeenV2.get(ns.jobId, ns.workspaceId, ns.userId, channelId, messageTs) !== undefined;
28
+ }
29
+ export function recordSeenMention(ns, channelId, messageTs, now) {
30
+ insertMentionWatchSeenV2.run(ns.jobId, ns.workspaceId, ns.userId, channelId, messageTs, now);
31
+ }
32
+ /** Drop receipts at or below the frontier, which no later scan can reach. */
33
+ export function pruneSeenMentions(ns, channelId, frontier) {
34
+ pruneMentionWatchSeenV2.run(ns.jobId, ns.workspaceId, ns.userId, channelId, frontier);
35
+ }
36
+ export function readCursor(ns, channelId) {
37
+ const row = getMentionWatchCursorV2.get(ns.jobId, ns.workspaceId, ns.userId, channelId);
38
+ if (!row)
39
+ return {};
40
+ return {
41
+ // The empty string is the placeholder a resume-only write leaves behind;
42
+ // it must never read as a cursor at ts 0.
43
+ ...(row.last_ts ? { lastTs: row.last_ts } : {}),
44
+ ...(row.resume_before ? { resumeBefore: row.resume_before } : {}),
45
+ };
46
+ }
47
+ export function advanceCursor(ns, channelId, frontier, now) {
48
+ upsertMentionWatchCursorV2.run(ns.jobId, ns.workspaceId, ns.userId, channelId, frontier, now);
49
+ }
50
+ /** Remember where an unfinished backward walk stopped. */
51
+ export function setResumeBefore(ns, channelId, bound, now) {
52
+ setMentionWatchResumeBeforeV2.run(ns.jobId, ns.workspaceId, ns.userId, channelId, ns.jobId, ns.workspaceId, ns.userId, channelId, bound, now);
53
+ }
54
+ export function readRotation(ns) {
55
+ const row = getMentionWatchRotationV2.get(ns.jobId, ns.workspaceId, ns.userId);
56
+ return row?.last_channel_id || undefined;
57
+ }
58
+ export function recordRotation(ns, channelId, now) {
59
+ upsertMentionWatchRotationV2.run(ns.jobId, ns.workspaceId, ns.userId, channelId, now);
60
+ }
61
+ //# sourceMappingURL=mention-watch-ledger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mention-watch-ledger.js","sourceRoot":"","sources":["../../../src/memory/mention-watch-ledger.ts"],"names":[],"mappings":"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"}
@@ -14,8 +14,31 @@ import { applyOutputPolicy } from '../core/policy-hooks.js';
14
14
  import { redactChannelSecrets } from './redact.js';
15
15
  import { log } from '../core/logger.js';
16
16
  import { recordSelfDelivery } from './turn-delivery.js';
17
- export function stampOutboundSend(channel, ok) {
18
- log.event('outbound.send', { channel, result: ok ? 'ok' : 'error' });
17
+ /** The one record of an outbound send attempt.
18
+ *
19
+ * `channel` and `result` alone cannot answer the question this event exists to
20
+ * answer. Auditing 'did one turn answer twice' needs to know WHERE it went and
21
+ * WHAT KIND of send it was: a heartbeat report, a progress edit, and a turn's
22
+ * final answer are all `outbound.send` on the same channel, and counting them
23
+ * together makes a duplicate indistinguishable from ordinary traffic.
24
+ *
25
+ * This records the sends that pass through THIS function: mention-watch
26
+ * answers, heartbeat reports, agent `/api/channel/send` tool calls. It is not
27
+ * every Slack post — the dispatch settle path, the queued reply, and the
28
+ * forwarders call the transport directly, and those are recorded by
29
+ * `slack.post` in `src/slack/send-only-client.ts`. A census needs BOTH records;
30
+ * neither one alone is complete, which is the mistake devlog 050 documents.
31
+ *
32
+ * The message body is deliberately absent. A duplicate audit needs the surface
33
+ * and destination; the body is redacted elsewhere at real cost. */
34
+ export function stampOutboundSend(channel, ok, detail = {}) {
35
+ log.event('outbound.send', {
36
+ channel,
37
+ result: ok ? 'ok' : 'error',
38
+ ...(detail.targetId ? { target: detail.targetId } : {}),
39
+ ...(detail.type ? { type: detail.type } : {}),
40
+ ...(detail.viaAgent ? { via: 'agent' } : {}),
41
+ });
19
42
  }
20
43
  /**
21
44
  * The outbound side of the same allowlist the inbound gate reads.
@@ -353,7 +376,11 @@ export async function sendChannelOutput(req) {
353
376
  const sanitized = result.ok === false && typeof result.error === 'string'
354
377
  ? { ...result, error: redactChannelSecrets(result.error) }
355
378
  : result;
356
- stampOutboundSend(channel, sanitized.ok !== false);
379
+ stampOutboundSend(channel, sanitized.ok !== false, {
380
+ targetId: req.target?.targetId,
381
+ type: typeof req.type === 'string' ? req.type : undefined,
382
+ viaAgent: req.fromAgentSurface === true,
383
+ });
357
384
  // Only a send that actually reached the user can excuse skipping the
358
385
  // dispatch post, and only `req.target` is the resolved destination — the
359
386
  // caller's target may have been absent and filled in by the chain above.
@@ -1 +1 @@
1
- {"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/messaging/send.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/messaging/send.ts"],"names":[],"mappings":"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"}