@openscout/protocol 0.2.109 → 0.2.110
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/actors.d.ts +1 -1
- package/dist/actors.d.ts.map +1 -1
- package/dist/agent-notifications.d.ts +137 -0
- package/dist/agent-notifications.d.ts.map +1 -0
- package/dist/agent-notifications.js +148 -0
- package/dist/channel-invites.d.ts +3 -1
- package/dist/channel-invites.d.ts.map +1 -1
- package/dist/channel-membership.d.ts +10 -0
- package/dist/channel-membership.d.ts.map +1 -0
- package/dist/channel-membership.js +16 -0
- package/dist/chat-mentions.d.ts +4 -0
- package/dist/chat-mentions.d.ts.map +1 -0
- package/dist/chat-mentions.js +11 -0
- package/dist/chat-message-corrections.d.ts +28 -0
- package/dist/chat-message-corrections.d.ts.map +1 -0
- package/dist/chat-message-corrections.js +46 -0
- package/dist/chat-pins.d.ts +14 -0
- package/dist/chat-pins.d.ts.map +1 -0
- package/dist/chat-pins.js +37 -0
- package/dist/common.d.ts +1 -1
- package/dist/common.d.ts.map +1 -1
- package/dist/events.d.ts +4 -1
- package/dist/events.d.ts.map +1 -1
- package/dist/herdr-workspace-digest.d.ts +8 -4
- package/dist/herdr-workspace-digest.d.ts.map +1 -1
- package/dist/herdr-workspace-digest.js +18 -3
- package/dist/host-integrations.js +6 -6
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/invocations.d.ts +17 -2
- package/dist/invocations.d.ts.map +1 -1
- package/dist/invocations.js +1 -1
- package/dist/mcp-core-tools.d.ts +137 -0
- package/dist/mcp-core-tools.d.ts.map +1 -0
- package/dist/mcp-core-tools.js +27 -0
- package/dist/message-reactions.d.ts +5 -0
- package/dist/message-reactions.d.ts.map +1 -1
- package/dist/message-reactions.js +10 -1
- package/dist/orchestration-provider-map.d.ts.map +1 -1
- package/dist/orchestration-provider-map.js +9 -1
- package/dist/read-receipts.d.ts +38 -0
- package/dist/read-receipts.d.ts.map +1 -1
- package/dist/read-receipts.js +43 -1
- package/dist/runtime-catalog-contract.d.ts +14 -0
- package/dist/runtime-catalog-contract.d.ts.map +1 -1
- package/dist/runtime-catalog.d.ts.map +1 -1
- package/dist/runtime-catalog.generated.d.ts +88 -2
- package/dist/runtime-catalog.generated.d.ts.map +1 -1
- package/dist/runtime-catalog.generated.js +114 -12
- package/dist/runtime-catalog.js +28 -0
- package/dist/runtime-execution.d.ts +33 -2
- package/dist/runtime-execution.d.ts.map +1 -1
- package/dist/runtime-execution.js +34 -17
- package/dist/scout-agent-card.d.ts +2 -0
- package/dist/scout-agent-card.d.ts.map +1 -1
- package/dist/scout-agent-card.js +3 -0
- package/dist/scout-composer.d.ts.map +1 -1
- package/dist/scout-composer.js +23 -0
- package/dist/scout-delivery.d.ts +3 -1
- package/dist/scout-delivery.d.ts.map +1 -1
- package/dist/scout-dispatch.d.ts +13 -0
- package/dist/scout-dispatch.d.ts.map +1 -1
- package/dist/session-handle.d.ts +37 -0
- package/dist/session-handle.d.ts.map +1 -1
- package/dist/session-handle.js +58 -0
- package/dist/terminal-host-topology.d.ts +5 -2
- package/dist/terminal-host-topology.d.ts.map +1 -1
- package/dist/terminal-host-topology.js +2 -1
- package/dist/transports.d.ts +8 -1
- package/dist/transports.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/actors.ts +2 -0
- package/src/agent-notifications.ts +241 -0
- package/src/channel-invites.ts +4 -1
- package/src/channel-membership.ts +22 -0
- package/src/chat-mentions.ts +11 -0
- package/src/chat-message-corrections.ts +40 -0
- package/src/chat-pins.ts +40 -0
- package/src/common.ts +2 -0
- package/src/events.ts +3 -0
- package/src/herdr-workspace-digest.ts +23 -6
- package/src/host-integrations.ts +6 -6
- package/src/index.ts +10 -0
- package/src/invocations.ts +18 -3
- package/src/mcp-core-tools.ts +46 -0
- package/src/message-reactions.ts +16 -2
- package/src/orchestration-provider-map.ts +12 -1
- package/src/read-receipts.ts +71 -0
- package/src/runtime-catalog-contract.ts +16 -0
- package/src/runtime-catalog.generated.ts +114 -12
- package/src/runtime-catalog.ts +32 -0
- package/src/runtime-catalog.v1.json +20 -13
- package/src/runtime-execution.ts +70 -16
- package/src/scout-agent-card.ts +5 -0
- package/src/scout-composer.ts +26 -0
- package/src/scout-delivery.ts +3 -1
- package/src/scout-dispatch.ts +13 -0
- package/src/session-handle.ts +88 -0
- package/src/terminal-host-topology.ts +5 -2
- package/src/transports.ts +9 -0
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
* herdr `target` string so a caller can construct a handoff; performing it is
|
|
28
28
|
* the herdr client's job.
|
|
29
29
|
*/
|
|
30
|
-
import type { HerdrAgentStatus, HerdrSessionTopology, HerdrTabLayout, HerdrTopologyUnavailableReason } from "./terminal-host-topology.js";
|
|
30
|
+
import type { HerdrAgentSessionRef, HerdrAgentStatus, HerdrSessionTopology, HerdrTabLayout, HerdrTopologyUnavailableReason } from "./terminal-host-topology.js";
|
|
31
31
|
/** Total emitted panes across every group before the digest declares truncation. */
|
|
32
32
|
export declare const HERDR_DIGEST_PANE_CAP = 40;
|
|
33
33
|
/** Ceiling on each of the two lead lists; attention is a shortlist, not an inventory. */
|
|
@@ -35,15 +35,19 @@ export declare const HERDR_DIGEST_LEAD_CAP = 12;
|
|
|
35
35
|
export type HerdrStatusCounts = Record<HerdrAgentStatus, number>;
|
|
36
36
|
export type HerdrDigestPane = {
|
|
37
37
|
/**
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
38
|
+
* Observed host locator: terminal id when reported, else pane id. This is
|
|
39
|
+
* not a Scout address or a guaranteed CLI target (Herdr versions differ).
|
|
40
|
+
* Read handoffs use the host session + pane id. Null on a saved projection.
|
|
41
41
|
*/
|
|
42
42
|
target: string | null;
|
|
43
43
|
paneId: string;
|
|
44
44
|
workspaceId: string;
|
|
45
45
|
tabId: string;
|
|
46
|
+
/** Operator-assigned pane name, not a Scout agent address. */
|
|
47
|
+
name?: string | null;
|
|
46
48
|
label: string | null;
|
|
49
|
+
/** Herdr-reported identity, not a verified Scout session binding. */
|
|
50
|
+
agentSession?: HerdrAgentSessionRef | null;
|
|
47
51
|
/** Detected agent label ("claude", "codex"), or null for a plain shell. */
|
|
48
52
|
agent: string | null;
|
|
49
53
|
status: HerdrAgentStatus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"herdr-workspace-digest.d.ts","sourceRoot":"","sources":["../src/herdr-workspace-digest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAEhB,oBAAoB,EACpB,cAAc,EACd,8BAA8B,EAC/B,MAAM,6BAA6B,CAAC;AAErC,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,yFAAyF;AACzF,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAEjE,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;OAIG;IACH,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,2EAA2E;IAC3E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,gBAAgB,CAAC;IACzB,+EAA+E;IAC/E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,+EAA+E;IAC/E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,aAAa,EAAE,iBAAiB,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,kFAAkF;IAClF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;OAIG;IACH,WAAW,EAAE,8BAA8B,GAAG,IAAI,CAAC;IACnD,MAAM,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,qEAAqE;QACrE,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,MAAM,EAAE,iBAAiB,CAAC;IAC1B,qFAAqF;IACrF,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,gDAAgD;IAChD,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,wEAAwE;IACxE,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAaF,wBAAgB,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAEhE;
|
|
1
|
+
{"version":3,"file":"herdr-workspace-digest.d.ts","sourceRoot":"","sources":["../src/herdr-workspace-digest.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,7 +64,9 @@ function toDigestPane(pane) {
|
|
|
64
64
|
paneId: pane.paneId,
|
|
65
65
|
workspaceId: pane.workspaceId,
|
|
66
66
|
tabId: pane.tabId,
|
|
67
|
+
name: pane.name ?? null,
|
|
67
68
|
label: pane.label,
|
|
69
|
+
agentSession: pane.agentSession,
|
|
68
70
|
agent: pane.agent,
|
|
69
71
|
status: pane.agentStatus,
|
|
70
72
|
directory: paneDirectory(pane),
|
|
@@ -153,6 +155,10 @@ export function digestHerdrTopology(topology, options = {}) {
|
|
|
153
155
|
});
|
|
154
156
|
for (const pane of tab.panes) {
|
|
155
157
|
const digestPane = toDigestPane(pane);
|
|
158
|
+
if (!topology.running) {
|
|
159
|
+
digestPane.target = null;
|
|
160
|
+
digestPane.status = "unknown";
|
|
161
|
+
}
|
|
156
162
|
counts[digestPane.status] += 1;
|
|
157
163
|
if (digestPane.agent)
|
|
158
164
|
agentTotal += 1;
|
|
@@ -257,11 +263,17 @@ export function digestHerdrTopology(topology, options = {}) {
|
|
|
257
263
|
* every row buys nothing.
|
|
258
264
|
*/
|
|
259
265
|
function paneLine(pane) {
|
|
260
|
-
const
|
|
261
|
-
|
|
266
|
+
const title = pane.name ?? pane.label;
|
|
267
|
+
const parts = title
|
|
268
|
+
? [title, pane.agent ?? "shell", pane.paneId]
|
|
262
269
|
: [pane.paneId, pane.agent ?? "shell"];
|
|
270
|
+
if (pane.name && pane.label && pane.name !== pane.label)
|
|
271
|
+
parts.push(pane.label);
|
|
263
272
|
if (pane.directory)
|
|
264
273
|
parts.push(directoryName(pane.directory));
|
|
274
|
+
parts.push(pane.status);
|
|
275
|
+
if (pane.agentSession)
|
|
276
|
+
parts.push(`reported ${pane.agentSession.agent} ${pane.agentSession.kind}:${pane.agentSession.value}`);
|
|
265
277
|
if (pane.focused)
|
|
266
278
|
parts.push("focused");
|
|
267
279
|
return ` ${parts.join(" ")}`;
|
|
@@ -307,8 +319,9 @@ export function renderHerdrWorkspaceDigest(digest) {
|
|
|
307
319
|
// someone believing `unknown` meant done or that a stale layout was current.
|
|
308
320
|
for (const note of digest.notes)
|
|
309
321
|
lines.push(` ${note}`);
|
|
322
|
+
lines.push(` Observed ${new Date(digest.observedAt).toISOString()}; pane names are host labels, not Scout addresses.`);
|
|
310
323
|
if (digest.needsYou.length) {
|
|
311
|
-
lines.push("", "
|
|
324
|
+
lines.push("", "Requests");
|
|
312
325
|
for (const pane of digest.needsYou)
|
|
313
326
|
lines.push(paneLine(pane));
|
|
314
327
|
}
|
|
@@ -324,6 +337,8 @@ export function renderHerdrWorkspaceDigest(digest) {
|
|
|
324
337
|
const where = group.directory ? ` (${group.directory})` : "";
|
|
325
338
|
const hidden = omittedLabel(group.omittedCounts);
|
|
326
339
|
lines.push(` ${group.name}${where} — ${total} pane${total === 1 ? "" : "s"} · ${countsLine(group.counts)}${hidden ? ` · ${hidden}` : ""}`);
|
|
340
|
+
for (const pane of group.panes)
|
|
341
|
+
lines.push(` ${paneLine(pane)}`);
|
|
327
342
|
}
|
|
328
343
|
}
|
|
329
344
|
if (digest.shapes.length) {
|
|
@@ -5,8 +5,8 @@ export const SCOUT_HOST_INTEGRATIONS = [
|
|
|
5
5
|
roles: ["execution_harness", "agent_host", "mcp_host"],
|
|
6
6
|
harness: "claude",
|
|
7
7
|
homepage: "https://claude.ai/claude-code",
|
|
8
|
-
repositoryUrl: "https://github.com/
|
|
9
|
-
installHint: "/plugin marketplace add
|
|
8
|
+
repositoryUrl: "https://github.com/oscout/claude-scout",
|
|
9
|
+
installHint: "/plugin marketplace add oscout/claude-scout",
|
|
10
10
|
summary: "Claude Code can run Scout-routed work as a harness and expose Scout through a host plugin.",
|
|
11
11
|
},
|
|
12
12
|
{
|
|
@@ -15,8 +15,8 @@ export const SCOUT_HOST_INTEGRATIONS = [
|
|
|
15
15
|
roles: ["execution_harness", "agent_host", "mcp_host"],
|
|
16
16
|
harness: "codex",
|
|
17
17
|
homepage: "https://github.com/openai/codex",
|
|
18
|
-
repositoryUrl: "https://github.com/
|
|
19
|
-
installHint: "/plugin marketplace add
|
|
18
|
+
repositoryUrl: "https://github.com/oscout/codex-scout",
|
|
19
|
+
installHint: "/plugin marketplace add oscout/codex-scout",
|
|
20
20
|
summary: "Codex can run Scout-routed work as a harness and expose Scout through MCP/plugin surfaces.",
|
|
21
21
|
},
|
|
22
22
|
{
|
|
@@ -24,8 +24,8 @@ export const SCOUT_HOST_INTEGRATIONS = [
|
|
|
24
24
|
label: "Cursor",
|
|
25
25
|
roles: ["execution_harness", "agent_host", "mcp_host"],
|
|
26
26
|
harness: "cursor",
|
|
27
|
-
repositoryUrl: "https://github.com/
|
|
28
|
-
installHint: "See https://github.com/
|
|
27
|
+
repositoryUrl: "https://github.com/oscout/cursor-scout",
|
|
28
|
+
installHint: "See https://github.com/oscout/cursor-scout for the host-specific installer.",
|
|
29
29
|
summary: "Cursor is an agent host and execution target when routed through its supported CLI or MCP surfaces.",
|
|
30
30
|
},
|
|
31
31
|
{
|
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export * from "./conversations.js";
|
|
|
12
12
|
export * from "./conversation-projection.js";
|
|
13
13
|
export * from "./channel-identity.js";
|
|
14
14
|
export * from "./channel-invites.js";
|
|
15
|
+
export * from "./channel-membership.js";
|
|
15
16
|
export * from "./channel-reception.js";
|
|
16
17
|
export * from "./collaboration.js";
|
|
17
18
|
export * from "./assigned-roles.js";
|
|
@@ -61,4 +62,9 @@ export * from "./terminal-host-topology.js";
|
|
|
61
62
|
export * from "./herdr-workspace-digest.js";
|
|
62
63
|
export * from "./broker-routes.js";
|
|
63
64
|
export * from "./rendezvous.js";
|
|
65
|
+
export * from "./chat-pins.js";
|
|
66
|
+
export * from "./chat-message-corrections.js";
|
|
67
|
+
export * from "./chat-mentions.js";
|
|
68
|
+
export * from "./agent-notifications.js";
|
|
69
|
+
export * from "./mcp-core-tools.js";
|
|
64
70
|
//# 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":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAEhC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,+BAA+B,CAAC;AAE9C,cAAc,oBAAoB,CAAC;AAEnC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -12,6 +12,7 @@ export * from "./conversations.js";
|
|
|
12
12
|
export * from "./conversation-projection.js";
|
|
13
13
|
export * from "./channel-identity.js";
|
|
14
14
|
export * from "./channel-invites.js";
|
|
15
|
+
export * from "./channel-membership.js";
|
|
15
16
|
export * from "./channel-reception.js";
|
|
16
17
|
export * from "./collaboration.js";
|
|
17
18
|
export * from "./assigned-roles.js";
|
|
@@ -61,3 +62,8 @@ export * from "./terminal-host-topology.js";
|
|
|
61
62
|
export * from "./herdr-workspace-digest.js";
|
|
62
63
|
export * from "./broker-routes.js";
|
|
63
64
|
export * from "./rendezvous.js";
|
|
65
|
+
export * from "./chat-pins.js";
|
|
66
|
+
export * from "./chat-message-corrections.js";
|
|
67
|
+
export * from "./chat-mentions.js";
|
|
68
|
+
export * from "./agent-notifications.js";
|
|
69
|
+
export * from "./mcp-core-tools.js";
|
package/dist/invocations.d.ts
CHANGED
|
@@ -7,8 +7,12 @@ export type FlightState = "queued" | "waking" | "running" | "waiting" | "complet
|
|
|
7
7
|
export type InvocationSessionPolicy = "new" | "reuse" | "existing" | "fork"
|
|
8
8
|
/** @deprecated use reuse */
|
|
9
9
|
| "any";
|
|
10
|
-
/**
|
|
11
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Where a newly created harness session should be discoverable.
|
|
12
|
+
* `attached` (Codex only) runs the session on an already-running Codex
|
|
13
|
+
* app-server (the daemon control socket) instead of a Scout-spawned one.
|
|
14
|
+
*/
|
|
15
|
+
export type SessionPlacement = "background" | "foreground" | "attached";
|
|
12
16
|
export type InvocationForkSourceKind = "native_thread_clone" | "scout_state_snapshot";
|
|
13
17
|
export interface InvocationForkContextOptions {
|
|
14
18
|
maxMessages?: number;
|
|
@@ -46,6 +50,17 @@ export interface InvocationExecutionPreference {
|
|
|
46
50
|
forkFromSessionId?: ScoutId;
|
|
47
51
|
forkContext?: InvocationForkContextOptions;
|
|
48
52
|
lineage?: InvocationSessionLineage;
|
|
53
|
+
/**
|
|
54
|
+
* Hard per-turn execution budget in milliseconds, honoured only by the ACP
|
|
55
|
+
* wrappers (Grok, Kimi, OpenCode, Devin, Cursor). Tmux, Claude stream-JSON,
|
|
56
|
+
* Codex app-server, and Pi RPC do not implement a turn budget. Distinct
|
|
57
|
+
* from the requester's wait budget (`timeoutMs`): a caller willing to wait
|
|
58
|
+
* 24 h does not license a 24 h turn. When set it takes precedence over the
|
|
59
|
+
* OPENSCOUT_ACP_HARD_CEILING_MS default (typically to raise it); bounded to
|
|
60
|
+
* 6 h at the command boundary and always clamped to the administrator
|
|
61
|
+
* maximum OPENSCOUT_ACP_HARD_CEILING_MAX_MS (default 6 h).
|
|
62
|
+
*/
|
|
63
|
+
turnBudgetMs?: number;
|
|
49
64
|
}
|
|
50
65
|
export interface InvocationRequest {
|
|
51
66
|
id: ScoutId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invocations.d.ts","sourceRoot":"","sources":["../src/invocations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAEvE,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,SAAS,GACT,WAAW,GACX,QAAQ,GACR,MAAM,CAAC;AAEX,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,SAAS,GACT,WAAW,GACX,QAAQ,GACR,WAAW,CAAC;AAEhB,MAAM,MAAM,uBAAuB,GAC/B,KAAK,GACL,OAAO,GACP,UAAU,GACV,MAAM;AACR,4BAA4B;GAC1B,KAAK,CAAC;AAEV
|
|
1
|
+
{"version":3,"file":"invocations.d.ts","sourceRoot":"","sources":["../src/invocations.ts"],"names":[],"mappings":"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"}
|
package/dist/invocations.js
CHANGED
|
@@ -7,7 +7,7 @@ function cleanTraceTimestamp(value) {
|
|
|
7
7
|
: undefined;
|
|
8
8
|
}
|
|
9
9
|
function cleanTracePlacement(value) {
|
|
10
|
-
return value === "background" || value === "foreground" ? value : undefined;
|
|
10
|
+
return value === "background" || value === "foreground" || value === "attached" ? value : undefined;
|
|
11
11
|
}
|
|
12
12
|
function parseFlightSessionTraceEntry(value) {
|
|
13
13
|
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `mcp:core` tool tier: what the hosted MCP gateway (mcp.oscout.net)
|
|
3
|
+
* exposes to a remote client through the bridge. The bridge filters on these
|
|
4
|
+
* names, the gateway's agent guide counts them, and the public docs list them.
|
|
5
|
+
* Titles and access must match the registered tools; a desktop test enforces it.
|
|
6
|
+
*/
|
|
7
|
+
export type ScoutMcpCoreToolAccess = "read" | "write";
|
|
8
|
+
export type ScoutMcpCoreTool = {
|
|
9
|
+
name: string;
|
|
10
|
+
title: string;
|
|
11
|
+
access: ScoutMcpCoreToolAccess;
|
|
12
|
+
summary: string;
|
|
13
|
+
};
|
|
14
|
+
export declare const SCOUT_MCP_CORE_TOOL_CATALOG: readonly [{
|
|
15
|
+
readonly name: "whoami";
|
|
16
|
+
readonly title: "Scout Whoami";
|
|
17
|
+
readonly access: "read";
|
|
18
|
+
readonly summary: "Show the Scout identity and broker this connection acts as.";
|
|
19
|
+
}, {
|
|
20
|
+
readonly name: "agents_search";
|
|
21
|
+
readonly title: "Search Scout Agents";
|
|
22
|
+
readonly access: "read";
|
|
23
|
+
readonly summary: "Find agents on the mesh that can take a request.";
|
|
24
|
+
}, {
|
|
25
|
+
readonly name: "agents_resolve";
|
|
26
|
+
readonly title: "Resolve Scout Agent";
|
|
27
|
+
readonly access: "read";
|
|
28
|
+
readonly summary: "Resolve one agent handle, or report why it is ambiguous.";
|
|
29
|
+
}, {
|
|
30
|
+
readonly name: "ask";
|
|
31
|
+
readonly title: "Ask";
|
|
32
|
+
readonly access: "write";
|
|
33
|
+
readonly summary: "Ask an agent to answer, review, or build something, and get a handle to follow.";
|
|
34
|
+
}, {
|
|
35
|
+
readonly name: "invocations_get";
|
|
36
|
+
readonly title: "Get Scout Ask";
|
|
37
|
+
readonly access: "read";
|
|
38
|
+
readonly summary: "Read the current state of an ask.";
|
|
39
|
+
}, {
|
|
40
|
+
readonly name: "invocations_wait";
|
|
41
|
+
readonly title: "Wait For Scout Ask";
|
|
42
|
+
readonly access: "read";
|
|
43
|
+
readonly summary: "Wait briefly for an ask to finish and return its state.";
|
|
44
|
+
}, {
|
|
45
|
+
readonly name: "messages_send";
|
|
46
|
+
readonly title: "Send Scout Message";
|
|
47
|
+
readonly access: "write";
|
|
48
|
+
readonly summary: "Send a direct message or a channel post.";
|
|
49
|
+
}, {
|
|
50
|
+
readonly name: "messages_reply";
|
|
51
|
+
readonly title: "Reply to Scout Message";
|
|
52
|
+
readonly access: "write";
|
|
53
|
+
readonly summary: "Reply inside an existing conversation.";
|
|
54
|
+
}, {
|
|
55
|
+
readonly name: "messages_inbox";
|
|
56
|
+
readonly title: "Read Scout Inbox";
|
|
57
|
+
readonly access: "read";
|
|
58
|
+
readonly summary: "Read recent messages addressed to this identity.";
|
|
59
|
+
}, {
|
|
60
|
+
readonly name: "messages_channel";
|
|
61
|
+
readonly title: "Read Scout Channel";
|
|
62
|
+
readonly access: "read";
|
|
63
|
+
readonly summary: "Read recent messages in a named channel.";
|
|
64
|
+
}, {
|
|
65
|
+
readonly name: "current_reply_context";
|
|
66
|
+
readonly title: "Current Scout Reply Context";
|
|
67
|
+
readonly access: "read";
|
|
68
|
+
readonly summary: "Check whether a reply would continue an inbound ask.";
|
|
69
|
+
}, {
|
|
70
|
+
readonly name: "broker_feed";
|
|
71
|
+
readonly title: "Read Agent Broker Feed";
|
|
72
|
+
readonly access: "read";
|
|
73
|
+
readonly summary: "Read one agent's messages, deliveries, and errors in one view.";
|
|
74
|
+
}, {
|
|
75
|
+
readonly name: "tail_events";
|
|
76
|
+
readonly title: "Read Tail Events";
|
|
77
|
+
readonly access: "read";
|
|
78
|
+
readonly summary: "Read recent activity from the coding agents on the Scout machine.";
|
|
79
|
+
}, {
|
|
80
|
+
readonly name: "labels_brief";
|
|
81
|
+
readonly title: "Brief Scout Label";
|
|
82
|
+
readonly access: "read";
|
|
83
|
+
readonly summary: "Summarize the records that share a label.";
|
|
84
|
+
}, {
|
|
85
|
+
readonly name: "labels_feed";
|
|
86
|
+
readonly title: "Read Scout Label Feed";
|
|
87
|
+
readonly access: "read";
|
|
88
|
+
readonly summary: "Read the event backlog for a label.";
|
|
89
|
+
}, {
|
|
90
|
+
readonly name: "work_update";
|
|
91
|
+
readonly title: "Update Scout Work";
|
|
92
|
+
readonly access: "write";
|
|
93
|
+
readonly summary: "Move a work item through progress, review, and done.";
|
|
94
|
+
}, {
|
|
95
|
+
readonly name: "notify_operator";
|
|
96
|
+
readonly title: "Notify Operator";
|
|
97
|
+
readonly access: "write";
|
|
98
|
+
readonly summary: "Send the human operator a non-blocking note.";
|
|
99
|
+
}, {
|
|
100
|
+
readonly name: "consult_operator";
|
|
101
|
+
readonly title: "Consult Operator Without Blocking";
|
|
102
|
+
readonly access: "write";
|
|
103
|
+
readonly summary: "Ask the operator for advice while continuing with a stated default.";
|
|
104
|
+
}, {
|
|
105
|
+
readonly name: "feedback_send";
|
|
106
|
+
readonly title: "Send Scout Feedback";
|
|
107
|
+
readonly access: "write";
|
|
108
|
+
readonly summary: "Report a bug or rough edge in Scout to the OpenScout team.";
|
|
109
|
+
}, {
|
|
110
|
+
readonly name: "sessions_attach";
|
|
111
|
+
readonly title: "Attach External Session";
|
|
112
|
+
readonly access: "write";
|
|
113
|
+
readonly summary: "Give this conversation a Scout mailbox so agents can reply to it.";
|
|
114
|
+
}, {
|
|
115
|
+
readonly name: "sessions_get";
|
|
116
|
+
readonly title: "Get External Session";
|
|
117
|
+
readonly access: "read";
|
|
118
|
+
readonly summary: "Read the mailbox attached to this conversation.";
|
|
119
|
+
}, {
|
|
120
|
+
readonly name: "sessions_poll";
|
|
121
|
+
readonly title: "Poll External Session";
|
|
122
|
+
readonly access: "read";
|
|
123
|
+
readonly summary: "Read pending items in the attached mailbox.";
|
|
124
|
+
}, {
|
|
125
|
+
readonly name: "sessions_ack";
|
|
126
|
+
readonly title: "Acknowledge External Session Item";
|
|
127
|
+
readonly access: "write";
|
|
128
|
+
readonly summary: "Mark a mailbox item as received.";
|
|
129
|
+
}, {
|
|
130
|
+
readonly name: "sessions_reply";
|
|
131
|
+
readonly title: "Reply to External Session Item";
|
|
132
|
+
readonly access: "write";
|
|
133
|
+
readonly summary: "Send the final answer for a delivered task.";
|
|
134
|
+
}];
|
|
135
|
+
export type ScoutMcpCoreToolName = (typeof SCOUT_MCP_CORE_TOOL_CATALOG)[number]["name"];
|
|
136
|
+
export declare const SCOUT_MCP_CORE_TOOL_NAMES: readonly ScoutMcpCoreToolName[];
|
|
137
|
+
//# sourceMappingURL=mcp-core-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-core-tools.d.ts","sourceRoot":"","sources":["../src/mcp-core-tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEtD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,sBAAsB,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBQ,CAAC;AAEjD,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AAExF,eAAO,MAAM,yBAAyB,EAAE,SAAS,oBAAoB,EACf,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export const SCOUT_MCP_CORE_TOOL_CATALOG = [
|
|
2
|
+
{ name: "whoami", title: "Scout Whoami", access: "read", summary: "Show the Scout identity and broker this connection acts as." },
|
|
3
|
+
{ name: "agents_search", title: "Search Scout Agents", access: "read", summary: "Find agents on the mesh that can take a request." },
|
|
4
|
+
{ name: "agents_resolve", title: "Resolve Scout Agent", access: "read", summary: "Resolve one agent handle, or report why it is ambiguous." },
|
|
5
|
+
{ name: "ask", title: "Ask", access: "write", summary: "Ask an agent to answer, review, or build something, and get a handle to follow." },
|
|
6
|
+
{ name: "invocations_get", title: "Get Scout Ask", access: "read", summary: "Read the current state of an ask." },
|
|
7
|
+
{ name: "invocations_wait", title: "Wait For Scout Ask", access: "read", summary: "Wait briefly for an ask to finish and return its state." },
|
|
8
|
+
{ name: "messages_send", title: "Send Scout Message", access: "write", summary: "Send a direct message or a channel post." },
|
|
9
|
+
{ name: "messages_reply", title: "Reply to Scout Message", access: "write", summary: "Reply inside an existing conversation." },
|
|
10
|
+
{ name: "messages_inbox", title: "Read Scout Inbox", access: "read", summary: "Read recent messages addressed to this identity." },
|
|
11
|
+
{ name: "messages_channel", title: "Read Scout Channel", access: "read", summary: "Read recent messages in a named channel." },
|
|
12
|
+
{ name: "current_reply_context", title: "Current Scout Reply Context", access: "read", summary: "Check whether a reply would continue an inbound ask." },
|
|
13
|
+
{ name: "broker_feed", title: "Read Agent Broker Feed", access: "read", summary: "Read one agent's messages, deliveries, and errors in one view." },
|
|
14
|
+
{ name: "tail_events", title: "Read Tail Events", access: "read", summary: "Read recent activity from the coding agents on the Scout machine." },
|
|
15
|
+
{ name: "labels_brief", title: "Brief Scout Label", access: "read", summary: "Summarize the records that share a label." },
|
|
16
|
+
{ name: "labels_feed", title: "Read Scout Label Feed", access: "read", summary: "Read the event backlog for a label." },
|
|
17
|
+
{ name: "work_update", title: "Update Scout Work", access: "write", summary: "Move a work item through progress, review, and done." },
|
|
18
|
+
{ name: "notify_operator", title: "Notify Operator", access: "write", summary: "Send the human operator a non-blocking note." },
|
|
19
|
+
{ name: "consult_operator", title: "Consult Operator Without Blocking", access: "write", summary: "Ask the operator for advice while continuing with a stated default." },
|
|
20
|
+
{ name: "feedback_send", title: "Send Scout Feedback", access: "write", summary: "Report a bug or rough edge in Scout to the OpenScout team." },
|
|
21
|
+
{ name: "sessions_attach", title: "Attach External Session", access: "write", summary: "Give this conversation a Scout mailbox so agents can reply to it." },
|
|
22
|
+
{ name: "sessions_get", title: "Get External Session", access: "read", summary: "Read the mailbox attached to this conversation." },
|
|
23
|
+
{ name: "sessions_poll", title: "Poll External Session", access: "read", summary: "Read pending items in the attached mailbox." },
|
|
24
|
+
{ name: "sessions_ack", title: "Acknowledge External Session Item", access: "write", summary: "Mark a mailbox item as received." },
|
|
25
|
+
{ name: "sessions_reply", title: "Reply to External Session Item", access: "write", summary: "Send the final answer for a delivered task." },
|
|
26
|
+
];
|
|
27
|
+
export const SCOUT_MCP_CORE_TOOL_NAMES = SCOUT_MCP_CORE_TOOL_CATALOG.map((tool) => tool.name);
|
|
@@ -11,6 +11,11 @@ export interface MessageReactionChip {
|
|
|
11
11
|
emoji: string;
|
|
12
12
|
count: number;
|
|
13
13
|
me: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Who reacted, earliest first. Clients resolve names from the roster they
|
|
16
|
+
* already hold; an older server omits it and the chip shows only the count.
|
|
17
|
+
*/
|
|
18
|
+
actorIds?: string[];
|
|
14
19
|
}
|
|
15
20
|
/** One stored row. Canonical identity is `(messageId, actorId, emoji)`. */
|
|
16
21
|
export interface MessageReactionRecord {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-reactions.d.ts","sourceRoot":"","sources":["../src/message-reactions.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,eAAO,MAAM,oBAAoB,yCAA0C,CAAC;AAE5E,kDAAkD;AAClD,eAAO,MAAM,mBAAmB,iFAatB,CAAC;AAEX,eAAO,MAAM,wBAAwB,+GAG3B,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,eAAO,MAAM,4BAA4B,EAAE,WAAW,CAAC,MAAM,CAAqC,CAAC;AAEnG,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,aAAa,CAE5E;AAED,mFAAmF;AACnF,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"message-reactions.d.ts","sourceRoot":"","sources":["../src/message-reactions.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,eAAO,MAAM,oBAAoB,yCAA0C,CAAC;AAE5E,kDAAkD;AAClD,eAAO,MAAM,mBAAmB,iFAatB,CAAC;AAEX,eAAO,MAAM,wBAAwB,+GAG3B,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,eAAO,MAAM,4BAA4B,EAAE,WAAW,CAAC,MAAM,CAAqC,CAAC;AAEnG,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,aAAa,CAE5E;AAED,mFAAmF;AACnF,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;IACZ;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,2EAA2E;AAC3E,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,SAAS,qBAAqB,EAAE,EACtC,aAAa,EAAE,MAAM,GACpB,mBAAmB,EAAE,CAoCvB"}
|
|
@@ -35,6 +35,7 @@ export function projectMessageReactionChips(rows, viewerActorId) {
|
|
|
35
35
|
const current = byEmoji.get(row.emoji);
|
|
36
36
|
if (current) {
|
|
37
37
|
current.count += 1;
|
|
38
|
+
current.actors.push(row);
|
|
38
39
|
if (row.actorId === viewerActorId)
|
|
39
40
|
current.me = true;
|
|
40
41
|
if (row.createdAt < current.firstAt)
|
|
@@ -45,6 +46,7 @@ export function projectMessageReactionChips(rows, viewerActorId) {
|
|
|
45
46
|
count: 1,
|
|
46
47
|
me: row.actorId === viewerActorId,
|
|
47
48
|
firstAt: row.createdAt,
|
|
49
|
+
actors: [row],
|
|
48
50
|
});
|
|
49
51
|
}
|
|
50
52
|
}
|
|
@@ -59,5 +61,12 @@ export function projectMessageReactionChips(rows, viewerActorId) {
|
|
|
59
61
|
return time;
|
|
60
62
|
return allowlistIndex(left[0]) - allowlistIndex(right[0]);
|
|
61
63
|
})
|
|
62
|
-
.map(([emoji, value]) => ({
|
|
64
|
+
.map(([emoji, value]) => ({
|
|
65
|
+
emoji,
|
|
66
|
+
count: value.count,
|
|
67
|
+
me: value.me,
|
|
68
|
+
actorIds: value.actors
|
|
69
|
+
.sort((left, right) => left.createdAt - right.createdAt)
|
|
70
|
+
.map((row) => row.actorId),
|
|
71
|
+
}));
|
|
63
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestration-provider-map.d.ts","sourceRoot":"","sources":["../src/orchestration-provider-map.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orchestration-provider-map.d.ts","sourceRoot":"","sources":["../src/orchestration-provider-map.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,sBAAsB,yIAOzB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;AACxE,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;AAC/E,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;AACjG,MAAM,MAAM,wBAAwB,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AACrE,eAAO,MAAM,4BAA4B,8CAA+C,CAAC;AACzF,MAAM,MAAM,wBAAwB,GAAG,OAAO,4BAA4B,CAAC,MAAM,CAAC,CAAC;AAEnF,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,KAAK,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,OAAO,EAAE,KAAK,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,WAAW,EAAE,MAAM,CAAC;YACpB,gBAAgB,EAAE,MAAM,CAAC;YACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;YACvB,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE;gBACT,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;gBACrB,KAAK,EAAE,MAAM,CAAC;aACf,CAAC;SACH,CAAC,CAAC;KACJ,CAAC,CAAC;CACJ,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,wBAAwB,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,YAAY,EAAE,iBAAiB,CAAC;IAChC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,UAAU,EAAE,wBAAwB,CAAC;IACrC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,yBAAyB,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,qBAAqB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,IAAI,EAAE,mBAAmB,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,yBAAyB,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,YAAY,EAAE,+BAA+B,EAAE,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,gCAAgC,GACxC,SAAS,GACT,WAAW,GACX,kBAAkB,GAClB,aAAa,GACb,UAAU,CAAC;AAEf,MAAM,MAAM,0BAA0B,GAAG;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,yBAAyB,CAAC;IACjC,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,mBAAmB,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,gCAAgC,CAAC;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,qBAAqB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,8BAA8B,EAAE,CAAC;IAC9C,IAAI,EAAE,wBAAwB,CAAC;IAC/B,MAAM,EAAE,0BAA0B,EAAE,CAAC;CACtC,CAAC;AA4JF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,mBAAmB,CAEjF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAKjE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAIjE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,GAAG,IAAI,CAShF;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,yBAAyB,GAAG,MAAM,CAErF;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,yBAAyB,GAAG,MAAM,CAMvF;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,yBAAyB,EAChC,OAAO,SAAc,GACpB,MAAM,EAAE,CAaV;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,yBAAyB,EAChC,OAAO,SAAc,GACpB,MAAM,CAIR;AAED,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,uBAAuB,EAC/B,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAClC,IAAI,CAAC,EAAE,wBAAwB,CAAC;CAC5B,GACL,wBAAwB,CAgE1B;AA2CD,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,wBAAwB,GAAG,MAAM,CAiBpF;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,uBAAuB,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,EACtD,GAAG,EAAE,MAAM,GACV,qBAAqB,CAgCvB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { scoutRuntimeHarness, scoutRuntimeLatestModelInFamily } from "./runtime-execution.js";
|
|
1
2
|
const HOUR_MS = 60 * 60_000;
|
|
2
3
|
const DAY_MS = 24 * HOUR_MS;
|
|
3
4
|
export const ORCHESTRATION_ROLE_IDS = [
|
|
@@ -9,12 +10,19 @@ export const ORCHESTRATION_ROLE_IDS = [
|
|
|
9
10
|
"code_review",
|
|
10
11
|
];
|
|
11
12
|
export const ORCHESTRATION_ROUTING_BIASES = ["capability", "balanced", "quota"];
|
|
13
|
+
// The Opus role follows the catalog's newest Opus instead of pinning a release.
|
|
14
|
+
const OPUS = latestClaudeModel("Opus", { id: "claude-opus-5-5", label: "Opus 5.5" });
|
|
15
|
+
function latestClaudeModel(family, fallback) {
|
|
16
|
+
const id = scoutRuntimeLatestModelInFamily("claude", family);
|
|
17
|
+
const model = scoutRuntimeHarness("claude")?.models.find((entry) => entry.id === id);
|
|
18
|
+
return model ? { id: model.id, label: model.label } : fallback;
|
|
19
|
+
}
|
|
12
20
|
const RUNTIMES = {
|
|
13
21
|
fable: runtimeDefinition("Fable 5", "claude", "claude", "claude-fable-5", "max", "Fable", "Premium product taste, rapid design iterations, and premise-level critique.", "Uses the premium shared Claude allowance; do not spend it on routine mechanical work."),
|
|
14
22
|
sol: runtimeDefinition("GPT-5.6 Sol", "codex", "codex", "gpt-5.6-sol", "xhigh", null, "Load-bearing coding, debugging, integration, and technically grounded judgment.", "Highest Codex tier; reserve deep turns for work where failure is expensive."),
|
|
15
23
|
grok: runtimeDefinition("Grok 4.6", "grok", "grok", "grok-4.6", null, "Grok", "Independent assumption checking, deletion pressure, and adversarial critique.", "Do not make it the sole implementation authority; verify conclusions against repository evidence."),
|
|
16
24
|
kimi: runtimeDefinition("Kimi Code", "kimi", "kimi", null, null, "Kimi", "Dense repository and study synthesis through the native Kimi harness.", "The harness owns the concrete model and quota telemetry can be stale; probe before large fan-out."),
|
|
17
|
-
opus: runtimeDefinition(
|
|
25
|
+
opus: runtimeDefinition(OPUS.label, "claude", "claude", OPUS.id, "high", "Opus", "Long-context synthesis, nuanced architecture, and coherent product reasoning.", "Premium shared Claude quota; avoid routine scans and repetitive verification."),
|
|
18
26
|
glm: runtimeDefinition("GLM-5.2", "opencode", "opencode", "opencode-go/glm-5.2", null, "OpenCode", "Independent broad-context synthesis through OpenCode.", "OpenCode quota is not visible in Scout; use a bounded canary before scaling."),
|
|
19
27
|
terra: runtimeDefinition("GPT-5.6 Terra", "codex", "codex", "gpt-5.6-terra", "high", null, "Balanced implementation, correctness review, and technical critique.", "Prefer Sol for the hardest integration boundary when its additional spend is justified."),
|
|
20
28
|
minimax: runtimeDefinition("MiniMax M3", "minimax", "opencode", "opencode-go/minimax-m3", null, "OpenCode", "Cost-effective structured evidence collection and comparison.", "Verify load-bearing conclusions with a stronger reviewer before acceptance."),
|
package/dist/read-receipts.d.ts
CHANGED
|
@@ -9,4 +9,42 @@ export interface ConversationReadCursor {
|
|
|
9
9
|
updatedAt: number;
|
|
10
10
|
metadata?: MetadataMap;
|
|
11
11
|
}
|
|
12
|
+
/** A viewer's retained unread projection. Root messages and each thread keep
|
|
13
|
+
* separate cursors so opening a channel never reads unopened thread replies.
|
|
14
|
+
*/
|
|
15
|
+
export interface ChatReadLane {
|
|
16
|
+
rootMessageId: ScoutId | null;
|
|
17
|
+
lastReadMessageId: ScoutId | null;
|
|
18
|
+
latestMessageId: ScoutId | null;
|
|
19
|
+
unreadMessageIds: ScoutId[];
|
|
20
|
+
mentionMessageIds: ScoutId[];
|
|
21
|
+
/** The retained page cannot establish the entire unread history. */
|
|
22
|
+
incomplete: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface ChatReadState {
|
|
25
|
+
channelId: ScoutId;
|
|
26
|
+
actorId: ScoutId;
|
|
27
|
+
lanes: ChatReadLane[];
|
|
28
|
+
preferences?: ChatAttentionPreferences;
|
|
29
|
+
pins?: import("./chat-pins.js").ChatPin[];
|
|
30
|
+
}
|
|
31
|
+
/** Personal attention settings. Changing them never acknowledges messages. */
|
|
32
|
+
export interface ChatAttentionPreferences {
|
|
33
|
+
notificationMode: "all" | "mentions" | "muted";
|
|
34
|
+
followedThreadIds: ScoutId[];
|
|
35
|
+
/** Private bookmarks; absent on older stored preferences. */
|
|
36
|
+
savedMessageIds?: ScoutId[];
|
|
37
|
+
}
|
|
38
|
+
/** Set operations avoid overwriting another device's unrelated thread choice. */
|
|
39
|
+
export type ChatAttentionPreferenceChange = {
|
|
40
|
+
notificationMode: ChatAttentionPreferences["notificationMode"];
|
|
41
|
+
} | {
|
|
42
|
+
threadId: ScoutId;
|
|
43
|
+
following: boolean;
|
|
44
|
+
} | {
|
|
45
|
+
messageId: ScoutId;
|
|
46
|
+
saved: boolean;
|
|
47
|
+
};
|
|
48
|
+
export declare function readChatAttentionPreferences(value: unknown): ChatAttentionPreferences;
|
|
49
|
+
export declare function applyChatAttentionPreferenceChange(current: unknown, change: unknown): ChatAttentionPreferences;
|
|
12
50
|
//# sourceMappingURL=read-receipts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-receipts.d.ts","sourceRoot":"","sources":["../src/read-receipts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB"}
|
|
1
|
+
{"version":3,"file":"read-receipts.d.ts","sourceRoot":"","sources":["../src/read-receipts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,OAAO,GAAG,IAAI,CAAC;IAClC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,gBAAgB,EAAE,OAAO,EAAE,CAAC;IAC5B,iBAAiB,EAAE,OAAO,EAAE,CAAC;IAC7B,oEAAoE;IACpE,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,wBAAwB,CAAC;IACvC,IAAI,CAAC,EAAE,OAAO,gBAAgB,EAAE,OAAO,EAAE,CAAC;CAC3C;AAED,8EAA8E;AAC9E,MAAM,WAAW,wBAAwB;IACvC,gBAAgB,EAAE,KAAK,GAAG,UAAU,GAAG,OAAO,CAAC;IAC/C,iBAAiB,EAAE,OAAO,EAAE,CAAC;IAC7B,6DAA6D;IAC7D,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC;CAC7B;AAED,iFAAiF;AACjF,MAAM,MAAM,6BAA6B,GACrC;IAAE,gBAAgB,EAAE,wBAAwB,CAAC,kBAAkB,CAAC,CAAA;CAAE,GAClE;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GACzC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAE3C,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,wBAAwB,CAQrF;AAED,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,wBAAwB,CAwB9G"}
|
package/dist/read-receipts.js
CHANGED
|
@@ -1 +1,43 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export function readChatAttentionPreferences(value) {
|
|
2
|
+
const record = value && typeof value === "object" ? value : {};
|
|
3
|
+
return {
|
|
4
|
+
...(Array.isArray(record.savedMessageIds) ? { savedMessageIds: [...new Set(record.savedMessageIds.filter((id) => typeof id === "string" && id.length > 0))] } : {}),
|
|
5
|
+
notificationMode: record.notificationMode === "mentions" || record.notificationMode === "muted" ? record.notificationMode : "all",
|
|
6
|
+
followedThreadIds: Array.isArray(record.followedThreadIds)
|
|
7
|
+
? [...new Set(record.followedThreadIds.filter((id) => typeof id === "string" && id.length > 0))] : [],
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export function applyChatAttentionPreferenceChange(current, change) {
|
|
11
|
+
const next = readChatAttentionPreferences(current);
|
|
12
|
+
if (!change || typeof change !== "object" || Array.isArray(change))
|
|
13
|
+
throw new Error("Invalid attention preference change.");
|
|
14
|
+
const input = change;
|
|
15
|
+
const keys = Object.keys(input);
|
|
16
|
+
if (keys.length === 1 && keys[0] === "notificationMode"
|
|
17
|
+
&& (input.notificationMode === "all" || input.notificationMode === "mentions" || input.notificationMode === "muted")) {
|
|
18
|
+
return { ...next, notificationMode: input.notificationMode };
|
|
19
|
+
}
|
|
20
|
+
if (keys.length === 2 && typeof input.threadId === "string" && input.threadId.trim() === input.threadId
|
|
21
|
+
&& input.threadId.length > 0 && input.threadId.length <= 256 && typeof input.following === "boolean") {
|
|
22
|
+
const ids = new Set(next.followedThreadIds);
|
|
23
|
+
if (input.following)
|
|
24
|
+
ids.add(input.threadId);
|
|
25
|
+
else
|
|
26
|
+
ids.delete(input.threadId);
|
|
27
|
+
if (ids.size > 500)
|
|
28
|
+
throw new Error("Followed thread limit reached. Unfollow a thread before adding another.");
|
|
29
|
+
return { ...next, followedThreadIds: [...ids] };
|
|
30
|
+
}
|
|
31
|
+
if (keys.length === 2 && typeof input.messageId === "string" && input.messageId.trim() === input.messageId
|
|
32
|
+
&& input.messageId.length > 0 && input.messageId.length <= 256 && typeof input.saved === "boolean") {
|
|
33
|
+
const ids = new Set(next.savedMessageIds ?? []);
|
|
34
|
+
if (input.saved)
|
|
35
|
+
ids.add(input.messageId);
|
|
36
|
+
else
|
|
37
|
+
ids.delete(input.messageId);
|
|
38
|
+
if (ids.size > 500)
|
|
39
|
+
throw new Error("Saved message limit reached. Remove a saved message before adding another.");
|
|
40
|
+
return { ...next, savedMessageIds: [...ids] };
|
|
41
|
+
}
|
|
42
|
+
throw new Error("Invalid attention preference change.");
|
|
43
|
+
}
|