@stratusagent/channel-slack 0.12.3 → 0.12.5
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/README.md +48 -29
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +818 -100
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -40,23 +40,26 @@ they are the whole model:
|
|
|
40
40
|
[config](../../docs/guides/slack.md#a-home-channel)): there every new
|
|
41
41
|
top-level message from someone it admits is addressed to it, unless the
|
|
42
42
|
message names another agent.
|
|
43
|
-
4. **In a thread with several agents, an untagged reply goes to
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
agent's
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
who posted and when is kept, not what it said.
|
|
58
|
-
is read (`conversations.replies`) to tell; if
|
|
59
|
-
|
|
43
|
+
4. **In a thread with several agents, an untagged reply goes to the agent
|
|
44
|
+
the thread belongs to.** That is the first agent to hold it: the one its
|
|
45
|
+
first message named, or the one that posted it. Naming another agent
|
|
46
|
+
gets that agent's answer to that message, and nothing more: the thread
|
|
47
|
+
stays where it was, so the next untagged reply goes back to its owner
|
|
48
|
+
and the agent you pulled in stays quiet unless it is named again. A
|
|
49
|
+
message an agent already took stays that agent's: Slack redelivering it
|
|
50
|
+
after a restart goes back to the agent that accepted it — and if that
|
|
51
|
+
agent's app has not come back, the others stand down rather than run it
|
|
52
|
+
again. Another app's bot that spoke in the thread before any agent here
|
|
53
|
+
held it owns it the same way: an agent served by another daemon, or any
|
|
54
|
+
integration replying in the thread. So does a thread a team agent
|
|
55
|
+
(`agentMentions.team`) started. A thread another app *started* — an
|
|
56
|
+
alert, a deploy note — is not that app's: it belongs to the first agent
|
|
57
|
+
named under it. Only who posted and when is kept, not what it said.
|
|
58
|
+
After a restart the thread is read (`conversations.replies`) to tell; if
|
|
59
|
+
that read fails, the sessions decide (the one agent there, or the one
|
|
60
|
+
that spoke last) and a warning says why. A daemon that did not see a
|
|
61
|
+
thread begin, and has not read it yet, takes the first agent it saw
|
|
62
|
+
hold it as the owner.
|
|
60
63
|
5. **How an agent listens is the soul's to say.** Rules 3 and 4 are the
|
|
61
64
|
`thread` mode, the default. A soul with `listens: mentions` takes only
|
|
62
65
|
messages that name it, and hears the rest. One with `listens: judge`
|
|
@@ -75,16 +78,16 @@ they are the whole model:
|
|
|
75
78
|
decides on silence. Neither mode takes
|
|
76
79
|
part in the holder rule — that rule answers whose an untagged reply is,
|
|
77
80
|
and for these two the soul already has — so a thread-rule agent stands
|
|
78
|
-
down
|
|
79
|
-
one decides for itself, and the
|
|
80
|
-
and waits to be named. A judging agent that chooses to speak takes the
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
last
|
|
85
|
-
|
|
86
|
-
a placeholder posted early and filled in slowly sits above
|
|
87
|
-
posted while it was being written. A colleague's reply is never
|
|
81
|
+
down in a thread a mentions-only agent owns, or where a judging one has
|
|
82
|
+
chosen to speak: the judging one decides for itself, and the
|
|
83
|
+
mentions-only one is being talked to and waits to be named. A judging agent that chooses to speak takes the thread,
|
|
84
|
+
recorded once its reply has landed — so a message typed while it was
|
|
85
|
+
still deciding may be answered by both it and a thread-rule colleague
|
|
86
|
+
that held the thread before — and the owner takes it back by answering
|
|
87
|
+
in it. Which of the two spoke last is read off the thread, not the
|
|
88
|
+
clock: whichever reply sits lowest, since that is the one a reader
|
|
89
|
+
answers, and a placeholder posted early and filled in slowly sits above
|
|
90
|
+
a reply posted while it was being written. A colleague's reply is never
|
|
88
91
|
judged, only heard.
|
|
89
92
|
The window also counts messages this daemon has dispatched that the
|
|
90
93
|
session does not hold yet, so a burst typed inside one turn is judged
|
|
@@ -181,7 +184,7 @@ needs the history scopes; without them an agent hears a thread only from
|
|
|
181
184
|
the mention that brought it in. A colleague's reply is
|
|
182
185
|
heard by the daemon that posted it, not through Slack — an agent served by
|
|
183
186
|
another daemon is a stranger's bot to this one, and its replies are not
|
|
184
|
-
heard at all. They do count for who
|
|
187
|
+
heard at all. They do count for who a thread belongs to (rule 4).
|
|
185
188
|
|
|
186
189
|
Three edges worth knowing. An agent whose app was installed before the
|
|
187
190
|
history scopes below is told about mentions only, and behaves exactly as it
|
|
@@ -282,7 +285,8 @@ widens: for most gated tools it is a **standing grant** to the agent that
|
|
|
282
285
|
lasts until an operator revokes it (`stratus grants <agent>` lists and
|
|
283
286
|
revokes; see [Approvals](../../docs/guides/approvals.md)); for a shell
|
|
284
287
|
command it is that command's scope; for a browser action it is the site;
|
|
285
|
-
|
|
288
|
+
for a message read or send it is that tool on that one conversation; and
|
|
289
|
+
only for one that names no conversation is it the rest of this session.
|
|
286
290
|
|
|
287
291
|
The resolved message describes what the daemon did rather than which button
|
|
288
292
|
was pressed — `POST /approvals` accepts `always` whatever this channel
|
|
@@ -485,6 +489,21 @@ project-local `stratus.config.json` cannot appoint itself the principal.
|
|
|
485
489
|
The labels themselves are documented in
|
|
486
490
|
[Memory](../../docs/concepts/memory.md#where-a-fact-came-from).
|
|
487
491
|
|
|
492
|
+
### Other agents' bots
|
|
493
|
+
|
|
494
|
+
A bot is never the operator, and by default a bot's message is never a turn.
|
|
495
|
+
An agent with `slack.agentMentions` on (see
|
|
496
|
+
[the guide](../../docs/guides/slack.md#when-agents-tag-each-other)) makes
|
|
497
|
+
one exception: a **team** agent that names it, meaning one of this daemon's
|
|
498
|
+
agents or one listed in `slack.team`, narrowed by `agentMentionsFrom` if
|
|
499
|
+
that's set. That message runs a turn in its thread, labelled `unknown`
|
|
500
|
+
whatever `principals` says, since the other agent's words carry whatever its
|
|
501
|
+
own session was exposed to. It can't stop a turn or answer an approval. It
|
|
502
|
+
doesn't take the thread for the holder rule, and an untagged bot message
|
|
503
|
+
stays nothing. A thread admits at most `AGENT_MENTION_HOP_LIMIT` (4) agent
|
|
504
|
+
mentions in a row per daemon, until a person speaks there again. A refused
|
|
505
|
+
team mention is logged once, with the reason.
|
|
506
|
+
|
|
488
507
|
## Reading a channel
|
|
489
508
|
|
|
490
509
|
The adapter implements the channel contract's `readConversation`, which is
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { type AgentWorkspaces, type TrustLevel } from '@stratusagent/core';
|
|
2
2
|
import { type AdmitPolicy, type ChannelAdapter } from '@stratusagent/channels';
|
|
3
|
+
/**
|
|
4
|
+
* How many agent mentions one thread admits in a row before a person has
|
|
5
|
+
* to speak there again (card 513): enough for a question, an answer and a
|
|
6
|
+
* follow-up each way, and a stop to two agents tagging each other forever.
|
|
7
|
+
* Counted per daemon, in memory; a restart starts it again.
|
|
8
|
+
*/
|
|
9
|
+
export declare const AGENT_MENTION_HOP_LIMIT = 4;
|
|
3
10
|
/** One agent's Slack identity: its own app (avatar, presence) and tokens. */
|
|
4
11
|
export interface SlackAgentConfig {
|
|
5
12
|
agentId: string;
|
|
@@ -62,6 +69,22 @@ export interface SlackAgentConfig {
|
|
|
62
69
|
* adapter warns at startup.
|
|
63
70
|
*/
|
|
64
71
|
homeChannels?: string[];
|
|
72
|
+
/**
|
|
73
|
+
* Whether this agent answers a mention from another agent's Slack bot
|
|
74
|
+
* (card 513). Absent, the default, it ignores every bot, as it always
|
|
75
|
+
* has. Present, it answers a team agent that names it: one of this
|
|
76
|
+
* daemon's own agents, or one listed in `team` (name -> bot user id,
|
|
77
|
+
* for agents served by other daemons). `only`, when set, narrows that
|
|
78
|
+
* to the named team agents. Never any other bot. What a team agent says
|
|
79
|
+
* is labelled `unknown`, below a principal, since nothing here can see
|
|
80
|
+
* what its words were built from; it can't stop a turn or answer an
|
|
81
|
+
* approval, and a thread stops taking agent mentions at
|
|
82
|
+
* `AGENT_MENTION_HOP_LIMIT` until a person speaks there.
|
|
83
|
+
*/
|
|
84
|
+
agentMentions?: {
|
|
85
|
+
team?: Record<string, string>;
|
|
86
|
+
only?: string[];
|
|
87
|
+
};
|
|
65
88
|
}
|
|
66
89
|
export interface SlackSocketEventArgs {
|
|
67
90
|
ack: (response?: unknown) => Promise<void>;
|
|
@@ -470,5 +493,12 @@ export declare const withoutLinkPreviews: (web: SlackWebLike) => SlackWebLike;
|
|
|
470
493
|
* read.
|
|
471
494
|
*/
|
|
472
495
|
export declare const createSlackFileFetcher: (fetchImpl: typeof fetch) => SlackFileFetcher;
|
|
496
|
+
/**
|
|
497
|
+
* Whether a message asks this agent to stop (card 337): the word "stop"
|
|
498
|
+
* and nothing else but mentions and closing punctuation, in any case. A
|
|
499
|
+
* message that mentions someone and not this agent is for them. Exported
|
|
500
|
+
* for tests.
|
|
501
|
+
*/
|
|
502
|
+
export declare const isStopRequest: (text: string, botUserId: string) => boolean;
|
|
473
503
|
export declare const createSlackChannelAdapter: (options: SlackAdapterOptions) => ChannelAdapter;
|
|
474
504
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|