@rudderhq/server 0.4.2-canary.0 → 0.4.2-canary.2

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 (144) hide show
  1. package/dist/bundled-plugins/plugin-linear/dist/worker.js +48 -3
  2. package/dist/bundled-plugins/plugin-linear/dist/worker.js.map +3 -3
  3. package/dist/routes/agents.d.ts.map +1 -1
  4. package/dist/routes/agents.js +81 -1
  5. package/dist/routes/agents.js.map +1 -1
  6. package/dist/routes/chats.stream-routes.d.ts.map +1 -1
  7. package/dist/routes/chats.stream-routes.js +10 -1
  8. package/dist/routes/chats.stream-routes.js.map +1 -1
  9. package/dist/routes/onboarding.d.ts.map +1 -1
  10. package/dist/routes/onboarding.js +138 -0
  11. package/dist/routes/onboarding.js.map +1 -1
  12. package/dist/services/access.d.ts +1 -1
  13. package/dist/services/activity.d.ts +10 -10
  14. package/dist/services/agent-run-context.d.ts.map +1 -1
  15. package/dist/services/agent-run-context.js +31 -2
  16. package/dist/services/agent-run-context.js.map +1 -1
  17. package/dist/services/agents.d.ts +3 -3
  18. package/dist/services/assets.d.ts +2 -2
  19. package/dist/services/automation-chat-output.d.ts +2 -2
  20. package/dist/services/automations.d.ts +2 -2
  21. package/dist/services/board-auth.d.ts +2 -2
  22. package/dist/services/calendar.d.ts +4 -4
  23. package/dist/services/chat-assistant.d.ts.map +1 -1
  24. package/dist/services/chat-assistant.helpers.d.ts +7 -0
  25. package/dist/services/chat-assistant.helpers.d.ts.map +1 -1
  26. package/dist/services/chat-assistant.helpers.js +56 -11
  27. package/dist/services/chat-assistant.helpers.js.map +1 -1
  28. package/dist/services/chat-assistant.js +18 -4
  29. package/dist/services/chat-assistant.js.map +1 -1
  30. package/dist/services/chats.d.ts +16 -16
  31. package/dist/services/chats.d.ts.map +1 -1
  32. package/dist/services/chats.js +1 -1
  33. package/dist/services/chats.js.map +1 -1
  34. package/dist/services/costs.d.ts +1 -1
  35. package/dist/services/finance.d.ts +4 -4
  36. package/dist/services/goals.d.ts +12 -12
  37. package/dist/services/index.d.ts +1 -0
  38. package/dist/services/index.d.ts.map +1 -1
  39. package/dist/services/index.js +1 -0
  40. package/dist/services/index.js.map +1 -1
  41. package/dist/services/integrations/agent-integrations.d.ts +10 -10
  42. package/dist/services/integrations/custom-integrations.d.ts +46 -0
  43. package/dist/services/integrations/custom-integrations.d.ts.map +1 -0
  44. package/dist/services/integrations/custom-integrations.js +397 -0
  45. package/dist/services/integrations/custom-integrations.js.map +1 -0
  46. package/dist/services/integrations/feishu/inbound-dispatcher.d.ts.map +1 -1
  47. package/dist/services/integrations/feishu/inbound-dispatcher.js +13 -2
  48. package/dist/services/integrations/feishu/inbound-dispatcher.js.map +1 -1
  49. package/dist/services/integrations/feishu/runtime.d.ts.map +1 -1
  50. package/dist/services/integrations/feishu/runtime.js +101 -45
  51. package/dist/services/integrations/feishu/runtime.js.map +1 -1
  52. package/dist/services/integrations/feishu/user-bindings.d.ts +1 -1
  53. package/dist/services/issue-review-wakeup.d.ts +3 -3
  54. package/dist/services/orgs.d.ts +1 -1
  55. package/dist/services/plugin-registry.d.ts +17 -17
  56. package/dist/services/projects.d.ts +1 -1
  57. package/dist/services/runtime-kernel/heartbeat.d.ts +6 -6
  58. package/dist/services/runtime-kernel/heartbeat.sessions.d.ts +1 -1
  59. package/dist/services/secrets.d.ts +15 -15
  60. package/dist/services/workspace-runtime.services.d.ts +2 -2
  61. package/package.json +13 -13
  62. package/resources/bundled-skills/rudder/SKILL.md +5 -4
  63. package/resources/bundled-skills/rudder/references/cli-reference.md +73 -72
  64. package/skills/rudder/SKILL.md +5 -4
  65. package/skills/rudder/references/cli-reference.md +73 -72
  66. package/ui-dist/assets/{_basePickBy-RX5N2cj2.js → _basePickBy-D36R7lCM.js} +1 -1
  67. package/ui-dist/assets/{_baseUniq-Br4fg1iw.js → _baseUniq-CDbk2EfG.js} +1 -1
  68. package/ui-dist/assets/{arc-B8svvCeo.js → arc-PuIVeL2L.js} +1 -1
  69. package/ui-dist/assets/{architectureDiagram-2XIMDMQ5-C5dYOfG1.js → architectureDiagram-2XIMDMQ5-Dpbs3CcL.js} +1 -1
  70. package/ui-dist/assets/{blockDiagram-WCTKOSBZ-B6XhVXfw.js → blockDiagram-WCTKOSBZ-U4sl9IrM.js} +1 -1
  71. package/ui-dist/assets/{c4Diagram-IC4MRINW-D31WV7FX.js → c4Diagram-IC4MRINW-B9ajWZO7.js} +1 -1
  72. package/ui-dist/assets/channel-XkUqsYSr.js +1 -0
  73. package/ui-dist/assets/{chunk-4BX2VUAB-CxoBpj5-.js → chunk-4BX2VUAB-C4vMxZfk.js} +1 -1
  74. package/ui-dist/assets/{chunk-55IACEB6-kF3-cxbP.js → chunk-55IACEB6-Cy_Lk5qB.js} +1 -1
  75. package/ui-dist/assets/{chunk-FMBD7UC4-CmnJkmf-.js → chunk-FMBD7UC4-CXNSGkmm.js} +1 -1
  76. package/ui-dist/assets/{chunk-JSJVCQXG-U_rZ0R1l.js → chunk-JSJVCQXG-B-CG3Z7T.js} +1 -1
  77. package/ui-dist/assets/{chunk-KX2RTZJC-DB5h51jY.js → chunk-KX2RTZJC-5HdmRs6h.js} +1 -1
  78. package/ui-dist/assets/{chunk-NQ4KR5QH-D00Zb66Y.js → chunk-NQ4KR5QH-D-1z-FdA.js} +1 -1
  79. package/ui-dist/assets/{chunk-QZHKN3VN-CZOQzYse.js → chunk-QZHKN3VN-CY3Bu_Gm.js} +1 -1
  80. package/ui-dist/assets/{chunk-WL4C6EOR-CiFO_DRi.js → chunk-WL4C6EOR-Dc9pfbbl.js} +1 -1
  81. package/ui-dist/assets/classDiagram-VBA2DB6C-DFbVSibj.js +1 -0
  82. package/ui-dist/assets/classDiagram-v2-RAHNMMFH-DFbVSibj.js +1 -0
  83. package/ui-dist/assets/clone-CXlxd2Cd.js +1 -0
  84. package/ui-dist/assets/{cose-bilkent-S5V4N54A-BvkdnfgN.js → cose-bilkent-S5V4N54A-B9zmJaNz.js} +1 -1
  85. package/ui-dist/assets/{dagre-KLK3FWXG-DcTva6B8.js → dagre-KLK3FWXG-DNxnA4ng.js} +1 -1
  86. package/ui-dist/assets/{diagram-E7M64L7V-sXDqPfE1.js → diagram-E7M64L7V-Btkn-jPO.js} +1 -1
  87. package/ui-dist/assets/{diagram-IFDJBPK2-BVBaBBbz.js → diagram-IFDJBPK2-Cu8VMI3x.js} +1 -1
  88. package/ui-dist/assets/{diagram-P4PSJMXO-cjQe9ndf.js → diagram-P4PSJMXO-CTo-U8dL.js} +1 -1
  89. package/ui-dist/assets/{erDiagram-INFDFZHY-CFGKze0m.js → erDiagram-INFDFZHY-Bt03USCb.js} +1 -1
  90. package/ui-dist/assets/{flowDiagram-PKNHOUZH-D7oV-h10.js → flowDiagram-PKNHOUZH-BP5bHelq.js} +1 -1
  91. package/ui-dist/assets/{ganttDiagram-A5KZAMGK-Rdv3FkwM.js → ganttDiagram-A5KZAMGK-BZFE8lFv.js} +1 -1
  92. package/ui-dist/assets/{gitGraphDiagram-K3NZZRJ6-BejgDMgO.js → gitGraphDiagram-K3NZZRJ6-DuMKb_1b.js} +1 -1
  93. package/ui-dist/assets/{graph-FYmROErt.js → graph-1sbiP2ir.js} +1 -1
  94. package/ui-dist/assets/{index-BArpEgpP.js → index--kF_V3iA.js} +1 -1
  95. package/ui-dist/assets/{index-hUcZY0te.js → index-4Ko8WWCi.js} +1 -1
  96. package/ui-dist/assets/{index-DDHYeuwy.js → index-B858e1rL.js} +1 -1
  97. package/ui-dist/assets/{index-DWxCltvd.js → index-BBDxEdvP.js} +1 -1
  98. package/ui-dist/assets/{index-BXKKdE9_.js → index-Be2tZxXv.js} +1 -1
  99. package/ui-dist/assets/{index-CaLoiEJB.js → index-Bi4QEyt8.js} +1 -1
  100. package/ui-dist/assets/{index-DUeBWXLE.js → index-Byo_Q_UD.js} +1 -1
  101. package/ui-dist/assets/{index-DYYXNc6j.js → index-C-Hx82lR.js} +1 -1
  102. package/ui-dist/assets/{index-BipRYXd-.js → index-CNvaLNWf.js} +1 -1
  103. package/ui-dist/assets/{index-DaNviTjf.js → index-CgRU4_Qv.js} +1 -1
  104. package/ui-dist/assets/{index-CWj4VVKu.js → index-D2aVfGVC.js} +1 -1
  105. package/ui-dist/assets/{index-uraSHmk-.js → index-D9acFwL3.js} +1 -1
  106. package/ui-dist/assets/{index-4AkwW8qm.js → index-DMizeOHD.js} +1 -1
  107. package/ui-dist/assets/{index-BeEzPu0t.js → index-DMpqsr2d.js} +1 -1
  108. package/ui-dist/assets/{index-c9oJP_Zz.js → index-DSRNx4SJ.js} +1 -1
  109. package/ui-dist/assets/{index-CEvBo8i0.js → index-DzPG15y2.js} +449 -444
  110. package/ui-dist/assets/{index-DSnSYKAK.js → index-OS7CrVxf.js} +1 -1
  111. package/ui-dist/assets/index-SDRiEk12.css +1 -0
  112. package/ui-dist/assets/{index-ul4vjkem.js → index-TA0zxqE5.js} +1 -1
  113. package/ui-dist/assets/{infoDiagram-LFFYTUFH-D6ROD6kG.js → infoDiagram-LFFYTUFH-D_hBPmRp.js} +1 -1
  114. package/ui-dist/assets/{ishikawaDiagram-PHBUUO56-DcVc0cdJ.js → ishikawaDiagram-PHBUUO56-n4YW9t0A.js} +1 -1
  115. package/ui-dist/assets/{journeyDiagram-4ABVD52K-BRufUm59.js → journeyDiagram-4ABVD52K-DFfG_w9s.js} +1 -1
  116. package/ui-dist/assets/{kanban-definition-K7BYSVSG-DEQ5w7B0.js → kanban-definition-K7BYSVSG-C3eqMEyS.js} +1 -1
  117. package/ui-dist/assets/{layout-F5Axhkca.js → layout-JQhsde_X.js} +1 -1
  118. package/ui-dist/assets/{linear-BllnS5sO.js → linear-CWzBfGIS.js} +1 -1
  119. package/ui-dist/assets/{mermaid.core-CK8iLvY2.js → mermaid.core-BXMH5ggS.js} +4 -4
  120. package/ui-dist/assets/{mindmap-definition-YRQLILUH-CXI6vt68.js → mindmap-definition-YRQLILUH-CBDz1um1.js} +1 -1
  121. package/ui-dist/assets/{pieDiagram-SKSYHLDU-DDUy_f_g.js → pieDiagram-SKSYHLDU-CxqiwMgz.js} +1 -1
  122. package/ui-dist/assets/{quadrantDiagram-337W2JSQ-Cpns5Yb1.js → quadrantDiagram-337W2JSQ-DG0cr7NO.js} +1 -1
  123. package/ui-dist/assets/{requirementDiagram-Z7DCOOCP-6p6V6XH6.js → requirementDiagram-Z7DCOOCP-ZwKR5MXw.js} +1 -1
  124. package/ui-dist/assets/{sankeyDiagram-WA2Y5GQK-C52tgQmQ.js → sankeyDiagram-WA2Y5GQK-DqvzuGLX.js} +1 -1
  125. package/ui-dist/assets/{sequenceDiagram-2WXFIKYE-CxlW_veo.js → sequenceDiagram-2WXFIKYE-DudiWeJe.js} +1 -1
  126. package/ui-dist/assets/{stateDiagram-RAJIS63D-NFOjAzLj.js → stateDiagram-RAJIS63D-BQsJce3e.js} +1 -1
  127. package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-B-TTX9ts.js +1 -0
  128. package/ui-dist/assets/{timeline-definition-YZTLITO2-DvENY4C6.js → timeline-definition-YZTLITO2-DZ5LazEJ.js} +1 -1
  129. package/ui-dist/assets/{treemap-KZPCXAKY-BJfIPF5s.js → treemap-KZPCXAKY-CW_XmQMY.js} +1 -1
  130. package/ui-dist/assets/{vennDiagram-LZ73GAT5-DmGW-P4z.js → vennDiagram-LZ73GAT5-eu3fZhWQ.js} +1 -1
  131. package/ui-dist/assets/{xychartDiagram-JWTSCODW-bbLe3hqw.js → xychartDiagram-JWTSCODW-BLDFpHrj.js} +1 -1
  132. package/ui-dist/brands/github-logo.svg +1 -0
  133. package/ui-dist/brands/gmail-logo.svg +1 -0
  134. package/ui-dist/brands/google-calendar-logo.svg +1 -0
  135. package/ui-dist/brands/google-drive-logo.svg +1 -0
  136. package/ui-dist/brands/linear-logo.svg +1 -0
  137. package/ui-dist/brands/notion-logo.svg +1 -0
  138. package/ui-dist/index.html +43 -6
  139. package/ui-dist/assets/channel-BD332hbj.js +0 -1
  140. package/ui-dist/assets/classDiagram-VBA2DB6C-BJA0edKB.js +0 -1
  141. package/ui-dist/assets/classDiagram-v2-RAHNMMFH-BJA0edKB.js +0 -1
  142. package/ui-dist/assets/clone-BXc7Yvje.js +0 -1
  143. package/ui-dist/assets/index-BPlr2F3e.css +0 -1
  144. package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-DblG-d9U.js +0 -1
