@plotday/twister 0.38.0 → 0.40.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 (118) 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} +24 -22
  13. package/dist/connector.d.ts.map +1 -0
  14. package/dist/{source.js → connector.js} +23 -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} +27 -27
  20. package/dist/docs/classes/index.Options.html +1 -1
  21. package/dist/docs/classes/tools_ai.AI.html +7 -3
  22. package/dist/docs/classes/tools_callbacks.Callbacks.html +1 -1
  23. package/dist/docs/classes/tools_integrations.Integrations.html +15 -15
  24. package/dist/docs/classes/tools_network.Network.html +1 -1
  25. package/dist/docs/classes/tools_plot.Plot.html +23 -21
  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 +3 -3
  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/tools_ai.AIModel.html +2 -2
  35. package/dist/docs/enums/tools_integrations.AuthProvider.html +11 -11
  36. package/dist/docs/hierarchy.html +1 -1
  37. package/dist/docs/index.html +3 -3
  38. package/dist/docs/interfaces/tools_ai.AIRequest.html +11 -11
  39. package/dist/docs/interfaces/tools_ai.AIResponse.html +9 -9
  40. package/dist/docs/interfaces/tools_ai.FilePart.html +5 -5
  41. package/dist/docs/interfaces/tools_ai.ImagePart.html +4 -4
  42. package/dist/docs/interfaces/tools_ai.ReasoningPart.html +4 -4
  43. package/dist/docs/interfaces/tools_ai.RedactedReasoningPart.html +3 -3
  44. package/dist/docs/interfaces/tools_ai.TextPart.html +3 -3
  45. package/dist/docs/interfaces/tools_ai.ToolCallPart.html +5 -5
  46. package/dist/docs/interfaces/tools_ai.ToolExecutionOptions.html +4 -4
  47. package/dist/docs/interfaces/tools_ai.ToolResultPart.html +5 -5
  48. package/dist/docs/media/AGENTS.md +82 -65
  49. package/dist/docs/media/MULTI_USER_AUTH.md +1 -1
  50. package/dist/docs/media/SYNC_STRATEGIES.md +9 -9
  51. package/dist/docs/modules/index.html +1 -1
  52. package/dist/docs/modules/tools_ai.html +1 -1
  53. package/dist/docs/modules.html +1 -1
  54. package/dist/docs/types/tools_ai.AIAssistantMessage.html +2 -2
  55. package/dist/docs/types/tools_ai.AICapabilities.html +6 -0
  56. package/dist/docs/types/tools_ai.AIMessage.html +1 -1
  57. package/dist/docs/types/tools_ai.AIOptions.html +4 -0
  58. package/dist/docs/types/tools_ai.AISource.html +1 -1
  59. package/dist/docs/types/tools_ai.AISystemMessage.html +2 -2
  60. package/dist/docs/types/tools_ai.AITool.html +1 -1
  61. package/dist/docs/types/tools_ai.AIToolMessage.html +2 -2
  62. package/dist/docs/types/tools_ai.AIToolSet.html +1 -1
  63. package/dist/docs/types/tools_ai.AIUsage.html +5 -5
  64. package/dist/docs/types/tools_ai.AIUserMessage.html +2 -2
  65. package/dist/docs/types/tools_ai.DataContent.html +1 -1
  66. package/dist/docs/types/tools_ai.ModelPreferences.html +4 -4
  67. package/dist/docs/types/tools_integrations.ArchiveLinkFilter.html +5 -5
  68. package/dist/docs/types/tools_integrations.AuthToken.html +4 -4
  69. package/dist/docs/types/tools_integrations.Authorization.html +4 -4
  70. package/dist/docs/types/tools_integrations.Channel.html +5 -5
  71. package/dist/docs/types/tools_integrations.LinkTypeConfig.html +11 -8
  72. package/dist/index.d.ts +1 -1
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +1 -1
  75. package/dist/index.js.map +1 -1
  76. package/dist/llm-docs/connector.d.ts +9 -0
  77. package/dist/llm-docs/connector.d.ts.map +1 -0
  78. package/dist/llm-docs/connector.js +8 -0
  79. package/dist/llm-docs/connector.js.map +1 -0
  80. package/dist/llm-docs/index.js +2 -2
  81. package/dist/llm-docs/index.js.map +1 -1
  82. package/dist/llm-docs/tools/ai.d.ts +1 -1
  83. package/dist/llm-docs/tools/ai.d.ts.map +1 -1
  84. package/dist/llm-docs/tools/ai.js +1 -1
  85. package/dist/llm-docs/tools/ai.js.map +1 -1
  86. package/dist/llm-docs/tools/integrations.d.ts +1 -1
  87. package/dist/llm-docs/tools/integrations.d.ts.map +1 -1
  88. package/dist/llm-docs/tools/integrations.js +1 -1
  89. package/dist/llm-docs/tools/integrations.js.map +1 -1
  90. package/dist/llm-docs/tools/plot.d.ts +1 -1
  91. package/dist/llm-docs/tools/plot.d.ts.map +1 -1
  92. package/dist/llm-docs/tools/plot.js +1 -1
  93. package/dist/llm-docs/tools/plot.js.map +1 -1
  94. package/dist/llm-docs/twist-guide-template.d.ts +1 -1
  95. package/dist/llm-docs/twist-guide-template.d.ts.map +1 -1
  96. package/dist/llm-docs/twist-guide-template.js +1 -1
  97. package/dist/llm-docs/twist-guide-template.js.map +1 -1
  98. package/dist/tools/ai.d.ts +18 -0
  99. package/dist/tools/ai.d.ts.map +1 -1
  100. package/dist/tools/ai.js.map +1 -1
  101. package/dist/tools/integrations.d.ts +16 -11
  102. package/dist/tools/integrations.d.ts.map +1 -1
  103. package/dist/tools/integrations.js +3 -3
  104. package/dist/tools/integrations.js.map +1 -1
  105. package/dist/tools/plot.d.ts +4 -0
  106. package/dist/tools/plot.d.ts.map +1 -1
  107. package/dist/tools/plot.js.map +1 -1
  108. package/dist/twist-guide.d.ts +1 -1
  109. package/dist/twist-guide.d.ts.map +1 -1
  110. package/package.json +38 -38
  111. package/tsconfig.base.json +1 -1
  112. package/dist/docs/documents/Building_Sources.html +0 -137
  113. package/dist/llm-docs/source.d.ts +0 -9
  114. package/dist/llm-docs/source.d.ts.map +0 -1
  115. package/dist/llm-docs/source.js +0 -8
  116. package/dist/llm-docs/source.js.map +0 -1
  117. package/dist/source.d.ts.map +0 -1
  118. 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
 
