@plotday/twister 0.43.0 → 0.45.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 (184) hide show
  1. package/bin/commands/deploy.js +87 -10
  2. package/bin/commands/deploy.js.map +1 -1
  3. package/dist/connector.d.ts +92 -12
  4. package/dist/connector.d.ts.map +1 -1
  5. package/dist/connector.js +73 -4
  6. package/dist/connector.js.map +1 -1
  7. package/dist/docs/assets/hierarchy.js +1 -1
  8. package/dist/docs/assets/navigation.js +1 -1
  9. package/dist/docs/assets/search.js +1 -1
  10. package/dist/docs/classes/index.Connector.html +114 -54
  11. package/dist/docs/classes/index.Imap.html +52 -0
  12. package/dist/docs/classes/index.Options.html +2 -2
  13. package/dist/docs/classes/index.Smtp.html +33 -0
  14. package/dist/docs/classes/tool.ITool.html +1 -1
  15. package/dist/docs/classes/tool.Tool.html +30 -25
  16. package/dist/docs/classes/tools_ai.AI.html +1 -1
  17. package/dist/docs/classes/tools_callbacks.Callbacks.html +1 -1
  18. package/dist/docs/classes/tools_integrations.Integrations.html +11 -10
  19. package/dist/docs/classes/tools_network.Network.html +40 -7
  20. package/dist/docs/classes/tools_plot.Plot.html +72 -23
  21. package/dist/docs/classes/tools_store.Store.html +1 -1
  22. package/dist/docs/classes/tools_tasks.Tasks.html +1 -1
  23. package/dist/docs/classes/tools_twists.Twists.html +1 -1
  24. package/dist/docs/classes/twist.Twist.html +53 -35
  25. package/dist/docs/documents/Built-in_Tools.html +5 -3
  26. package/dist/docs/enums/plot.ActionType.html +9 -7
  27. package/dist/docs/enums/plot.ActorType.html +4 -4
  28. package/dist/docs/enums/plot.ConferencingProvider.html +6 -6
  29. package/dist/docs/enums/tools_integrations.AuthProvider.html +13 -11
  30. package/dist/docs/enums/tools_plot.ContactAccess.html +2 -2
  31. package/dist/docs/enums/tools_plot.LinkAccess.html +5 -0
  32. package/dist/docs/enums/tools_plot.PriorityAccess.html +7 -7
  33. package/dist/docs/enums/tools_plot.ThreadAccess.html +8 -3
  34. package/dist/docs/hierarchy.html +1 -1
  35. package/dist/docs/media/AGENTS.md +11 -7
  36. package/dist/docs/media/MULTI_USER_AUTH.md +14 -11
  37. package/dist/docs/modules/index.html +1 -1
  38. package/dist/docs/modules/plot.html +1 -1
  39. package/dist/docs/modules/tools_integrations.html +1 -1
  40. package/dist/docs/modules/tools_plot.html +1 -1
  41. package/dist/docs/types/index.BooleanDef.html +2 -2
  42. package/dist/docs/types/index.ImapAddress.html +6 -0
  43. package/dist/docs/types/index.ImapConnectOptions.html +12 -0
  44. package/dist/docs/types/index.ImapFetchOptions.html +8 -0
  45. package/dist/docs/types/index.ImapFlagOperation.html +2 -0
  46. package/dist/docs/types/index.ImapMailbox.html +10 -0
  47. package/dist/docs/types/index.ImapMailboxStatus.html +14 -0
  48. package/dist/docs/types/index.ImapMessage.html +28 -0
  49. package/dist/docs/types/index.ImapSearchCriteria.html +18 -0
  50. package/dist/docs/types/index.ImapSession.html +2 -0
  51. package/dist/docs/types/index.NumberDef.html +2 -2
  52. package/dist/docs/types/index.OptionDef.html +1 -1
  53. package/dist/docs/types/index.OptionsSchema.html +1 -1
  54. package/dist/docs/types/index.ResolvedOptions.html +1 -1
  55. package/dist/docs/types/index.SmtpAddress.html +6 -0
  56. package/dist/docs/types/index.SmtpConnectOptions.html +14 -0
  57. package/dist/docs/types/index.SmtpMessage.html +24 -0
  58. package/dist/docs/types/index.SmtpSendResult.html +8 -0
  59. package/dist/docs/types/index.SmtpSession.html +2 -0
  60. package/dist/docs/types/index.TextDef.html +5 -2
  61. package/dist/docs/types/plot.Action.html +6 -2
  62. package/dist/docs/types/plot.Actor.html +5 -5
  63. package/dist/docs/types/plot.Contact.html +9 -0
  64. package/dist/docs/types/plot.ContentType.html +1 -1
  65. package/dist/docs/types/plot.Link.html +21 -18
  66. package/dist/docs/types/plot.LinkUpdate.html +5 -0
  67. package/dist/docs/types/plot.NewActor.html +1 -1
  68. package/dist/docs/types/plot.NewContact.html +3 -17
  69. package/dist/docs/types/plot.NewLink.html +10 -7
  70. package/dist/docs/types/plot.NewLinkWithNotes.html +5 -4
  71. package/dist/docs/types/plot.NewNote.html +13 -3
  72. package/dist/docs/types/plot.NewTags.html +1 -1
  73. package/dist/docs/types/plot.NewThread.html +7 -5
  74. package/dist/docs/types/plot.NewThreadWithNotes.html +1 -1
  75. package/dist/docs/types/plot.Note.html +5 -2
  76. package/dist/docs/types/plot.NoteUpdate.html +4 -3
  77. package/dist/docs/types/plot.PlanOperation.html +10 -0
  78. package/dist/docs/types/plot.PriorityUpdate.html +5 -3
  79. package/dist/docs/types/plot.Tags.html +1 -1
  80. package/dist/docs/types/plot.Thread.html +1 -1
  81. package/dist/docs/types/plot.ThreadAccessLevel.html +7 -0
  82. package/dist/docs/types/plot.ThreadCommon.html +5 -9
  83. package/dist/docs/types/plot.ThreadFilter.html +2 -2
  84. package/dist/docs/types/plot.ThreadMeta.html +1 -1
  85. package/dist/docs/types/plot.ThreadType.html +3 -3
  86. package/dist/docs/types/plot.ThreadUpdate.html +1 -1
  87. package/dist/docs/types/plot.ThreadWithNotes.html +1 -1
  88. package/dist/docs/types/tools_integrations.ArchiveLinkFilter.html +5 -5
  89. package/dist/docs/types/tools_integrations.AuthToken.html +4 -4
  90. package/dist/docs/types/tools_integrations.Authorization.html +4 -4
  91. package/dist/docs/types/tools_integrations.Channel.html +4 -4
  92. package/dist/docs/types/tools_integrations.LinkTypeConfig.html +10 -3
  93. package/dist/docs/types/tools_integrations.SyncContext.html +10 -0
  94. package/dist/docs/types/tools_plot.LinkFilter.html +5 -5
  95. package/dist/docs/types/tools_plot.LinkSearchResult.html +1 -1
  96. package/dist/docs/types/tools_plot.NoteIntentHandler.html +4 -4
  97. package/dist/docs/types/tools_plot.NoteSearchResult.html +1 -1
  98. package/dist/docs/types/tools_plot.SearchOptions.html +6 -4
  99. package/dist/docs/types/tools_plot.SearchResult.html +1 -1
  100. package/dist/docs/variables/tools_plot.SEARCH_DEFAULT_LIMIT.html +1 -1
  101. package/dist/docs/variables/tools_plot.SEARCH_MAX_LIMIT.html +1 -1
  102. package/dist/llm-docs/connector.d.ts +1 -1
  103. package/dist/llm-docs/connector.d.ts.map +1 -1
  104. package/dist/llm-docs/connector.js +1 -1
  105. package/dist/llm-docs/connector.js.map +1 -1
  106. package/dist/llm-docs/index.d.ts.map +1 -1
  107. package/dist/llm-docs/index.js +4 -0
  108. package/dist/llm-docs/index.js.map +1 -1
  109. package/dist/llm-docs/options.d.ts +1 -1
  110. package/dist/llm-docs/options.d.ts.map +1 -1
  111. package/dist/llm-docs/options.js +1 -1
  112. package/dist/llm-docs/options.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/tool.d.ts +1 -1
  118. package/dist/llm-docs/tool.d.ts.map +1 -1
  119. package/dist/llm-docs/tool.js +1 -1
  120. package/dist/llm-docs/tool.js.map +1 -1
  121. package/dist/llm-docs/tools/imap.d.ts +9 -0
  122. package/dist/llm-docs/tools/imap.d.ts.map +1 -0
  123. package/dist/llm-docs/tools/imap.js +8 -0
  124. package/dist/llm-docs/tools/imap.js.map +1 -0
  125. package/dist/llm-docs/tools/integrations.d.ts +1 -1
  126. package/dist/llm-docs/tools/integrations.d.ts.map +1 -1
  127. package/dist/llm-docs/tools/integrations.js +1 -1
  128. package/dist/llm-docs/tools/integrations.js.map +1 -1
  129. package/dist/llm-docs/tools/network.d.ts +1 -1
  130. package/dist/llm-docs/tools/network.d.ts.map +1 -1
  131. package/dist/llm-docs/tools/network.js +1 -1
  132. package/dist/llm-docs/tools/network.js.map +1 -1
  133. package/dist/llm-docs/tools/plot.d.ts +1 -1
  134. package/dist/llm-docs/tools/plot.d.ts.map +1 -1
  135. package/dist/llm-docs/tools/plot.js +1 -1
  136. package/dist/llm-docs/tools/plot.js.map +1 -1
  137. package/dist/llm-docs/tools/smtp.d.ts +9 -0
  138. package/dist/llm-docs/tools/smtp.d.ts.map +1 -0
  139. package/dist/llm-docs/tools/smtp.js +8 -0
  140. package/dist/llm-docs/tools/smtp.js.map +1 -0
  141. package/dist/llm-docs/twist.d.ts +1 -1
  142. package/dist/llm-docs/twist.d.ts.map +1 -1
  143. package/dist/llm-docs/twist.js +1 -1
  144. package/dist/llm-docs/twist.js.map +1 -1
  145. package/dist/options.d.ts +3 -0
  146. package/dist/options.d.ts.map +1 -1
  147. package/dist/options.js.map +1 -1
  148. package/dist/plot.d.ts +198 -76
  149. package/dist/plot.d.ts.map +1 -1
  150. package/dist/plot.js +2 -0
  151. package/dist/plot.js.map +1 -1
  152. package/dist/tool.d.ts +13 -6
  153. package/dist/tool.d.ts.map +1 -1
  154. package/dist/tool.js +12 -5
  155. package/dist/tool.js.map +1 -1
  156. package/dist/tools/imap.d.ts +235 -0
  157. package/dist/tools/imap.d.ts.map +1 -0
  158. package/dist/tools/imap.js +61 -0
  159. package/dist/tools/imap.js.map +1 -0
  160. package/dist/tools/index.d.ts +2 -0
  161. package/dist/tools/index.d.ts.map +1 -1
  162. package/dist/tools/index.js +2 -0
  163. package/dist/tools/index.js.map +1 -1
  164. package/dist/tools/integrations.d.ts +35 -5
  165. package/dist/tools/integrations.d.ts.map +1 -1
  166. package/dist/tools/integrations.js +2 -0
  167. package/dist/tools/integrations.js.map +1 -1
  168. package/dist/tools/network.d.ts +53 -16
  169. package/dist/tools/network.d.ts.map +1 -1
  170. package/dist/tools/network.js.map +1 -1
  171. package/dist/tools/plot.d.ts +124 -11
  172. package/dist/tools/plot.d.ts.map +1 -1
  173. package/dist/tools/plot.js +20 -6
  174. package/dist/tools/plot.js.map +1 -1
  175. package/dist/tools/smtp.d.ts +155 -0
  176. package/dist/tools/smtp.d.ts.map +1 -0
  177. package/dist/tools/smtp.js +62 -0
  178. package/dist/tools/smtp.js.map +1 -0
  179. package/dist/twist.d.ts +37 -15
  180. package/dist/twist.d.ts.map +1 -1
  181. package/dist/twist.js +35 -13
  182. package/dist/twist.js.map +1 -1
  183. package/package.json +21 -1
  184. package/dist/docs/types/plot.PickPriorityConfig.html +0 -20
