@plotday/twister 0.26.0 → 0.27.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 +1 -1
- package/bin/commands/deploy.js +15 -7
- package/bin/commands/deploy.js.map +1 -1
- package/bin/templates/AGENTS.template.md +53 -29
- package/bin/utils/sse.js +19 -1
- package/bin/utils/sse.js.map +1 -1
- package/cli/templates/AGENTS.template.md +53 -29
- package/dist/common/calendar.d.ts +24 -9
- package/dist/common/calendar.d.ts.map +1 -1
- package/dist/common/messaging.d.ts +12 -6
- package/dist/common/messaging.d.ts.map +1 -1
- package/dist/common/projects.d.ts +12 -14
- package/dist/common/projects.d.ts.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/tools_ai.AI.html +1 -1
- package/dist/docs/classes/tools_callbacks.Callbacks.html +1 -1
- package/dist/docs/classes/tools_integrations.Integrations.html +1 -1
- package/dist/docs/classes/tools_network.Network.html +1 -1
- package/dist/docs/classes/tools_plot.Plot.html +1 -1
- package/dist/docs/classes/tools_store.Store.html +1 -1
- package/dist/docs/classes/tools_tasks.Tasks.html +1 -1
- package/dist/docs/classes/tools_twists.Twists.html +1 -1
- package/dist/docs/documents/Built-in_Tools.html +6 -6
- package/dist/docs/documents/Core_Concepts.html +3 -3
- package/dist/docs/documents/Getting_Started.html +1 -1
- package/dist/docs/documents/Runtime_Environment.html +1 -1
- package/dist/docs/enums/plot.ActivityLinkType.html +5 -5
- package/dist/docs/enums/plot.ActivityType.html +4 -4
- package/dist/docs/enums/plot.ActorType.html +4 -4
- package/dist/docs/enums/plot.ConferencingProvider.html +6 -6
- package/dist/docs/functions/index.Uuid.Generate.html +1 -0
- package/dist/docs/hierarchy.html +1 -1
- package/dist/docs/interfaces/common_calendar.CalendarTool.html +15 -13
- package/dist/docs/modules/index.Uuid.html +1 -0
- package/dist/docs/modules/index.html +1 -1
- package/dist/docs/modules/plot.html +1 -1
- package/dist/docs/types/index.Uuid.html +1 -0
- package/dist/docs/types/plot.Activity.html +2 -9
- package/dist/docs/types/plot.ActivityCommon.html +16 -16
- package/dist/docs/types/plot.ActivityLink.html +1 -1
- package/dist/docs/types/plot.ActivityMeta.html +5 -25
- package/dist/docs/types/plot.ActivityUpdate.html +3 -4
- package/dist/docs/types/plot.ActivityWithNotes.html +1 -1
- package/dist/docs/types/plot.Actor.html +5 -5
- package/dist/docs/types/plot.ActorId.html +1 -1
- package/dist/docs/types/plot.ContentType.html +1 -1
- package/dist/docs/types/plot.NewActivity.html +9 -5
- package/dist/docs/types/plot.NewActivityWithNotes.html +1 -1
- package/dist/docs/types/plot.NewActor.html +3 -0
- package/dist/docs/types/plot.NewContact.html +4 -4
- package/dist/docs/types/plot.NewNote.html +8 -3
- package/dist/docs/types/plot.NewPriority.html +1 -1
- package/dist/docs/types/plot.NewTags.html +2 -0
- package/dist/docs/types/plot.Note.html +2 -2
- package/dist/docs/types/plot.NoteUpdate.html +5 -5
- package/dist/docs/types/plot.PickPriorityConfig.html +2 -2
- package/dist/docs/types/plot.Priority.html +3 -3
- package/dist/docs/types/plot.SyncUpdate.html +15 -0
- package/dist/docs/types/plot.Tags.html +2 -1
- package/dist/llm-docs/common/calendar.d.ts +1 -1
- package/dist/llm-docs/common/calendar.d.ts.map +1 -1
- package/dist/llm-docs/common/calendar.js +1 -1
- package/dist/llm-docs/common/calendar.js.map +1 -1
- package/dist/llm-docs/common/messaging.d.ts +1 -1
- package/dist/llm-docs/common/messaging.d.ts.map +1 -1
- package/dist/llm-docs/common/messaging.js +1 -1
- package/dist/llm-docs/common/messaging.js.map +1 -1
- package/dist/llm-docs/common/projects.d.ts +1 -1
- package/dist/llm-docs/common/projects.d.ts.map +1 -1
- package/dist/llm-docs/common/projects.js +1 -1
- package/dist/llm-docs/common/projects.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/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/plot.d.ts +127 -111
- package/dist/plot.d.ts.map +1 -1
- package/dist/plot.js +1 -0
- package/dist/plot.js.map +1 -1
- package/dist/twist-guide.d.ts +1 -1
- package/dist/twist-guide.d.ts.map +1 -1
- package/dist/utils/uuid.d.ts +7 -0
- package/dist/utils/uuid.d.ts.map +1 -0
- package/dist/utils/uuid.js +9 -0
- package/dist/utils/uuid.js.map +1 -0
- package/package.json +9 -2
package/README.md
CHANGED
|
@@ -144,7 +144,7 @@ await this.tools.plot.createActivity({
|
|
|
144
144
|
type: ActivityType.Action,
|
|
145
145
|
title: "Review pull request",
|
|
146
146
|
start: null, // "Do Someday" - backlog item (recommended default)
|
|
147
|
-
|
|
147
|
+
// Tracked via UUID mapping
|
|
148
148
|
notes: [
|
|
149
149
|
{
|
|
150
150
|
content: "New PR ready for review",
|
package/bin/commands/deploy.js
CHANGED
|
@@ -297,9 +297,7 @@ async function deployCommand(options) {
|
|
|
297
297
|
catch (error) {
|
|
298
298
|
// Network errors, continue with publisher setup
|
|
299
299
|
const errorInfo = (0, network_error_1.handleNetworkError)(error);
|
|
300
|
-
out.warning("Could not check existing twist status", [
|
|
301
|
-
errorInfo.message,
|
|
302
|
-
]);
|
|
300
|
+
out.warning("Could not check existing twist status", [errorInfo.message]);
|
|
303
301
|
}
|
|
304
302
|
// Only prompt for publisher if needed
|
|
305
303
|
if (needsPublisher) {
|
|
@@ -458,10 +456,6 @@ async function deployCommand(options) {
|
|
|
458
456
|
out.progress(message);
|
|
459
457
|
},
|
|
460
458
|
}));
|
|
461
|
-
if (!result) {
|
|
462
|
-
out.error("Upload failed");
|
|
463
|
-
process.exit(1);
|
|
464
|
-
}
|
|
465
459
|
// Handle dryRun response
|
|
466
460
|
if (options.dryRun) {
|
|
467
461
|
if (result.errors && result.errors.length > 0) {
|
|
@@ -508,6 +502,20 @@ async function deployCommand(options) {
|
|
|
508
502
|
out.success(`Deployed to ${environment} environment`);
|
|
509
503
|
}
|
|
510
504
|
catch (error) {
|
|
505
|
+
// Handle SSE-specific errors with better messaging
|
|
506
|
+
if (error instanceof Error) {
|
|
507
|
+
if (error.message.includes("Stream ended without receiving a result")) {
|
|
508
|
+
out.error("Connection interrupted", "The upload may have completed on the server, but the connection was interrupted.");
|
|
509
|
+
console.error(out.colors.dim("Please verify the deployment status and retry if needed."));
|
|
510
|
+
process.exit(1);
|
|
511
|
+
}
|
|
512
|
+
else if (error.message.includes("Connection closed without receiving any events")) {
|
|
513
|
+
out.error("Connection failed", "Unable to establish a stable connection to Plot API.");
|
|
514
|
+
console.error(out.colors.dim("Please check your network connection and try again."));
|
|
515
|
+
process.exit(1);
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
// Fall back to generic network error handling
|
|
511
519
|
const errorInfo = (0, network_error_1.handleNetworkError)(error);
|
|
512
520
|
out.error("Upload failed", errorInfo.message);
|
|
513
521
|
if (errorInfo.details) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../cli/commands/deploy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../cli/commands/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,19 +27,20 @@ Plot Twists are TypeScript classes that extend the `Twist` base class. Twists in
|
|
|
27
27
|
|
|
28
28
|
1. **Always create Activities with an initial Note** - The title is just a summary; detailed content goes in Notes
|
|
29
29
|
2. **Add Notes to existing Activities for updates** - Don't create a new Activity for each related message
|
|
30
|
-
3. **
|
|
30
|
+
3. **Track external items using generated UUIDs** - Store mappings between external IDs and Plot UUIDs for deduplication
|
|
31
31
|
4. **Most Activities should be `ActivityType.Note`** - Use `Action` only for tasks with `doneAt`, use `Event` only for items with `start`/`end`
|
|
32
32
|
|
|
33
33
|
### Decision Tree
|
|
34
34
|
|
|
35
35
|
```
|
|
36
36
|
New event/task/conversation?
|
|
37
|
-
├─ Yes →
|
|
38
|
-
│
|
|
37
|
+
├─ Yes → Generate UUID with Uuid.Generate()
|
|
38
|
+
│ Create new Activity with that UUID
|
|
39
|
+
│ Store mapping: external_id → activity_uuid
|
|
39
40
|
│
|
|
40
|
-
└─ No (update/reply/comment) →
|
|
41
|
-
├─ Found → Add Note to existing Activity
|
|
42
|
-
└─ Not found → Create new Activity with
|
|
41
|
+
└─ No (update/reply/comment) → Look up mapping by external_id
|
|
42
|
+
├─ Found → Add Note to existing Activity using stored UUID
|
|
43
|
+
└─ Not found → Create new Activity with UUID + store mapping
|
|
43
44
|
```
|
|
44
45
|
|
|
45
46
|
## Twist Structure Pattern
|
|
@@ -52,6 +53,7 @@ import {
|
|
|
52
53
|
twist,
|
|
53
54
|
} from "@plotday/twister";
|
|
54
55
|
import { Plot } from "@plotday/twister/tools/plot";
|
|
56
|
+
import { Uuid } from "@plotday/twister/utils/uuid";
|
|
55
57
|
|
|
56
58
|
export default class MyTwist extends Twist<MyTwist> {
|
|
57
59
|
build(build: ToolBuilder) {
|
|
@@ -285,26 +287,38 @@ async handleEvent(
|
|
|
285
287
|
incomingActivity: NewActivityWithNotes,
|
|
286
288
|
calendarId: string
|
|
287
289
|
): Promise<void> {
|
|
288
|
-
//
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
);
|
|
290
|
+
// Extract external event ID from meta (adapt based on your tool's data)
|
|
291
|
+
const externalId = incomingActivity.meta?.eventId;
|
|
292
|
+
|
|
293
|
+
if (!externalId) {
|
|
294
|
+
console.error("Event missing external ID");
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
293
297
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
298
|
+
// Check if we've already synced this event
|
|
299
|
+
const mappingKey = `event_mapping:${calendarId}:${externalId}`;
|
|
300
|
+
const existingActivityId = await this.get<Uuid>(mappingKey);
|
|
301
|
+
|
|
302
|
+
if (existingActivityId) {
|
|
303
|
+
// Event already exists - add update as a Note (add message to thread)
|
|
304
|
+
if (incomingActivity.notes?.[0]?.content) {
|
|
305
|
+
await this.tools.plot.createNote({
|
|
306
|
+
activity: { id: existingActivityId },
|
|
307
|
+
content: incomingActivity.notes[0].content,
|
|
308
|
+
});
|
|
303
309
|
}
|
|
310
|
+
return;
|
|
304
311
|
}
|
|
305
312
|
|
|
313
|
+
// New event - generate UUID and store mapping
|
|
314
|
+
const activityId = Uuid.Generate();
|
|
315
|
+
await this.set(mappingKey, activityId);
|
|
316
|
+
|
|
306
317
|
// Create new Activity with initial Note (new thread with first message)
|
|
307
|
-
await this.tools.plot.createActivity(
|
|
318
|
+
await this.tools.plot.createActivity({
|
|
319
|
+
...incomingActivity,
|
|
320
|
+
id: activityId,
|
|
321
|
+
});
|
|
308
322
|
}
|
|
309
323
|
|
|
310
324
|
async stopSync(calendarId: string): Promise<void> {
|
|
@@ -407,12 +421,22 @@ async syncBatch(args: any, resourceId: string): Promise<void> {
|
|
|
407
421
|
|
|
408
422
|
// Process results (create activities with Notes)
|
|
409
423
|
for (const item of result.items) {
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
424
|
+
// Check if already synced
|
|
425
|
+
const mappingKey = `item_mapping:${resourceId}:${item.id}`;
|
|
426
|
+
const existingId = await this.get<Uuid>(mappingKey);
|
|
427
|
+
|
|
428
|
+
if (!existingId) {
|
|
429
|
+
// New item - generate UUID and store mapping
|
|
430
|
+
const activityId = Uuid.Generate();
|
|
431
|
+
await this.set(mappingKey, activityId);
|
|
432
|
+
|
|
433
|
+
await this.tools.plot.createActivity({
|
|
434
|
+
id: activityId,
|
|
435
|
+
type: ActivityType.Note,
|
|
436
|
+
title: item.title,
|
|
437
|
+
notes: [{ id: Uuid.Generate(), content: item.description }],
|
|
438
|
+
});
|
|
439
|
+
}
|
|
416
440
|
}
|
|
417
441
|
|
|
418
442
|
if (result.nextPageToken) {
|
|
@@ -472,8 +496,8 @@ try {
|
|
|
472
496
|
- **Processing self-created activities** - Other users may change an Activity created by the twist, resulting in an \`activity\` call. Be sure to check the \`changes === null\` and/or \`activity.author.id !== this.id\` to avoid re-processing.
|
|
473
497
|
- **Always create Activities with Notes** - See "Understanding Activities and Notes" section above for the thread/message pattern and decision tree.
|
|
474
498
|
- **Use correct Activity types** - Most should be `ActivityType.Note`. Only use `Action` for tasks with `doneAt`, and `Event` for items with `start`/`end`.
|
|
475
|
-
- **
|
|
476
|
-
- **Add Notes to existing Activities** -
|
|
499
|
+
- **Track external items with UUID mappings** - Generate UUIDs with `Uuid.Generate()` and store mappings (`external_id → uuid`) for deduplication. Never rely on the `source` field.
|
|
500
|
+
- **Add Notes to existing Activities** - Look up stored UUID mappings before creating new Activities. Think thread replies, not new threads.
|
|
477
501
|
- Tools are declared in the `build` method and accessed via `this.tools.toolName` in twist methods.
|
|
478
502
|
- **Don't forget runtime limits** - Each execution has ~10 seconds. Break long operations into batches with the Tasks tool. Process enough items per batch to be efficient, but few enough to stay under time limits.
|
|
479
503
|
- **Always use Callbacks tool for persistent references** - Direct function references don't survive worker restarts.
|
package/bin/utils/sse.js
CHANGED
|
@@ -15,7 +15,11 @@ async function handleSSEStream(response, handlers) {
|
|
|
15
15
|
const decoder = new TextDecoder();
|
|
16
16
|
let buffer = "";
|
|
17
17
|
let result = null;
|
|
18
|
+
let receivedAnyEvent = false;
|
|
19
|
+
let receivedResultEvent = false;
|
|
18
20
|
try {
|
|
21
|
+
// currentEvent persists across chunk reads to handle events split across multiple chunks
|
|
22
|
+
let currentEvent = {};
|
|
19
23
|
while (true) {
|
|
20
24
|
const { done, value } = await reader.read();
|
|
21
25
|
if (done) {
|
|
@@ -27,11 +31,11 @@ async function handleSSEStream(response, handlers) {
|
|
|
27
31
|
const lines = buffer.split("\n");
|
|
28
32
|
// Keep incomplete message in buffer
|
|
29
33
|
buffer = lines.pop() || "";
|
|
30
|
-
let currentEvent = {};
|
|
31
34
|
for (const line of lines) {
|
|
32
35
|
// Empty line marks end of event
|
|
33
36
|
if (line.trim() === "") {
|
|
34
37
|
if (currentEvent.event && currentEvent.data !== undefined) {
|
|
38
|
+
receivedAnyEvent = true;
|
|
35
39
|
// Parse data if it's JSON
|
|
36
40
|
let parsedData = currentEvent.data;
|
|
37
41
|
try {
|
|
@@ -46,6 +50,7 @@ async function handleSSEStream(response, handlers) {
|
|
|
46
50
|
handlers.onProgress?.(parsedData.message);
|
|
47
51
|
break;
|
|
48
52
|
case "result":
|
|
53
|
+
receivedResultEvent = true;
|
|
49
54
|
result = parsedData;
|
|
50
55
|
handlers.onResult?.(parsedData);
|
|
51
56
|
break;
|
|
@@ -91,6 +96,19 @@ async function handleSSEStream(response, handlers) {
|
|
|
91
96
|
}
|
|
92
97
|
}
|
|
93
98
|
}
|
|
99
|
+
// Stream completed - check if we received a result
|
|
100
|
+
if (!receivedResultEvent) {
|
|
101
|
+
if (!receivedAnyEvent) {
|
|
102
|
+
throw new Error("Connection closed without receiving any events. " +
|
|
103
|
+
"This may indicate a network issue or server error. " +
|
|
104
|
+
"Please check your connection and try again.");
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
throw new Error("Stream ended without receiving a result. " +
|
|
108
|
+
"The operation may have completed on the server, but the response was interrupted. " +
|
|
109
|
+
"Please verify the operation status and retry if needed.");
|
|
110
|
+
}
|
|
111
|
+
}
|
|
94
112
|
return result;
|
|
95
113
|
}
|
|
96
114
|
finally {
|
package/bin/utils/sse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../../cli/utils/sse.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAkBH,
|
|
1
|
+
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../../cli/utils/sse.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,19 +27,20 @@ Plot Twists are TypeScript classes that extend the `Twist` base class. Twists in
|
|
|
27
27
|
|
|
28
28
|
1. **Always create Activities with an initial Note** - The title is just a summary; detailed content goes in Notes
|
|
29
29
|
2. **Add Notes to existing Activities for updates** - Don't create a new Activity for each related message
|
|
30
|
-
3. **
|
|
30
|
+
3. **Track external items using generated UUIDs** - Store mappings between external IDs and Plot UUIDs for deduplication
|
|
31
31
|
4. **Most Activities should be `ActivityType.Note`** - Use `Action` only for tasks with `doneAt`, use `Event` only for items with `start`/`end`
|
|
32
32
|
|
|
33
33
|
### Decision Tree
|
|
34
34
|
|
|
35
35
|
```
|
|
36
36
|
New event/task/conversation?
|
|
37
|
-
├─ Yes →
|
|
38
|
-
│
|
|
37
|
+
├─ Yes → Generate UUID with Uuid.Generate()
|
|
38
|
+
│ Create new Activity with that UUID
|
|
39
|
+
│ Store mapping: external_id → activity_uuid
|
|
39
40
|
│
|
|
40
|
-
└─ No (update/reply/comment) →
|
|
41
|
-
├─ Found → Add Note to existing Activity
|
|
42
|
-
└─ Not found → Create new Activity with
|
|
41
|
+
└─ No (update/reply/comment) → Look up mapping by external_id
|
|
42
|
+
├─ Found → Add Note to existing Activity using stored UUID
|
|
43
|
+
└─ Not found → Create new Activity with UUID + store mapping
|
|
43
44
|
```
|
|
44
45
|
|
|
45
46
|
## Twist Structure Pattern
|
|
@@ -52,6 +53,7 @@ import {
|
|
|
52
53
|
twist,
|
|
53
54
|
} from "@plotday/twister";
|
|
54
55
|
import { Plot } from "@plotday/twister/tools/plot";
|
|
56
|
+
import { Uuid } from "@plotday/twister/utils/uuid";
|
|
55
57
|
|
|
56
58
|
export default class MyTwist extends Twist<MyTwist> {
|
|
57
59
|
build(build: ToolBuilder) {
|
|
@@ -285,26 +287,38 @@ async handleEvent(
|
|
|
285
287
|
incomingActivity: NewActivityWithNotes,
|
|
286
288
|
calendarId: string
|
|
287
289
|
): Promise<void> {
|
|
288
|
-
//
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
);
|
|
290
|
+
// Extract external event ID from meta (adapt based on your tool's data)
|
|
291
|
+
const externalId = incomingActivity.meta?.eventId;
|
|
292
|
+
|
|
293
|
+
if (!externalId) {
|
|
294
|
+
console.error("Event missing external ID");
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
293
297
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
298
|
+
// Check if we've already synced this event
|
|
299
|
+
const mappingKey = `event_mapping:${calendarId}:${externalId}`;
|
|
300
|
+
const existingActivityId = await this.get<Uuid>(mappingKey);
|
|
301
|
+
|
|
302
|
+
if (existingActivityId) {
|
|
303
|
+
// Event already exists - add update as a Note (add message to thread)
|
|
304
|
+
if (incomingActivity.notes?.[0]?.content) {
|
|
305
|
+
await this.tools.plot.createNote({
|
|
306
|
+
activity: { id: existingActivityId },
|
|
307
|
+
content: incomingActivity.notes[0].content,
|
|
308
|
+
});
|
|
303
309
|
}
|
|
310
|
+
return;
|
|
304
311
|
}
|
|
305
312
|
|
|
313
|
+
// New event - generate UUID and store mapping
|
|
314
|
+
const activityId = Uuid.Generate();
|
|
315
|
+
await this.set(mappingKey, activityId);
|
|
316
|
+
|
|
306
317
|
// Create new Activity with initial Note (new thread with first message)
|
|
307
|
-
await this.tools.plot.createActivity(
|
|
318
|
+
await this.tools.plot.createActivity({
|
|
319
|
+
...incomingActivity,
|
|
320
|
+
id: activityId,
|
|
321
|
+
});
|
|
308
322
|
}
|
|
309
323
|
|
|
310
324
|
async stopSync(calendarId: string): Promise<void> {
|
|
@@ -407,12 +421,22 @@ async syncBatch(args: any, resourceId: string): Promise<void> {
|
|
|
407
421
|
|
|
408
422
|
// Process results (create activities with Notes)
|
|
409
423
|
for (const item of result.items) {
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
424
|
+
// Check if already synced
|
|
425
|
+
const mappingKey = `item_mapping:${resourceId}:${item.id}`;
|
|
426
|
+
const existingId = await this.get<Uuid>(mappingKey);
|
|
427
|
+
|
|
428
|
+
if (!existingId) {
|
|
429
|
+
// New item - generate UUID and store mapping
|
|
430
|
+
const activityId = Uuid.Generate();
|
|
431
|
+
await this.set(mappingKey, activityId);
|
|
432
|
+
|
|
433
|
+
await this.tools.plot.createActivity({
|
|
434
|
+
id: activityId,
|
|
435
|
+
type: ActivityType.Note,
|
|
436
|
+
title: item.title,
|
|
437
|
+
notes: [{ id: Uuid.Generate(), content: item.description }],
|
|
438
|
+
});
|
|
439
|
+
}
|
|
416
440
|
}
|
|
417
441
|
|
|
418
442
|
if (result.nextPageToken) {
|
|
@@ -472,8 +496,8 @@ try {
|
|
|
472
496
|
- **Processing self-created activities** - Other users may change an Activity created by the twist, resulting in an \`activity\` call. Be sure to check the \`changes === null\` and/or \`activity.author.id !== this.id\` to avoid re-processing.
|
|
473
497
|
- **Always create Activities with Notes** - See "Understanding Activities and Notes" section above for the thread/message pattern and decision tree.
|
|
474
498
|
- **Use correct Activity types** - Most should be `ActivityType.Note`. Only use `Action` for tasks with `doneAt`, and `Event` for items with `start`/`end`.
|
|
475
|
-
- **
|
|
476
|
-
- **Add Notes to existing Activities** -
|
|
499
|
+
- **Track external items with UUID mappings** - Generate UUIDs with `Uuid.Generate()` and store mappings (`external_id → uuid`) for deduplication. Never rely on the `source` field.
|
|
500
|
+
- **Add Notes to existing Activities** - Look up stored UUID mappings before creating new Activities. Think thread replies, not new threads.
|
|
477
501
|
- Tools are declared in the `build` method and accessed via `this.tools.toolName` in twist methods.
|
|
478
502
|
- **Don't forget runtime limits** - Each execution has ~10 seconds. Break long operations into batches with the Tasks tool. Process enough items per batch to be efficient, but few enough to stay under time limits.
|
|
479
503
|
- **Always use Callbacks tool for persistent references** - Direct function references don't survive worker restarts.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ActivityLink,
|
|
1
|
+
import type { ActivityLink, SyncUpdate } from "../index";
|
|
2
2
|
/**
|
|
3
3
|
* Represents successful calendar authorization.
|
|
4
4
|
*
|
|
@@ -86,11 +86,24 @@ export interface SyncOptions {
|
|
|
86
86
|
* }
|
|
87
87
|
*
|
|
88
88
|
* async onCalendarEvent(
|
|
89
|
-
*
|
|
89
|
+
* syncUpdate: SyncUpdate,
|
|
90
90
|
* syncMeta: { initialSync: boolean }
|
|
91
91
|
* ) {
|
|
92
92
|
* // Step 4: Process synced events
|
|
93
|
-
*
|
|
93
|
+
* if ('activityId' in syncUpdate) {
|
|
94
|
+
* // Update existing activity
|
|
95
|
+
* if (syncUpdate.update) {
|
|
96
|
+
* await this.plot.updateActivity(syncUpdate.update);
|
|
97
|
+
* }
|
|
98
|
+
* if (syncUpdate.notes) {
|
|
99
|
+
* for (const note of syncUpdate.notes) {
|
|
100
|
+
* await this.plot.createNote(note);
|
|
101
|
+
* }
|
|
102
|
+
* }
|
|
103
|
+
* } else {
|
|
104
|
+
* // Create new activity
|
|
105
|
+
* await this.plot.createActivity(syncUpdate);
|
|
106
|
+
* }
|
|
94
107
|
* }
|
|
95
108
|
* }
|
|
96
109
|
* ```
|
|
@@ -123,19 +136,21 @@ export interface CalendarTool {
|
|
|
123
136
|
* event import and ongoing change notifications. The callback function
|
|
124
137
|
* will be invoked for each synced event.
|
|
125
138
|
*
|
|
126
|
-
* Tools implementing this should
|
|
127
|
-
* -
|
|
128
|
-
* -
|
|
139
|
+
* Tools implementing this should:
|
|
140
|
+
* - Generate UUIDs for new activities and notes using Uuid.Generate()
|
|
141
|
+
* - Track activity IDs locally to detect updates vs new items
|
|
142
|
+
* - Send NewActivityWithNotes for new events
|
|
143
|
+
* - Send update object with activityId for changed events
|
|
144
|
+
* - Set activity.unread = false for initial sync, true for incremental updates
|
|
129
145
|
*
|
|
130
146
|
* @param authToken - Authorization token for calendar access
|
|
131
147
|
* @param calendarId - ID of the calendar to sync
|
|
132
|
-
* @param callback - Function receiving (
|
|
133
|
-
* The activity.unread field indicates whether this is from initial sync.
|
|
148
|
+
* @param callback - Function receiving (syncUpdate, ...extraArgs) for each synced event
|
|
134
149
|
* @param extraArgs - Additional arguments to pass to the callback (type-checked)
|
|
135
150
|
* @returns Promise that resolves when sync setup is complete
|
|
136
151
|
* @throws When auth token is invalid or calendar doesn't exist
|
|
137
152
|
*/
|
|
138
|
-
startSync<TCallback extends (
|
|
153
|
+
startSync<TCallback extends (syncUpdate: SyncUpdate, ...args: any[]) => any>(authToken: string, calendarId: string, callback: TCallback, ...extraArgs: TCallback extends (syncUpdate: any, ...rest: infer R) => any ? R : []): Promise<void>;
|
|
139
154
|
/**
|
|
140
155
|
* Stops synchronizing events from a specific calendar.
|
|
141
156
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/common/calendar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../src/common/calendar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAwB,UAAU,EAAE,MAAM,UAAU,CAAC;AAE/E;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,6DAA6D;IAC7D,EAAE,EAAE,MAAM,CAAC;IACX,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,0DAA0D;IAC1D,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,oDAAoD;IACpD,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,gDAAgD;IAChD,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;OAMG;IACH,WAAW,CAAC,SAAS,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACvE,QAAQ,EAAE,SAAS,EACnB,GAAG,SAAS,EAAE,SAAS,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,GAAG,GAChE,CAAC,GACD,EAAE,GACL,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzB;;;;;;;;;;OAUG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAErD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,CACP,SAAS,SAAS,CAChB,UAAU,EAAE,UAAU,EACtB,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,GAAG,EAER,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,SAAS,EACnB,GAAG,SAAS,EAAE,SAAS,SAAS,CAC9B,UAAU,EAAE,GAAG,EACf,GAAG,IAAI,EAAE,MAAM,CAAC,KACb,GAAG,GACJ,CAAC,GACD,EAAE,GACL,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ActivityLink,
|
|
1
|
+
import type { ActivityLink, SyncUpdate } from "../index";
|
|
2
2
|
/**
|
|
3
3
|
* Represents a successful messaging service authorization.
|
|
4
4
|
*
|
|
@@ -61,18 +61,24 @@ export interface MessagingTool {
|
|
|
61
61
|
/**
|
|
62
62
|
* Begins synchronizing messages from a specific channel.
|
|
63
63
|
*
|
|
64
|
-
* Email threads and chat conversations are converted to
|
|
65
|
-
*
|
|
66
|
-
*
|
|
64
|
+
* Email threads and chat conversations are converted to SyncUpdate objects,
|
|
65
|
+
* which can be either new items or updates to existing items.
|
|
66
|
+
*
|
|
67
|
+
* Tools implementing this should:
|
|
68
|
+
* - Generate UUIDs for new activities and notes using Uuid.Generate()
|
|
69
|
+
* - Track activity IDs locally to detect updates vs new threads
|
|
70
|
+
* - Send NewActivityWithNotes for new threads
|
|
71
|
+
* - Send update object with activityId and new notes for new messages in existing threads
|
|
72
|
+
* - Set activity.unread = false for initial sync, true for incremental updates
|
|
67
73
|
*
|
|
68
74
|
* @param authToken - Authorization token for access
|
|
69
75
|
* @param channelId - ID of the channel (e.g., channel, inbox) to sync
|
|
70
|
-
* @param callback - Function receiving (
|
|
76
|
+
* @param callback - Function receiving (syncUpdate, ...extraArgs) for each synced conversation
|
|
71
77
|
* @param options - Optional configuration for limiting the sync scope (e.g., time range)
|
|
72
78
|
* @param extraArgs - Additional arguments to pass to the callback (type-checked)
|
|
73
79
|
* @returns Promise that resolves when sync setup is complete
|
|
74
80
|
*/
|
|
75
|
-
startSync<TCallback extends (
|
|
81
|
+
startSync<TCallback extends (syncUpdate: SyncUpdate, ...args: any[]) => any>(authToken: string, channelId: string, callback: TCallback, options?: MessageSyncOptions, ...extraArgs: TCallback extends (syncUpdate: any, ...rest: infer R) => any ? R : []): Promise<void>;
|
|
76
82
|
/**
|
|
77
83
|
* Stops synchronizing messages from a specific channel.
|
|
78
84
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messaging.d.ts","sourceRoot":"","sources":["../../src/common/messaging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"messaging.d.ts","sourceRoot":"","sources":["../../src/common/messaging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAwB,UAAU,EAAE,MAAM,UAAU,CAAC;AAE/E;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IACX,uFAAuF;IACvF,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,4EAA4E;IAC5E,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;OAMG;IACH,WAAW,CAAC,SAAS,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACxE,QAAQ,EAAE,SAAS,EACnB,GAAG,SAAS,EAAE,SAAS,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,GAAG,GAChE,CAAC,GACD,EAAE,GACL,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzB;;;;;OAKG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAE1D;;;;;;;;;;;;;;;;;;;OAmBG;IACH,SAAS,CACP,SAAS,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAEjE,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,SAAS,EACnB,OAAO,CAAC,EAAE,kBAAkB,EAC5B,GAAG,SAAS,EAAE,SAAS,SAAS,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,GAAG,GACtE,CAAC,GACD,EAAE,GACL,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ActivityLink, ActivityUpdate,
|
|
1
|
+
import type { ActivityLink, ActivityUpdate, SyncUpdate } from "../index";
|
|
2
2
|
/**
|
|
3
3
|
* Represents a successful project management service authorization.
|
|
4
4
|
*
|
|
@@ -61,27 +61,25 @@ export interface ProjectTool {
|
|
|
61
61
|
/**
|
|
62
62
|
* Begins synchronizing issues from a specific project.
|
|
63
63
|
*
|
|
64
|
-
* Issues and tasks are converted to
|
|
65
|
-
*
|
|
66
|
-
* (description as first note, followed by comments).
|
|
67
|
-
* The Activity.source should be set for deduplication.
|
|
64
|
+
* Issues and tasks are converted to SyncUpdate objects, which can be either
|
|
65
|
+
* new items or updates to existing items.
|
|
68
66
|
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
* -
|
|
74
|
-
* -
|
|
67
|
+
* Tools implementing this should:
|
|
68
|
+
* - Generate UUIDs for new activities and notes using Uuid.Generate()
|
|
69
|
+
* - Track activity IDs locally to detect updates vs new items
|
|
70
|
+
* - Send NewActivityWithNotes for new issues
|
|
71
|
+
* - Send update object with activityId for changed issues or new comments
|
|
72
|
+
* - Track description note ID and hash to detect description changes
|
|
73
|
+
* - Set activity.unread = false for initial sync, true for incremental updates
|
|
75
74
|
*
|
|
76
75
|
* @param authToken - Authorization token for access
|
|
77
76
|
* @param projectId - ID of the project to sync
|
|
78
|
-
* @param callback - Function receiving (
|
|
79
|
-
* The issue.unread field indicates whether this is from initial sync.
|
|
77
|
+
* @param callback - Function receiving (syncUpdate, ...extraArgs) for each synced issue
|
|
80
78
|
* @param options - Optional configuration for limiting the sync scope (e.g., time range)
|
|
81
79
|
* @param extraArgs - Additional arguments to pass to the callback (type-checked)
|
|
82
80
|
* @returns Promise that resolves when sync setup is complete
|
|
83
81
|
*/
|
|
84
|
-
startSync<TCallback extends (
|
|
82
|
+
startSync<TCallback extends (syncUpdate: SyncUpdate, ...args: any[]) => any>(authToken: string, projectId: string, callback: TCallback, options?: ProjectSyncOptions, ...extraArgs: TCallback extends (syncUpdate: any, ...rest: infer R) => any ? R : []): Promise<void>;
|
|
85
83
|
/**
|
|
86
84
|
* Stops synchronizing issues from a specific project.
|
|
87
85
|
*
|