openryoko 2026.9.3 → 2026.9.4

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.
Files changed (87) hide show
  1. package/dist/package.json +1 -1
  2. package/dist/src/connectors/discord/engaged-threads.d.ts +24 -0
  3. package/dist/src/connectors/discord/engaged-threads.d.ts.map +1 -0
  4. package/dist/src/connectors/discord/engaged-threads.js +28 -0
  5. package/dist/src/connectors/discord/engaged-threads.js.map +1 -0
  6. package/dist/src/connectors/discord/index.d.ts +81 -1
  7. package/dist/src/connectors/discord/index.d.ts.map +1 -1
  8. package/dist/src/connectors/discord/index.js +326 -25
  9. package/dist/src/connectors/discord/index.js.map +1 -1
  10. package/dist/src/connectors/discord/remote.d.ts +5 -1
  11. package/dist/src/connectors/discord/remote.d.ts.map +1 -1
  12. package/dist/src/connectors/discord/remote.js +35 -0
  13. package/dist/src/connectors/discord/remote.js.map +1 -1
  14. package/dist/src/connectors/discord/respond-policy.d.ts +96 -0
  15. package/dist/src/connectors/discord/respond-policy.d.ts.map +1 -0
  16. package/dist/src/connectors/discord/respond-policy.js +85 -0
  17. package/dist/src/connectors/discord/respond-policy.js.map +1 -0
  18. package/dist/src/connectors/discord/threads.d.ts +20 -2
  19. package/dist/src/connectors/discord/threads.d.ts.map +1 -1
  20. package/dist/src/connectors/discord/threads.js +28 -1
  21. package/dist/src/connectors/discord/threads.js.map +1 -1
  22. package/dist/src/connectors/slack/agents-canvas.d.ts +1 -0
  23. package/dist/src/connectors/slack/agents-canvas.d.ts.map +1 -1
  24. package/dist/src/connectors/slack/agents-canvas.js +75 -22
  25. package/dist/src/connectors/slack/agents-canvas.js.map +1 -1
  26. package/dist/src/gateway/server.d.ts.map +1 -1
  27. package/dist/src/gateway/server.js +1 -0
  28. package/dist/src/gateway/server.js.map +1 -1
  29. package/dist/src/shared/types.d.ts +37 -0
  30. package/dist/src/shared/types.d.ts.map +1 -1
  31. package/dist/web/404.html +1 -1
  32. package/dist/web/__next.__PAGE__.txt +1 -1
  33. package/dist/web/__next._full.txt +1 -1
  34. package/dist/web/__next._tree.txt +1 -1
  35. package/dist/web/_next/static/chunks/{0los6agi5yfk-.js → 1ydtstxdw369l.js} +1 -1
  36. package/dist/web/_not-found/__next._full.txt +1 -1
  37. package/dist/web/_not-found/__next._not-found.__PAGE__.txt +1 -1
  38. package/dist/web/_not-found/__next._tree.txt +1 -1
  39. package/dist/web/_not-found.html +1 -1
  40. package/dist/web/_not-found.txt +1 -1
  41. package/dist/web/chat/__next._full.txt +1 -1
  42. package/dist/web/chat/__next._tree.txt +1 -1
  43. package/dist/web/chat/__next.chat.__PAGE__.txt +1 -1
  44. package/dist/web/chat.html +1 -1
  45. package/dist/web/chat.txt +1 -1
  46. package/dist/web/cron/__next._full.txt +1 -1
  47. package/dist/web/cron/__next._tree.txt +1 -1
  48. package/dist/web/cron/__next.cron.__PAGE__.txt +1 -1
  49. package/dist/web/cron.html +1 -1
  50. package/dist/web/cron.txt +1 -1
  51. package/dist/web/index.html +1 -1
  52. package/dist/web/index.txt +1 -1
  53. package/dist/web/kanban/__next._full.txt +1 -1
  54. package/dist/web/kanban/__next._tree.txt +1 -1
  55. package/dist/web/kanban/__next.kanban.__PAGE__.txt +1 -1
  56. package/dist/web/kanban.html +1 -1
  57. package/dist/web/kanban.txt +1 -1
  58. package/dist/web/logs/__next._full.txt +1 -1
  59. package/dist/web/logs/__next._tree.txt +1 -1
  60. package/dist/web/logs/__next.logs.__PAGE__.txt +1 -1
  61. package/dist/web/logs.html +1 -1
  62. package/dist/web/logs.txt +1 -1
  63. package/dist/web/org/__next._full.txt +1 -1
  64. package/dist/web/org/__next._tree.txt +1 -1
  65. package/dist/web/org/__next.org.__PAGE__.txt +1 -1
  66. package/dist/web/org.html +1 -1
  67. package/dist/web/org.txt +1 -1
  68. package/dist/web/sessions/__next._full.txt +1 -1
  69. package/dist/web/sessions/__next._tree.txt +1 -1
  70. package/dist/web/sessions/__next.sessions.__PAGE__.txt +1 -1
  71. package/dist/web/sessions.html +1 -1
  72. package/dist/web/sessions.txt +1 -1
  73. package/dist/web/settings/__next._full.txt +2 -2
  74. package/dist/web/settings/__next._tree.txt +1 -1
  75. package/dist/web/settings/__next.settings.__PAGE__.txt +2 -2
  76. package/dist/web/settings.html +1 -1
  77. package/dist/web/settings.txt +2 -2
  78. package/dist/web/skills/__next._full.txt +1 -1
  79. package/dist/web/skills/__next._tree.txt +1 -1
  80. package/dist/web/skills/__next.skills.__PAGE__.txt +1 -1
  81. package/dist/web/skills.html +1 -1
  82. package/dist/web/skills.txt +1 -1
  83. package/package.json +1 -1
  84. package/template/docs/connectors.md +88 -1
  85. /package/dist/web/_next/static/{Kudq_QcLnSoz7UYDmluYu → vW8A0EhHuyi1vRgv7Qkyg}/_buildManifest.js +0 -0
  86. /package/dist/web/_next/static/{Kudq_QcLnSoz7UYDmluYu → vW8A0EhHuyi1vRgv7Qkyg}/_clientMiddlewareManifest.js +0 -0
  87. /package/dist/web/_next/static/{Kudq_QcLnSoz7UYDmluYu → vW8A0EhHuyi1vRgv7Qkyg}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/connectors/discord/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/connectors/discord/index.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
