@ever-works/composio-plugin 1.0.5 → 1.0.6

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/dist/index.cjs CHANGED
@@ -283,10 +283,14 @@ var USER_SELECTABLE_WORK_KINDS = [
283
283
  "repo",
284
284
  "app"
285
285
  ];
286
- var WORK_KINDS = [...USER_SELECTABLE_WORK_KINDS, "company", "campaign", "default"];
286
+ var WORK_KINDS = [...USER_SELECTABLE_WORK_KINDS, "company", "campaign", "project", "default"];
287
287
  var WORK_KIND_SET = new Set(WORK_KINDS);
288
288
  var GOAL_KINDS = ["metric", "delivery"];
289
289
  var GOAL_KIND_SET = new Set(GOAL_KINDS);
290
+ var RECORD_VISIBILITIES = ["private", "team", "organization"];
291
+ var RECORD_VISIBILITY_SET = new Set(RECORD_VISIBILITIES);
292
+ var RECORD_LIST_VIEWS = ["mine", "shared", "organization"];
293
+ var RECORD_LIST_VIEW_SET = new Set(RECORD_LIST_VIEWS);
290
294
  var APP_DEPENDENCY_BACKUP_OVERDUE_MS = 26 * 36e5;
291
295
  var APP_DEPENDENCY_MANAGED = {
292
296
  pgRoleConnectionLimit: 20,
@@ -1488,6 +1492,152 @@ var EVER_STATS_SIGNATURE_HEADER = CONSTANTS.stats_headers.signature;
1488
1492
  var EVER_STATS_KEY_ID_HEADER = CONSTANTS.stats_headers.key_id;
1489
1493
  var EVER_STATS_SIGNATURE_PREFIX = CONSTANTS.stats_signature_prefix;
1490
1494
  var EVER_STATS_MAX_BODY_BYTES = CONSTANTS.stats.max_bytes;
1495
+ var DOMAIN_EVENT_CATALOG = [
1496
+ // EW-P2-6 — `org:write` (and the app) create Organizations.
1497
+ { type: "organization.created", domain: "organization", aggregateType: "organization", phase: "P2" },
1498
+ { type: "organization.updated", domain: "organization", aggregateType: "organization", phase: "P1" },
1499
+ {
1500
+ type: "organization.member.added",
1501
+ domain: "organization",
1502
+ aggregateType: "organization",
1503
+ phase: "P1",
1504
+ child: "member"
1505
+ },
1506
+ {
1507
+ type: "organization.member.updated",
1508
+ domain: "organization",
1509
+ aggregateType: "organization",
1510
+ phase: "P1",
1511
+ child: "member"
1512
+ },
1513
+ {
1514
+ type: "organization.member.removed",
1515
+ domain: "organization",
1516
+ aggregateType: "organization",
1517
+ phase: "P1",
1518
+ child: "member"
1519
+ },
1520
+ { type: "agent.created", domain: "agents", aggregateType: "agent", phase: "P1" },
1521
+ { type: "agent.updated", domain: "agents", aggregateType: "agent", phase: "P1" },
1522
+ { type: "agent.status_changed", domain: "agents", aggregateType: "agent", phase: "P1" },
1523
+ { type: "agent.archived", domain: "agents", aggregateType: "agent", phase: "P1" },
1524
+ { type: "agent.deleted", domain: "agents", aggregateType: "agent", phase: "P1" },
1525
+ { type: "team.created", domain: "teams", aggregateType: "team", phase: "P1" },
1526
+ { type: "team.updated", domain: "teams", aggregateType: "team", phase: "P1" },
1527
+ { type: "team.deleted", domain: "teams", aggregateType: "team", phase: "P1" },
1528
+ { type: "team.member.added", domain: "teams", aggregateType: "team", phase: "P1", child: "member" },
1529
+ { type: "team.member.updated", domain: "teams", aggregateType: "team", phase: "P1", child: "member" },
1530
+ { type: "team.member.removed", domain: "teams", aggregateType: "team", phase: "P1", child: "member" },
1531
+ { type: "team.resource.added", domain: "teams", aggregateType: "team", phase: "P1", child: "resource" },
1532
+ { type: "team.resource.removed", domain: "teams", aggregateType: "team", phase: "P1", child: "resource" },
1533
+ { type: "work.created", domain: "works", aggregateType: "work", phase: "P1" },
1534
+ { type: "work.updated", domain: "works", aggregateType: "work", phase: "P1" },
1535
+ { type: "work.archived", domain: "works", aggregateType: "work", phase: "P1" },
1536
+ { type: "work.deleted", domain: "works", aggregateType: "work", phase: "P1" },
1537
+ { type: "work.member.added", domain: "works", aggregateType: "work", phase: "P1", child: "member" },
1538
+ { type: "work.member.updated", domain: "works", aggregateType: "work", phase: "P1", child: "member" },
1539
+ { type: "work.member.removed", domain: "works", aggregateType: "work", phase: "P1", child: "member" },
1540
+ { type: "mission.created", domain: "missions", aggregateType: "mission", phase: "P2" },
1541
+ { type: "mission.updated", domain: "missions", aggregateType: "mission", phase: "P2" },
1542
+ { type: "mission.status_changed", domain: "missions", aggregateType: "mission", phase: "P2" },
1543
+ { type: "mission.deleted", domain: "missions", aggregateType: "mission", phase: "P2" },
1544
+ { type: "mission.goal.linked", domain: "missions", aggregateType: "mission", phase: "P2", child: "goal" },
1545
+ { type: "mission.goal.unlinked", domain: "missions", aggregateType: "mission", phase: "P2", child: "goal" },
1546
+ { type: "mission.work.linked", domain: "missions", aggregateType: "mission", phase: "P2", child: "work" },
1547
+ { type: "mission.work.unlinked", domain: "missions", aggregateType: "mission", phase: "P2", child: "work" },
1548
+ { type: "goal.created", domain: "goals", aggregateType: "goal", phase: "P2" },
1549
+ { type: "goal.updated", domain: "goals", aggregateType: "goal", phase: "P2" },
1550
+ { type: "goal.status_changed", domain: "goals", aggregateType: "goal", phase: "P2" },
1551
+ { type: "goal.archived", domain: "goals", aggregateType: "goal", phase: "P2" },
1552
+ { type: "goal.unarchived", domain: "goals", aggregateType: "goal", phase: "P2" },
1553
+ { type: "goal.deleted", domain: "goals", aggregateType: "goal", phase: "P2" },
1554
+ { type: "goal.progress_changed", domain: "goals", aggregateType: "goal", phase: "P2" },
1555
+ { type: "idea.created", domain: "ideas", aggregateType: "idea", phase: "P2" },
1556
+ { type: "idea.updated", domain: "ideas", aggregateType: "idea", phase: "P2" },
1557
+ { type: "idea.status_changed", domain: "ideas", aggregateType: "idea", phase: "P2" },
1558
+ { type: "idea.deleted", domain: "ideas", aggregateType: "idea", phase: "P2" },
1559
+ { type: "task.created", domain: "tasks", aggregateType: "task", phase: "P1" },
1560
+ { type: "task.updated", domain: "tasks", aggregateType: "task", phase: "P1" },
1561
+ { type: "task.transitioned", domain: "tasks", aggregateType: "task", phase: "P1" },
1562
+ { type: "task.deleted", domain: "tasks", aggregateType: "task", phase: "P1" },
1563
+ { type: "task.assignee.added", domain: "tasks", aggregateType: "task", phase: "P1", child: "assignee" },
1564
+ { type: "task.assignee.removed", domain: "tasks", aggregateType: "task", phase: "P1", child: "assignee" },
1565
+ { type: "task.watcher.added", domain: "tasks", aggregateType: "task", phase: "P1", child: "watcher" },
1566
+ { type: "task.watcher.removed", domain: "tasks", aggregateType: "task", phase: "P1", child: "watcher" },
1567
+ { type: "task.block.added", domain: "tasks", aggregateType: "task", phase: "P1", child: "block" },
1568
+ { type: "task.block.removed", domain: "tasks", aggregateType: "task", phase: "P1", child: "block" },
1569
+ { type: "task.relation.added", domain: "tasks", aggregateType: "task", phase: "P1", child: "relation" },
1570
+ { type: "task.relation.removed", domain: "tasks", aggregateType: "task", phase: "P1", child: "relation" },
1571
+ { type: "task.comment.created", domain: "tasks", aggregateType: "task", phase: "P1", child: "comment" },
1572
+ { type: "task.comment.updated", domain: "tasks", aggregateType: "task", phase: "P1", child: "comment" },
1573
+ { type: "task.comment.deleted", domain: "tasks", aggregateType: "task", phase: "P1", child: "comment" },
1574
+ { type: "task.attachment.added", domain: "tasks", aggregateType: "task", phase: "P3", child: "attachment" },
1575
+ { type: "task.attachment.removed", domain: "tasks", aggregateType: "task", phase: "P3", child: "attachment" },
1576
+ { type: "task.runtime_updated", domain: "tasks", aggregateType: "task", phase: "P1", optIn: true },
1577
+ { type: "inbox.item.created", domain: "inbox", aggregateType: "inbox_item", phase: "P3" },
1578
+ { type: "inbox.item.answered", domain: "inbox", aggregateType: "inbox_item", phase: "P3" },
1579
+ { type: "inbox.item.state_changed", domain: "inbox", aggregateType: "inbox_item", phase: "P3" },
1580
+ { type: "inbox.item.deleted", domain: "inbox", aggregateType: "inbox_item", phase: "P3" },
1581
+ { type: "kb.document.created", domain: "kb", aggregateType: "kb_document", phase: "P3" },
1582
+ { type: "kb.document.updated", domain: "kb", aggregateType: "kb_document", phase: "P3" },
1583
+ { type: "kb.document.moved", domain: "kb", aggregateType: "kb_document", phase: "P3" },
1584
+ { type: "kb.document.archived", domain: "kb", aggregateType: "kb_document", phase: "P3" },
1585
+ { type: "kb.document.unarchived", domain: "kb", aggregateType: "kb_document", phase: "P3" },
1586
+ { type: "kb.document.deleted", domain: "kb", aggregateType: "kb_document", phase: "P3" },
1587
+ { type: "kb.document.review_changed", domain: "kb", aggregateType: "kb_document", phase: "P3" },
1588
+ { type: "kb.folder.created", domain: "kb", aggregateType: "kb_folder", phase: "P3" },
1589
+ { type: "kb.folder.updated", domain: "kb", aggregateType: "kb_folder", phase: "P3" },
1590
+ { type: "kb.folder.deleted", domain: "kb", aggregateType: "kb_folder", phase: "P3" },
1591
+ { type: "email.message.received", domain: "email", aggregateType: "email_message", phase: "P4" },
1592
+ { type: "email.message.sent", domain: "email", aggregateType: "email_message", phase: "P4" },
1593
+ { type: "email.message.status_changed", domain: "email", aggregateType: "email_message", phase: "P4" },
1594
+ { type: "task.visibility_changed", domain: "visibility", aggregateType: "task", phase: "P1" },
1595
+ { type: "agent.visibility_changed", domain: "visibility", aggregateType: "agent", phase: "P1" },
1596
+ { type: "goal.visibility_changed", domain: "visibility", aggregateType: "goal", phase: "P2" },
1597
+ { type: "mission.visibility_changed", domain: "visibility", aggregateType: "mission", phase: "P2" },
1598
+ { type: "idea.visibility_changed", domain: "visibility", aggregateType: "idea", phase: "P2" }
1599
+ ];
1600
+ var DOMAIN_EVENT_TYPES = DOMAIN_EVENT_CATALOG.map((entry) => entry.type);
1601
+ var CATALOG_BY_TYPE = new Map(
1602
+ DOMAIN_EVENT_CATALOG.map((entry) => [entry.type, entry])
1603
+ );
1604
+ var RECIPIENT_SCOPED_EVENT_DOMAINS = {
1605
+ inbox: "inbox:read",
1606
+ email: "email:read"
1607
+ };
1608
+ var RECIPIENT_EVENT_SCOPES = Object.values(RECIPIENT_SCOPED_EVENT_DOMAINS);
1609
+ var INTEGRATION_SCOPES = [
1610
+ "org:read",
1611
+ "org:write",
1612
+ "members:read",
1613
+ "members:write",
1614
+ "agents:read",
1615
+ "teams:read",
1616
+ "teams:write",
1617
+ "works:read",
1618
+ "works:write",
1619
+ "missions:read",
1620
+ "missions:write",
1621
+ "goals:read",
1622
+ "goals:write",
1623
+ "ideas:read",
1624
+ "ideas:write",
1625
+ "tasks:read",
1626
+ "tasks:write",
1627
+ "inbox:read",
1628
+ "inbox:write",
1629
+ "kb:read",
1630
+ "kb:write",
1631
+ "email:read",
1632
+ "email:write",
1633
+ "events:read",
1634
+ "webhooks:manage",
1635
+ "links:write"
1636
+ ];
1637
+ var INTEGRATION_OPT_IN_SCOPES = ["org:write", "email:write"];
1638
+ var EVER_GAUZY_PRESET_SCOPES = INTEGRATION_SCOPES.filter(
1639
+ (scope) => !INTEGRATION_OPT_IN_SCOPES.includes(scope)
1640
+ );
1491
1641
 
1492
1642
  // ../../plugin/dist/index.js
1493
1643
  var DEFAULT_DIFF_MAX_BYTES = 256 * 1024;
@@ -1634,7 +1784,14 @@ var PLUGIN_CAPABILITIES = {
1634
1784
  // new category: the tier's plugin is a `deployment` plugin, so
1635
1785
  // `PLUGIN_CATEGORIES` is untouched and every exhaustive map over it in
1636
1786
  // `apps/web` stays total.
1637
- APPS_TIER: "apps-tier"
1787
+ APPS_TIER: "apps-tier",
1788
+ // Domain events (EW-P1-1) — plugins that follow the durable domain event
1789
+ // outbox (`task.updated`, `team.member.added`, …) through the relay, at
1790
+ // least once, with a per-plugin cursor. See
1791
+ // `capabilities/domain-event-subscriber.interface.ts`. Appended last, so
1792
+ // every existing constant keeps its value and its position; no category is
1793
+ // added (a subscriber plugin keeps the category of what it otherwise is).
1794
+ DOMAIN_EVENT_SUBSCRIBER: "domain-event-subscriber"
1638
1795
  };
1639
1796
  var ALL_PLUGIN_CAPABILITIES = Object.values(PLUGIN_CAPABILITIES);
1640
1797
  var ITEM_SCHEMA_PROMPT_TEXT = `
package/dist/index.js CHANGED
@@ -256,10 +256,14 @@ var USER_SELECTABLE_WORK_KINDS = [
256
256
  "repo",
257
257
  "app"
258
258
  ];
259
- var WORK_KINDS = [...USER_SELECTABLE_WORK_KINDS, "company", "campaign", "default"];
259
+ var WORK_KINDS = [...USER_SELECTABLE_WORK_KINDS, "company", "campaign", "project", "default"];
260
260
  var WORK_KIND_SET = new Set(WORK_KINDS);
261
261
  var GOAL_KINDS = ["metric", "delivery"];
262
262
  var GOAL_KIND_SET = new Set(GOAL_KINDS);
263
+ var RECORD_VISIBILITIES = ["private", "team", "organization"];
264
+ var RECORD_VISIBILITY_SET = new Set(RECORD_VISIBILITIES);
265
+ var RECORD_LIST_VIEWS = ["mine", "shared", "organization"];
266
+ var RECORD_LIST_VIEW_SET = new Set(RECORD_LIST_VIEWS);
263
267
  var APP_DEPENDENCY_BACKUP_OVERDUE_MS = 26 * 36e5;
264
268
  var APP_DEPENDENCY_MANAGED = {
265
269
  pgRoleConnectionLimit: 20,
@@ -1461,6 +1465,152 @@ var EVER_STATS_SIGNATURE_HEADER = CONSTANTS.stats_headers.signature;
1461
1465
  var EVER_STATS_KEY_ID_HEADER = CONSTANTS.stats_headers.key_id;
1462
1466
  var EVER_STATS_SIGNATURE_PREFIX = CONSTANTS.stats_signature_prefix;
1463
1467
  var EVER_STATS_MAX_BODY_BYTES = CONSTANTS.stats.max_bytes;
1468
+ var DOMAIN_EVENT_CATALOG = [
1469
+ // EW-P2-6 — `org:write` (and the app) create Organizations.
1470
+ { type: "organization.created", domain: "organization", aggregateType: "organization", phase: "P2" },
1471
+ { type: "organization.updated", domain: "organization", aggregateType: "organization", phase: "P1" },
1472
+ {
1473
+ type: "organization.member.added",
1474
+ domain: "organization",
1475
+ aggregateType: "organization",
1476
+ phase: "P1",
1477
+ child: "member"
1478
+ },
1479
+ {
1480
+ type: "organization.member.updated",
1481
+ domain: "organization",
1482
+ aggregateType: "organization",
1483
+ phase: "P1",
1484
+ child: "member"
1485
+ },
1486
+ {
1487
+ type: "organization.member.removed",
1488
+ domain: "organization",
1489
+ aggregateType: "organization",
1490
+ phase: "P1",
1491
+ child: "member"
1492
+ },
1493
+ { type: "agent.created", domain: "agents", aggregateType: "agent", phase: "P1" },
1494
+ { type: "agent.updated", domain: "agents", aggregateType: "agent", phase: "P1" },
1495
+ { type: "agent.status_changed", domain: "agents", aggregateType: "agent", phase: "P1" },
1496
+ { type: "agent.archived", domain: "agents", aggregateType: "agent", phase: "P1" },
1497
+ { type: "agent.deleted", domain: "agents", aggregateType: "agent", phase: "P1" },
1498
+ { type: "team.created", domain: "teams", aggregateType: "team", phase: "P1" },
1499
+ { type: "team.updated", domain: "teams", aggregateType: "team", phase: "P1" },
1500
+ { type: "team.deleted", domain: "teams", aggregateType: "team", phase: "P1" },
1501
+ { type: "team.member.added", domain: "teams", aggregateType: "team", phase: "P1", child: "member" },
1502
+ { type: "team.member.updated", domain: "teams", aggregateType: "team", phase: "P1", child: "member" },
1503
+ { type: "team.member.removed", domain: "teams", aggregateType: "team", phase: "P1", child: "member" },
1504
+ { type: "team.resource.added", domain: "teams", aggregateType: "team", phase: "P1", child: "resource" },
1505
+ { type: "team.resource.removed", domain: "teams", aggregateType: "team", phase: "P1", child: "resource" },
1506
+ { type: "work.created", domain: "works", aggregateType: "work", phase: "P1" },
1507
+ { type: "work.updated", domain: "works", aggregateType: "work", phase: "P1" },
1508
+ { type: "work.archived", domain: "works", aggregateType: "work", phase: "P1" },
1509
+ { type: "work.deleted", domain: "works", aggregateType: "work", phase: "P1" },
1510
+ { type: "work.member.added", domain: "works", aggregateType: "work", phase: "P1", child: "member" },
1511
+ { type: "work.member.updated", domain: "works", aggregateType: "work", phase: "P1", child: "member" },
1512
+ { type: "work.member.removed", domain: "works", aggregateType: "work", phase: "P1", child: "member" },
1513
+ { type: "mission.created", domain: "missions", aggregateType: "mission", phase: "P2" },
1514
+ { type: "mission.updated", domain: "missions", aggregateType: "mission", phase: "P2" },
1515
+ { type: "mission.status_changed", domain: "missions", aggregateType: "mission", phase: "P2" },
1516
+ { type: "mission.deleted", domain: "missions", aggregateType: "mission", phase: "P2" },
1517
+ { type: "mission.goal.linked", domain: "missions", aggregateType: "mission", phase: "P2", child: "goal" },
1518
+ { type: "mission.goal.unlinked", domain: "missions", aggregateType: "mission", phase: "P2", child: "goal" },
1519
+ { type: "mission.work.linked", domain: "missions", aggregateType: "mission", phase: "P2", child: "work" },
1520
+ { type: "mission.work.unlinked", domain: "missions", aggregateType: "mission", phase: "P2", child: "work" },
1521
+ { type: "goal.created", domain: "goals", aggregateType: "goal", phase: "P2" },
1522
+ { type: "goal.updated", domain: "goals", aggregateType: "goal", phase: "P2" },
1523
+ { type: "goal.status_changed", domain: "goals", aggregateType: "goal", phase: "P2" },
1524
+ { type: "goal.archived", domain: "goals", aggregateType: "goal", phase: "P2" },
1525
+ { type: "goal.unarchived", domain: "goals", aggregateType: "goal", phase: "P2" },
1526
+ { type: "goal.deleted", domain: "goals", aggregateType: "goal", phase: "P2" },
1527
+ { type: "goal.progress_changed", domain: "goals", aggregateType: "goal", phase: "P2" },
1528
+ { type: "idea.created", domain: "ideas", aggregateType: "idea", phase: "P2" },
1529
+ { type: "idea.updated", domain: "ideas", aggregateType: "idea", phase: "P2" },
1530
+ { type: "idea.status_changed", domain: "ideas", aggregateType: "idea", phase: "P2" },
1531
+ { type: "idea.deleted", domain: "ideas", aggregateType: "idea", phase: "P2" },
1532
+ { type: "task.created", domain: "tasks", aggregateType: "task", phase: "P1" },
1533
+ { type: "task.updated", domain: "tasks", aggregateType: "task", phase: "P1" },
1534
+ { type: "task.transitioned", domain: "tasks", aggregateType: "task", phase: "P1" },
1535
+ { type: "task.deleted", domain: "tasks", aggregateType: "task", phase: "P1" },
1536
+ { type: "task.assignee.added", domain: "tasks", aggregateType: "task", phase: "P1", child: "assignee" },
1537
+ { type: "task.assignee.removed", domain: "tasks", aggregateType: "task", phase: "P1", child: "assignee" },
1538
+ { type: "task.watcher.added", domain: "tasks", aggregateType: "task", phase: "P1", child: "watcher" },
1539
+ { type: "task.watcher.removed", domain: "tasks", aggregateType: "task", phase: "P1", child: "watcher" },
1540
+ { type: "task.block.added", domain: "tasks", aggregateType: "task", phase: "P1", child: "block" },
1541
+ { type: "task.block.removed", domain: "tasks", aggregateType: "task", phase: "P1", child: "block" },
1542
+ { type: "task.relation.added", domain: "tasks", aggregateType: "task", phase: "P1", child: "relation" },
1543
+ { type: "task.relation.removed", domain: "tasks", aggregateType: "task", phase: "P1", child: "relation" },
1544
+ { type: "task.comment.created", domain: "tasks", aggregateType: "task", phase: "P1", child: "comment" },
1545
+ { type: "task.comment.updated", domain: "tasks", aggregateType: "task", phase: "P1", child: "comment" },
1546
+ { type: "task.comment.deleted", domain: "tasks", aggregateType: "task", phase: "P1", child: "comment" },
1547
+ { type: "task.attachment.added", domain: "tasks", aggregateType: "task", phase: "P3", child: "attachment" },
1548
+ { type: "task.attachment.removed", domain: "tasks", aggregateType: "task", phase: "P3", child: "attachment" },
1549
+ { type: "task.runtime_updated", domain: "tasks", aggregateType: "task", phase: "P1", optIn: true },
1550
+ { type: "inbox.item.created", domain: "inbox", aggregateType: "inbox_item", phase: "P3" },
1551
+ { type: "inbox.item.answered", domain: "inbox", aggregateType: "inbox_item", phase: "P3" },
1552
+ { type: "inbox.item.state_changed", domain: "inbox", aggregateType: "inbox_item", phase: "P3" },
1553
+ { type: "inbox.item.deleted", domain: "inbox", aggregateType: "inbox_item", phase: "P3" },
1554
+ { type: "kb.document.created", domain: "kb", aggregateType: "kb_document", phase: "P3" },
1555
+ { type: "kb.document.updated", domain: "kb", aggregateType: "kb_document", phase: "P3" },
1556
+ { type: "kb.document.moved", domain: "kb", aggregateType: "kb_document", phase: "P3" },
1557
+ { type: "kb.document.archived", domain: "kb", aggregateType: "kb_document", phase: "P3" },
1558
+ { type: "kb.document.unarchived", domain: "kb", aggregateType: "kb_document", phase: "P3" },
1559
+ { type: "kb.document.deleted", domain: "kb", aggregateType: "kb_document", phase: "P3" },
1560
+ { type: "kb.document.review_changed", domain: "kb", aggregateType: "kb_document", phase: "P3" },
1561
+ { type: "kb.folder.created", domain: "kb", aggregateType: "kb_folder", phase: "P3" },
1562
+ { type: "kb.folder.updated", domain: "kb", aggregateType: "kb_folder", phase: "P3" },
1563
+ { type: "kb.folder.deleted", domain: "kb", aggregateType: "kb_folder", phase: "P3" },
1564
+ { type: "email.message.received", domain: "email", aggregateType: "email_message", phase: "P4" },
1565
+ { type: "email.message.sent", domain: "email", aggregateType: "email_message", phase: "P4" },
1566
+ { type: "email.message.status_changed", domain: "email", aggregateType: "email_message", phase: "P4" },
1567
+ { type: "task.visibility_changed", domain: "visibility", aggregateType: "task", phase: "P1" },
1568
+ { type: "agent.visibility_changed", domain: "visibility", aggregateType: "agent", phase: "P1" },
1569
+ { type: "goal.visibility_changed", domain: "visibility", aggregateType: "goal", phase: "P2" },
1570
+ { type: "mission.visibility_changed", domain: "visibility", aggregateType: "mission", phase: "P2" },
1571
+ { type: "idea.visibility_changed", domain: "visibility", aggregateType: "idea", phase: "P2" }
1572
+ ];
1573
+ var DOMAIN_EVENT_TYPES = DOMAIN_EVENT_CATALOG.map((entry) => entry.type);
1574
+ var CATALOG_BY_TYPE = new Map(
1575
+ DOMAIN_EVENT_CATALOG.map((entry) => [entry.type, entry])
1576
+ );
1577
+ var RECIPIENT_SCOPED_EVENT_DOMAINS = {
1578
+ inbox: "inbox:read",
1579
+ email: "email:read"
1580
+ };
1581
+ var RECIPIENT_EVENT_SCOPES = Object.values(RECIPIENT_SCOPED_EVENT_DOMAINS);
1582
+ var INTEGRATION_SCOPES = [
1583
+ "org:read",
1584
+ "org:write",
1585
+ "members:read",
1586
+ "members:write",
1587
+ "agents:read",
1588
+ "teams:read",
1589
+ "teams:write",
1590
+ "works:read",
1591
+ "works:write",
1592
+ "missions:read",
1593
+ "missions:write",
1594
+ "goals:read",
1595
+ "goals:write",
1596
+ "ideas:read",
1597
+ "ideas:write",
1598
+ "tasks:read",
1599
+ "tasks:write",
1600
+ "inbox:read",
1601
+ "inbox:write",
1602
+ "kb:read",
1603
+ "kb:write",
1604
+ "email:read",
1605
+ "email:write",
1606
+ "events:read",
1607
+ "webhooks:manage",
1608
+ "links:write"
1609
+ ];
1610
+ var INTEGRATION_OPT_IN_SCOPES = ["org:write", "email:write"];
1611
+ var EVER_GAUZY_PRESET_SCOPES = INTEGRATION_SCOPES.filter(
1612
+ (scope) => !INTEGRATION_OPT_IN_SCOPES.includes(scope)
1613
+ );
1464
1614
 
1465
1615
  // ../../plugin/dist/index.js
1466
1616
  var DEFAULT_DIFF_MAX_BYTES = 256 * 1024;
@@ -1607,7 +1757,14 @@ var PLUGIN_CAPABILITIES = {
1607
1757
  // new category: the tier's plugin is a `deployment` plugin, so
1608
1758
  // `PLUGIN_CATEGORIES` is untouched and every exhaustive map over it in
1609
1759
  // `apps/web` stays total.
1610
- APPS_TIER: "apps-tier"
1760
+ APPS_TIER: "apps-tier",
1761
+ // Domain events (EW-P1-1) — plugins that follow the durable domain event
1762
+ // outbox (`task.updated`, `team.member.added`, …) through the relay, at
1763
+ // least once, with a per-plugin cursor. See
1764
+ // `capabilities/domain-event-subscriber.interface.ts`. Appended last, so
1765
+ // every existing constant keeps its value and its position; no category is
1766
+ // added (a subscriber plugin keeps the category of what it otherwise is).
1767
+ DOMAIN_EVENT_SUBSCRIBER: "domain-event-subscriber"
1611
1768
  };
1612
1769
  var ALL_PLUGIN_CAPABILITIES = Object.values(PLUGIN_CAPABILITIES);
1613
1770
  var ITEM_SCHEMA_PROMPT_TEXT = `
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ever-works/composio-plugin",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "description": "Composio Integration Plugin - Brokers OAuth and tool execution across 500+ apps via composio.dev",
5
5
  "author": {
6
6
  "name": "Ever Co. LTD",
@@ -36,14 +36,14 @@
36
36
  "@composio/core": "^0.10.0"
37
37
  },
38
38
  "peerDependencies": {
39
- "@ever-works/plugin": "^1.2.4"
39
+ "@ever-works/plugin": "^1.2.5"
40
40
  },
41
41
  "devDependencies": {
42
- "@ever-works/plugin": "^1.2.4",
42
+ "@ever-works/plugin": "^1.2.5",
43
43
  "@types/node": "^26.6.4",
44
44
  "tsup": "^8.0.0",
45
45
  "typescript": "^5.9.3",
46
- "vitest": "^4.1.0"
46
+ "vitest": "^5.0.5"
47
47
  },
48
48
  "everworks": {
49
49
  "plugin": {
@@ -80,8 +80,8 @@
80
80
  "url": "https://github.com/ever-works/ever-works/issues"
81
81
  },
82
82
  "everworksRelease": {
83
- "contentHash": "sha256:7f31786d4669bbeb83fd64710236987ef519ad68d370c07618db5d6bb6b8b6ba",
84
- "commit": "61b8320b4ad7d30bf5161acf7ee13b250a6172b9",
85
- "source": "https://github.com/ever-works/ever-works/tree/61b8320b4ad7d30bf5161acf7ee13b250a6172b9/packages/plugins/composio"
83
+ "contentHash": "sha256:2dc07587a544b6e98cfeac6ec3dcd3d1993ebdeaea53a5c42f538449f2894dd8",
84
+ "commit": "19905c70cf05be3bc523db030597046067cd322a",
85
+ "source": "https://github.com/ever-works/ever-works/tree/19905c70cf05be3bc523db030597046067cd322a/packages/plugins/composio"
86
86
  }
87
87
  }