package/dist/twist.js CHANGED
@@ -1,10 +1,13 @@
1
1
  /**
2
2
  * Base class for all twists.
3
3
  *
4
- * Twists are activated in a Plot priority and have access to that priority and all
5
- * its descendants.
4
+ * A twist is installed at the workspace level and is owned by a single user
5
+ * (see `this.userId`). It has no inherent priority scope: threads, notes, and
6
+ * links it creates are filed against the owner's priorities, with automatic
7
+ * priority matching when no explicit target is provided.
6
8
  *
7
- * Override build() to declare tool dependencies and lifecycle methods to handle events.
9
+ * Override `build()` to declare tool dependencies and lifecycle methods to
10
+ * handle events.
8
11
  *
9
12
  * @example
10
13
  * ```typescript
@@ -15,8 +18,7 @@
15
18
  * };
16
19
  * }
17
20
  *
18
- * async activate(priority: Pick<Priority, "id">) {
19
- * // Initialize twist for the given priority
21
+ * async activate() {
20
22
  * await this.tools.plot.createThread({
21
23
  * title: "Hello, good looking!",
22
24
  * });
@@ -27,6 +29,11 @@
27
29
  export class Twist {
28
30
  id;
29
31
  toolShed;
32
+ /**
33
+ * The user ID (`twist_instance.owner_id`) that installed this twist.
34
+ * Populated by the runtime before any lifecycle method runs.
35
+ */
36
+ userId;
30
37
  constructor(id, toolShed) {
31
38
  this.id = id;
32
39
  this.toolShed = toolShed;
@@ -79,7 +86,16 @@ export class Twist {
79
86
  return this.tools.callbacks.deleteAll();
80
87
  }
81
88
  /**
82
- * Executes a callback by its token.
89
+ * Executes a callback by its token inline in the current execution.
90
+ *
91
+ * **Use `this.runTask()` instead for batch continuations and long-running work.**
92
+ * `this.run()` executes inline, sharing the current request count (~1000 limit)
93
+ * and blocking the HTTP response. This causes timeouts when used in lifecycle
94
+ * methods like `onChannelEnabled` or `syncBatch` continuations.
95
+ *
96
+ * `this.run()` is appropriate when you need the callback's **return value** —
97
+ * e.g., running a parent callback token that returns data. For fire-and-forget
98
+ * work, always prefer `this.runTask()`.
83
99
  *
84
100
  * @param token - The callback token to execute
85
101
  * @param args - Optional arguments to pass to the callback
@@ -188,25 +204,26 @@ export class Twist {
188
204
  return this.tools.tasks.cancelAllTasks();
189
205
  }
190
206
  /**
191
- * Called when the twist is activated for a specific priority.
207
+ * Called when the twist is installed by a user.
192
208
  *
193
- * This method should contain initialization logic such as setting up
194
- * initial threads, configuring webhooks, or establishing external connections.
209
+ * This method should contain initialization logic such as seeding
210
+ * initial threads, configuring webhooks, or establishing external
211
+ * connections. When it runs, `this.userId` is already populated with
212
+ * the installing user's ID.
195
213
  *
196
- * @param priority - The priority context containing the priority ID
197
214
  * @param context - Optional context containing the actor who triggered activation
198
215
  * @returns Promise that resolves when activation is complete
199
216
  */
200
217
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
201
- activate(priority, context) {
218
+ activate(context) {
202
219
  return Promise.resolve();
203
220
  }
204
221
  /**
205
- * Called when a new version of the twist is deployed to an existing priority.
222
+ * Called when a new version of the twist is deployed.
206
223
  *
207
224
  * This method should contain migration logic for updating old data structures
208
225
  * or setting up new resources that weren't needed by the previous version.
209
- * It is called with the new version for each active priorityTwist.
226
+ * It is called once per active twist_instance with the new version.
210
227
  *
211
228
  * @returns Promise that resolves when upgrade is complete
212
229
  */
@@ -255,7 +272,12 @@ export class Twist {
255
272
  *
256
273
  * Notes created by the twist itself are filtered out to prevent loops.
257
274
  *
275
+ * Returning a string sets the note's `key` for future upsert matching,
276
+ * linking the Plot note to its external counterpart so that subsequent
277
+ * syncs (reactions, edits) update the existing note instead of creating duplicates.
278
+ *
258
279
  * @param note - The newly created note
280
+ * @returns Optional note key for external deduplication
259
281
  */
260
282
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
261
283
  onNoteCreated(note, ...args) {
package/dist/twist.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"twist.js","sourceRoot":"","sources":["../src/twist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"twist.js","sourceRoot":"","sources":["../src/twist.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plotday/twister",
3
- "version": "0.43.0",
3
+ "version": "0.45.0",
4
4
  "description": "Plot Twist Creator - Build intelligent extensions that integrate and automate",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -89,6 +89,16 @@
89
89
  "types": "./dist/tools/store.d.ts",
90
90
  "default": "./dist/tools/store.js"
91
91
  },
92
+ "./tools/imap": {
93
+ "@plotday/connector": "./src/tools/imap.ts",
94
+ "types": "./dist/tools/imap.d.ts",
95
+ "default": "./dist/tools/imap.js"
96
+ },
97
+ "./tools/smtp": {
98
+ "@plotday/connector": "./src/tools/smtp.ts",
99
+ "types": "./dist/tools/smtp.d.ts",
100
+ "default": "./dist/tools/smtp.js"
101
+ },
92
102
  "./utils/types": {
93
103
  "@plotday/connector": "./src/utils/types.ts",
94
104
  "types": "./dist/utils/types.d.ts",
@@ -179,6 +189,16 @@
179
189
  "types": "./dist/llm-docs/tools/store.d.ts",
180
190
  "default": "./dist/llm-docs/tools/store.js"
181
191
  },
192
+ "./llm-docs/tools/imap": {
193
+ "@plotday/connector": "./src/llm-docs/tools/imap.ts",
194
+ "types": "./dist/llm-docs/tools/imap.d.ts",
195
+ "default": "./dist/llm-docs/tools/imap.js"
196
+ },
197
+ "./llm-docs/tools/smtp": {
198
+ "@plotday/connector": "./src/llm-docs/tools/smtp.ts",
199
+ "types": "./dist/llm-docs/tools/smtp.d.ts",
200
+ "default": "./dist/llm-docs/tools/smtp.js"
201
+ },
182
202
  "./tsconfig.base.json": "./tsconfig.base.json"
183
203
  },
184
204
  "files": [
@@ -1,20 +0,0 @@
1
- <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>PickPriorityConfig | Creating Plot Twists</title><link rel="icon" href="../assets/favicon.svg" type="image/svg+xml"/><meta name="description" content="Documentation for Creating Plot Twists"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="/" class="title">Creating Plot Twists</a><div id="tsd-toolbar-links"><a href="https://plot.day">Plot</a><a href="https://github.com/plotday/plot">GitHub</a><a href="https://www.npmjs.com/package/@plotday/twister">NPM</a></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/plot.html">plot</a></li><li><a href="" aria-current="page">PickPriorityConfig</a></li></ul><h1>Type Alias PickPriorityConfig</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><p>Configuration for automatic priority selection based on thread similarity.</p>
2
- <p>Maps thread fields to scoring weights or required exact matches:</p>
3
- <ul>
4
- <li>Number value: Maximum score for similarity matching on this field</li>
5
- <li><code>true</code> value: Required exact match - threads must match exactly or be excluded</li>
6
- </ul>
7
- <p>Scoring rules:</p>
8
- <ul>
9
- <li>content: Uses vector similarity on thread embedding (cosine similarity)</li>
10
- <li>mentions: Percentage of existing thread's mentions that appear in new thread</li>
11
- <li>meta.field: Exact match on top-level meta fields (e.g., &quot;meta.sourceId&quot;)</li>
12
- </ul>
13
- <p>When content is <code>true</code>, applies a strong similarity threshold to ensure only close matches.
14
- Default (when neither priority nor pickPriority specified): <code>{content: true}</code></p>
15
- </div><div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example">Example<a href="#example" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-7">// Require exact content match with strong similarity</span><br/><span class="hl-15">pickPriority</span><span class="hl-1">: { </span><span class="hl-15">content</span><span class="hl-1">: </span><span class="hl-4">true</span><span class="hl-1"> }</span><br/><br/><span class="hl-7">// Score based on content (max 100 points) and mentions</span><br/><span class="hl-15">pickPriority</span><span class="hl-1">: { </span><span class="hl-15">content</span><span class="hl-1">: </span><span class="hl-14">100</span><span class="hl-1">, </span><span class="hl-15">mentions</span><span class="hl-1">: </span><span class="hl-4">true</span><span class="hl-1"> }</span><br/><br/><span class="hl-7">// Match on meta and score content</span><br/><span class="hl-15">pickPriority</span><span class="hl-1">: { </span><span class="hl-3">&quot;meta.projectId&quot;</span><span class="hl-1">: </span><span class="hl-4">true</span><span class="hl-1">, </span><span class="hl-15">content</span><span class="hl-1">: </span><span class="hl-14">50</span><span class="hl-1"> }</span>
16
- </code><button type="button">Copy</button></pre>
17
-
18
- </div></div></section><div class="tsd-signature"><span class="tsd-signature-keyword">type</span> <span class="tsd-kind-type-alias">PickPriorityConfig</span> <span class="tsd-signature-symbol">=</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#content">content</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">number</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">true</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#mentions">mentions</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">number</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">true</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-signature-symbol">[</span><span class="tsd-kind-index-signature">key</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">`</span><span class="tsd-signature-type">meta.</span><span class="tsd-signature-symbol">${</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">`</span><span class="tsd-signature-symbol">]:</span> <span class="tsd-signature-type">number</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">true</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div><section class="tsd-panel"><h4 class="tsd-before-signature">Indexable</h4><ul class="tsd-signatures"><li class="tsd-index-signature"><div class="tsd-signature"><span class="tsd-signature-symbol">[</span><span class="tsd-kind-parameter">key</span>: <span class="tsd-signature-symbol">`</span><span class="tsd-signature-type">meta.</span><span class="tsd-signature-symbol">${</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol">`</span><span class="tsd-signature-symbol">]:</span> <span class="tsd-signature-type">number</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">true</span></div></li></ul></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/plotday/plot/blob/main/twist/twister/src/plot.ts#L446">plot.ts:446</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="#content" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>content?</span></a>
19
- <a href="#mentions" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>mentions?</span></a>
20
- </div></section></div></details></section></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Properties</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="content"><code class="tsd-tag">Optional</code><span>content</span><a href="#content" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">content</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">number</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">true</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/plotday/plot/blob/main/twist/twister/src/plot.ts#L447">plot.ts:447</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="mentions"><code class="tsd-tag">Optional</code><span>mentions</span><a href="#mentions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">mentions</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">number</span> <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">true</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/plotday/plot/blob/main/twist/twister/src/plot.ts#L448">plot.ts:448</a></li></ul></aside></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Properties</summary><div><a href="#content"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>content</span></a><a href="#mentions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>mentions</span></a></div></details></div></details></div><div class="site-menu"><nav id="tsd-sidebar-links" class="tsd-navigation"><a href="https://plot.day" class="tsd-nav-link">Plot</a><a href="https://github.com/plotday/plot" class="tsd-nav-link">GitHub</a><a href="https://www.npmjs.com/package/@plotday/twister" class="tsd-nav-link">NPM</a></nav><nav class="tsd-navigation"><a href="../modules.html">Creating Plot Twists</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>