@plotday/twister 0.37.0 → 0.39.0

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 (158) hide show
  1. package/README.md +22 -16
  2. package/bin/commands/create.js +4 -4
  3. package/bin/commands/create.js.map +1 -1
  4. package/bin/index.js +1 -1
  5. package/bin/index.js.map +1 -1
  6. package/bin/templates/AGENTS.template.md +32 -0
  7. package/bin/templates/README.template.md +2 -2
  8. package/bin/utils/bundle.js +1 -1
  9. package/bin/utils/bundle.js.map +1 -1
  10. package/cli/templates/AGENTS.template.md +32 -0
  11. package/cli/templates/README.template.md +2 -2
  12. package/dist/{source.d.ts → connector.d.ts} +50 -23
  13. package/dist/connector.d.ts.map +1 -0
  14. package/dist/{source.js → connector.js} +51 -21
  15. package/dist/connector.js.map +1 -0
  16. package/dist/docs/assets/hierarchy.js +1 -1
  17. package/dist/docs/assets/navigation.js +1 -1
  18. package/dist/docs/assets/search.js +1 -1
  19. package/dist/docs/classes/{index.Source.html → index.Connector.html} +40 -24
  20. package/dist/docs/classes/index.Options.html +1 -1
  21. package/dist/docs/classes/tools_ai.AI.html +8 -4
  22. package/dist/docs/classes/tools_callbacks.Callbacks.html +1 -1
  23. package/dist/docs/classes/tools_integrations.Integrations.html +18 -11
  24. package/dist/docs/classes/tools_network.Network.html +1 -1
  25. package/dist/docs/classes/tools_plot.Plot.html +31 -22
  26. package/dist/docs/classes/tools_store.Store.html +1 -1
  27. package/dist/docs/classes/tools_tasks.Tasks.html +1 -1
  28. package/dist/docs/classes/tools_twists.Twists.html +4 -4
  29. package/dist/docs/classes/twist.Twist.html +1 -1
  30. package/dist/docs/documents/Building_Connectors.html +137 -0
  31. package/dist/docs/documents/Built-in_Tools.html +3 -3
  32. package/dist/docs/documents/Core_Concepts.html +5 -5
  33. package/dist/docs/documents/Getting_Started.html +1 -1
  34. package/dist/docs/enums/plot.ActionType.html +3 -1
  35. package/dist/docs/enums/plot.ActorType.html +4 -4
  36. package/dist/docs/enums/plot.ConferencingProvider.html +6 -6
  37. package/dist/docs/enums/tools_ai.AIModel.html +2 -2
  38. package/dist/docs/enums/tools_integrations.AuthProvider.html +11 -11
  39. package/dist/docs/hierarchy.html +1 -1
  40. package/dist/docs/index.html +3 -3
  41. package/dist/docs/interfaces/tools_ai.AIRequest.html +11 -11
  42. package/dist/docs/interfaces/tools_ai.AIResponse.html +9 -9
  43. package/dist/docs/interfaces/tools_ai.FilePart.html +5 -5
  44. package/dist/docs/interfaces/tools_ai.ImagePart.html +4 -4
  45. package/dist/docs/interfaces/tools_ai.ReasoningPart.html +4 -4
  46. package/dist/docs/interfaces/tools_ai.RedactedReasoningPart.html +3 -3
  47. package/dist/docs/interfaces/tools_ai.TextPart.html +3 -3
  48. package/dist/docs/interfaces/tools_ai.ToolCallPart.html +5 -5
  49. package/dist/docs/interfaces/tools_ai.ToolExecutionOptions.html +4 -4
  50. package/dist/docs/interfaces/tools_ai.ToolResultPart.html +5 -5
  51. package/dist/docs/media/AGENTS.md +82 -65
  52. package/dist/docs/media/MULTI_USER_AUTH.md +1 -1
  53. package/dist/docs/media/SYNC_STRATEGIES.md +9 -9
  54. package/dist/docs/modules/index.html +1 -1
  55. package/dist/docs/modules/tools_ai.html +1 -1
  56. package/dist/docs/modules/tools_plot.html +1 -1
  57. package/dist/docs/modules.html +1 -1
  58. package/dist/docs/types/plot.Action.html +4 -2
  59. package/dist/docs/types/plot.Actor.html +5 -5
  60. package/dist/docs/types/plot.ContentType.html +1 -1
  61. package/dist/docs/types/plot.Link.html +15 -15
  62. package/dist/docs/types/plot.NewActor.html +1 -1
  63. package/dist/docs/types/plot.NewContact.html +5 -5
  64. package/dist/docs/types/plot.NewLink.html +1 -1
  65. package/dist/docs/types/plot.NewLinkWithNotes.html +1 -1
  66. package/dist/docs/types/plot.NewNote.html +1 -1
  67. package/dist/docs/types/plot.NewTags.html +1 -1
  68. package/dist/docs/types/plot.NewThread.html +1 -1
  69. package/dist/docs/types/plot.NewThreadWithNotes.html +1 -1
  70. package/dist/docs/types/plot.Note.html +1 -1
  71. package/dist/docs/types/plot.NoteUpdate.html +1 -1
  72. package/dist/docs/types/plot.PickPriorityConfig.html +2 -2
  73. package/dist/docs/types/plot.Tags.html +1 -1
  74. package/dist/docs/types/plot.Thread.html +1 -1
  75. package/dist/docs/types/plot.ThreadCommon.html +7 -7
  76. package/dist/docs/types/plot.ThreadFilter.html +2 -2
  77. package/dist/docs/types/plot.ThreadMeta.html +1 -1
  78. package/dist/docs/types/plot.ThreadUpdate.html +1 -1
  79. package/dist/docs/types/plot.ThreadWithNotes.html +1 -1
  80. package/dist/docs/types/tools_ai.AIAssistantMessage.html +2 -2
  81. package/dist/docs/types/tools_ai.AICapabilities.html +6 -0
  82. package/dist/docs/types/tools_ai.AIMessage.html +1 -1
  83. package/dist/docs/types/tools_ai.AIOptions.html +4 -0
  84. package/dist/docs/types/tools_ai.AISource.html +1 -1
  85. package/dist/docs/types/tools_ai.AISystemMessage.html +2 -2
  86. package/dist/docs/types/tools_ai.AITool.html +1 -1
  87. package/dist/docs/types/tools_ai.AIToolMessage.html +2 -2
  88. package/dist/docs/types/tools_ai.AIToolSet.html +1 -1
  89. package/dist/docs/types/tools_ai.AIUsage.html +5 -5
  90. package/dist/docs/types/tools_ai.AIUserMessage.html +2 -2
  91. package/dist/docs/types/tools_ai.DataContent.html +1 -1
  92. package/dist/docs/types/tools_ai.ModelPreferences.html +4 -4
  93. package/dist/docs/types/tools_integrations.ArchiveLinkFilter.html +5 -5
  94. package/dist/docs/types/tools_integrations.AuthToken.html +4 -4
  95. package/dist/docs/types/tools_integrations.Authorization.html +4 -4
  96. package/dist/docs/types/tools_integrations.LinkTypeConfig.html +1 -1
  97. package/dist/docs/types/tools_plot.LinkSearchResult.html +1 -0
  98. package/dist/docs/types/tools_plot.NoteSearchResult.html +1 -0
  99. package/dist/docs/types/tools_plot.SearchOptions.html +7 -0
  100. package/dist/docs/types/tools_plot.SearchResult.html +1 -0
  101. package/dist/docs/variables/tools_plot.SEARCH_DEFAULT_LIMIT.html +2 -0
  102. package/dist/docs/variables/tools_plot.SEARCH_MAX_LIMIT.html +2 -0
  103. package/dist/index.d.ts +1 -1
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +1 -1
  106. package/dist/index.js.map +1 -1
  107. package/dist/llm-docs/connector.d.ts +9 -0
  108. package/dist/llm-docs/connector.d.ts.map +1 -0
  109. package/dist/llm-docs/connector.js +8 -0
  110. package/dist/llm-docs/connector.js.map +1 -0
  111. package/dist/llm-docs/index.js +2 -2
  112. package/dist/llm-docs/index.js.map +1 -1
  113. package/dist/llm-docs/plot.d.ts +1 -1
  114. package/dist/llm-docs/plot.d.ts.map +1 -1
  115. package/dist/llm-docs/plot.js +1 -1
  116. package/dist/llm-docs/plot.js.map +1 -1
  117. package/dist/llm-docs/tools/ai.d.ts +1 -1
  118. package/dist/llm-docs/tools/ai.d.ts.map +1 -1
  119. package/dist/llm-docs/tools/ai.js +1 -1
  120. package/dist/llm-docs/tools/ai.js.map +1 -1
  121. package/dist/llm-docs/tools/integrations.d.ts +1 -1
  122. package/dist/llm-docs/tools/integrations.d.ts.map +1 -1
  123. package/dist/llm-docs/tools/integrations.js +1 -1
  124. package/dist/llm-docs/tools/integrations.js.map +1 -1
  125. package/dist/llm-docs/tools/plot.d.ts +1 -1
  126. package/dist/llm-docs/tools/plot.d.ts.map +1 -1
  127. package/dist/llm-docs/tools/plot.js +1 -1
  128. package/dist/llm-docs/tools/plot.js.map +1 -1
  129. package/dist/llm-docs/twist-guide-template.d.ts +1 -1
  130. package/dist/llm-docs/twist-guide-template.d.ts.map +1 -1
  131. package/dist/llm-docs/twist-guide-template.js +1 -1
  132. package/dist/llm-docs/twist-guide-template.js.map +1 -1
  133. package/dist/plot.d.ts +10 -1
  134. package/dist/plot.d.ts.map +1 -1
  135. package/dist/plot.js +2 -0
  136. package/dist/plot.js.map +1 -1
  137. package/dist/tools/ai.d.ts +18 -0
  138. package/dist/tools/ai.d.ts.map +1 -1
  139. package/dist/tools/ai.js.map +1 -1
  140. package/dist/tools/integrations.d.ts +22 -10
  141. package/dist/tools/integrations.d.ts.map +1 -1
  142. package/dist/tools/integrations.js +3 -3
  143. package/dist/tools/integrations.js.map +1 -1
  144. package/dist/tools/plot.d.ts +53 -0
  145. package/dist/tools/plot.d.ts.map +1 -1
  146. package/dist/tools/plot.js +4 -0
  147. package/dist/tools/plot.js.map +1 -1
  148. package/dist/twist-guide.d.ts +1 -1
  149. package/dist/twist-guide.d.ts.map +1 -1
  150. package/package.json +38 -38
  151. package/tsconfig.base.json +1 -1
  152. package/dist/docs/documents/Building_Sources.html +0 -137
  153. package/dist/llm-docs/source.d.ts +0 -9
  154. package/dist/llm-docs/source.d.ts.map +0 -1
  155. package/dist/llm-docs/source.js +0 -8
  156. package/dist/llm-docs/source.js.map +0 -1
  157. package/dist/source.d.ts.map +0 -1
  158. package/dist/source.js.map +0 -1