@@ -3,15 +3,15 @@ import type { ScheduleContactStatus } from "./schedule";
3
3
  import { type AuthProvider, type AuthToken, type Authorization, type Channel, type LinkTypeConfig } from "./tools/integrations";
4
4
  import { Twist } from "./twist";
5
5
  /**
6
- * Base class for sources — twists that sync data from external services.
6
+ * Base class for connectors — twists that sync data from external services.
7
7
  *
8
- * Sources declare a single OAuth provider and scopes, and implement channel
8
+ * Connectors declare a single OAuth provider and scopes, and implement channel
9
9
  * lifecycle methods for discovering and syncing external resources. They save
10
10
  * data directly via `integrations.saveLink()` instead of using the Plot tool.
11
11
  *
12
12
  * @example
13
13
  * ```typescript
14
- * class LinearSource extends Source<LinearSource> {
14
+ * class LinearConnector extends Connector<LinearConnector> {
15
15
  * readonly provider = AuthProvider.Linear;
16
16
  * readonly scopes = ["read", "write"];
17
17
  * readonly linkTypes = [{
@@ -47,18 +47,18 @@ import { Twist } from "./twist";
47
47
  * }
48
48
  * ```
49
49
  */
50
- export declare abstract class Source<TSelf> extends Twist<TSelf> {
50
+ export declare abstract class Connector<TSelf> extends Twist<TSelf> {
51
51
  /**
52
- * Static marker to identify Source subclasses without instanceof checks
52
+ * Static marker to identify Connector subclasses without instanceof checks
53
53
  * across worker boundaries.
54
54
  */
55
- static readonly isSource = true;
56
- /** The OAuth provider this source authenticates with. */
55
+ static readonly isConnector = true;
56
+ /** The OAuth provider this connector authenticates with. */
57
57
  abstract readonly provider: AuthProvider;
58
- /** OAuth scopes to request for this source. */
58
+ /** OAuth scopes to request for this connector. */
59
59
  abstract readonly scopes: string[];
60
60
  /**
61
- * 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).
62
62
  * Used for display in the UI (icons, labels, statuses).
63
63
  */
64
64
  readonly linkTypes?: LinkTypeConfig[];
@@ -86,7 +86,7 @@ export declare abstract class Source<TSelf> extends Twist<TSelf> {
86
86
  */
87
87
  abstract onChannelDisabled(channel: Channel): Promise<void>;
88
88
  /**
89
- * 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.
90
90
  * Override to write back changes to the external service
91
91
  * (e.g., changing issue status in Linear when marked done in Plot).
92
92
  *
@@ -94,20 +94,20 @@ export declare abstract class Source<TSelf> extends Twist<TSelf> {
94
94
  */
95
95
  onLinkUpdated(link: Link): Promise<void>;
96
96
  /**
97
- * 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.
98
98
  * Override to write back comments to the external service
99
99
  * (e.g., adding a comment to a Linear issue).
100
100
  *
101
101
  * @param note - The created note
102
- * @param thread - The thread the note belongs to (includes thread.meta with source-specific data)
102
+ * @param thread - The thread the note belongs to (includes thread.meta with connector-specific data)
103
103
  */
104
104
  onNoteCreated(note: Note, thread: Thread): Promise<void>;
105
105
  /**
106
- * 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.
107
107
  * Override to write back read status to the external service
108
108
  * (e.g., marking an email as read in Gmail).
109
109
  *
110
- * @param thread - The thread that was read/unread (includes thread.meta with source-specific data)
110
+ * @param thread - The thread that was read/unread (includes thread.meta with connector-specific data)
111
111
  * @param actor - The user who performed the action
112
112
  * @param unread - false when marked as read, true when marked as unread
113
113
  */
@@ -117,7 +117,7 @@ export declare abstract class Source<TSelf> extends Twist<TSelf> {
117
117
  * Override to sync todo status to the external service
118
118
  * (e.g., starring an email in Gmail when marked as todo).
119
119
  *
120
- * @param thread - The thread (includes thread.meta with source-specific data)
120
+ * @param thread - The thread (includes thread.meta with connector-specific data)
121
121
  * @param actor - The user who changed the todo status
122
122
  * @param todo - true when marked as todo, false when done or removed
123
123
  * @param options - Additional context
@@ -127,10 +127,10 @@ export declare abstract class Source<TSelf> extends Twist<TSelf> {
127
127
  date?: Date;
128
128
  }): Promise<void>;
129
129
  /**
130
- * Called when a schedule contact's RSVP status changes on a thread owned by this source.
130
+ * Called when a schedule contact's RSVP status changes on a thread owned by this connector.
131
131
  * Override to sync RSVP changes back to the external calendar.
132
132
  *
133
- * @param thread - The thread (includes thread.meta with source-specific data)
133
+ * @param thread - The thread (includes thread.meta with connector-specific data)
134
134
  * @param scheduleId - The schedule ID
135
135
  * @param contactId - The contact whose status changed
136
136
  * @param status - The new RSVP status ('attend', 'skip', or null)
@@ -138,21 +138,23 @@ export declare abstract class Source<TSelf> extends Twist<TSelf> {
138
138
  */
139
139
  onScheduleContactUpdated(thread: Thread, scheduleId: string, contactId: ActorId, status: ScheduleContactStatus | null, actor: Actor): Promise<void>;
140
140
  /**
141
- * Called when the source is activated after OAuth is complete.
141
+ * Called when the connector is activated after OAuth is complete.
142
142
  *
143
- * Unlike Twist.activate() which receives a priority, Source.activate()
144
- * receives the authorization and actor since sources are not installed
143
+ * Unlike Twist.activate() which receives a priority, Connector.activate()
144
+ * receives the authorization and actor since connectors are not installed
145
145
  * in priorities.
146
146
  *
147
147
  * Default implementation does nothing. Override for custom setup.
148
148
  *
149
149
  * @param context - The activation context
150
150
  * @param context.auth - The completed OAuth authorization
151
- * @param context.actor - The actor who activated the source
151
+ * @param context.actor - The actor who activated the connector
152
152
  */
153
153
  activate(context: {
154
154
  auth: Authorization;
155
155
  actor: Actor;
156
156
  }): Promise<void>;
157
157
  }
158
- //# 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,23 +69,23 @@ 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 thread - The thread the note belongs to (includes thread.meta with source-specific data)
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
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 (includes thread.meta with source-specific data)
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
91
  */
@@ -98,7 +98,7 @@ export class Source extends Twist {
98
98
  * Override to sync todo status to the external service
99
99
  * (e.g., starring an email in Gmail when marked as todo).
100
100
  *
101
- * @param thread - The thread (includes thread.meta with source-specific data)
101
+ * @param thread - The thread (includes thread.meta with connector-specific data)
102
102
  * @param actor - The user who changed the todo status
103
103
  * @param todo - true when marked as todo, false when done or removed
104
104
  * @param options - Additional context
@@ -109,10 +109,10 @@ export class Source extends Twist {
109
109
  return Promise.resolve();
110
110
  }
111
111
  /**
112
- * Called when a schedule contact's RSVP status changes on a thread owned by this source.
112
+ * Called when a schedule contact's RSVP status changes on a thread owned by this connector.
113
113
  * Override to sync RSVP changes back to the external calendar.
114
114
  *
115
- * @param thread - The thread (includes thread.meta with source-specific data)
115
+ * @param thread - The thread (includes thread.meta with connector-specific data)
116
116
  * @param scheduleId - The schedule ID
117
117
  * @param contactId - The contact whose status changed
118
118
  * @param status - The new RSVP status ('attend', 'skip', or null)
@@ -124,21 +124,23 @@ export class Source extends Twist {
124
124
  }
125
125
  // ---- Activation ----
126
126
  /**
127
- * Called when the source is activated after OAuth is complete.
127
+ * Called when the connector is activated after OAuth is complete.
128
128
  *
129
- * Unlike Twist.activate() which receives a priority, Source.activate()
130
- * 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
131
131
  * in priorities.
132
132
  *
133
133
  * Default implementation does nothing. Override for custom setup.
134
134
  *
135
135
  * @param context - The activation context
136
136
  * @param context.auth - The completed OAuth authorization
137
- * @param context.actor - The actor who activated the source
137
+ * @param context.actor - The actor who activated the connector
138
138
  */
139
- // @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()
140
140
  activate(context) {
141
141
  return Promise.resolve();
142
142
  }
143
143
  }
144
- //# 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 = "eJyVkz1PwzAQhv/LzVdjB6f52CqmLIDUbqhCITE0qhtXtqsiVfnvyHFBhqE2S4bkufc5ny8X0EpZA/ULy3KstghavEvR2UGNBuoLVO4xtgcBNWzOg7GAsB/GHmqWlQgnLaGGTrbGCHNnHUBmjOzsQQL6T1CDNf3C1S38C4RuN8hei9GpaUW3EwLL8sDWbJSSN21KSTJT/5JlJfKywJwVWFCKxbLAknOsGENG6T0ymnFknDHfUhkOIKWjhIYmBF4WfydrYtHmdR6w8RM2cUnOQsmqiQvagayaeHBBaRD80Er51nb7hAN03yj5KUqwLcNjNKMVH7r1GxoVDgFNwtK4tuQ80D4Ke1Z6HzeOHiTXgrinYizwPEt1+x+bJUepLHFoPN4tdZC/tkqLuMA4jMxwiiILR7VpTcouWIeRGU5RVOHKrdVJdzePMYy9+CSeS4jnvy7h6RhdL59/BWOCafoCnurACQ=="
1
+ window.hierarchyData = "eJyVk7FOwzAQht/l5quJnaROslVMWQCJbqhCITU0qmtXtlGRqrw7clIqw1CbJYPz3X2Xy+8zGK2dheaFshLrDYIR71L0btDKQnOG2j9UdxDQwPo0WAcI+0FtoaGsQvg0EhroZWetsHfOA2TCyM4dJOD8ChpwdrvwdYv5AKHfDXJrhPJqmuWbEYGyMrC1a63lTZvWkkzUv2SswqLiWFKOPKuR8wqrssSaMaQZXSLNco60YMt5pCpcQMpECQONCEXF/27Wxlrb12nBdt6wjUtKGkpWbVzQDWTVxhvzLMzFfSflW9fvEz6g/0HJtSjBxsOf0ConPkw3JzQqHAKahKVxbVWGcXwQ7qTNPm5UM0guBXFPzVjgeZL69h2bJEepHfFovL0PddD/2Wkj4gLrMTLBKYr8V5o7m5IF5zEywQkKmuVh5LRSonfa3NIMaiu+yBVNkBQsXNXjMRqyWXEBY4Jx/AYIwcKt"
@@ -1 +1 @@
1
- window.navigationData = "eJytnNtu3DgShl/F6LnNbo6T9eTO4zibXtiO4e7MLDAIGrREu7mWyB6RcjszyLsvKOpAiixWdWLkzvz5Val4EMWqzh9/Lwx/NIt3i3+3ouR68WxRbEVVNlwu3v0xNXJjhLw7WhnWGF4uni12zGwX7xalKtqaS6Of95JNL/nn1tTV4tniXshy8e749fHx2xfH356NxFPV8KNTJQu+MzrFs4LNIMBov7aiMv8Q8mitVJXEDYpNp6Dwyu6BVdsUHCSW3RM7DfrE58uja37LGy4Lnnzi8+VmFGC061YaUfOjM/kgGiUtIcXsZRtPliZ/8dgXqmwrcC4IWfLHyVbtxM+7P4fsV2nAacW0BvGfdkYo6UW8cPLeQN8cGnr5yg+NGw8I4Frj/n4A1l93/OikEgx2c8UrXpj3/HayY77uJitD8ywiL37518ufX/mm+CNM6RsxxmVb3/AGpIzNGOdXpSrOJAia2jGSGyUQNDbTOHpVbHnNcqxegvGuuVbVAy+jSeYTZyKMaS3bJQBMhL6VSjlV0rDCrAwzLeBfUnog/1phDnvCA9kkLjqn+Z6EjXUHkFEk9ck/FUXbzDb21MNPugO8xOBJ6eGef96VzJD9d2rUCm8Eq8Rf7Aacbp4Co31uRZmm2JZ0b39bv2Q11ztWgJt6aCB8s8Um3qQhH1pZDLtL+iwleRNE+nbo4ZsaZKHNt2++fen++Xtaf2SADK7ZXe51/ZPp2vtnevnLm9cv3nj4/6w+Xf7GqpZnGf/TSj70Koh00prtVaMeRMmbLIy1ZrubhCCvMKpZggPmUFbTDSpEWW95zU9VpfI+GSsrehnEumqEaoT5miXtJhHEueR7EkryPYE2oOYLPONbO0gzsRdK2nMSFn6hpHEyiHWqpJvBQt6R5kfhdaDNE6Ekwc/sLGk4Ky+4YcgssbLayUAWu9PYgtT52YEiJN8jFPdEp6qukdi4ZyoGYZ5HIKGM34XZXirDkSB12r0wW9lrc/E6AGxDR2ZfieJ+WF92Hov8VrsTxf2wxopBjvpNcxeN6wdRGWRlOdLtIMzzCPuJ46G7iR2U/EOqfH++xxF8j1GUiQ5BgC+U/RF5obBekXkmHCL5HuN0EMpGrRpkn77k++gonvapGGWZPd9waVC/CqdDPDsX8j6LqZwg82QoQvI9jULeZSyOssfYG6vusglbvEpVN6MOoi0tLssRxily/qCO5GbkMj8VRabvhSp5ddX4R16YVFvxLhDDPnVkxLG618CUa/5ny3V+gTDRjKocSe+U1MiyFc0kg1mrr9rw+oJrze4woO609aiFqZ81b2jMVvOGQjzRWmjDpKFh2SCnsO2spWHt9KUQaTRaJCkxxCjze8/08A4icHXzR3PFmvwUttqdE0Gc98ywfpfPokpmWDHqwF2rZnccdUtYFeLXB1HhoFtRYZxrzrSS9pMFgzWDEiWWrDC8PITselAt2DVwyqoKH1+lqoJVFYF3zXVbEWaMUlXTSQnMs0detPaLLLqnBch86KDGDvmdgLAFoIwVx/Z5i9E8ew5iVXXDivzRo5hEGCcfqsJTgaQtkxJ5ExajJncis4c7wjeRPQbZ8x36PbSUht81DJ8RIhSCo9gUW/HArauETyPm1NZb9PvI3nSpRvzF8IuHmTJHXKt7jtNMr4JIv/ObrVL3lIPK3knx08olN3vVYOfnQZP/qjwpCq4pn/5sEGL3XgTi8E2OMvsPIAKy/wZCifZTYdm9/j4yWVbILLTfCqJTb0d1bg0SJjZpRlsvV9yuAbffo07qTtwM4pyPZK71lMglM6m8s5Pr04+b92cfTj6frzfny4vlmsDdlPyWtZXZVKIWBP7FyX/p7Jo94txOSnmNOij+/ryqVD6iOycAPTKqyR9Sda+A70818p4zvQIk7IU2hOOysTr0xHyukBecyr3VOl+ueFMLrfGzjhXvAnGWS6ChDByR3YNVLTTvEkjYFtwpHwYlRDx7NA0rTHchcs1N2+RfidzJu3uRZpBD7K5IaClnRUQJqsUZIU0vhE8st7zBacLKSCzKQu5o+DruTrBbjtzYW6ecKOSEKchdck+wfyUVBBHKbaJcn8v+dib6Nix7HGfUPMbQSEjLZzleO9WfdN498IqWbJ/nucIQCSXRWqREksuDTM0oKEhP+Qh2h1aqROmtMLwURDq3FT2KE9BgGQwNkLgWjkijhhIjAjWWoZMyk8/yJ2YkI3ucd5QWy/mpNgqkE9BgmfXnC9AHVADENhCiA/d3bRT7mUeZmgnbiErHtmshPApMGBoJEKDqa8AQi72SeSaP5LVjqDBD5DFsA+GBwP59GxGBrvhAhBdFncm25tNlSfL9nCiR4bKtx1UyNIfWjqN3UzgMHmJqhhH5MhEPlhJmPZvnR0PHXOsc8OMVWOPxCCnAShelTb3bNlvflKnfmhg/Xr41sbLVW+G50aTiYtj8ZZIOKmXi+nw3qpa+nls4nvuVvCG2fyV5li9wn90/D9XpHb1rC22Ete2Zvumuh83TXKZ5fPxsojkOpH7eZXQTNL1h4gkC6ueT/Yh0+JNlPib26q25zdSEJnK6Yuzj2+llswf6+S2S1YVgTpejxZm6FGtQ5UiJ7FoKNcpyrDi/lkINqhwJyIOlcIE0z8zm2NLsRJfsuCSzbMmx8ZQYMZVng5iTFqPCmTaIPe8RWzjwlzRwSYc714zW50L0IAvVPcy4Mx2OTRY+RFBPhSPhyoeIO5fi8GTpQ8T1VDgSxx0QTSyOJMz8Ojce5MQPv2JQsmxhxvI0tOAjUadBgnRzkrPigD8HnvejYqj+6OQNrm3Hz1D6eQHnpR1uFDzBQSCRBA/PA5Ox07TZ7/ghYJzB98cmtgiNUBw7kc13O76veYqzadJkGMTA5BK0/z2hnJce+JEMzPZKyid7qgoB5IYd0HUJFxCAFqI+qJF0LQFswNdT4LOygiy40z7NHpP8mvQ3msg49C2fWjsSqkhw7L75CVZMVPoQLpbB0GXK4HcsEah6wx+1wWaope876WyOY5NzOvmohUnkMGTugjmy8x3BypRW+PEa70cDLWVvya368WqQtszhAoukq76U4ikRPZdiaCL2cCTwA+2Imf2N9sHXnKn6I39L8pICTgZfK0LFRxEuFGavP1OVRxEv0OVuLX9jjbC/ugX/h4NsycvD0DsYk0SX0IXXwVCDRS85+iiPyKnNTKfLTRy2a3yC7WxW0xLuZ87IKjbldrTYZZOub3G0rvEJXJ4V0YQuOyPr2BToMlBs0uO61qdwemZm5rUzs05YO/jWL1khFF2J+BaTn5eH34YExUT+ptfbOlfosRSuKErw5mLSMSFdFtT9+alGOTHIHX4dG4knZWtEpZ9vmd7GXnZtG9tGchX7Nf+frSjuPwaWpp/ze7ZGXWj17fzG3LneDRTke9dIch6f5lERkDfHfWuD8IfnN1AQ5mambzEQYlM+VxQWo2M1xk8XhsVkX4cxU8VhMXFSkXjAuSkiEv9vm2RCKEZ6MoyYSEfGvFGEn+vQnFb6vyCBVtRPOpTHya0v3778H3oYIXc="
1
+ window.navigationData = "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"