@plotday/twister 0.42.0 → 0.44.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 (217) 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 +87 -7
  4. package/dist/connector.d.ts.map +1 -1
  5. package/dist/connector.js +70 -0
  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 +102 -45
  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 +23 -16
  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 +9 -9
  19. package/dist/docs/classes/tools_network.Network.html +15 -7
  20. package/dist/docs/classes/tools_plot.Plot.html +60 -20
  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 +29 -18
  25. package/dist/docs/enums/plot.ActionType.html +9 -7
  26. package/dist/docs/enums/plot.ActorType.html +4 -4
  27. package/dist/docs/enums/plot.ConferencingProvider.html +6 -6
  28. package/dist/docs/enums/tag.Tag.html +2 -1
  29. package/dist/docs/enums/tools_ai.AIModel.html +3 -4
  30. package/dist/docs/enums/tools_integrations.AuthProvider.html +13 -11
  31. package/dist/docs/enums/tools_plot.ContactAccess.html +2 -2
  32. package/dist/docs/enums/tools_plot.LinkAccess.html +5 -0
  33. package/dist/docs/enums/tools_plot.PriorityAccess.html +3 -3
  34. package/dist/docs/enums/tools_plot.ThreadAccess.html +8 -3
  35. package/dist/docs/hierarchy.html +1 -1
  36. package/dist/docs/interfaces/tools_ai.AIRequest.html +12 -12
  37. package/dist/docs/interfaces/tools_ai.AIResponse.html +9 -9
  38. package/dist/docs/interfaces/tools_ai.FilePart.html +5 -5
  39. package/dist/docs/interfaces/tools_ai.ImagePart.html +4 -4
  40. package/dist/docs/interfaces/tools_ai.ReasoningPart.html +4 -4
  41. package/dist/docs/interfaces/tools_ai.RedactedReasoningPart.html +3 -3
  42. package/dist/docs/interfaces/tools_ai.TextPart.html +3 -3
  43. package/dist/docs/interfaces/tools_ai.ToolCallPart.html +5 -5
  44. package/dist/docs/interfaces/tools_ai.ToolExecutionOptions.html +4 -4
  45. package/dist/docs/interfaces/tools_ai.ToolResultPart.html +5 -5
  46. package/dist/docs/media/AGENTS.md +10 -6
  47. package/dist/docs/media/MULTI_USER_AUTH.md +14 -11
  48. package/dist/docs/modules/index.html +1 -1
  49. package/dist/docs/modules/plot.html +1 -1
  50. package/dist/docs/modules/tools_plot.html +1 -1
  51. package/dist/docs/types/index.BooleanDef.html +2 -2
  52. package/dist/docs/types/index.ImapAddress.html +6 -0
  53. package/dist/docs/types/index.ImapConnectOptions.html +12 -0
  54. package/dist/docs/types/index.ImapFetchOptions.html +8 -0
  55. package/dist/docs/types/index.ImapFlagOperation.html +2 -0
  56. package/dist/docs/types/index.ImapMailbox.html +10 -0
  57. package/dist/docs/types/index.ImapMailboxStatus.html +14 -0
  58. package/dist/docs/types/index.ImapMessage.html +28 -0
  59. package/dist/docs/types/index.ImapSearchCriteria.html +18 -0
  60. package/dist/docs/types/index.ImapSession.html +2 -0
  61. package/dist/docs/types/index.NumberDef.html +2 -2
  62. package/dist/docs/types/index.OptionDef.html +1 -1
  63. package/dist/docs/types/index.OptionsSchema.html +1 -1
  64. package/dist/docs/types/index.ResolvedOptions.html +1 -1
  65. package/dist/docs/types/index.SmtpAddress.html +6 -0
  66. package/dist/docs/types/index.SmtpConnectOptions.html +14 -0
  67. package/dist/docs/types/index.SmtpMessage.html +24 -0
  68. package/dist/docs/types/index.SmtpSendResult.html +8 -0
  69. package/dist/docs/types/index.SmtpSession.html +2 -0
  70. package/dist/docs/types/index.TextDef.html +5 -2
  71. package/dist/docs/types/plot.Action.html +9 -3
  72. package/dist/docs/types/plot.Actor.html +5 -5
  73. package/dist/docs/types/plot.ContentType.html +1 -1
  74. package/dist/docs/types/plot.Link.html +21 -18
  75. package/dist/docs/types/plot.LinkUpdate.html +5 -0
  76. package/dist/docs/types/plot.NewActor.html +1 -1
  77. package/dist/docs/types/plot.NewContact.html +3 -17
  78. package/dist/docs/types/plot.NewLink.html +6 -4
  79. package/dist/docs/types/plot.NewLinkWithNotes.html +5 -4
  80. package/dist/docs/types/plot.NewNote.html +6 -2
  81. package/dist/docs/types/plot.NewTags.html +1 -1
  82. package/dist/docs/types/plot.NewThread.html +4 -2
  83. package/dist/docs/types/plot.NewThreadWithNotes.html +1 -1
  84. package/dist/docs/types/plot.Note.html +1 -1
  85. package/dist/docs/types/plot.NoteUpdate.html +1 -1
  86. package/dist/docs/types/plot.PickPriorityConfig.html +2 -2
  87. package/dist/docs/types/plot.PlanOperation.html +10 -0
  88. package/dist/docs/types/plot.PriorityUpdate.html +5 -3
  89. package/dist/docs/types/plot.Tags.html +1 -1
  90. package/dist/docs/types/plot.Thread.html +1 -1
  91. package/dist/docs/types/plot.ThreadCommon.html +7 -7
  92. package/dist/docs/types/plot.ThreadFilter.html +2 -2
  93. package/dist/docs/types/plot.ThreadMeta.html +1 -1
  94. package/dist/docs/types/plot.ThreadType.html +7 -0
  95. package/dist/docs/types/plot.ThreadUpdate.html +1 -1
  96. package/dist/docs/types/plot.ThreadWithNotes.html +1 -1
  97. package/dist/docs/types/tools_ai.AIAssistantMessage.html +2 -2
  98. package/dist/docs/types/tools_ai.AIMessage.html +1 -1
  99. package/dist/docs/types/tools_ai.AISource.html +1 -1
  100. package/dist/docs/types/tools_ai.AISystemMessage.html +2 -2
  101. package/dist/docs/types/tools_ai.AITool.html +1 -1
  102. package/dist/docs/types/tools_ai.AIToolMessage.html +2 -2
  103. package/dist/docs/types/tools_ai.AIToolSet.html +1 -1
  104. package/dist/docs/types/tools_ai.AIUsage.html +5 -5
  105. package/dist/docs/types/tools_ai.AIUserMessage.html +2 -2
  106. package/dist/docs/types/tools_ai.DataContent.html +1 -1
  107. package/dist/docs/types/tools_integrations.ArchiveLinkFilter.html +5 -5
  108. package/dist/docs/types/tools_integrations.AuthToken.html +4 -4
  109. package/dist/docs/types/tools_integrations.Authorization.html +4 -4
  110. package/dist/docs/types/tools_integrations.Channel.html +4 -2
  111. package/dist/docs/types/tools_integrations.LinkTypeConfig.html +10 -8
  112. package/dist/docs/types/tools_plot.LinkFilter.html +5 -5
  113. package/dist/docs/types/tools_plot.LinkSearchResult.html +1 -1
  114. package/dist/docs/types/tools_plot.NoteIntentHandler.html +4 -4
  115. package/dist/docs/types/tools_plot.NoteSearchResult.html +1 -1
  116. package/dist/docs/types/tools_plot.SearchOptions.html +4 -4
  117. package/dist/docs/types/tools_plot.SearchResult.html +1 -1
  118. package/dist/docs/variables/tools_plot.SEARCH_DEFAULT_LIMIT.html +1 -1
  119. package/dist/docs/variables/tools_plot.SEARCH_MAX_LIMIT.html +1 -1
  120. package/dist/llm-docs/connector.d.ts +1 -1
  121. package/dist/llm-docs/connector.d.ts.map +1 -1
  122. package/dist/llm-docs/connector.js +1 -1
  123. package/dist/llm-docs/connector.js.map +1 -1
  124. package/dist/llm-docs/index.d.ts.map +1 -1
  125. package/dist/llm-docs/index.js +4 -0
  126. package/dist/llm-docs/index.js.map +1 -1
  127. package/dist/llm-docs/options.d.ts +1 -1
  128. package/dist/llm-docs/options.d.ts.map +1 -1
  129. package/dist/llm-docs/options.js +1 -1
  130. package/dist/llm-docs/options.js.map +1 -1
  131. package/dist/llm-docs/plot.d.ts +1 -1
  132. package/dist/llm-docs/plot.d.ts.map +1 -1
  133. package/dist/llm-docs/plot.js +1 -1
  134. package/dist/llm-docs/plot.js.map +1 -1
  135. package/dist/llm-docs/tag.d.ts +1 -1
  136. package/dist/llm-docs/tag.d.ts.map +1 -1
  137. package/dist/llm-docs/tag.js +1 -1
  138. package/dist/llm-docs/tag.js.map +1 -1
  139. package/dist/llm-docs/tool.d.ts +1 -1
  140. package/dist/llm-docs/tool.d.ts.map +1 -1
  141. package/dist/llm-docs/tool.js +1 -1
  142. package/dist/llm-docs/tool.js.map +1 -1
  143. package/dist/llm-docs/tools/ai.d.ts +1 -1
  144. package/dist/llm-docs/tools/ai.d.ts.map +1 -1
  145. package/dist/llm-docs/tools/ai.js +1 -1
  146. package/dist/llm-docs/tools/ai.js.map +1 -1
  147. package/dist/llm-docs/tools/imap.d.ts +9 -0
  148. package/dist/llm-docs/tools/imap.d.ts.map +1 -0
  149. package/dist/llm-docs/tools/imap.js +8 -0
  150. package/dist/llm-docs/tools/imap.js.map +1 -0
  151. package/dist/llm-docs/tools/integrations.d.ts +1 -1
  152. package/dist/llm-docs/tools/integrations.d.ts.map +1 -1
  153. package/dist/llm-docs/tools/integrations.js +1 -1
  154. package/dist/llm-docs/tools/integrations.js.map +1 -1
  155. package/dist/llm-docs/tools/network.d.ts +1 -1
  156. package/dist/llm-docs/tools/network.d.ts.map +1 -1
  157. package/dist/llm-docs/tools/network.js +1 -1
  158. package/dist/llm-docs/tools/network.js.map +1 -1
  159. package/dist/llm-docs/tools/plot.d.ts +1 -1
  160. package/dist/llm-docs/tools/plot.d.ts.map +1 -1
  161. package/dist/llm-docs/tools/plot.js +1 -1
  162. package/dist/llm-docs/tools/plot.js.map +1 -1
  163. package/dist/llm-docs/tools/smtp.d.ts +9 -0
  164. package/dist/llm-docs/tools/smtp.d.ts.map +1 -0
  165. package/dist/llm-docs/tools/smtp.js +8 -0
  166. package/dist/llm-docs/tools/smtp.js.map +1 -0
  167. package/dist/llm-docs/twist.d.ts +1 -1
  168. package/dist/llm-docs/twist.d.ts.map +1 -1
  169. package/dist/llm-docs/twist.js +1 -1
  170. package/dist/llm-docs/twist.js.map +1 -1
  171. package/dist/options.d.ts +3 -0
  172. package/dist/options.d.ts.map +1 -1
  173. package/dist/options.js.map +1 -1
  174. package/dist/plot.d.ts +152 -19
  175. package/dist/plot.d.ts.map +1 -1
  176. package/dist/plot.js +2 -0
  177. package/dist/plot.js.map +1 -1
  178. package/dist/tag.d.ts +2 -1
  179. package/dist/tag.d.ts.map +1 -1
  180. package/dist/tag.js +1 -0
  181. package/dist/tag.js.map +1 -1
  182. package/dist/tool.d.ts +10 -1
  183. package/dist/tool.d.ts.map +1 -1
  184. package/dist/tool.js +10 -1
  185. package/dist/tool.js.map +1 -1
  186. package/dist/tools/ai.d.ts +3 -4
  187. package/dist/tools/ai.d.ts.map +1 -1
  188. package/dist/tools/ai.js +3 -4
  189. package/dist/tools/ai.js.map +1 -1
  190. package/dist/tools/imap.d.ts +235 -0
  191. package/dist/tools/imap.d.ts.map +1 -0
  192. package/dist/tools/imap.js +61 -0
  193. package/dist/tools/imap.js.map +1 -0
  194. package/dist/tools/index.d.ts +2 -0
  195. package/dist/tools/index.d.ts.map +1 -1
  196. package/dist/tools/index.js +2 -0
  197. package/dist/tools/index.js.map +1 -1
  198. package/dist/tools/integrations.d.ts +7 -1
  199. package/dist/tools/integrations.d.ts.map +1 -1
  200. package/dist/tools/integrations.js +2 -0
  201. package/dist/tools/integrations.js.map +1 -1
  202. package/dist/tools/network.d.ts +23 -16
  203. package/dist/tools/network.d.ts.map +1 -1
  204. package/dist/tools/network.js.map +1 -1
  205. package/dist/tools/plot.d.ts +96 -3
  206. package/dist/tools/plot.d.ts.map +1 -1
  207. package/dist/tools/plot.js +14 -0
  208. package/dist/tools/plot.js.map +1 -1
  209. package/dist/tools/smtp.d.ts +155 -0
  210. package/dist/tools/smtp.d.ts.map +1 -0
  211. package/dist/tools/smtp.js +62 -0
  212. package/dist/tools/smtp.js.map +1 -0
  213. package/dist/twist.d.ts +16 -2
  214. package/dist/twist.d.ts.map +1 -1
  215. package/dist/twist.js +15 -1
  216. package/dist/twist.js.map +1 -1
  217. package/package.json +21 -1
