@zmeel/server 0.3.2 → 0.3.3
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/adapters/registry.d.ts.map +1 -1
- package/dist/adapters/registry.js +11 -0
- package/dist/adapters/registry.js.map +1 -1
- package/dist/app.d.ts +1 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +10 -1
- package/dist/app.js.map +1 -1
- package/dist/auth/better-auth.d.ts +1 -1
- package/dist/auth/better-auth.d.ts.map +1 -1
- package/dist/auth/better-auth.js +13 -1
- package/dist/auth/better-auth.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +6 -2
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/routes/agents.d.ts.map +1 -1
- package/dist/routes/agents.js +83 -0
- package/dist/routes/agents.js.map +1 -1
- package/dist/routes/billing.d.ts +3 -0
- package/dist/routes/billing.d.ts.map +1 -0
- package/dist/routes/billing.js +69 -0
- package/dist/routes/billing.js.map +1 -0
- package/dist/routes/companies.d.ts +3 -1
- package/dist/routes/companies.d.ts.map +1 -1
- package/dist/routes/companies.js +8 -3
- package/dist/routes/companies.js.map +1 -1
- package/dist/routes/employee-files.d.ts +3 -0
- package/dist/routes/employee-files.d.ts.map +1 -0
- package/dist/routes/employee-files.js +49 -0
- package/dist/routes/employee-files.js.map +1 -0
- package/dist/routes/health.d.ts +1 -0
- package/dist/routes/health.d.ts.map +1 -1
- package/dist/routes/health.js +7 -1
- package/dist/routes/health.js.map +1 -1
- package/dist/routes/index.d.ts +1 -0
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/routes/index.js +1 -0
- package/dist/routes/index.js.map +1 -1
- package/dist/routes/role-templates.d.ts +2 -0
- package/dist/routes/role-templates.d.ts.map +1 -0
- package/dist/routes/role-templates.js +18 -0
- package/dist/routes/role-templates.js.map +1 -0
- package/dist/routes/tool-connections.d.ts +3 -0
- package/dist/routes/tool-connections.d.ts.map +1 -0
- package/dist/routes/tool-connections.js +117 -0
- package/dist/routes/tool-connections.js.map +1 -0
- package/dist/services/activity.d.ts +3 -3
- package/dist/services/agents.d.ts +3 -3
- package/dist/services/approvals.d.ts +2 -2
- package/dist/services/billing.d.ts +35 -0
- package/dist/services/billing.d.ts.map +1 -0
- package/dist/services/billing.js +62 -0
- package/dist/services/billing.js.map +1 -0
- package/dist/services/composio.d.ts +40 -0
- package/dist/services/composio.d.ts.map +1 -0
- package/dist/services/composio.js +241 -0
- package/dist/services/composio.js.map +1 -0
- package/dist/services/costs.d.ts +2 -2
- package/dist/services/employee-files.d.ts +31 -0
- package/dist/services/employee-files.d.ts.map +1 -0
- package/dist/services/employee-files.js +69 -0
- package/dist/services/employee-files.js.map +1 -0
- package/dist/services/feedback.d.ts +2 -2
- package/dist/services/finance.d.ts +2 -2
- package/dist/services/goals.d.ts +6 -6
- package/dist/services/heartbeat.d.ts +17 -17
- package/dist/services/heartbeat.d.ts.map +1 -1
- package/dist/services/heartbeat.js +39 -1
- package/dist/services/heartbeat.js.map +1 -1
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +1 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/issues.d.ts +3 -3
- package/dist/services/managed-api-keys.d.ts +18 -0
- package/dist/services/managed-api-keys.d.ts.map +1 -0
- package/dist/services/managed-api-keys.js +51 -0
- package/dist/services/managed-api-keys.js.map +1 -0
- package/dist/services/plugin-registry.d.ts +73 -73
- package/dist/services/role-templates.d.ts +24 -0
- package/dist/services/role-templates.d.ts.map +1 -0
- package/dist/services/role-templates.js +969 -0
- package/dist/services/role-templates.js.map +1 -0
- package/dist/services/routines.d.ts +15 -15
- package/dist/services/saas-provisioning.d.ts +16 -0
- package/dist/services/saas-provisioning.d.ts.map +1 -0
- package/dist/services/saas-provisioning.js +21 -0
- package/dist/services/saas-provisioning.js.map +1 -0
- package/dist/services/workspace-runtime.d.ts +2 -2
- package/package.json +39 -32
- package/ui-dist/assets/{_basePickBy-D2fZf0o0.js → _basePickBy-CMk22i5t.js} +1 -1
- package/ui-dist/assets/{_baseUniq-CWLG_Xqf.js → _baseUniq-BRF60Jak.js} +1 -1
- package/ui-dist/assets/{arc-DeECLtLk.js → arc-BzLMeDv5.js} +1 -1
- package/ui-dist/assets/{architectureDiagram-VXUJARFQ-a4Gzo-8u.js → architectureDiagram-VXUJARFQ-DInJrxvO.js} +1 -1
- package/ui-dist/assets/{blockDiagram-VD42YOAC-tsACr-ke.js → blockDiagram-VD42YOAC-vXi5zaBG.js} +1 -1
- package/ui-dist/assets/{c4Diagram-YG6GDRKO-CxIEiGp0.js → c4Diagram-YG6GDRKO-BJG8J9ib.js} +1 -1
- package/ui-dist/assets/channel-DrNAM91H.js +1 -0
- package/ui-dist/assets/{chunk-4BX2VUAB-DXyq1OVE.js → chunk-4BX2VUAB-CVqGTOhG.js} +1 -1
- package/ui-dist/assets/{chunk-55IACEB6-DE0IJwCp.js → chunk-55IACEB6-DdPau3JC.js} +1 -1
- package/ui-dist/assets/{chunk-B4BG7PRW-C4VgkuRm.js → chunk-B4BG7PRW-9mSiYUJq.js} +1 -1
- package/ui-dist/assets/{chunk-DI55MBZ5-DUnVODLP.js → chunk-DI55MBZ5-D-JZMTva.js} +1 -1
- package/ui-dist/assets/{chunk-FMBD7UC4-D14U1wU8.js → chunk-FMBD7UC4-CebhDcDU.js} +1 -1
- package/ui-dist/assets/{chunk-QN33PNHL--9Fa_-d7.js → chunk-QN33PNHL-C-TCIW_q.js} +1 -1
- package/ui-dist/assets/{chunk-QZHKN3VN-6vF9hrbB.js → chunk-QZHKN3VN-pYW0vu4N.js} +1 -1
- package/ui-dist/assets/{chunk-TZMSLE5B-BOKdVMfQ.js → chunk-TZMSLE5B-CJuXCdVr.js} +1 -1
- package/ui-dist/assets/classDiagram-2ON5EDUG-Bv0OJ-at.js +1 -0
- package/ui-dist/assets/classDiagram-v2-WZHVMYZB-Bv0OJ-at.js +1 -0
- package/ui-dist/assets/clone-zJKi4Z7Y.js +1 -0
- package/ui-dist/assets/{cose-bilkent-S5V4N54A-BSFYrItZ.js → cose-bilkent-S5V4N54A-CjBOmbda.js} +1 -1
- package/ui-dist/assets/{dagre-6UL2VRFP-D8xEb_jz.js → dagre-6UL2VRFP-Dnp0GsR_.js} +1 -1
- package/ui-dist/assets/{diagram-PSM6KHXK-kkdfif_P.js → diagram-PSM6KHXK-BXZZpwx8.js} +1 -1
- package/ui-dist/assets/{diagram-QEK2KX5R-BOA1wTkn.js → diagram-QEK2KX5R-qRdZZtvc.js} +1 -1
- package/ui-dist/assets/{diagram-S2PKOQOG-BMxIrdD_.js → diagram-S2PKOQOG-D_09g7dR.js} +1 -1
- package/ui-dist/assets/{erDiagram-Q2GNP2WA-O1OwJuJt.js → erDiagram-Q2GNP2WA-Ko72NRnY.js} +1 -1
- package/ui-dist/assets/{flowDiagram-NV44I4VS-Ca9TsVEe.js → flowDiagram-NV44I4VS-0djOGxYO.js} +1 -1
- package/ui-dist/assets/{ganttDiagram-JELNMOA3-CZ3k4lR4.js → ganttDiagram-JELNMOA3-DGShyPo5.js} +1 -1
- package/ui-dist/assets/{gitGraphDiagram-V2S2FVAM-CYXpu5VF.js → gitGraphDiagram-V2S2FVAM-o1Ofh8BV.js} +1 -1
- package/ui-dist/assets/{graph-Ct1Mwc2w.js → graph-SsVnC_wA.js} +1 -1
- package/ui-dist/assets/{index-2BV3lexL.js → index-B8jvXnJM.js} +1 -1
- package/ui-dist/assets/index-B8oh85kW.js +1262 -0
- package/ui-dist/assets/{index-B3cKIXfV.js → index-BKh69TGx.js} +1 -1
- package/ui-dist/assets/{index-ChGANpP5.js → index-BVJCR9-5.js} +1 -1
- package/ui-dist/assets/{index-b-wjeoWr.js → index-BZO7ebib.js} +1 -1
- package/ui-dist/assets/{index-CU0xjnJx.js → index-BgpO4lCF.js} +1 -1
- package/ui-dist/assets/{index-DZ5z-1W5.js → index-BkhtXozO.js} +1 -1
- package/ui-dist/assets/{index-zAFj8SiW.js → index-CAwQRx1H.js} +1 -1
- package/ui-dist/assets/{index-Cyi4EPvJ.js → index-CGzKzWEI.js} +1 -1
- package/ui-dist/assets/{index-DYf-Vmt-.js → index-CH6qpD_O.js} +1 -1
- package/ui-dist/assets/{index-BKVrlVnm.js → index-CKRSx4E0.js} +1 -1
- package/ui-dist/assets/{index-DcJU9_Xw.js → index-Ce3cNGGf.js} +1 -1
- package/ui-dist/assets/{index-DzvAUKSy.js → index-CfTkAwgM.js} +1 -1
- package/ui-dist/assets/{index-BoQp7qpa.js → index-CgYMoxFD.js} +1 -1
- package/ui-dist/assets/{index-1-xGTyG8.js → index-CmzUmqke.js} +1 -1
- package/ui-dist/assets/{index-Dbx0Jq5s.js → index-Cw_pE1Cj.js} +1 -1
- package/ui-dist/assets/{index-C016T1QA.js → index-Cyp3WxFA.js} +1 -1
- package/ui-dist/assets/{index-CKShy7qg.js → index-D9oAsAw_.js} +1 -1
- package/ui-dist/assets/{index-Bso7Ph2z.js → index-DFAXMkw_.js} +1 -1
- package/ui-dist/assets/index-DRwR8MX2.css +1 -0
- package/ui-dist/assets/{index-CTeTAOP4.js → index-DfZDOeuL.js} +1 -1
- package/ui-dist/assets/{index-DAhE9Tae.js → index-KUPFoIYr.js} +1 -1
- package/ui-dist/assets/{index-CX3xG_nU.js → index-x9SZ5O1I.js} +1 -1
- package/ui-dist/assets/{index-D4ERoZ49.js → index-yp89SiAI.js} +1 -1
- package/ui-dist/assets/{infoDiagram-HS3SLOUP-BBoge3td.js → infoDiagram-HS3SLOUP-BvBgHbDr.js} +1 -1
- package/ui-dist/assets/{journeyDiagram-XKPGCS4Q-D6qBxJvS.js → journeyDiagram-XKPGCS4Q-CqqEPjJY.js} +1 -1
- package/ui-dist/assets/{kanban-definition-3W4ZIXB7-BKw70hff.js → kanban-definition-3W4ZIXB7-CXcCv_Ip.js} +1 -1
- package/ui-dist/assets/{layout-C-MelZ5a.js → layout-BSP84oTG.js} +1 -1
- package/ui-dist/assets/{linear-BDJBF_lN.js → linear-BXMkYkHB.js} +1 -1
- package/ui-dist/assets/{mermaid.core-C_LSSro9.js → mermaid.core-gUe3q3NG.js} +4 -4
- package/ui-dist/assets/{mindmap-definition-VGOIOE7T-DKTz8YjL.js → mindmap-definition-VGOIOE7T-BkVsCY6g.js} +1 -1
- package/ui-dist/assets/{pieDiagram-ADFJNKIX-COzMH2F2.js → pieDiagram-ADFJNKIX-DbyIYf3g.js} +1 -1
- package/ui-dist/assets/{quadrantDiagram-AYHSOK5B-I8FRTFaI.js → quadrantDiagram-AYHSOK5B-D8PrHyHa.js} +1 -1
- package/ui-dist/assets/{requirementDiagram-UZGBJVZJ-DI3nQy2l.js → requirementDiagram-UZGBJVZJ-CqHxrd_k.js} +1 -1
- package/ui-dist/assets/{sankeyDiagram-TZEHDZUN-Pf_PmYIt.js → sankeyDiagram-TZEHDZUN-YmSuzjgS.js} +1 -1
- package/ui-dist/assets/{sequenceDiagram-WL72ISMW-DLgaS7kB.js → sequenceDiagram-WL72ISMW-B-_tiWIt.js} +1 -1
- package/ui-dist/assets/{stateDiagram-FKZM4ZOC-BvMa1uU-.js → stateDiagram-FKZM4ZOC-lSSuHsyv.js} +1 -1
- package/ui-dist/assets/stateDiagram-v2-4FDKWEC3-DolpXHAz.js +1 -0
- package/ui-dist/assets/{timeline-definition-IT6M3QCI-JQUCAkOQ.js → timeline-definition-IT6M3QCI-BOWlxdTv.js} +1 -1
- package/ui-dist/assets/{treemap-GDKQZRPO-BK87qA0V.js → treemap-GDKQZRPO-Bf4ApA1I.js} +1 -1
- package/ui-dist/assets/{xychartDiagram-PRI3JC2R-UI3XP-6x.js → xychartDiagram-PRI3JC2R-CB-X3oO_.js} +1 -1
- package/ui-dist/index.html +2 -2
- package/LICENSE +0 -21
- package/ui-dist/assets/channel-B8aOlvkH.js +0 -1
- package/ui-dist/assets/classDiagram-2ON5EDUG-CNtVQyHf.js +0 -1
- package/ui-dist/assets/classDiagram-v2-WZHVMYZB-CNtVQyHf.js +0 -1
- package/ui-dist/assets/clone-DbnZAhBs.js +0 -1
- package/ui-dist/assets/index-7nZVjhgZ.js +0 -1227
- package/ui-dist/assets/index-Ip5TfL79.css +0 -1
- package/ui-dist/assets/stateDiagram-v2-4FDKWEC3-BKAZNp5l.js +0 -1
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import { Composio } from "composio-core";
|
|
2
|
+
let _client = null;
|
|
3
|
+
function getClient() {
|
|
4
|
+
if (_client)
|
|
5
|
+
return _client;
|
|
6
|
+
const apiKey = process.env.COMPOSIO_API_KEY;
|
|
7
|
+
if (!apiKey) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
_client = new Composio({ apiKey });
|
|
11
|
+
return _client;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Create a Composio entity for a given user. In Composio's model, an "entity"
|
|
15
|
+
* represents an end-user who can connect apps and execute actions.
|
|
16
|
+
*/
|
|
17
|
+
export function getComposioSession(userId) {
|
|
18
|
+
const client = getClient();
|
|
19
|
+
if (!client)
|
|
20
|
+
return null;
|
|
21
|
+
return client.getEntity(userId);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Get tool/action definitions for a set of apps, scoped to a user entity.
|
|
25
|
+
* `apps` is a comma-separated string of app keys (e.g. "github,slack").
|
|
26
|
+
*/
|
|
27
|
+
export async function getToolsForApps(userId, apps) {
|
|
28
|
+
const client = getClient();
|
|
29
|
+
if (!client)
|
|
30
|
+
return [];
|
|
31
|
+
try {
|
|
32
|
+
const actions = await client.actions.list({
|
|
33
|
+
apps: apps.join(","),
|
|
34
|
+
});
|
|
35
|
+
return actions?.items ?? (Array.isArray(actions) ? actions : []);
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
console.error("[composio] getToolsForApps failed:", err);
|
|
39
|
+
return [];
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Initiate an OAuth connection for a user with a specific app.
|
|
44
|
+
* Returns a ConnectionRequest with a redirectUrl the user should visit.
|
|
45
|
+
*/
|
|
46
|
+
export async function initiateConnection(userId, appName, redirectUrl) {
|
|
47
|
+
const client = getClient();
|
|
48
|
+
if (!client)
|
|
49
|
+
return null;
|
|
50
|
+
try {
|
|
51
|
+
const connectionRequest = await client.connectedAccounts.initiate({
|
|
52
|
+
appName,
|
|
53
|
+
entityId: userId,
|
|
54
|
+
redirectUri: redirectUrl,
|
|
55
|
+
});
|
|
56
|
+
return {
|
|
57
|
+
redirectUrl: connectionRequest.redirectUrl,
|
|
58
|
+
connectedAccountId: connectionRequest.connectedAccountId,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
console.error("[composio] initiateConnection failed:", err);
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* List all connected accounts for a given user entity.
|
|
68
|
+
*/
|
|
69
|
+
export async function getConnectedApps(userId) {
|
|
70
|
+
const client = getClient();
|
|
71
|
+
if (!client)
|
|
72
|
+
return [];
|
|
73
|
+
try {
|
|
74
|
+
const entity = client.getEntity(userId);
|
|
75
|
+
const connections = await entity.getConnections();
|
|
76
|
+
return connections ?? [];
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
console.error("[composio] getConnectedApps failed:", err);
|
|
80
|
+
return [];
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Execute a tool call (action) on behalf of a user.
|
|
85
|
+
*/
|
|
86
|
+
export async function executeToolCall(userId, toolName, toolInput) {
|
|
87
|
+
const client = getClient();
|
|
88
|
+
if (!client)
|
|
89
|
+
return { error: "Composio not configured" };
|
|
90
|
+
try {
|
|
91
|
+
const entity = client.getEntity(userId);
|
|
92
|
+
const result = await entity.execute({
|
|
93
|
+
actionName: toolName,
|
|
94
|
+
params: toolInput,
|
|
95
|
+
});
|
|
96
|
+
return result;
|
|
97
|
+
}
|
|
98
|
+
catch (err) {
|
|
99
|
+
console.error("[composio] executeToolCall failed:", err);
|
|
100
|
+
return { error: String(err) };
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/** Well-known logo URLs for popular tools (fallback when Composio doesn't provide one) */
|
|
104
|
+
const TOOL_LOGOS = {
|
|
105
|
+
gmail: "https://cdn.simpleicons.org/gmail",
|
|
106
|
+
slack: "https://cdn.simpleicons.org/slack",
|
|
107
|
+
github: "https://cdn.simpleicons.org/github/white",
|
|
108
|
+
notion: "https://cdn.simpleicons.org/notion/white",
|
|
109
|
+
google_calendar: "https://cdn.simpleicons.org/googlecalendar",
|
|
110
|
+
google_drive: "https://cdn.simpleicons.org/googledrive",
|
|
111
|
+
google_sheets: "https://cdn.simpleicons.org/googlesheets",
|
|
112
|
+
google_docs: "https://cdn.simpleicons.org/googledocs",
|
|
113
|
+
hubspot: "https://cdn.simpleicons.org/hubspot",
|
|
114
|
+
salesforce: "https://cdn.simpleicons.org/salesforce",
|
|
115
|
+
jira: "https://cdn.simpleicons.org/jira",
|
|
116
|
+
linear: "https://cdn.simpleicons.org/linear/white",
|
|
117
|
+
trello: "https://cdn.simpleicons.org/trello",
|
|
118
|
+
asana: "https://cdn.simpleicons.org/asana",
|
|
119
|
+
discord: "https://cdn.simpleicons.org/discord",
|
|
120
|
+
microsoft_teams: "https://cdn.simpleicons.org/microsoftteams",
|
|
121
|
+
outlook: "https://cdn.simpleicons.org/microsoftoutlook",
|
|
122
|
+
dropbox: "https://cdn.simpleicons.org/dropbox",
|
|
123
|
+
airtable: "https://cdn.simpleicons.org/airtable",
|
|
124
|
+
figma: "https://cdn.simpleicons.org/figma",
|
|
125
|
+
zoom: "https://cdn.simpleicons.org/zoom",
|
|
126
|
+
stripe: "https://cdn.simpleicons.org/stripe",
|
|
127
|
+
shopify: "https://cdn.simpleicons.org/shopify",
|
|
128
|
+
twilio: "https://cdn.simpleicons.org/twilio",
|
|
129
|
+
sendgrid: "https://cdn.simpleicons.org/sendgrid",
|
|
130
|
+
mailchimp: "https://cdn.simpleicons.org/mailchimp",
|
|
131
|
+
intercom: "https://cdn.simpleicons.org/intercom",
|
|
132
|
+
zendesk: "https://cdn.simpleicons.org/zendesk",
|
|
133
|
+
supabase: "https://cdn.simpleicons.org/supabase",
|
|
134
|
+
vercel: "https://cdn.simpleicons.org/vercel/white",
|
|
135
|
+
gitlab: "https://cdn.simpleicons.org/gitlab",
|
|
136
|
+
bitbucket: "https://cdn.simpleicons.org/bitbucket",
|
|
137
|
+
confluence: "https://cdn.simpleicons.org/confluence",
|
|
138
|
+
monday: "https://cdn.simpleicons.org/mondaydotcom",
|
|
139
|
+
clickup: "https://cdn.simpleicons.org/clickup",
|
|
140
|
+
todoist: "https://cdn.simpleicons.org/todoist",
|
|
141
|
+
calendly: "https://cdn.simpleicons.org/calendly",
|
|
142
|
+
typeform: "https://cdn.simpleicons.org/typeform",
|
|
143
|
+
linkedin: "https://cdn.simpleicons.org/linkedin",
|
|
144
|
+
twitter: "https://cdn.simpleicons.org/x/white",
|
|
145
|
+
facebook: "https://cdn.simpleicons.org/facebook",
|
|
146
|
+
instagram: "https://cdn.simpleicons.org/instagram",
|
|
147
|
+
youtube: "https://cdn.simpleicons.org/youtube",
|
|
148
|
+
whatsapp: "https://cdn.simpleicons.org/whatsapp",
|
|
149
|
+
telegram: "https://cdn.simpleicons.org/telegram",
|
|
150
|
+
composio: "https://cdn.simpleicons.org/composio",
|
|
151
|
+
};
|
|
152
|
+
/** Human-friendly display names for tools with non-obvious keys */
|
|
153
|
+
const TOOL_DISPLAY_NAMES = {
|
|
154
|
+
gmail: "Gmail",
|
|
155
|
+
github: "GitHub",
|
|
156
|
+
slack: "Slack",
|
|
157
|
+
notion: "Notion",
|
|
158
|
+
google_calendar: "Google Calendar",
|
|
159
|
+
googlecalendar: "Google Calendar",
|
|
160
|
+
google_drive: "Google Drive",
|
|
161
|
+
googledrive: "Google Drive",
|
|
162
|
+
google_sheets: "Google Sheets",
|
|
163
|
+
googlesheets: "Google Sheets",
|
|
164
|
+
google_docs: "Google Docs",
|
|
165
|
+
googledocs: "Google Docs",
|
|
166
|
+
hubspot: "HubSpot",
|
|
167
|
+
salesforce: "Salesforce",
|
|
168
|
+
jira: "Jira",
|
|
169
|
+
linear: "Linear",
|
|
170
|
+
trello: "Trello",
|
|
171
|
+
asana: "Asana",
|
|
172
|
+
discord: "Discord",
|
|
173
|
+
microsoft_teams: "Microsoft Teams",
|
|
174
|
+
outlook: "Outlook",
|
|
175
|
+
dropbox: "Dropbox",
|
|
176
|
+
airtable: "Airtable",
|
|
177
|
+
figma: "Figma",
|
|
178
|
+
zoom: "Zoom",
|
|
179
|
+
stripe: "Stripe",
|
|
180
|
+
shopify: "Shopify",
|
|
181
|
+
twilio: "Twilio",
|
|
182
|
+
sendgrid: "SendGrid",
|
|
183
|
+
mailchimp: "Mailchimp",
|
|
184
|
+
intercom: "Intercom",
|
|
185
|
+
zendesk: "Zendesk",
|
|
186
|
+
supabase: "Supabase",
|
|
187
|
+
vercel: "Vercel",
|
|
188
|
+
gitlab: "GitLab",
|
|
189
|
+
bitbucket: "Bitbucket",
|
|
190
|
+
confluence: "Confluence",
|
|
191
|
+
monday: "Monday.com",
|
|
192
|
+
clickup: "ClickUp",
|
|
193
|
+
todoist: "Todoist",
|
|
194
|
+
calendly: "Calendly",
|
|
195
|
+
typeform: "Typeform",
|
|
196
|
+
linkedin: "LinkedIn",
|
|
197
|
+
twitter: "Twitter / X",
|
|
198
|
+
facebook: "Facebook",
|
|
199
|
+
instagram: "Instagram",
|
|
200
|
+
youtube: "YouTube",
|
|
201
|
+
whatsapp: "WhatsApp",
|
|
202
|
+
telegram: "Telegram",
|
|
203
|
+
composio: "Composio",
|
|
204
|
+
};
|
|
205
|
+
/** Capitalize a tool name: "google_calendar" → "Google Calendar" */
|
|
206
|
+
function capitalizeToolName(key) {
|
|
207
|
+
if (TOOL_DISPLAY_NAMES[key])
|
|
208
|
+
return TOOL_DISPLAY_NAMES[key];
|
|
209
|
+
return key
|
|
210
|
+
.split(/[_-]/)
|
|
211
|
+
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
212
|
+
.join(" ");
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* List all available apps from the Composio platform (250+ integrations).
|
|
216
|
+
* Normalizes the response to a consistent shape with logo URLs.
|
|
217
|
+
*/
|
|
218
|
+
export async function listAvailableApps() {
|
|
219
|
+
const client = getClient();
|
|
220
|
+
if (!client)
|
|
221
|
+
return [];
|
|
222
|
+
try {
|
|
223
|
+
const raw = await client.apps.list();
|
|
224
|
+
const apps = raw?.items ?? (Array.isArray(raw) ? raw : []);
|
|
225
|
+
return apps.map((app) => {
|
|
226
|
+
const key = (app.key ?? app.name ?? app.appId ?? "").toLowerCase();
|
|
227
|
+
return {
|
|
228
|
+
appName: key,
|
|
229
|
+
displayName: capitalizeToolName(key),
|
|
230
|
+
description: app.description ?? "",
|
|
231
|
+
logoUrl: app.logo ?? app.logoUrl ?? app.meta?.logo ?? TOOL_LOGOS[key] ?? null,
|
|
232
|
+
categories: app.categories ?? app.tags ?? [],
|
|
233
|
+
};
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
catch (err) {
|
|
237
|
+
console.error("[composio] listAvailableApps failed:", err);
|
|
238
|
+
return [];
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
//# sourceMappingURL=composio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composio.js","sourceRoot":"","sources":["../../src/services/composio.ts"],"names":[],"mappings":"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"}
|
package/dist/services/costs.d.ts
CHANGED
|
@@ -14,8 +14,8 @@ export declare function costService(db: Db, budgetHooks?: BudgetServiceHooks): {
|
|
|
14
14
|
agentId: string;
|
|
15
15
|
goalId: string | null;
|
|
16
16
|
projectId: string | null;
|
|
17
|
-
billingCode: string | null;
|
|
18
17
|
heartbeatRunId: string | null;
|
|
18
|
+
billingCode: string | null;
|
|
19
19
|
issueId: string | null;
|
|
20
20
|
biller: string;
|
|
21
21
|
billingType: string;
|
|
@@ -84,7 +84,7 @@ export declare function costService(db: Db, budgetHooks?: BudgetServiceHooks): {
|
|
|
84
84
|
provider: string;
|
|
85
85
|
biller: string;
|
|
86
86
|
window: string;
|
|
87
|
-
windowHours:
|
|
87
|
+
windowHours: 24 | 5 | 168;
|
|
88
88
|
costCents: number;
|
|
89
89
|
inputTokens: number;
|
|
90
90
|
cachedInputTokens: number;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Db } from "@zmeel/db";
|
|
2
|
+
declare const FILE_TYPES: readonly ["soul", "procedures", "heartbeat", "memory", "tools", "learning"];
|
|
3
|
+
type FileType = typeof FILE_TYPES[number];
|
|
4
|
+
export declare function employeeFileService(db: Db): {
|
|
5
|
+
getFile(agentId: string, fileType: FileType): Promise<{
|
|
6
|
+
version: number;
|
|
7
|
+
id: string;
|
|
8
|
+
updatedAt: Date;
|
|
9
|
+
companyId: string;
|
|
10
|
+
agentId: string;
|
|
11
|
+
fileType: string;
|
|
12
|
+
content: string;
|
|
13
|
+
updatedBy: string;
|
|
14
|
+
}>;
|
|
15
|
+
updateFile(agentId: string, fileType: FileType, content: string, updatedBy?: string): Promise<void>;
|
|
16
|
+
appendToFile(agentId: string, fileType: FileType, appendContent: string, updatedBy?: string): Promise<void>;
|
|
17
|
+
initializeFiles(agentId: string, companyId: string, defaults: Record<FileType, string>): Promise<void>;
|
|
18
|
+
getFullContext(agentId: string): Promise<string>;
|
|
19
|
+
getAllFiles(agentId: string): Promise<{
|
|
20
|
+
version: number;
|
|
21
|
+
id: string;
|
|
22
|
+
updatedAt: Date;
|
|
23
|
+
companyId: string;
|
|
24
|
+
agentId: string;
|
|
25
|
+
fileType: string;
|
|
26
|
+
content: string;
|
|
27
|
+
updatedBy: string;
|
|
28
|
+
}[]>;
|
|
29
|
+
};
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=employee-files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"employee-files.d.ts","sourceRoot":"","sources":["../../src/services/employee-files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAIpC,QAAA,MAAM,UAAU,6EAA8E,CAAC;AAC/F,KAAK,QAAQ,GAAG,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;AAE1C,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,EAAE;qBAEf,MAAM,YAAY,QAAQ;;;;;;;;;;wBAMvB,MAAM,YAAY,QAAQ,WAAW,MAAM,cAAa,MAAM;0BAkB5D,MAAM,YAAY,QAAQ,iBAAiB,MAAM,cAAa,MAAM;6BAOjE,MAAM,aAAa,MAAM,YAAY,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;4BAY9D,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;yBAqB3B,MAAM;;;;;;;;;;EAKpC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { employeeFiles } from "@zmeel/db";
|
|
2
|
+
import { eq, and } from "drizzle-orm";
|
|
3
|
+
const FILE_TYPES = ["soul", "procedures", "heartbeat", "memory", "tools", "learning"];
|
|
4
|
+
export function employeeFileService(db) {
|
|
5
|
+
return {
|
|
6
|
+
async getFile(agentId, fileType) {
|
|
7
|
+
const rows = await db.select().from(employeeFiles)
|
|
8
|
+
.where(and(eq(employeeFiles.agentId, agentId), eq(employeeFiles.fileType, fileType)));
|
|
9
|
+
return rows[0] ?? null;
|
|
10
|
+
},
|
|
11
|
+
async updateFile(agentId, fileType, content, updatedBy = "system") {
|
|
12
|
+
const existing = await this.getFile(agentId, fileType);
|
|
13
|
+
if (existing) {
|
|
14
|
+
await db.update(employeeFiles)
|
|
15
|
+
.set({ content, version: existing.version + 1, updatedAt: new Date(), updatedBy })
|
|
16
|
+
.where(eq(employeeFiles.id, existing.id));
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
// shouldn't happen if initialized, but handle gracefully
|
|
20
|
+
const file = await this.getFile(agentId, fileType);
|
|
21
|
+
if (!file) {
|
|
22
|
+
// Get companyId from the first file or default
|
|
23
|
+
await db.insert(employeeFiles).values({
|
|
24
|
+
agentId, companyId: "", fileType, content, updatedBy
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
async appendToFile(agentId, fileType, appendContent, updatedBy = "agent") {
|
|
30
|
+
const existing = await this.getFile(agentId, fileType);
|
|
31
|
+
const currentContent = existing?.content ?? "";
|
|
32
|
+
const newContent = currentContent + "\n" + appendContent;
|
|
33
|
+
await this.updateFile(agentId, fileType, newContent, updatedBy);
|
|
34
|
+
},
|
|
35
|
+
async initializeFiles(agentId, companyId, defaults) {
|
|
36
|
+
for (const fileType of FILE_TYPES) {
|
|
37
|
+
await db.insert(employeeFiles).values({
|
|
38
|
+
agentId,
|
|
39
|
+
companyId,
|
|
40
|
+
fileType,
|
|
41
|
+
content: defaults[fileType] ?? "",
|
|
42
|
+
updatedBy: "system",
|
|
43
|
+
}).onConflictDoNothing();
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
async getFullContext(agentId) {
|
|
47
|
+
const files = await db.select().from(employeeFiles)
|
|
48
|
+
.where(eq(employeeFiles.agentId, agentId));
|
|
49
|
+
const fileMap = {};
|
|
50
|
+
for (const f of files) {
|
|
51
|
+
fileMap[f.fileType] = f.content;
|
|
52
|
+
}
|
|
53
|
+
const sections = [
|
|
54
|
+
fileMap.soul ? `# SOUL\n${fileMap.soul}` : "",
|
|
55
|
+
fileMap.procedures ? `# PROCEDURES\n${fileMap.procedures}` : "",
|
|
56
|
+
fileMap.heartbeat ? `# SCHEDULED TASKS\n${fileMap.heartbeat}` : "",
|
|
57
|
+
fileMap.tools ? `# CONNECTED TOOLS\n${fileMap.tools}` : "",
|
|
58
|
+
fileMap.memory ? `# MEMORY\n${fileMap.memory}` : "",
|
|
59
|
+
fileMap.learning ? `# LEARNING\n${fileMap.learning}` : "",
|
|
60
|
+
].filter(Boolean);
|
|
61
|
+
return sections.join("\n\n---\n\n");
|
|
62
|
+
},
|
|
63
|
+
async getAllFiles(agentId) {
|
|
64
|
+
return db.select().from(employeeFiles)
|
|
65
|
+
.where(eq(employeeFiles.agentId, agentId));
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=employee-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"employee-files.js","sourceRoot":"","sources":["../../src/services/employee-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,10 +16,10 @@ export declare function feedbackService(db: Db, options?: FeedbackServiceOptions
|
|
|
16
16
|
companyId: string;
|
|
17
17
|
reason: string | null;
|
|
18
18
|
issueId: string;
|
|
19
|
+
authorUserId: string;
|
|
19
20
|
targetType: string;
|
|
20
21
|
targetId: string;
|
|
21
22
|
vote: string;
|
|
22
|
-
authorUserId: string;
|
|
23
23
|
sharedWithLabs: boolean;
|
|
24
24
|
sharedAt: Date | null;
|
|
25
25
|
consentVersion: string | null;
|
|
@@ -74,10 +74,10 @@ export declare function feedbackService(db: Db, options?: FeedbackServiceOptions
|
|
|
74
74
|
companyId: string;
|
|
75
75
|
reason: string | null;
|
|
76
76
|
issueId: string;
|
|
77
|
+
authorUserId: string;
|
|
77
78
|
targetType: string;
|
|
78
79
|
targetId: string;
|
|
79
80
|
vote: string;
|
|
80
|
-
authorUserId: string;
|
|
81
81
|
sharedWithLabs: boolean;
|
|
82
82
|
sharedAt: Date | null;
|
|
83
83
|
consentVersion: string | null;
|
|
@@ -14,8 +14,8 @@ export declare function financeService(db: Db): {
|
|
|
14
14
|
agentId: string | null;
|
|
15
15
|
goalId: string | null;
|
|
16
16
|
projectId: string | null;
|
|
17
|
-
billingCode: string | null;
|
|
18
17
|
heartbeatRunId: string | null;
|
|
18
|
+
billingCode: string | null;
|
|
19
19
|
issueId: string | null;
|
|
20
20
|
biller: string;
|
|
21
21
|
model: string | null;
|
|
@@ -69,8 +69,8 @@ export declare function financeService(db: Db): {
|
|
|
69
69
|
agentId: string | null;
|
|
70
70
|
goalId: string | null;
|
|
71
71
|
projectId: string | null;
|
|
72
|
-
billingCode: string | null;
|
|
73
72
|
heartbeatRunId: string | null;
|
|
73
|
+
billingCode: string | null;
|
|
74
74
|
issueId: string | null;
|
|
75
75
|
biller: string;
|
|
76
76
|
model: string | null;
|
package/dist/services/goals.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { Db } from "@zmeel/db";
|
|
|
2
2
|
import { goals } from "@zmeel/db";
|
|
3
3
|
type GoalReader = Pick<Db, "select">;
|
|
4
4
|
export declare function getDefaultCompanyGoal(db: GoalReader, companyId: string): Promise<{
|
|
5
|
+
level: string;
|
|
5
6
|
id: string;
|
|
6
7
|
description: string | null;
|
|
7
8
|
status: string;
|
|
@@ -9,7 +10,6 @@ export declare function getDefaultCompanyGoal(db: GoalReader, companyId: string)
|
|
|
9
10
|
updatedAt: Date;
|
|
10
11
|
companyId: string;
|
|
11
12
|
title: string;
|
|
12
|
-
level: string;
|
|
13
13
|
parentId: string | null;
|
|
14
14
|
ownerAgentId: string | null;
|
|
15
15
|
}>;
|
|
@@ -186,6 +186,7 @@ export declare function goalService(db: Db): {
|
|
|
186
186
|
generated: undefined;
|
|
187
187
|
}, {}, {}>;
|
|
188
188
|
}, "single", Record<"goals", "not-null">, false, "where", {
|
|
189
|
+
level: string;
|
|
189
190
|
id: string;
|
|
190
191
|
description: string | null;
|
|
191
192
|
status: string;
|
|
@@ -193,7 +194,6 @@ export declare function goalService(db: Db): {
|
|
|
193
194
|
updatedAt: Date;
|
|
194
195
|
companyId: string;
|
|
195
196
|
title: string;
|
|
196
|
-
level: string;
|
|
197
197
|
parentId: string | null;
|
|
198
198
|
ownerAgentId: string | null;
|
|
199
199
|
}[], {
|
|
@@ -369,6 +369,7 @@ export declare function goalService(db: Db): {
|
|
|
369
369
|
}, {}, {}>;
|
|
370
370
|
}>, "where">;
|
|
371
371
|
getById: (id: string) => Promise<{
|
|
372
|
+
level: string;
|
|
372
373
|
id: string;
|
|
373
374
|
description: string | null;
|
|
374
375
|
status: string;
|
|
@@ -376,11 +377,11 @@ export declare function goalService(db: Db): {
|
|
|
376
377
|
updatedAt: Date;
|
|
377
378
|
companyId: string;
|
|
378
379
|
title: string;
|
|
379
|
-
level: string;
|
|
380
380
|
parentId: string | null;
|
|
381
381
|
ownerAgentId: string | null;
|
|
382
382
|
}>;
|
|
383
383
|
getDefaultCompanyGoal: (companyId: string) => Promise<{
|
|
384
|
+
level: string;
|
|
384
385
|
id: string;
|
|
385
386
|
description: string | null;
|
|
386
387
|
status: string;
|
|
@@ -388,11 +389,11 @@ export declare function goalService(db: Db): {
|
|
|
388
389
|
updatedAt: Date;
|
|
389
390
|
companyId: string;
|
|
390
391
|
title: string;
|
|
391
|
-
level: string;
|
|
392
392
|
parentId: string | null;
|
|
393
393
|
ownerAgentId: string | null;
|
|
394
394
|
}>;
|
|
395
395
|
create: (companyId: string, data: Omit<typeof goals.$inferInsert, "companyId">) => Promise<{
|
|
396
|
+
level: string;
|
|
396
397
|
id: string;
|
|
397
398
|
description: string | null;
|
|
398
399
|
status: string;
|
|
@@ -400,7 +401,6 @@ export declare function goalService(db: Db): {
|
|
|
400
401
|
updatedAt: Date;
|
|
401
402
|
companyId: string;
|
|
402
403
|
title: string;
|
|
403
|
-
level: string;
|
|
404
404
|
parentId: string | null;
|
|
405
405
|
ownerAgentId: string | null;
|
|
406
406
|
}>;
|
|
@@ -417,6 +417,7 @@ export declare function goalService(db: Db): {
|
|
|
417
417
|
updatedAt: Date;
|
|
418
418
|
}>;
|
|
419
419
|
remove: (id: string) => Promise<{
|
|
420
|
+
level: string;
|
|
420
421
|
id: string;
|
|
421
422
|
description: string | null;
|
|
422
423
|
status: string;
|
|
@@ -424,7 +425,6 @@ export declare function goalService(db: Db): {
|
|
|
424
425
|
updatedAt: Date;
|
|
425
426
|
companyId: string;
|
|
426
427
|
title: string;
|
|
427
|
-
level: string;
|
|
428
428
|
parentId: string | null;
|
|
429
429
|
ownerAgentId: string | null;
|
|
430
430
|
}>;
|
|
@@ -124,17 +124,17 @@ export declare function heartbeatService(db: Db): {
|
|
|
124
124
|
updatedAt: Date;
|
|
125
125
|
}[]>;
|
|
126
126
|
getRun: (runId: string) => Promise<{
|
|
127
|
+
error: string | null;
|
|
127
128
|
id: string;
|
|
128
129
|
status: string;
|
|
129
130
|
createdAt: Date;
|
|
130
131
|
updatedAt: Date;
|
|
131
132
|
companyId: string;
|
|
132
133
|
agentId: string;
|
|
133
|
-
triggerDetail: string | null;
|
|
134
|
-
finishedAt: Date | null;
|
|
135
|
-
error: string | null;
|
|
136
134
|
invocationSource: string;
|
|
135
|
+
triggerDetail: string | null;
|
|
137
136
|
startedAt: Date | null;
|
|
137
|
+
finishedAt: Date | null;
|
|
138
138
|
wakeupRequestId: string | null;
|
|
139
139
|
exitCode: number | null;
|
|
140
140
|
signal: string | null;
|
|
@@ -417,18 +417,18 @@ export declare function heartbeatService(db: Db): {
|
|
|
417
417
|
generated: undefined;
|
|
418
418
|
}, {}, {}>;
|
|
419
419
|
}, "single", Record<"heartbeat_run_events", "not-null">, false, "where" | "orderBy" | "limit", {
|
|
420
|
+
level: string | null;
|
|
420
421
|
id: number;
|
|
421
422
|
createdAt: Date;
|
|
422
423
|
companyId: string;
|
|
423
424
|
payload: Record<string, unknown> | null;
|
|
424
425
|
agentId: string;
|
|
425
426
|
runId: string;
|
|
426
|
-
level: string | null;
|
|
427
427
|
color: string | null;
|
|
428
|
-
message: string | null;
|
|
429
428
|
seq: number;
|
|
430
429
|
eventType: string;
|
|
431
430
|
stream: string | null;
|
|
431
|
+
message: string | null;
|
|
432
432
|
}[], {
|
|
433
433
|
id: import("drizzle-orm/pg-core").PgColumn<{
|
|
434
434
|
name: "id";
|
|
@@ -651,17 +651,17 @@ export declare function heartbeatService(db: Db): {
|
|
|
651
651
|
actorType?: "user" | "agent" | "system";
|
|
652
652
|
actorId?: string | null;
|
|
653
653
|
}) => Promise<{
|
|
654
|
+
error: string | null;
|
|
654
655
|
id: string;
|
|
655
656
|
status: string;
|
|
656
657
|
createdAt: Date;
|
|
657
658
|
updatedAt: Date;
|
|
658
659
|
companyId: string;
|
|
659
660
|
agentId: string;
|
|
660
|
-
triggerDetail: string | null;
|
|
661
|
-
finishedAt: Date | null;
|
|
662
|
-
error: string | null;
|
|
663
661
|
invocationSource: string;
|
|
662
|
+
triggerDetail: string | null;
|
|
664
663
|
startedAt: Date | null;
|
|
664
|
+
finishedAt: Date | null;
|
|
665
665
|
wakeupRequestId: string | null;
|
|
666
666
|
exitCode: number | null;
|
|
667
667
|
signal: string | null;
|
|
@@ -685,17 +685,17 @@ export declare function heartbeatService(db: Db): {
|
|
|
685
685
|
contextSnapshot: Record<string, unknown> | null;
|
|
686
686
|
} | null>;
|
|
687
687
|
wakeup: (agentId: string, opts?: WakeupOptions) => Promise<{
|
|
688
|
+
error: string | null;
|
|
688
689
|
id: string;
|
|
689
690
|
status: string;
|
|
690
691
|
createdAt: Date;
|
|
691
692
|
updatedAt: Date;
|
|
692
693
|
companyId: string;
|
|
693
694
|
agentId: string;
|
|
694
|
-
triggerDetail: string | null;
|
|
695
|
-
finishedAt: Date | null;
|
|
696
|
-
error: string | null;
|
|
697
695
|
invocationSource: string;
|
|
696
|
+
triggerDetail: string | null;
|
|
698
697
|
startedAt: Date | null;
|
|
698
|
+
finishedAt: Date | null;
|
|
699
699
|
wakeupRequestId: string | null;
|
|
700
700
|
exitCode: number | null;
|
|
701
701
|
signal: string | null;
|
|
@@ -765,17 +765,17 @@ export declare function heartbeatService(db: Db): {
|
|
|
765
765
|
skipped: number;
|
|
766
766
|
}>;
|
|
767
767
|
cancelRun: (runId: string) => Promise<{
|
|
768
|
+
error: string | null;
|
|
768
769
|
id: string;
|
|
769
770
|
status: string;
|
|
770
771
|
createdAt: Date;
|
|
771
772
|
updatedAt: Date;
|
|
772
773
|
companyId: string;
|
|
773
774
|
agentId: string;
|
|
774
|
-
triggerDetail: string | null;
|
|
775
|
-
finishedAt: Date | null;
|
|
776
|
-
error: string | null;
|
|
777
775
|
invocationSource: string;
|
|
776
|
+
triggerDetail: string | null;
|
|
778
777
|
startedAt: Date | null;
|
|
778
|
+
finishedAt: Date | null;
|
|
779
779
|
wakeupRequestId: string | null;
|
|
780
780
|
exitCode: number | null;
|
|
781
781
|
signal: string | null;
|
|
@@ -801,17 +801,17 @@ export declare function heartbeatService(db: Db): {
|
|
|
801
801
|
cancelActiveForAgent: (agentId: string) => Promise<number>;
|
|
802
802
|
cancelBudgetScopeWork: (scope: BudgetEnforcementScope) => Promise<void>;
|
|
803
803
|
getActiveRunForAgent: (agentId: string) => Promise<{
|
|
804
|
+
error: string | null;
|
|
804
805
|
id: string;
|
|
805
806
|
status: string;
|
|
806
807
|
createdAt: Date;
|
|
807
808
|
updatedAt: Date;
|
|
808
809
|
companyId: string;
|
|
809
810
|
agentId: string;
|
|
810
|
-
triggerDetail: string | null;
|
|
811
|
-
finishedAt: Date | null;
|
|
812
|
-
error: string | null;
|
|
813
811
|
invocationSource: string;
|
|
812
|
+
triggerDetail: string | null;
|
|
814
813
|
startedAt: Date | null;
|
|
814
|
+
finishedAt: Date | null;
|
|
815
815
|
wakeupRequestId: string | null;
|
|
816
816
|
exitCode: number | null;
|
|
817
817
|
signal: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../../src/services/heartbeat.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAe,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAC/F,OAAO,EACL,MAAM,EASP,MAAM,WAAW,CAAC;AAMnB,OAAO,KAAK,EAAiD,mBAAmB,EAAgB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../../src/services/heartbeat.ts"],"names":[],"mappings":"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"}
|