cli-jaw 2.17.28 → 2.17.29
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.
|
@@ -33,6 +33,33 @@ export async function resolveSlackDmChannel(token, userId, fetchImpl) {
|
|
|
33
33
|
}
|
|
34
34
|
return { ok: true, channelId };
|
|
35
35
|
}
|
|
36
|
+
/** One record per Slack message that actually landed.
|
|
37
|
+
*
|
|
38
|
+
* This is the ONLY place every Slack post is visible. `sendChannelOutput` sees
|
|
39
|
+
* a subset — the dispatch settle path, the queued reply, the recovered-queue
|
|
40
|
+
* forwarder, and the generic forwarder all call this transport directly — so an
|
|
41
|
+
* audit that reads only `outbound.send` misses exactly the paths most likely to
|
|
42
|
+
* double.
|
|
43
|
+
*
|
|
44
|
+
* The two records are NOT interchangeable and must not be summed: a send routed
|
|
45
|
+
* through the choke point emits `outbound.send` AND lands here. `slack.post` is
|
|
46
|
+
* the post-level count, `outbound.send` the request-level one.
|
|
47
|
+
*
|
|
48
|
+
* Emitted per chunk rather than once at the end, because a long answer is
|
|
49
|
+
* several posts and a failure partway leaves the earlier ones on screen.
|
|
50
|
+
* Recording once on full success would report nothing for a send the user can
|
|
51
|
+
* already read — the direction that hides a duplicate. `index`/`of` keep the
|
|
52
|
+
* pieces recognizable as one answer.
|
|
53
|
+
*
|
|
54
|
+
* No body: destination and shape, never the words. */
|
|
55
|
+
function recordSlackPost(target, index, of) {
|
|
56
|
+
log.event('slack.post', {
|
|
57
|
+
target: target.targetId,
|
|
58
|
+
...(target.threadId ? { threaded: true } : {}),
|
|
59
|
+
index,
|
|
60
|
+
of,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
36
63
|
export async function sendSlackText(token, target, text, options = {}) {
|
|
37
64
|
const chunks = chunkSlackMessage(toMrkdwn(text));
|
|
38
65
|
// The FIRST chunk's ts. A caller that wants to remove what it just posted —
|
|
@@ -62,8 +89,17 @@ export async function sendSlackText(token, target, text, options = {}) {
|
|
|
62
89
|
...(target.threadId ? { thread_ts: target.threadId } : {}),
|
|
63
90
|
...(index === 0 && safeBlocks ? { blocks: safeBlocks } : {}),
|
|
64
91
|
}, callOpts);
|
|
65
|
-
if (result.ok
|
|
66
|
-
|
|
92
|
+
if (result.ok) {
|
|
93
|
+
if (index === 0 && result.data?.ts)
|
|
94
|
+
firstTs = result.data.ts;
|
|
95
|
+
// Recorded PER CHUNK, at the moment the post lands.
|
|
96
|
+
//
|
|
97
|
+
// Recording once after the loop counted a send, not a post: a chunked
|
|
98
|
+
// answer whose third chunk failed put two messages on screen and
|
|
99
|
+
// recorded nothing, which is the direction that hides a duplicate.
|
|
100
|
+
// `index`/`of` keep a long answer readable as one answer.
|
|
101
|
+
recordSlackPost(target, index, chunks.length);
|
|
102
|
+
}
|
|
67
103
|
if (!result.ok) {
|
|
68
104
|
// Keep an abort recognizable end to end (#417): describeSlackError
|
|
69
105
|
// would wrap it as 'Slack API error: slack_send_aborted', and
|
|
@@ -98,6 +134,10 @@ export async function sendSlackText(token, target, text, options = {}) {
|
|
|
98
134
|
// can delete: the retry is what actually created the message.
|
|
99
135
|
if (index === 0 && retried.data?.ts)
|
|
100
136
|
firstTs = retried.data.ts;
|
|
137
|
+
// The retry is what put this chunk on screen, so it is the post
|
|
138
|
+
// that has to be recorded. Missing it would make every
|
|
139
|
+
// throttled answer partly invisible to a duplicate audit.
|
|
140
|
+
recordSlackPost(target, index, chunks.length);
|
|
101
141
|
continue;
|
|
102
142
|
}
|
|
103
143
|
if (retried.error === 'slack_send_aborted') {
|
|
@@ -108,25 +148,6 @@ export async function sendSlackText(token, target, text, options = {}) {
|
|
|
108
148
|
return slackFailure(describeSlackError(result.error, result.data), result.status, result.retryAfterMs, result.grantedScopes);
|
|
109
149
|
}
|
|
110
150
|
}
|
|
111
|
-
// Recorded HERE, not only at `sendChannelOutput`, because most Slack posts
|
|
112
|
-
// never pass through that choke point: the dispatch settle path, the queued
|
|
113
|
-
// reply, the recovered-queue forwarder, and the generic forwarder all call
|
|
114
|
-
// this transport directly. Instrumenting only the choke point left those
|
|
115
|
-
// invisible — which is precisely the set a 'did one turn answer twice' audit
|
|
116
|
-
// needs, so a census over the other record could look complete while missing
|
|
117
|
-
// them.
|
|
118
|
-
//
|
|
119
|
-
// `chunks` matters: one logical answer over the Slack length limit becomes
|
|
120
|
-
// several posts, and counting posts instead of sends would read a long answer
|
|
121
|
-
// as a duplicate.
|
|
122
|
-
//
|
|
123
|
-
// No body, same reason as elsewhere: destination and shape, never the words.
|
|
124
|
-
log.event('slack.post', {
|
|
125
|
-
target: target.targetId,
|
|
126
|
-
...(target.threadId ? { threaded: true } : {}),
|
|
127
|
-
chunks: chunks.length,
|
|
128
|
-
result: 'ok',
|
|
129
|
-
});
|
|
130
151
|
// exactOptionalPropertyTypes: omit the key rather than sending undefined.
|
|
131
152
|
return firstTs ? { ok: true, ts: firstTs } : { ok: true };
|
|
132
153
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-only-client.js","sourceRoot":"","sources":["../../../src/slack/send-only-client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"send-only-client.js","sourceRoot":"","sources":["../../../src/slack/send-only-client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cli-jaw",
|
|
3
|
-
"version": "2.17.
|
|
3
|
+
"version": "2.17.29",
|
|
4
4
|
"description": "Personal AI assistant powered by Pi, Antigravity, AI-E, Claude, Claude E, Codex, Codex App, Cursor, Grok, Kiro, OpenCode, and Copilot — Web, Terminal, Telegram, and Discord interfaces with 107 built-in skills",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|