@@ -0,0 +1,235 @@
1
+ import { ITool } from "..";
2
+ /** Opaque session handle returned by connect(). */
3
+ export type ImapSession = string;
4
+ /** Credentials and server info for connecting to an IMAP server. */
5
+ export type ImapConnectOptions = {
6
+ /** IMAP server hostname (e.g. "imap.mail.me.com") */
7
+ host: string;
8
+ /** IMAP server port (e.g. 993 for TLS) */
9
+ port: number;
10
+ /** Whether to use TLS (true for port 993) */
11
+ tls: boolean;
12
+ /** IMAP username (typically the email address) */
13
+ username: string;
14
+ /** IMAP password (app-specific password for Apple) */
15
+ password: string;
16
+ };
17
+ /** A mailbox returned by listMailboxes(). */
18
+ export type ImapMailbox = {
19
+ /** Mailbox name (e.g. "INBOX", "Sent Messages") */
20
+ name: string;
21
+ /** Hierarchy delimiter (e.g. "/") */
22
+ delimiter: string;
23
+ /** Mailbox flags (e.g. ["\\HasNoChildren"]) */
24
+ flags: string[];
25
+ /** Special-use attribute if present (e.g. "\\Sent", "\\Drafts", "\\Trash") */
26
+ specialUse?: string;
27
+ };
28
+ /** Status of a selected mailbox. */
29
+ export type ImapMailboxStatus = {
30
+ /** Mailbox name */
31
+ name: string;
32
+ /** Total number of messages */
33
+ exists: number;
34
+ /** Number of recent messages */
35
+ recent: number;
36
+ /** UID validity value (changes if UIDs are reassigned) */
37
+ uidValidity: number;
38
+ /** Next UID to be assigned */
39
+ uidNext: number;
40
+ /** Number of unseen messages (may be absent) */
41
+ unseen?: number;
42
+ };
43
+ /** Criteria for searching messages. All fields are optional; they are ANDed together. */
44
+ export type ImapSearchCriteria = {
45
+ /** Messages with internal date on or after this date */
46
+ since?: Date | string;
47
+ /** Messages with internal date before this date */
48
+ before?: Date | string;
49
+ /** Messages with From header containing this string */
50
+ from?: string;
51
+ /** Messages with To header containing this string */
52
+ to?: string;
53
+ /** Messages with Subject containing this string */
54
+ subject?: string;
55
+ /** If true, only unseen messages; if false, only seen messages */
56
+ unseen?: boolean;
57
+ /** If true, only flagged messages; if false, only unflagged messages */
58
+ flagged?: boolean;
59
+ /** Specific UIDs to match */
60
+ uid?: number[];
61
+ };
62
+ /** An email address with optional display name. */
63
+ export type ImapAddress = {
64
+ /** Display name (e.g. "John Doe") */
65
+ name?: string;
66
+ /** Email address (e.g. "john@example.com") */
67
+ address: string;
68
+ };
69
+ /** A fetched message. Fields are populated based on ImapFetchOptions. */
70
+ export type ImapMessage = {
71
+ /** Message UID (stable across sessions if uidValidity hasn't changed) */
72
+ uid: number;
73
+ /** Message flags (e.g. ["\\Seen", "\\Flagged"]) */
74
+ flags: string[];
75
+ /** Internal date of the message */
76
+ date?: Date;
77
+ /** Subject header */
78
+ subject?: string;
79
+ /** From addresses */
80
+ from?: ImapAddress[];
81
+ /** To addresses */
82
+ to?: ImapAddress[];
83
+ /** CC addresses */
84
+ cc?: ImapAddress[];
85
+ /** Message-ID header */
86
+ messageId?: string;
87
+ /** In-Reply-To header (for threading) */
88
+ inReplyTo?: string;
89
+ /** References header (for threading) */
90
+ references?: string[];
91
+ /** Plain text body (when requested) */
92
+ bodyText?: string;
93
+ /** HTML body (when requested) */
94
+ bodyHtml?: string;
95
+ /** Message size in bytes */
96
+ size?: number;
97
+ };
98
+ /** Options for fetchMessages(). */
99
+ export type ImapFetchOptions = {
100
+ /** Fetch envelope/headers. Default: true. */
101
+ headers?: boolean;
102
+ /** Fetch body content. Default: false. */
103
+ body?: boolean;
104
+ /** Which body parts to fetch when body is true. Default: "both". */
105
+ bodyType?: "text" | "html" | "both";
106
+ };
107
+ /** How to modify flags. */
108
+ export type ImapFlagOperation = "add" | "remove" | "set";
109
+ /**
110
+ * Built-in tool for IMAP email access.
111
+ *
112
+ * Provides high-level IMAP operations for reading email and managing flags.
113
+ * Handles TCP/TLS connections, IMAP protocol details, and MIME decoding
114
+ * internally.
115
+ *
116
+ * **Permission model:** Connectors declare which IMAP hosts they need access
117
+ * to. Connections to undeclared hosts are rejected.
118
+ *
119
+ * @example
120
+ * ```typescript
121
+ * class AppleMailConnector extends Connector<AppleMailConnector> {
122
+ * build(build: ConnectorBuilder) {
123
+ * return {
124
+ * options: build(Options, {
125
+ * email: { type: "text", label: "Apple ID Email", default: "" },
126
+ * password: { type: "text", label: "App-Specific Password", secure: true, default: "" },
127
+ * }),
128
+ *
129
+ * imap: build(Imap, { hosts: ["imap.mail.me.com"] }),
130
+ * integrations: build(Integrations),
131
+ * };
132
+ * }
133
+ *
134
+ * async syncInbox() {
135
+ * const session = await this.tools.imap.connect({
136
+ * host: "imap.mail.me.com",
137
+ * port: 993,
138
+ * tls: true,
139
+ * username: this.tools.options.email,
140
+ * password: this.tools.options.password,
141
+ * });
142
+ *
143
+ * try {
144
+ * await this.tools.imap.selectMailbox(session, "INBOX");
145
+ * const uids = await this.tools.imap.search(session, { unseen: true });
146
+ * const messages = await this.tools.imap.fetchMessages(session, uids, {
147
+ * body: true,
148
+ * bodyType: "html",
149
+ * });
150
+ *
151
+ * for (const msg of messages) {
152
+ * await this.tools.integrations.saveLink({
153
+ * source: `apple-mail:${msg.messageId}`,
154
+ * title: msg.subject ?? "(no subject)",
155
+ * // ...
156
+ * });
157
+ * }
158
+ * } finally {
159
+ * await this.tools.imap.disconnect(session);
160
+ * }
161
+ * }
162
+ * }
163
+ * ```
164
+ */
165
+ export declare abstract class Imap extends ITool {
166
+ static readonly Options: {
167
+ /** IMAP server hostnames this tool is allowed to connect to. */
168
+ hosts: string[];
169
+ };
170
+ /**
171
+ * Opens a connection to an IMAP server and authenticates.
172
+ *
173
+ * @param options - Server address, port, TLS setting, and credentials
174
+ * @returns An opaque session handle for subsequent operations
175
+ * @throws If the host is not in the declared hosts list, connection fails, or auth fails
176
+ */
177
+ abstract connect(options: ImapConnectOptions): Promise<ImapSession>;
178
+ /**
179
+ * Lists all mailboxes (folders) on the server.
180
+ *
181
+ * @param session - Session handle from connect()
182
+ * @returns Array of mailbox descriptors
183
+ */
184
+ abstract listMailboxes(session: ImapSession): Promise<ImapMailbox[]>;
185
+ /**
186
+ * Selects a mailbox for subsequent search/fetch/flag operations.
187
+ *
188
+ * @param session - Session handle from connect()
189
+ * @param mailbox - Mailbox name (e.g. "INBOX")
190
+ * @returns Mailbox status including message count and UID validity
191
+ */
192
+ abstract selectMailbox(session: ImapSession, mailbox: string): Promise<ImapMailboxStatus>;
193
+ /**
194
+ * Searches for messages matching the given criteria in the selected mailbox.
195
+ *
196
+ * All criteria fields are ANDed together. Returns UIDs (not sequence numbers).
197
+ *
198
+ * @param session - Session handle from connect()
199
+ * @param criteria - Search criteria (all optional, ANDed)
200
+ * @returns Array of matching message UIDs
201
+ */
202
+ abstract search(session: ImapSession, criteria: ImapSearchCriteria): Promise<number[]>;
203
+ /**
204
+ * Fetches message data for the given UIDs.
205
+ *
206
+ * By default fetches headers only. Set `body: true` in options to include
207
+ * message body content. The implementation handles MIME decoding internally.
208
+ *
209
+ * @param session - Session handle from connect()
210
+ * @param uids - Array of message UIDs to fetch
211
+ * @param options - What to fetch (headers, body, body type)
212
+ * @returns Array of message objects with requested fields populated
213
+ */
214
+ abstract fetchMessages(session: ImapSession, uids: number[], options?: ImapFetchOptions): Promise<ImapMessage[]>;
215
+ /**
216
+ * Modifies flags on messages.
217
+ *
218
+ * Common flags: "\\Seen" (read), "\\Flagged" (starred), "\\Deleted" (marked for deletion).
219
+ *
220
+ * @param session - Session handle from connect()
221
+ * @param uids - Array of message UIDs to modify
222
+ * @param flags - Flags to add/remove/set (e.g. ["\\Seen"])
223
+ * @param operation - "add", "remove", or "set" (replace all flags)
224
+ */
225
+ abstract setFlags(session: ImapSession, uids: number[], flags: string[], operation: ImapFlagOperation): Promise<void>;
226
+ /**
227
+ * Closes the IMAP connection.
228
+ *
229
+ * Always call this when done, preferably in a finally block.
230
+ *
231
+ * @param session - Session handle from connect()
232
+ */
233
+ abstract disconnect(session: ImapSession): Promise<void>;
234
+ }
235
+ //# sourceMappingURL=imap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imap.d.ts","sourceRoot":"","sources":["../../src/tools/imap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import { ITool } from "..";
2
+ /**
3
+ * Built-in tool for IMAP email access.
4
+ *
5
+ * Provides high-level IMAP operations for reading email and managing flags.
6
+ * Handles TCP/TLS connections, IMAP protocol details, and MIME decoding
7
+ * internally.
8
+ *
9
+ * **Permission model:** Connectors declare which IMAP hosts they need access
10
+ * to. Connections to undeclared hosts are rejected.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * class AppleMailConnector extends Connector<AppleMailConnector> {
15
+ * build(build: ConnectorBuilder) {
16
+ * return {
17
+ * options: build(Options, {
18
+ * email: { type: "text", label: "Apple ID Email", default: "" },
19
+ * password: { type: "text", label: "App-Specific Password", secure: true, default: "" },
20
+ * }),
21
+ *
22
+ * imap: build(Imap, { hosts: ["imap.mail.me.com"] }),
23
+ * integrations: build(Integrations),
24
+ * };
25
+ * }
26
+ *
27
+ * async syncInbox() {
28
+ * const session = await this.tools.imap.connect({
29
+ * host: "imap.mail.me.com",
30
+ * port: 993,
31
+ * tls: true,
32
+ * username: this.tools.options.email,
33
+ * password: this.tools.options.password,
34
+ * });
35
+ *
36
+ * try {
37
+ * await this.tools.imap.selectMailbox(session, "INBOX");
38
+ * const uids = await this.tools.imap.search(session, { unseen: true });
39
+ * const messages = await this.tools.imap.fetchMessages(session, uids, {
40
+ * body: true,
41
+ * bodyType: "html",
42
+ * });
43
+ *
44
+ * for (const msg of messages) {
45
+ * await this.tools.integrations.saveLink({
46
+ * source: `apple-mail:${msg.messageId}`,
47
+ * title: msg.subject ?? "(no subject)",
48
+ * // ...
49
+ * });
50
+ * }
51
+ * } finally {
52
+ * await this.tools.imap.disconnect(session);
53
+ * }
54
+ * }
55
+ * }
56
+ * ```
57
+ */
58
+ export class Imap extends ITool {
59
+ static Options;
60
+ }
61
+ //# sourceMappingURL=imap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imap.js","sourceRoot":"","sources":["../../src/tools/imap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAsH3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,MAAM,OAAgB,IAAK,SAAQ,KAAK;IACtC,MAAM,CAAU,OAAO,CAGrB;CAuFH"}
@@ -6,4 +6,6 @@ export * from "./network";
6
6
  export * from "./plot";
