@plotday/twister 0.57.0 → 0.59.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.
- package/README.md +53 -44
- package/bin/commands/create.js +9 -14
- package/bin/commands/create.js.map +1 -1
- package/bin/commands/deploy.js +2 -0
- package/bin/commands/deploy.js.map +1 -1
- package/bin/commands/generate.js +8 -5
- package/bin/commands/generate.js.map +1 -1
- package/bin/index.js +2 -2
- package/bin/index.js.map +1 -1
- package/bin/templates/AGENTS.template.md +110 -94
- package/bin/templates/README.template.md +36 -33
- package/cli/templates/AGENTS.template.md +110 -94
- package/cli/templates/README.template.md +36 -33
- package/dist/connector.d.ts +58 -17
- package/dist/connector.d.ts.map +1 -1
- package/dist/connector.js +51 -13
- package/dist/connector.js.map +1 -1
- package/dist/docs/assets/hierarchy.js +1 -1
- package/dist/docs/assets/navigation.js +1 -1
- package/dist/docs/assets/search.js +1 -1
- package/dist/docs/classes/index.Connector.html +90 -60
- package/dist/docs/classes/index.FileNotFoundError.html +2 -2
- package/dist/docs/classes/index.Files.html +4 -4
- package/dist/docs/classes/index.Imap.html +10 -10
- package/dist/docs/classes/index.Options.html +2 -2
- package/dist/docs/classes/index.Smtp.html +6 -6
- package/dist/docs/classes/tool.ITool.html +2 -2
- package/dist/docs/classes/tool.Tool.html +23 -23
- package/dist/docs/classes/tools_ai.AI.html +5 -5
- package/dist/docs/classes/tools_callbacks.Callbacks.html +8 -8
- package/dist/docs/classes/tools_integrations.Integrations.html +15 -15
- package/dist/docs/classes/tools_network.Network.html +9 -9
- package/dist/docs/classes/tools_plot.Plot.html +34 -33
- package/dist/docs/classes/tools_store.Store.html +8 -8
- package/dist/docs/classes/tools_tasks.Tasks.html +6 -6
- package/dist/docs/classes/tools_twists.Twists.html +12 -11
- package/dist/docs/classes/twist.Twist.html +28 -28
- package/dist/docs/documents/Building_Connectors.html +42 -28
- package/dist/docs/documents/Built-in_Tools.html +170 -67
- package/dist/docs/documents/CLI_Reference.html +68 -47
- package/dist/docs/documents/Core_Concepts.html +52 -81
- package/dist/docs/documents/Getting_Started.html +28 -31
- package/dist/docs/documents/MULTI_USER_AUTH.html +45 -0
- package/dist/docs/documents/Runtime_Environment.html +13 -12
- package/dist/docs/documents/SYNC_STRATEGIES.html +373 -0
- package/dist/docs/enums/plot.ActionType.html +9 -9
- package/dist/docs/enums/plot.ActorType.html +4 -4
- package/dist/docs/enums/plot.ConferencingProvider.html +6 -6
- package/dist/docs/enums/plot.ThemeColor.html +9 -9
- package/dist/docs/enums/tag.Tag.html +3 -3
- package/dist/docs/enums/tools_ai.AIModel.html +3 -3
- package/dist/docs/enums/tools_integrations.AuthProvider.html +13 -13
- package/dist/docs/enums/tools_plot.ContactAccess.html +2 -2
- package/dist/docs/enums/tools_plot.FocusAccess.html +3 -3
- package/dist/docs/enums/tools_plot.LinkAccess.html +3 -3
- package/dist/docs/enums/tools_plot.ThreadAccess.html +4 -4
- package/dist/docs/functions/index.Uuid.Generate.html +1 -1
- package/dist/docs/functions/utils_hash.quickHash.html +1 -1
- package/dist/docs/hierarchy.html +1 -1
- package/dist/docs/index.html +7 -8
- package/dist/docs/interfaces/tools_ai.AIRequest.html +13 -13
- package/dist/docs/interfaces/tools_ai.AIResponse.html +9 -9
- package/dist/docs/interfaces/tools_ai.FilePart.html +5 -5
- package/dist/docs/interfaces/tools_ai.ImagePart.html +4 -4
- package/dist/docs/interfaces/tools_ai.ReasoningPart.html +4 -4
- package/dist/docs/interfaces/tools_ai.RedactedReasoningPart.html +3 -3
- package/dist/docs/interfaces/tools_ai.TextPart.html +3 -3
- package/dist/docs/interfaces/tools_ai.ToolCallPart.html +5 -5
- package/dist/docs/interfaces/tools_ai.ToolExecutionOptions.html +4 -4
- package/dist/docs/interfaces/tools_ai.ToolResultPart.html +5 -5
- package/dist/docs/interfaces/tools_twists.TwistSource.html +3 -3
- package/dist/docs/interfaces/utils_types.ToolShed.html +5 -5
- package/dist/docs/media/AGENTS.md +101 -74
- package/dist/docs/modules.html +1 -1
- package/dist/docs/types/index.BooleanDef.html +2 -2
- package/dist/docs/types/index.CreateLinkDraft.html +9 -9
- package/dist/docs/types/index.ImapAddress.html +3 -3
- package/dist/docs/types/index.ImapConnectOptions.html +6 -6
- package/dist/docs/types/index.ImapFetchOptions.html +4 -4
- package/dist/docs/types/index.ImapFlagOperation.html +1 -1
- package/dist/docs/types/index.ImapMailbox.html +5 -5
- package/dist/docs/types/index.ImapMailboxStatus.html +7 -7
- package/dist/docs/types/index.ImapMessage.html +14 -14
- package/dist/docs/types/index.ImapSearchCriteria.html +9 -9
- package/dist/docs/types/index.ImapSession.html +1 -1
- package/dist/docs/types/index.NewSchedule.html +13 -13
- package/dist/docs/types/index.NewScheduleContact.html +2 -2
- package/dist/docs/types/index.NewScheduleOccurrence.html +1 -1
- package/dist/docs/types/index.NoteWriteBackResult.html +3 -3
- package/dist/docs/types/index.NumberDef.html +2 -2
- package/dist/docs/types/index.OptionDef.html +1 -1
- package/dist/docs/types/index.OptionalScopeGroup.html +6 -6
- package/dist/docs/types/index.OptionsSchema.html +1 -1
- package/dist/docs/types/index.ReactionCapabilities.html +1 -1
- package/dist/docs/types/index.ResolvedOptions.html +1 -1
- package/dist/docs/types/index.ResolvedRecipient.html +5 -5
- package/dist/docs/types/index.Schedule.html +12 -12
- package/dist/docs/types/index.ScheduleContact.html +2 -2
- package/dist/docs/types/index.ScheduleContactRole.html +1 -1
- package/dist/docs/types/index.ScheduleContactStatus.html +1 -1
- package/dist/docs/types/index.ScheduleOccurrence.html +6 -6
- package/dist/docs/types/index.ScheduleOccurrenceUpdate.html +1 -1
- package/dist/docs/types/index.ScopeConfig.html +3 -3
- package/dist/docs/types/index.SelectDef.html +2 -2
- package/dist/docs/types/index.Serializable.html +1 -1
- package/dist/docs/types/index.SmtpAddress.html +3 -3
- package/dist/docs/types/index.SmtpConnectOptions.html +7 -7
- package/dist/docs/types/index.SmtpMessage.html +12 -12
- package/dist/docs/types/index.SmtpSendResult.html +4 -4
- package/dist/docs/types/index.SmtpSession.html +1 -1
- package/dist/docs/types/index.TextDef.html +2 -2
- package/dist/docs/types/index.Uuid.html +1 -1
- package/dist/docs/types/plot.Action.html +1 -1
- package/dist/docs/types/plot.Actor.html +5 -5
- package/dist/docs/types/plot.ActorId.html +4 -4
- package/dist/docs/types/plot.Contact.html +4 -4
- package/dist/docs/types/plot.ContentType.html +1 -1
- package/dist/docs/types/plot.Focus.html +8 -8
- package/dist/docs/types/plot.FocusUpdate.html +1 -1
- package/dist/docs/types/plot.Link.html +17 -17
- package/dist/docs/types/plot.LinkUpdate.html +1 -1
- package/dist/docs/types/plot.NewActor.html +1 -1
- package/dist/docs/types/plot.NewContact.html +1 -1
- package/dist/docs/types/plot.NewFocus.html +1 -1
- package/dist/docs/types/plot.NewLink.html +5 -2
- package/dist/docs/types/plot.NewLinkWithNotes.html +1 -1
- package/dist/docs/types/plot.NewNote.html +1 -1
- package/dist/docs/types/plot.NewReactions.html +1 -1
- package/dist/docs/types/plot.NewTags.html +1 -1
- package/dist/docs/types/plot.NewThread.html +1 -1
- package/dist/docs/types/plot.NewThreadWithNotes.html +1 -1
- package/dist/docs/types/plot.Note.html +1 -1
- package/dist/docs/types/plot.NoteUpdate.html +1 -1
- package/dist/docs/types/plot.PlanOperation.html +1 -1
- package/dist/docs/types/plot.Reaction.html +3 -3
- package/dist/docs/types/plot.Reactions.html +1 -1
- package/dist/docs/types/plot.Tags.html +1 -1
- package/dist/docs/types/plot.Thread.html +1 -1
- package/dist/docs/types/plot.ThreadAccessLevel.html +1 -1
- package/dist/docs/types/plot.ThreadCommon.html +6 -6
- package/dist/docs/types/plot.ThreadFilter.html +2 -2
- package/dist/docs/types/plot.ThreadMeta.html +1 -1
- package/dist/docs/types/plot.ThreadType.html +1 -1
- package/dist/docs/types/plot.ThreadUpdate.html +1 -1
- package/dist/docs/types/plot.ThreadWithNotes.html +1 -1
- package/dist/docs/types/tools_ai.AIAssistantMessage.html +2 -2
- package/dist/docs/types/tools_ai.AICapabilities.html +4 -4
- package/dist/docs/types/tools_ai.AIMessage.html +1 -1
- package/dist/docs/types/tools_ai.AIOptions.html +2 -2
- package/dist/docs/types/tools_ai.AISource.html +1 -1
- package/dist/docs/types/tools_ai.AISystemMessage.html +2 -2
- package/dist/docs/types/tools_ai.AITool.html +1 -1
- package/dist/docs/types/tools_ai.AIToolMessage.html +2 -2
- package/dist/docs/types/tools_ai.AIToolSet.html +1 -1
- package/dist/docs/types/tools_ai.AIUsage.html +5 -5
- package/dist/docs/types/tools_ai.AIUserMessage.html +2 -2
- package/dist/docs/types/tools_ai.DataContent.html +1 -1
- package/dist/docs/types/tools_ai.ModelPreferences.html +5 -5
- package/dist/docs/types/tools_callbacks.Callback.html +2 -2
- package/dist/docs/types/tools_integrations.ArchiveLinkFilter.html +5 -5
- package/dist/docs/types/tools_integrations.ArchiveNotesFilter.html +2 -2
- package/dist/docs/types/tools_integrations.AuthToken.html +6 -5
- package/dist/docs/types/tools_integrations.Authorization.html +4 -4
- package/dist/docs/types/tools_integrations.Channel.html +6 -6
- package/dist/docs/types/tools_integrations.ComposeConfig.html +4 -4
- package/dist/docs/types/tools_integrations.ContactRoleConfig.html +5 -5
- package/dist/docs/types/tools_integrations.LinkTypeConfig.html +21 -21
- package/dist/docs/types/tools_integrations.NewCustomEmoji.html +8 -8
- package/dist/docs/types/tools_integrations.StatusIcon.html +1 -1
- package/dist/docs/types/tools_integrations.SyncContext.html +4 -4
- package/dist/docs/types/tools_network.WebhookRequest.html +6 -6
- package/dist/docs/types/tools_plot.LinkFilter.html +5 -5
- package/dist/docs/types/tools_plot.LinkSearchResult.html +1 -1
- package/dist/docs/types/tools_plot.NoteIntentHandler.html +4 -4
- package/dist/docs/types/tools_plot.NoteSearchResult.html +1 -1
- package/dist/docs/types/tools_plot.SearchOptions.html +4 -4
- package/dist/docs/types/tools_plot.SearchResult.html +1 -1
- package/dist/docs/types/tools_twists.Log.html +2 -2
- package/dist/docs/types/tools_twists.TwistPermissions.html +1 -1
- package/dist/docs/types/utils_types.BuiltInTools.html +2 -2
- package/dist/docs/types/utils_types.ExtractBuildReturn.html +1 -1
- package/dist/docs/types/utils_types.InferOptions.html +1 -1
- package/dist/docs/types/utils_types.InferTools.html +1 -1
- package/dist/docs/types/utils_types.JSONValue.html +1 -1
- package/dist/docs/types/utils_types.PromiseValues.html +1 -1
- package/dist/docs/types/utils_types.ToolBuilder.html +1 -1
- package/dist/docs/variables/tools_plot.SEARCH_DEFAULT_LIMIT.html +1 -1
- package/dist/docs/variables/tools_plot.SEARCH_MAX_LIMIT.html +1 -1
- package/dist/facets.d.ts +30 -0
- package/dist/facets.d.ts.map +1 -0
- package/dist/facets.js +16 -0
- package/dist/facets.js.map +1 -0
- package/dist/llm-docs/connector.d.ts +1 -1
- package/dist/llm-docs/connector.d.ts.map +1 -1
- package/dist/llm-docs/connector.js +1 -1
- package/dist/llm-docs/connector.js.map +1 -1
- package/dist/llm-docs/facets.d.ts +9 -0
- package/dist/llm-docs/facets.d.ts.map +1 -0
- package/dist/llm-docs/facets.js +8 -0
- package/dist/llm-docs/facets.js.map +1 -0
- package/dist/llm-docs/index.d.ts.map +1 -1
- package/dist/llm-docs/index.js +2 -0
- package/dist/llm-docs/index.js.map +1 -1
- package/dist/llm-docs/plot.d.ts +1 -1
- package/dist/llm-docs/plot.d.ts.map +1 -1
- package/dist/llm-docs/plot.js +1 -1
- package/dist/llm-docs/plot.js.map +1 -1
- package/dist/llm-docs/tool.d.ts +1 -1
- package/dist/llm-docs/tool.d.ts.map +1 -1
- package/dist/llm-docs/tool.js +1 -1
- package/dist/llm-docs/tool.js.map +1 -1
- package/dist/llm-docs/tools/ai.d.ts +1 -1
- package/dist/llm-docs/tools/ai.d.ts.map +1 -1
- package/dist/llm-docs/tools/ai.js +1 -1
- package/dist/llm-docs/tools/ai.js.map +1 -1
- package/dist/llm-docs/tools/callbacks.d.ts +1 -1
- package/dist/llm-docs/tools/callbacks.d.ts.map +1 -1
- package/dist/llm-docs/tools/callbacks.js +1 -1
- package/dist/llm-docs/tools/callbacks.js.map +1 -1
- package/dist/llm-docs/tools/files.d.ts +1 -1
- package/dist/llm-docs/tools/files.d.ts.map +1 -1
- package/dist/llm-docs/tools/files.js +1 -1
- package/dist/llm-docs/tools/files.js.map +1 -1
- package/dist/llm-docs/tools/imap.d.ts +1 -1
- package/dist/llm-docs/tools/imap.d.ts.map +1 -1
- package/dist/llm-docs/tools/imap.js +1 -1
- package/dist/llm-docs/tools/imap.js.map +1 -1
- package/dist/llm-docs/tools/integrations.d.ts +1 -1
- package/dist/llm-docs/tools/integrations.d.ts.map +1 -1
- package/dist/llm-docs/tools/integrations.js +1 -1
- package/dist/llm-docs/tools/integrations.js.map +1 -1
- package/dist/llm-docs/tools/network.d.ts +1 -1
- package/dist/llm-docs/tools/network.d.ts.map +1 -1
- package/dist/llm-docs/tools/network.js +1 -1
- package/dist/llm-docs/tools/network.js.map +1 -1
- package/dist/llm-docs/tools/plot.d.ts +1 -1
- package/dist/llm-docs/tools/plot.d.ts.map +1 -1
- package/dist/llm-docs/tools/plot.js +1 -1
- package/dist/llm-docs/tools/plot.js.map +1 -1
- package/dist/llm-docs/tools/smtp.d.ts +1 -1
- package/dist/llm-docs/tools/smtp.d.ts.map +1 -1
- package/dist/llm-docs/tools/smtp.js +1 -1
- package/dist/llm-docs/tools/smtp.js.map +1 -1
- package/dist/llm-docs/tools/tasks.d.ts +1 -1
- package/dist/llm-docs/tools/tasks.d.ts.map +1 -1
- package/dist/llm-docs/tools/tasks.js +1 -1
- package/dist/llm-docs/tools/tasks.js.map +1 -1
- package/dist/llm-docs/tools/twists.d.ts +1 -1
- package/dist/llm-docs/tools/twists.d.ts.map +1 -1
- package/dist/llm-docs/tools/twists.js +1 -1
- package/dist/llm-docs/tools/twists.js.map +1 -1
- package/dist/llm-docs/twist-guide-template.d.ts +1 -1
- package/dist/llm-docs/twist-guide-template.d.ts.map +1 -1
- package/dist/llm-docs/twist-guide-template.js +1 -1
- package/dist/llm-docs/twist-guide-template.js.map +1 -1
- package/dist/llm-docs/twist.d.ts +1 -1
- package/dist/llm-docs/twist.d.ts.map +1 -1
- package/dist/llm-docs/twist.js +1 -1
- package/dist/llm-docs/twist.js.map +1 -1
- package/dist/plot.d.ts +15 -8
- package/dist/plot.d.ts.map +1 -1
- package/dist/plot.js.map +1 -1
- package/dist/tool.d.ts +4 -4
- package/dist/tool.js +4 -4
- package/dist/tools/ai.d.ts +12 -13
- package/dist/tools/ai.d.ts.map +1 -1
- package/dist/tools/ai.js +8 -9
- package/dist/tools/ai.js.map +1 -1
- package/dist/tools/callbacks.d.ts +1 -1
- package/dist/tools/files.d.ts +2 -2
- package/dist/tools/imap.d.ts +1 -1
- package/dist/tools/imap.js +1 -1
- package/dist/tools/integrations.d.ts +2 -1
- package/dist/tools/integrations.d.ts.map +1 -1
- package/dist/tools/network.d.ts +5 -5
- package/dist/tools/plot.d.ts +42 -37
- package/dist/tools/plot.d.ts.map +1 -1
- package/dist/tools/plot.js +16 -12
- package/dist/tools/plot.js.map +1 -1
- package/dist/tools/smtp.d.ts +1 -1
- package/dist/tools/smtp.js +1 -1
- package/dist/tools/tasks.d.ts +6 -8
- package/dist/tools/tasks.d.ts.map +1 -1
- package/dist/tools/tasks.js +5 -7
- package/dist/tools/tasks.js.map +1 -1
- package/dist/tools/twists.d.ts +15 -14
- package/dist/tools/twists.d.ts.map +1 -1
- package/dist/tools/twists.js +2 -2
- package/dist/tools/twists.js.map +1 -1
- package/dist/twist-guide.d.ts +1 -1
- package/dist/twist-guide.d.ts.map +1 -1
- package/dist/twist.d.ts +2 -2
- package/dist/twist.js +2 -2
- package/package.json +6 -1
- package/src/connector.ts +56 -16
- package/src/facets.ts +40 -0
- package/src/llm-docs/connector.ts +1 -1
- package/src/llm-docs/facets.ts +8 -0
- package/src/llm-docs/index.ts +2 -0
- package/src/llm-docs/plot.ts +1 -1
- package/src/llm-docs/tool.ts +1 -1
- package/src/llm-docs/tools/ai.ts +1 -1
- package/src/llm-docs/tools/callbacks.ts +1 -1
- package/src/llm-docs/tools/files.ts +1 -1
- package/src/llm-docs/tools/imap.ts +1 -1
- package/src/llm-docs/tools/integrations.ts +1 -1
- package/src/llm-docs/tools/network.ts +1 -1
- package/src/llm-docs/tools/plot.ts +1 -1
- package/src/llm-docs/tools/smtp.ts +1 -1
- package/src/llm-docs/tools/tasks.ts +1 -1
- package/src/llm-docs/tools/twists.ts +1 -1
- package/src/llm-docs/twist-guide-template.ts +1 -1
- package/src/llm-docs/twist.ts +1 -1
- package/src/plot.ts +15 -8
- package/src/tool.ts +4 -4
- package/src/tools/ai.ts +12 -13
- package/src/tools/callbacks.ts +1 -1
- package/src/tools/files.ts +2 -2
- package/src/tools/imap.ts +1 -1
- package/src/tools/integrations.ts +2 -1
- package/src/tools/network.ts +5 -5
- package/src/tools/plot.ts +42 -37
- package/src/tools/smtp.ts +1 -1
- package/src/tools/tasks.ts +6 -8
- package/src/tools/twists.ts +15 -14
- package/src/twist.ts +2 -2
- package/dist/docs/media/MULTI_USER_AUTH.md +0 -116
- package/dist/docs/media/SYNC_STRATEGIES.md +0 -818
package/dist/connector.d.ts
CHANGED
|
@@ -208,8 +208,8 @@ export type ScopeConfig = {
|
|
|
208
208
|
* type: "issue",
|
|
209
209
|
* label: "Issue",
|
|
210
210
|
* statuses: [
|
|
211
|
-
* { status: "open", label: "Open" },
|
|
212
|
-
* { status: "done", label: "Done" },
|
|
211
|
+
* { status: "open", label: "Open", icon: "todo" },
|
|
212
|
+
* { status: "done", label: "Done", icon: "done", done: true },
|
|
213
213
|
* ],
|
|
214
214
|
* }];
|
|
215
215
|
*
|
|
@@ -275,6 +275,40 @@ export declare abstract class Connector<TSelf> extends Twist<TSelf> {
|
|
|
275
275
|
* The UI will show channel config inline instead of a channel list.
|
|
276
276
|
*/
|
|
277
277
|
readonly singleChannel?: boolean;
|
|
278
|
+
/**
|
|
279
|
+
* The user-facing noun for this connector's channels — what each
|
|
280
|
+
* {@link Channel} returned by {@link getChannels} actually represents in the
|
|
281
|
+
* external service. Many connectors map "channels" onto a domain concept
|
|
282
|
+
* (folders, projects, calendars, labels, spaces, repositories, …), so the
|
|
283
|
+
* generic word "channel" reads as jargon. Set this and the UI substitutes it
|
|
284
|
+
* everywhere it would otherwise say "channel(s)" — e.g. the per-connection
|
|
285
|
+
* toggle becomes "Sync new folders" / "When a new folder is added, …".
|
|
286
|
+
*
|
|
287
|
+
* Provide lowercase nouns (the UI capitalizes where needed):
|
|
288
|
+
* `{ singular: "folder", plural: "folders" }`. Defaults to
|
|
289
|
+
* `{ singular: "channel", plural: "channels" }` when omitted.
|
|
290
|
+
*/
|
|
291
|
+
readonly channelNoun?: {
|
|
292
|
+
singular: string;
|
|
293
|
+
plural: string;
|
|
294
|
+
};
|
|
295
|
+
/**
|
|
296
|
+
* Whether the per-connection "Sync new channels" preference starts ON for
|
|
297
|
+
* newly added connections of this connector. Defaults to `false` (opt-in).
|
|
298
|
+
*
|
|
299
|
+
* Set `true` for connectors that select **all** of their channels by default
|
|
300
|
+
* (i.e. {@link getChannels} returns no channels marked
|
|
301
|
+
* `enabledByDefault: false`). If syncing every channel is the intended
|
|
302
|
+
* default, then channels discovered later should also sync automatically.
|
|
303
|
+
* Leave `false`/omitted for selective connectors that exclude some channels
|
|
304
|
+
* by default (e.g. Gmail syncs only Inbox/Sent, Google Calendar only
|
|
305
|
+
* owner calendars) — for those, a newly discovered channel is just as
|
|
306
|
+
* uncertain and should wait for the user to opt in.
|
|
307
|
+
*
|
|
308
|
+
* Only affects the **default** for new connections; the user's explicit
|
|
309
|
+
* toggle always wins, and existing connections keep their stored preference.
|
|
310
|
+
*/
|
|
311
|
+
readonly autoEnableNewChannelsByDefault?: boolean;
|
|
278
312
|
/**
|
|
279
313
|
* Registry of link types this connector creates (e.g., issue, event, message).
|
|
280
314
|
* Used for display in the UI (icons, labels, statuses).
|
|
@@ -481,17 +515,24 @@ export declare abstract class Connector<TSelf> extends Twist<TSelf> {
|
|
|
481
515
|
*/
|
|
482
516
|
onThreadRead(thread: Thread, actor: Actor, unread: boolean): Promise<void>;
|
|
483
517
|
/**
|
|
484
|
-
* Called when a user
|
|
485
|
-
*
|
|
486
|
-
*
|
|
487
|
-
*
|
|
488
|
-
*
|
|
489
|
-
* `
|
|
490
|
-
*
|
|
491
|
-
*
|
|
492
|
-
*
|
|
493
|
-
*
|
|
494
|
-
*
|
|
518
|
+
* Called when a user changes the **thread-level sharing** of a thread owned
|
|
519
|
+
* by this connector — adding or removing a contact, or (for connectors with
|
|
520
|
+
* roles) changing a contact's role. Override on connectors whose external
|
|
521
|
+
* source can reflect that membership change, e.g. a group DM / multi-party
|
|
522
|
+
* chat (`LinkTypeConfig.sharingModel: "thread"`) or an email's To/Cc/Bcc
|
|
523
|
+
* recipients (`sharingModel: "message"`). Connectors backed by an immutable
|
|
524
|
+
* roster (most group DMs today) or by channel-level membership
|
|
525
|
+
* (`sharingModel: "channel"`) leave this as the default no-op.
|
|
526
|
+
*
|
|
527
|
+
* `role`/`from`/`to` are **null** for connectors without roles (group DMs
|
|
528
|
+
* have no roles); they carry a `contactRoles` id only for connectors that
|
|
529
|
+
* declare roles (e.g. email `to`/`cc`/`bcc`).
|
|
530
|
+
*
|
|
531
|
+
* The dispatch fires after Plot has persisted the change. A connector may
|
|
532
|
+
* reflect it actively (e.g. add/remove a participant on the external chat)
|
|
533
|
+
* or passively on the next outbound note (e.g. building To/Cc/Bcc headers
|
|
534
|
+
* from the current `thread.contacts` × `thread.contactMeta`) — this callback
|
|
535
|
+
* is not the right place to send a standalone notification.
|
|
495
536
|
*
|
|
496
537
|
* @param thread - The thread whose contacts changed
|
|
497
538
|
* @param changes - The added/removed contacts and any role transitions on existing contacts
|
|
@@ -499,16 +540,16 @@ export declare abstract class Connector<TSelf> extends Twist<TSelf> {
|
|
|
499
540
|
onContactsChanged(thread: Thread, changes: {
|
|
500
541
|
added: Array<{
|
|
501
542
|
contact: Contact;
|
|
502
|
-
role: string;
|
|
543
|
+
role: string | null;
|
|
503
544
|
}>;
|
|
504
545
|
removed: Array<{
|
|
505
546
|
contact: Contact;
|
|
506
|
-
role: string;
|
|
547
|
+
role: string | null;
|
|
507
548
|
}>;
|
|
508
549
|
changed: Array<{
|
|
509
550
|
contact: Contact;
|
|
510
|
-
from: string;
|
|
511
|
-
to: string;
|
|
551
|
+
from: string | null;
|
|
552
|
+
to: string | null;
|
|
512
553
|
}>;
|
|
513
554
|
}): Promise<void>;
|
|
514
555
|
/**
|
package/dist/connector.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"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"}
|
package/dist/connector.js
CHANGED
|
@@ -15,8 +15,8 @@ import { Twist } from "./twist";
|
|
|
15
15
|
* type: "issue",
|
|
16
16
|
* label: "Issue",
|
|
17
17
|
* statuses: [
|
|
18
|
-
* { status: "open", label: "Open" },
|
|
19
|
-
* { status: "done", label: "Done" },
|
|
18
|
+
* { status: "open", label: "Open", icon: "todo" },
|
|
19
|
+
* { status: "done", label: "Done", icon: "done", done: true },
|
|
20
20
|
* ],
|
|
21
21
|
* }];
|
|
22
22
|
*
|
|
@@ -85,6 +85,37 @@ export class Connector extends Twist {
|
|
|
85
85
|
* The UI will show channel config inline instead of a channel list.
|
|
86
86
|
*/
|
|
87
87
|
singleChannel;
|
|
88
|
+
/**
|
|
89
|
+
* The user-facing noun for this connector's channels — what each
|
|
90
|
+
* {@link Channel} returned by {@link getChannels} actually represents in the
|
|
91
|
+
* external service. Many connectors map "channels" onto a domain concept
|
|
92
|
+
* (folders, projects, calendars, labels, spaces, repositories, …), so the
|
|
93
|
+
* generic word "channel" reads as jargon. Set this and the UI substitutes it
|
|
94
|
+
* everywhere it would otherwise say "channel(s)" — e.g. the per-connection
|
|
95
|
+
* toggle becomes "Sync new folders" / "When a new folder is added, …".
|
|
96
|
+
*
|
|
97
|
+
* Provide lowercase nouns (the UI capitalizes where needed):
|
|
98
|
+
* `{ singular: "folder", plural: "folders" }`. Defaults to
|
|
99
|
+
* `{ singular: "channel", plural: "channels" }` when omitted.
|
|
100
|
+
*/
|
|
101
|
+
channelNoun;
|
|
102
|
+
/**
|
|
103
|
+
* Whether the per-connection "Sync new channels" preference starts ON for
|
|
104
|
+
* newly added connections of this connector. Defaults to `false` (opt-in).
|
|
105
|
+
*
|
|
106
|
+
* Set `true` for connectors that select **all** of their channels by default
|
|
107
|
+
* (i.e. {@link getChannels} returns no channels marked
|
|
108
|
+
* `enabledByDefault: false`). If syncing every channel is the intended
|
|
109
|
+
* default, then channels discovered later should also sync automatically.
|
|
110
|
+
* Leave `false`/omitted for selective connectors that exclude some channels
|
|
111
|
+
* by default (e.g. Gmail syncs only Inbox/Sent, Google Calendar only
|
|
112
|
+
* owner calendars) — for those, a newly discovered channel is just as
|
|
113
|
+
* uncertain and should wait for the user to opt in.
|
|
114
|
+
*
|
|
115
|
+
* Only affects the **default** for new connections; the user's explicit
|
|
116
|
+
* toggle always wins, and existing connections keep their stored preference.
|
|
117
|
+
*/
|
|
118
|
+
autoEnableNewChannelsByDefault;
|
|
88
119
|
/**
|
|
89
120
|
* Registry of link types this connector creates (e.g., issue, event, message).
|
|
90
121
|
* Used for display in the UI (icons, labels, statuses).
|
|
@@ -233,17 +264,24 @@ export class Connector extends Twist {
|
|
|
233
264
|
return Promise.resolve();
|
|
234
265
|
}
|
|
235
266
|
/**
|
|
236
|
-
* Called when a user
|
|
237
|
-
*
|
|
238
|
-
*
|
|
239
|
-
*
|
|
240
|
-
*
|
|
241
|
-
* `
|
|
242
|
-
*
|
|
243
|
-
*
|
|
244
|
-
*
|
|
245
|
-
*
|
|
246
|
-
*
|
|
267
|
+
* Called when a user changes the **thread-level sharing** of a thread owned
|
|
268
|
+
* by this connector — adding or removing a contact, or (for connectors with
|
|
269
|
+
* roles) changing a contact's role. Override on connectors whose external
|
|
270
|
+
* source can reflect that membership change, e.g. a group DM / multi-party
|
|
271
|
+
* chat (`LinkTypeConfig.sharingModel: "thread"`) or an email's To/Cc/Bcc
|
|
272
|
+
* recipients (`sharingModel: "message"`). Connectors backed by an immutable
|
|
273
|
+
* roster (most group DMs today) or by channel-level membership
|
|
274
|
+
* (`sharingModel: "channel"`) leave this as the default no-op.
|
|
275
|
+
*
|
|
276
|
+
* `role`/`from`/`to` are **null** for connectors without roles (group DMs
|
|
277
|
+
* have no roles); they carry a `contactRoles` id only for connectors that
|
|
278
|
+
* declare roles (e.g. email `to`/`cc`/`bcc`).
|
|
279
|
+
*
|
|
280
|
+
* The dispatch fires after Plot has persisted the change. A connector may
|
|
281
|
+
* reflect it actively (e.g. add/remove a participant on the external chat)
|
|
282
|
+
* or passively on the next outbound note (e.g. building To/Cc/Bcc headers
|
|
283
|
+
* from the current `thread.contacts` × `thread.contactMeta`) — this callback
|
|
284
|
+
* is not the right place to send a standalone notification.
|
|
247
285
|
*
|
|
248
286
|
* @param thread - The thread whose contacts changed
|
|
249
287
|
* @param changes - The added/removed contacts and any role transitions on existing contacts
|
package/dist/connector.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector.js","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAgMhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,OAAgB,SAAiB,SAAQ,KAAY;IACzD;;;OAGG;IACH,MAAM,CAAU,WAAW,GAAG,IAAI,CAAC;IAEnC,+DAA+D;IAE/D,4DAA4D;IACnD,QAAQ,CAAgB;IAEjC;4EACwE;IAC/D,MAAM,CAA0B;IAEzC,uBAAuB;IAEvB;;;;;;;;;;OAUG;IACM,MAAM,CAAW;IAE1B;;;;;;;OAOG;IACM,SAAS,CAAU;IAE5B,8BAA8B;IAE9B;;;;OAIG;IACM,aAAa,CAAW;IAEjC;;;OAGG;IACM,SAAS,CAAoB;IAEtC;;;;;;;;OAQG;IACM,oBAAoB,CAAwB;IAErD;;;;;;OAMG;IACH,MAAM,CAAU,aAAa,CAAW;IAExC,yEAAyE;IAEzE;;;;;;;;;;;;;OAaG;IACH,6DAA6D;IAC7D,cAAc,CACZ,IAA0B,EAC1B,KAAuB;QAEvB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAoFD,wDAAwD;IAExD;;;;;;OAMG;IACH,6DAA6D;IAC7D,aAAa,CAAC,IAAU;QACtB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,6DAA6D;IAC7D,YAAY,CAAC,KAAsB;QACjC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,6DAA6D;IAC7D,aAAa,CAAC,IAAU,EAAE,MAAc;QACtC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,kBAAkB,CACtB,GAAW;QAKX,MAAM,IAAI,KAAK,CACb,0CAA0C,IAAI,CAAC,WAAW,CAAC,IAAI,SAAS,GAAG,GAAG,CAC/E,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;OAcG;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
|
|
1
|
+
{"version":3,"file":"connector.js","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
window.hierarchyData = "
|
|
1
|
+
window.hierarchyData = "eJyVk8FOwzAMht/FZxPmlKxpbwgJqRdAYjeEUOkCVMuSqQkCadq7o6SAMg5LuPTQfv4/x3X2MFnrHbQPxCUSPSJM6kWrwY/WOGj3QBSept8qaGH1MToPCJvRrKENJfA+aWhh0L1zyp37ALCIsTe/1YDzJ2jBu/VZqDubXyAMb6NeT8pEeUOPBwTiMrF1K2v1SZu1mkXqX7KKUPAGhWiwFgKlaLAREmlRLZBICCSSFdKSc6SaV0i1lEjygscWq6OBlHRY0OABQfDm76RdLto9xYG7eeKuQCJSyWWXF/Qju+zywbUQSfBVr/VzP2wKDjD8oOy3KG+TR8fojFevUz+vbFY4JjRLS/PaRqTreaP8h502eaOZQfZdkPeETUxEd9qevnTRstPWs4AW5NPR37r3dlJ5gQsYi3CJQlbpOveuZBl8wFiECxS8Sa/ilTVGDd5OpzSjWatP9osWSJacJ5LrUauT55gFESsIr3k6pG7b7/LZgSqJlumu3m99QXSgCqLlRTqS21324s3p32BOcDh8AbLgHbo="
|
|
@@ -1 +1 @@
|
|
|
1
|
-
window.navigationData = "
|
|
1
|
+
window.navigationData = "eJytnNtyGzcShl/Fxdx613YOXsV3DC3Z3JJkF0klu5VysaAhJCKeAZgZjChny+++BWAOwKCBbjoq3Qk/vm6cTz38/X8zzR/17M3srSraikvdzJ7Pir0odzWXsze/D+nr/14vtuvNar45f7c8X8+ezw5M72dvZrs+44uJ5J97XZWz57PPQu5mb85+ODt7/fLs6/OBeHVzuVlub9bnq+38ZvMeIk4kMPGTx3zXih1PFeEd11rI+2drzWrNd5DBTrLtJFgRFqrmzxZKFvxgKy7iGcG2F2C0X1pR6n8I+WyjVAniesXWKii8nSnwQknJC63qJNTItqMMLffl8tmK3/Gay4KD5b5cbgcBRlu1UouKPzuXD6JW0hAgZifbejK8Q1ypXVsme4SQO/442qqc+IX9d8j+HgYsStY0SfxQoaOJwmXoTAyC0Nir7/3q+XDQQskmxeiSc4QL4aoAzG8TsdzXSl+oVu7O6zpdmkiYoy4rdkiBTFou77rSybwmLc7rd4nNlwN/Ni8FSzfcirPC1OqCHditKIUWfv3pL4fBHKSc9JyXP//r1U/few5cK81/q4Xmv7Di84o3balhOCDE2CveqPKB71a8EAcRjKTQ7YkM4y5qzjS/FPLz25rdJagTEcZ0PZeV60Id+LtatQcYG+swslUulLwT9zDSE6AsXvJCv+V3CVKfjHE2/DFN6RLRntNWt7xOUoZkjPOLUiVnMgka02ltmAQNyTROsy72vGI5ViehjoNo8oRGATiFQr1qz80CkepSLpVKWSipWaHXmuk24R8oPZG/UpjDnvBENomL9ml+JGFj3QlkFEkt+YeiaOvJtgcq/Kg7wUsMDkpP9/zmsGOa7L9TY1bMkr3mTSOUhMGegMLqdkbZ4RvrKOQrJspb9ZhGdoITWLkxHMloNcnqYr8wS38tEtNhrKOQ57tdzZuMr52AVHreNOw+0ZE8AYV1wXWxR1vbV5GoJbv/cOA109l+GcjQ8VTpfE/3BBQWpafHOgo529aegMLKtrUnoNWe3OW2vaEG35/VgpXiL3abXOg8BUa7acUOppgUOLd/uLhmFW8OrEgeLUID4YkzNvEjDLloZdF3F/imQ5re7NXHXZ/DN9XLQpuvf/z6yf75u6nuKJ+8HVJt7a9a8Un6u6aXdCV79fOPP7w05TPHN3PQ54eaF8xczPi7ZnafpWqbHiC93P9ef7j+lZVt3rM/GiUfOlWKNG/1/mOtHsSO11kYa/X+MAqTPHPqXyZ7gkMZje0tKcpmzyu+UKXK+6SNrOhkKdaFKvw1DMDcdYoU4ZofcYjkR4xjIdNNSsqfttdlalooaQ79WGULJbWTpVjmxGgHgpD3pN5QeBlovSJYVpJ+ZvtEzdnuimuG9Akjq5wsz0LrzrGQutuw+3zP0E6Q6V0oQvIjQunva7KYmqO13HPy/tSeKlMuGkzyI4Xn2mxeFLxpLvkDLwlNx6y67NR58kJVFVJ/Dlr0wjyPQEIZvwm9N5dlSAez2qPQe9lpc33tBLDpdqezaUi07Bei1Mgs5Eh3vTDPI0y8jofOvKbi8oVU+fz8iCP4EaMoHZ14E75Q1hJkqWWdIrOChFcc8KLRaTI1g7si+RHzxkIoS6Oqkdn9mh8pRZP8iJfOgLjUqF+F0yGemevoLKZ0gkzJUITkRxqFPJ8YHGU2MVBC7zY4tHd/LJkETssA7lAyqTxlckZRqrTPi9gEpVR5O+hStKXBZTlCO0XOH9SR3HhZ5geKyOaNjvggQh2wFX6+hN+lQFwRSlPMK7Xj5cfaP+elqZURHwJx2ldLRpysOk2asuJ/trzJTy5M1IMqR2oOSjbIlCfqUZZmrb80mlfR3QgIbKy2GrRp6k3DaxqzbXhNIc6bRjSaSU3Dsl5OYZsxRcOawUUh0mi0mqTUIUYhXG4wAV9vTN7/PrI634WN9uBEKc5bplm3QmZRO6ZZMeiSc2rF7jnqljAqxC/z+o+C7kSJcVacNUqaAzYGq3slStyxQpvHbjrZ5aBaMGNgwcoSb1+lyoKVJYHnbj9JxNpKCczzR160ZnmhLEWGzPsMlFUJXV0Ztj47xppj87zBNDy7h2RlecuK/LatGEUYJ19VhadKkvZMSmQlLAZNiuLekJYFskFrrEwU2d2Z2TuaTfY0UCKxfzT77KKXpvfu1UE1FGThlATi8DxNolp1rUqcvP4iCzuTPub7W/NFFsWgS86kUvN7tyPOdxYRCpNjoS724sFG0xCO+MypTTuh5/yObM8hdLQ9iaBscw5sG62q80r9IdCzoJXyTpq7e1e1+As/l7CJMkfcqM8cp+lOlSL9xm/3Sn2mbE+PTorvUa+5PqoaO3H2Gso9IPkKELuVJ+DsrTxK60Y1gdeNaJRoBgoBZ0YIyjJDY2m3Tu+Z3JXIADEjQ1j1flDnvCSMOdI4Nl66CIDpa2rCycaK616c85HMNZ4SuWQmlXc+Xy3eb9+eX8xvLjfby+XVckPgbnf8jrWl3paiEgT+1fw/dHbFHnGulVK2YA6K770+lipfowcnSO8qVI283naK9OtOg+yRdKdIEo6i0YSjljY69LR1qZANjcrtDKwvH3ldCRvGgRTMiA+BOMsl0FAGjsj1llpVouH2YTzvzMEpH3plinj+qGtWaHvVt+K6rfMLK3dye+NX9/IU237zsJSTbyIAqsFpIXUnTO/T7niN04SRkViUgWxp+Di2p589R97EjFNOFHLCmI0DOCeY/06iWOCIDkKUfBTD4MJlrIkuDQu3mcQLeACbgmWPIw48Qp9I8gGOiRw9oUVBTt/vwwohBIRBj/ceZEymgcInlAhkklFQ8ObuI9g9pX2S+bs0DBE/2HuMPpEKgT0ZUgnFyZN8Aa2FwHf6qKE8FQ07faSPiE5Ag2UwNADw6hWRBg2lTxGosYwMzvNoRZ7u8aPyOgENlpmcfAFaQJWAmARC7aTzuzSK/UxRxmTCNKvgup3HH9MB3zLBnxlYAP3TgrQTfSIBknNlTKYUKHownxSqS8dQ4VO3xzAJhAIl83dpRAQ6tgMRpVCZjjcmY6DEC7nHChQwzt+kncu24uNdILgRA2I8uWyrYQLok0NrZ9G2JOweHmJMTiPykY8eDBJmPZsGoISOudQp4KTYZDCEeNgHIxHEcLj2mLttswG6mQDkkfH3449HVjb8ODwgaKheNJt+EAlXKqXj+nzXqoa+mVo4m/oFPiOZ/5I8y3+SPXmk6r8dtnSbFtoIvzvO5IWzntZPc8EyQ/GzsTJxRTYvGHALb1O2TDxBhfohMX6NWPx8ma8Tc8da32W+lgACP8SQx7fTySYF+uk1EvqRgjldjhY/50OsXpUjAU/wEGqQ5VjxIzyE6lU5UuKxHMIF0jwz+xAPs4Es2XYBn+LBtvGUGBF6jE8xRy1GTT/Hp9jTHLGFE3/pAIhKc7sZbzgQPzlLhaVFvFN+KyEdlzbBToW4t4ngrcjdQIdjweitCOqpcGQ6fCviTqU4HIzfirieCkfiuBNqE6tHEmb6rhA3shVgIDD2asLyNLTKR2qdBgliZkDOmif8OfE8EkV0dls7r3FNOr7Ha14U6eAahxsET7BRASJ5wv3KaGwBm/2GH5KJw5D8toktploorjuRDTdxfF/zFHtn0GRYiYHJZdL+t1TlNH7Kr8nAbKfEBg4USpVkjmLKZQMUVZVEhxnwux4wwCpdGb6eeDMGxVplDEzyoPUOhV2lK35UozNhOmIqiY/yEI2AwVOYFS8T5W4QiqNKmggzoKWAQ6rSBfD1FPgkuioLttqnWZvAWxJ/gYqMp+6ooDlXpgKzHLtLfoKZNooACyfZ3tA1ZPAbptZUEJvfar3NUEtfr+DnaMcmP0rnay2MggmrrLucndr5hsrKxIb59TU8aQRayuKRm1WG+2riLJKMEANd9aUUT4noqRRdIGjY05HZo67HzB54T76+h8Iw/SkpeudNX5eDMZgRy1NlL/ShAMwIFujSOCj6MmKNotyF/q+sFuanWpK/NZIN+3vocwfNCmQJXfgh6C3JwL8cfZBHZGg+bOCQO4e1iU8wI07i+sIp0RlZx6bcpBi7rOEYP0eziU/g8iSQMHTZGdnEppIuJwLuOpxNfQqnJ2YmXjszG8DayRfiYJRkdFvoWwRvNk6/KAwCKv15s7N1qdCNfzqqEuBNxaSdBhwaaf/9VK0MNLLFb2IjcadstSibF3vW7GMvbdrWpJFcxX4C6s9WFJ/fB5bG34DybA260Orr6WOSc902VMp3m0hyHu/mUSCk18d9a73wb/fvRFCs65m+xUCIdflcYGyMjtUYHw6Ojcm+DmNCAbIxcVSReImtV0QkvjWAb6Ux0pNhROClPuYNInxriP9kGvi7dakR9V0TyuN3309fP/0fUOZj8A=="
|