- import type { Connector, ConnectorCapabilities, ConnectorHealth, IncomingMessage, Target } from "../../shared/types.js";
1
+ import type { Connector, ConnectorCapabilities, ConnectorHealth, DiscordRespondToConfig, IncomingMessage, Target } from "../../shared/types.js";
2
2
  export interface RemoteDiscordConfig {
3
3
  /** URL of the primary Jinn instance that holds the Discord WebSocket connection */
4
4
  proxyVia: string;
5
5
  channelId?: string;
6
+ /** Deterministic per-scope response gate, applied to proxied messages. */
7
+ respondTo?: DiscordRespondToConfig;
6
8
  }
7
9
  /**
8
10
  * A Discord connector that doesn't hold its own WebSocket connection.
@@ -13,6 +15,8 @@ export declare class RemoteDiscordConnector implements Connector {
13
15
  name: string;
14
16
  private handler;
15
17
  private baseUrl;
18
+ private readonly respondTo;
19
+ private warnedMissingAddressing;
16
20
  constructor(config: RemoteDiscordConfig);
17
21
  onMessage(handler: (msg: IncomingMessage) => void): void;
18
22
  /** Called by the /api/connectors/discord/incoming endpoint to deliver proxied messages */
@@ -1 +1 @@
1
- {"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../../../src/connectors/discord/remote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,MAAM,EACP,MAAM,uBAAuB,CAAC;AAG/B,MAAM,WAAW,mBAAmB;IAClC,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,qBAAa,sBAAuB,YAAW,SAAS;IACtD,IAAI,SAAa;IACjB,OAAO,CAAC,OAAO,CAAiD;IAChE,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,mBAAmB;IAIvC,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,GAAG,IAAI;IAIxD,0FAA0F;IAC1F,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;IAMpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,eAAe,IAAI,qBAAqB;IASxC,SAAS,IAAI,eAAe;IAO5B,iBAAiB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM;IAS7E,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAItE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIvE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAIvF,WAAW;CAkB1B"}
1
+ {"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../../../src/connectors/discord/remote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,qBAAqB,EACrB,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,MAAM,EACP,MAAM,uBAAuB,CAAC;AAS/B,MAAM,WAAW,mBAAmB;IAClC,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,sBAAsB,CAAC;CACpC;AAED;;;;GAIG;AACH,qBAAa,sBAAuB,YAAW,SAAS;IACtD,IAAI,SAAa;IACjB,OAAO,CAAC,OAAO,CAAiD;IAChE,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAC/D,OAAO,CAAC,uBAAuB,CAAS;gBAE5B,MAAM,EAAE,mBAAmB;IAKvC,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,GAAG,IAAI;IAIxD,0FAA0F;IAC1F,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;IA6CpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,eAAe,IAAI,qBAAqB;IASxC,SAAS,IAAI,eAAe;IAO5B,iBAAiB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM;IAS7E,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAItE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIvE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAIvF,WAAW;CAkB1B"}
@@ -1,4 +1,5 @@
1
1
  import { logger } from "../../shared/logger.js";