7
7
  export * from "./store";
8
8
  export * from "./tasks";
9
+ export * from "./imap";
10
+ export * from "./smtp";
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,MAAM,CAAC;AACrB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,MAAM,CAAC;AACrB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC"}
@@ -6,4 +6,6 @@ export * from "./network";
6
6
  export * from "./plot";
7
7
  export * from "./store";
8
8
  export * from "./tasks";
9
+ export * from "./imap";
10
+ export * from "./smtp";
9
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,MAAM,CAAC;AACrB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,MAAM,CAAC;AACrB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC"}
@@ -15,6 +15,8 @@ export type Channel = {
15
15
  children?: Channel[];
16
16
  /** Priority ID this channel is routed to (set when channel is enabled) */
17
17
  priorityId?: string;
18
+ /** Per-channel link type configs. Overrides twist-level linkTypes when present. */
19
+ linkTypes?: LinkTypeConfig[];
18
20
  };
19
21
  /**
20
22
  * Describes a link type that a connector creates.
@@ -44,6 +46,8 @@ export type LinkTypeConfig = {
44
46
  }>;
45
47
  /** Whether this link type supports displaying and changing the assignee */
46
48
  supportsAssignee?: boolean;
49
+ /** Default thread creation mode for this link type: 'all' | 'actionable' | 'manual' */
50
+ defaultCreateThreads?: string;
47
51
  };