package/README.md CHANGED
@@ -122,14 +122,14 @@ Twist tools provide capabilities to twists. They are usually unopinionated and d
122
122
  - **Plot** - Manage activities and priorities
123
123
  - **Store** - Persistent key-value storage
124
124
  - **AI** - Language models with structured output
125
- - **Integrations** - OAuth authentication
125
+ - **Integrations** - OAuth authentication and channel lifecycle
126
126
  - **Network** - HTTP access and webhooks
127
127
  - **Tasks** - Background task execution
128
128
  - **Callbacks** - Persistent function references
129
129
 
130
130
  [View all tools →](https://twist.plot.day/documents/Built-in_Tools.html)
131
131
 
132
- External service integrations (Google Calendar, Slack, Linear, etc.) are built as **Sources** — see [Building Sources](https://twist.plot.day/documents/Building_Sources.html).
132
+ External service integrations (Google Calendar, Slack, Linear, etc.) are built as **Connectors** — see [Building Connectors](https://twist.plot.day/documents/Building_Connectors.html).
133
133
 
134
134
  ### Activities and Notes
135
135
 
@@ -208,7 +208,7 @@ plot priority create # Create new priority
208
208
  - [Core Concepts](https://twist.plot.day/documents/Core_Concepts.html) - Twists, tools, and architecture
209
209
  - [Sync Strategies](https://twist.plot.day/documents/Sync_Strategies.html) - Data synchronization patterns (upserts, deduplication, ID management)
210
210
  - [Built-in Tools](https://twist.plot.day/documents/Built-in_Tools.html) - Plot, Store, AI, and more
211
- - [Building Sources](https://twist.plot.day/documents/Building_Sources.html) - Build external service integrations
211
+ - [Building Connectors](https://twist.plot.day/documents/Building_Connectors.html) - Build external service integrations
212
212
  - [Runtime Environment](https://twist.plot.day/documents/Runtime_Environment.html) - Execution constraints and optimization
213
213
  - [Advanced Topics](https://twist.plot.day/documents/Advanced.html) - Complex patterns and techniques
214
214
 
@@ -243,27 +243,33 @@ export default class WelcomeTwist extends Twist<WelcomeTwist> {
243
243
  }
244
244
  ```
245
245
 
246
- ### GitHub Integration
246
+ ### GitHub Connector
247
247
 
248
248
  ```typescript
249
- export default class GitHubTwist extends Twist<GitHubTwist> {
250
- build(build: ToolBuilder) {
249
+ import { Connector, type ConnectorBuilder, type Channel } from "@plotday/twister";
250
+ import { Integrations } from "@plotday/twister/tools/integrations";
251
+
252
+ export default class GitHubConnector extends Connector<GitHubConnector> {
253
+ build(build: ConnectorBuilder) {
251
254
  return {
252
- plot: build(Plot),
253
- network: build(Network, {
254
- urls: ["https://api.github.com/*"],
255
- }),
255
+ integrations: build(Integrations),
256
256
  };
257
257
  }
258
258
 
259
- async activate(priority: Pick<Priority, "id">) {
260
- // Set up webhook for issue updates
261
- const webhookUrl = await this.tools.network.createWebhook("onIssueUpdate");
262
- await this.set("webhook_url", webhookUrl);
259
+ async getChannels(): Promise<Channel[]> {
260
+ // Return repositories the user can sync
261
+ return repos.map((repo) => ({
262
+ id: repo.id,
263
+ name: repo.full_name,
264
+ }));
265
+ }
266
+
267
+ async onChannelEnabled(channel: Channel) {
268
+ // Start syncing issues from this repository
263
269
  }
264
270
 
265
- async onIssueUpdate(request: WebhookRequest) {
266
- // Sync GitHub issues to Plot activities
271
+ async onChannelDisabled(channel: Channel) {
272
+ // Stop syncing and clean up
267
273
  }
268
274
  }
269
275
  ```
@@ -45,7 +45,7 @@ const out = __importStar(require("../utils/output"));
45
45
  const packageManager_1 = require("../utils/packageManager");
46
46
  async function createCommand(options) {
47
47
  const isSource = !!options.source;
48
- out.header(isSource ? "Create a new Plot source" : "Create a new Plot twist");
48
+ out.header(isSource ? "Create a new Plot connector" : "Create a new Plot twist");
49
49
  let response;
50
50
  // If both name and displayName are provided via CLI, use them directly
51
51
  if (options.name && options.displayName) {
@@ -112,7 +112,7 @@ async function createCommand(options) {
112
112
  // Generate a unique twist ID
113
113
  const plotTwistId = crypto.randomUUID();
114
114
  // Create package.json
115
- const packageName = isSource ? `@plotday/source-${response.name}` : response.name;
115
+ const packageName = isSource ? `@plotday/connector-${response.name}` : response.name;
116
116
  const packageJson = {
117
117
  name: packageName,
118
118
  displayName: response.displayName || response.name,
@@ -137,7 +137,7 @@ async function createCommand(options) {
137
137
  include: ["src/*.ts"],
138
138
  };
139
139
  fs.writeFileSync(path.join(twistPath, "tsconfig.json"), JSON.stringify(tsconfigJson, null, 2) + "\n");
140
- const sourceTemplate = `import { Source, type ToolBuilder } from "@plotday/twister";
140
+ const sourceTemplate = `import { Connector, type ToolBuilder } from "@plotday/twister";
141
141
  import {
142
142
  AuthProvider,
143
143
  type AuthToken,
@@ -146,7 +146,7 @@ import {
146
146
  type Channel,
147
147
  } from "@plotday/twister/tools/integrations";
148
148
 
149
- export default class MySource extends Source<MySource> {
149
+ export default class MyConnector extends Connector<MyConnector> {
150
150
  readonly provider = AuthProvider.Google; // Change to your provider
151
151
  readonly scopes = ["https://example.com/scope"];
152
152
 
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../cli/commands/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../cli/commands/create.ts"],"names":[],"mappings":"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"}
package/bin/index.js CHANGED
@@ -46,7 +46,7 @@ program
46
46
  .option("-d, --dir <directory>", "Directory to create the twist in")
47
47
  .option("-n, --name <name>", "Package name (kebab-case)")
48
48
  .option("--display-name <displayName>", "Display name for the twist")
49
- .option("--source", "Create a source instead of a twist")
49
+ .option("--source", "Create a connector instead of a twist")
50
50
  .action(create_1.createCommand);
51
51
  // Top-level lint command
52
52
  program
package/bin/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../cli/index.ts"],"names":[],"mappings":"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"}
@@ -204,6 +204,38 @@ plot: build(Plot, {
204
204
  }),
205
205
  ```
206
206
 
207
+ **Default mention on replies:**
208
+
209
+ When your twist processes replies (two-way comment sync or conversational AI), set `defaultMention: true` so the user doesn't have to manually re-mention your twist on every note:
210
+
211
+ - `thread.defaultMention` — Auto-mention on replies to threads your twist created (e.g., synced issues, emails)
212
+ - `note.defaultMention` — Auto-mention on follow-up notes in threads where your twist was @-mentioned (e.g., conversational agents)
213
+
214
+ ```typescript
215
+ // Connector with two-way comment sync
216
+ plot: build(Plot, {
217
+ thread: {
218
+ access: ThreadAccess.Create,
219
+ defaultMention: true, // Users replying to synced threads will mention this twist by default
220
+ updated: this.onThreadUpdated,
221
+ },
222
+ note: {
223
+ created: this.onNoteCreated,
224
+ },
225
+ }),
226
+
227
+ // Conversational AI twist
228
+ plot: build(Plot, {
229
+ thread: { access: ThreadAccess.Respond },
230
+ note: {
231
+ defaultMention: true, // Follow-up notes auto-mention this twist
232
+ intents: [{ description: "...", examples: [...], handler: this.respond }],
233
+ },
234
+ }),
235
+ ```
236
+
237
+ Without `defaultMention`, the twist chip appears toggled OFF by default — the user can still enable it manually per-note.
238
+
207
239
  ## Actions
208
240
 
209
241
  Actions enable user interaction:
@@ -68,9 +68,9 @@ build(build: ToolBuilder) {
68
68
  - **Callbacks**: Create persistent function references for webhooks
69
69
  - **Network**: HTTP access permissions and webhook management
70
70
 
71
- #### Sources
71
+ #### Connectors
72
72
 
73
- External service integrations (Google Calendar, Slack, Linear, etc.) are built as Sources. See the [Building Sources](https://twist.plot.day/documents/Building_Sources.html) guide.
73
+ External service integrations (Google Calendar, Slack, Linear, etc.) are built as Connectors. See the [Building Connectors](https://twist.plot.day/documents/Building_Connectors.html) guide.
74
74
 
75
75
  ### Activity Types
76
76
 
@@ -76,7 +76,7 @@ async function bundleTwist(twistPath, options = {}) {
76
76
  sourcemap,
77
77
  minify,
78
78
  logLevel: "silent",
79
- conditions: ["@plotday/source"],
79
+ conditions: ["@plotday/connector"],
80
80
  // Mark Node.js built-ins as external - they'll be provided by Cloudflare Workers' nodejs_compat
81
81
  external: [
82
82
  "node:*",
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../cli/utils/bundle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../cli/utils/bundle.ts"],"names":[],"mappings":"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"}
@@ -204,6 +204,38 @@ plot: build(Plot, {
204
204
  }),
205
205
  ```
206
206
 
207
+ **Default mention on replies:**
208
+
209
+ When your twist processes replies (two-way comment sync or conversational AI), set `defaultMention: true` so the user doesn't have to manually re-mention your twist on every note:
210
+
211
+ - `thread.defaultMention` — Auto-mention on replies to threads your twist created (e.g., synced issues, emails)
212
+ - `note.defaultMention` — Auto-mention on follow-up notes in threads where your twist was @-mentioned (e.g., conversational agents)
213
+
214
+ ```typescript
215
+ // Connector with two-way comment sync
216
+ plot: build(Plot, {
217
+ thread: {
218
+ access: ThreadAccess.Create,
219
+ defaultMention: true, // Users replying to synced threads will mention this twist by default
220
+ updated: this.onThreadUpdated,
221
+ },
222
+ note: {
223
+ created: this.onNoteCreated,
224
+ },
225
+ }),
226
+
227
+ // Conversational AI twist
228
+ plot: build(Plot, {
229
+ thread: { access: ThreadAccess.Respond },
230
+ note: {
231
+ defaultMention: true, // Follow-up notes auto-mention this twist
232
+ intents: [{ description: "...", examples: [...], handler: this.respond }],
233
+ },
234
+ }),
235
+ ```
236
+
237
+ Without `defaultMention`, the twist chip appears toggled OFF by default — the user can still enable it manually per-note.
238
+
207
239
  ## Actions
208
240
 
209
241
  Actions enable user interaction:
@@ -68,9 +68,9 @@ build(build: ToolBuilder) {
68
68
  - **Callbacks**: Create persistent function references for webhooks
69
69
  - **Network**: HTTP access permissions and webhook management
70
70
 
71
- #### Sources
71
+ #### Connectors
72
72
 
73
- External service integrations (Google Calendar, Slack, Linear, etc.) are built as Sources. See the [Building Sources](https://twist.plot.day/documents/Building_Sources.html) guide.
73
+ External service integrations (Google Calendar, Slack, Linear, etc.) are built as Connectors. See the [Building Connectors](https://twist.plot.day/documents/Building_Connectors.html) guide.
74
74
 
75
75
  ### Activity Types
76
76
 
@@ -1,16 +1,17 @@
1
- import { type Actor, type Link, type Note, type Thread, type ThreadMeta } from "./plot";
1
+ import { type Actor, type ActorId, type Link, type Note, type Thread } from "./plot";
2
+ import type { ScheduleContactStatus } from "./schedule";
2
3
  import { type AuthProvider, type AuthToken, type Authorization, type Channel, type LinkTypeConfig } from "./tools/integrations";
3
4
  import { Twist } from "./twist";
4
5
  /**
5
- * Base class for sources — twists that sync data from external services.
6
+ * Base class for connectors — twists that sync data from external services.
6
7
  *
7
- * Sources declare a single OAuth provider and scopes, and implement channel
8
+ * Connectors declare a single OAuth provider and scopes, and implement channel
8
9
  * lifecycle methods for discovering and syncing external resources. They save
9
10
  * data directly via `integrations.saveLink()` instead of using the Plot tool.
10
11
  *
11
12
  * @example
12
13
  * ```typescript
13
- * class LinearSource extends Source<LinearSource> {
14
+ * class LinearConnector extends Connector<LinearConnector> {
14
15
  * readonly provider = AuthProvider.Linear;
15
16
  * readonly scopes = ["read", "write"];
16
17
  * readonly linkTypes = [{
@@ -46,18 +47,18 @@ import { Twist } from "./twist";
46
47
  * }
47
48
  * ```
48
49
  */
49
- export declare abstract class Source<TSelf> extends Twist<TSelf> {
50
+ export declare abstract class Connector<TSelf> extends Twist<TSelf> {
50
51
  /**
51
- * Static marker to identify Source subclasses without instanceof checks
52
+ * Static marker to identify Connector subclasses without instanceof checks
52
53
  * across worker boundaries.
53
54
  */
54
- static readonly isSource = true;
55
- /** The OAuth provider this source authenticates with. */
55
+ static readonly isConnector = true;
56
+ /** The OAuth provider this connector authenticates with. */
56
57
  abstract readonly provider: AuthProvider;
57
- /** OAuth scopes to request for this source. */
58
+ /** OAuth scopes to request for this connector. */
58
59
  abstract readonly scopes: string[];
59
60
  /**
60
- * Registry of link types this source creates (e.g., issue, event, message).
61
+ * Registry of link types this connector creates (e.g., issue, event, message).
61
62
  * Used for display in the UI (icons, labels, statuses).
62
63
  */
63
64
  readonly linkTypes?: LinkTypeConfig[];
@@ -85,7 +86,7 @@ export declare abstract class Source<TSelf> extends Twist<TSelf> {
85
86
  */
86
87
  abstract onChannelDisabled(channel: Channel): Promise<void>;
87
88
  /**
88
- * Called when a link created by this source is updated by the user.
89
+ * Called when a link created by this connector is updated by the user.
89
90
  * Override to write back changes to the external service
90
91
  * (e.g., changing issue status in Linear when marked done in Plot).
91
92
  *
@@ -93,41 +94,67 @@ export declare abstract class Source<TSelf> extends Twist<TSelf> {
93
94
  */
94
95
  onLinkUpdated(link: Link): Promise<void>;
95
96
  /**
96
- * Called when a note is created on a thread owned by this source.
97
+ * Called when a note is created on a thread owned by this connector.
97
98
  * Override to write back comments to the external service
98
99
  * (e.g., adding a comment to a Linear issue).
99
100
  *
100
101
  * @param note - The created note
101
- * @param meta - Metadata from the thread's link
102
+ * @param thread - The thread the note belongs to (includes thread.meta with connector-specific data)
102
103
  */
103
- onNoteCreated(note: Note, meta: ThreadMeta): Promise<void>;
104
+ onNoteCreated(note: Note, thread: Thread): Promise<void>;
104
105
  /**
105
- * Called when a user reads or unreads a thread owned by this source.
106
+ * Called when a user reads or unreads a thread owned by this connector.
106
107
  * Override to write back read status to the external service
107
108
  * (e.g., marking an email as read in Gmail).
108
109
  *
109
- * @param thread - The thread that was read/unread
110
+ * @param thread - The thread that was read/unread (includes thread.meta with connector-specific data)
110
111
  * @param actor - The user who performed the action
111
112
  * @param unread - false when marked as read, true when marked as unread
112
- * @param meta - Metadata from the thread's link (contains channelId, threadId, etc.)
113
113
  */
114
- onThreadRead(thread: Thread, actor: Actor, unread: boolean, meta: ThreadMeta): Promise<void>;
114
+ onThreadRead(thread: Thread, actor: Actor, unread: boolean): Promise<void>;
115
115
  /**
116
- * Called when the source is activated after OAuth is complete.
116
+ * Called when a user marks or unmarks a thread as todo.
117
+ * Override to sync todo status to the external service
118
+ * (e.g., starring an email in Gmail when marked as todo).
117
119
  *
118
- * Unlike Twist.activate() which receives a priority, Source.activate()
119
- * receives the authorization and actor since sources are not installed
120
+ * @param thread - The thread (includes thread.meta with connector-specific data)
121
+ * @param actor - The user who changed the todo status
122
+ * @param todo - true when marked as todo, false when done or removed
123
+ * @param options - Additional context
124
+ * @param options.date - The todo date (when todo=true)
125
+ */
126
+ onThreadToDo(thread: Thread, actor: Actor, todo: boolean, options: {
127
+ date?: Date;
128
+ }): Promise<void>;
129
+ /**
130
+ * Called when a schedule contact's RSVP status changes on a thread owned by this connector.
131
+ * Override to sync RSVP changes back to the external calendar.
132
+ *
133
+ * @param thread - The thread (includes thread.meta with connector-specific data)
134
+ * @param scheduleId - The schedule ID
135
+ * @param contactId - The contact whose status changed
136
+ * @param status - The new RSVP status ('attend', 'skip', or null)
137
+ * @param actor - The user who changed the status
138
+ */
139
+ onScheduleContactUpdated(thread: Thread, scheduleId: string, contactId: ActorId, status: ScheduleContactStatus | null, actor: Actor): Promise<void>;
140
+ /**
141
+ * Called when the connector is activated after OAuth is complete.
142
+ *
143
+ * Unlike Twist.activate() which receives a priority, Connector.activate()
144
+ * receives the authorization and actor since connectors are not installed
120
145
  * in priorities.
121
146
  *
122
147
  * Default implementation does nothing. Override for custom setup.
123
148
  *
124
149
  * @param context - The activation context
125
150
  * @param context.auth - The completed OAuth authorization
126
- * @param context.actor - The actor who activated the source
151
+ * @param context.actor - The actor who activated the connector
127
152
  */
128
153
  activate(context: {
129
154
  auth: Authorization;
130
155
  actor: Actor;
131
156
  }): Promise<void>;
132
157
  }
133
- //# sourceMappingURL=source.d.ts.map
158
+ /** @deprecated Use `Connector` instead. */
159
+ export { Connector as Source };
160
+ //# sourceMappingURL=connector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,cAAc,EACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,8BAAsB,SAAS,CAAC,KAAK,CAAE,SAAQ,KAAK,CAAC,KAAK,CAAC;IACzD;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,WAAW,QAAQ;IAInC,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAEzC,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAInC;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAItC;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,CAClB,IAAI,EAAE,aAAa,EACnB,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,OAAO,EAAE,CAAC;IAErB;;;;;OAKG;IACH,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1D;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D;;;;;;OAMG;IAEH,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC;;;;;;;OAOG;IAEH,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD;;;;;;;;OAQG;IAEH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1E;;;;;;;;;;OAUG;IAEH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE;QAAE,IAAI,CAAC,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlG;;;;;;;;;OASG;IAEH,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,qBAAqB,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnJ;;;;;;;;;;;;OAYG;IAEH,QAAQ,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAGxE;AAED,2CAA2C;AAC3C,OAAO,EAAE,SAAS,IAAI,MAAM,EAAE,CAAC"}
@@ -1,14 +1,14 @@
1
1
  import { Twist } from "./twist";
2
2
  /**
3
- * Base class for sources — twists that sync data from external services.
3
+ * Base class for connectors — twists that sync data from external services.
4
4
  *
5
- * Sources declare a single OAuth provider and scopes, and implement channel
5
+ * Connectors declare a single OAuth provider and scopes, and implement channel
6
6
  * lifecycle methods for discovering and syncing external resources. They save
7
7
  * data directly via `integrations.saveLink()` instead of using the Plot tool.
8
8
  *
9
9
  * @example
10
10
  * ```typescript
11
- * class LinearSource extends Source<LinearSource> {
11
+ * class LinearConnector extends Connector<LinearConnector> {
12
12
  * readonly provider = AuthProvider.Linear;
13
13
  * readonly scopes = ["read", "write"];
14
14
  * readonly linkTypes = [{
@@ -44,21 +44,21 @@ import { Twist } from "./twist";
44
44
  * }
45
45
  * ```
46
46
  */
47
- export class Source extends Twist {
47
+ export class Connector extends Twist {
48
48
  /**
49
- * Static marker to identify Source subclasses without instanceof checks
49
+ * Static marker to identify Connector subclasses without instanceof checks
50
50
  * across worker boundaries.
51
51
  */
52
- static isSource = true;
52
+ static isConnector = true;
53
53
  // ---- Optional metadata ----
54
54
  /**
55
- * Registry of link types this source creates (e.g., issue, event, message).
55
+ * Registry of link types this connector creates (e.g., issue, event, message).
56
56
  * Used for display in the UI (icons, labels, statuses).
57
57
  */
58
58
  linkTypes;
59
59
  // ---- Write-back hooks (optional, default no-ops) ----
60
60
  /**
61
- * Called when a link created by this source is updated by the user.
61
+ * Called when a link created by this connector is updated by the user.
62
62
  * Override to write back changes to the external service
63
63
  * (e.g., changing issue status in Linear when marked done in Plot).
64
64
  *
@@ -69,48 +69,78 @@ export class Source extends Twist {
69
69
  return Promise.resolve();
70
70
  }
71
71
  /**
72
- * Called when a note is created on a thread owned by this source.
72
+ * Called when a note is created on a thread owned by this connector.
73
73
  * Override to write back comments to the external service
74
74
  * (e.g., adding a comment to a Linear issue).
75
75
  *
76
76
  * @param note - The created note
77
- * @param meta - Metadata from the thread's link
77
+ * @param thread - The thread the note belongs to (includes thread.meta with connector-specific data)
78
78
  */
79
79
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
80
- onNoteCreated(note, meta) {
80
+ onNoteCreated(note, thread) {
81
81
  return Promise.resolve();
82
82
  }
83
83
  /**
84
- * Called when a user reads or unreads a thread owned by this source.
84
+ * Called when a user reads or unreads a thread owned by this connector.
85
85
  * Override to write back read status to the external service
86
86
  * (e.g., marking an email as read in Gmail).
87
87
  *
88
- * @param thread - The thread that was read/unread
88
+ * @param thread - The thread that was read/unread (includes thread.meta with connector-specific data)
89
89
  * @param actor - The user who performed the action
90
90
  * @param unread - false when marked as read, true when marked as unread
91
- * @param meta - Metadata from the thread's link (contains channelId, threadId, etc.)
92
91
  */
93
92
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
94
- onThreadRead(thread, actor, unread, meta) {
93
+ onThreadRead(thread, actor, unread) {
94
+ return Promise.resolve();
95
+ }
96
+ /**
97
+ * Called when a user marks or unmarks a thread as todo.
98
+ * Override to sync todo status to the external service
99
+ * (e.g., starring an email in Gmail when marked as todo).
100
+ *
101
+ * @param thread - The thread (includes thread.meta with connector-specific data)
102
+ * @param actor - The user who changed the todo status
103
+ * @param todo - true when marked as todo, false when done or removed
104
+ * @param options - Additional context
105
+ * @param options.date - The todo date (when todo=true)
106
+ */
107
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
108
+ onThreadToDo(thread, actor, todo, options) {
109
+ return Promise.resolve();
110
+ }
111
+ /**
112
+ * Called when a schedule contact's RSVP status changes on a thread owned by this connector.
113
+ * Override to sync RSVP changes back to the external calendar.
114
+ *
115
+ * @param thread - The thread (includes thread.meta with connector-specific data)
116
+ * @param scheduleId - The schedule ID
117
+ * @param contactId - The contact whose status changed
118
+ * @param status - The new RSVP status ('attend', 'skip', or null)
119
+ * @param actor - The user who changed the status
120
+ */
121
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
122
+ onScheduleContactUpdated(thread, scheduleId, contactId, status, actor) {
95
123
  return Promise.resolve();
96
124
  }
97
125
  // ---- Activation ----
98
126
  /**
99
- * Called when the source is activated after OAuth is complete.
127
+ * Called when the connector is activated after OAuth is complete.
100
128
  *
101
- * Unlike Twist.activate() which receives a priority, Source.activate()
102
- * receives the authorization and actor since sources are not installed
129
+ * Unlike Twist.activate() which receives a priority, Connector.activate()
130
+ * receives the authorization and actor since connectors are not installed
103
131
  * in priorities.
104
132
  *
105
133
  * Default implementation does nothing. Override for custom setup.
106
134
  *
107
135
  * @param context - The activation context
108
136
  * @param context.auth - The completed OAuth authorization
109
- * @param context.actor - The actor who activated the source
137
+ * @param context.actor - The actor who activated the connector
110
138
  */
111
- // @ts-ignore - Source.activate() intentionally has a different signature than Twist.activate()
139
+ // @ts-ignore - Connector.activate() intentionally has a different signature than Twist.activate()
112
140
  activate(context) {
113
141
  return Promise.resolve();
114
142
  }
115
143
  }
116
- //# sourceMappingURL=source.js.map
144
+ /** @deprecated Use `Connector` instead. */
145
+ export { Connector as Source };
146
+ //# sourceMappingURL=connector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connector.js","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,OAAgB,SAAiB,SAAQ,KAAY;IACzD;;;OAGG;IACH,MAAM,CAAU,WAAW,GAAG,IAAI,CAAC;IAUnC,8BAA8B;IAE9B;;;OAGG;IACM,SAAS,CAAoB;IAiCtC,wDAAwD;IAExD;;;;;;OAMG;IACH,6DAA6D;IAC7D,aAAa,CAAC,IAAU;QACtB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;;;OAOG;IACH,6DAA6D;IAC7D,aAAa,CAAC,IAAU,EAAE,MAAc;QACtC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;;;;OAQG;IACH,6DAA6D;IAC7D,YAAY,CAAC,MAAc,EAAE,KAAY,EAAE,MAAe;QACxD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;OAUG;IACH,6DAA6D;IAC7D,YAAY,CAAC,MAAc,EAAE,KAAY,EAAE,IAAa,EAAE,OAAwB;QAChF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;;;;;OASG;IACH,6DAA6D;IAC7D,wBAAwB,CAAC,MAAc,EAAE,UAAkB,EAAE,SAAkB,EAAE,MAAoC,EAAE,KAAY;QACjI,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,uBAAuB;IAEvB;;;;;;;;;;;;OAYG;IACH,kGAAkG;IAClG,QAAQ,CAAC,OAA8C;QACrD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;;AAGH,2CAA2C;AAC3C,OAAO,EAAE,SAAS,IAAI,MAAM,EAAE,CAAC"}
@@ -1 +1 @@
1
- window.hierarchyData = "eJyVlEFvgyAUx7/LO7+yKYrgrdnJy7ZkvS3N4pStplQaoOmSxu++IN1Cdiju4kF/7//jwcMLGK2dhfo1y0sUWwQjP5Ts3KBHC/UFhH+M7UFCDZvzYB0g7IexhzrLOcLJKKihU6210t45D5AZIzt3UIDhE9TgbL/ydavwAqHbDao3cvTq+5JuJ4QsLyNbs9Fa3bRprchM/UuWcyw4xTKjyATDilHkNEdeCRSMoeAVZrQswoJ43P6S9SxYzoRQcPp3X20q2r7N22vD/tq0pMxiybpJC9qBrJt0MBMsCn5olXpvu/2CBroflPwWpW0Vi9toRic/TRvmMykcIprEpWktp3mkfZTurM0+bRwDSK4FCzxVfMWelb59w2bJUWlHPJqOFyw+qxenjUznW4+RGV5g4FU8y61dMgnOY2SG0wb/f4ib0CfT3exiGHv5RQK3IJ6WRRT/dEwOV8i/ginBNH0DVRW/rw=="
1
+ window.hierarchyData = "eJyVk7FuwyAQht/l5isFbAfbW9QpS1up2aqoch3aWCEQAVUqRX73CjuNUIdAFwbz3X3n088ZrDHeQfvKeIXNBsHKDyV7PxjtoD1DEw7dHSS0sD4NzgPCftBbaBmvEb6sghZ61Tkn3b0PAJkwsvMHBThfQQvebe9C3d38AaHfDWprpQ5qRtlmRGC8imyrtTHqps0YRSbqXzJeY1kLrJhAQRsUYoF1VWDDKTLKSmS0qJCVvJxHquMF5EyUMdCIUNbi72ZdqrV7mxbs5g27tKRisWS5Sgu6gSxX6caCxrl46JR67/p9xg/0vyi5FmXYxCLOhfby03ZzQpPCIaJJXJrW1lURaR+lPxm7Txv1DJJLQdrTcBp5npW5/cYmyVEZTwKabh9CHfV/8cbKtMAFjExwjqKIX+66czlZ8AEjE5yhYJTFkTNay94be0sz6K38Jlc0Q1LyeFVPx2TIZsUFTAnG8Qe0wMKR"
@@ -1 +1 @@
1
- window.navigationData = "eJytnNty3DYShl9FNbn1rg9xvIrvFMXezJYsqzTy5iLlUkEkpMGKBCYEqJGT8rtvAeABINDoHlvlO+Hn183GgQC6x3/8vTL80azerv7di5rr1bNVtRVN3XG5evvH3MiNEfLuaGNYZ3i9erbaMbNdvV3VqupbLo1+PkiuB8k/t6ZtVs9W90LWq7fHPx4fv3lx/PXZRDxVHT86VbLiO6NzPCu4HgUY7ZdeNOYfQh5dKdVkcaPi2ikovNq9sOq7ioPE2r2x16BvfLY+uuS3vOOy4tk3PltfTwKMdtlLI1p+9E4+iE5JS8gxB9l1IMuTPwfsD6ruG3AsCFnzx9lW68XP3Z9j9qs84LRhWoP4jzsjlAwiXnn5YGBojg29fBWGxvcHBPCt6fNhAK6+7PjRSSMY7OaGN7wyv/Lb2Y75sputjM2LiLz4+V8vf3oVmuKPMGVoxBjnfXvDO5AyNWOcX5RqOJMgaG7HSL6XQNDUTOPoTbXlLSuxBgnGu+RaNQ+8TgZZSFyIMKa1bKcAMBCGVirlVEnDKrMxzPSAf1npgfxLhTkcCA9kk7jomOZ7EjbVHUBGkdQ3/1hVfbdY2HMvP+sO8BKDZ6WHe/5pVzND9t+rUSu8E6wRf7EbcLgFCoz2qRd1nmJb8k+Hy/o5a7nesQpc1GMD8ZctNfE6D3nfy2pcXfJ7Kcm7KNK34xOhqVEW23zz+utn9y9c04YtA2Twit2VPtc/GNc+vNPLn1//+OJ1gP/P5uP5f1nT8yLjf1rJh0EFkU56s73o1IOoeVeEsd5sd7MQ5FVGdWuwwzzKalynQpSrLW/5qWpU2SdjZdUgg1gXnVCdMF+KpN0sgjjnfE9CSb4n0EbUcoIXfOtHaSH2Qkm7T8LCL5Q0XgaxTpX0I1jIO9L4qIIHaONEKEnwszhKOs7qD9wwZJRYWetlIIvdaWxC6vLoQBGS7xGKf6NT1bZIbPw7VaOwzCOQUMbvwmzPleFIkJx2L8xWDtpSvA4A29CR2Reiuh/nlx3HorzU7kR1P86xapSjftPcReP6XjQGmVmedDsKyzzCeuJ56GpiO6X8kqr8PN/jCL7HKMokmyDAF8r6iHxQ2KAovBMOkXyPcRyEslCrDlmnz/k+2YrnfaomWWHNN1wa1K/K6xDPzoS8L2IaLyi8GYqQfE+jkFcZi6OsMfbGyl02YZNXqeZm0kG0tcUVOcJ4Rckf1JHSiFyXh6IoPPtB1by56MItL0xqrXgXiWGfHBlxrB00MOWS/9lzXZ4gTHSTqkTSOyU1Mm1FN8tg1uaLNrz9wLVmdxhQO207aWHqJ807GrPXvKMQT7QW2jBpaFg2yilsO2ppWDt8KUQajRZJSgwxyvLeM9+9owic3fzRXLCuPIStdudFEOdXZtiwyhdRNTOsmnTgqtWyO466JawK8eu9aHDQrWgwziVnWkl7ZMFg3ahEiTWrDK8PIfsnqBbsHDhlTYP3r1JNxZqGwLvkum8II0appnNSAvPdI696eyJL7mkBMh8fUNMD5ZWAsASgjA3H1nmL0by4D2JNc8Oq8tajmkUYpxyqKlCBpC2TEvkSVpOmtCOzmzvCmchug+z+Dj0PraXhdx3DR4SIhWAvdtVWPHDrKuFoxLzaeouej+xNl+rEXwy/eFgoS8Qrdc9xmhlUEOl3frNV6p6yUdl7Kb5bOedmrzps/zxqyqfKk6rimnL0Z6MQu/ciEMczOcocDkAE5HAGQon2qLB2n7/fmKwbZBTas4Jw6u2kLs1BwsAmjeiLRpXHys4LoOc3RnXlrYkeFPCtmUZWNzMoQMJeaEPYJBmrQ/dJZwpZ1lRpLXO+XPCuFVrjXzgr3kXiIpdAQxk4ojjzVCs0d2kDbOI55cOohIjvHk3HKuOOwZfc9F15IeRe7k7D3SiH2K40ZC0XpSMZqsUZIc0ghL9Tt7zDacLKSCzKLsjR8N2P27dsOXJPa53yopgTJ5522TXB/pVUBkIoskgyPD7n50wMbVjOMM2jBIyxkZCMLXKCdqo/+Wxr5BUtxbrMbsQhEkqiFSiZ1EYAmZtRUJSUCBHsDq1PSJIacXgpiHxGI3kVL6DBChgaIHMZmJAmDSVGBGoqQwdlIYsRDsxERva47Cgtlsu9TBJIL6DBCvMvFKAvqACIbSBEB37et1HsF15lbiYsIyofW9dCeBWYMDYSIECtz4ghlvhkswsBKWjHUHFeIGDYBsILgc8PbUQEOuMjEV4K8072LZ+PyNnvc6Ywgsu+nWbJ2BxbO06+TXE3BIi5GUaUiwMCWE5Y9GyZFYsd861LwPfX3UzbI6TsJl+KND/d98WqlkLVzsz4/qKdmVWs2Yn3jSYXF8OWH5N8UCkDN+T7XrX0q6WF46Vf2XtB+1eSZ+Wy5sWt41iT7OiuLbYRVzQXns0/etg4LeUXp9cvphfTQOrnLo+XoelrJp4goGEWMYyIw5+syzGxFy7dbaESMJPJE9MzoZ1Btnihn94guTwI5nUlWpqfybFGVYmUyankUJOsxEqzKjnUqCqRgOxHDhdJy8xiZiXPzjxS7JdsbiXbN4ESI+ayKxBz1mJUOL8CsZdPpBYO/P0EnMj3+5rJ+lKIbmShbPeCu9Dh2Gy6O4EGKhwJ57sT7lKKw7MJ74QbqHAkjjsgmlgcSZjldW7ayZmf+6SgbLJ6wQo0tOAjUadBoiRjlrPhgD8H7veTEphh6xR0rm3H91D6eQVnIz1uEjzBRiCT+oz3A7Ox07zZb/j5V5q3DfsmtQj1UBo7Ucxyen6oeYq9adZkHMTI5Bq0/y2hXCacw0hGZgcl5cieyz2D3PgBdF7CaWPQQvIMaiSfQYYNhHoKfJFMLoKd9mnWmOxpMlxoEuPQWT43dySUh/bsofkJZkyS8I4ny2joPGfwG6YIlLMPe220GWvp604+m+PZ5JxOOWpxEjkOmb9gTux8Q7AKCfUwXtP9aKSlrC2lWT9dDZam+cEXcbm6iHDSBNfWXgZffEFFEQkuFhYv6HIVEQkv0lEms86XDHika3yCIbmoS4jHpDeySU35UZm6bPI1Cp7mGp/A5UUhROyyN3KVmgJdBgoGBpxrfQqnF2YWXnszVxlrB9/cZKs8kmNtaDF7RDj8RBsVhIRrwmDrTKFbC7gqJMNbiklLfb60w/35qXo508kOf5UaSQdlb0Sjn2+Z3qZeurZr20ZyFfsd7p+9qO5/iyzNP8QNbE262Oqb5a2nd911FOS7ayQ5jw/zpJAjGOOhtVH43eMbKOrxIzO0GAmxIV8q7EnRqRrj54t7UnKow5i5Ap+UOKtIPOC/pEiIxP+VInupnyIDGUbMpJRS3iTCdz5oXiL/nwdAM+oHHcvTBMXnr5//D5V0sEo="
1
+ window.navigationData = "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"