feat(telemetry): Integrate usage telemetry for expand-task, fix return types

This commit integrates AI usage telemetry for the `expand-task` command/tool and resolves issues related to incorrect return type handling and logging.

Key Changes:

1.  **Telemetry Integration for `expand-task` (Subtask 77.7):**\n    -   Applied the standard telemetry pattern to the `expandTask` core logic (`scripts/modules/task-manager/expand-task.js`) and the `expandTaskDirect` wrapper (`mcp-server/src/core/direct-functions/expand-task.js`).\n    -   AI service calls now pass `commandName` and `outputType`.\n    -   Core function returns `{ task, telemetryData }`.\n    -   Direct function correctly extracts `task` and passes `telemetryData` in the MCP response `data` field.\n    -   Telemetry summary is now displayed in the CLI output for the `expand` command.

2.  **Fix AI Service Return Type Handling (`ai-services-unified.js`):**\n    -   Corrected the `_unifiedServiceRunner` function to properly handle the return objects from provider-specific functions (`generateText`, `generateObject`).\n    -   It now correctly extracts `providerResponse.text` or `providerResponse.object` into the `mainResult` field based on `serviceType`, resolving the "text.trim is not a function" error encountered during `expand-task`.

3.  **Log Cleanup:**\n    -   Removed various redundant or excessive `console.log` statements across multiple files (as indicated by recent changes) to reduce noise and improve clarity, particularly for MCP interactions.
This commit is contained in:
Eyal Toledano
2025-05-08 16:02:23 -04:00
parent f89d2aacc0
commit ab84afd036
10 changed files with 269 additions and 70 deletions

View File

@@ -193,13 +193,19 @@ export async function expandTaskDirect(args, log, context = {}) {
if (!wasSilent) enableSilentMode();
// Call the core expandTask function with the wrapped logger and projectRoot
const updatedTaskResult = await expandTask(
const coreResult = await expandTask(
tasksPath,
taskId,
numSubtasks,
useResearch,
additionalContext,
{ mcpLog, session, projectRoot },
{
mcpLog,
session,
projectRoot,
commandName: 'expand-task',
outputType: 'mcp'
},
forceFlag
);
@@ -215,16 +221,17 @@ export async function expandTaskDirect(args, log, context = {}) {
? updatedTask.subtasks.length - subtasksCountBefore
: 0;
// Return the result
// Return the result, including telemetryData
log.info(
`Successfully expanded task ${taskId} with ${subtasksAdded} new subtasks`
);
return {
success: true,
data: {
task: updatedTask,
task: coreResult.task,
subtasksAdded,
hasExistingSubtasks
hasExistingSubtasks,
telemetryData: coreResult.telemetryData
},
fromCache: false
};