48
52
  /**
49
53
  * Built-in tool for managing OAuth authentication and channel resources.
@@ -208,7 +212,9 @@ export declare enum AuthProvider {
208
212
  /** Asana OAuth provider for Asana workspaces */
209
213
  Asana = "asana",
210
214
  /** HubSpot OAuth provider for HubSpot CRM */
211
- HubSpot = "hubspot"
215
+ HubSpot = "hubspot",
216
+ /** Todoist OAuth provider for Todoist task management */
217
+ Todoist = "todoist"
212
218
  }
213
219
  /**
214
220
  * Represents a completed authorization from an OAuth flow.
@@ -1 +1 @@
1
- {"version":3,"file":"integrations.d.ts","sourceRoot":"","sources":["../../src/tools/integrations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"integrations.d.ts","sourceRoot":"","sources":["../../src/tools/integrations.ts"],"names":[],"mappings":"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"}
@@ -78,5 +78,7 @@ export var AuthProvider;
78
78
  AuthProvider["Asana"] = "asana";
79
79
  /** HubSpot OAuth provider for HubSpot CRM */
80
80
  AuthProvider["HubSpot"] = "hubspot";
81
+ /** Todoist OAuth provider for Todoist task management */
82
+ AuthProvider["Todoist"] = "todoist";
81
83
  })(AuthProvider || (AuthProvider = {}));