@@ -246,8 +246,8 @@ export declare function pluginRegistryService(db: Db): {
246
246
  }, "single", Record<"plugins", "not-null">, false, "orderBy", {
247
247
  id: string;
248
248
  status: "disabled" | "error" | "installed" | "ready" | "upgrade_pending" | "uninstalled";
249
- installedAt: Date;
250
249
  updatedAt: Date;
250
+ installedAt: Date;
251
251
  version: string;
252
252
  apiVersion: number;
253
253
  categories: ("automation" | "connector" | "workspace" | "ui")[];
@@ -721,8 +721,8 @@ export declare function pluginRegistryService(db: Db): {
721
721
  }, "single", Record<"plugins", "not-null">, false, "where" | "orderBy", {
722
722
  id: string;
723
723
  status: "disabled" | "error" | "installed" | "ready" | "upgrade_pending" | "uninstalled";
724
- installedAt: Date;
725
724
  updatedAt: Date;
725
+ installedAt: Date;
726
726
  version: string;
727
727
  apiVersion: number;
728
728
  categories: ("automation" | "connector" | "workspace" | "ui")[];
@@ -1193,8 +1193,8 @@ export declare function pluginRegistryService(db: Db): {
1193
1193
  }, "single", Record<"plugins", "not-null">, false, "where" | "orderBy", {
1194
1194
  id: string;
1195
1195
  status: "disabled" | "error" | "installed" | "ready" | "upgrade_pending" | "uninstalled";
1196
- installedAt: Date;
1197
1196
  updatedAt: Date;
1197
+ installedAt: Date;
1198
1198
  version: string;
1199
1199
  apiVersion: number;
1200
1200
  categories: ("automation" | "connector" | "workspace" | "ui")[];
@@ -1437,8 +1437,8 @@ export declare function pluginRegistryService(db: Db): {
1437
1437
  getById: (id: string) => Promise<{
1438
1438
  id: string;
1439
1439
  status: "disabled" | "error" | "installed" | "ready" | "upgrade_pending" | "uninstalled";
1440
- installedAt: Date;
1441
1440
  updatedAt: Date;
1441
+ installedAt: Date;
1442
1442
  version: string;
1443
1443
  apiVersion: number;
1444
1444
  categories: ("automation" | "connector" | "workspace" | "ui")[];
@@ -1453,8 +1453,8 @@ export declare function pluginRegistryService(db: Db): {
1453
1453
  getByKey: (pluginKey: string) => Promise<{
1454
1454
  id: string;
1455
1455
  status: "disabled" | "error" | "installed" | "ready" | "upgrade_pending" | "uninstalled";
1456
- installedAt: Date;
1457
1456
  updatedAt: Date;
1457
+ installedAt: Date;
1458
1458
  version: string;
1459
1459
  apiVersion: number;
1460
1460
  categories: ("automation" | "connector" | "workspace" | "ui")[];
@@ -1475,8 +1475,8 @@ export declare function pluginRegistryService(db: Db): {
1475
1475
  install: (input: InstallPlugin, manifest: PaperclipPluginManifestV1) => Promise<{
1476
1476
  id: string;
1477
1477
  status: "disabled" | "error" | "installed" | "ready" | "upgrade_pending" | "uninstalled";
1478
- installedAt: Date;
1479
1478
  updatedAt: Date;
1479
+ installedAt: Date;
1480
1480
  version: string;
1481
1481
  apiVersion: number;
1482
1482
  categories: ("automation" | "connector" | "workspace" | "ui")[];
@@ -1536,8 +1536,8 @@ export declare function pluginRegistryService(db: Db): {
1536
1536
  uninstall: (id: string, removeData?: boolean) => Promise<{
1537
1537
  id: string;
1538
1538
  status: "disabled" | "error" | "installed" | "ready" | "upgrade_pending" | "uninstalled";
1539
- installedAt: Date;
1540
1539
  updatedAt: Date;
1540
+ installedAt: Date;
1541
1541
  version: string;
1542
1542
  apiVersion: number;
1543
1543
  categories: ("automation" | "connector" | "workspace" | "ui")[];
@@ -1667,7 +1667,7 @@ export declare function pluginRegistryService(db: Db): {
1667
1667
  tableName: "plugin_entities";
1668
1668
  dataType: "string";
1669
1669
  columnType: "PgText";
1670
- data: "issue" | "agent" | "project" | "organization" | "goal" | "run" | "instance" | "project_workspace";
1670
+ data: "issue" | "organization" | "agent" | "project" | "goal" | "run" | "instance" | "project_workspace";
1671
1671
  driverParam: string;
1672
1672
  notNull: true;
1673
1673
  hasDefault: false;
@@ -1679,7 +1679,7 @@ export declare function pluginRegistryService(db: Db): {
1679
1679
  identity: undefined;
1680
1680
  generated: undefined;
1681
1681
  }, {}, {
1682
- $type: "issue" | "agent" | "project" | "organization" | "goal" | "run" | "instance" | "project_workspace";
1682
+ $type: "issue" | "organization" | "agent" | "project" | "goal" | "run" | "instance" | "project_workspace";
1683
1683
  }>;
1684
1684
  scopeId: import("drizzle-orm/pg-core").PgColumn<{
1685
1685
  name: "scope_id";
@@ -1812,7 +1812,7 @@ export declare function pluginRegistryService(db: Db): {
1812
1812
  entityType: string;
1813
1813
  data: Record<string, unknown>;
1814
1814
  externalId: string | null;
1815
- scopeKind: "issue" | "agent" | "project" | "organization" | "goal" | "run" | "instance" | "project_workspace";
1815
+ scopeKind: "issue" | "organization" | "agent" | "project" | "goal" | "run" | "instance" | "project_workspace";
1816
1816
  pluginId: string;
1817
1817
  }[], {
1818
1818
  id: import("drizzle-orm/pg-core").PgColumn<{
@@ -1871,7 +1871,7 @@ export declare function pluginRegistryService(db: Db): {
1871
1871
  tableName: "plugin_entities";
1872
1872
  dataType: "string";
1873
1873
  columnType: "PgText";
1874
- data: "issue" | "agent" | "project" | "organization" | "goal" | "run" | "instance" | "project_workspace";
1874
+ data: "issue" | "organization" | "agent" | "project" | "goal" | "run" | "instance" | "project_workspace";
1875
1875
  driverParam: string;
1876
1876
  notNull: true;
1877
1877
  hasDefault: false;
@@ -1883,7 +1883,7 @@ export declare function pluginRegistryService(db: Db): {
1883
1883
  identity: undefined;
1884
1884
  generated: undefined;
1885
1885
  }, {}, {
1886
- $type: "issue" | "agent" | "project" | "organization" | "goal" | "run" | "instance" | "project_workspace";
1886
+ $type: "issue" | "organization" | "agent" | "project" | "goal" | "run" | "instance" | "project_workspace";
1887
1887
  }>;
1888
1888
  scopeId: import("drizzle-orm/pg-core").PgColumn<{
1889
1889
  name: "scope_id";
@@ -2025,7 +2025,7 @@ export declare function pluginRegistryService(db: Db): {
2025
2025
  entityType: string;
2026
2026
  data: Record<string, unknown>;
2027
2027
  externalId: string | null;
2028
- scopeKind: "issue" | "agent" | "project" | "organization" | "goal" | "run" | "instance" | "project_workspace";
2028
+ scopeKind: "issue" | "organization" | "agent" | "project" | "goal" | "run" | "instance" | "project_workspace";
2029
2029
  pluginId: string;
2030
2030
  }>;
2031
2031
  /**
@@ -2046,7 +2046,7 @@ export declare function pluginRegistryService(db: Db): {
2046
2046
  entityType: string;
2047
2047
  data: Record<string, unknown>;
2048
2048
  externalId: string | null;
2049
- scopeKind: "issue" | "agent" | "project" | "organization" | "goal" | "run" | "instance" | "project_workspace";
2049
+ scopeKind: "issue" | "organization" | "agent" | "project" | "goal" | "run" | "instance" | "project_workspace";
2050
2050
  pluginId: string;
2051
2051
  }>;
2052
2052
  /**
@@ -2065,7 +2065,7 @@ export declare function pluginRegistryService(db: Db): {
2065
2065
  entityType: string;
2066
2066
  data: Record<string, unknown>;
2067
2067
  externalId: string | null;
2068
- scopeKind: "issue" | "agent" | "project" | "organization" | "goal" | "run" | "instance" | "project_workspace";
2068
+ scopeKind: "issue" | "organization" | "agent" | "project" | "goal" | "run" | "instance" | "project_workspace";
2069
2069
  pluginId: string;
2070
2070
  }>;
2071
2071
  /**
@@ -2500,7 +2500,7 @@ export declare function pluginRegistryService(db: Db): {
2500
2500
  }) => Promise<{
2501
2501
  error: string | null;
2502
2502
  id: string;
2503
- status: "pending" | "failed" | "success";
2503
+ status: "pending" | "success" | "failed";
2504
2504
  createdAt: Date;
2505
2505
  startedAt: Date | null;
2506
2506
  payload: Record<string, unknown>;
@@ -2529,7 +2529,7 @@ export declare function pluginRegistryService(db: Db): {
2529
2529
  pluginId: string;
2530
2530
  webhookKey: string;
2531
2531
  externalId: string | null;
2532
- status: "pending" | "failed" | "success";
2532
+ status: "pending" | "success" | "failed";
2533
2533
  durationMs: number | null;
2534
2534
  error: string | null;
2535
2535
  payload: Record<string, unknown>;
@@ -56,11 +56,11 @@ export declare function projectService(db: Db): {
56
56
  urlKey: string;
57
57
  id: string;
58
58
  orgId: string;
59
+ description: string | null;
59
60
  status: string;
60
61
  createdAt: Date;
61
62
  updatedAt: Date;
62
63
  name: string;
63
- description: string | null;
64
64
  goalId: string | null;
65
65
  targetDate: string | null;
66
66
  color: string | null;
@@ -58,10 +58,10 @@ export declare function heartbeatService(db: Db): {
58
58
  wakeupRequestId: string | null;
59
59
  id: string;
60
60
  orgId: string;
61
- agentId: string;
62
61
  status: string;
63
62
  createdAt: Date;
64
63
  updatedAt: Date;
64
+ agentId: string;
65
65
  startedAt: Date | null;
66
66
  triggerDetail: string | null;
67
67
  chatConversationId: string | null;
@@ -92,9 +92,9 @@ export declare function heartbeatService(db: Db): {
92
92
  sessionDisplayId: string | null;
93
93
  sessionParamsJson: Record<string, unknown> | null;
94
94
  orgId: string;
95
- agentId: string;
96
95
  createdAt: Date;
97
96
  updatedAt: Date;
97
+ agentId: string;
98
98
  agentRuntimeType: string;
99
99
  lastError: string | null;
100
100
  sessionId: string | null;
@@ -109,9 +109,9 @@ export declare function heartbeatService(db: Db): {
109
109
  listTaskSessions: (agentId: string) => Promise<{
110
110
  id: string;
111
111
  orgId: string;
112
- agentId: string;
113
112
  createdAt: Date;
114
113
  updatedAt: Date;
114
+ agentId: string;
115
115
  agentRuntimeType: string;
116
116
  taskKey: string;
117
117
  lastError: string | null;
@@ -351,12 +351,12 @@ export declare function heartbeatService(db: Db): {
351
351
  message: string | null;
352
352
  id: number;
353
353
  orgId: string;
354
- agentId: string;
355
354
  createdAt: Date;
355
+ runId: string;
356
+ agentId: string;
356
357
  payload: Record<string, unknown> | null;
357
358
  color: string | null;
358
359
  level: string | null;
359
- runId: string;
360
360
  seq: number;
361
361
  eventType: string;
362
362
  stream: string | null;
@@ -663,10 +663,10 @@ export declare function heartbeatService(db: Db): {
663
663
  wakeupRequestId: string | null;
664
664
  id: string;
665
665
  orgId: string;
666
- agentId: string;
667
666
  status: string;
668
667
  createdAt: Date;
669
668
  updatedAt: Date;
669
+ agentId: string;
670
670
  startedAt: Date | null;
671
671
  triggerDetail: string | null;
672
672
  chatConversationId: string | null;
@@ -66,7 +66,7 @@ export declare function mergeCoalescedContextSnapshot(existingRaw: unknown, inco
66
66
  export declare function issueCommentAuthorKind(comment: {
67
67
  authorAgentId?: string | null;
68
68
  authorUserId?: string | null;
69
- }): "system" | "user" | "agent";
69
+ }): "agent" | "system" | "user";
70
70
  export declare function issueCommentAuthorLabel(comment: {
71
71
  authorAgentId?: string | null;
72
72
  authorUserId?: string | null;
@@ -193,13 +193,13 @@ export declare function secretService(db: Db): {
193
193
  }, "single", Record<"organization_secrets", "not-null">, false, "where" | "orderBy", {
194
194
  id: string;
195
195
  orgId: string;
196
- provider: string;
196
+ description: string | null;
197
197
  createdAt: Date;
198
198
  updatedAt: Date;
199
+ name: string;
200
+ provider: string;
199
201
  createdByAgentId: string | null;
200
202
  createdByUserId: string | null;
201
- name: string;
202
- description: string | null;
203
203
  externalRef: string | null;
204
204
  latestVersion: number;
205
205
  }[], {
@@ -394,26 +394,26 @@ export declare function secretService(db: Db): {
394
394
  getById: (id: string) => Promise<{
395
395
  id: string;
396
396
  orgId: string;
397
- provider: string;
397
+ description: string | null;
398
398
  createdAt: Date;
399
399
  updatedAt: Date;
400
+ name: string;
401
+ provider: string;
400
402
  createdByAgentId: string | null;
401
403
  createdByUserId: string | null;
402
- name: string;
403
- description: string | null;
404
404
  externalRef: string | null;
405
405
  latestVersion: number;
406
406
  }>;
407
407
  getByName: (orgId: string, name: string) => Promise<{
408
408
  id: string;
409
409
  orgId: string;
410
- provider: string;
410
+ description: string | null;
411
411
  createdAt: Date;
412
412
  updatedAt: Date;
413
+ name: string;
414
+ provider: string;
413
415
  createdByAgentId: string | null;
414
416
  createdByUserId: string | null;
415
- name: string;
416
- description: string | null;
417
417
  externalRef: string | null;
418
418
  latestVersion: number;
419
419
  }>;
@@ -430,13 +430,13 @@ export declare function secretService(db: Db): {
430
430
  }) => Promise<{
431
431
  id: string;
432
432
  orgId: string;
433
- provider: string;
433
+ description: string | null;
434
434
  createdAt: Date;
435
435
  updatedAt: Date;
436
+ name: string;
437
+ provider: string;
436
438
  createdByAgentId: string | null;
437
439
  createdByUserId: string | null;
438
- name: string;
439
- description: string | null;
440
440
  externalRef: string | null;
441
441
  latestVersion: number;
442
442
  }>;
@@ -479,13 +479,13 @@ export declare function secretService(db: Db): {
479
479
  remove: (secretId: string) => Promise<{
480
480
  id: string;
481
481
  orgId: string;
482
- provider: string;
482
+ description: string | null;
483
483
  createdAt: Date;
484
484
  updatedAt: Date;
485
+ name: string;
486
+ provider: string;
485
487
  createdByAgentId: string | null;
486
488
  createdByUserId: string | null;
487
- name: string;
488
- description: string | null;
489
489
  externalRef: string | null;
490
490
  latestVersion: number;
491
491
  } | null>;
@@ -100,11 +100,11 @@ export declare function listWorkspaceRuntimeServicesForProjectWorkspaces(db: Db,
100
100
  issueId: string | null;
101
101
  id: string;
102
102
  orgId: string;
103
- provider: string;
103
+ ownerAgentId: string | null;
104
104
  status: string;
105
105
  createdAt: Date;
106
106
  updatedAt: Date;
107
- ownerAgentId: string | null;
107
+ provider: string;
108
108
  projectId: string | null;
109
109
  projectWorkspaceId: string | null;
110
110
  executionWorkspaceId: string | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rudderhq/server",
3
- "version": "0.4.2-canary.0",
3
+ "version": "0.4.2-canary.2",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "homepage": "https://github.com/Undertone0809/rudder",
6
6
  "bugs": {
@@ -54,18 +54,18 @@
54
54
  "@langfuse/tracing": "^5.1.0",
55
55
  "@larksuiteoapi/node-sdk": "1.67.0",
56
56
  "@opentelemetry/sdk-trace-node": "^2.1.0",
57
- "@rudderhq/agent-runtime-claude-local": "0.4.2-canary.0",
58
- "@rudderhq/agent-runtime-codex-local": "0.4.2-canary.0",
59
- "@rudderhq/agent-runtime-cursor-local": "0.4.2-canary.0",
60
- "@rudderhq/agent-runtime-gemini-local": "0.4.2-canary.0",
61
- "@rudderhq/agent-runtime-openclaw-gateway": "0.4.2-canary.0",
62
- "@rudderhq/agent-runtime-opencode-local": "0.4.2-canary.0",
63
- "@rudderhq/agent-runtime-pi-local": "0.4.2-canary.0",
64
- "@rudderhq/agent-runtime-utils": "0.4.2-canary.0",
65
- "@rudderhq/db": "0.4.2-canary.0",
66
- "@rudderhq/plugin-sdk": "0.4.2-canary.0",
67
- "@rudderhq/run-intelligence-core": "0.4.2-canary.0",
68
- "@rudderhq/shared": "0.4.2-canary.0",
57
+ "@rudderhq/agent-runtime-claude-local": "0.4.2-canary.2",
58
+ "@rudderhq/agent-runtime-codex-local": "0.4.2-canary.2",
59
+ "@rudderhq/agent-runtime-cursor-local": "0.4.2-canary.2",
60
+ "@rudderhq/agent-runtime-gemini-local": "0.4.2-canary.2",
61
+ "@rudderhq/agent-runtime-openclaw-gateway": "0.4.2-canary.2",
62
+ "@rudderhq/agent-runtime-opencode-local": "0.4.2-canary.2",
63
+ "@rudderhq/agent-runtime-pi-local": "0.4.2-canary.2",
64
+ "@rudderhq/agent-runtime-utils": "0.4.2-canary.2",
65
+ "@rudderhq/db": "0.4.2-canary.2",
66
+ "@rudderhq/plugin-sdk": "0.4.2-canary.2",
67
+ "@rudderhq/run-intelligence-core": "0.4.2-canary.2",
68
+ "@rudderhq/shared": "0.4.2-canary.2",
69
69
  "ajv": "^8.18.0",
70
70
  "ajv-formats": "^3.0.1",
71
71
  "better-auth": "1.4.18",
@@ -22,11 +22,12 @@ organization-skill operations.
22
22
 
23
23
  ## Control-Plane Interface
24
24
 
25
- - Use `rudder ... --json` for normal control-plane work. CLI output renders IDs as short IDs by default; `rudder runs ...` commands accept short run IDs. Add `--full-ids` only for debugging or compatibility checks that need raw UUIDs.
26
- - Use `rudder agent capabilities --json` when you need machine-readable discovery of supported commands.
27
- - Use `references/cli-reference.md` for the stable command catalog.
25
+ - Prefer first-party Rudder MCP tools for normal control-plane work when the runtime exposes them. Tool names use the stable `rudder_<capability_id>` shape, for example `rudder_issue_checkout`.
26
+ - Use `rudder ... --json` as the compatibility fallback when MCP is unavailable or a Rudder MCP tool returns a transport/configuration error. CLI output renders IDs as short IDs by default; `rudder runs ...` commands accept short run IDs. Add `--full-ids` only for debugging or compatibility checks that need raw UUIDs.
27
+ - Use `rudder agent capabilities --json` when you need machine-readable discovery of supported CLI commands and first-party MCP tools.
28
+ - Use `references/cli-reference.md` for the stable MCP + CLI fallback catalog.
28
29
  - Treat `references/api-reference.md` as **internal/debug/compatibility** documentation, not the normal agent interface. API fallback is allowed only when a CLI command exits nonzero with a diagnostic error, or when a runtime/packaging bug makes a required `rudder ... --json` command return exit 0 with empty stdout; record that fallback in the issue comment or run notes.
29
- - If a remote runtime wake text explicitly says **HTTP compatibility mode**, follow that wake text for that run. Otherwise use the CLI.
30
+ - If a remote runtime wake text explicitly says **HTTP compatibility mode**, follow that wake text for that run. Otherwise use Rudder MCP tools first, then CLI fallback.
30
31
 
31
32
  ## Control-Plane Rails
32
33
 
@@ -1,9 +1,10 @@
1
1
  # Rudder Agent CLI Reference
2
2
 
3
- Stable CLI contract for agents using the bundled `rudder` skill. Prefer these commands over direct `/api` calls.
3
+ Stable compatibility contract for agents using the bundled `rudder` skill. Prefer first-party Rudder MCP tools when the runtime exposes them; use these CLI commands as fallback when MCP is unavailable or a Rudder MCP tool returns a transport/configuration error.
4
4
 
5
5
  ## Defaults
6
6
 
7
+ - First-party MCP tools use the stable `rudder_<capability_id>` naming convention, for example `rudder_issue_checkout` for `issue.checkout`.
7
8
  - All commands support `--json`.
8
9
  - CLI output renders IDs as short IDs by default; `rudder runs ...` commands accept short run IDs. Add `--full-ids` only when a debugging or compatibility workflow needs raw UUIDs.
9
10
  - `--org-id` defaults to `RUDDER_ORG_ID` when relevant.
@@ -18,77 +19,77 @@ Direct API fallback is allowed for heartbeat close-out only when a required CLI
18
19
 
19
20
  ## Agent V1 Commands
20
21
 
21
- | Command | Description | Mutating | Org | Agent | Run ID |
22
- | --- | --- | --- | --- | --- | --- |
23
- | `rudder agent me` | Show the authenticated agent identity, budget, and chain of command. | no | no | no | no |
24
- | `rudder agent inbox` | List the compact assignee and reviewer work inbox for the authenticated agent. | no | no | no | no |
25
- | `rudder agent capabilities` | List the stable Rudder agent command contract. | no | no | no | no |
26
- | `rudder agent update [agent-id] [--title <title>] [--description <text>]` | Update an agent's control-plane identity fields; defaults to the authenticated agent. | yes | no | no | attached when available |
27
- | `rudder agent skills create [agent-id] --name <name> [--enable]` | Create an agent-private skill package under AGENT_HOME/skills. | yes | no | no | attached when available |
28
- | `rudder agent skills enable <agent-id> <selection-ref...>` | Add skill selections to an agent without replacing existing enabled skills. | yes | no | no | attached when available |
29
- | `rudder agent skills sync <agent-id>` | Sync the desired enabled skill set for an agent. | yes | no | no | attached when available |
30
- | `rudder issue get <issue>` | Read a full issue by UUID or identifier. | no | no | no | no |
31
- | `rudder issue search <query> [--org-id <id>]` | Search issues with the server-side issue index across title, identifier, description, and comments. | no | required | no | no |
32
- | `rudder issue context <issue> [--wake-comment-id <comment-id-or-cmt-ref>]` | Read the compact heartbeat context for an issue; wake comments may be addressed by full id or cmt_<uuid-prefix>. | no | no | no | no |
33
- | `rudder issue checkout <issue>` | Atomically checkout an issue for the current or specified agent. | yes | no | required | attached when available |
34
- | `rudder issue comment <issue> --body-file <path> [--image <path>]` | Add a comment to an issue, optionally uploading images and appending Markdown image links. | yes | no | no | attached when available |
35
- | `rudder issue comments list <issue> [--after <comment-id-or-cmt-ref>]` | List issue comments, optionally only newer comments after a full comment id or cmt_<uuid-prefix> with --after. | no | no | no | no |
36
- | `rudder issue comments get <issue> <comment-id-or-cmt-ref>` | Read one issue comment by full id or cmt_<uuid-prefix> scoped to the issue. | no | no | no | no |
37
- | `rudder issue update <issue> ... [--comment-file <path>] [--image <path>]` | Apply generic issue updates when workflow commands are not enough, optionally uploading images for the update comment. | yes | no | no | attached when available |
38
- | `rudder issue review <issue> --decision <decision> --comment-file <path>` | Record a structured reviewer decision with a required comment. | yes | no | no | attached when available |
39
- | `rudder issue commit <issue> --sha <sha> --message <subject>` | Report a code commit created during issue work as structured issue activity. | yes | no | no | attached when available |
40
- | `rudder issue done <issue> --comment-file <path> [--image <path>]` | Mark an issue done with a required completion comment, optionally uploading images. | yes | no | no | attached when available |
41
- | `rudder issue block <issue> --comment-file <path> [--image <path>]` | Mark an issue blocked with a required blocker comment, optionally uploading images. | yes | no | no | attached when available |
42
- | `rudder project list --org-id <id>` | List projects in an organization. | no | required | no | no |
43
- | `rudder project get <project-id-or-shortname> [--org-id <id>]` | Read one project by ID or shortname. | no | no | no | no |
44
- | `rudder project create --org-id <id> --name <name>` | Create a project in the organization. | yes | required | no | attached when available |
45
- | `rudder project update <project-id-or-shortname> [--org-id <id>]` | Update mutable project fields such as name, description, status, goals, lead agent, target date, color, or archivedAt. | yes | no | no | attached when available |
46
- | `rudder user activity --user me --since today --json` | Read a user-centered activity ledger with safe excerpts and provenance across chats, issue comments, approval comments, and user actor activity. | no | required | no | no |
47
- | `rudder library file list [directory]` | List Library files and folders; file rows include `libraryEntryId` when a strong reference can be generated. | no | required | no | no |
48
- | `rudder library file get <path>` | Fallback read when local filesystem access is unavailable; JSON includes `mentionHref` and `markdownLink`. | no | required | no | no |
49
- | `rudder library file ref <path>` | Return the stable Markdown reference for one Library file without printing file content. | no | required | no | no |
50
- | `rudder library file link <path>` | Compatibility alias for `rudder library file ref <path>`. | no | required | no | no |
51
- | `rudder library file put <path> --body-file <path>` | Fallback create/update when local filesystem access is unavailable; JSON includes `mentionHref` and `markdownLink`. | yes | required | no | attached when available |
52
- | `rudder approval get <approval-id>` | Read one approval request. | no | no | no | no |
53
- | `rudder approval issues <approval-id>` | List the issues linked to an approval. | no | no | no | no |
54
- | `rudder approval comment <approval-id> --body-file <path>` | Add a comment to an approval. | yes | no | no | attached when available |
55
- | `rudder skill list --org-id <id>` | List organization-visible skills. | no | required | no | no |
56
- | `rudder skill get <skill-id> --org-id <id>` | Read one organization skill detail. | no | required | no | no |
57
- | `rudder skill file <skill-id> --org-id <id> [--path SKILL.md]` | Read one file from an organization skill package. | no | required | no | no |
58
- | `rudder skill import --org-id <id> --source <source>` | Import a skill package into the organization skill library. | yes | required | no | attached when available |
59
- | `rudder skill scan-local --org-id <id> [--roots <csv>]` | Scan local roots for skill packages and import new ones. | yes | required | no | attached when available |
60
- | `rudder skill scan-projects --org-id <id> [--project-ids <csv>] [--workspace-ids <csv>]` | Scan the org workspace and any legacy project workspace records for skill packages and import new ones. | yes | required | no | attached when available |
61
- | `rudder automation list --org-id <id>` | List automations for an organization with compact local filters. | no | required | no | no |
62
- | `rudder automation get <automation-id>` | Read one automation detail including triggers and recent runs. | no | no | no | no |
63
- | `rudder automation runs <automation-id>` | List recent runs for one automation. | no | no | no | no |
64
- | `rudder automation triggers list <automation-id>` | List triggers configured for one automation. | no | no | no | no |
65
- | `rudder automation triggers create <automation-id> --kind <kind>` | Create a schedule, webhook, or API trigger through the governed automation API. | yes | no | no | attached when available |
66
- | `rudder automation triggers update <trigger-id>` | Update an automation trigger through the governed automation API. | yes | no | no | attached when available |
67
- | `rudder automation triggers delete <trigger-id>` | Delete an automation trigger through the governed automation API. | yes | no | no | attached when available |
68
- | `rudder automation triggers rotate-secret <trigger-id>` | Rotate an automation webhook trigger secret through the governed automation API. | yes | no | no | attached when available |
69
- | `rudder automation create --org-id <id> --title <title> --assignee-agent-id <id>` | Create an automation through the governed automation API. | yes | required | no | attached when available |
70
- | `rudder automation update <automation-id>` | Update automation fields through the governed automation API. | yes | no | no | attached when available |
71
- | `rudder automation enable <automation-id>` | Enable an automation by setting status to active. | yes | no | no | attached when available |
72
- | `rudder automation disable <automation-id>` | Disable an automation by setting status to paused. | yes | no | no | attached when available |
73
- | `rudder automation run <automation-id>` | Trigger a manual automation run. | yes | no | no | attached when available |
74
- | `rudder chat list --org-id <id>` | List chat conversations without dumping full message history. | no | required | no | no |
75
- | `rudder chat search <query> --org-id <id>` | Search chats with bounded snippets and optional scope filtering. | no | required | no | no |
76
- | `rudder chat get <chat-id>` | Read one chat conversation record. | no | no | no | no |
77
- | `rudder chat messages <chat-id> [--limit <n>] [--cursor <cursor>] [--include-transcript]` | Read bounded chat messages with page cursors; transcript output is omitted unless requested. | no | no | no | no |
78
- | `rudder chat transcript <chat-id> [--limit <n>] [--cursor <cursor>] [--max-output-chars <n>]` | Read paginated chat messages with assistant transcript entries clipped in human output. | no | no | no | no |
79
- | `rudder chat read <chat-id> [--turn-limit <n>] [--cursor <cursor>] [--include-output]` | Read a bounded recent-message snapshot for one chat with page cursors. | no | no | no | no |
80
- | `rudder chat create --org-id <id>` | Create a chat conversation. | yes | required | no | attached when available |
81
- | `rudder chat send <chat-id> --body <text>` | Send an agent-authored message directly to the operator in a chat. | yes | no | required | attached when available |
82
- | `rudder chat archive <chat-id>` | Archive a chat conversation without deleting it. | yes | no | no | attached when available |
83
- | `rudder runs list --org-id <id> [--used-skill <skill>] [--loaded-skill <skill>]` | List observed agent runs with filters for status, agent, issue, runtime, time, and skill evidence; used-skill means actual usage and loaded-skill is opt-in. | no | required | no | no |
84
- | `rudder runs by-skill <skill> --org-id <id> [--evidence <used-or-loaded>]` | Build a skill evidence packet from recent runs; defaults to actual usage and returns status counts, agents, issues, common errors, rows, and transcript/errors follow-up commands. | no | required | no | no |
85
- | `rudder runs get <run-id>` | Read one observed run detail. | no | no | no | no |
86
- | `rudder runs events <run-id>` | List persisted run events. | no | no | no | no |
87
- | `rudder runs log <run-id>` | Read stored run log content with clipped human output. | no | no | no | no |
88
- | `rudder runs transcript <run-id> [--turn-limit <n>] [--cursor <cursor>] [--include-output]` | Read the server-normalized run transcript; human output is compact and JSON includes full entries. | no | no | no | no |
89
- | `rudder runs errors <run-id>` | List failed tool calls, stderr, runtime failures, and jump-to-context commands. | no | no | no | no |
90
- | `rudder runs cancel <run-id>` | Cancel a heartbeat run through the governed server route. | yes | no | no | attached when available |
91
- | `rudder runs retry <run-id>` | Retry a failed, timed out, or cancelled run through the governed server route. | yes | no | no | attached when available |
22
+ | MCP Tool | CLI Fallback | Description | Mutating | Org | Agent | Run ID |
23
+ | --- | --- | --- | --- | --- | --- | --- |
24
+ | `rudder_agent_me` | `rudder agent me` | Show the authenticated agent identity, budget, and chain of command. | no | no | no | no |
25
+ | `rudder_agent_inbox` | `rudder agent inbox` | List the compact assignee and reviewer work inbox for the authenticated agent. | no | no | no | no |
26
+ | `rudder_agent_capabilities` | `rudder agent capabilities` | List the stable Rudder agent command contract. | no | no | no | no |
27
+ | `rudder_agent_update` | `rudder agent update [agent-id] [--title <title>] [--description <text>]` | Update an agent's control-plane identity fields; defaults to the authenticated agent. | yes | no | no | attached when available |
28
+ | `rudder_agent_skills_create` | `rudder agent skills create [agent-id] --name <name> [--enable]` | Create an agent-private skill package under AGENT_HOME/skills. | yes | no | no | attached when available |
29
+ | `rudder_agent_skills_enable` | `rudder agent skills enable <agent-id> <selection-ref...>` | Add skill selections to an agent without replacing existing enabled skills. | yes | no | no | attached when available |
30
+ | `rudder_agent_skills_sync` | `rudder agent skills sync <agent-id>` | Sync the desired enabled skill set for an agent. | yes | no | no | attached when available |
31
+ | `rudder_issue_get` | `rudder issue get <issue>` | Read a full issue by UUID or identifier. | no | no | no | no |
32
+ | `rudder_issue_search` | `rudder issue search <query> [--org-id <id>]` | Search issues with the server-side issue index across title, identifier, description, and comments. | no | required | no | no |
33
+ | `rudder_issue_context` | `rudder issue context <issue> [--wake-comment-id <comment-id-or-cmt-ref>]` | Read the compact heartbeat context for an issue; wake comments may be addressed by full id or cmt_<uuid-prefix>. | no | no | no | no |
34
+ | `rudder_issue_checkout` | `rudder issue checkout <issue>` | Atomically checkout an issue for the current or specified agent. | yes | no | required | attached when available |
35
+ | `rudder_issue_comment` | `rudder issue comment <issue> --body-file <path> [--image <path>]` | Add a comment to an issue, optionally uploading images and appending Markdown image links. | yes | no | no | attached when available |
36
+ | `rudder_issue_comments_list` | `rudder issue comments list <issue> [--after <comment-id-or-cmt-ref>]` | List issue comments, optionally only newer comments after a full comment id or cmt_<uuid-prefix> with --after. | no | no | no | no |
37
+ | `rudder_issue_comments_get` | `rudder issue comments get <issue> <comment-id-or-cmt-ref>` | Read one issue comment by full id or cmt_<uuid-prefix> scoped to the issue. | no | no | no | no |
38
+ | `rudder_issue_update` | `rudder issue update <issue> ... [--comment-file <path>] [--image <path>]` | Apply generic issue updates when workflow commands are not enough, optionally uploading images for the update comment. | yes | no | no | attached when available |
39
+ | `rudder_issue_review` | `rudder issue review <issue> --decision <decision> --comment-file <path>` | Record a structured reviewer decision with a required comment. | yes | no | no | attached when available |
40
+ | `rudder_issue_commit` | `rudder issue commit <issue> --sha <sha> --message <subject>` | Report a code commit created during issue work as structured issue activity. | yes | no | no | attached when available |
41
+ | `rudder_issue_done` | `rudder issue done <issue> --comment-file <path> [--image <path>]` | Mark an issue done with a required completion comment, optionally uploading images. | yes | no | no | attached when available |
42
+ | `rudder_issue_block` | `rudder issue block <issue> --comment-file <path> [--image <path>]` | Mark an issue blocked with a required blocker comment, optionally uploading images. | yes | no | no | attached when available |
43
+ | `rudder_project_list` | `rudder project list --org-id <id>` | List projects in an organization. | no | required | no | no |
44
+ | `rudder_project_get` | `rudder project get <project-id-or-shortname> [--org-id <id>]` | Read one project by ID or shortname. | no | no | no | no |
45
+ | `rudder_project_create` | `rudder project create --org-id <id> --name <name>` | Create a project in the organization. | yes | required | no | attached when available |
46
+ | `rudder_project_update` | `rudder project update <project-id-or-shortname> [--org-id <id>]` | Update mutable project fields such as name, description, status, goals, lead agent, target date, color, or archivedAt. | yes | no | no | attached when available |
47
+ | `rudder_user_activity` | `rudder user activity --user me --since today --json` | Read a user-centered activity ledger with safe excerpts and provenance across chats, issue comments, approval comments, and user actor activity. | no | required | no | no |
48
+ | `rudder_library_file_list` | `rudder library file list [directory]` | List Library files and folders; file rows include `libraryEntryId` when a strong reference can be generated. | no | required | no | no |
49
+ | `rudder_library_file_get` | `rudder library file get <path>` | Fallback read when local filesystem access is unavailable; JSON includes `mentionHref` and `markdownLink`. | no | required | no | no |
50
+ | `rudder_library_file_ref` | `rudder library file ref <path>` | Return the stable Markdown reference for one Library file without printing file content. | no | required | no | no |
51
+ | `rudder_library_file_link` | `rudder library file link <path>` | Compatibility alias for `rudder library file ref <path>`. | no | required | no | no |
52
+ | `rudder_library_file_put` | `rudder library file put <path> --body-file <path>` | Fallback create/update when local filesystem access is unavailable; JSON includes `mentionHref` and `markdownLink`. | yes | required | no | attached when available |
53
+ | `rudder_approval_get` | `rudder approval get <approval-id>` | Read one approval request. | no | no | no | no |
54
+ | `rudder_approval_issues` | `rudder approval issues <approval-id>` | List the issues linked to an approval. | no | no | no | no |
55
+ | `rudder_approval_comment` | `rudder approval comment <approval-id> --body-file <path>` | Add a comment to an approval. | yes | no | no | attached when available |
56
+ | `rudder_skill_list` | `rudder skill list --org-id <id>` | List organization-visible skills. | no | required | no | no |
57
+ | `rudder_skill_get` | `rudder skill get <skill-id> --org-id <id>` | Read one organization skill detail. | no | required | no | no |
58
+ | `rudder_skill_file` | `rudder skill file <skill-id> --org-id <id> [--path SKILL.md]` | Read one file from an organization skill package. | no | required | no | no |
59
+ | `rudder_skill_import` | `rudder skill import --org-id <id> --source <source>` | Import a skill package into the organization skill library. | yes | required | no | attached when available |
60
+ | `rudder_skill_scan_local` | `rudder skill scan-local --org-id <id> [--roots <csv>]` | Scan local roots for skill packages and import new ones. | yes | required | no | attached when available |
61
+ | `rudder_skill_scan_projects` | `rudder skill scan-projects --org-id <id> [--project-ids <csv>] [--workspace-ids <csv>]` | Scan the org workspace and any legacy project workspace records for skill packages and import new ones. | yes | required | no | attached when available |
62
+ | `rudder_automation_list` | `rudder automation list --org-id <id>` | List automations for an organization with compact local filters. | no | required | no | no |
63
+ | `rudder_automation_get` | `rudder automation get <automation-id>` | Read one automation detail including triggers and recent runs. | no | no | no | no |
64
+ | `rudder_automation_runs` | `rudder automation runs <automation-id>` | List recent runs for one automation. | no | no | no | no |
65
+ | `rudder_automation_triggers_list` | `rudder automation triggers list <automation-id>` | List triggers configured for one automation. | no | no | no | no |
66
+ | `rudder_automation_triggers_create` | `rudder automation triggers create <automation-id> --kind <kind>` | Create a schedule, webhook, or API trigger through the governed automation API. | yes | no | no | attached when available |
67
+ | `rudder_automation_triggers_update` | `rudder automation triggers update <trigger-id>` | Update an automation trigger through the governed automation API. | yes | no | no | attached when available |
68
+ | `rudder_automation_triggers_delete` | `rudder automation triggers delete <trigger-id>` | Delete an automation trigger through the governed automation API. | yes | no | no | attached when available |
69
+ | `rudder_automation_triggers_rotate_secret` | `rudder automation triggers rotate-secret <trigger-id>` | Rotate an automation webhook trigger secret through the governed automation API. | yes | no | no | attached when available |
70
+ | `rudder_automation_create` | `rudder automation create --org-id <id> --title <title> --assignee-agent-id <id>` | Create an automation through the governed automation API. | yes | required | no | attached when available |
71
+ | `rudder_automation_update` | `rudder automation update <automation-id>` | Update automation fields through the governed automation API. | yes | no | no | attached when available |
72
+ | `rudder_automation_enable` | `rudder automation enable <automation-id>` | Enable an automation by setting status to active. | yes | no | no | attached when available |
73
+ | `rudder_automation_disable` | `rudder automation disable <automation-id>` | Disable an automation by setting status to paused. | yes | no | no | attached when available |
74
+ | `rudder_automation_run` | `rudder automation run <automation-id>` | Trigger a manual automation run. | yes | no | no | attached when available |
75
+ | `rudder_chat_list` | `rudder chat list --org-id <id>` | List chat conversations without dumping full message history. | no | required | no | no |
76
+ | `rudder_chat_search` | `rudder chat search <query> --org-id <id>` | Search chats with bounded snippets and optional scope filtering. | no | required | no | no |
77
+ | `rudder_chat_get` | `rudder chat get <chat-id>` | Read one chat conversation record. | no | no | no | no |
78
+ | `rudder_chat_messages` | `rudder chat messages <chat-id> [--limit <n>] [--cursor <cursor>] [--include-transcript]` | Read bounded chat messages with page cursors; transcript output is omitted unless requested. | no | no | no | no |
79
+ | `rudder_chat_transcript` | `rudder chat transcript <chat-id> [--limit <n>] [--cursor <cursor>] [--max-output-chars <n>]` | Read paginated chat messages with assistant transcript entries clipped in human output. | no | no | no | no |
80
+ | `rudder_chat_read` | `rudder chat read <chat-id> [--turn-limit <n>] [--cursor <cursor>] [--include-output]` | Read a bounded recent-message snapshot for one chat with page cursors. | no | no | no | no |
81
+ | `rudder_chat_create` | `rudder chat create --org-id <id>` | Create a chat conversation. | yes | required | no | attached when available |
82
+ | `rudder_chat_send` | `rudder chat send <chat-id> --body <text>` | Send an agent-authored message directly to the operator in a chat. | yes | no | required | attached when available |
83
+ | `rudder_chat_archive` | `rudder chat archive <chat-id>` | Archive a chat conversation without deleting it. | yes | no | no | attached when available |
84
+ | `rudder_runs_list` | `rudder runs list --org-id <id> [--used-skill <skill>] [--loaded-skill <skill>]` | List observed agent runs with filters for status, agent, issue, runtime, time, and skill evidence; used-skill means actual usage and loaded-skill is opt-in. | no | required | no | no |
85
+ | `rudder_runs_by_skill` | `rudder runs by-skill <skill> --org-id <id> [--evidence <used-or-loaded>]` | Build a skill evidence packet from recent runs; defaults to actual usage and returns status counts, agents, issues, common errors, rows, and transcript/errors follow-up commands. | no | required | no | no |
86
+ | `rudder_runs_get` | `rudder runs get <run-id>` | Read one observed run detail. | no | no | no | no |
87
+ | `rudder_runs_events` | `rudder runs events <run-id>` | List persisted run events. | no | no | no | no |
88
+ | `rudder_runs_log` | `rudder runs log <run-id>` | Read stored run log content with clipped human output. | no | no | no | no |
89
+ | `rudder_runs_transcript` | `rudder runs transcript <run-id> [--turn-limit <n>] [--cursor <cursor>] [--include-output]` | Read the server-normalized run transcript; human output is compact and JSON includes full entries. | no | no | no | no |
90
+ | `rudder_runs_errors` | `rudder runs errors <run-id>` | List failed tool calls, stderr, runtime failures, and jump-to-context commands. | no | no | no | no |
91
+ | `rudder_runs_cancel` | `rudder runs cancel <run-id>` | Cancel a heartbeat run through the governed server route. | yes | no | no | attached when available |
92
+ | `rudder_runs_retry` | `rudder runs retry <run-id>` | Retry a failed, timed out, or cancelled run through the governed server route. | yes | no | no | attached when available |
92
93
 
93
94
  ## Issue Close-Out Signals
94
95
 
@@ -22,11 +22,12 @@ organization-skill operations.
22
22
 
23
23
  ## Control-Plane Interface
24
24
 
25
- - Use `rudder ... --json` for normal control-plane work. CLI output renders IDs as short IDs by default; `rudder runs ...` commands accept short run IDs. Add `--full-ids` only for debugging or compatibility checks that need raw UUIDs.
26
- - Use `rudder agent capabilities --json` when you need machine-readable discovery of supported commands.
27
- - Use `references/cli-reference.md` for the stable command catalog.
25
+ - Prefer first-party Rudder MCP tools for normal control-plane work when the runtime exposes them. Tool names use the stable `rudder_<capability_id>` shape, for example `rudder_issue_checkout`.
26
+ - Use `rudder ... --json` as the compatibility fallback when MCP is unavailable or a Rudder MCP tool returns a transport/configuration error. CLI output renders IDs as short IDs by default; `rudder runs ...` commands accept short run IDs. Add `--full-ids` only for debugging or compatibility checks that need raw UUIDs.
27
+ - Use `rudder agent capabilities --json` when you need machine-readable discovery of supported CLI commands and first-party MCP tools.
28
+ - Use `references/cli-reference.md` for the stable MCP + CLI fallback catalog.
28
29
  - Treat `references/api-reference.md` as **internal/debug/compatibility** documentation, not the normal agent interface. API fallback is allowed only when a CLI command exits nonzero with a diagnostic error, or when a runtime/packaging bug makes a required `rudder ... --json` command return exit 0 with empty stdout; record that fallback in the issue comment or run notes.
29
- - If a remote runtime wake text explicitly says **HTTP compatibility mode**, follow that wake text for that run. Otherwise use the CLI.
30
+ - If a remote runtime wake text explicitly says **HTTP compatibility mode**, follow that wake text for that run. Otherwise use Rudder MCP tools first, then CLI fallback.
30
31
 
31
32
  ## Control-Plane Rails
32
33