2
+ import { evaluateRespondPolicy, parseForwardedAddressing, resolveRespondMode, scopeForChannel, } from "./respond-policy.js";
2
3
  /**
3
4
  * A Discord connector that doesn't hold its own WebSocket connection.
4
5
  * Instead, it receives messages from the primary Jinn instance via HTTP
@@ -8,14 +9,48 @@ export class RemoteDiscordConnector {
8
9
  name = "discord";
9
10
  handler = null;
10
11
  baseUrl;
12
+ respondTo;
13
+ warnedMissingAddressing = false;
11
14
  constructor(config) {
12
15
  this.baseUrl = config.proxyVia.replace(/\/+$/, "");
16
+ this.respondTo = config.respondTo;
13
17
  }
14
18
  onMessage(handler) {
15
19
  this.handler = handler;
16
20
  }
17
21
  /** Called by the /api/connectors/discord/incoming endpoint to deliver proxied messages */
18
22
  deliverMessage(msg) {
23
+ const meta = (msg.transportMeta ?? {});
24
+ const isDM = meta.isDM === true;
25
+ // Addressing (ForwardedAddressing) is resolved by the primary instance:
26
+ // only it sees the Discord gateway, and it also tracks thread engagement
27
+ // — proxied sends run through its connector. When the flags are absent —
28
+ // a primary too old to send them — mention scopes fail closed (Slack
29
+ // precedent for unresolvable identity) and the sibling rule stays off
30
+ // (never drop an "always" message on missing metadata). Warn once, and
31
+ // only when a message actually lands in a mention-gated scope, so the
32
+ // required upgrade order is visible instead of a silent blackhole.
33
+ const { present, flags } = parseForwardedAddressing(meta);
34
+ if (!present &&
35
+ resolveRespondMode(this.respondTo, scopeForChannel(isDM)) === "mention" &&
36
+ !this.warnedMissingAddressing) {
37
+ this.warnedMissingAddressing = true;
38
+ logger.warn("[discord-remote] primary instance does not forward addressing metadata (its version predates respondTo) — routed messages in mention scopes are dropped until the primary is upgraded");
39
+ }
40
+ const respondDecision = evaluateRespondPolicy({
41
+ config: this.respondTo,
42
+ isDM,
43
+ wasMentioned: flags.wasBotAddressed,
44
+ isEngagedThread: flags.isEngagedThread,
45
+ });
46
+ if (!respondDecision.allow) {
47
+ logger.info(`[discord-remote] respondTo gate → silent (${respondDecision.reason}) for message ${msg.messageId}`);
48
+ return;
49
+ }
50
+ if (!isDM && flags.addressesOnlyOthers) {
51
+ logger.info(`[discord-remote] message addresses other user(s) — staying silent for message ${msg.messageId}`);
52
+ return;
53
+ }
19
54
  if (this.handler) {
20
55
  this.handler(msg);
21
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"remote.js","sourceRoot":"","sources":["../../../../src/connectors/discord/remote.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote.js","sourceRoot":"","sources":["../../../../src/connectors/discord/remote.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Deterministic response gate for the Discord connector.
3
+ *
4
+ * Port of the Slack `respondTo` gate (see ../slack/respond-policy.ts).
5
+ * Evaluated before the message reaches the session engine, so "mention"-gated
6
+ * scopes cost zero tokens and zero latency for dropped messages.
7
+ *
8
+ * Scope mapping (discord.js channel):
9
+ * - `isDMBased()` (1:1 DMs and group DMs) → dm
10
+ * - guild text channels and threads → channel
11
+ *
12
+ * Unlike Slack there is no LLM triage layer on this connector, so the gate is
13
+ * the only thing between an incoming channel message and a full engine reply.
14
+ */
15
+ import type { DiscordRespondMode, DiscordRespondToConfig } from "../../shared/types.js";
16
+ export type DiscordRespondScope = "dm" | "channel";
17
+ export declare function scopeForChannel(isDM: boolean): DiscordRespondScope;
18
+ /**
19
+ * Resolve the effective mode for a scope. Unset or unrecognized values fall
20
+ * back to "always" — config files are hand-edited YAML, so an invalid value
21
+ * must degrade to the legacy behavior rather than silence the bot.
22
+ */
23
+ export declare function resolveRespondMode(config: DiscordRespondToConfig | undefined, scope: DiscordRespondScope): DiscordRespondMode;
24
+ /** True when any scope requires an @-mention. */
25
+ export declare function hasMentionScope(config: DiscordRespondToConfig | undefined): boolean;
26
+ /**
27
+ * True when the policy needs engaged-thread tracking: some scope is
28
+ * mention-gated and engaged-thread continuation (the default) is on.
29
+ */
30
+ export declare function respondPolicyNeedsTracking(config: DiscordRespondToConfig | undefined): boolean;
31
+ export interface RespondPolicyInput {
32
+ config: DiscordRespondToConfig | undefined;
33
+ isDM: boolean;
34
+ wasMentioned: boolean;
35
+ /** Whether the message sits in a thread the bot has already engaged. */
36
+ isEngagedThread: boolean;
37
+ }
38
+ export type RespondDecision = {
39
+ allow: true;
40
+ } | {
41
+ allow: false;
42
+ reason: string;
43
+ };
44
+ export declare function evaluateRespondPolicy(input: RespondPolicyInput): RespondDecision;
45
+ /**
46
+ * True when the message addresses the bot: a direct @-mention, or a Discord
47
+ * reply to one of the bot's messages. Reply detection uses the replied-to
48
+ * author from the resolved reference, so it works whether or not the reply
49
+ * pinged ("@ ON"/"@ OFF") — replying to the bot is addressing the bot either
50
+ * way. Role mentions and @everyone/@here deliberately do NOT count, matching
51
+ * the Slack gate where @channel/@here never satisfy "mention".
52
+ */
53
+ export declare function wasBotAddressed(input: {
54
+ botUserId: string | undefined;
55
+ mentionedUserIds: ReadonlySet<string>;
56
+ repliedToUserId: string | undefined;
57
+ }): boolean;
58
+ /**
59
+ * Addressing the primary Discord instance forwards with a routed message
60
+ * (inside `transportMeta`), so the receiving instance can gate without its
61
+ * own Discord connection. transportMeta is untyped JSON on the wire, so the
62
+ * receiving side re-validates each flag with `=== true`. An older primary
63
+ * sends none of these; mention scopes then fail closed on the receiver —
64
+ * upgrade the primary before enabling a mention scope on a routed instance.
65
+ */
66
+ export interface ForwardedAddressing {
67
+ /** The message @-mentions the bot or replies to one of its messages. */
68
+ wasBotAddressed: boolean;
69
+ /** The message @-mentions or replies to somebody else, and not the bot. */
70
+ addressesOnlyOthers: boolean;
71
+ /** The message sits in a thread the bot has engaged (primary's tracker). */
72
+ isEngagedThread: boolean;
73
+ }
74
+ /**
75
+ * Parse ForwardedAddressing back out of a routed message's transportMeta.
76
+ * `present` is false when the primary predates the contract (flags missing
77
+ * from the wire) — the caller decides how loudly to surface that. Flags are
78
+ * re-validated with `=== true`: the wire is untyped JSON.
79
+ */
80
+ export declare function parseForwardedAddressing(meta: Record<string, unknown>): {
81
+ present: boolean;
82
+ flags: ForwardedAddressing;
83
+ };
84
+ /**
85
+ * True when the message explicitly addresses somebody else and not the bot:
86
+ * it @-mentions specific user(s), or replies to another user's message, and
87
+ * none of those users is the bot. Such messages stay silent even in "always"
88
+ * scopes — same sibling-mention rule as the Slack connector. Never applies to
89
+ * DMs, and @everyone/@here alone never triggers it (no specific addressee).
90
+ */
91
+ export declare function addressesOnlyOthers(input: {
92
+ botUserId: string | undefined;
93
+ mentionedUserIds: ReadonlySet<string>;
94
+ repliedToUserId: string | undefined;
95
+ }): boolean;
96
+ //# sourceMappingURL=respond-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"respond-policy.d.ts","sourceRoot":"","sources":["../../../../src/connectors/discord/respond-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAExF,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,SAAS,CAAC;AAEnD,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,mBAAmB,CAElE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,KAAK,EAAE,mBAAmB,GACzB,kBAAkB,CAGpB;AAED,iDAAiD;AACjD,wBAAgB,eAAe,CAAC,MAAM,EAAE,sBAAsB,GAAG,SAAS,GAAG,OAAO,CAGnF;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,sBAAsB,GAAG,SAAS,GAAG,OAAO,CAE9F;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAC3C,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,wEAAwE;IACxE,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,MAAM,eAAe,GAAG;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,eAAe,CAahF;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE;IACrC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,GAAG,OAAO,CAIV;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,wEAAwE;IACxE,eAAe,EAAE,OAAO,CAAC;IACzB,2EAA2E;IAC3E,mBAAmB,EAAE,OAAO,CAAC;IAC7B,4EAA4E;IAC5E,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACvE,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,mBAAmB,CAAC;CAC5B,CASA;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,GAAG,OAAO,CAIV"}
@@ -0,0 +1,85 @@
1
+ export function scopeForChannel(isDM) {
2
+ return isDM ? "dm" : "channel";
3
+ }
4
+ /**
5
+ * Resolve the effective mode for a scope. Unset or unrecognized values fall
6
+ * back to "always" — config files are hand-edited YAML, so an invalid value
7
+ * must degrade to the legacy behavior rather than silence the bot.
8
+ */
9
+ export function resolveRespondMode(config, scope) {
10
+ const raw = config?.[scope];
11
+ return raw === "mention" || raw === "never" ? raw : "always";
12
+ }
13
+ /** True when any scope requires an @-mention. */
14
+ export function hasMentionScope(config) {
15
+ if (!config)
16
+ return false;
17
+ return [config.dm, config.channel].includes("mention");
18
+ }
19
+ /**
20
+ * True when the policy needs engaged-thread tracking: some scope is
21
+ * mention-gated and engaged-thread continuation (the default) is on.
22
+ */
23
+ export function respondPolicyNeedsTracking(config) {
24
+ return hasMentionScope(config) && config?.engagedThreads !== false;
25
+ }
26
+ export function evaluateRespondPolicy(input) {
27
+ const scope = scopeForChannel(input.isDM);
28
+ const mode = resolveRespondMode(input.config, scope);
29
+ if (mode === "never") {
30
+ return { allow: false, reason: `respondTo.${scope}=never` };
31
+ }
32
+ if (mode === "mention" && !input.wasMentioned) {
33
+ if (input.config?.engagedThreads !== false && input.isEngagedThread) {
34
+ return { allow: true };
35
+ }
36
+ return { allow: false, reason: `respondTo.${scope}=mention and message has no @-mention` };
37
+ }
38
+ return { allow: true };
39
+ }
40
+ /**
41
+ * True when the message addresses the bot: a direct @-mention, or a Discord
42
+ * reply to one of the bot's messages. Reply detection uses the replied-to
43
+ * author from the resolved reference, so it works whether or not the reply
44
+ * pinged ("@ ON"/"@ OFF") — replying to the bot is addressing the bot either
45
+ * way. Role mentions and @everyone/@here deliberately do NOT count, matching
46
+ * the Slack gate where @channel/@here never satisfy "mention".
47
+ */
48
+ export function wasBotAddressed(input) {
49
+ if (!input.botUserId)
50
+ return false;
51
+ if (input.mentionedUserIds.has(input.botUserId))
52
+ return true;
53
+ return input.repliedToUserId === input.botUserId;
54
+ }
55
+ /**
56
+ * Parse ForwardedAddressing back out of a routed message's transportMeta.
57
+ * `present` is false when the primary predates the contract (flags missing
58
+ * from the wire) — the caller decides how loudly to surface that. Flags are
59
+ * re-validated with `=== true`: the wire is untyped JSON.
60
+ */
61
+ export function parseForwardedAddressing(meta) {
62
+ return {
63
+ present: "wasBotAddressed" in meta && "isEngagedThread" in meta,
64
+ flags: {
65
+ wasBotAddressed: meta.wasBotAddressed === true,
66
+ addressesOnlyOthers: meta.addressesOnlyOthers === true,
67
+ isEngagedThread: meta.isEngagedThread === true,
68
+ },
69
+ };
70
+ }
71
+ /**
72
+ * True when the message explicitly addresses somebody else and not the bot:
73
+ * it @-mentions specific user(s), or replies to another user's message, and
74
+ * none of those users is the bot. Such messages stay silent even in "always"
75
+ * scopes — same sibling-mention rule as the Slack connector. Never applies to
76
+ * DMs, and @everyone/@here alone never triggers it (no specific addressee).
77
+ */
78
+ export function addressesOnlyOthers(input) {
79
+ if (!input.botUserId)
80
+ return false;
81
+ if (wasBotAddressed(input))
82
+ return false;
83
+ return input.mentionedUserIds.size > 0 || input.repliedToUserId !== undefined;
84
+ }
85
+ //# sourceMappingURL=respond-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"respond-policy.js","sourceRoot":"","sources":["../../../../src/connectors/discord/respond-policy.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,eAAe,CAAC,IAAa;IAC3C,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAA0C,EAC1C,KAA0B;IAE1B,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;IAC5B,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC/D,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,eAAe,CAAC,MAA0C;IACxE,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAA0C;IACnF,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,MAAM,EAAE,cAAc,KAAK,KAAK,CAAC;AACrE,CAAC;AAYD,MAAM,UAAU,qBAAqB,CAAC,KAAyB;IAC7D,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACrD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,KAAK,QAAQ,EAAE,CAAC;IAC9D,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAC9C,IAAI,KAAK,CAAC,MAAM,EAAE,cAAc,KAAK,KAAK,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YACpE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,KAAK,uCAAuC,EAAE,CAAC;IAC7F,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,KAI/B;IACC,IAAI,CAAC,KAAK,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7D,OAAO,KAAK,CAAC,eAAe,KAAK,KAAK,CAAC,SAAS,CAAC;AACnD,CAAC;AAmBD;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAA6B;IAIpE,OAAO;QACL,OAAO,EAAE,iBAAiB,IAAI,IAAI,IAAI,iBAAiB,IAAI,IAAI;QAC/D,KAAK,EAAE;YACL,eAAe,EAAE,IAAI,CAAC,eAAe,KAAK,IAAI;YAC9C,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,KAAK,IAAI;YACtD,eAAe,EAAE,IAAI,CAAC,eAAe,KAAK,IAAI;SAC/C;KACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAInC;IACC,IAAI,CAAC,KAAK,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,eAAe,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC,OAAO,KAAK,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,CAAC;AAChF,CAAC"}
@@ -1,5 +1,23 @@
1
- import type { Message } from "discord.js";
2
- export declare function deriveSessionKey(message: Message, prefix?: string): string;
1
+ import { ChannelType, type Message } from "discord.js";
2
+ export declare function deriveSessionKey(message: Message, prefix?: string, opts?: {
3
+ threadPerMessage?: boolean;
4
+ }): string;
5
+ /**
6
+ * Thread title for replyStyle=thread: the starter message's first line,
7
+ * trimmed to Discord's 100-character thread-name limit. Trimming is by code
8
+ * point, so a boundary emoji is dropped whole rather than split into a
9
+ * broken surrogate half.
10
+ */
11
+ export declare function threadNameFor(content: string | undefined | null): string;
12
+ /**
13
+ * True when Discord allows creating a thread from a message in this channel
14
+ * — only guild text and announcement channels do. Voice/stage text chat and
15
+ * forum posts don't, so replyStyle=thread must not key sessions to a thread
16
+ * that can never exist there.
17
+ */
18
+ export declare function supportsMessageThreads(channel: {
19
+ type: ChannelType;
20
+ }): boolean;
3
21
  export declare function buildReplyContext(message: Message): Record<string, string | null>;
4
22
  export declare function isOldMessage(createdTimestamp: number, bootTimeMs: number): boolean;
5
23
  //# sourceMappingURL=threads.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"threads.d.ts","sourceRoot":"","sources":["../../../../src/connectors/discord/threads.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAY,GAAG,MAAM,CAQ7E;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAQjF;AAED,wBAAgB,YAAY,CAAC,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAElF"}
1
+ {"version":3,"file":"threads.d.ts","sourceRoot":"","sources":["../../../../src/connectors/discord/threads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAEvD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,MAAM,SAAY,EAClB,IAAI,GAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAO,GACxC,MAAM,CAeR;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAGxE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GAAG,OAAO,CAE9E;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAQjF;AAED,wBAAgB,YAAY,CAAC,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAElF"}
@@ -1,12 +1,39 @@
1
- export function deriveSessionKey(message, prefix = "discord") {
1
+ import { ChannelType } from "discord.js";
2
+ export function deriveSessionKey(message, prefix = "discord", opts = {}) {
2
3
  if (message.channel.isDMBased()) {
3
4
  return `${prefix}:dm:${message.author.id}`;
4
5
  }
5
6
  if (message.channel.isThread()) {
6
7
  return `${prefix}:thread:${message.channel.id}`;
7
8
  }
9
+ if (opts.threadPerMessage) {
10
+ // replyStyle=thread: the response will land in a thread rooted on this
11
+ // message, and a public thread reuses its root message's ID — key the
12
+ // session to it now so follow-ups inside the thread continue the same
13
+ // conversation.
14
+ return `${prefix}:thread:${message.id}`;
15
+ }
8
16
  return `${prefix}:${message.channel.id}`;
9
17
  }
18
+ /**
19
+ * Thread title for replyStyle=thread: the starter message's first line,
20
+ * trimmed to Discord's 100-character thread-name limit. Trimming is by code
21
+ * point, so a boundary emoji is dropped whole rather than split into a
22
+ * broken surrogate half.
23
+ */
24
+ export function threadNameFor(content) {
25
+ const firstLine = (content ?? "").split("\n")[0].trim();
26
+ return Array.from(firstLine || "conversation").slice(0, 100).join("");
27
+ }
28
+ /**
29
+ * True when Discord allows creating a thread from a message in this channel
30
+ * — only guild text and announcement channels do. Voice/stage text chat and
31
+ * forum posts don't, so replyStyle=thread must not key sessions to a thread
32
+ * that can never exist there.
33
+ */
34
+ export function supportsMessageThreads(channel) {
35
+ return channel.type === ChannelType.GuildText || channel.type === ChannelType.GuildAnnouncement;
36
+ }
10
37
  export function buildReplyContext(message) {
11
38
  const threadId = message.channel.isThread() ? message.channel.id : null;
12
39
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"threads.js","sourceRoot":"","sources":["../../../../src/connectors/discord/threads.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAAC,OAAgB,EAAE,MAAM,GAAG,SAAS;IACnE,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;QAChC,OAAO,GAAG,MAAM,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;IAC7C,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC/B,OAAO,GAAG,MAAM,WAAW,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,IAAI;KACnC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,gBAAwB,EAAE,UAAkB;IACvE,OAAO,gBAAgB,GAAG,UAAU,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"threads.js","sourceRoot":"","sources":["../../../../src/connectors/discord/threads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,YAAY,CAAC;AAEvD,MAAM,UAAU,gBAAgB,CAC9B,OAAgB,EAChB,MAAM,GAAG,SAAS,EAClB,OAAuC,EAAE;IAEzC,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;QAChC,OAAO,GAAG,MAAM,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;IAC7C,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC/B,OAAO,GAAG,MAAM,WAAW,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;IAClD,CAAC;IACD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,uEAAuE;QACvE,sEAAsE;QACtE,sEAAsE;QACtE,gBAAgB;QAChB,OAAO,GAAG,MAAM,WAAW,OAAO,CAAC,EAAE,EAAE,CAAC;IAC1C,CAAC;IACD,OAAO,GAAG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,OAAkC;IAC9D,MAAM,SAAS,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACxD,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAA8B;IACnE,OAAO,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,iBAAiB,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,IAAI;KACnC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,gBAAwB,EAAE,UAAkB;IACvE,OAAO,gBAAgB,GAAG,UAAU,CAAC;AACvC,CAAC"}
@@ -55,6 +55,7 @@ export declare class AgentsCanvasUpdater {
55
55
  private tick;
56
56
  private publish;
57
57
  private createCanvas;
58
+ private findExistingStandaloneCanvasId;
58
59
  private fetchExistingChannelCanvasId;
59
60
  private editCanvas;
60
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agents-canvas.d.ts","sourceRoot":"","sources":["../../../../src/connectors/slack/agents-canvas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAKrD,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA8ID;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,OAAO,EAAE,EACnB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GAClE,MAAM,CAoCR;AAwBD;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,wEAAwE;IACxE,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAGrB;gBAEU,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,kBAAkB;IAgBhD,KAAK,IAAI,IAAI;IAkBb,IAAI,IAAI,IAAI;YAQE,IAAI;YAsCJ,OAAO;YAsBP,YAAY;YA8CZ,4BAA4B;YAc5B,UAAU;CAWzB"}
1
+ {"version":3,"file":"agents-canvas.d.ts","sourceRoot":"","sources":["../../../../src/connectors/slack/agents-canvas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAKrD,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA8ID;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,OAAO,EAAE,EACnB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GAClE,MAAM,CAoCR;AAwBD;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,wEAAwE;IACxE,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAGrB;gBAEU,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,kBAAkB;IAgBhD,KAAK,IAAI,IAAI;IAkBb,IAAI,IAAI,IAAI;YAQE,IAAI;YAsCJ,OAAO;YAsBP,YAAY;YA4EZ,8BAA8B;YAkB9B,4BAA4B;YAc5B,UAAU;CAWzB"}
@@ -322,38 +322,82 @@ export class AgentsCanvasUpdater {
322
322
  this.canvasId = canvasId;
323
323
  }
324
324
  catch (err) {
325
- // If the channel already has a Canvas (created previously by us, by
326
- // another instance, or manually), Slack returns `channel_canvas_already_exists`.
327
- // Recover by reading the existing canvas id from conversations.info and
328
- // editing that one instead of bailing out.
329
- if (isChannelCanvasAlreadyExistsError(err)) {
330
- const existingId = await this.fetchExistingChannelCanvasId(this.config.channelId);
331
- if (!existingId) {
332
- throw err;
325
+ // Recover from two Slack failure modes:
326
+ // - `channel_canvas_already_exists`: this channel already has a canvas.
327
+ // - `free_team_canvas_tab_already_exists`: free plan has used its one
328
+ // allowed canvas (anywhere in the workspace).
329
+ // For both, find the existing canvas and edit it instead of looping.
330
+ if (isChannelCanvasAlreadyExistsError(err) || isFreeTeamCanvasAlreadyExistsError(err)) {
331
+ const existingId = (await this.fetchExistingChannelCanvasId(this.config.channelId))
332
+ ?? (await this.findExistingStandaloneCanvasId());
333
+ if (existingId) {
334
+ logger.info(`[agents-canvas] adopting existing canvas ${existingId}`);
335
+ this.canvasId = existingId;
336
+ saveState({ canvasId: existingId, channelId: this.config.channelId });
337
+ await this.editCanvas(existingId, markdown);
338
+ return;
333
339
  }
334
- logger.info(`[agents-canvas] adopting existing channel canvas ${existingId}`);
335
- this.canvasId = existingId;
336
- await this.editCanvas(existingId, markdown);
337
- }
338
- else {
339
- throw err;
340
+ logger.error("[agents-canvas] canvas already exists per Slack but none could be located — disabling updates to stop the retry loop.");
341
+ this.stop();
342
+ return;
340
343
  }
344
+ throw err;
341
345
  }
342
346
  }
343
347
  else {
344
- const res = await this.client.apiCall("canvases.create", {
345
- title: this.config.title,
346
- document_content: documentContent,
347
- });
348
- const canvasId = extractCanvasId(res);
349
- if (!canvasId) {
350
- throw new Error(`canvases.create returned no canvas_id: ${JSON.stringify(res).slice(0, 200)}`);
348
+ try {
349
+ const res = await this.client.apiCall("canvases.create", {
350
+ title: this.config.title,
351
+ document_content: documentContent,
352
+ });
353
+ const canvasId = extractCanvasId(res);
354
+ if (!canvasId) {
355
+ throw new Error(`canvases.create returned no canvas_id: ${JSON.stringify(res).slice(0, 200)}`);
356
+ }
357
+ this.canvasId = canvasId;
358
+ }
359
+ catch (err) {
360
+ // Free Slack workspaces are limited to a single standalone canvas. If
361
+ // one already exists (e.g. left over from a previous run), adopt it
362
+ // instead of looping forever on the create call.
363
+ if (isFreeTeamCanvasAlreadyExistsError(err)) {
364
+ const existingId = await this.findExistingStandaloneCanvasId();
365
+ if (existingId) {
366
+ logger.info(`[agents-canvas] adopting existing standalone canvas ${existingId}`);
367
+ this.canvasId = existingId;
368
+ saveState({ canvasId: existingId, channelId: this.config.channelId });
369
+ await this.editCanvas(existingId, markdown);
370
+ return;
371
+ }
372
+ logger.error("[agents-canvas] free workspace standalone canvas limit reached and no existing canvas matched by title — disabling updates. Set agentsCanvas.channelId to host the canvas in a channel instead.");
373
+ this.stop();
374
+ return;
375
+ }
376
+ throw err;
351
377
  }
352
- this.canvasId = canvasId;
353
378
  }
354
379
  saveState({ canvasId: this.canvasId, channelId: this.config.channelId });
355
380
  logger.info(`[agents-canvas] created canvas ${this.canvasId}`);
356
381
  }
382
+ async findExistingStandaloneCanvasId() {
383
+ try {
384
+ const res = await this.client.apiCall("files.list", {
385
+ types: "canvases",
386
+ count: 100,
387
+ });
388
+ const files = res.files;
389
+ if (!Array.isArray(files))
390
+ return null;
391
+ const match = files.find((f) => typeof f.title === "string" && f.title === this.config.title)
392
+ ?? files.find((f) => typeof f.name === "string" && f.name === this.config.title);
393
+ const id = match?.id;
394
+ return typeof id === "string" && id ? id : null;
395
+ }
396
+ catch (err) {
397
+ logger.warn(`[agents-canvas] failed to look up existing standalone canvas: ${err}`);
398
+ return null;
399
+ }
400
+ }
357
401
  async fetchExistingChannelCanvasId(channelId) {
358
402
  try {
359
403
  const info = await this.client.apiCall("conversations.info", { channel: channelId });
@@ -408,4 +452,13 @@ function isCanvasNotFoundError(err) {
408
452
  const msg = err instanceof Error ? err.message : String(err);
409
453
  return /(?:canvas|file).*(?:not_found|not found|missing|deleted)|(?:not_found|not found|missing|deleted).*(?:canvas|file)/i.test(msg);
410
454
  }
455
+ function isFreeTeamCanvasAlreadyExistsError(err) {
456
+ if (!err || typeof err !== "object")
457
+ return false;
458
+ const data = err.data;
459
+ if (data?.error === "free_team_canvas_tab_already_exists")
460
+ return true;
461
+ const msg = err instanceof Error ? err.message : String(err);
462
+ return /free_team_canvas_tab_already_exists/.test(msg);
463
+ }
411
464
  //# sourceMappingURL=agents-canvas.js.map