82
84
  //# sourceMappingURL=integrations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"integrations.js","sourceRoot":"","sources":["../../src/tools/integrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,GAEN,MAAM,IAAI,CAAC;AAkDZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,OAAgB,YAAa,SAAQ,KAAK;IAC9C;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,GAAG,WAAuB;QAC3C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;CAoGF;AAiBD;;;;;GAKG;AACH,MAAM,CAAN,IAAY,YAqBX;AArBD,WAAY,YAAY;IACtB,0DAA0D;IAC1D,iCAAiB,CAAA;IACjB,0DAA0D;IAC1D,uCAAuB,CAAA;IACvB,kDAAkD;IAClD,iCAAiB,CAAA;IACjB,gDAAgD;IAChD,+BAAe,CAAA;IACf,uDAAuD;IACvD,uCAAuB,CAAA;IACvB,kDAAkD;IAClD,iCAAiB,CAAA;IACjB,gCAAgC;IAChC,iCAAiB,CAAA;IACjB,sEAAsE;IACtE,iCAAiB,CAAA;IACjB,gDAAgD;IAChD,+BAAe,CAAA;IACf,6CAA6C;IAC7C,mCAAmB,CAAA;AACrB,CAAC,EArBW,YAAY,KAAZ,YAAY,QAqBvB"}
