@defai.digital/ax-cli 4.4.6 → 4.4.10
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/bin/ax-cli +1 -5
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +158 -9
- package/dist/index.js.map +1 -1
- package/dist/setup.d.ts +27 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +591 -0
- package/dist/setup.js.map +1 -0
- package/package.json +43 -135
- package/LICENSE +0 -22
- package/README.md +0 -387
- package/config-defaults/messages.yaml +0 -75
- package/config-defaults/models.yaml +0 -57
- package/config-defaults/prompts.yaml +0 -948
- package/config-defaults/settings.yaml +0 -157
- package/dist/agent/agent-executor.d.ts +0 -61
- package/dist/agent/agent-executor.js +0 -194
- package/dist/agent/agent-executor.js.map +0 -1
- package/dist/agent/agent-router.d.ts +0 -68
- package/dist/agent/agent-router.js +0 -242
- package/dist/agent/agent-router.js.map +0 -1
- package/dist/agent/context-manager.d.ts +0 -122
- package/dist/agent/context-manager.js +0 -406
- package/dist/agent/context-manager.js.map +0 -1
- package/dist/agent/core/index.d.ts +0 -8
- package/dist/agent/core/index.js +0 -9
- package/dist/agent/core/index.js.map +0 -1
- package/dist/agent/core/types.d.ts +0 -92
- package/dist/agent/core/types.js +0 -11
- package/dist/agent/core/types.js.map +0 -1
- package/dist/agent/dependency-resolver.d.ts +0 -90
- package/dist/agent/dependency-resolver.js +0 -366
- package/dist/agent/dependency-resolver.js.map +0 -1
- package/dist/agent/execution/index.d.ts +0 -9
- package/dist/agent/execution/index.js +0 -9
- package/dist/agent/execution/index.js.map +0 -1
- package/dist/agent/execution/tool-executor.d.ts +0 -93
- package/dist/agent/execution/tool-executor.js +0 -552
- package/dist/agent/execution/tool-executor.js.map +0 -1
- package/dist/agent/index.d.ts +0 -14
- package/dist/agent/index.js +0 -145
- package/dist/agent/index.js.map +0 -1
- package/dist/agent/llm-agent.d.ts +0 -368
- package/dist/agent/llm-agent.js +0 -1931
- package/dist/agent/llm-agent.js.map +0 -1
- package/dist/agent/loop-detector.d.ts +0 -72
- package/dist/agent/loop-detector.js +0 -335
- package/dist/agent/loop-detector.js.map +0 -1
- package/dist/agent/parallel-tools.d.ts +0 -69
- package/dist/agent/parallel-tools.js +0 -188
- package/dist/agent/parallel-tools.js.map +0 -1
- package/dist/agent/planning/index.d.ts +0 -9
- package/dist/agent/planning/index.js +0 -9
- package/dist/agent/planning/index.js.map +0 -1
- package/dist/agent/planning/plan-executor.d.ts +0 -79
- package/dist/agent/planning/plan-executor.js +0 -240
- package/dist/agent/planning/plan-executor.js.map +0 -1
- package/dist/agent/progress-tracker.d.ts +0 -94
- package/dist/agent/progress-tracker.js +0 -225
- package/dist/agent/progress-tracker.js.map +0 -1
- package/dist/agent/specialized/analysis-agent.d.ts +0 -11
- package/dist/agent/specialized/analysis-agent.js +0 -24
- package/dist/agent/specialized/analysis-agent.js.map +0 -1
- package/dist/agent/specialized/debug-agent.d.ts +0 -11
- package/dist/agent/specialized/debug-agent.js +0 -46
- package/dist/agent/specialized/debug-agent.js.map +0 -1
- package/dist/agent/specialized/documentation-agent.d.ts +0 -11
- package/dist/agent/specialized/documentation-agent.js +0 -24
- package/dist/agent/specialized/documentation-agent.js.map +0 -1
- package/dist/agent/specialized/index.d.ts +0 -11
- package/dist/agent/specialized/index.js +0 -12
- package/dist/agent/specialized/index.js.map +0 -1
- package/dist/agent/specialized/performance-agent.d.ts +0 -11
- package/dist/agent/specialized/performance-agent.js +0 -24
- package/dist/agent/specialized/performance-agent.js.map +0 -1
- package/dist/agent/specialized/refactoring-agent.d.ts +0 -11
- package/dist/agent/specialized/refactoring-agent.js +0 -24
- package/dist/agent/specialized/refactoring-agent.js.map +0 -1
- package/dist/agent/specialized/testing-agent.d.ts +0 -11
- package/dist/agent/specialized/testing-agent.js +0 -24
- package/dist/agent/specialized/testing-agent.js.map +0 -1
- package/dist/agent/status-reporter.d.ts +0 -114
- package/dist/agent/status-reporter.js +0 -335
- package/dist/agent/status-reporter.js.map +0 -1
- package/dist/agent/streaming/index.d.ts +0 -9
- package/dist/agent/streaming/index.js +0 -9
- package/dist/agent/streaming/index.js.map +0 -1
- package/dist/agent/streaming/stream-handler.d.ts +0 -62
- package/dist/agent/streaming/stream-handler.js +0 -217
- package/dist/agent/streaming/stream-handler.js.map +0 -1
- package/dist/agent/subagent-orchestrator.d.ts +0 -166
- package/dist/agent/subagent-orchestrator.js +0 -487
- package/dist/agent/subagent-orchestrator.js.map +0 -1
- package/dist/agent/subagent-types.d.ts +0 -261
- package/dist/agent/subagent-types.js +0 -257
- package/dist/agent/subagent-types.js.map +0 -1
- package/dist/agent/subagent.d.ts +0 -116
- package/dist/agent/subagent.js +0 -507
- package/dist/agent/subagent.js.map +0 -1
- package/dist/checkpoint/index.d.ts +0 -9
- package/dist/checkpoint/index.js +0 -11
- package/dist/checkpoint/index.js.map +0 -1
- package/dist/checkpoint/manager.d.ts +0 -101
- package/dist/checkpoint/manager.js +0 -407
- package/dist/checkpoint/manager.js.map +0 -1
- package/dist/checkpoint/storage.d.ts +0 -39
- package/dist/checkpoint/storage.js +0 -350
- package/dist/checkpoint/storage.js.map +0 -1
- package/dist/checkpoint/types.d.ts +0 -111
- package/dist/checkpoint/types.js +0 -17
- package/dist/checkpoint/types.js.map +0 -1
- package/dist/commands/cache.d.ts +0 -7
- package/dist/commands/cache.js +0 -284
- package/dist/commands/cache.js.map +0 -1
- package/dist/commands/custom-commands.d.ts +0 -77
- package/dist/commands/custom-commands.js +0 -251
- package/dist/commands/custom-commands.js.map +0 -1
- package/dist/commands/design.d.ts +0 -18
- package/dist/commands/design.js +0 -511
- package/dist/commands/design.js.map +0 -1
- package/dist/commands/doctor.d.ts +0 -6
- package/dist/commands/doctor.js +0 -773
- package/dist/commands/doctor.js.map +0 -1
- package/dist/commands/frontend.d.ts +0 -9
- package/dist/commands/frontend.js +0 -645
- package/dist/commands/frontend.js.map +0 -1
- package/dist/commands/init/wizard.d.ts +0 -55
- package/dist/commands/init/wizard.js +0 -189
- package/dist/commands/init/wizard.js.map +0 -1
- package/dist/commands/init.d.ts +0 -8
- package/dist/commands/init.js +0 -195
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/mcp-migrate.d.ts +0 -9
- package/dist/commands/mcp-migrate.js +0 -175
- package/dist/commands/mcp-migrate.js.map +0 -1
- package/dist/commands/mcp.d.ts +0 -2
- package/dist/commands/mcp.js +0 -1292
- package/dist/commands/mcp.js.map +0 -1
- package/dist/commands/memory.d.ts +0 -6
- package/dist/commands/memory.js +0 -555
- package/dist/commands/memory.js.map +0 -1
- package/dist/commands/models.d.ts +0 -5
- package/dist/commands/models.js +0 -213
- package/dist/commands/models.js.map +0 -1
- package/dist/commands/plan.d.ts +0 -43
- package/dist/commands/plan.js +0 -362
- package/dist/commands/plan.js.map +0 -1
- package/dist/commands/rewind.d.ts +0 -19
- package/dist/commands/rewind.js +0 -221
- package/dist/commands/rewind.js.map +0 -1
- package/dist/commands/setup.d.ts +0 -14
- package/dist/commands/setup.js +0 -733
- package/dist/commands/setup.js.map +0 -1
- package/dist/commands/status.d.ts +0 -7
- package/dist/commands/status.js +0 -437
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/templates.d.ts +0 -5
- package/dist/commands/templates.js +0 -245
- package/dist/commands/templates.js.map +0 -1
- package/dist/commands/update.d.ts +0 -49
- package/dist/commands/update.js +0 -366
- package/dist/commands/update.js.map +0 -1
- package/dist/commands/usage.d.ts +0 -8
- package/dist/commands/usage.js +0 -264
- package/dist/commands/usage.js.map +0 -1
- package/dist/commands/vscode.d.ts +0 -7
- package/dist/commands/vscode.js +0 -419
- package/dist/commands/vscode.js.map +0 -1
- package/dist/constants.d.ts +0 -236
- package/dist/constants.js +0 -288
- package/dist/constants.js.map +0 -1
- package/dist/design/figma-alias.d.ts +0 -170
- package/dist/design/figma-alias.js +0 -577
- package/dist/design/figma-alias.js.map +0 -1
- package/dist/design/figma-audit.d.ts +0 -40
- package/dist/design/figma-audit.js +0 -383
- package/dist/design/figma-audit.js.map +0 -1
- package/dist/design/figma-client.d.ts +0 -131
- package/dist/design/figma-client.js +0 -369
- package/dist/design/figma-client.js.map +0 -1
- package/dist/design/figma-map.d.ts +0 -29
- package/dist/design/figma-map.js +0 -346
- package/dist/design/figma-map.js.map +0 -1
- package/dist/design/figma-tokens.d.ts +0 -73
- package/dist/design/figma-tokens.js +0 -448
- package/dist/design/figma-tokens.js.map +0 -1
- package/dist/design/index.d.ts +0 -13
- package/dist/design/index.js +0 -20
- package/dist/design/index.js.map +0 -1
- package/dist/design/types.d.ts +0 -98
- package/dist/design/types.js +0 -9
- package/dist/design/types.js.map +0 -1
- package/dist/hooks/hook-runner.d.ts +0 -142
- package/dist/hooks/hook-runner.js +0 -436
- package/dist/hooks/hook-runner.js.map +0 -1
- package/dist/hooks/index.d.ts +0 -9
- package/dist/hooks/index.js +0 -10
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/manager.d.ts +0 -84
- package/dist/hooks/manager.js +0 -348
- package/dist/hooks/manager.js.map +0 -1
- package/dist/hooks/types.d.ts +0 -134
- package/dist/hooks/types.js +0 -9
- package/dist/hooks/types.js.map +0 -1
- package/dist/index.d.ts +0 -2
- package/dist/ipc/index.d.ts +0 -9
- package/dist/ipc/index.js +0 -10
- package/dist/ipc/index.js.map +0 -1
- package/dist/ipc/vscode-client.d.ts +0 -200
- package/dist/ipc/vscode-client.js +0 -495
- package/dist/ipc/vscode-client.js.map +0 -1
- package/dist/llm/client.d.ts +0 -205
- package/dist/llm/client.js +0 -735
- package/dist/llm/client.js.map +0 -1
- package/dist/llm/tools.d.ts +0 -102
- package/dist/llm/tools.js +0 -275
- package/dist/llm/tools.js.map +0 -1
- package/dist/llm/types.d.ts +0 -428
- package/dist/llm/types.js +0 -194
- package/dist/llm/types.js.map +0 -1
- package/dist/mcp/automatosx-auto-discovery.d.ts +0 -66
- package/dist/mcp/automatosx-auto-discovery.js +0 -169
- package/dist/mcp/automatosx-auto-discovery.js.map +0 -1
- package/dist/mcp/automatosx-loader.d.ts +0 -99
- package/dist/mcp/automatosx-loader.js +0 -250
- package/dist/mcp/automatosx-loader.js.map +0 -1
- package/dist/mcp/cancellation.d.ts +0 -182
- package/dist/mcp/cancellation.js +0 -275
- package/dist/mcp/cancellation.js.map +0 -1
- package/dist/mcp/client-v2.d.ts +0 -500
- package/dist/mcp/client-v2.js +0 -1433
- package/dist/mcp/client-v2.js.map +0 -1
- package/dist/mcp/client.d.ts +0 -170
- package/dist/mcp/client.js +0 -232
- package/dist/mcp/client.js.map +0 -1
- package/dist/mcp/config-detector.d.ts +0 -90
- package/dist/mcp/config-detector.js +0 -250
- package/dist/mcp/config-detector.js.map +0 -1
- package/dist/mcp/config-migrator.d.ts +0 -68
- package/dist/mcp/config-migrator.js +0 -291
- package/dist/mcp/config-migrator.js.map +0 -1
- package/dist/mcp/config.d.ts +0 -24
- package/dist/mcp/config.js +0 -273
- package/dist/mcp/config.js.map +0 -1
- package/dist/mcp/constants.d.ts +0 -66
- package/dist/mcp/constants.js +0 -85
- package/dist/mcp/constants.js.map +0 -1
- package/dist/mcp/content-length-transport.d.ts +0 -106
- package/dist/mcp/content-length-transport.js +0 -413
- package/dist/mcp/content-length-transport.js.map +0 -1
- package/dist/mcp/debug.d.ts +0 -211
- package/dist/mcp/debug.js +0 -404
- package/dist/mcp/debug.js.map +0 -1
- package/dist/mcp/error-formatter.d.ts +0 -40
- package/dist/mcp/error-formatter.js +0 -207
- package/dist/mcp/error-formatter.js.map +0 -1
- package/dist/mcp/error-remediation.d.ts +0 -45
- package/dist/mcp/error-remediation.js +0 -291
- package/dist/mcp/error-remediation.js.map +0 -1
- package/dist/mcp/health.d.ts +0 -120
- package/dist/mcp/health.js +0 -267
- package/dist/mcp/health.js.map +0 -1
- package/dist/mcp/index.d.ts +0 -56
- package/dist/mcp/index.js +0 -89
- package/dist/mcp/index.js.map +0 -1
- package/dist/mcp/invariants.d.ts +0 -141
- package/dist/mcp/invariants.js +0 -243
- package/dist/mcp/invariants.js.map +0 -1
- package/dist/mcp/mutex-safe.d.ts +0 -151
- package/dist/mcp/mutex-safe.js +0 -260
- package/dist/mcp/mutex-safe.js.map +0 -1
- package/dist/mcp/progress.d.ts +0 -155
- package/dist/mcp/progress.js +0 -252
- package/dist/mcp/progress.js.map +0 -1
- package/dist/mcp/prompts.d.ts +0 -68
- package/dist/mcp/prompts.js +0 -129
- package/dist/mcp/prompts.js.map +0 -1
- package/dist/mcp/provider-mcp-loader.d.ts +0 -130
- package/dist/mcp/provider-mcp-loader.js +0 -292
- package/dist/mcp/provider-mcp-loader.js.map +0 -1
- package/dist/mcp/reconnection.d.ts +0 -101
- package/dist/mcp/reconnection.js +0 -253
- package/dist/mcp/reconnection.js.map +0 -1
- package/dist/mcp/registry.d.ts +0 -75
- package/dist/mcp/registry.js +0 -276
- package/dist/mcp/registry.js.map +0 -1
- package/dist/mcp/resources.d.ts +0 -58
- package/dist/mcp/resources.js +0 -144
- package/dist/mcp/resources.js.map +0 -1
- package/dist/mcp/schema-validator.d.ts +0 -82
- package/dist/mcp/schema-validator.js +0 -161
- package/dist/mcp/schema-validator.js.map +0 -1
- package/dist/mcp/ssrf-protection.d.ts +0 -86
- package/dist/mcp/ssrf-protection.js +0 -311
- package/dist/mcp/ssrf-protection.js.map +0 -1
- package/dist/mcp/subscriptions.d.ts +0 -168
- package/dist/mcp/subscriptions.js +0 -248
- package/dist/mcp/subscriptions.js.map +0 -1
- package/dist/mcp/templates.d.ts +0 -52
- package/dist/mcp/templates.js +0 -627
- package/dist/mcp/templates.js.map +0 -1
- package/dist/mcp/transports.d.ts +0 -80
- package/dist/mcp/transports.js +0 -237
- package/dist/mcp/transports.js.map +0 -1
- package/dist/mcp/type-safety.d.ts +0 -225
- package/dist/mcp/type-safety.js +0 -237
- package/dist/mcp/type-safety.js.map +0 -1
- package/dist/mcp/validation.d.ts +0 -29
- package/dist/mcp/validation.js +0 -339
- package/dist/mcp/validation.js.map +0 -1
- package/dist/mcp/zai-detector.d.ts +0 -63
- package/dist/mcp/zai-detector.js +0 -193
- package/dist/mcp/zai-detector.js.map +0 -1
- package/dist/mcp/zai-templates.d.ts +0 -90
- package/dist/mcp/zai-templates.js +0 -157
- package/dist/mcp/zai-templates.js.map +0 -1
- package/dist/memory/context-generator.d.ts +0 -84
- package/dist/memory/context-generator.js +0 -546
- package/dist/memory/context-generator.js.map +0 -1
- package/dist/memory/context-injector.d.ts +0 -97
- package/dist/memory/context-injector.js +0 -159
- package/dist/memory/context-injector.js.map +0 -1
- package/dist/memory/context-store.d.ts +0 -103
- package/dist/memory/context-store.js +0 -264
- package/dist/memory/context-store.js.map +0 -1
- package/dist/memory/index.d.ts +0 -43
- package/dist/memory/index.js +0 -49
- package/dist/memory/index.js.map +0 -1
- package/dist/memory/provider-context-store.d.ts +0 -127
- package/dist/memory/provider-context-store.js +0 -385
- package/dist/memory/provider-context-store.js.map +0 -1
- package/dist/memory/schemas.d.ts +0 -118
- package/dist/memory/schemas.js +0 -106
- package/dist/memory/schemas.js.map +0 -1
- package/dist/memory/stats-collector.d.ts +0 -73
- package/dist/memory/stats-collector.js +0 -170
- package/dist/memory/stats-collector.js.map +0 -1
- package/dist/memory/types.d.ts +0 -177
- package/dist/memory/types.js +0 -73
- package/dist/memory/types.js.map +0 -1
- package/dist/permissions/index.d.ts +0 -6
- package/dist/permissions/index.js +0 -7
- package/dist/permissions/index.js.map +0 -1
- package/dist/permissions/permission-manager.d.ts +0 -149
- package/dist/permissions/permission-manager.js +0 -410
- package/dist/permissions/permission-manager.js.map +0 -1
- package/dist/planner/dependency-resolver.d.ts +0 -72
- package/dist/planner/dependency-resolver.js +0 -272
- package/dist/planner/dependency-resolver.js.map +0 -1
- package/dist/planner/index.d.ts +0 -12
- package/dist/planner/index.js +0 -28
- package/dist/planner/index.js.map +0 -1
- package/dist/planner/plan-generator.d.ts +0 -74
- package/dist/planner/plan-generator.js +0 -244
- package/dist/planner/plan-generator.js.map +0 -1
- package/dist/planner/plan-storage.d.ts +0 -113
- package/dist/planner/plan-storage.js +0 -398
- package/dist/planner/plan-storage.js.map +0 -1
- package/dist/planner/prompts/planning-prompt.d.ts +0 -62
- package/dist/planner/prompts/planning-prompt.js +0 -414
- package/dist/planner/prompts/planning-prompt.js.map +0 -1
- package/dist/planner/task-planner.d.ts +0 -139
- package/dist/planner/task-planner.js +0 -532
- package/dist/planner/task-planner.js.map +0 -1
- package/dist/planner/token-estimator.d.ts +0 -63
- package/dist/planner/token-estimator.js +0 -295
- package/dist/planner/token-estimator.js.map +0 -1
- package/dist/planner/types.d.ts +0 -425
- package/dist/planner/types.js +0 -213
- package/dist/planner/types.js.map +0 -1
- package/dist/provider/config.d.ts +0 -227
- package/dist/provider/config.js +0 -430
- package/dist/provider/config.js.map +0 -1
- package/dist/schemas/api-schemas.d.ts +0 -45
- package/dist/schemas/api-schemas.js +0 -129
- package/dist/schemas/api-schemas.js.map +0 -1
- package/dist/schemas/confirmation-schemas.d.ts +0 -39
- package/dist/schemas/confirmation-schemas.js +0 -48
- package/dist/schemas/confirmation-schemas.js.map +0 -1
- package/dist/schemas/index-unified.d.ts +0 -12
- package/dist/schemas/index-unified.js +0 -17
- package/dist/schemas/index-unified.js.map +0 -1
- package/dist/schemas/index.d.ts +0 -83
- package/dist/schemas/index.js +0 -139
- package/dist/schemas/index.js.map +0 -1
- package/dist/schemas/settings-schemas.d.ts +0 -186
- package/dist/schemas/settings-schemas.js +0 -324
- package/dist/schemas/settings-schemas.js.map +0 -1
- package/dist/schemas/tool-schemas.d.ts +0 -127
- package/dist/schemas/tool-schemas.js +0 -84
- package/dist/schemas/tool-schemas.js.map +0 -1
- package/dist/schemas/yaml-schemas.d.ts +0 -231
- package/dist/schemas/yaml-schemas.js +0 -199
- package/dist/schemas/yaml-schemas.js.map +0 -1
- package/dist/sdk/errors.d.ts +0 -100
- package/dist/sdk/errors.js +0 -138
- package/dist/sdk/errors.js.map +0 -1
- package/dist/sdk/index.d.ts +0 -901
- package/dist/sdk/index.js +0 -1272
- package/dist/sdk/index.js.map +0 -1
- package/dist/sdk/progress-reporter.d.ts +0 -123
- package/dist/sdk/progress-reporter.js +0 -220
- package/dist/sdk/progress-reporter.js.map +0 -1
- package/dist/sdk/testing.d.ts +0 -427
- package/dist/sdk/testing.js +0 -725
- package/dist/sdk/testing.js.map +0 -1
- package/dist/sdk/tool-registry.d.ts +0 -194
- package/dist/sdk/tool-registry.js +0 -326
- package/dist/sdk/tool-registry.js.map +0 -1
- package/dist/sdk/types.d.ts +0 -53
- package/dist/sdk/types.js +0 -8
- package/dist/sdk/types.js.map +0 -1
- package/dist/sdk/unified-logger.d.ts +0 -173
- package/dist/sdk/unified-logger.js +0 -327
- package/dist/sdk/unified-logger.js.map +0 -1
- package/dist/sdk/version.d.ts +0 -163
- package/dist/sdk/version.js +0 -205
- package/dist/sdk/version.js.map +0 -1
- package/dist/tools/ask-user.d.ts +0 -126
- package/dist/tools/ask-user.js +0 -290
- package/dist/tools/ask-user.js.map +0 -1
- package/dist/tools/ax-agent.d.ts +0 -71
- package/dist/tools/ax-agent.js +0 -283
- package/dist/tools/ax-agent.js.map +0 -1
- package/dist/tools/bash-output.d.ts +0 -25
- package/dist/tools/bash-output.js +0 -146
- package/dist/tools/bash-output.js.map +0 -1
- package/dist/tools/bash.d.ts +0 -67
- package/dist/tools/bash.js +0 -522
- package/dist/tools/bash.js.map +0 -1
- package/dist/tools/confirmation-tool.d.ts +0 -16
- package/dist/tools/confirmation-tool.js +0 -76
- package/dist/tools/confirmation-tool.js.map +0 -1
- package/dist/tools/definitions/ask-user.d.ts +0 -8
- package/dist/tools/definitions/ask-user.js +0 -168
- package/dist/tools/definitions/ask-user.js.map +0 -1
- package/dist/tools/definitions/ax-agent.d.ts +0 -8
- package/dist/tools/definitions/ax-agent.js +0 -276
- package/dist/tools/definitions/ax-agent.js.map +0 -1
- package/dist/tools/definitions/bash-output.d.ts +0 -7
- package/dist/tools/definitions/bash-output.js +0 -78
- package/dist/tools/definitions/bash-output.js.map +0 -1
- package/dist/tools/definitions/bash.d.ts +0 -8
- package/dist/tools/definitions/bash.js +0 -152
- package/dist/tools/definitions/bash.js.map +0 -1
- package/dist/tools/definitions/create-file.d.ts +0 -7
- package/dist/tools/definitions/create-file.js +0 -129
- package/dist/tools/definitions/create-file.js.map +0 -1
- package/dist/tools/definitions/design.d.ts +0 -12
- package/dist/tools/definitions/design.js +0 -368
- package/dist/tools/definitions/design.js.map +0 -1
- package/dist/tools/definitions/index.d.ts +0 -49
- package/dist/tools/definitions/index.js +0 -87
- package/dist/tools/definitions/index.js.map +0 -1
- package/dist/tools/definitions/multi-edit.d.ts +0 -7
- package/dist/tools/definitions/multi-edit.js +0 -123
- package/dist/tools/definitions/multi-edit.js.map +0 -1
- package/dist/tools/definitions/search.d.ts +0 -7
- package/dist/tools/definitions/search.js +0 -159
- package/dist/tools/definitions/search.js.map +0 -1
- package/dist/tools/definitions/str-replace-editor.d.ts +0 -7
- package/dist/tools/definitions/str-replace-editor.js +0 -145
- package/dist/tools/definitions/str-replace-editor.js.map +0 -1
- package/dist/tools/definitions/todo.d.ts +0 -8
- package/dist/tools/definitions/todo.js +0 -261
- package/dist/tools/definitions/todo.js.map +0 -1
- package/dist/tools/definitions/view-file.d.ts +0 -7
- package/dist/tools/definitions/view-file.js +0 -111
- package/dist/tools/definitions/view-file.js.map +0 -1
- package/dist/tools/design-tool.d.ts +0 -68
- package/dist/tools/design-tool.js +0 -299
- package/dist/tools/design-tool.js.map +0 -1
- package/dist/tools/format-generators.d.ts +0 -62
- package/dist/tools/format-generators.js +0 -291
- package/dist/tools/format-generators.js.map +0 -1
- package/dist/tools/index.d.ts +0 -8
- package/dist/tools/index.js +0 -11
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/priority-registry.d.ts +0 -124
- package/dist/tools/priority-registry.js +0 -401
- package/dist/tools/priority-registry.js.map +0 -1
- package/dist/tools/priority.d.ts +0 -158
- package/dist/tools/priority.js +0 -350
- package/dist/tools/priority.js.map +0 -1
- package/dist/tools/registry.d.ts +0 -146
- package/dist/tools/registry.js +0 -171
- package/dist/tools/registry.js.map +0 -1
- package/dist/tools/search.d.ts +0 -85
- package/dist/tools/search.js +0 -430
- package/dist/tools/search.js.map +0 -1
- package/dist/tools/text-editor.d.ts +0 -87
- package/dist/tools/text-editor.js +0 -1369
- package/dist/tools/text-editor.js.map +0 -1
- package/dist/tools/todo-tool.d.ts +0 -20
- package/dist/tools/todo-tool.js +0 -186
- package/dist/tools/todo-tool.js.map +0 -1
- package/dist/tools/types.d.ts +0 -175
- package/dist/tools/types.js +0 -11
- package/dist/tools/types.js.map +0 -1
- package/dist/types/index.d.ts +0 -30
- package/dist/types/index.js +0 -2
- package/dist/types/index.js.map +0 -1
- package/dist/types/project-analysis.d.ts +0 -84
- package/dist/types/project-analysis.js +0 -5
- package/dist/types/project-analysis.js.map +0 -1
- package/dist/types/template.d.ts +0 -53
- package/dist/types/template.js +0 -5
- package/dist/types/template.js.map +0 -1
- package/dist/ui/app.d.ts +0 -7
- package/dist/ui/app.js +0 -102
- package/dist/ui/app.js.map +0 -1
- package/dist/ui/components/api-key-input.d.ts +0 -7
- package/dist/ui/components/api-key-input.js +0 -92
- package/dist/ui/components/api-key-input.js.map +0 -1
- package/dist/ui/components/chat-history.d.ts +0 -12
- package/dist/ui/components/chat-history.js +0 -391
- package/dist/ui/components/chat-history.js.map +0 -1
- package/dist/ui/components/chat-input.d.ts +0 -13
- package/dist/ui/components/chat-input.js +0 -179
- package/dist/ui/components/chat-input.js.map +0 -1
- package/dist/ui/components/chat-interface.d.ts +0 -11
- package/dist/ui/components/chat-interface.js +0 -830
- package/dist/ui/components/chat-interface.js.map +0 -1
- package/dist/ui/components/collapsible-tool-result.d.ts +0 -42
- package/dist/ui/components/collapsible-tool-result.js +0 -216
- package/dist/ui/components/collapsible-tool-result.js.map +0 -1
- package/dist/ui/components/command-suggestions.d.ts +0 -29
- package/dist/ui/components/command-suggestions.js +0 -88
- package/dist/ui/components/command-suggestions.js.map +0 -1
- package/dist/ui/components/confirmation-dialog.d.ts +0 -11
- package/dist/ui/components/confirmation-dialog.js +0 -100
- package/dist/ui/components/confirmation-dialog.js.map +0 -1
- package/dist/ui/components/context-breakdown.d.ts +0 -23
- package/dist/ui/components/context-breakdown.js +0 -124
- package/dist/ui/components/context-breakdown.js.map +0 -1
- package/dist/ui/components/diff-renderer.d.ts +0 -13
- package/dist/ui/components/diff-renderer.js +0 -192
- package/dist/ui/components/diff-renderer.js.map +0 -1
- package/dist/ui/components/index.d.ts +0 -18
- package/dist/ui/components/index.js +0 -20
- package/dist/ui/components/index.js.map +0 -1
- package/dist/ui/components/keyboard-help.d.ts +0 -17
- package/dist/ui/components/keyboard-help.js +0 -122
- package/dist/ui/components/keyboard-help.js.map +0 -1
- package/dist/ui/components/keyboard-hints.d.ts +0 -35
- package/dist/ui/components/keyboard-hints.js +0 -142
- package/dist/ui/components/keyboard-hints.js.map +0 -1
- package/dist/ui/components/loading-spinner.d.ts +0 -9
- package/dist/ui/components/loading-spinner.js +0 -120
- package/dist/ui/components/loading-spinner.js.map +0 -1
- package/dist/ui/components/mcp-dashboard.d.ts +0 -15
- package/dist/ui/components/mcp-dashboard.js +0 -520
- package/dist/ui/components/mcp-dashboard.js.map +0 -1
- package/dist/ui/components/mcp-status.d.ts +0 -5
- package/dist/ui/components/mcp-status.js +0 -58
- package/dist/ui/components/mcp-status.js.map +0 -1
- package/dist/ui/components/model-selection.d.ts +0 -12
- package/dist/ui/components/model-selection.js +0 -17
- package/dist/ui/components/model-selection.js.map +0 -1
- package/dist/ui/components/phase-progress.d.ts +0 -21
- package/dist/ui/components/phase-progress.js +0 -185
- package/dist/ui/components/phase-progress.js.map +0 -1
- package/dist/ui/components/question-dialog.d.ts +0 -17
- package/dist/ui/components/question-dialog.js +0 -181
- package/dist/ui/components/question-dialog.js.map +0 -1
- package/dist/ui/components/quick-actions.d.ts +0 -12
- package/dist/ui/components/quick-actions.js +0 -171
- package/dist/ui/components/quick-actions.js.map +0 -1
- package/dist/ui/components/reasoning-display.d.ts +0 -36
- package/dist/ui/components/reasoning-display.js +0 -46
- package/dist/ui/components/reasoning-display.js.map +0 -1
- package/dist/ui/components/status-bar.d.ts +0 -47
- package/dist/ui/components/status-bar.js +0 -310
- package/dist/ui/components/status-bar.js.map +0 -1
- package/dist/ui/components/subagent-monitor.d.ts +0 -41
- package/dist/ui/components/subagent-monitor.js +0 -122
- package/dist/ui/components/subagent-monitor.js.map +0 -1
- package/dist/ui/components/toast-notification.d.ts +0 -197
- package/dist/ui/components/toast-notification.js +0 -190
- package/dist/ui/components/toast-notification.js.map +0 -1
- package/dist/ui/components/tool-group-display.d.ts +0 -19
- package/dist/ui/components/tool-group-display.js +0 -222
- package/dist/ui/components/tool-group-display.js.map +0 -1
- package/dist/ui/components/virtualized-chat-history.d.ts +0 -33
- package/dist/ui/components/virtualized-chat-history.js +0 -182
- package/dist/ui/components/virtualized-chat-history.js.map +0 -1
- package/dist/ui/components/welcome-panel.d.ts +0 -11
- package/dist/ui/components/welcome-panel.js +0 -225
- package/dist/ui/components/welcome-panel.js.map +0 -1
- package/dist/ui/hooks/use-chat-reducer.d.ts +0 -69
- package/dist/ui/hooks/use-chat-reducer.js +0 -118
- package/dist/ui/hooks/use-chat-reducer.js.map +0 -1
- package/dist/ui/hooks/use-enhanced-input.d.ts +0 -53
- package/dist/ui/hooks/use-enhanced-input.js +0 -1275
- package/dist/ui/hooks/use-enhanced-input.js.map +0 -1
- package/dist/ui/hooks/use-input-handler.d.ts +0 -79
- package/dist/ui/hooks/use-input-handler.js +0 -2251
- package/dist/ui/hooks/use-input-handler.js.map +0 -1
- package/dist/ui/hooks/use-input-history.d.ts +0 -9
- package/dist/ui/hooks/use-input-history.js +0 -168
- package/dist/ui/hooks/use-input-history.js.map +0 -1
- package/dist/ui/shared/max-sized-box.d.ts +0 -17
- package/dist/ui/shared/max-sized-box.js +0 -14
- package/dist/ui/shared/max-sized-box.js.map +0 -1
- package/dist/ui/themes/index.d.ts +0 -5
- package/dist/ui/themes/index.js +0 -5
- package/dist/ui/themes/index.js.map +0 -1
- package/dist/ui/themes/theme-registry.d.ts +0 -55
- package/dist/ui/themes/theme-registry.js +0 -202
- package/dist/ui/themes/theme-registry.js.map +0 -1
- package/dist/ui/utils/bracketed-paste-handler.d.ts +0 -97
- package/dist/ui/utils/bracketed-paste-handler.js +0 -322
- package/dist/ui/utils/bracketed-paste-handler.js.map +0 -1
- package/dist/ui/utils/change-summarizer.d.ts +0 -20
- package/dist/ui/utils/change-summarizer.js +0 -282
- package/dist/ui/utils/change-summarizer.js.map +0 -1
- package/dist/ui/utils/code-colorizer.d.ts +0 -9
- package/dist/ui/utils/code-colorizer.js +0 -13
- package/dist/ui/utils/code-colorizer.js.map +0 -1
- package/dist/ui/utils/colors.d.ts +0 -41
- package/dist/ui/utils/colors.js +0 -80
- package/dist/ui/utils/colors.js.map +0 -1
- package/dist/ui/utils/image-handler.d.ts +0 -29
- package/dist/ui/utils/image-handler.js +0 -129
- package/dist/ui/utils/image-handler.js.map +0 -1
- package/dist/ui/utils/markdown-renderer.d.ts +0 -4
- package/dist/ui/utils/markdown-renderer.js +0 -40
- package/dist/ui/utils/markdown-renderer.js.map +0 -1
- package/dist/ui/utils/semantic-action-detector.d.ts +0 -49
- package/dist/ui/utils/semantic-action-detector.js +0 -339
- package/dist/ui/utils/semantic-action-detector.js.map +0 -1
- package/dist/ui/utils/tool-grouper.d.ts +0 -94
- package/dist/ui/utils/tool-grouper.js +0 -618
- package/dist/ui/utils/tool-grouper.js.map +0 -1
- package/dist/utils/api-error.d.ts +0 -61
- package/dist/utils/api-error.js +0 -176
- package/dist/utils/api-error.js.map +0 -1
- package/dist/utils/audit-logger.d.ts +0 -206
- package/dist/utils/audit-logger.js +0 -286
- package/dist/utils/audit-logger.js.map +0 -1
- package/dist/utils/auto-accept-logger.d.ts +0 -175
- package/dist/utils/auto-accept-logger.js +0 -423
- package/dist/utils/auto-accept-logger.js.map +0 -1
- package/dist/utils/automatosx-detector.d.ts +0 -19
- package/dist/utils/automatosx-detector.js +0 -52
- package/dist/utils/automatosx-detector.js.map +0 -1
- package/dist/utils/background-task-manager.d.ts +0 -114
- package/dist/utils/background-task-manager.js +0 -470
- package/dist/utils/background-task-manager.js.map +0 -1
- package/dist/utils/cache.d.ts +0 -77
- package/dist/utils/cache.js +0 -180
- package/dist/utils/cache.js.map +0 -1
- package/dist/utils/command-security.d.ts +0 -85
- package/dist/utils/command-security.js +0 -210
- package/dist/utils/command-security.js.map +0 -1
- package/dist/utils/config-loader.d.ts +0 -190
- package/dist/utils/config-loader.js +0 -108
- package/dist/utils/config-loader.js.map +0 -1
- package/dist/utils/confirmation-service.d.ts +0 -51
- package/dist/utils/confirmation-service.js +0 -220
- package/dist/utils/confirmation-service.js.map +0 -1
- package/dist/utils/console-messenger.d.ts +0 -80
- package/dist/utils/console-messenger.js +0 -142
- package/dist/utils/console-messenger.js.map +0 -1
- package/dist/utils/custom-instructions.d.ts +0 -1
- package/dist/utils/custom-instructions.js +0 -24
- package/dist/utils/custom-instructions.js.map +0 -1
- package/dist/utils/encryption.d.ts +0 -86
- package/dist/utils/encryption.js +0 -236
- package/dist/utils/encryption.js.map +0 -1
- package/dist/utils/enhanced-error-messages.d.ts +0 -33
- package/dist/utils/enhanced-error-messages.js +0 -440
- package/dist/utils/enhanced-error-messages.js.map +0 -1
- package/dist/utils/error-handler.d.ts +0 -65
- package/dist/utils/error-handler.js +0 -148
- package/dist/utils/error-handler.js.map +0 -1
- package/dist/utils/error-translator.d.ts +0 -25
- package/dist/utils/error-translator.js +0 -203
- package/dist/utils/error-translator.js.map +0 -1
- package/dist/utils/external-editor.d.ts +0 -47
- package/dist/utils/external-editor.js +0 -179
- package/dist/utils/external-editor.js.map +0 -1
- package/dist/utils/file-cache.d.ts +0 -148
- package/dist/utils/file-cache.js +0 -413
- package/dist/utils/file-cache.js.map +0 -1
- package/dist/utils/file-lock.d.ts +0 -141
- package/dist/utils/file-lock.js +0 -554
- package/dist/utils/file-lock.js.map +0 -1
- package/dist/utils/file-mentions.d.ts +0 -68
- package/dist/utils/file-mentions.js +0 -225
- package/dist/utils/file-mentions.js.map +0 -1
- package/dist/utils/history-manager.d.ts +0 -52
- package/dist/utils/history-manager.js +0 -211
- package/dist/utils/history-manager.js.map +0 -1
- package/dist/utils/history-migration.d.ts +0 -9
- package/dist/utils/history-migration.js +0 -37
- package/dist/utils/history-migration.js.map +0 -1
- package/dist/utils/image-processor.d.ts +0 -33
- package/dist/utils/image-processor.js +0 -124
- package/dist/utils/image-processor.js.map +0 -1
- package/dist/utils/index.d.ts +0 -92
- package/dist/utils/index.js +0 -111
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/init-previewer.d.ts +0 -56
- package/dist/utils/init-previewer.js +0 -239
- package/dist/utils/init-previewer.js.map +0 -1
- package/dist/utils/init-validator.d.ts +0 -65
- package/dist/utils/init-validator.js +0 -252
- package/dist/utils/init-validator.js.map +0 -1
- package/dist/utils/input-sanitizer.d.ts +0 -210
- package/dist/utils/input-sanitizer.js +0 -362
- package/dist/utils/input-sanitizer.js.map +0 -1
- package/dist/utils/instruction-generator.d.ts +0 -21
- package/dist/utils/instruction-generator.js +0 -233
- package/dist/utils/instruction-generator.js.map +0 -1
- package/dist/utils/json-utils.d.ts +0 -72
- package/dist/utils/json-utils.js +0 -226
- package/dist/utils/json-utils.js.map +0 -1
- package/dist/utils/llm-optimized-instruction-generator.d.ts +0 -36
- package/dist/utils/llm-optimized-instruction-generator.js +0 -365
- package/dist/utils/llm-optimized-instruction-generator.js.map +0 -1
- package/dist/utils/message-optimizer.d.ts +0 -100
- package/dist/utils/message-optimizer.js +0 -297
- package/dist/utils/message-optimizer.js.map +0 -1
- package/dist/utils/onboarding-manager.d.ts +0 -45
- package/dist/utils/onboarding-manager.js +0 -131
- package/dist/utils/onboarding-manager.js.map +0 -1
- package/dist/utils/parallel-analyzer.d.ts +0 -123
- package/dist/utils/parallel-analyzer.js +0 -241
- package/dist/utils/parallel-analyzer.js.map +0 -1
- package/dist/utils/paste-utils.d.ts +0 -99
- package/dist/utils/paste-utils.js +0 -295
- package/dist/utils/paste-utils.js.map +0 -1
- package/dist/utils/path-helpers.d.ts +0 -8
- package/dist/utils/path-helpers.js +0 -35
- package/dist/utils/path-helpers.js.map +0 -1
- package/dist/utils/path-security.d.ts +0 -92
- package/dist/utils/path-security.js +0 -300
- package/dist/utils/path-security.js.map +0 -1
- package/dist/utils/path-utils.d.ts +0 -83
- package/dist/utils/path-utils.js +0 -122
- package/dist/utils/path-utils.js.map +0 -1
- package/dist/utils/path-validator.d.ts +0 -66
- package/dist/utils/path-validator.js +0 -141
- package/dist/utils/path-validator.js.map +0 -1
- package/dist/utils/performance.d.ts +0 -74
- package/dist/utils/performance.js +0 -133
- package/dist/utils/performance.js.map +0 -1
- package/dist/utils/process-pool.d.ts +0 -109
- package/dist/utils/process-pool.js +0 -332
- package/dist/utils/process-pool.js.map +0 -1
- package/dist/utils/progress-tracker.d.ts +0 -51
- package/dist/utils/progress-tracker.js +0 -152
- package/dist/utils/progress-tracker.js.map +0 -1
- package/dist/utils/project-analyzer.d.ts +0 -49
- package/dist/utils/project-analyzer.js +0 -396
- package/dist/utils/project-analyzer.js.map +0 -1
- package/dist/utils/prompt-builder.d.ts +0 -14
- package/dist/utils/prompt-builder.js +0 -100
- package/dist/utils/prompt-builder.js.map +0 -1
- package/dist/utils/provider-context.d.ts +0 -243
- package/dist/utils/provider-context.js +0 -421
- package/dist/utils/provider-context.js.map +0 -1
- package/dist/utils/provider-file-cache.d.ts +0 -91
- package/dist/utils/provider-file-cache.js +0 -165
- package/dist/utils/provider-file-cache.js.map +0 -1
- package/dist/utils/provider-settings.d.ts +0 -181
- package/dist/utils/provider-settings.js +0 -450
- package/dist/utils/provider-settings.js.map +0 -1
- package/dist/utils/rate-limiter.d.ts +0 -222
- package/dist/utils/rate-limiter.js +0 -338
- package/dist/utils/rate-limiter.js.map +0 -1
- package/dist/utils/retry-helper.d.ts +0 -81
- package/dist/utils/retry-helper.js +0 -244
- package/dist/utils/retry-helper.js.map +0 -1
- package/dist/utils/safety-rules.d.ts +0 -64
- package/dist/utils/safety-rules.js +0 -225
- package/dist/utils/safety-rules.js.map +0 -1
- package/dist/utils/settings-manager.d.ts +0 -256
- package/dist/utils/settings-manager.js +0 -967
- package/dist/utils/settings-manager.js.map +0 -1
- package/dist/utils/setup-validator.d.ts +0 -47
- package/dist/utils/setup-validator.js +0 -304
- package/dist/utils/setup-validator.js.map +0 -1
- package/dist/utils/string-utils.d.ts +0 -19
- package/dist/utils/string-utils.js +0 -28
- package/dist/utils/string-utils.js.map +0 -1
- package/dist/utils/template-manager.d.ts +0 -62
- package/dist/utils/template-manager.js +0 -366
- package/dist/utils/template-manager.js.map +0 -1
- package/dist/utils/text-utils.d.ts +0 -82
- package/dist/utils/text-utils.js +0 -203
- package/dist/utils/text-utils.js.map +0 -1
- package/dist/utils/token-counter.d.ts +0 -76
- package/dist/utils/token-counter.js +0 -231
- package/dist/utils/token-counter.js.map +0 -1
- package/dist/utils/usage-tracker.d.ts +0 -78
- package/dist/utils/usage-tracker.js +0 -126
- package/dist/utils/usage-tracker.js.map +0 -1
- package/dist/utils/version.d.ts +0 -14
- package/dist/utils/version.js +0 -70
- package/dist/utils/version.js.map +0 -1
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Parallel Tool Execution
|
|
3
|
-
*
|
|
4
|
-
* Classifies tools for safe parallel execution based on their side effects.
|
|
5
|
-
* Read-only and isolated tools can run concurrently, while write operations
|
|
6
|
-
* are executed sequentially to prevent race conditions.
|
|
7
|
-
*
|
|
8
|
-
* @packageDocumentation
|
|
9
|
-
*/
|
|
10
|
-
/**
|
|
11
|
-
* Tool classification for parallel execution safety
|
|
12
|
-
*
|
|
13
|
-
* Categories:
|
|
14
|
-
* - parallel: Safe to run concurrently (read-only, isolated external processes)
|
|
15
|
-
* - sequential: Must run one at a time (file writes, stateful operations)
|
|
16
|
-
*/
|
|
17
|
-
/**
|
|
18
|
-
* BUG FIX: Added missing tool classifications to ensure all tools
|
|
19
|
-
* have explicit parallel/sequential classification
|
|
20
|
-
*/
|
|
21
|
-
export const TOOL_CLASSIFICATION = {
|
|
22
|
-
// Read-only tools - safe to parallelize
|
|
23
|
-
view_file: "parallel",
|
|
24
|
-
search: "parallel",
|
|
25
|
-
list_directory: "parallel",
|
|
26
|
-
// External process tools - isolated, safe to parallelize
|
|
27
|
-
ax_agent: "parallel",
|
|
28
|
-
ax_agents_parallel: "parallel", // Internally manages its own parallelism
|
|
29
|
-
// Write tools - must be sequential to prevent conflicts
|
|
30
|
-
create_file: "sequential",
|
|
31
|
-
str_replace_editor: "sequential",
|
|
32
|
-
multi_edit: "sequential",
|
|
33
|
-
// Bash - conservative: sequential by default (may have side effects)
|
|
34
|
-
bash: "sequential",
|
|
35
|
-
bash_output: "parallel", // Read-only (checks output of background task)
|
|
36
|
-
// Todo tools - stateful, keep sequential
|
|
37
|
-
todo: "sequential",
|
|
38
|
-
create_todo_list: "sequential",
|
|
39
|
-
update_todo_list: "sequential",
|
|
40
|
-
// Ask user - requires user interaction, sequential
|
|
41
|
-
ask_user: "sequential",
|
|
42
|
-
// Design tools - read-only are parallel, write operations are sequential
|
|
43
|
-
figma_export: "sequential",
|
|
44
|
-
figma_get_styles: "parallel",
|
|
45
|
-
figma_get_components: "parallel",
|
|
46
|
-
figma_resolve_alias: "parallel",
|
|
47
|
-
figma_get_file: "parallel", // Read-only file metadata
|
|
48
|
-
figma_audit_tokens: "parallel", // Read-only analysis
|
|
49
|
-
figma_get_variables: "parallel", // Read-only variable fetch
|
|
50
|
-
// BUG FIX: Add missing tool classifications
|
|
51
|
-
// File viewing tools - read-only
|
|
52
|
-
read_file: "parallel",
|
|
53
|
-
// Directory listing - read-only
|
|
54
|
-
ls: "parallel",
|
|
55
|
-
// Web tools - isolated external operations
|
|
56
|
-
web_search: "parallel",
|
|
57
|
-
web_fetch: "parallel",
|
|
58
|
-
};
|
|
59
|
-
/**
|
|
60
|
-
* Check if a tool is safe for parallel execution
|
|
61
|
-
*
|
|
62
|
-
* @param toolName - Name of the tool to check
|
|
63
|
-
* @returns true if tool can run in parallel, false if must be sequential
|
|
64
|
-
*/
|
|
65
|
-
export function isParallelSafe(toolName) {
|
|
66
|
-
// MCP tools - conservative: treat as sequential unless we know better
|
|
67
|
-
if (toolName.startsWith("mcp__")) {
|
|
68
|
-
return false;
|
|
69
|
-
}
|
|
70
|
-
const mode = TOOL_CLASSIFICATION[toolName];
|
|
71
|
-
// Unknown tools default to sequential for safety
|
|
72
|
-
return mode === "parallel";
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Partition tool calls into parallel-safe and sequential groups
|
|
76
|
-
*
|
|
77
|
-
* @param toolCalls - Array of tool calls to partition
|
|
78
|
-
* @returns Object with parallel and sequential arrays
|
|
79
|
-
*/
|
|
80
|
-
export function partitionToolCalls(toolCalls) {
|
|
81
|
-
const parallel = [];
|
|
82
|
-
const sequential = [];
|
|
83
|
-
for (const toolCall of toolCalls) {
|
|
84
|
-
if (isParallelSafe(toolCall.function.name)) {
|
|
85
|
-
parallel.push(toolCall);
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
sequential.push(toolCall);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
return { parallel, sequential };
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Default parallel execution configuration
|
|
95
|
-
*/
|
|
96
|
-
export const DEFAULT_PARALLEL_CONFIG = {
|
|
97
|
-
maxConcurrency: 4,
|
|
98
|
-
enabled: true,
|
|
99
|
-
};
|
|
100
|
-
/**
|
|
101
|
-
* Execute tools in parallel with concurrency limit
|
|
102
|
-
*
|
|
103
|
-
* @param toolCalls - Tools to execute
|
|
104
|
-
* @param executor - Function to execute a single tool
|
|
105
|
-
* @param config - Parallel execution configuration
|
|
106
|
-
* @returns Array of results in the same order as input
|
|
107
|
-
*/
|
|
108
|
-
export async function executeToolsInParallel(toolCalls, executor, config = {}) {
|
|
109
|
-
const { maxConcurrency = DEFAULT_PARALLEL_CONFIG.maxConcurrency, enabled = DEFAULT_PARALLEL_CONFIG.enabled, } = config;
|
|
110
|
-
if (toolCalls.length === 0) {
|
|
111
|
-
return [];
|
|
112
|
-
}
|
|
113
|
-
// BUG FIX: Check enabled flag - if disabled, execute all tools sequentially
|
|
114
|
-
if (!enabled) {
|
|
115
|
-
const results = [];
|
|
116
|
-
for (const toolCall of toolCalls) {
|
|
117
|
-
try {
|
|
118
|
-
const result = await executor(toolCall);
|
|
119
|
-
results.push({ toolCall, result });
|
|
120
|
-
}
|
|
121
|
-
catch (error) {
|
|
122
|
-
results.push({
|
|
123
|
-
toolCall,
|
|
124
|
-
result: undefined,
|
|
125
|
-
error: error instanceof Error ? error : new Error(String(error)),
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
return results;
|
|
130
|
-
}
|
|
131
|
-
// REFACTOR: Helper to execute single tool with error handling
|
|
132
|
-
// BUG FIX: Use proper discriminated union instead of unsafe type coercion
|
|
133
|
-
const executeSingle = async (toolCall) => {
|
|
134
|
-
try {
|
|
135
|
-
const result = await executor(toolCall);
|
|
136
|
-
return { toolCall, result };
|
|
137
|
-
}
|
|
138
|
-
catch (error) {
|
|
139
|
-
// Return with result as undefined - callers must check error field
|
|
140
|
-
// This is safer than casting undefined to T
|
|
141
|
-
return {
|
|
142
|
-
toolCall,
|
|
143
|
-
result: undefined,
|
|
144
|
-
error: error instanceof Error ? error : new Error(String(error)),
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
};
|
|
148
|
-
// If only one tool or concurrency is 1, execute sequentially
|
|
149
|
-
if (toolCalls.length === 1 || maxConcurrency === 1) {
|
|
150
|
-
const results = [];
|
|
151
|
-
for (const toolCall of toolCalls) {
|
|
152
|
-
results.push(await executeSingle(toolCall));
|
|
153
|
-
}
|
|
154
|
-
return results;
|
|
155
|
-
}
|
|
156
|
-
// Use concurrency-limited parallel execution with proper work-stealing pattern
|
|
157
|
-
const results = new Array(toolCalls.length);
|
|
158
|
-
let nextIndex = 0;
|
|
159
|
-
// BUG FIX: Use synchronous index access - JavaScript is single-threaded
|
|
160
|
-
// so synchronous operations on nextIndex are atomic. The previous async
|
|
161
|
-
// getNextIndex was unnecessary and the indexLock was never actually used.
|
|
162
|
-
const getNextIndex = () => {
|
|
163
|
-
if (nextIndex >= toolCalls.length)
|
|
164
|
-
return -1;
|
|
165
|
-
const current = nextIndex;
|
|
166
|
-
nextIndex++;
|
|
167
|
-
return current;
|
|
168
|
-
};
|
|
169
|
-
const executeNext = async () => {
|
|
170
|
-
while (true) {
|
|
171
|
-
// Get next index synchronously (atomic in JS single-threaded model)
|
|
172
|
-
const currentIndex = getNextIndex();
|
|
173
|
-
if (currentIndex === -1)
|
|
174
|
-
return; // No more work
|
|
175
|
-
// Execute the tool
|
|
176
|
-
results[currentIndex] = await executeSingle(toolCalls[currentIndex]);
|
|
177
|
-
}
|
|
178
|
-
};
|
|
179
|
-
// Start worker pool up to maxConcurrency
|
|
180
|
-
const workers = [];
|
|
181
|
-
const workerCount = Math.min(maxConcurrency, toolCalls.length);
|
|
182
|
-
for (let i = 0; i < workerCount; i++) {
|
|
183
|
-
workers.push(executeNext());
|
|
184
|
-
}
|
|
185
|
-
await Promise.all(workers);
|
|
186
|
-
return results;
|
|
187
|
-
}
|
|
188
|
-
//# sourceMappingURL=parallel-tools.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parallel-tools.js","sourceRoot":"","sources":["../../src/agent/parallel-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agent/planning/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Plan Executor
|
|
3
|
-
*
|
|
4
|
-
* Handles execution of multi-phase task plans.
|
|
5
|
-
* Extracted from llm-agent.ts for better separation of concerns.
|
|
6
|
-
*
|
|
7
|
-
* @packageDocumentation
|
|
8
|
-
*/
|
|
9
|
-
import type { LLMClient, LLMMessage, LLMTool } from "../../llm/client.js";
|
|
10
|
-
import type { ChatOptions } from "../../llm/types.js";
|
|
11
|
-
import type { TokenCounter } from "../../utils/token-counter.js";
|
|
12
|
-
import type { ToolExecutor } from "../execution/index.js";
|
|
13
|
-
import type { ChatEntry } from "../core/types.js";
|
|
14
|
-
import type { TaskPlan, TaskPhase, PhaseResult, PlanResult } from "../../planner/index.js";
|
|
15
|
-
import { EventEmitter } from "events";
|
|
16
|
-
/**
|
|
17
|
-
* Plan executor configuration
|
|
18
|
-
*/
|
|
19
|
-
export interface PlanExecutorConfig {
|
|
20
|
-
/** LLM client for API calls */
|
|
21
|
-
llmClient: LLMClient;
|
|
22
|
-
/** Token counter for usage tracking */
|
|
23
|
-
tokenCounter: TokenCounter;
|
|
24
|
-
/** Tool executor for running tools */
|
|
25
|
-
toolExecutor: ToolExecutor;
|
|
26
|
-
/** Get all available tools */
|
|
27
|
-
getTools: () => Promise<LLMTool[]>;
|
|
28
|
-
/** Execute a tool call */
|
|
29
|
-
executeTool: (toolCall: unknown) => Promise<{
|
|
30
|
-
success: boolean;
|
|
31
|
-
output?: string;
|
|
32
|
-
error?: string;
|
|
33
|
-
}>;
|
|
34
|
-
/** Parse tool arguments with caching */
|
|
35
|
-
parseToolArgumentsCached: (toolCall: unknown) => Record<string, unknown>;
|
|
36
|
-
/** Build chat options with agent config */
|
|
37
|
-
buildChatOptions: (options?: Partial<ChatOptions>) => ChatOptions;
|
|
38
|
-
/** Apply context pruning */
|
|
39
|
-
applyContextPruning: () => void;
|
|
40
|
-
/** Event emitter for plan events */
|
|
41
|
-
emitter: EventEmitter;
|
|
42
|
-
/** Max tool rounds per phase (default: 50) */
|
|
43
|
-
maxToolRounds?: number;
|
|
44
|
-
/** Callback to temporarily disable planning during phase execution */
|
|
45
|
-
setPlanningEnabled?: (enabled: boolean) => void;
|
|
46
|
-
}
|
|
47
|
-
export declare class PlanExecutor {
|
|
48
|
-
private config;
|
|
49
|
-
constructor(config: PlanExecutorConfig);
|
|
50
|
-
/**
|
|
51
|
-
* Execute a single phase using the LLM
|
|
52
|
-
*/
|
|
53
|
-
executePhase(phase: TaskPhase, context: {
|
|
54
|
-
planId: string;
|
|
55
|
-
originalRequest: string;
|
|
56
|
-
completedPhases: string[];
|
|
57
|
-
}, messages: LLMMessage[], _chatHistory: ChatEntry[]): Promise<{
|
|
58
|
-
result: PhaseResult;
|
|
59
|
-
messages: LLMMessage[];
|
|
60
|
-
}>;
|
|
61
|
-
/**
|
|
62
|
-
* Build a prompt for phase execution
|
|
63
|
-
*/
|
|
64
|
-
private buildPhasePrompt;
|
|
65
|
-
/**
|
|
66
|
-
* Format plan summary for display
|
|
67
|
-
*/
|
|
68
|
-
formatPlanSummary(plan: TaskPlan): string;
|
|
69
|
-
/**
|
|
70
|
-
* Format plan result for display
|
|
71
|
-
*/
|
|
72
|
-
formatPlanResult(result: PlanResult): string;
|
|
73
|
-
/**
|
|
74
|
-
* Generate status report on plan completion
|
|
75
|
-
*/
|
|
76
|
-
generateStatusReport(messages: LLMMessage[], chatHistory: ChatEntry[], tokenCount: number, plan: TaskPlan): Promise<{
|
|
77
|
-
path: string | undefined;
|
|
78
|
-
}>;
|
|
79
|
-
}
|
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Plan Executor
|
|
3
|
-
*
|
|
4
|
-
* Handles execution of multi-phase task plans.
|
|
5
|
-
* Extracted from llm-agent.ts for better separation of concerns.
|
|
6
|
-
*
|
|
7
|
-
* @packageDocumentation
|
|
8
|
-
*/
|
|
9
|
-
import { extractErrorMessage } from "../../utils/error-handler.js";
|
|
10
|
-
import { getStatusReporter } from "../status-reporter.js";
|
|
11
|
-
import { PLANNER_CONFIG } from "../../constants.js";
|
|
12
|
-
/**
|
|
13
|
-
* Plan Executor
|
|
14
|
-
*
|
|
15
|
-
* Executes multi-phase task plans with progress tracking.
|
|
16
|
-
*/
|
|
17
|
-
// REFACTOR: Constant for file-modifying tools (avoid recreating in loop)
|
|
18
|
-
const FILE_MODIFYING_TOOLS = new Set(['create_file', 'str_replace_editor', 'multi_edit']);
|
|
19
|
-
export class PlanExecutor {
|
|
20
|
-
config;
|
|
21
|
-
constructor(config) {
|
|
22
|
-
this.config = config;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Execute a single phase using the LLM
|
|
26
|
-
*/
|
|
27
|
-
async executePhase(phase, context, messages, _chatHistory) {
|
|
28
|
-
const startTime = Date.now();
|
|
29
|
-
const startTokens = this.config.tokenCounter.countMessageTokens(messages);
|
|
30
|
-
const filesModified = [];
|
|
31
|
-
let lastAssistantContent = "";
|
|
32
|
-
// Emit phase started event
|
|
33
|
-
this.config.emitter.emit("phase:started", { phase, planId: context.planId });
|
|
34
|
-
// Temporarily disable planning during phase execution to prevent recursive planning
|
|
35
|
-
if (this.config.setPlanningEnabled) {
|
|
36
|
-
this.config.setPlanningEnabled(false);
|
|
37
|
-
}
|
|
38
|
-
try {
|
|
39
|
-
// Build phase-specific prompt
|
|
40
|
-
const phasePrompt = this.buildPhasePrompt(phase, context);
|
|
41
|
-
// Add phase context to messages
|
|
42
|
-
messages.push({
|
|
43
|
-
role: "user",
|
|
44
|
-
content: phasePrompt,
|
|
45
|
-
});
|
|
46
|
-
// Execute using the standard tool loop
|
|
47
|
-
const tools = await this.config.getTools();
|
|
48
|
-
let toolRounds = 0;
|
|
49
|
-
const maxPhaseRounds = this.config.maxToolRounds ?? 50; // Limit per phase
|
|
50
|
-
while (toolRounds < maxPhaseRounds) {
|
|
51
|
-
const response = await this.config.llmClient.chat(messages, tools, this.config.buildChatOptions());
|
|
52
|
-
const assistantMessage = response.choices[0]?.message;
|
|
53
|
-
if (!assistantMessage)
|
|
54
|
-
break;
|
|
55
|
-
// Capture the assistant's content for phase output
|
|
56
|
-
if (assistantMessage.content) {
|
|
57
|
-
lastAssistantContent = assistantMessage.content;
|
|
58
|
-
}
|
|
59
|
-
// Add to messages
|
|
60
|
-
messages.push({
|
|
61
|
-
role: "assistant",
|
|
62
|
-
content: assistantMessage.content || "",
|
|
63
|
-
tool_calls: assistantMessage.tool_calls,
|
|
64
|
-
});
|
|
65
|
-
// Check for tool calls
|
|
66
|
-
if (!assistantMessage.tool_calls || assistantMessage.tool_calls.length === 0) {
|
|
67
|
-
break; // No more tool calls, phase complete
|
|
68
|
-
}
|
|
69
|
-
// BUG FIX: Increment toolRounds after checking for tool calls
|
|
70
|
-
// but count it here so we can check limit before executing
|
|
71
|
-
toolRounds++;
|
|
72
|
-
if (toolRounds >= maxPhaseRounds) {
|
|
73
|
-
// Add a warning message about hitting the limit
|
|
74
|
-
this.config.emitter.emit("phase:warning", {
|
|
75
|
-
phase,
|
|
76
|
-
planId: context.planId,
|
|
77
|
-
message: `Phase hit tool round limit (${maxPhaseRounds})`,
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
// Execute tools and track file modifications
|
|
81
|
-
for (const toolCall of assistantMessage.tool_calls) {
|
|
82
|
-
const result = await this.config.executeTool(toolCall);
|
|
83
|
-
// REFACTOR: Use Set.has() for O(1) lookup instead of Array.includes()
|
|
84
|
-
if (FILE_MODIFYING_TOOLS.has(toolCall.function.name)) {
|
|
85
|
-
const args = this.config.parseToolArgumentsCached(toolCall);
|
|
86
|
-
if (args.path && result.success) {
|
|
87
|
-
if (!filesModified.includes(args.path)) {
|
|
88
|
-
filesModified.push(args.path);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
messages.push({
|
|
93
|
-
role: "tool",
|
|
94
|
-
tool_call_id: toolCall.id,
|
|
95
|
-
content: result.output || result.error || "No output",
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
// Prune context if configured
|
|
100
|
-
if (PLANNER_CONFIG.PRUNE_AFTER_PHASE) {
|
|
101
|
-
this.config.applyContextPruning();
|
|
102
|
-
}
|
|
103
|
-
const endTokens = this.config.tokenCounter.countMessageTokens(messages);
|
|
104
|
-
const duration = Date.now() - startTime;
|
|
105
|
-
// Build meaningful output
|
|
106
|
-
const output = lastAssistantContent ||
|
|
107
|
-
`Phase "${phase.name}" completed (${toolRounds} tool rounds, ${filesModified.length} files modified)`;
|
|
108
|
-
// Emit phase completed event
|
|
109
|
-
this.config.emitter.emit("phase:completed", {
|
|
110
|
-
phase,
|
|
111
|
-
planId: context.planId,
|
|
112
|
-
result: { success: true, output, filesModified }
|
|
113
|
-
});
|
|
114
|
-
return {
|
|
115
|
-
result: {
|
|
116
|
-
phaseId: phase.id,
|
|
117
|
-
success: true,
|
|
118
|
-
output,
|
|
119
|
-
duration,
|
|
120
|
-
tokensUsed: endTokens - startTokens,
|
|
121
|
-
filesModified,
|
|
122
|
-
wasRetry: false,
|
|
123
|
-
retryAttempt: 0,
|
|
124
|
-
},
|
|
125
|
-
messages,
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
catch (error) {
|
|
129
|
-
const duration = Date.now() - startTime;
|
|
130
|
-
const errorMessage = extractErrorMessage(error);
|
|
131
|
-
// Emit phase failed event
|
|
132
|
-
this.config.emitter.emit("phase:failed", {
|
|
133
|
-
phase,
|
|
134
|
-
planId: context.planId,
|
|
135
|
-
error: errorMessage
|
|
136
|
-
});
|
|
137
|
-
return {
|
|
138
|
-
result: {
|
|
139
|
-
phaseId: phase.id,
|
|
140
|
-
success: false,
|
|
141
|
-
error: errorMessage,
|
|
142
|
-
duration,
|
|
143
|
-
tokensUsed: 0,
|
|
144
|
-
filesModified,
|
|
145
|
-
wasRetry: false,
|
|
146
|
-
retryAttempt: 0,
|
|
147
|
-
},
|
|
148
|
-
messages,
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
|
-
finally {
|
|
152
|
-
// Restore planning state
|
|
153
|
-
if (this.config.setPlanningEnabled) {
|
|
154
|
-
this.config.setPlanningEnabled(true);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Build a prompt for phase execution
|
|
160
|
-
*/
|
|
161
|
-
buildPhasePrompt(phase, context) {
|
|
162
|
-
let prompt = `## Phase ${phase.index + 1}: ${phase.name}\n\n`;
|
|
163
|
-
prompt += `**Objective:** ${phase.description}\n\n`;
|
|
164
|
-
if (phase.objectives.length > 0) {
|
|
165
|
-
prompt += "**Tasks to complete:**\n";
|
|
166
|
-
for (const obj of phase.objectives) {
|
|
167
|
-
prompt += `- ${obj}\n`;
|
|
168
|
-
}
|
|
169
|
-
prompt += "\n";
|
|
170
|
-
}
|
|
171
|
-
if (context.completedPhases.length > 0) {
|
|
172
|
-
prompt += `**Previously completed phases:** ${context.completedPhases.join(", ")}\n\n`;
|
|
173
|
-
}
|
|
174
|
-
prompt += `**Original request:** ${context.originalRequest}\n\n`;
|
|
175
|
-
prompt += "Please complete this phase. Focus only on the objectives listed above.";
|
|
176
|
-
return prompt;
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Format plan summary for display
|
|
180
|
-
*/
|
|
181
|
-
formatPlanSummary(plan) {
|
|
182
|
-
let output = `**📋 Execution Plan Created**\n\n`;
|
|
183
|
-
output += `**Request:** ${plan.originalPrompt.slice(0, 100)}${plan.originalPrompt.length > 100 ? "..." : ""}\n\n`;
|
|
184
|
-
output += `**Phases (${plan.phases.length}):**\n`;
|
|
185
|
-
for (const phase of plan.phases) {
|
|
186
|
-
// BUG FIX: Consistent risk icons for all levels (low was empty)
|
|
187
|
-
const riskIcon = phase.riskLevel === "high" ? "⚠️" : phase.riskLevel === "medium" ? "△" : "○";
|
|
188
|
-
output += ` ${phase.index + 1}. ${phase.name} ${riskIcon}\n`;
|
|
189
|
-
}
|
|
190
|
-
output += `\n**Estimated Duration:** ~${Math.ceil(plan.estimatedDuration / 60000)} min\n\n`;
|
|
191
|
-
output += "---\n\n";
|
|
192
|
-
return output;
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* Format plan result for display
|
|
196
|
-
*/
|
|
197
|
-
formatPlanResult(result) {
|
|
198
|
-
let output = "\n---\n\n**📋 Plan Execution Complete**\n\n";
|
|
199
|
-
// REFACTOR: Single pass through results instead of two filter operations
|
|
200
|
-
let successful = 0;
|
|
201
|
-
for (const r of result.phaseResults) {
|
|
202
|
-
if (r.success)
|
|
203
|
-
successful++;
|
|
204
|
-
}
|
|
205
|
-
const failed = result.phaseResults.length - successful;
|
|
206
|
-
output += `**Results:** ${successful}/${result.phaseResults.length} phases successful`;
|
|
207
|
-
if (failed > 0) {
|
|
208
|
-
output += ` (${failed} failed)`;
|
|
209
|
-
}
|
|
210
|
-
output += "\n";
|
|
211
|
-
if (result.totalDuration) {
|
|
212
|
-
output += `**Duration:** ${Math.ceil(result.totalDuration / 1000)}s\n`;
|
|
213
|
-
}
|
|
214
|
-
if (result.totalTokensUsed) {
|
|
215
|
-
output += `**Tokens Used:** ${result.totalTokensUsed.toLocaleString()}\n`;
|
|
216
|
-
}
|
|
217
|
-
return output;
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* Generate status report on plan completion
|
|
221
|
-
*/
|
|
222
|
-
async generateStatusReport(messages, chatHistory, tokenCount, plan) {
|
|
223
|
-
try {
|
|
224
|
-
const reporter = getStatusReporter();
|
|
225
|
-
const report = await reporter.generateStatusReport({
|
|
226
|
-
messages,
|
|
227
|
-
chatHistory,
|
|
228
|
-
tokenCount,
|
|
229
|
-
plan,
|
|
230
|
-
});
|
|
231
|
-
return { path: report.path };
|
|
232
|
-
}
|
|
233
|
-
catch (error) {
|
|
234
|
-
const errorMsg = extractErrorMessage(error);
|
|
235
|
-
console.warn("Failed to generate status report:", errorMsg);
|
|
236
|
-
return { path: undefined };
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
//# sourceMappingURL=plan-executor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plan-executor.js","sourceRoot":"","sources":["../../../src/agent/planning/plan-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Progress-Based Detection System (Phase 2)
|
|
3
|
-
*
|
|
4
|
-
* Tracks state changes to detect actual progress vs. loops.
|
|
5
|
-
* Key insight: The problem isn't repeated tool calls, it's repeated tool calls
|
|
6
|
-
* that don't make progress.
|
|
7
|
-
*
|
|
8
|
-
* Progress Indicators:
|
|
9
|
-
* - File operations: Content changed (hash comparison)
|
|
10
|
-
* - Bash commands: Exit code 0 vs non-zero
|
|
11
|
-
* - Edits: File actually modified
|
|
12
|
-
*/
|
|
13
|
-
/**
|
|
14
|
-
* File state snapshot for comparison
|
|
15
|
-
*/
|
|
16
|
-
interface FileState {
|
|
17
|
-
path: string;
|
|
18
|
-
hash: string;
|
|
19
|
-
size: number;
|
|
20
|
-
mtime: number;
|
|
21
|
-
exists: boolean;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Progress result for a tool execution
|
|
25
|
-
*/
|
|
26
|
-
export interface ProgressResult {
|
|
27
|
-
madeProgress: boolean;
|
|
28
|
-
reason: string;
|
|
29
|
-
stateChange?: {
|
|
30
|
-
before: FileState | null;
|
|
31
|
-
after: FileState | null;
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Bash execution result for progress tracking
|
|
36
|
-
*/
|
|
37
|
-
export interface BashProgressResult {
|
|
38
|
-
madeProgress: boolean;
|
|
39
|
-
reason: string;
|
|
40
|
-
exitCode: number;
|
|
41
|
-
outputChanged: boolean;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Progress tracking for all tool operations
|
|
45
|
-
*/
|
|
46
|
-
export declare class ProgressTracker {
|
|
47
|
-
/** Cache of file states (path -> state) */
|
|
48
|
-
private fileStateCache;
|
|
49
|
-
/** Cache of bash output hashes (command -> hash) */
|
|
50
|
-
private bashOutputCache;
|
|
51
|
-
/** Recent file modifications for pattern detection */
|
|
52
|
-
private recentFileOps;
|
|
53
|
-
/** Maximum recent operations to track */
|
|
54
|
-
private maxRecentOps;
|
|
55
|
-
/**
|
|
56
|
-
* Capture file state before an operation
|
|
57
|
-
*/
|
|
58
|
-
captureFileState(path: string): Promise<FileState | null>;
|
|
59
|
-
/**
|
|
60
|
-
* Check if a file operation made progress
|
|
61
|
-
* Call this AFTER the operation completes
|
|
62
|
-
*/
|
|
63
|
-
checkFileProgress(path: string, operation: 'create' | 'edit' | 'view', success: boolean): Promise<ProgressResult>;
|
|
64
|
-
/**
|
|
65
|
-
* Check if a bash command made progress
|
|
66
|
-
*/
|
|
67
|
-
checkBashProgress(command: string, exitCode: number, output: string): BashProgressResult;
|
|
68
|
-
/**
|
|
69
|
-
* Detect if we're stuck in a file operation loop
|
|
70
|
-
* Returns true if the same file is being operated on repeatedly without progress
|
|
71
|
-
*/
|
|
72
|
-
detectFileOpLoop(path: string): {
|
|
73
|
-
isLoop: boolean;
|
|
74
|
-
reason?: string;
|
|
75
|
-
suggestion?: string;
|
|
76
|
-
};
|
|
77
|
-
/**
|
|
78
|
-
* Get progress statistics
|
|
79
|
-
*/
|
|
80
|
-
getStats(): {
|
|
81
|
-
trackedFiles: number;
|
|
82
|
-
trackedCommands: number;
|
|
83
|
-
recentOperations: number;
|
|
84
|
-
};
|
|
85
|
-
/**
|
|
86
|
-
* Reset all tracking
|
|
87
|
-
*/
|
|
88
|
-
reset(): void;
|
|
89
|
-
private hashContent;
|
|
90
|
-
private recordFileOp;
|
|
91
|
-
}
|
|
92
|
-
export declare function getProgressTracker(): ProgressTracker;
|
|
93
|
-
export declare function resetProgressTracker(): void;
|
|
94
|
-
export {};
|