@plotday/twister 0.27.0 → 0.29.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 (201) hide show
  1. package/README.md +10 -4
  2. package/bin/templates/AGENTS.template.md +91 -29
  3. package/cli/templates/AGENTS.template.md +91 -29
  4. package/dist/common/calendar.d.ts +35 -28
  5. package/dist/common/calendar.d.ts.map +1 -1
  6. package/dist/common/messaging.d.ts +24 -10
  7. package/dist/common/messaging.d.ts.map +1 -1
  8. package/dist/common/projects.d.ts +30 -15
  9. package/dist/common/projects.d.ts.map +1 -1
  10. package/dist/common/serializable.d.ts +40 -0
  11. package/dist/common/serializable.d.ts.map +1 -0
  12. package/dist/common/serializable.js +2 -0
  13. package/dist/common/serializable.js.map +1 -0
  14. package/dist/docs/assets/hierarchy.js +1 -1
  15. package/dist/docs/assets/navigation.js +1 -1
  16. package/dist/docs/assets/search.js +1 -1
  17. package/dist/docs/classes/tool.ITool.html +1 -1
  18. package/dist/docs/classes/tool.Tool.html +32 -28
  19. package/dist/docs/classes/tools_ai.AI.html +2 -2
  20. package/dist/docs/classes/tools_callbacks.Callbacks.html +6 -6
  21. package/dist/docs/classes/tools_integrations.Integrations.html +3 -3
  22. package/dist/docs/classes/tools_network.Network.html +12 -12
  23. package/dist/docs/classes/tools_plot.Plot.html +41 -31
  24. package/dist/docs/classes/tools_store.Store.html +31 -11
  25. package/dist/docs/classes/tools_tasks.Tasks.html +8 -8
  26. package/dist/docs/classes/tools_twists.Twists.html +5 -5
  27. package/dist/docs/classes/twist.Twist.html +28 -24
  28. package/dist/docs/documents/Building_Custom_Tools.html +8 -2
  29. package/dist/docs/documents/Built-in_Tools.html +19 -8
  30. package/dist/docs/documents/Core_Concepts.html +14 -6
  31. package/dist/docs/documents/Getting_Started.html +11 -4
  32. package/dist/docs/enums/plot.ActivityLinkType.html +5 -5
  33. package/dist/docs/enums/plot.ActivityType.html +4 -4
  34. package/dist/docs/enums/plot.ActorType.html +4 -4
  35. package/dist/docs/enums/plot.ConferencingProvider.html +6 -6
  36. package/dist/docs/enums/tag.Tag.html +2 -2
  37. package/dist/docs/enums/tools_ai.AIModel.html +2 -2
  38. package/dist/docs/enums/tools_integrations.AuthLevel.html +3 -3
  39. package/dist/docs/enums/tools_integrations.AuthProvider.html +11 -11
  40. package/dist/docs/enums/tools_plot.ActivityAccess.html +3 -3
  41. package/dist/docs/enums/tools_plot.ContactAccess.html +4 -4
  42. package/dist/docs/enums/tools_plot.PriorityAccess.html +3 -3
  43. package/dist/docs/functions/index.Uuid.Generate.html +1 -1
  44. package/dist/docs/functions/utils_hash.quickHash.html +1 -1
  45. package/dist/docs/hierarchy.html +1 -1
  46. package/dist/docs/index.html +10 -0
  47. package/dist/docs/interfaces/common_calendar.Calendar.html +5 -5
  48. package/dist/docs/interfaces/common_calendar.CalendarTool.html +29 -15
  49. package/dist/docs/interfaces/common_calendar.SyncOptions.html +3 -3
  50. package/dist/docs/interfaces/index.SerializableArray.html +2 -0
  51. package/dist/docs/interfaces/index.SerializableMap.html +2 -0
  52. package/dist/docs/interfaces/index.SerializableObject.html +2 -0
  53. package/dist/docs/interfaces/index.SerializableSet.html +2 -0
  54. package/dist/docs/interfaces/tools_ai.AIRequest.html +11 -11
  55. package/dist/docs/interfaces/tools_ai.AIResponse.html +9 -9
  56. package/dist/docs/interfaces/tools_ai.FilePart.html +5 -5
  57. package/dist/docs/interfaces/tools_ai.ImagePart.html +4 -4
  58. package/dist/docs/interfaces/tools_ai.ReasoningPart.html +4 -4
  59. package/dist/docs/interfaces/tools_ai.RedactedReasoningPart.html +3 -3
  60. package/dist/docs/interfaces/tools_ai.TextPart.html +3 -3
  61. package/dist/docs/interfaces/tools_ai.ToolCallPart.html +5 -5
  62. package/dist/docs/interfaces/tools_ai.ToolExecutionOptions.html +4 -4
  63. package/dist/docs/interfaces/tools_ai.ToolResultPart.html +5 -5
  64. package/dist/docs/interfaces/tools_twists.TwistSource.html +3 -3
  65. package/dist/docs/interfaces/utils_types.ToolShed.html +5 -5
  66. package/dist/docs/media/SYNC_STRATEGIES.md +651 -0
  67. package/dist/docs/modules/index.html +1 -1
  68. package/dist/docs/modules/plot.html +1 -1
  69. package/dist/docs/modules/utils_types.html +1 -1
  70. package/dist/docs/types/common_calendar.CalendarAuth.html +2 -2
  71. package/dist/docs/types/index.Serializable.html +17 -0
  72. package/dist/docs/types/index.Uuid.html +1 -1
  73. package/dist/docs/types/plot.Activity.html +17 -8
  74. package/dist/docs/types/plot.ActivityCommon.html +10 -10
  75. package/dist/docs/types/plot.ActivityLink.html +1 -1
  76. package/dist/docs/types/plot.ActivityMeta.html +5 -3
  77. package/dist/docs/types/plot.ActivityUpdate.html +4 -2
  78. package/dist/docs/types/plot.ActivityWithNotes.html +1 -1
  79. package/dist/docs/types/plot.Actor.html +15 -5
  80. package/dist/docs/types/plot.ActorId.html +1 -1
  81. package/dist/docs/types/plot.ContentType.html +1 -1
  82. package/dist/docs/types/plot.NewActivity.html +26 -12
  83. package/dist/docs/types/plot.NewActivityWithNotes.html +1 -1
  84. package/dist/docs/types/plot.NewActor.html +1 -1
  85. package/dist/docs/types/plot.NewContact.html +4 -4
  86. package/dist/docs/types/plot.NewNote.html +9 -4
  87. package/dist/docs/types/plot.NewPriority.html +15 -5
  88. package/dist/docs/types/plot.NewTags.html +1 -1
  89. package/dist/docs/types/plot.Note.html +6 -3
  90. package/dist/docs/types/plot.NoteUpdate.html +4 -3
  91. package/dist/docs/types/plot.PickPriorityConfig.html +3 -3
  92. package/dist/docs/types/plot.Priority.html +9 -4
  93. package/dist/docs/types/plot.PriorityUpdate.html +3 -0
  94. package/dist/docs/types/plot.SyncUpdate.html +1 -1
  95. package/dist/docs/types/plot.Tags.html +1 -1
  96. package/dist/docs/types/tools_ai.AIAssistantMessage.html +2 -2
  97. package/dist/docs/types/tools_ai.AIMessage.html +1 -1
  98. package/dist/docs/types/tools_ai.AISource.html +1 -1
  99. package/dist/docs/types/tools_ai.AISystemMessage.html +2 -2
  100. package/dist/docs/types/tools_ai.AITool.html +1 -1
  101. package/dist/docs/types/tools_ai.AIToolMessage.html +2 -2
  102. package/dist/docs/types/tools_ai.AIToolSet.html +1 -1
  103. package/dist/docs/types/tools_ai.AIUsage.html +5 -5
  104. package/dist/docs/types/tools_ai.AIUserMessage.html +2 -2
  105. package/dist/docs/types/tools_ai.DataContent.html +1 -1
  106. package/dist/docs/types/tools_ai.ModelPreferences.html +4 -4
  107. package/dist/docs/types/tools_callbacks.Callback.html +1 -1
  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_network.WebhookRequest.html +6 -6
  111. package/dist/docs/types/tools_plot.NoteIntentHandler.html +4 -4
  112. package/dist/docs/types/tools_twists.Log.html +2 -2
  113. package/dist/docs/types/tools_twists.TwistPermissions.html +1 -1
  114. package/dist/docs/types/utils_types.BuiltInTools.html +2 -2
  115. package/dist/docs/types/utils_types.CallbackMethods.html +1 -1
  116. package/dist/docs/types/utils_types.ExtractBuildReturn.html +1 -1
  117. package/dist/docs/types/utils_types.InferOptions.html +1 -1
  118. package/dist/docs/types/utils_types.InferTools.html +1 -1
  119. package/dist/docs/types/utils_types.JSONValue.html +7 -0
  120. package/dist/docs/types/utils_types.NoFunctions.html +1 -1
  121. package/dist/docs/types/utils_types.NonFunction.html +1 -1
  122. package/dist/docs/types/utils_types.PromiseValues.html +1 -1
  123. package/dist/docs/types/utils_types.ToolBuilder.html +1 -1
  124. package/dist/index.d.ts +1 -0
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.js +1 -0
  127. package/dist/index.js.map +1 -1
  128. package/dist/llm-docs/common/calendar.d.ts +1 -1
  129. package/dist/llm-docs/common/calendar.d.ts.map +1 -1
  130. package/dist/llm-docs/common/calendar.js +1 -1
  131. package/dist/llm-docs/common/calendar.js.map +1 -1
  132. package/dist/llm-docs/common/messaging.d.ts +1 -1
  133. package/dist/llm-docs/common/messaging.d.ts.map +1 -1
  134. package/dist/llm-docs/common/messaging.js +1 -1
  135. package/dist/llm-docs/common/messaging.js.map +1 -1
  136. package/dist/llm-docs/common/projects.d.ts +1 -1
  137. package/dist/llm-docs/common/projects.d.ts.map +1 -1
  138. package/dist/llm-docs/common/projects.js +1 -1
  139. package/dist/llm-docs/common/projects.js.map +1 -1
  140. package/dist/llm-docs/plot.d.ts +1 -1
  141. package/dist/llm-docs/plot.d.ts.map +1 -1
  142. package/dist/llm-docs/plot.js +1 -1
  143. package/dist/llm-docs/plot.js.map +1 -1
  144. package/dist/llm-docs/tool.d.ts +1 -1
  145. package/dist/llm-docs/tool.d.ts.map +1 -1
  146. package/dist/llm-docs/tool.js +1 -1
  147. package/dist/llm-docs/tool.js.map +1 -1
  148. package/dist/llm-docs/tools/network.d.ts +1 -1
  149. package/dist/llm-docs/tools/network.d.ts.map +1 -1
  150. package/dist/llm-docs/tools/network.js +1 -1
  151. package/dist/llm-docs/tools/network.js.map +1 -1
  152. package/dist/llm-docs/tools/plot.d.ts +1 -1
  153. package/dist/llm-docs/tools/plot.d.ts.map +1 -1
  154. package/dist/llm-docs/tools/plot.js +1 -1
  155. package/dist/llm-docs/tools/plot.js.map +1 -1
  156. package/dist/llm-docs/tools/store.d.ts +1 -1
  157. package/dist/llm-docs/tools/store.d.ts.map +1 -1
  158. package/dist/llm-docs/tools/store.js +1 -1
  159. package/dist/llm-docs/tools/store.js.map +1 -1
  160. package/dist/llm-docs/tools/tasks.d.ts +1 -1
  161. package/dist/llm-docs/tools/tasks.d.ts.map +1 -1
  162. package/dist/llm-docs/tools/tasks.js +1 -1
  163. package/dist/llm-docs/tools/tasks.js.map +1 -1
  164. package/dist/llm-docs/twist-guide-template.d.ts +1 -1
  165. package/dist/llm-docs/twist-guide-template.d.ts.map +1 -1
  166. package/dist/llm-docs/twist-guide-template.js +1 -1
  167. package/dist/llm-docs/twist-guide-template.js.map +1 -1
  168. package/dist/llm-docs/twist.d.ts +1 -1
  169. package/dist/llm-docs/twist.d.ts.map +1 -1
  170. package/dist/llm-docs/twist.js +1 -1
  171. package/dist/llm-docs/twist.js.map +1 -1
  172. package/dist/plot.d.ts +232 -56
  173. package/dist/plot.d.ts.map +1 -1
  174. package/dist/plot.js.map +1 -1
  175. package/dist/tool.d.ts +30 -8
  176. package/dist/tool.d.ts.map +1 -1
  177. package/dist/tool.js +29 -7
  178. package/dist/tool.js.map +1 -1
  179. package/dist/tools/network.d.ts +19 -16
  180. package/dist/tools/network.d.ts.map +1 -1
  181. package/dist/tools/network.js +6 -4
  182. package/dist/tools/network.js.map +1 -1
  183. package/dist/tools/plot.d.ts +93 -24
  184. package/dist/tools/plot.d.ts.map +1 -1
  185. package/dist/tools/plot.js +46 -1
  186. package/dist/tools/plot.js.map +1 -1
  187. package/dist/tools/store.d.ts +49 -8
  188. package/dist/tools/store.d.ts.map +1 -1
  189. package/dist/tools/store.js +12 -1
  190. package/dist/tools/store.js.map +1 -1
  191. package/dist/tools/tasks.d.ts +4 -4
  192. package/dist/tools/tasks.js +4 -4
  193. package/dist/twist-guide.d.ts +1 -1
  194. package/dist/twist-guide.d.ts.map +1 -1
  195. package/dist/twist.d.ts +24 -10
  196. package/dist/twist.d.ts.map +1 -1
  197. package/dist/twist.js +19 -5
  198. package/dist/twist.js.map +1 -1
  199. package/dist/utils/types.d.ts +19 -0
  200. package/dist/utils/types.d.ts.map +1 -1
  201. package/package.json +1 -1
