agentstudio 0.1.26 → 0.1.28
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/index.d.ts.map +1 -1
- package/index.js +36 -18
- package/index.js.map +1 -1
- package/package.json +6 -5
- package/public/assets/{AgentsPage-DR5v4Vfe.js → AgentsPage-VVVyzMq0.js} +1 -1
- package/public/assets/{Button-6I_OiXLX.js → Button-B9AQtJ7x.js} +1 -1
- package/public/assets/{ChatPage-DzORphjz.js → ChatPage-p1JCfA2A.js} +5 -5
- package/public/assets/{CommandForm-k3XXwCB4.js → CommandForm-B_beYCv3.js} +1 -1
- package/public/assets/{CommandsPage-C6dcKcFf.js → CommandsPage-Blc1Kt4Z.js} +1 -1
- package/public/assets/{DashboardPage-4YSwoWTH.js → DashboardPage-Dokn4y-N.js} +1 -1
- package/public/assets/{FileBrowser-BvyXd63f.js → FileBrowser-Dg9PfXOo.js} +4 -4
- package/public/assets/{FileExplorer-DhPt_quM.js → FileExplorer-B7BFy0Tu.js} +1 -1
- package/public/assets/{GeneralSettingsPage-DkHRbImS.js → GeneralSettingsPage-DLSSSadp.js} +1 -1
- package/public/assets/LandingPage-Ck2WpTto.js +1 -0
- package/public/assets/{LoginPage-Bfy9WmmY.js → LoginPage-D2Ykhr7D.js} +4 -4
- package/public/assets/{McpAdminSettingsPage-BFuQouo8.js → McpAdminSettingsPage-BAKOckWx.js} +1 -1
- package/public/assets/{McpPage-DDiRtENp.js → McpPage-DkD9BOrP.js} +1 -1
- package/public/assets/{MemorySettingsPage-D5Kec6pT.js → MemorySettingsPage-CiUs5u2g.js} +1 -1
- package/public/assets/{PluginsPage-DSo1pTD-.js → PluginsPage-CkXNjZMq.js} +1 -1
- package/public/assets/{ProjectSelector-Dqm5v8o9.js → ProjectSelector-B1_umywl.js} +1 -1
- package/public/assets/ProjectsPage-CQ8zwJ5D.js +21 -0
- package/public/assets/ScheduledTasksPage-BjSzD4T2.js +1 -0
- package/public/assets/{SettingsLayout-Blt_jAZx.js → SettingsLayout-CccK5RVj.js} +1 -1
- package/public/assets/{SkillsPage-B5YxNlWJ.js → SkillsPage-D_LECy2S.js} +1 -1
- package/public/assets/{SubagentForm-B09hmrYM.js → SubagentForm-D9EFQxlZ.js} +1 -1
- package/public/assets/{SubagentsPage-Bqk10bb7.js → SubagentsPage-D_sdehiT.js} +1 -1
- package/public/assets/SystemInfoPage-vz5Ey9DK.js +1 -0
- package/public/assets/TelemetrySettingsPage-DMngnKDW.js +1 -0
- package/public/assets/{ToastTestPage-Dzfb1AsW.js → ToastTestPage-CafmBcnU.js} +1 -1
- package/public/assets/{ToolsList-CmrJAKcE.js → ToolsList-CnepUgI-.js} +1 -1
- package/public/assets/{UnifiedToolSelector-CN690ltz.js → UnifiedToolSelector-CnFTY88B.js} +1 -1
- package/public/assets/VersionSettingsPage-D9hYO4VL.js +5 -0
- package/public/assets/{_basePickBy-X3KkSOFK.js → _basePickBy-lvDxpUoY.js} +1 -1
- package/public/assets/{_baseUniq-cv9EC14t.js → _baseUniq-DyqfOLmW.js} +1 -1
- package/public/assets/{agents-DfHGzNHW.js → agents-DmLFhp96.js} +1 -1
- package/public/assets/arc-DuR7lLva.js +1 -0
- package/public/assets/{architectureDiagram-VXUJARFQ-CMo92Xcm.js → architectureDiagram-VXUJARFQ-CkKlTxxx.js} +1 -1
- package/public/assets/{blockDiagram-VD42YOAC-CSewaHod.js → blockDiagram-VD42YOAC-DdR02awp.js} +1 -1
- package/public/assets/{c4Diagram-YG6GDRKO-D4-A7anv.js → c4Diagram-YG6GDRKO-MlkMVL2r.js} +1 -1
- package/public/assets/channel-DHM1jRJ0.js +1 -0
- package/public/assets/{chunk-4BX2VUAB-CKW-jgB1.js → chunk-4BX2VUAB-BI02zXQl.js} +1 -1
- package/public/assets/{chunk-55IACEB6-Bh_iEZAg.js → chunk-55IACEB6-DtWZPbH-.js} +1 -1
- package/public/assets/{chunk-B4BG7PRW-CGcWESsJ.js → chunk-B4BG7PRW-yLeRKRZl.js} +1 -1
- package/public/assets/{chunk-DI55MBZ5-BNQVU-r5.js → chunk-DI55MBZ5-DF-5ELa5.js} +1 -1
- package/public/assets/{chunk-FMBD7UC4-B51X6fKC.js → chunk-FMBD7UC4-BjJNxbrL.js} +1 -1
- package/public/assets/{chunk-QN33PNHL-DadRd0Qs.js → chunk-QN33PNHL-rs7Z3IPT.js} +1 -1
- package/public/assets/{chunk-QZHKN3VN-0AwjBk6f.js → chunk-QZHKN3VN-DoIXOkrg.js} +1 -1
- package/public/assets/{chunk-TZMSLE5B-CIFE5KnY.js → chunk-TZMSLE5B-xkKgCGO2.js} +1 -1
- package/public/assets/classDiagram-2ON5EDUG-BJtIba9N.js +1 -0
- package/public/assets/classDiagram-v2-WZHVMYZB-BJtIba9N.js +1 -0
- package/public/assets/clone-Bbn_OKGL.js +1 -0
- package/public/assets/{cose-bilkent-S5V4N54A-BPWEQsNm.js → cose-bilkent-S5V4N54A-BIz6tY7t.js} +1 -1
- package/public/assets/{dagre-6UL2VRFP-Cu-RCZe5.js → dagre-6UL2VRFP-CponDeYZ.js} +1 -1
- package/public/assets/{diagram-PSM6KHXK-DBfl10yA.js → diagram-PSM6KHXK-D31S6iiK.js} +1 -1
- package/public/assets/{diagram-QEK2KX5R-CXLsPBvR.js → diagram-QEK2KX5R-C6RWP-cs.js} +1 -1
- package/public/assets/{diagram-S2PKOQOG-BjaXE_9W.js → diagram-S2PKOQOG-BKs_7af1.js} +1 -1
- package/public/assets/{erDiagram-Q2GNP2WA-BPkK30VB.js → erDiagram-Q2GNP2WA-Ro9hB6-s.js} +1 -1
- package/public/assets/{flowDiagram-NV44I4VS-i4BoJF1x.js → flowDiagram-NV44I4VS-IKSFEVlB.js} +1 -1
- package/public/assets/{ganttDiagram-LVOFAZNH-C7Fa9LKl.js → ganttDiagram-LVOFAZNH-CPDNSzAq.js} +1 -1
- package/public/assets/{gitGraphDiagram-NY62KEGX-x4fV46FC.js → gitGraphDiagram-NY62KEGX-c_yb5ztL.js} +1 -1
- package/public/assets/{graph-Bj4qRtTX.js → graph-BoMdSZEp.js} +1 -1
- package/public/assets/index-BUj-AMWq.js +297 -0
- package/public/assets/index-CEBbr0XW.css +1 -0
- package/public/assets/infoDiagram-F6ZHWCRC-904Ek2Zh.js +2 -0
- package/public/assets/{journeyDiagram-XKPGCS4Q-BByZuK2D.js → journeyDiagram-XKPGCS4Q-D4izttrO.js} +1 -1
- package/public/assets/{kanban-definition-3W4ZIXB7-BW-KJqNN.js → kanban-definition-3W4ZIXB7-DE7WCrea.js} +1 -1
- package/public/assets/{layout-BIkzRvdA.js → layout-BezNHWMi.js} +1 -1
- package/public/assets/{linear-CY3SKQlQ.js → linear-KRX5ckNK.js} +1 -1
- package/public/assets/{mindmap-definition-VGOIOE7T-CIjq8dul.js → mindmap-definition-VGOIOE7T-Dlr09KqO.js} +1 -1
- package/public/assets/{pieDiagram-ADFJNKIX-CYrXbDgB.js → pieDiagram-ADFJNKIX-Bbzzfu-z.js} +2 -2
- package/public/assets/{quadrantDiagram-AYHSOK5B-zshqcC4H.js → quadrantDiagram-AYHSOK5B-DubsKDPG.js} +1 -1
- package/public/assets/{requirementDiagram-UZGBJVZJ-Eykzktn0.js → requirementDiagram-UZGBJVZJ-B-rG6Gty.js} +1 -1
- package/public/assets/{sankeyDiagram-TZEHDZUN-CUUZTWXT.js → sankeyDiagram-TZEHDZUN-DU7Rgr_5.js} +1 -1
- package/public/assets/{sequenceDiagram-WL72ISMW-u-TgVaJG.js → sequenceDiagram-WL72ISMW-BRlH6dPX.js} +1 -1
- package/public/assets/stateDiagram-FKZM4ZOC-BeAzs0_-.js +1 -0
- package/public/assets/stateDiagram-v2-4FDKWEC3-C0c8d9Xs.js +1 -0
- package/public/assets/{table-DUC-Ijtn.js → table-aqcpYX4Z.js} +1 -1
- package/public/assets/{timeline-definition-IT6M3QCI-CJpXtgDn.js → timeline-definition-IT6M3QCI-BU_B1RmT.js} +1 -1
- package/public/assets/{tools-CljQNVZC.js → tools-XV29tg8x.js} +1 -1
- package/public/assets/{treemap-KMMF4GRG-BHfi2-Z-.js → treemap-KMMF4GRG-CP2M7QfX.js} +1 -1
- package/public/assets/{ui-components-umMeMlgF.js → ui-components-ND8WdSiV.js} +135 -120
- package/public/assets/{useAgents-Cc9gZfER.js → useAgents-COcSvqDE.js} +1 -1
- package/public/assets/{useClaudeVersions-oq1-p4ja.js → useClaudeVersions-C8b4adpW.js} +1 -1
- package/public/assets/{useCommands-CgIOltx6.js → useCommands-D79pjz3C.js} +1 -1
- package/public/assets/{useProjects-B1Ip38ES.js → useProjects-CP0Q5-jg.js} +1 -1
- package/public/assets/{useSessions-Dl3mKnA7.js → useSessions-C2gXprHI.js} +1 -1
- package/public/assets/{xychartDiagram-PRI3JC2R-DrK8IYgl.js → xychartDiagram-PRI3JC2R-OdQKUqyr.js} +1 -1
- package/public/index.html +5 -5
- package/routes/a2a.d.ts.map +1 -1
- package/routes/a2a.js +84 -26
- package/routes/a2a.js.map +1 -1
- package/routes/agents.js +2 -2
- package/routes/agents.js.map +1 -1
- package/routes/projects.d.ts.map +1 -1
- package/routes/projects.js +35 -3
- package/routes/projects.js.map +1 -1
- package/routes/scheduledTasks.d.ts.map +1 -1
- package/routes/scheduledTasks.js +68 -2
- package/routes/scheduledTasks.js.map +1 -1
- package/routes/taskExecutor.d.ts +9 -0
- package/routes/taskExecutor.d.ts.map +1 -0
- package/routes/taskExecutor.js +224 -0
- package/routes/taskExecutor.js.map +1 -0
- package/routes/version.d.ts +4 -0
- package/routes/version.d.ts.map +1 -0
- package/routes/version.js +216 -0
- package/routes/version.js.map +1 -0
- package/schemas/a2a.d.ts +106 -18
- package/schemas/a2a.d.ts.map +1 -1
- package/schemas/a2a.js +17 -1
- package/schemas/a2a.js.map +1 -1
- package/services/__tests__/sessionConcurrency.test.d.ts +7 -0
- package/services/__tests__/sessionConcurrency.test.d.ts.map +1 -0
- package/services/__tests__/sessionConcurrency.test.js +110 -0
- package/services/__tests__/sessionConcurrency.test.js.map +1 -0
- package/services/__tests__/slackAIService.test.js +10 -8
- package/services/__tests__/slackAIService.test.js.map +1 -1
- package/services/a2a/__tests__/agentCardService.test.js +1 -1
- package/services/a2a/__tests__/agentCardService.test.js.map +1 -1
- package/services/a2a/__tests__/webhookService.test.d.ts +6 -0
- package/services/a2a/__tests__/webhookService.test.d.ts.map +1 -0
- package/services/a2a/__tests__/webhookService.test.js +196 -0
- package/services/a2a/__tests__/webhookService.test.js.map +1 -0
- package/services/a2a/a2aClientTool.d.ts +2 -2
- package/services/a2a/a2aClientTool.d.ts.map +1 -1
- package/services/a2a/a2aClientTool.js +5 -3
- package/services/a2a/a2aClientTool.js.map +1 -1
- package/services/a2a/a2aIntegration.d.ts +2 -1
- package/services/a2a/a2aIntegration.d.ts.map +1 -1
- package/services/a2a/a2aIntegration.js +3 -2
- package/services/a2a/a2aIntegration.js.map +1 -1
- package/services/a2a/a2aSdkMcp.d.ts +2 -1
- package/services/a2a/a2aSdkMcp.d.ts.map +1 -1
- package/services/a2a/a2aSdkMcp.js +4 -1
- package/services/a2a/a2aSdkMcp.js.map +1 -1
- package/services/a2a/taskManager.d.ts +2 -1
- package/services/a2a/taskManager.d.ts.map +1 -1
- package/services/a2a/taskManager.js +3 -1
- package/services/a2a/taskManager.js.map +1 -1
- package/services/a2a/webhookService.d.ts +30 -0
- package/services/a2a/webhookService.d.ts.map +1 -0
- package/services/a2a/webhookService.js +113 -0
- package/services/a2a/webhookService.js.map +1 -0
- package/services/claudeSession.d.ts +6 -0
- package/services/claudeSession.d.ts.map +1 -1
- package/services/claudeSession.js +23 -1
- package/services/claudeSession.js.map +1 -1
- package/services/mcpAdmin/__tests__/providerTools.test.d.ts +7 -0
- package/services/mcpAdmin/__tests__/providerTools.test.d.ts.map +1 -0
- package/services/mcpAdmin/__tests__/providerTools.test.js +258 -0
- package/services/mcpAdmin/__tests__/providerTools.test.js.map +1 -0
- package/services/mcpAdmin/__tests__/tools.test.js +21 -3
- package/services/mcpAdmin/__tests__/tools.test.js.map +1 -1
- package/services/mcpAdmin/tools/agentTools.d.ts.map +1 -1
- package/services/mcpAdmin/tools/agentTools.js +4 -11
- package/services/mcpAdmin/tools/agentTools.js.map +1 -1
- package/services/mcpAdmin/tools/index.d.ts +1 -0
- package/services/mcpAdmin/tools/index.d.ts.map +1 -1
- package/services/mcpAdmin/tools/index.js +5 -1
- package/services/mcpAdmin/tools/index.js.map +1 -1
- package/services/mcpAdmin/tools/projectTools.d.ts.map +1 -1
- package/services/mcpAdmin/tools/projectTools.js +30 -1
- package/services/mcpAdmin/tools/projectTools.js.map +1 -1
- package/services/mcpAdmin/tools/providerTools.d.ts +40 -0
- package/services/mcpAdmin/tools/providerTools.d.ts.map +1 -0
- package/services/mcpAdmin/tools/providerTools.js +581 -0
- package/services/mcpAdmin/tools/providerTools.js.map +1 -0
- package/services/projectMetadataStorage.d.ts +1 -1
- package/services/projectMetadataStorage.d.ts.map +1 -1
- package/services/projectMetadataStorage.js.map +1 -1
- package/services/scheduledTaskStorage.d.ts +11 -0
- package/services/scheduledTaskStorage.d.ts.map +1 -1
- package/services/scheduledTaskStorage.js +66 -0
- package/services/scheduledTaskStorage.js.map +1 -1
- package/services/schedulerService.d.ts +10 -0
- package/services/schedulerService.d.ts.map +1 -1
- package/services/schedulerService.js +71 -224
- package/services/schedulerService.js.map +1 -1
- package/services/sessionManager.d.ts +6 -0
- package/services/sessionManager.d.ts.map +1 -1
- package/services/sessionManager.js +12 -0
- package/services/sessionManager.js.map +1 -1
- package/services/slackAIService.d.ts.map +1 -1
- package/services/slackAIService.js +39 -14
- package/services/slackAIService.js.map +1 -1
- package/services/taskExecutor/BuiltinExecutor.d.ts +44 -0
- package/services/taskExecutor/BuiltinExecutor.d.ts.map +1 -0
- package/services/taskExecutor/BuiltinExecutor.js +513 -0
- package/services/taskExecutor/BuiltinExecutor.js.map +1 -0
- package/services/taskExecutor/__tests__/a2a-tasks.test.d.ts +7 -0
- package/services/taskExecutor/__tests__/a2a-tasks.test.d.ts.map +1 -0
- package/services/taskExecutor/__tests__/a2a-tasks.test.js +328 -0
- package/services/taskExecutor/__tests__/a2a-tasks.test.js.map +1 -0
- package/services/taskExecutor/__tests__/e2e-workflows.test.d.ts +7 -0
- package/services/taskExecutor/__tests__/e2e-workflows.test.d.ts.map +1 -0
- package/services/taskExecutor/__tests__/e2e-workflows.test.js +446 -0
- package/services/taskExecutor/__tests__/e2e-workflows.test.js.map +1 -0
- package/services/taskExecutor/__tests__/error-handling.test.d.ts +7 -0
- package/services/taskExecutor/__tests__/error-handling.test.d.ts.map +1 -0
- package/services/taskExecutor/__tests__/error-handling.test.js +387 -0
- package/services/taskExecutor/__tests__/error-handling.test.js.map +1 -0
- package/services/taskExecutor/__tests__/stress.test.d.ts +7 -0
- package/services/taskExecutor/__tests__/stress.test.d.ts.map +1 -0
- package/services/taskExecutor/__tests__/stress.test.js +329 -0
- package/services/taskExecutor/__tests__/stress.test.js.map +1 -0
- package/services/taskExecutor/__tests__/taskExecutor.integration.test.d.ts +7 -0
- package/services/taskExecutor/__tests__/taskExecutor.integration.test.d.ts.map +1 -0
- package/services/taskExecutor/__tests__/taskExecutor.integration.test.js +205 -0
- package/services/taskExecutor/__tests__/taskExecutor.integration.test.js.map +1 -0
- package/services/taskExecutor/__tests__/timeout-cancellation.test.d.ts +7 -0
- package/services/taskExecutor/__tests__/timeout-cancellation.test.d.ts.map +1 -0
- package/services/taskExecutor/__tests__/timeout-cancellation.test.js +319 -0
- package/services/taskExecutor/__tests__/timeout-cancellation.test.js.map +1 -0
- package/services/taskExecutor/index.d.ts +40 -0
- package/services/taskExecutor/index.d.ts.map +1 -0
- package/services/taskExecutor/index.js +166 -0
- package/services/taskExecutor/index.js.map +1 -0
- package/services/taskExecutor/taskWorker.d.ts +11 -0
- package/services/taskExecutor/taskWorker.d.ts.map +1 -0
- package/services/taskExecutor/taskWorker.js +170 -0
- package/services/taskExecutor/taskWorker.js.map +1 -0
- package/services/taskExecutor/types.d.ts +145 -0
- package/services/taskExecutor/types.d.ts.map +1 -0
- package/services/taskExecutor/types.js +9 -0
- package/services/taskExecutor/types.js.map +1 -0
- package/services/telemetry.d.ts +40 -0
- package/services/telemetry.d.ts.map +1 -0
- package/services/telemetry.js +245 -0
- package/services/telemetry.js.map +1 -0
- package/types/a2a.d.ts +18 -0
- package/types/a2a.d.ts.map +1 -1
- package/types/a2a.js.map +1 -1
- package/types/agents.d.ts +0 -1
- package/types/agents.d.ts.map +1 -1
- package/types/agents.js +0 -1
- package/types/agents.js.map +1 -1
- package/types/projects.d.ts +2 -0
- package/types/projects.d.ts.map +1 -1
- package/types/scheduledTasks.d.ts +4 -0
- package/types/scheduledTasks.d.ts.map +1 -1
- package/types/scheduledTasks.js.map +1 -1
- package/utils/__tests__/claudeUtils.test.js +3 -2
- package/utils/__tests__/claudeUtils.test.js.map +1 -1
- package/utils/__tests__/configResolver.test.d.ts +7 -0
- package/utils/__tests__/configResolver.test.d.ts.map +1 -0
- package/utils/__tests__/configResolver.test.js +211 -0
- package/utils/__tests__/configResolver.test.js.map +1 -0
- package/utils/__tests__/sessionUtils.test.js +2 -1
- package/utils/__tests__/sessionUtils.test.js.map +1 -1
- package/utils/claudeUtils.d.ts +2 -1
- package/utils/claudeUtils.d.ts.map +1 -1
- package/utils/claudeUtils.js +45 -78
- package/utils/claudeUtils.js.map +1 -1
- package/utils/configResolver.d.ts +57 -0
- package/utils/configResolver.d.ts.map +1 -0
- package/utils/configResolver.js +130 -0
- package/utils/configResolver.js.map +1 -0
- package/utils/sessionUtils.d.ts.map +1 -1
- package/utils/sessionUtils.js +5 -0
- package/utils/sessionUtils.js.map +1 -1
- package/public/assets/LandingPage-vFck5FSW.js +0 -1
- package/public/assets/ProjectsPage-C1VMe5nk.js +0 -21
- package/public/assets/ScheduledTasksPage-CkUoeT04.js +0 -1
- package/public/assets/VersionSettingsPage-D_keS5fb.js +0 -5
- package/public/assets/arc-C7I_8kFm.js +0 -1
- package/public/assets/channel-CTPfV_fA.js +0 -1
- package/public/assets/classDiagram-2ON5EDUG-CJDL4zC-.js +0 -1
- package/public/assets/classDiagram-v2-WZHVMYZB-CJDL4zC-.js +0 -1
- package/public/assets/clone-BvAwOIZu.js +0 -1
- package/public/assets/index-CJMPRxKv.css +0 -1
- package/public/assets/index-Dz27wKzJ.js +0 -293
- package/public/assets/infoDiagram-F6ZHWCRC-BdQeovBp.js +0 -2
- package/public/assets/stateDiagram-FKZM4ZOC-L8719ElY.js +0 -1
- package/public/assets/stateDiagram-v2-4FDKWEC3-DTGjtVxm.js +0 -1
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Task Worker - Executes tasks in isolated worker threads
|
|
4
|
+
*
|
|
5
|
+
* This worker runs in a separate thread and handles:
|
|
6
|
+
* 1. Building query options for Claude SDK
|
|
7
|
+
* 2. Executing the agent task
|
|
8
|
+
* 3. Collecting logs and results
|
|
9
|
+
* 4. Reporting results back to main thread
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const worker_threads_1 = require("worker_threads");
|
|
13
|
+
const claude_agent_sdk_1 = require("@anthropic-ai/claude-agent-sdk");
|
|
14
|
+
const claudeUtils_js_1 = require("../../utils/claudeUtils.js");
|
|
15
|
+
const agentStorage_js_1 = require("../../services/agentStorage.js");
|
|
16
|
+
// ============================================================================
|
|
17
|
+
// Worker Execution
|
|
18
|
+
// ============================================================================
|
|
19
|
+
/**
|
|
20
|
+
* Main execution function
|
|
21
|
+
*/
|
|
22
|
+
async function executeTask(task) {
|
|
23
|
+
const startTime = Date.now();
|
|
24
|
+
const logs = [];
|
|
25
|
+
const addLog = (level, type, message, data) => {
|
|
26
|
+
const log = {
|
|
27
|
+
timestamp: new Date().toISOString(),
|
|
28
|
+
level,
|
|
29
|
+
type,
|
|
30
|
+
message,
|
|
31
|
+
data,
|
|
32
|
+
};
|
|
33
|
+
logs.push(log);
|
|
34
|
+
// Send log to parent process for real-time monitoring
|
|
35
|
+
worker_threads_1.parentPort?.postMessage({
|
|
36
|
+
type: 'log',
|
|
37
|
+
data: log,
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
try {
|
|
41
|
+
addLog('info', 'system', `Starting task execution: ${task.id}`);
|
|
42
|
+
addLog('info', 'system', `Task type: ${task.type}`);
|
|
43
|
+
addLog('info', 'system', `Agent: ${task.agentId}`);
|
|
44
|
+
addLog('info', 'system', `Project: ${task.projectPath}`);
|
|
45
|
+
addLog('info', 'system', `Message: ${task.message.substring(0, 100)}...`);
|
|
46
|
+
// Load agent configuration
|
|
47
|
+
const agentStorage = new agentStorage_js_1.AgentStorage();
|
|
48
|
+
const agent = agentStorage.getAgent(task.agentId);
|
|
49
|
+
if (!agent) {
|
|
50
|
+
throw new Error(`Agent not found: ${task.agentId}`);
|
|
51
|
+
}
|
|
52
|
+
addLog('info', 'system', `Agent loaded: ${agent.name}`);
|
|
53
|
+
// Determine model to use
|
|
54
|
+
// Model priority: task.modelId > project/provider config (default: sonnet)
|
|
55
|
+
const modelToUse = task.modelId || 'sonnet';
|
|
56
|
+
addLog('info', 'system', `Model: ${modelToUse}`);
|
|
57
|
+
// Determine permission mode
|
|
58
|
+
const permissionMode = task.permissionMode || 'bypassPermissions';
|
|
59
|
+
addLog('info', 'system', `Permission mode: ${permissionMode}`);
|
|
60
|
+
// Build query options
|
|
61
|
+
addLog('info', 'system', 'Building query options...');
|
|
62
|
+
const { queryOptions } = await (0, claudeUtils_js_1.buildQueryOptions)(agent, task.projectPath, undefined, // mcpTools
|
|
63
|
+
permissionMode, modelToUse, task.claudeVersionId, undefined, // defaultEnv
|
|
64
|
+
undefined, // userEnv
|
|
65
|
+
undefined, // sessionIdForAskUser
|
|
66
|
+
undefined // agentIdForAskUser
|
|
67
|
+
);
|
|
68
|
+
// Set max turns
|
|
69
|
+
queryOptions.maxTurns = task.maxTurns || agent.maxTurns || 10;
|
|
70
|
+
addLog('info', 'system', `Max turns: ${queryOptions.maxTurns}`);
|
|
71
|
+
// Execute query
|
|
72
|
+
addLog('info', 'system', 'Starting Claude query...');
|
|
73
|
+
let fullResponse = '';
|
|
74
|
+
let sessionId;
|
|
75
|
+
for await (const message of (0, claude_agent_sdk_1.query)({
|
|
76
|
+
prompt: task.message,
|
|
77
|
+
options: queryOptions,
|
|
78
|
+
})) {
|
|
79
|
+
// Capture session ID
|
|
80
|
+
if (message.session_id && !sessionId) {
|
|
81
|
+
sessionId = message.session_id;
|
|
82
|
+
addLog('info', 'system', `Session ID: ${sessionId}`);
|
|
83
|
+
}
|
|
84
|
+
// Process different message types
|
|
85
|
+
if (message.type === 'assistant' && message.message?.content) {
|
|
86
|
+
for (const block of message.message.content) {
|
|
87
|
+
if (block.type === 'text') {
|
|
88
|
+
fullResponse += block.text;
|
|
89
|
+
addLog('debug', 'assistant', block.text.substring(0, 200));
|
|
90
|
+
}
|
|
91
|
+
else if (block.type === 'tool_use') {
|
|
92
|
+
addLog('info', 'tool_use', `Tool: ${block.name}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
else if (message.type === 'result') {
|
|
97
|
+
addLog('info', 'result', `Query completed`, {
|
|
98
|
+
costUsd: message.total_cost_usd,
|
|
99
|
+
durationMs: message.duration_ms,
|
|
100
|
+
numTurns: message.num_turns,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
const executionTimeMs = Date.now() - startTime;
|
|
105
|
+
addLog('info', 'system', `Task completed in ${executionTimeMs}ms`);
|
|
106
|
+
return {
|
|
107
|
+
taskId: task.id,
|
|
108
|
+
status: 'completed',
|
|
109
|
+
output: fullResponse,
|
|
110
|
+
sessionId,
|
|
111
|
+
completedAt: new Date().toISOString(),
|
|
112
|
+
executionTimeMs,
|
|
113
|
+
logs,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
118
|
+
const errorStack = error instanceof Error ? error.stack : undefined;
|
|
119
|
+
addLog('error', 'system', `Task failed: ${errorMessage}`, { stack: errorStack });
|
|
120
|
+
return {
|
|
121
|
+
taskId: task.id,
|
|
122
|
+
status: 'failed',
|
|
123
|
+
error: errorMessage,
|
|
124
|
+
errorStack,
|
|
125
|
+
completedAt: new Date().toISOString(),
|
|
126
|
+
executionTimeMs: Date.now() - startTime,
|
|
127
|
+
logs,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
// ============================================================================
|
|
132
|
+
// Worker Entry Point
|
|
133
|
+
// ============================================================================
|
|
134
|
+
/**
|
|
135
|
+
* Worker entry point - receives task data and executes it
|
|
136
|
+
*/
|
|
137
|
+
async function main() {
|
|
138
|
+
try {
|
|
139
|
+
const task = worker_threads_1.workerData;
|
|
140
|
+
if (!task || !task.id) {
|
|
141
|
+
throw new Error('Invalid task data received');
|
|
142
|
+
}
|
|
143
|
+
// Execute the task
|
|
144
|
+
const result = await executeTask(task);
|
|
145
|
+
// Send result back to parent
|
|
146
|
+
worker_threads_1.parentPort?.postMessage({
|
|
147
|
+
type: 'complete',
|
|
148
|
+
data: result,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
// Send error back to parent
|
|
153
|
+
worker_threads_1.parentPort?.postMessage({
|
|
154
|
+
type: 'error',
|
|
155
|
+
data: {
|
|
156
|
+
taskId: worker_threads_1.workerData?.id || 'unknown',
|
|
157
|
+
status: 'failed',
|
|
158
|
+
error: error instanceof Error ? error.message : String(error),
|
|
159
|
+
completedAt: new Date().toISOString(),
|
|
160
|
+
executionTimeMs: 0,
|
|
161
|
+
},
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
// Start execution
|
|
166
|
+
main().catch((err) => {
|
|
167
|
+
console.error('[TaskWorker] Fatal error:', err);
|
|
168
|
+
process.exit(1);
|
|
169
|
+
});
|
|
170
|
+
//# sourceMappingURL=taskWorker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taskWorker.js","sourceRoot":"","sources":["../../../src/services/taskExecutor/taskWorker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Task Executor Types
|
|
3
|
+
*
|
|
4
|
+
* Defines the interfaces for a pluggable task execution system that supports
|
|
5
|
+
* both A2A async tasks and scheduled tasks.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Task type identifier
|
|
9
|
+
*/
|
|
10
|
+
export type TaskType = 'a2a_async' | 'scheduled';
|
|
11
|
+
/**
|
|
12
|
+
* Permission mode for task execution
|
|
13
|
+
*/
|
|
14
|
+
export type PermissionMode = 'bypassPermissions' | 'default';
|
|
15
|
+
/**
|
|
16
|
+
* Push Notification Configuration for task callbacks
|
|
17
|
+
*/
|
|
18
|
+
export interface TaskPushNotificationConfig {
|
|
19
|
+
url: string;
|
|
20
|
+
token?: string;
|
|
21
|
+
authScheme?: string;
|
|
22
|
+
authCredentials?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Task definition - submitted to executor
|
|
26
|
+
*/
|
|
27
|
+
export interface TaskDefinition {
|
|
28
|
+
id: string;
|
|
29
|
+
type: TaskType;
|
|
30
|
+
priority?: number;
|
|
31
|
+
agentId: string;
|
|
32
|
+
projectPath: string;
|
|
33
|
+
message: string;
|
|
34
|
+
timeoutMs: number;
|
|
35
|
+
maxTurns?: number;
|
|
36
|
+
modelId?: string;
|
|
37
|
+
claudeVersionId?: string;
|
|
38
|
+
permissionMode?: PermissionMode;
|
|
39
|
+
createdAt: string;
|
|
40
|
+
scheduledFor?: string;
|
|
41
|
+
scheduledTaskId?: string;
|
|
42
|
+
pushNotificationConfig?: TaskPushNotificationConfig;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Task execution result
|
|
46
|
+
*/
|
|
47
|
+
export interface TaskResult {
|
|
48
|
+
taskId: string;
|
|
49
|
+
status: 'completed' | 'failed' | 'canceled';
|
|
50
|
+
output?: string;
|
|
51
|
+
sessionId?: string;
|
|
52
|
+
error?: string;
|
|
53
|
+
errorStack?: string;
|
|
54
|
+
completedAt: string;
|
|
55
|
+
executionTimeMs: number;
|
|
56
|
+
logs?: Array<{
|
|
57
|
+
timestamp: string;
|
|
58
|
+
level: 'info' | 'warn' | 'error' | 'debug';
|
|
59
|
+
type: string;
|
|
60
|
+
message: string;
|
|
61
|
+
data?: Record<string, unknown>;
|
|
62
|
+
}>;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Task status query result
|
|
66
|
+
*/
|
|
67
|
+
export interface TaskStatus {
|
|
68
|
+
taskId: string;
|
|
69
|
+
status: 'pending' | 'running' | 'completed' | 'failed' | 'canceled';
|
|
70
|
+
createdAt: string;
|
|
71
|
+
startedAt?: string;
|
|
72
|
+
completedAt?: string;
|
|
73
|
+
executionTimeMs?: number;
|
|
74
|
+
error?: string;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Task executor configuration
|
|
78
|
+
*/
|
|
79
|
+
export interface TaskExecutorConfig {
|
|
80
|
+
maxConcurrent: number;
|
|
81
|
+
defaultTimeoutMs: number;
|
|
82
|
+
maxMemoryMb?: number;
|
|
83
|
+
maxRetries?: number;
|
|
84
|
+
retryDelayMs?: number;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Interface for task executor implementations
|
|
88
|
+
*/
|
|
89
|
+
export interface ITaskExecutor {
|
|
90
|
+
/**
|
|
91
|
+
* Start the executor
|
|
92
|
+
*/
|
|
93
|
+
start(): Promise<void>;
|
|
94
|
+
/**
|
|
95
|
+
* Stop the executor and cancel all running tasks
|
|
96
|
+
*/
|
|
97
|
+
stop(): Promise<void>;
|
|
98
|
+
/**
|
|
99
|
+
* Submit a task for execution
|
|
100
|
+
* @param task - Task definition
|
|
101
|
+
*/
|
|
102
|
+
submitTask(task: TaskDefinition): Promise<void>;
|
|
103
|
+
/**
|
|
104
|
+
* Cancel a running or pending task
|
|
105
|
+
* @param taskId - Task ID to cancel
|
|
106
|
+
* @returns true if task was canceled, false if not found or already completed
|
|
107
|
+
*/
|
|
108
|
+
cancelTask(taskId: string): Promise<boolean>;
|
|
109
|
+
/**
|
|
110
|
+
* Get current status of a task
|
|
111
|
+
* @param taskId - Task ID to query
|
|
112
|
+
* @returns Task status or null if not found
|
|
113
|
+
*/
|
|
114
|
+
getTaskStatus(taskId: string): Promise<TaskStatus | null>;
|
|
115
|
+
/**
|
|
116
|
+
* Check if executor is healthy
|
|
117
|
+
*/
|
|
118
|
+
isHealthy(): boolean;
|
|
119
|
+
/**
|
|
120
|
+
* Get executor statistics
|
|
121
|
+
*/
|
|
122
|
+
getStats(): TaskExecutorStats;
|
|
123
|
+
/**
|
|
124
|
+
* Get current executor configuration
|
|
125
|
+
*/
|
|
126
|
+
getConfig(): TaskExecutorConfig;
|
|
127
|
+
/**
|
|
128
|
+
* Update executor configuration dynamically
|
|
129
|
+
* @param config - Partial configuration to update
|
|
130
|
+
*/
|
|
131
|
+
updateConfig(config: Partial<TaskExecutorConfig>): void;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Executor statistics
|
|
135
|
+
*/
|
|
136
|
+
export interface TaskExecutorStats {
|
|
137
|
+
mode: string;
|
|
138
|
+
runningTasks: number;
|
|
139
|
+
queuedTasks: number;
|
|
140
|
+
completedTasks: number;
|
|
141
|
+
failedTasks: number;
|
|
142
|
+
canceledTasks: number;
|
|
143
|
+
uptimeMs: number;
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/taskExecutor/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,mBAAmB,GAAG,SAAS,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAE7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAGhB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,cAAc,CAAC;IAGhC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,sBAAsB,CAAC,EAAE,0BAA0B,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IAGxB,IAAI,CAAC,EAAE,KAAK,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;QAC3C,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;IACpE,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAEjC,aAAa,EAAE,MAAM,CAAC;IAGtB,gBAAgB,EAAE,MAAM,CAAC;IAGzB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7C;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAE1D;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC;IAErB;;OAEG;IACH,QAAQ,IAAI,iBAAiB,CAAC;IAE9B;;OAEG;IACH,SAAS,IAAI,kBAAkB,CAAC;IAEhC;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;CACzD;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Unified Task Executor Types
|
|
4
|
+
*
|
|
5
|
+
* Defines the interfaces for a pluggable task execution system that supports
|
|
6
|
+
* both A2A async tasks and scheduled tasks.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/taskExecutor/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backend Telemetry Service
|
|
3
|
+
*
|
|
4
|
+
* Uses PostHog for anonymous usage data collection.
|
|
5
|
+
* - Default: disabled (opt-in model for backend)
|
|
6
|
+
* - Can be enabled via TELEMETRY_ENABLED=true
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Check if telemetry is enabled
|
|
10
|
+
*/
|
|
11
|
+
export declare function isTelemetryEnabled(): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Track an event
|
|
14
|
+
*/
|
|
15
|
+
export declare function trackEvent(event: string, properties?: Record<string, string | number | boolean>): void;
|
|
16
|
+
/**
|
|
17
|
+
* Track feature usage
|
|
18
|
+
*/
|
|
19
|
+
export declare function trackFeature(feature: string, action?: string): void;
|
|
20
|
+
/**
|
|
21
|
+
* Track an error
|
|
22
|
+
*/
|
|
23
|
+
export declare function trackError(error: Error, component?: string): void;
|
|
24
|
+
/**
|
|
25
|
+
* Track agent usage
|
|
26
|
+
*/
|
|
27
|
+
export declare function trackAgentUsage(agentId: string, action: 'chat_start' | 'chat_end' | 'tool_call', properties?: Record<string, string | number | boolean>): void;
|
|
28
|
+
/**
|
|
29
|
+
* Track MCP server usage
|
|
30
|
+
*/
|
|
31
|
+
export declare function trackMcpUsage(serverName: string, action: 'connect' | 'disconnect' | 'tool_call' | 'error'): void;
|
|
32
|
+
/**
|
|
33
|
+
* Track scheduled task execution
|
|
34
|
+
*/
|
|
35
|
+
export declare function trackScheduledTask(taskId: string, action: 'execute' | 'success' | 'failure'): void;
|
|
36
|
+
/**
|
|
37
|
+
* Shutdown telemetry (flush pending events)
|
|
38
|
+
*/
|
|
39
|
+
export declare function shutdownTelemetry(): Promise<void>;
|
|
40
|
+
//# sourceMappingURL=telemetry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/services/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA2GH;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACrD,IAAI,CAaN;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAKnE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAwBjE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,YAAY,GAAG,UAAU,GAAG,WAAW,EAC/C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACrD,IAAI,CAMN;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,GACvD,IAAI,CAKN;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GACxC,IAAI,CAKN;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAMvD"}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Backend Telemetry Service
|
|
4
|
+
*
|
|
5
|
+
* Uses PostHog for anonymous usage data collection.
|
|
6
|
+
* - Default: disabled (opt-in model for backend)
|
|
7
|
+
* - Can be enabled via TELEMETRY_ENABLED=true
|
|
8
|
+
*/
|
|
9
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
+
}) : function(o, v) {
|
|
23
|
+
o["default"] = v;
|
|
24
|
+
});
|
|
25
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
26
|
+
var ownKeys = function(o) {
|
|
27
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
28
|
+
var ar = [];
|
|
29
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
30
|
+
return ar;
|
|
31
|
+
};
|
|
32
|
+
return ownKeys(o);
|
|
33
|
+
};
|
|
34
|
+
return function (mod) {
|
|
35
|
+
if (mod && mod.__esModule) return mod;
|
|
36
|
+
var result = {};
|
|
37
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
38
|
+
__setModuleDefault(result, mod);
|
|
39
|
+
return result;
|
|
40
|
+
};
|
|
41
|
+
})();
|
|
42
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
exports.isTelemetryEnabled = isTelemetryEnabled;
|
|
44
|
+
exports.trackEvent = trackEvent;
|
|
45
|
+
exports.trackFeature = trackFeature;
|
|
46
|
+
exports.trackError = trackError;
|
|
47
|
+
exports.trackAgentUsage = trackAgentUsage;
|
|
48
|
+
exports.trackMcpUsage = trackMcpUsage;
|
|
49
|
+
exports.trackScheduledTask = trackScheduledTask;
|
|
50
|
+
exports.shutdownTelemetry = shutdownTelemetry;
|
|
51
|
+
const posthog_node_1 = require("posthog-node");
|
|
52
|
+
const uuid_1 = require("uuid");
|
|
53
|
+
const fs = __importStar(require("fs"));
|
|
54
|
+
const path = __importStar(require("path"));
|
|
55
|
+
const os = __importStar(require("os"));
|
|
56
|
+
// PostHog configuration (hardcoded for distribution)
|
|
57
|
+
const POSTHOG_API_KEY = 'phc_5knpC9zvXXFaTJw4EMwrRBSYHIYW7b8ig6E14N8jYDp';
|
|
58
|
+
const POSTHOG_HOST = 'https://app.posthog.com';
|
|
59
|
+
// Backend telemetry can be disabled via environment variable (default: enabled for npm package users)
|
|
60
|
+
const TELEMETRY_ENABLED = process.env.TELEMETRY_ENABLED !== 'false';
|
|
61
|
+
// App version from package.json
|
|
62
|
+
let APP_VERSION = '0.2.0';
|
|
63
|
+
try {
|
|
64
|
+
const pkgPath = path.join(__dirname, '../../package.json');
|
|
65
|
+
if (fs.existsSync(pkgPath)) {
|
|
66
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
|
|
67
|
+
APP_VERSION = pkg.version || APP_VERSION;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
// Ignore errors
|
|
72
|
+
}
|
|
73
|
+
// Instance ID storage
|
|
74
|
+
const INSTANCE_ID_FILE = path.join(os.homedir(), '.agentstudio', 'instance_id');
|
|
75
|
+
/**
|
|
76
|
+
* Get or create the instance ID for this backend installation
|
|
77
|
+
*/
|
|
78
|
+
function getInstanceId() {
|
|
79
|
+
try {
|
|
80
|
+
// Create directory if not exists
|
|
81
|
+
const dir = path.dirname(INSTANCE_ID_FILE);
|
|
82
|
+
if (!fs.existsSync(dir)) {
|
|
83
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
84
|
+
}
|
|
85
|
+
// Read existing ID or create new one
|
|
86
|
+
if (fs.existsSync(INSTANCE_ID_FILE)) {
|
|
87
|
+
return fs.readFileSync(INSTANCE_ID_FILE, 'utf-8').trim();
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
const id = (0, uuid_1.v4)();
|
|
91
|
+
fs.writeFileSync(INSTANCE_ID_FILE, id);
|
|
92
|
+
return id;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
// Fallback to random ID per process
|
|
97
|
+
return (0, uuid_1.v4)();
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// PostHog client (lazy initialization)
|
|
101
|
+
let posthogClient = null;
|
|
102
|
+
let instanceId = null;
|
|
103
|
+
/**
|
|
104
|
+
* Initialize the PostHog client
|
|
105
|
+
*/
|
|
106
|
+
function initPostHog() {
|
|
107
|
+
if (!TELEMETRY_ENABLED) {
|
|
108
|
+
console.log('[Telemetry] Backend telemetry is disabled. Set TELEMETRY_ENABLED=true to enable.');
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
try {
|
|
112
|
+
const client = new posthog_node_1.PostHog(POSTHOG_API_KEY, {
|
|
113
|
+
host: POSTHOG_HOST,
|
|
114
|
+
flushAt: 10,
|
|
115
|
+
flushInterval: 30000,
|
|
116
|
+
});
|
|
117
|
+
instanceId = getInstanceId();
|
|
118
|
+
console.log(`[Telemetry] Backend telemetry initialized (instance: ${instanceId.slice(0, 8)}...)`);
|
|
119
|
+
// Track backend start
|
|
120
|
+
client.capture({
|
|
121
|
+
distinctId: instanceId,
|
|
122
|
+
event: 'app_start',
|
|
123
|
+
properties: {
|
|
124
|
+
platform: 'backend',
|
|
125
|
+
app_version: APP_VERSION,
|
|
126
|
+
os: process.platform,
|
|
127
|
+
node_version: process.version,
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
return client;
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
console.error('[Telemetry] Failed to initialize PostHog:', error);
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Get the PostHog client (initializes if needed)
|
|
139
|
+
*/
|
|
140
|
+
function getClient() {
|
|
141
|
+
if (posthogClient === null && TELEMETRY_ENABLED) {
|
|
142
|
+
posthogClient = initPostHog();
|
|
143
|
+
}
|
|
144
|
+
return posthogClient;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Check if telemetry is enabled
|
|
148
|
+
*/
|
|
149
|
+
function isTelemetryEnabled() {
|
|
150
|
+
return TELEMETRY_ENABLED;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Track an event
|
|
154
|
+
*/
|
|
155
|
+
function trackEvent(event, properties) {
|
|
156
|
+
const client = getClient();
|
|
157
|
+
if (!client || !instanceId)
|
|
158
|
+
return;
|
|
159
|
+
client.capture({
|
|
160
|
+
distinctId: instanceId,
|
|
161
|
+
event,
|
|
162
|
+
properties: {
|
|
163
|
+
platform: 'backend',
|
|
164
|
+
app_version: APP_VERSION,
|
|
165
|
+
...properties,
|
|
166
|
+
},
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Track feature usage
|
|
171
|
+
*/
|
|
172
|
+
function trackFeature(feature, action) {
|
|
173
|
+
trackEvent('feature_used', {
|
|
174
|
+
feature,
|
|
175
|
+
action: action || 'use',
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Track an error
|
|
180
|
+
*/
|
|
181
|
+
function trackError(error, component) {
|
|
182
|
+
const client = getClient();
|
|
183
|
+
if (!client || !instanceId)
|
|
184
|
+
return;
|
|
185
|
+
// Sanitize error message
|
|
186
|
+
const sanitizeMessage = (msg) => {
|
|
187
|
+
return msg
|
|
188
|
+
.replace(/(?:\/[^\s:]+)+/g, '[PATH]')
|
|
189
|
+
.replace(/(?:[A-Za-z]:\\[^\s:]+)+/g, '[PATH]')
|
|
190
|
+
.replace(/[a-zA-Z0-9]{32,}/g, '[REDACTED]')
|
|
191
|
+
.substring(0, 256);
|
|
192
|
+
};
|
|
193
|
+
client.capture({
|
|
194
|
+
distinctId: instanceId,
|
|
195
|
+
event: 'app_error',
|
|
196
|
+
properties: {
|
|
197
|
+
platform: 'backend',
|
|
198
|
+
app_version: APP_VERSION,
|
|
199
|
+
message: sanitizeMessage(error.message),
|
|
200
|
+
errorType: error.name,
|
|
201
|
+
component: component || 'unknown',
|
|
202
|
+
},
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Track agent usage
|
|
207
|
+
*/
|
|
208
|
+
function trackAgentUsage(agentId, action, properties) {
|
|
209
|
+
trackEvent('agent_usage', {
|
|
210
|
+
agent_id: agentId,
|
|
211
|
+
action,
|
|
212
|
+
...properties,
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Track MCP server usage
|
|
217
|
+
*/
|
|
218
|
+
function trackMcpUsage(serverName, action) {
|
|
219
|
+
trackEvent('mcp_usage', {
|
|
220
|
+
server_name: serverName,
|
|
221
|
+
action,
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Track scheduled task execution
|
|
226
|
+
*/
|
|
227
|
+
function trackScheduledTask(taskId, action) {
|
|
228
|
+
trackEvent('scheduled_task', {
|
|
229
|
+
task_id: taskId,
|
|
230
|
+
action,
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Shutdown telemetry (flush pending events)
|
|
235
|
+
*/
|
|
236
|
+
async function shutdownTelemetry() {
|
|
237
|
+
const client = getClient();
|
|
238
|
+
if (client) {
|
|
239
|
+
await client.shutdown();
|
|
240
|
+
console.log('[Telemetry] Backend telemetry shutdown');
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
// Initialize on import if enabled
|
|
244
|
+
getClient();
|
|
245
|
+
//# sourceMappingURL=telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/services/telemetry.ts"],"names":[],"mappings":"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"}
|
package/types/a2a.d.ts
CHANGED
|
@@ -91,6 +91,22 @@ export interface TaskError {
|
|
|
91
91
|
code: string;
|
|
92
92
|
stack?: string;
|
|
93
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Push Notification Authentication Info (A2A Protocol)
|
|
96
|
+
*/
|
|
97
|
+
export interface PushNotificationAuthenticationInfo {
|
|
98
|
+
schemes: string[];
|
|
99
|
+
credentials?: string;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Push Notification Configuration (A2A Protocol)
|
|
103
|
+
* Configures webhook callbacks for async task completion
|
|
104
|
+
*/
|
|
105
|
+
export interface PushNotificationConfig {
|
|
106
|
+
url: string;
|
|
107
|
+
token?: string;
|
|
108
|
+
authentication?: PushNotificationAuthenticationInfo;
|
|
109
|
+
}
|
|
94
110
|
/**
|
|
95
111
|
* A2A Task - represents a long-running asynchronous task
|
|
96
112
|
*/
|
|
@@ -109,6 +125,7 @@ export interface A2ATask {
|
|
|
109
125
|
errorDetails?: TaskError;
|
|
110
126
|
timeoutMs: number;
|
|
111
127
|
contextId?: string;
|
|
128
|
+
pushNotificationConfig?: PushNotificationConfig;
|
|
112
129
|
}
|
|
113
130
|
/**
|
|
114
131
|
* Allowed external agent configuration
|
|
@@ -198,6 +215,7 @@ export interface A2ATaskRequest {
|
|
|
198
215
|
message: string;
|
|
199
216
|
timeout?: number;
|
|
200
217
|
context?: Record<string, unknown>;
|
|
218
|
+
pushNotificationConfig?: PushNotificationConfig;
|
|
201
219
|
}
|
|
202
220
|
/**
|
|
203
221
|
* POST /a2a/:a2aAgentId/tasks response
|