1
+ {"version":3,"file":"integrations.js","sourceRoot":"","sources":["../../src/tools/integrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,GAEN,MAAM,IAAI,CAAC;AAsDZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,OAAgB,YAAa,SAAQ,KAAK;IAC9C;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,GAAG,WAAuB;QAC3C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;CAoGF;AAiBD;;;;;GAKG;AACH,MAAM,CAAN,IAAY,YAuBX;AAvBD,WAAY,YAAY;IACtB,0DAA0D;IAC1D,iCAAiB,CAAA;IACjB,0DAA0D;IAC1D,uCAAuB,CAAA;IACvB,kDAAkD;IAClD,iCAAiB,CAAA;IACjB,gDAAgD;IAChD,+BAAe,CAAA;IACf,uDAAuD;IACvD,uCAAuB,CAAA;IACvB,kDAAkD;IAClD,iCAAiB,CAAA;IACjB,gCAAgC;IAChC,iCAAiB,CAAA;IACjB,sEAAsE;IACtE,iCAAiB,CAAA;IACjB,gDAAgD;IAChD,+BAAe,CAAA;IACf,6CAA6C;IAC7C,mCAAmB,CAAA;IACnB,yDAAyD;IACzD,mCAAmB,CAAA;AACrB,CAAC,EAvBW,YAAY,KAAZ,YAAY,QAuBvB"}
@@ -133,6 +133,10 @@ export declare abstract class Network extends ITool {
133
133
  * - **Gmail** (Google with Gmail scopes): Returns a Google Pub/Sub topic name instead of a webhook URL.
134
134
  * The topic name (e.g., "projects/plot-prod/topics/gmail-webhook-abc123") should be passed
135
135
  * to the Gmail API's `users.watch` endpoint. Requires `authorization` parameter with Gmail scopes.
136
+ * - **Pub/Sub** (`pubsub: true`): Returns a Google Pub/Sub topic name instead of a webhook URL.
137
+ * Use this for services that deliver events via Pub/Sub (e.g., Google Workspace Events API).
138
+ * A Pub/Sub topic and push subscription are created automatically; the returned topic name
139
+ * can be passed to any Google API that accepts a Pub/Sub notification endpoint.
136
140
  * - **Default**: Returns a standard webhook URL for all other cases.
137
141
  *
138
142
  * @param options - Webhook creation options
@@ -140,34 +144,37 @@ export declare abstract class Network extends ITool {
140
144
  * @param options.authorization - Optional authorization for provider-specific webhooks (required for Slack and Gmail)
141
145
  * @param callback - Function receiving (request, ...extraArgs)
142
146
  * @param extraArgs - Additional arguments to pass to the callback (type-checked, no functions allowed)
143
- * @returns Promise resolving to the webhook URL, or for Gmail, a Pub/Sub topic name
147
+ * @returns Promise resolving to the webhook URL, or for Gmail/Pub/Sub, a Pub/Sub topic name
144
148
  *
145
149
  * @example
146
150
  * ```typescript
147
- * // Gmail webhook - returns Pub/Sub topic name
151
+ * // Pub/Sub webhook for Workspace Events API
148
152
  * const topicName = await this.tools.network.createWebhook(
149
- * {
150
- * provider: AuthProvider.Google,
151
- * authorization: gmailAuth
152
- * },
153
+ * { pubsub: true },
154
+ * this.onEventReceived,
155
+ * channelId
156
+ * );
157
+ * // topicName: "projects/plot-prod/topics/ps-abc123"
158
+ *
159
+ * // Pass topic name to Workspace Events API
160
+ * await api.createSubscription(targetResource, topicName, eventTypes);
161
+ * ```
162
+ *
163
+ * @example
164
+ * ```typescript
165
+ * // Gmail webhook - auto-detected from scopes, returns Pub/Sub topic name
166
+ * const topicName = await this.tools.network.createWebhook(
167
+ * {},
153
168
  * this.onGmailNotification,
154
169
  * "inbox"
155
170
  * );
156
- * // topicName: "projects/plot-prod/topics/gmail-webhook-abc123"
157
- *
158
- * // Pass topic name to Gmail API
159
- * await gmailApi.users.watch({
160
- * userId: 'me',
161
- * requestBody: {
162
- * topicName: topicName, // Use the returned topic name
163
- * labelIds: ['INBOX']
164
- * }
165
- * });
166
171
  * ```
167
172
  */
168
173
  abstract createWebhook<TArgs extends Serializable[], TCallback extends (request: WebhookRequest, ...args: TArgs) => any>(options: {
169
174
  provider?: AuthProvider;
170
175
  authorization?: Authorization;
176
+ /** When true, creates a Google Pub/Sub topic instead of a webhook URL. */
177
+ pubsub?: boolean;
171
178
  }, callback: TCallback, ...extraArgs: TArgs): Promise<string>;
172
179
  /**
173
180
  * Deletes an existing webhook endpoint.
@@ -1 +1 @@
1
- {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/tools/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,KAAK,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEvE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,kDAAkD;IAClD,IAAI,EAAE,SAAS,CAAC;IAChB,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmFG;AACH,8BAAsB,OAAQ,SAAQ,KAAK;IACzC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;QACvB;;;WAGG;QACH,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACH,QAAQ,CAAC,aAAa,CACpB,KAAK,SAAS,YAAY,EAAE,EAC5B,SAAS,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,KAAK,KAAK,GAAG,EAElE,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B,EACD,QAAQ,EAAE,SAAS,EACnB,GAAG,SAAS,EAAE,KAAK,GAClB,OAAO,CAAC,MAAM,CAAC;IAElB;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CACnD"}
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/tools/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,KAAK,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEvE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,kDAAkD;IAClD,IAAI,EAAE,SAAS,CAAC;IAChB,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmFG;AACH,8BAAsB,OAAQ,SAAQ,KAAK;IACzC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;QACvB;;;WAGG;QACH,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+CG;IACH,QAAQ,CAAC,aAAa,CACpB,KAAK,SAAS,YAAY,EAAE,EAC5B,SAAS,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,KAAK,KAAK,GAAG,EAElE,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,0EAA0E;QAC1E,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,EACD,QAAQ,EAAE,SAAS,EACnB,GAAG,SAAS,EAAE,KAAK,GAClB,OAAO,CAAC,MAAM,CAAC;IAElB;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CACnD"}
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/tools/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAkC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmFG;AACH,MAAM,OAAgB,OAAQ,SAAQ,KAAK;IACzC,MAAM,CAAU,OAAO,CAMrB;CA6EH"}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/tools/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAkC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmFG;AACH,MAAM,OAAgB,OAAQ,SAAQ,KAAK;IACzC,MAAM,CAAU,OAAO,CAMrB;CAoFH"}
@@ -1,5 +1,6 @@
1
- import { type Thread, type ThreadUpdate, type Actor, type ActorId, ITool, type Link, type NewThread, type NewThreadWithNotes, type NewNote, type NewPriority, type Note, type NoteUpdate, type Priority, type PriorityUpdate, Uuid } from "..";
1
+ import { type Action, type Thread, type ThreadUpdate, type Actor, type ActorId, ITool, type Link, type LinkUpdate, type NewThread, type NewThreadWithNotes, type NewNote, type NewPriority, type Note, type NoteUpdate, type PlanOperation, type Priority, type PriorityUpdate, Uuid } from "..";
2
2
  import { type Schedule, type NewSchedule } from "../schedule";
3
+ import type { Callback } from "./callbacks";
3
4
  export declare enum ThreadAccess {
4
5
  /**
5
6
  * Create new Note on a Thread where the twist was mentioned.
@@ -11,7 +12,14 @@ export declare enum ThreadAccess {
11
12
  * Create new Note in a Thread the twist created.
12
13
  * All Respond permissions.
13
14
  */
14
- Create = 1
15
+ Create = 1,
16
+ /**
17
+ * List/query all Threads in the twist's priority scope.
18
+ * Update any Thread (title, tags, archived, type, priority) regardless of creator.
19
+ * Create Notes on any Thread (not just own or mentioned).
20
+ * All Create permissions.
21
+ */
22
+ Full = 2
15
23
  }
16
24
  export declare enum PriorityAccess {
17
25
  /**
@@ -30,6 +38,12 @@ export declare enum ContactAccess {
30
38
  /** Read existing contact details. Without this, only the ID will be provided. */
31
39
  Read = 0
32
40
  }
41
+ export declare enum LinkAccess {
42
+ /** Read links on any thread in the twist's priority scope. */
43
+ Read = 0,
44
+ /** Read + update links, including moving links between threads within scope. */
45
+ Full = 1
46
+ }
33
47
  /**
34
48
  * Intent handler for thread mentions.
35
49
  * Defines how the twist should respond when mentioned in a thread.
@@ -202,7 +216,10 @@ export declare abstract class Plot extends ITool {
202
216
  intents?: NoteIntentHandler[];
203
217
  };
204
218
  /** Enable link processing from connected source channels. */
205
- link?: true;
219
+ link?: true | {
220
+ /** Access level for links. When omitted with `link: true`, only source channel links are accessible. */
221
+ access?: LinkAccess;
222
+ };
206
223
  priority?: {
207
224
  access?: PriorityAccess;
208
225
  };
@@ -211,6 +228,12 @@ export declare abstract class Plot extends ITool {
211
228
  };
212
229
  /** Enable semantic search across notes and links in the twist's priority scope. */
213
230
  search?: true;
231
+ /**
232
+ * When true, admin write operations (on threads/notes/links/priorities not created by this twist)
233
+ * require user approval via plan actions instead of executing immediately.
234
+ * Read operations and operations on the twist's own content still work directly.
235
+ */
236
+ requireApproval?: boolean;
214
237
  };
215
238
  /**
216
239
  * Creates a new thread in the Plot system.
@@ -452,6 +475,12 @@ export declare abstract class Plot extends ITool {
452
475
  * @returns Promise resolving to array of actors
453
476
  */
454
477
  abstract getActors(ids: ActorId[]): Promise<Actor[]>;
478
+ /**
479
+ * Returns the full Actor for the user who installed this twist.
480
+ * Useful for per-user operations like schedule creation, or when
481
+ * the owner's name or email is needed.
482
+ */
483
+ abstract getOwner(): Promise<Actor>;
455
484
  /**
456
485
  * Creates a new schedule for a thread.
457
486
  *
@@ -505,6 +534,70 @@ export declare abstract class Plot extends ITool {
505
534
  * @returns Promise resolving to array of search results ordered by similarity
506
535
  */
507
536
  abstract search(query: string, options?: SearchOptions): Promise<SearchResult[]>;
537
+ /**
538
+ * Lists threads in a priority and optionally its descendants.
539
+ *
540
+ * Requires `ThreadAccess.Full`.
541
+ *
542
+ * @param options - Query options for filtering threads
543
+ * @returns Promise resolving to array of threads
544
+ */
545
+ abstract getThreads(options?: {
546
+ /** Priority to list threads from. Defaults to the twist's installed priority. */
547
+ priorityId?: Uuid;
548
+ /** Include threads from descendant priorities. Default: true. */
549
+ includeDescendants?: boolean;
550
+ /** Include archived threads. Default: false. */
551
+ includeArchived?: boolean;
552
+ /** Maximum number of threads to return. Default: 50, max: 200. */
553
+ limit?: number;
554
+ /** Number of threads to skip for pagination. Default: 0. */
555
+ offset?: number;
556
+ }): Promise<Thread[]>;
557
+ /**
558
+ * Lists priorities within the twist's scope.
559
+ *
560
+ * Requires `PriorityAccess.Full`.
561
+ *
562
+ * @param options - Query options for filtering priorities
563
+ * @returns Promise resolving to array of priorities
564
+ */
565
+ abstract getPriorities(options?: {
566
+ /** Parent priority to list children of. Defaults to the twist's installed priority. */
567
+ parentId?: Uuid;
568
+ /** Include all descendants, not just direct children. Default: false. */
569
+ includeDescendants?: boolean;
570
+ /** Include archived priorities. Default: false. */
571
+ includeArchived?: boolean;
572
+ }): Promise<Priority[]>;
573
+ /**
574
+ * Updates a link.
575
+ *
576
+ * Requires `LinkAccess.Full`. Set `threadId` to move the link to a different thread.
577
+ *
578
+ * @param link - The link update containing the ID and fields to change
579
+ * @returns Promise that resolves when the update is complete
580
+ */
581
+ abstract updateLink(link: LinkUpdate): Promise<void>;
582
+ /**
583
+ * Creates a plan of operations for user approval.
584
+ *
585
+ * Returns an Action that can be attached to a note. The user can approve,
586
+ * deny, or request changes. On approval, operations are executed by the API.
587
+ *
588
+ * Requires `requireApproval: true` in Plot options.
589
+ *
590
+ * @param options - Plan configuration
591
+ * @returns An Action of type `plan` to attach to a note
592
+ */
593
+ abstract createPlan(options: {
594
+ /** Human-readable title summarizing the plan */
595
+ title: string;
596
+ /** Array of operations to execute on approval */
597
+ operations: PlanOperation[];
598
+ /** Callback invoked with (action, approved: boolean) when the user responds */
599
+ callback: Callback;
600
+ }): Action;
508
601
  }
509
602
  export {};
510
603
  //# sourceMappingURL=plot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plot.d.ts","sourceRoot":"","sources":["../../src/tools/plot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plot.d.ts","sourceRoot":"","sources":["../../src/tools/plot.ts"],"names":[],"mappings":"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"}