package/dist/plot.d.ts CHANGED
@@ -1,8 +1,69 @@
1
1
  import { type Tag } from "./tag";
2
2
  import { type Callback } from "./tools/callbacks";
3
+ import { type JSONValue } from "./utils/types";
3
4
  import { Uuid } from "./utils/uuid";
4
5
  export { Tag } from "./tag";
5
6
  export { Uuid } from "./utils/uuid";
7
+ export { type JSONValue } from "./utils/types";
8
+ /**
9
+ * @fileoverview
10
+ * Core Plot entity types for working with activities, notes, priorities, and contacts.
11
+ *
12
+ * ## Type Pattern: Null vs Undefined Semantics
13
+ *
14
+ * Plot entity types use a consistent pattern to distinguish between missing, unset, and explicitly cleared values:
15
+ *
16
+ * ### Entity Types (Activity, Priority, Note, Actor)
17
+ * - **Required fields**: No `?`, cannot be `undefined`
18
+ * - Example: `id: Uuid`, `type: ActivityType`
19
+ * - **Nullable fields**: Use `| null` to allow explicit clearing
20
+ * - Example: `assignee: ActorId | null`, `done: Date | null`
21
+ * - `null` = field is explicitly unset/cleared
22
+ * - Non-null value = field has a value
23
+ * - **Optional nullable fields**: Use `?` with `| null` for permission-based access
24
+ * - Example: `email?: string | null`, `name?: string | null`
25
+ * - `undefined` = field not included (e.g., no permission to access)
26
+ * - `null` = field included but not set
27
+ * - Value = field has a value
28
+ *
29
+ * ### New* Types (NewActivity, NewNote, NewPriority)
30
+ * Used for creating or updating entities. Support partial updates by distinguishing omitted vs cleared fields:
31
+ * - **Required fields**: Must be provided (no `?`)
32
+ * - Example: `type: ActivityType` in NewActivity
33
+ * - **Optional fields**: Use `?` to make them optional
34
+ * - Example: `title?: string`, `author?: NewActor`
35
+ * - `undefined` (omitted) = don't set/update this field
36
+ * - Provided value = set/update this field
37
+ * - **Optional nullable fields**: Use `?` with `| null` to support clearing
38
+ * - Example: `assignee?: NewActor | null`
39
+ * - `undefined` (omitted) = don't change assignee
40
+ * - `null` = clear the assignee
41
+ * - NewActor = set/update the assignee
42
+ *
43
+ * This pattern allows API consumers to:
44
+ * 1. Omit fields they don't want to change (undefined)
45
+ * 2. Explicitly clear fields by setting to null
46
+ * 3. Set or update fields by providing values
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ * // Creating a new activity
51
+ * const newActivity: NewActivity = {
52
+ * type: ActivityType.Action, // Required
53
+ * title: "Review PR", // Optional, provided
54
+ * assignee: null, // Optional nullable, explicitly clearing
55
+ * // priority is omitted (undefined), will auto-select or use default
56
+ * };
57
+ *
58
+ * // Updating an activity - only change what's specified
59
+ * const update: ActivityUpdate = {
60
+ * id: activityId,
61
+ * done: new Date(), // Mark as done
62
+ * assignee: null, // Clear assignee
63
+ * // title is omitted, won't be changed
64
+ * };
65
+ * ```
66
+ */
6
67
  /**
7
68
  * Represents a unique user, contact, or twist in Plot.
8
69
  *
@@ -23,20 +84,57 @@ export type ActorId = string & {
23
84
  */
24
85
  export type Priority = {
25
86
  /** Unique identifier for the priority */
26
- id: string;
87
+ id: Uuid;
27
88
  /** Human-readable title for the priority */
28
89
  title: string;
90
+ /** Whether this priority has been archived */
91
+ archived: boolean;
92
+ /**
93
+ * Optional key for referencing this priority.
94
+ * Keys are unique per priority tree (a user's personal priorities or the root of a shared priority).
95
+ */
96
+ key: string | null;
29
97
  };
30
98
  /**
31
99
  * Type for creating new priorities.
32
100
  *
33
- * Excludes the auto-generated ID field and adds an optional parentId
34
- * for creating hierarchical priority structures.
101
+ * Supports multiple creation patterns:
102
+ * - Provide a specific UUID for the priority
103
+ * - Provide a key for upsert within the user's priorities
104
+ * - Omit both to auto-generate a new UUID
105
+ *
106
+ * Optionally specify a parent priority by ID or key for hierarchical structures.
35
107
  */
36
- export type NewPriority = Omit<Priority, "id"> & {
37
- /** Optional ID of the parent priority for creating hierarchies */
38
- parentId?: string;
108
+ export type NewPriority = Pick<Priority, "title"> & Partial<Omit<Priority, "id" | "title">> & ({
109
+ /**
110
+ * Unique identifier for the priority, generated by Uuid.Generate().
111
+ * Specifying an ID allows tools to track and upsert priorities.
112
+ */
113
+ id: Uuid;
114
+ } | {
115
+ /**
116
+ * Unique key for the priority within the user's priorities.
117
+ * Can be used to upsert without knowing the UUID.
118
+ * For example, "@plot" identifies the Plot priority.
119
+ */
120
+ key: string;
121
+ } | {}) & {
122
+ /** Add the new priority as the child of another priority */
123
+ parent?: {
124
+ id: Uuid;
125
+ } | {
126
+ key: string;
127
+ };
39
128
  };
129
+ /**
130
+ * Type for updating existing priorities.
131
+ * Must provide either id or key to identify the priority to update.
132
+ */
133
+ export type PriorityUpdate = ({
134
+ id: Uuid;
135
+ } | {
136
+ key: string;
137
+ }) & Partial<Pick<Priority, "title" | "archived">>;
40
138
  /**
41
139
  * Enumeration of supported activity types in Plot.
42
140
  *
@@ -167,6 +265,9 @@ export type ActivityLink = {
167
265
  * which is useful for synchronization, linking back to external systems,
168
266
  * and storing tool-specific data.
169
267
  *
268
+ * Must be valid JSON data (strings, numbers, booleans, null, objects, arrays).
269
+ * Functions and other non-JSON values are not supported.
270
+ *
170
271
  * @example
171
272
  * ```typescript
172
273
  * // Calendar event metadata
@@ -195,7 +296,7 @@ export type ActivityLink = {
195
296
  */
196
297
  export type ActivityMeta = {
197
298
  /** Source-specific properties and metadata */
198
- [key: string]: any;
299
+ [key: string]: JSONValue;
199
300
  };
200
301
  /**
201
302
  * Tags on an item, along with the actors who added each tag.
@@ -224,7 +325,7 @@ export type ActivityCommon = {
224
325
  *
225
326
  * Defaults to the current time when creating new activities.
226
327
  */
227
- createdAt: Date;
328
+ created: Date;
228
329
  /** Information about who created the activity */
229
330
  author: Actor;
230
331
  /** Whether this activity is in draft state (not shown in do now view) */
@@ -239,6 +340,12 @@ export type ActivityCommon = {
239
340
  mentions: ActorId[];
240
341
  };
241
342
  export type Activity = ActivityCommon & {
343
+ /**
344
+ * Canonical URL for the item in an external system.
345
+ * For example, https://acme.atlassian.net/browse/PROJ-42 could represent a Jira issue.
346
+ * When set, it uniquely identifies the activity within a priority tree.
347
+ */
348
+ source: string | null;
242
349
  /** The display title/summary of the activity */
243
350
  title: string;
244
351
  /** The type of activity (Note, Task, or Event) */
@@ -246,59 +353,66 @@ export type Activity = ActivityCommon & {
246
353
  /**
247
354
  * The actor assigned to this activity.
248
355
  *
249
- * **For actions (tasks):** An assignee is required. If not explicitly provided when creating
250
- * an action, the assignee will default to the user who installed the twist (the twist owner).
356
+ * **For actions (tasks):**
357
+ * - If not provided (undefined), defaults to the user who installed the twist (twist owner)
358
+ * - To create an **unassigned action**, explicitly set `assignee: null`
359
+ * - For synced tasks from external systems, typically set `assignee: null` for unassigned items
251
360
  *
252
361
  * **For notes and events:** Assignee is optional and typically null.
253
362
  *
254
363
  * @example
255
364
  * ```typescript
256
- * // Create action with explicit assignee
365
+ * // Create action assigned to twist owner (default behavior)
257
366
  * const task: NewActivity = {
258
367
  * type: ActivityType.Action,
259
- * title: "Review PR #123",
260
- * assignee: {
261
- * id: userId as ActorId,
262
- * type: ActorType.User,
263
- * name: "Alice"
264
- * }
368
+ * title: "Follow up on email"
369
+ * // assignee omitted → defaults to twist owner
265
370
  * };
266
371
  *
267
- * // Create action with auto-assignment (defaults to twist owner)
268
- * const task: NewActivity = {
372
+ * // Create UNASSIGNED action (for backlog items)
373
+ * const backlogTask: NewActivity = {
269
374
  * type: ActivityType.Action,
270
- * title: "Follow up on email"
271
- * // assignee will be set automatically to twist owner
375
+ * title: "Review PR #123",
376
+ * assignee: null // Explicitly set to null
272
377
  * };
273
378
  *
274
- * // Update assignee
275
- * await plot.updateActivity({
276
- * id: activityId,
379
+ * // Create action with explicit assignee
380
+ * const assignedTask: NewActivity = {
381
+ * type: ActivityType.Action,
382
+ * title: "Deploy to production",
277
383
  * assignee: {
278
- * id: newUserId as ActorId,
384
+ * id: userId as ActorId,
279
385
  * type: ActorType.User,
280
- * name: "Bob"
386
+ * name: "Alice"
281
387
  * }
282
- * });
388
+ * };
283
389
  * ```
284
390
  */
285
391
  assignee: Actor | null;
286
392
  /** Timestamp when the activity was marked as complete. Null if not completed. */
287
- doneAt: Date | null;
393
+ done: Date | null;
288
394
  /**
289
395
  * Start time of a scheduled activity. Notes are not typically scheduled unless they're about specific times.
290
396
  * For recurring events, this represents the start of the first occurrence.
291
397
  * Can be a Date object for timed events or a date string in "YYYY-MM-DD" format for all-day events.
292
398
  *
293
399
  * **Activity Scheduling States** (for Actions):
294
- * - **Do Now** (current/actionable): When creating a NewActivity of type Action, omitting `start` defaults to current time
400
+ * - **Do Now** (current/actionable): When creating an Action, omitting `start` defaults to current time
295
401
  * - **Do Later** (future scheduled): Set `start` to a future Date or date string
296
402
  * - **Do Someday** (unscheduled backlog): Explicitly set `start: null`
297
403
  *
404
+ * **Important for synced tasks**: When syncing unassigned backlog items from external systems,
405
+ * set BOTH `start: null` AND `assignee: null` to create unscheduled, unassigned actions.
406
+ *
298
407
  * @example
299
408
  * ```typescript
300
- * // "Do Now" - defaults to current time when start is omitted
301
- * await this.tools.plot.createActivity({ type: ActivityType.Action, title: "Urgent task" });
409
+ * // "Do Now" - assigned to twist owner, actionable immediately
410
+ * await this.tools.plot.createActivity({
411
+ * type: ActivityType.Action,
412
+ * title: "Urgent task"
413
+ * // start omitted → defaults to now
414
+ * // assignee omitted → defaults to twist owner
415
+ * });
302
416
  *
303
417
  * // "Do Later" - scheduled for a specific time
304
418
  * await this.tools.plot.createActivity({
@@ -307,11 +421,12 @@ export type Activity = ActivityCommon & {
307
421
  * start: new Date("2025-02-01")
308
422
  * });
309
423
  *
310
- * // "Do Someday" - unscheduled backlog item
424
+ * // "Do Someday" - unassigned backlog item (common for synced tasks)
311
425
  * await this.tools.plot.createActivity({
312
426
  * type: ActivityType.Action,
313
427
  * title: "Backlog task",
314
- * start: null
428
+ * start: null, // Explicitly unscheduled
429
+ * assignee: null // Explicitly unassigned
315
430
  * });
316
431
  * ```
317
432
  */
@@ -386,8 +501,8 @@ export type NewActivityWithNotes = NewActivity & {
386
501
  * // Score based on content (max 100 points) and require exact type match
387
502
  * pickPriority: { content: 100, type: true }
388
503
  *
389
- * // Match on meta source and score content
390
- * pickPriority: { "meta.source": true, content: 50 }
504
+ * // Match on meta and score content
505
+ * pickPriority: { "meta.projectId": true, content: 50 }
391
506
  * ```
392
507
  */
393
508
  export type PickPriorityConfig = {
@@ -404,15 +519,20 @@ export type PickPriorityConfig = {
404
519
  * the current execution context. The ID can be optionally provided by
405
520
  * tools for tracking and update detection purposes.
406
521
  *
407
- * **Important: Scheduling Defaults for Actions**
522
+ * **Important: Defaults for Actions**
523
+ *
524
+ * When creating an Activity of type `Action`:
525
+ * - **`start` omitted** → Defaults to current time (now) → "Do Now"
526
+ * - **`assignee` omitted** → Defaults to twist owner → Assigned action
408
527
  *
409
- * When creating an Activity of type `Action`, the `start` field determines its scheduling state:
410
- * - **Omit `start`** Defaults to current time → "Do Now" (appears in today's actionable list)
411
- * - **Set `start: null`**Unscheduled → "Do Someday" (backlog item, no specific time)
412
- * - **Set `start` to future Date** → Scheduled → "Do Later" (appears on that date)
528
+ * To create unassigned backlog items (common for synced tasks), you MUST explicitly set BOTH:
529
+ * - `start: null` → "Do Someday" (unscheduled)
530
+ * - `assignee: null`Unassigned
413
531
  *
414
- * For most external task integrations (project management, issue trackers), use `start: null`
415
- * to create backlog items unless the task is explicitly marked as current/active.
532
+ * **Scheduling States**:
533
+ * - **"Do Now"** (actionable today): Omit `start` or set to current time
534
+ * - **"Do Later"** (scheduled): Set `start` to a future Date
535
+ * - **"Do Someday"** (backlog): Set `start: null`
416
536
  *
417
537
  * Priority can be specified in three ways:
418
538
  * 1. Explicit priority: `priority: { id: "..." }` - Use specific priority (disables pickPriority)
@@ -421,18 +541,20 @@ export type PickPriorityConfig = {
421
541
  *
422
542
  * @example
423
543
  * ```typescript
424
- * // "Do Now" - Action defaults to current time (actionable today)
544
+ * // "Do Now" - Assigned to twist owner, actionable immediately
425
545
  * const urgentTask: NewActivity = {
426
546
  * type: ActivityType.Action,
427
547
  * title: "Review pull request"
428
- * // Omitting start defaults to new Date()
548
+ * // start omitted → defaults to now
549
+ * // assignee omitted → defaults to twist owner
429
550
  * };
430
551
  *
431
- * // "Do Someday" - Backlog item (recommended for most synced tasks)
552
+ * // "Do Someday" - UNASSIGNED backlog item (for synced tasks)
432
553
  * const backlogTask: NewActivity = {
433
554
  * type: ActivityType.Action,
434
555
  * title: "Refactor user service",
435
- * start: null // Explicitly set to null for backlog
556
+ * start: null, // Must explicitly set to null
557
+ * assignee: null // Must explicitly set to null
436
558
  * };
437
559
  *
438
560
  * // "Do Later" - Scheduled for specific date
@@ -459,13 +581,27 @@ export type PickPriorityConfig = {
459
581
  * };
460
582
  * ```
461
583
  */
462
- export type NewActivity = Pick<Activity, "type"> & Partial<Omit<Activity, "author" | "assignee" | "type" | "priority" | "tags" | "mentions">> & ({
584
+ export type NewActivity = Pick<Activity, "type"> & Partial<Omit<Activity, "author" | "assignee" | "type" | "priority" | "tags" | "mentions" | "id" | "source">> & ({
585
+ /**
586
+ * Unique identifier for the activity, generated by Uuid.Generate().
587
+ * Specifying an ID allows tools to track and upsert activities.
588
+ */
589
+ id: Uuid;
590
+ } | {
591
+ /**
592
+ * Canonical URL for the item in an external system.
593
+ * For example, https://acme.atlassian.net/browse/PROJ-42 could represent a Jira issue.
594
+ * When set, it uniquely identifies the activity within a priority tree. This performs
595
+ * an upsert.
596
+ */
597
+ source: string;
598
+ } | {}) & ({
463
599
  /** Explicit priority (required when specified) - disables automatic priority matching */
464
600
  priority: Pick<Priority, "id">;
465
601
  } | {
466
602
  /** Configuration for automatic priority selection based on similarity */
467
603
  pickPriority?: PickPriorityConfig;
468
- } | {}) & {
604
+ }) & {
469
605
  /**
470
606
  * The person that created the item. By default, it will be the twist itself.
471
607
  */
@@ -487,7 +623,17 @@ export type NewActivity = Pick<Activity, "type"> & Partial<Omit<Activity, "autho
487
623
  */
488
624
  unread?: boolean;
489
625
  };
490
- export type ActivityUpdate = Pick<Activity, "id"> & Partial<Pick<Activity, "type" | "start" | "end" | "doneAt" | "title" | "assignee" | "draft" | "private" | "meta" | "recurrenceRule" | "recurrenceDates" | "recurrenceExdates" | "recurrenceUntil" | "recurrenceCount" | "occurrence">> & {
626
+ export type ActivityUpdate = ({
627
+ /**
628
+ * Unique identifier for the activity.
629
+ */
630
+ id: Uuid;
631
+ } | {
632
+ /**
633
+ * Canonical URL for the item in an external system.
634
+ */
635
+ source: string;
636
+ }) & Partial<Pick<Activity, "type" | "start" | "end" | "done" | "title" | "assignee" | "draft" | "private" | "archived" | "meta" | "recurrenceRule" | "recurrenceDates" | "recurrenceExdates" | "recurrenceUntil" | "recurrenceCount" | "occurrence">> & {
491
637
  /**
492
638
  * Tags to change on the activity. Use an empty array of NewActor to remove a tag.
493
639
  * Use twistTags to add/remove the twist from tags to avoid clearing other actors' tags.
@@ -543,6 +689,12 @@ export type SyncUpdate = NewActivityWithNotes | {
543
689
  * They are always ordered by creation time within their parent activity.
544
690
  */
545
691
  export type Note = ActivityCommon & {
692
+ /**
693
+ * Unique identifier for the note within its activity.
694
+ * Can be used to upsert without knowing the id.
695
+ * For example, "description" could identify the description note for a Jira issue.
696
+ */
697
+ key: string | null;
546
698
  /** The parent activity this note belongs to */
547
699
  activity: Activity;
548
700
  /** Primary content for the note (markdown) */
@@ -554,11 +706,20 @@ export type Note = ActivityCommon & {
554
706
  * Type for creating new notes.
555
707
  *
556
708
  * Requires the activity reference, with all other fields optional.
557
- * The id field can be optionally provided by tools for tracking purposes.
709
+ * Can provide id, key, or neither for note identification:
710
+ * - id: Provide a specific UUID for the note
711
+ * - key: Provide an external identifier for upsert within the activity
712
+ * - neither: A new note with auto-generated UUID will be created
558
713
  */
559
- export type NewNote = Partial<Omit<Note, "author" | "activity" | "tags" | "mentions">> & {
714
+ export type NewNote = Partial<Omit<Note, "author" | "activity" | "tags" | "mentions" | "id" | "key">> & ({
715
+ id: Uuid;
716
+ } | {
717
+ key: string;
718
+ } | {}) & {
560
719
  /** Reference to the parent activity (required) */
561
- activity: Pick<Activity, "id">;
720
+ activity: Pick<Activity, "id"> | {
721
+ source: string;
722
+ };
562
723
  /**
563
724
  * The person that created the item, or leave undefined to use the twist as author.
564
725
  */
@@ -590,8 +751,13 @@ export type NewNote = Partial<Omit<Note, "author" | "activity" | "tags" | "menti
590
751
  };
591
752
  /**
592
753
  * Type for updating existing notes.
754
+ * Must provide either id or key to identify the note to update.
593
755
  */
594
- export type NoteUpdate = Pick<Note, "id"> & Partial<Pick<Note, "draft" | "private" | "content" | "links">> & {
756
+ export type NoteUpdate = ({
757
+ id: Uuid;
758
+ } | {
759
+ key: string;
760
+ }) & Partial<Pick<Note, "draft" | "private" | "archived" | "content" | "links">> & {
595
761
  /**
596
762
  * Format of the note content. Determines how the note is processed:
597
763
  * - 'text': Plain text that will be converted to markdown (auto-links URLs, preserves line breaks)
@@ -636,9 +802,19 @@ export type Actor = {
636
802
  id: ActorId;
637
803
  /** Type of actor (User, Contact, or Twist) */
638
804
  type: ActorType;
639
- /** Email address (only included with ContactAccess.Read permission) */
640
- email?: string;
641
- /** Display name (undefined if not included due to permissions, null if not set) */
805
+ /**
806
+ * Email address (only included with ContactAccess.Read permission).
807
+ * - `undefined`: No permission to read email
808
+ * - `null`: Permission granted but email not set
809
+ * - `string`: Email address
810
+ */
811
+ email?: string | null;
812
+ /**
813
+ * Display name.
814
+ * - `undefined`: Not included due to permissions
815
+ * - `null`: Not set
816
+ * - `string`: Display name
817
+ */
642
818
  name?: string | null;
643
819
  };
644
820
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"plot.d.ts","sourceRoot":"","sources":["../src/plot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plot.d.ts","sourceRoot":"","sources":["../src/plot.ts"],"names":[],"mappings":"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"}
package/dist/plot.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"plot.js","sourceRoot":"","sources":["../src/plot.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAqCpC;;;;;GAKG;AACH,MAAM,CAAN,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,qEAAqE;IACrE,+CAAI,CAAA;IACJ,+CAA+C;IAC/C,mDAAM,CAAA;IACN,8DAA8D;IAC9D,iDAAK,CAAA;AACP,CAAC,EAPW,YAAY,KAAZ,YAAY,QAOvB;AAED;;;;;GAKG;AACH,MAAM,CAAN,IAAY,gBASX;AATD,WAAY,gBAAgB;IAC1B,8CAA8C;IAC9C,yCAAqB,CAAA;IACrB,mDAAmD;IACnD,iCAAa,CAAA;IACb,6DAA6D;IAC7D,yCAAqB,CAAA;IACrB,+DAA+D;IAC/D,iDAA6B,CAAA;AAC/B,CAAC,EATW,gBAAgB,KAAhB,gBAAgB,QAS3B;AAED;;;;;GAKG;AACH,MAAM,CAAN,IAAY,oBAWX;AAXD,WAAY,oBAAoB;IAC9B,kBAAkB;IAClB,iDAAyB,CAAA;IACzB,WAAW;IACX,qCAAa,CAAA;IACb,sBAAsB;IACtB,yDAAiC,CAAA;IACjC,kBAAkB;IAClB,uCAAe,CAAA;IACf,6CAA6C;IAC7C,uCAAe,CAAA;AACjB,CAAC,EAXW,oBAAoB,KAApB,oBAAoB,QAW/B;AAwnBD;;;;;GAKG;AACH,MAAM,CAAN,IAAY,SAOX;AAPD,WAAY,SAAS;IACnB,wCAAwC;IACxC,yCAAI,CAAA;IACJ,8CAA8C;IAC9C,+CAAO,CAAA;IACP,6CAA6C;IAC7C,2CAAK,CAAA;AACP,CAAC,EAPW,SAAS,KAAT,SAAS,QAOpB"}
1
+ {"version":3,"file":"plot.js","sourceRoot":"","sources":["../src/plot.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAyIpC;;;;;GAKG;AACH,MAAM,CAAN,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,qEAAqE;IACrE,+CAAI,CAAA;IACJ,+CAA+C;IAC/C,mDAAM,CAAA;IACN,8DAA8D;IAC9D,iDAAK,CAAA;AACP,CAAC,EAPW,YAAY,KAAZ,YAAY,QAOvB;AAED;;;;;GAKG;AACH,MAAM,CAAN,IAAY,gBASX;AATD,WAAY,gBAAgB;IAC1B,8CAA8C;IAC9C,yCAAqB,CAAA;IACrB,mDAAmD;IACnD,iCAAa,CAAA;IACb,6DAA6D;IAC7D,yCAAqB,CAAA;IACrB,+DAA+D;IAC/D,iDAA6B,CAAA;AAC/B,CAAC,EATW,gBAAgB,KAAhB,gBAAgB,QAS3B;AAED;;;;;GAKG;AACH,MAAM,CAAN,IAAY,oBAWX;AAXD,WAAY,oBAAoB;IAC9B,kBAAkB;IAClB,iDAAyB,CAAA;IACzB,WAAW;IACX,qCAAa,CAAA;IACb,sBAAsB;IACtB,yDAAiC,CAAA;IACjC,kBAAkB;IAClB,uCAAe,CAAA;IACf,6CAA6C;IAC7C,uCAAe,CAAA;AACjB,CAAC,EAXW,oBAAoB,KAApB,oBAAoB,QAW/B;AAotBD;;;;;GAKG;AACH,MAAM,CAAN,IAAY,SAOX;AAPD,WAAY,SAAS;IACnB,wCAAwC;IACxC,yCAAI,CAAA;IACJ,8CAA8C;IAC9C,+CAAO,CAAA;IACP,6CAA6C;IAC7C,2CAAK,CAAA;AACP,CAAC,EAPW,SAAS,KAAT,SAAS,QAOpB"}
package/dist/tool.d.ts CHANGED
@@ -99,25 +99,47 @@ export declare abstract class Tool<TSelf> implements ITool {
99
99
  * @param args - Optional arguments to pass to the callback
100
100
  * @returns Promise resolving to the callback result
101
101
  */
102
- protected run(token: Callback, args?: any): Promise<any>;
102
+ protected run(token: Callback, ...args: any[]): Promise<any>;
103
103
  /**
104
104
  * Retrieves a value from persistent storage by key.
105
105
  *
106
- * @template T - The expected type of the stored value
106
+ * Values are automatically deserialized using SuperJSON, which
107
+ * properly restores Date objects, Maps, Sets, and other complex types.
108
+ *
109
+ * @template T - The expected type of the stored value (must be Serializable)
107
110
  * @param key - The storage key to retrieve
108
111
  * @returns Promise resolving to the stored value or null
109
112
  */
110
- protected get<T>(key: string): Promise<T | null>;
113
+ protected get<T extends import("./index").Serializable>(key: string): Promise<T | null>;
111
114
  /**
112
115
  * Stores a value in persistent storage.
113
116
  *
114
- * **Important**: Values must be JSON-serializable. Functions, Symbols, and undefined values
115
- * cannot be stored directly.
117
+ * The value will be serialized using SuperJSON and stored persistently.
118
+ * SuperJSON automatically handles Date objects, Maps, Sets, undefined values,
119
+ * and other complex types that standard JSON doesn't support.
116
120
  *
121
+ * **Important**: Functions and Symbols cannot be stored.
117
122
  * **For function references**: Use callbacks instead of storing functions directly.
118
123
  *
119
124
  * @example
120
125
  * ```typescript
126
+ * // ✅ Date objects are preserved
127
+ * await this.set("sync_state", {
128
+ * lastSync: new Date(),
129
+ * minDate: new Date(2024, 0, 1)
130
+ * });
131
+ *
132
+ * // ✅ undefined is now supported
133
+ * await this.set("data", { name: "test", optional: undefined });
134
+ *
135
+ * // ✅ Arrays with undefined are supported
136
+ * await this.set("items", [1, undefined, 3]);
137
+ * await this.set("items", [1, null, 3]); // Also works
138
+ *
139
+ * // ✅ Maps and Sets are supported
140
+ * await this.set("mapping", new Map([["key", "value"]]));
141
+ * await this.set("tags", new Set(["tag1", "tag2"]));
142
+ *
121
143
  * // ❌ WRONG: Cannot store functions directly
122
144
  * await this.set("handler", this.myHandler);
123
145
  *
@@ -130,12 +152,12 @@ export declare abstract class Tool<TSelf> implements ITool {
130
152
  * await this.run(token, args);
131
153
  * ```
132
154
  *
133
- * @template T - The type of value being stored
155
+ * @template T - The type of value being stored (must be Serializable)
134
156
  * @param key - The storage key to use
135
- * @param value - The value to store (must be JSON-serializable)
157
+ * @param value - The value to store (must be SuperJSON-serializable)
136
158
  * @returns Promise that resolves when the value is stored
137
159
  */
138
- protected set<T>(key: string, value: T): Promise<void>;
160
+ protected set<T extends import("./index").Serializable>(key: string, value: T): Promise<void>;
139
161
  /**
140
162
  * Removes a specific key from persistent storage.
141
163
  *
@@ -1 +1 @@
1
- {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"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"}