@defai.digital/ax-cli 4.4.7 → 4.4.11
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 -420
- 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
package/dist/commands/setup.js
DELETED
|
@@ -1,733 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Setup Command - Provider Selection and Configuration
|
|
3
|
-
*
|
|
4
|
-
* This setup wizard:
|
|
5
|
-
* 1. Lets user select GLM or Grok provider
|
|
6
|
-
* 2. Runs provider-specific setup (API key, model selection, etc.)
|
|
7
|
-
* 3. Saves config to provider-specific directory (~/.ax-glm or ~/.ax-grok)
|
|
8
|
-
* 4. Recommends installing the provider-specific CLI
|
|
9
|
-
*/
|
|
10
|
-
import { Command } from 'commander';
|
|
11
|
-
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
|
|
12
|
-
import { homedir } from 'os';
|
|
13
|
-
import { join } from 'path';
|
|
14
|
-
import { execSync, spawnSync } from 'child_process';
|
|
15
|
-
import * as prompts from '@clack/prompts';
|
|
16
|
-
import chalk from 'chalk';
|
|
17
|
-
import { validateProviderSetup } from '../utils/setup-validator.js';
|
|
18
|
-
import { extractErrorMessage } from '../utils/error-handler.js';
|
|
19
|
-
import { detectZAIServices, getRecommendedServers, generateZAIServerConfig, } from '../mcp/index.js';
|
|
20
|
-
import { addMCPServer, removeMCPServer } from '../mcp/config.js';
|
|
21
|
-
// Provider definitions
|
|
22
|
-
const PROVIDERS = {
|
|
23
|
-
glm: {
|
|
24
|
-
name: 'glm',
|
|
25
|
-
displayName: 'GLM (Z.AI)',
|
|
26
|
-
cliName: 'ax-glm',
|
|
27
|
-
package: '@defai.digital/ax-glm',
|
|
28
|
-
defaultBaseURL: 'https://api.z.ai/api/coding/paas/v4',
|
|
29
|
-
defaultModel: 'glm-4.6',
|
|
30
|
-
apiKeyEnvVar: 'ZAI_API_KEY',
|
|
31
|
-
website: 'https://z.ai',
|
|
32
|
-
description: 'GLM-4.6 with thinking mode and 200K context',
|
|
33
|
-
configDir: '.ax-glm',
|
|
34
|
-
},
|
|
35
|
-
grok: {
|
|
36
|
-
name: 'grok',
|
|
37
|
-
displayName: 'Grok (xAI)',
|
|
38
|
-
cliName: 'ax-grok',
|
|
39
|
-
package: '@defai.digital/ax-grok',
|
|
40
|
-
defaultBaseURL: 'https://api.x.ai/v1',
|
|
41
|
-
defaultModel: 'grok-4-0709',
|
|
42
|
-
apiKeyEnvVar: 'XAI_API_KEY',
|
|
43
|
-
website: 'https://console.x.ai',
|
|
44
|
-
description: 'Grok 4 with extended thinking, vision, and live search',
|
|
45
|
-
configDir: '.ax-grok',
|
|
46
|
-
},
|
|
47
|
-
};
|
|
48
|
-
// GLM models
|
|
49
|
-
const GLM_MODELS = [
|
|
50
|
-
{ id: 'glm-4.6', name: 'GLM-4.6', description: 'Most capable GLM model with thinking mode', contextWindow: 200000, supportsThinking: true },
|
|
51
|
-
{ id: 'glm-4.6v', name: 'GLM-4.6V', description: 'Latest vision model with 128K context and thinking mode', contextWindow: 128000, supportsVision: true, supportsThinking: true },
|
|
52
|
-
{ id: 'glm-4', name: 'GLM-4', description: 'Standard GLM-4 model', contextWindow: 128000 },
|
|
53
|
-
{ id: 'glm-4-flash', name: 'GLM-4 Flash', description: 'Fast, efficient GLM model', contextWindow: 128000 },
|
|
54
|
-
];
|
|
55
|
-
// Grok models (Grok-4 only - all capabilities built-in)
|
|
56
|
-
const GROK_MODELS = [
|
|
57
|
-
{ id: 'grok-4-0709', name: 'Grok-4', description: 'Most capable: reasoning, coding, vision, search (default)', contextWindow: 131072, supportsThinking: true, supportsVision: true, supportsSearch: true },
|
|
58
|
-
{ id: 'grok-4.1-fast', name: 'Grok-4.1 Fast', description: 'Fast variant with agent tools support', contextWindow: 131072, supportsThinking: true, supportsVision: true, supportsSearch: true },
|
|
59
|
-
{ id: 'grok-2-image-1212', name: 'Grok-2 Image', description: 'Text-to-image generation model', contextWindow: 32768 },
|
|
60
|
-
];
|
|
61
|
-
// Local server options
|
|
62
|
-
const LOCAL_SERVERS = [
|
|
63
|
-
{ name: 'Ollama', url: 'http://localhost:11434/v1', port: 11434 },
|
|
64
|
-
{ name: 'LM Studio', url: 'http://localhost:1234/v1', port: 1234 },
|
|
65
|
-
{ name: 'vLLM', url: 'http://localhost:8000/v1', port: 8000 },
|
|
66
|
-
{ name: 'LocalAI', url: 'http://localhost:8080/v1', port: 8080 },
|
|
67
|
-
];
|
|
68
|
-
/**
|
|
69
|
-
* Handle user cancellation
|
|
70
|
-
*/
|
|
71
|
-
function exitIfCancelled(value) {
|
|
72
|
-
if (prompts.isCancel(value)) {
|
|
73
|
-
prompts.cancel('Setup cancelled.');
|
|
74
|
-
process.exit(0);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Get provider config path
|
|
79
|
-
*/
|
|
80
|
-
function getConfigPath(provider) {
|
|
81
|
-
return join(homedir(), PROVIDERS[provider].configDir, 'config.json');
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Get provider config directory
|
|
85
|
-
*/
|
|
86
|
-
function getConfigDir(provider) {
|
|
87
|
-
return join(homedir(), PROVIDERS[provider].configDir);
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Load existing provider config
|
|
91
|
-
*/
|
|
92
|
-
function loadProviderConfig(provider) {
|
|
93
|
-
try {
|
|
94
|
-
const configPath = getConfigPath(provider);
|
|
95
|
-
if (existsSync(configPath)) {
|
|
96
|
-
return JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
catch {
|
|
100
|
-
// Ignore errors
|
|
101
|
-
}
|
|
102
|
-
return {};
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Save provider config
|
|
106
|
-
*/
|
|
107
|
-
function saveProviderConfig(provider, config) {
|
|
108
|
-
const configDir = getConfigDir(provider);
|
|
109
|
-
const configPath = getConfigPath(provider);
|
|
110
|
-
if (!existsSync(configDir)) {
|
|
111
|
-
mkdirSync(configDir, { recursive: true });
|
|
112
|
-
}
|
|
113
|
-
writeFileSync(configPath, JSON.stringify(config, null, 2), { mode: 0o600 });
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Check if a local server is running
|
|
117
|
-
*/
|
|
118
|
-
async function checkLocalServer(url) {
|
|
119
|
-
try {
|
|
120
|
-
const controller = new AbortController();
|
|
121
|
-
const timeout = setTimeout(() => controller.abort(), 2000);
|
|
122
|
-
const response = await fetch(`${url}/models`, {
|
|
123
|
-
signal: controller.signal,
|
|
124
|
-
headers: { 'Content-Type': 'application/json' },
|
|
125
|
-
});
|
|
126
|
-
clearTimeout(timeout);
|
|
127
|
-
return response.ok;
|
|
128
|
-
}
|
|
129
|
-
catch {
|
|
130
|
-
return false;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Fetch models from local server
|
|
135
|
-
*/
|
|
136
|
-
async function fetchLocalModels(baseURL) {
|
|
137
|
-
try {
|
|
138
|
-
const controller = new AbortController();
|
|
139
|
-
const timeout = setTimeout(() => controller.abort(), 5000);
|
|
140
|
-
const response = await fetch(`${baseURL}/models`, {
|
|
141
|
-
signal: controller.signal,
|
|
142
|
-
headers: { 'Content-Type': 'application/json' },
|
|
143
|
-
});
|
|
144
|
-
clearTimeout(timeout);
|
|
145
|
-
if (!response.ok)
|
|
146
|
-
return [];
|
|
147
|
-
const data = await response.json();
|
|
148
|
-
const models = data.data || [];
|
|
149
|
-
return models.map((m) => ({
|
|
150
|
-
id: m.id,
|
|
151
|
-
name: m.id,
|
|
152
|
-
description: m.owned_by ? `Provided by ${m.owned_by}` : 'Local model',
|
|
153
|
-
contextWindow: 8192,
|
|
154
|
-
}));
|
|
155
|
-
}
|
|
156
|
-
catch {
|
|
157
|
-
return [];
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Detect running local servers
|
|
162
|
-
*/
|
|
163
|
-
async function detectLocalServers() {
|
|
164
|
-
const results = await Promise.all(LOCAL_SERVERS.map(async (server) => ({
|
|
165
|
-
...server,
|
|
166
|
-
available: await checkLocalServer(server.url),
|
|
167
|
-
})));
|
|
168
|
-
return results;
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Validate cloud API connection
|
|
172
|
-
*/
|
|
173
|
-
async function validateCloudConnection(baseURL, apiKey) {
|
|
174
|
-
try {
|
|
175
|
-
const response = await fetch(`${baseURL}/models`, {
|
|
176
|
-
headers: {
|
|
177
|
-
'Authorization': `Bearer ${apiKey}`,
|
|
178
|
-
'Content-Type': 'application/json',
|
|
179
|
-
},
|
|
180
|
-
});
|
|
181
|
-
return response.ok;
|
|
182
|
-
}
|
|
183
|
-
catch {
|
|
184
|
-
return false;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* Check if provider CLI is installed
|
|
189
|
-
*/
|
|
190
|
-
function isProviderInstalled(provider) {
|
|
191
|
-
const cliName = PROVIDERS[provider].cliName;
|
|
192
|
-
try {
|
|
193
|
-
const result = spawnSync('which', [cliName], { encoding: 'utf-8', timeout: 5000 });
|
|
194
|
-
return result.status === 0;
|
|
195
|
-
}
|
|
196
|
-
catch {
|
|
197
|
-
return false;
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
/**
|
|
201
|
-
* Install provider package
|
|
202
|
-
*/
|
|
203
|
-
async function installProvider(provider) {
|
|
204
|
-
const providerInfo = PROVIDERS[provider];
|
|
205
|
-
const spinner = prompts.spinner();
|
|
206
|
-
spinner.start(`Installing ${providerInfo.package}...`);
|
|
207
|
-
try {
|
|
208
|
-
execSync(`npm install -g ${providerInfo.package}`, {
|
|
209
|
-
stdio: 'pipe',
|
|
210
|
-
timeout: 180000,
|
|
211
|
-
});
|
|
212
|
-
spinner.stop(`${providerInfo.package} installed successfully!`);
|
|
213
|
-
return true;
|
|
214
|
-
}
|
|
215
|
-
catch (error) {
|
|
216
|
-
spinner.stop('Installation failed');
|
|
217
|
-
prompts.log.error(extractErrorMessage(error));
|
|
218
|
-
prompts.log.info(`Try manually: npm install -g ${providerInfo.package}`);
|
|
219
|
-
return false;
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Run GLM-specific setup
|
|
224
|
-
*/
|
|
225
|
-
async function runGLMSetup(existingConfig) {
|
|
226
|
-
const providerInfo = PROVIDERS.glm;
|
|
227
|
-
// Step 1: Server Type
|
|
228
|
-
prompts.log.step(chalk.bold('Step 1/4 - Server Type'));
|
|
229
|
-
const serverType = await prompts.select({
|
|
230
|
-
message: 'Where do you want to run GLM models?',
|
|
231
|
-
options: [
|
|
232
|
-
{ value: 'cloud', label: 'Z.AI Cloud (Recommended)', hint: 'Official Z.AI API with GLM-4.6' },
|
|
233
|
-
{ value: 'local', label: 'Local Server', hint: 'Ollama, LM Studio, vLLM, etc.' },
|
|
234
|
-
],
|
|
235
|
-
initialValue: (existingConfig.serverType || 'cloud'),
|
|
236
|
-
});
|
|
237
|
-
exitIfCancelled(serverType);
|
|
238
|
-
if (serverType === 'cloud') {
|
|
239
|
-
return await runZAICloudSetup(existingConfig, providerInfo);
|
|
240
|
-
}
|
|
241
|
-
else {
|
|
242
|
-
return await runLocalGLMSetup(existingConfig, providerInfo);
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
/**
|
|
246
|
-
* Run Z.AI Cloud setup
|
|
247
|
-
*/
|
|
248
|
-
async function runZAICloudSetup(existingConfig, providerInfo) {
|
|
249
|
-
// Step 2: API Key
|
|
250
|
-
prompts.log.step(chalk.bold('Step 2/4 - Z.AI API Key'));
|
|
251
|
-
prompts.log.info(`Get your API key from: ${providerInfo.website}`);
|
|
252
|
-
let apiKey = '';
|
|
253
|
-
const envKey = process.env[providerInfo.apiKeyEnvVar];
|
|
254
|
-
const existingKey = existingConfig.apiKey;
|
|
255
|
-
if (existingKey && existingConfig.serverType === 'cloud') {
|
|
256
|
-
const maskedKey = existingKey.length > 12
|
|
257
|
-
? `${existingKey.substring(0, 8)}...${existingKey.substring(existingKey.length - 4)}`
|
|
258
|
-
: `${existingKey.substring(0, 4)}...`;
|
|
259
|
-
prompts.log.info(`Existing API key: ${maskedKey}`);
|
|
260
|
-
const reuseKey = await prompts.confirm({ message: 'Use existing API key?', initialValue: true });
|
|
261
|
-
exitIfCancelled(reuseKey);
|
|
262
|
-
if (reuseKey) {
|
|
263
|
-
apiKey = existingKey;
|
|
264
|
-
prompts.log.success('Using existing API key');
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
else if (envKey) {
|
|
268
|
-
prompts.log.info(`Found ${providerInfo.apiKeyEnvVar} in environment`);
|
|
269
|
-
const useEnvKey = await prompts.confirm({ message: 'Use API key from environment?', initialValue: true });
|
|
270
|
-
exitIfCancelled(useEnvKey);
|
|
271
|
-
if (useEnvKey) {
|
|
272
|
-
apiKey = envKey;
|
|
273
|
-
prompts.log.success('Using environment API key');
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
if (!apiKey) {
|
|
277
|
-
const newKey = await prompts.password({
|
|
278
|
-
message: 'Enter your Z.AI API key:',
|
|
279
|
-
validate: (value) => value?.trim().length > 0 ? undefined : 'API key is required',
|
|
280
|
-
});
|
|
281
|
-
exitIfCancelled(newKey);
|
|
282
|
-
apiKey = newKey.trim();
|
|
283
|
-
}
|
|
284
|
-
// Step 3: Model Selection
|
|
285
|
-
prompts.log.step(chalk.bold('Step 3/4 - Choose Model'));
|
|
286
|
-
const modelChoices = GLM_MODELS.map((m) => ({
|
|
287
|
-
value: m.id,
|
|
288
|
-
label: m.id === providerInfo.defaultModel ? `${m.name} (recommended)` : m.name,
|
|
289
|
-
hint: m.description,
|
|
290
|
-
}));
|
|
291
|
-
const selectedModel = await prompts.select({
|
|
292
|
-
message: 'Select default model:',
|
|
293
|
-
options: modelChoices,
|
|
294
|
-
initialValue: existingConfig.defaultModel || providerInfo.defaultModel,
|
|
295
|
-
});
|
|
296
|
-
exitIfCancelled(selectedModel);
|
|
297
|
-
// Step 4: Validate & Save
|
|
298
|
-
prompts.log.step(chalk.bold('Step 4/4 - Validate & Save'));
|
|
299
|
-
const spinner = prompts.spinner();
|
|
300
|
-
spinner.start('Validating Z.AI connection...');
|
|
301
|
-
const isValid = await validateProviderSetup({
|
|
302
|
-
baseURL: providerInfo.defaultBaseURL,
|
|
303
|
-
apiKey: apiKey,
|
|
304
|
-
model: selectedModel,
|
|
305
|
-
providerName: 'glm',
|
|
306
|
-
}, false);
|
|
307
|
-
if (isValid.success) {
|
|
308
|
-
spinner.stop('Z.AI connection validated successfully!');
|
|
309
|
-
}
|
|
310
|
-
else {
|
|
311
|
-
spinner.stop('Could not validate connection (will save anyway)');
|
|
312
|
-
}
|
|
313
|
-
return {
|
|
314
|
-
selectedProvider: 'glm',
|
|
315
|
-
serverType: 'cloud',
|
|
316
|
-
apiKey: apiKey,
|
|
317
|
-
baseURL: providerInfo.defaultBaseURL,
|
|
318
|
-
defaultModel: selectedModel,
|
|
319
|
-
currentModel: selectedModel,
|
|
320
|
-
maxTokens: 32768,
|
|
321
|
-
temperature: existingConfig.temperature ?? 0.7,
|
|
322
|
-
models: GLM_MODELS.map(m => m.id),
|
|
323
|
-
_provider: 'GLM (Z.AI Cloud)',
|
|
324
|
-
_website: providerInfo.website,
|
|
325
|
-
_isLocalServer: false,
|
|
326
|
-
};
|
|
327
|
-
}
|
|
328
|
-
/**
|
|
329
|
-
* Run Local GLM Server setup
|
|
330
|
-
*/
|
|
331
|
-
async function runLocalGLMSetup(existingConfig, _providerInfo) {
|
|
332
|
-
// Step 2: Local Server Detection
|
|
333
|
-
prompts.log.step(chalk.bold('Step 2/4 - Local Server'));
|
|
334
|
-
const spinner = prompts.spinner();
|
|
335
|
-
spinner.start('Detecting local inference servers...');
|
|
336
|
-
const detectedServers = await detectLocalServers();
|
|
337
|
-
const availableServers = detectedServers.filter(s => s.available);
|
|
338
|
-
spinner.stop(availableServers.length > 0
|
|
339
|
-
? `Found ${availableServers.length} running server(s)`
|
|
340
|
-
: 'No running servers detected');
|
|
341
|
-
let selectedBaseURL;
|
|
342
|
-
if (availableServers.length > 0) {
|
|
343
|
-
const serverChoices = [
|
|
344
|
-
...availableServers.map(s => ({ value: s.url, label: `${s.name} - ${s.url}` })),
|
|
345
|
-
{ value: '__custom__', label: 'Enter custom URL...' },
|
|
346
|
-
];
|
|
347
|
-
const serverSelection = await prompts.select({
|
|
348
|
-
message: 'Select your local server:',
|
|
349
|
-
options: serverChoices,
|
|
350
|
-
initialValue: existingConfig.baseURL || availableServers[0].url,
|
|
351
|
-
});
|
|
352
|
-
exitIfCancelled(serverSelection);
|
|
353
|
-
if (serverSelection === '__custom__') {
|
|
354
|
-
const customURL = await prompts.text({
|
|
355
|
-
message: 'Enter server URL:',
|
|
356
|
-
initialValue: 'http://localhost:11434/v1',
|
|
357
|
-
validate: (value) => {
|
|
358
|
-
try {
|
|
359
|
-
new URL(value);
|
|
360
|
-
return undefined;
|
|
361
|
-
}
|
|
362
|
-
catch {
|
|
363
|
-
return 'Please enter a valid URL';
|
|
364
|
-
}
|
|
365
|
-
},
|
|
366
|
-
});
|
|
367
|
-
exitIfCancelled(customURL);
|
|
368
|
-
selectedBaseURL = customURL.trim();
|
|
369
|
-
}
|
|
370
|
-
else {
|
|
371
|
-
selectedBaseURL = serverSelection;
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
else {
|
|
375
|
-
prompts.log.info('Common local server URLs:');
|
|
376
|
-
LOCAL_SERVERS.forEach(s => prompts.log.info(` ${s.name}: ${s.url}`));
|
|
377
|
-
const customURL = await prompts.text({
|
|
378
|
-
message: 'Enter your server URL:',
|
|
379
|
-
initialValue: existingConfig.baseURL || 'http://localhost:11434/v1',
|
|
380
|
-
validate: (value) => {
|
|
381
|
-
try {
|
|
382
|
-
new URL(value);
|
|
383
|
-
return undefined;
|
|
384
|
-
}
|
|
385
|
-
catch {
|
|
386
|
-
return 'Please enter a valid URL';
|
|
387
|
-
}
|
|
388
|
-
},
|
|
389
|
-
});
|
|
390
|
-
exitIfCancelled(customURL);
|
|
391
|
-
selectedBaseURL = customURL.trim();
|
|
392
|
-
}
|
|
393
|
-
// Step 3: Model Selection
|
|
394
|
-
prompts.log.step(chalk.bold('Step 3/4 - Choose Model'));
|
|
395
|
-
const modelSpinner = prompts.spinner();
|
|
396
|
-
modelSpinner.start('Fetching available models...');
|
|
397
|
-
let availableModels = await fetchLocalModels(selectedBaseURL);
|
|
398
|
-
modelSpinner.stop(availableModels.length > 0
|
|
399
|
-
? `Found ${availableModels.length} model(s)`
|
|
400
|
-
: 'Could not fetch models from server');
|
|
401
|
-
let selectedModel;
|
|
402
|
-
if (availableModels.length > 0) {
|
|
403
|
-
const modelChoices = [
|
|
404
|
-
...availableModels.map(m => ({ value: m.id, label: `${m.name} - ${m.description}` })),
|
|
405
|
-
{ value: '__custom__', label: 'Enter custom model name...' },
|
|
406
|
-
];
|
|
407
|
-
const modelSelection = await prompts.select({
|
|
408
|
-
message: 'Select model:',
|
|
409
|
-
options: modelChoices,
|
|
410
|
-
initialValue: existingConfig.defaultModel || availableModels[0]?.id,
|
|
411
|
-
});
|
|
412
|
-
exitIfCancelled(modelSelection);
|
|
413
|
-
if (modelSelection === '__custom__') {
|
|
414
|
-
const customModel = await prompts.text({ message: 'Enter model name:', initialValue: 'glm4' });
|
|
415
|
-
exitIfCancelled(customModel);
|
|
416
|
-
selectedModel = customModel.trim();
|
|
417
|
-
}
|
|
418
|
-
else {
|
|
419
|
-
selectedModel = modelSelection;
|
|
420
|
-
}
|
|
421
|
-
}
|
|
422
|
-
else {
|
|
423
|
-
const customModel = await prompts.text({
|
|
424
|
-
message: 'Enter model name:',
|
|
425
|
-
initialValue: existingConfig.defaultModel || 'glm4',
|
|
426
|
-
});
|
|
427
|
-
exitIfCancelled(customModel);
|
|
428
|
-
selectedModel = customModel.trim();
|
|
429
|
-
}
|
|
430
|
-
// Step 4: Validate & Save
|
|
431
|
-
prompts.log.step(chalk.bold('Step 4/4 - Validate & Save'));
|
|
432
|
-
const validateSpinner = prompts.spinner();
|
|
433
|
-
validateSpinner.start('Validating local server connection...');
|
|
434
|
-
const isValid = await checkLocalServer(selectedBaseURL);
|
|
435
|
-
validateSpinner.stop(isValid ? 'Local server connection validated!' : 'Server not responding (will save anyway)');
|
|
436
|
-
return {
|
|
437
|
-
selectedProvider: 'glm',
|
|
438
|
-
serverType: 'local',
|
|
439
|
-
apiKey: '',
|
|
440
|
-
baseURL: selectedBaseURL,
|
|
441
|
-
defaultModel: selectedModel,
|
|
442
|
-
currentModel: selectedModel,
|
|
443
|
-
maxTokens: 8192,
|
|
444
|
-
temperature: existingConfig.temperature ?? 0.7,
|
|
445
|
-
models: availableModels.length > 0 ? availableModels.map(m => m.id) : [selectedModel],
|
|
446
|
-
_provider: 'GLM (Local Server)',
|
|
447
|
-
_website: '',
|
|
448
|
-
_isLocalServer: true,
|
|
449
|
-
};
|
|
450
|
-
}
|
|
451
|
-
/**
|
|
452
|
-
* Run Grok-specific setup
|
|
453
|
-
*/
|
|
454
|
-
async function runGrokSetup(existingConfig) {
|
|
455
|
-
const providerInfo = PROVIDERS.grok;
|
|
456
|
-
// Step 1: API Key
|
|
457
|
-
prompts.log.step(chalk.bold('Step 1/5 - xAI API Key'));
|
|
458
|
-
prompts.log.info(`Get your API key from: ${providerInfo.website}`);
|
|
459
|
-
let apiKey = '';
|
|
460
|
-
const envKey = process.env[providerInfo.apiKeyEnvVar] || process.env['GROK_API_KEY'];
|
|
461
|
-
const existingKey = existingConfig.apiKey;
|
|
462
|
-
if (existingKey && existingConfig.selectedProvider === 'grok') {
|
|
463
|
-
const maskedKey = existingKey.length > 12
|
|
464
|
-
? `${existingKey.substring(0, 8)}...${existingKey.substring(existingKey.length - 4)}`
|
|
465
|
-
: `${existingKey.substring(0, 4)}...`;
|
|
466
|
-
prompts.log.info(`Existing API key: ${maskedKey}`);
|
|
467
|
-
const reuseKey = await prompts.confirm({ message: 'Use existing API key?', initialValue: true });
|
|
468
|
-
exitIfCancelled(reuseKey);
|
|
469
|
-
if (reuseKey) {
|
|
470
|
-
apiKey = existingKey;
|
|
471
|
-
prompts.log.success('Using existing API key');
|
|
472
|
-
}
|
|
473
|
-
}
|
|
474
|
-
else if (envKey) {
|
|
475
|
-
prompts.log.info('Found API key in environment');
|
|
476
|
-
const useEnvKey = await prompts.confirm({ message: 'Use API key from environment?', initialValue: true });
|
|
477
|
-
exitIfCancelled(useEnvKey);
|
|
478
|
-
if (useEnvKey) {
|
|
479
|
-
apiKey = envKey;
|
|
480
|
-
prompts.log.success('Using environment API key');
|
|
481
|
-
}
|
|
482
|
-
}
|
|
483
|
-
if (!apiKey) {
|
|
484
|
-
const newKey = await prompts.password({
|
|
485
|
-
message: 'Enter your xAI API key:',
|
|
486
|
-
validate: (value) => {
|
|
487
|
-
if (!value?.trim())
|
|
488
|
-
return 'API key is required';
|
|
489
|
-
if (!value.startsWith('xai-'))
|
|
490
|
-
return 'xAI API keys start with "xai-"';
|
|
491
|
-
return undefined;
|
|
492
|
-
},
|
|
493
|
-
});
|
|
494
|
-
exitIfCancelled(newKey);
|
|
495
|
-
apiKey = newKey.trim();
|
|
496
|
-
}
|
|
497
|
-
// Validate API key
|
|
498
|
-
const validateSpinner = prompts.spinner();
|
|
499
|
-
validateSpinner.start('Validating API key...');
|
|
500
|
-
const isValid = await validateCloudConnection(providerInfo.defaultBaseURL, apiKey);
|
|
501
|
-
validateSpinner.stop(isValid ? 'API key validated!' : 'Could not validate (will save anyway)');
|
|
502
|
-
// Step 2: Model Selection
|
|
503
|
-
prompts.log.step(chalk.bold('Step 2/5 - Choose Model'));
|
|
504
|
-
prompts.log.info('Grok 3 Series - Extended thinking with reasoning_effort');
|
|
505
|
-
prompts.log.info('Grok 2 Series - Fast and capable, with vision option');
|
|
506
|
-
const modelChoices = GROK_MODELS.map((m) => {
|
|
507
|
-
const badges = [];
|
|
508
|
-
if (m.supportsThinking)
|
|
509
|
-
badges.push('Thinking');
|
|
510
|
-
if (m.supportsVision)
|
|
511
|
-
badges.push('Vision');
|
|
512
|
-
if (m.supportsSearch)
|
|
513
|
-
badges.push('Search');
|
|
514
|
-
const badgeStr = badges.length > 0 ? ` [${badges.join(', ')}]` : '';
|
|
515
|
-
return {
|
|
516
|
-
value: m.id,
|
|
517
|
-
label: m.id === providerInfo.defaultModel ? `${m.name} (recommended)` : m.name,
|
|
518
|
-
hint: `${m.description}${badgeStr}`,
|
|
519
|
-
};
|
|
520
|
-
});
|
|
521
|
-
const selectedModel = await prompts.select({
|
|
522
|
-
message: 'Select default model:',
|
|
523
|
-
options: modelChoices,
|
|
524
|
-
initialValue: existingConfig.defaultModel || providerInfo.defaultModel,
|
|
525
|
-
});
|
|
526
|
-
exitIfCancelled(selectedModel);
|
|
527
|
-
const selectedModelInfo = GROK_MODELS.find(m => m.id === selectedModel);
|
|
528
|
-
// Step 3: Thinking Mode (only for Grok 3)
|
|
529
|
-
let thinkingMode = 'off';
|
|
530
|
-
prompts.log.step(chalk.bold('Step 3/5 - Extended Thinking'));
|
|
531
|
-
if (selectedModelInfo?.supportsThinking) {
|
|
532
|
-
prompts.log.info('Grok 3 supports extended thinking via reasoning_effort:');
|
|
533
|
-
prompts.log.info(' off - Standard responses, faster');
|
|
534
|
-
prompts.log.info(' low - Light reasoning, balanced');
|
|
535
|
-
prompts.log.info(' high - Deep reasoning, best for complex tasks');
|
|
536
|
-
const thinkingSelection = await prompts.select({
|
|
537
|
-
message: 'Default thinking mode:',
|
|
538
|
-
options: [
|
|
539
|
-
{ value: 'off', label: 'off - Standard mode (fastest)' },
|
|
540
|
-
{ value: 'low', label: 'low - Light reasoning (balanced)' },
|
|
541
|
-
{ value: 'high', label: 'high - Deep reasoning (recommended for coding)' },
|
|
542
|
-
],
|
|
543
|
-
initialValue: existingConfig.grok?.thinkingMode || 'high',
|
|
544
|
-
});
|
|
545
|
-
exitIfCancelled(thinkingSelection);
|
|
546
|
-
thinkingMode = thinkingSelection;
|
|
547
|
-
if (thinkingMode !== 'off') {
|
|
548
|
-
prompts.log.success(`Extended thinking enabled: ${thinkingMode}`);
|
|
549
|
-
}
|
|
550
|
-
}
|
|
551
|
-
else {
|
|
552
|
-
prompts.log.info(`${selectedModel} doesn't support extended thinking.`);
|
|
553
|
-
prompts.log.info('Choose a Grok 3 model for this feature.');
|
|
554
|
-
}
|
|
555
|
-
// Step 4: Live Search
|
|
556
|
-
prompts.log.step(chalk.bold('Step 4/5 - Live Web Search'));
|
|
557
|
-
prompts.log.info('Grok can search the web in real-time for up-to-date information.');
|
|
558
|
-
const enableLiveSearch = await prompts.confirm({
|
|
559
|
-
message: 'Enable live web search by default?',
|
|
560
|
-
initialValue: existingConfig.grok?.liveSearch ?? true,
|
|
561
|
-
});
|
|
562
|
-
exitIfCancelled(enableLiveSearch);
|
|
563
|
-
if (enableLiveSearch) {
|
|
564
|
-
prompts.log.success('Live search enabled');
|
|
565
|
-
}
|
|
566
|
-
else {
|
|
567
|
-
prompts.log.info('Live search disabled (use --search flag to enable per-request)');
|
|
568
|
-
}
|
|
569
|
-
// Step 5: Review & Save
|
|
570
|
-
prompts.log.step(chalk.bold('Step 5/5 - Review & Save'));
|
|
571
|
-
const summaryLines = [
|
|
572
|
-
`Model: ${selectedModel}`,
|
|
573
|
-
];
|
|
574
|
-
if (selectedModelInfo?.supportsThinking) {
|
|
575
|
-
summaryLines.push(`Thinking Mode: ${thinkingMode === 'off' ? 'disabled' : thinkingMode}`);
|
|
576
|
-
}
|
|
577
|
-
summaryLines.push(`Live Search: ${enableLiveSearch ? 'enabled' : 'disabled'}`);
|
|
578
|
-
prompts.note(summaryLines.join('\n'), 'Configuration Preview');
|
|
579
|
-
const confirmSave = await prompts.confirm({ message: 'Save this configuration?', initialValue: true });
|
|
580
|
-
exitIfCancelled(confirmSave);
|
|
581
|
-
if (!confirmSave) {
|
|
582
|
-
return null;
|
|
583
|
-
}
|
|
584
|
-
return {
|
|
585
|
-
selectedProvider: 'grok',
|
|
586
|
-
serverType: 'cloud',
|
|
587
|
-
apiKey: apiKey,
|
|
588
|
-
baseURL: providerInfo.defaultBaseURL,
|
|
589
|
-
defaultModel: selectedModel,
|
|
590
|
-
currentModel: selectedModel,
|
|
591
|
-
maxTokens: 32768,
|
|
592
|
-
temperature: existingConfig.temperature ?? 0.7,
|
|
593
|
-
models: GROK_MODELS.map(m => m.id),
|
|
594
|
-
_provider: 'Grok (xAI)',
|
|
595
|
-
_website: providerInfo.website,
|
|
596
|
-
_isLocalServer: false,
|
|
597
|
-
grok: {
|
|
598
|
-
thinkingMode: thinkingMode,
|
|
599
|
-
liveSearch: enableLiveSearch,
|
|
600
|
-
},
|
|
601
|
-
};
|
|
602
|
-
}
|
|
603
|
-
/**
|
|
604
|
-
* Setup Z.AI MCP servers
|
|
605
|
-
*/
|
|
606
|
-
async function setupZAIMCPServers(apiKey) {
|
|
607
|
-
prompts.note('Enabling Z.AI MCP servers for enhanced capabilities:\n' +
|
|
608
|
-
'- Web Search - Real-time web search\n' +
|
|
609
|
-
'- Web Reader - Extract content from web pages\n' +
|
|
610
|
-
'- Vision - Image/video analysis', 'Z.AI MCP Integration');
|
|
611
|
-
const mcpSpinner = prompts.spinner();
|
|
612
|
-
mcpSpinner.start('Configuring Z.AI MCP servers...');
|
|
613
|
-
try {
|
|
614
|
-
const status = await detectZAIServices();
|
|
615
|
-
const serversToAdd = getRecommendedServers(status);
|
|
616
|
-
for (const serverName of serversToAdd) {
|
|
617
|
-
try {
|
|
618
|
-
removeMCPServer(serverName);
|
|
619
|
-
}
|
|
620
|
-
catch { /* ignore */ }
|
|
621
|
-
}
|
|
622
|
-
let successCount = 0;
|
|
623
|
-
for (const serverName of serversToAdd) {
|
|
624
|
-
try {
|
|
625
|
-
const config = generateZAIServerConfig(serverName, apiKey);
|
|
626
|
-
addMCPServer(config);
|
|
627
|
-
successCount++;
|
|
628
|
-
}
|
|
629
|
-
catch { /* skip */ }
|
|
630
|
-
}
|
|
631
|
-
mcpSpinner.stop(`${successCount} Z.AI MCP server${successCount !== 1 ? 's' : ''} configured`);
|
|
632
|
-
}
|
|
633
|
-
catch (error) {
|
|
634
|
-
mcpSpinner.stop('Could not set up Z.AI MCP servers');
|
|
635
|
-
prompts.log.warn(extractErrorMessage(error));
|
|
636
|
-
}
|
|
637
|
-
}
|
|
638
|
-
/**
|
|
639
|
-
* Create setup command
|
|
640
|
-
*/
|
|
641
|
-
export function createSetupCommand() {
|
|
642
|
-
const setupCommand = new Command('setup');
|
|
643
|
-
setupCommand
|
|
644
|
-
.description('Configure your LLM provider (GLM or Grok)')
|
|
645
|
-
.option('--force', 'Overwrite existing configuration')
|
|
646
|
-
.action(async () => {
|
|
647
|
-
try {
|
|
648
|
-
prompts.intro(chalk.cyan('AX CLI Setup Wizard'));
|
|
649
|
-
prompts.note('This wizard will configure your AI coding assistant\n' +
|
|
650
|
-
'with your preferred LLM provider.', 'Welcome');
|
|
651
|
-
// Provider Selection
|
|
652
|
-
prompts.log.step(chalk.bold('Choose Provider'));
|
|
653
|
-
const provider = await prompts.select({
|
|
654
|
-
message: 'Which LLM provider do you want to use?',
|
|
655
|
-
options: [
|
|
656
|
-
{
|
|
657
|
-
value: 'glm',
|
|
658
|
-
label: 'GLM (Z.AI)',
|
|
659
|
-
hint: PROVIDERS.glm.description,
|
|
660
|
-
},
|
|
661
|
-
{
|
|
662
|
-
value: 'grok',
|
|
663
|
-
label: 'Grok (xAI)',
|
|
664
|
-
hint: PROVIDERS.grok.description,
|
|
665
|
-
},
|
|
666
|
-
],
|
|
667
|
-
});
|
|
668
|
-
exitIfCancelled(provider);
|
|
669
|
-
// Load existing config for selected provider
|
|
670
|
-
const existingConfig = loadProviderConfig(provider);
|
|
671
|
-
// Run provider-specific setup
|
|
672
|
-
let newConfig = null;
|
|
673
|
-
if (provider === 'glm') {
|
|
674
|
-
newConfig = await runGLMSetup(existingConfig);
|
|
675
|
-
}
|
|
676
|
-
else {
|
|
677
|
-
newConfig = await runGrokSetup(existingConfig);
|
|
678
|
-
}
|
|
679
|
-
if (!newConfig) {
|
|
680
|
-
prompts.cancel('Setup cancelled.');
|
|
681
|
-
process.exit(0);
|
|
682
|
-
}
|
|
683
|
-
// Save configuration to provider-specific directory
|
|
684
|
-
saveProviderConfig(provider, newConfig);
|
|
685
|
-
prompts.log.success('Configuration saved!');
|
|
686
|
-
// Setup Z.AI MCP servers for GLM cloud
|
|
687
|
-
if (provider === 'glm' && newConfig.serverType === 'cloud' && newConfig.apiKey) {
|
|
688
|
-
await setupZAIMCPServers(newConfig.apiKey);
|
|
689
|
-
}
|
|
690
|
-
// Show summary
|
|
691
|
-
const providerInfo = PROVIDERS[provider];
|
|
692
|
-
const configPath = getConfigPath(provider);
|
|
693
|
-
prompts.note(`Provider: ${newConfig._provider}\n` +
|
|
694
|
-
`Server: ${newConfig._isLocalServer ? newConfig.baseURL : 'Cloud API'}\n` +
|
|
695
|
-
`Model: ${newConfig.defaultModel}\n` +
|
|
696
|
-
`Config: ${configPath}`, 'Configuration Summary');
|
|
697
|
-
// Check if provider CLI is installed
|
|
698
|
-
const installed = isProviderInstalled(provider);
|
|
699
|
-
if (!installed) {
|
|
700
|
-
prompts.log.warn(`${providerInfo.cliName} is not installed.`);
|
|
701
|
-
const shouldInstall = await prompts.confirm({
|
|
702
|
-
message: `Install ${providerInfo.cliName}?`,
|
|
703
|
-
initialValue: true,
|
|
704
|
-
});
|
|
705
|
-
if (!prompts.isCancel(shouldInstall) && shouldInstall) {
|
|
706
|
-
await installProvider(provider);
|
|
707
|
-
}
|
|
708
|
-
else {
|
|
709
|
-
prompts.log.info(`Install later: npm install -g ${providerInfo.package}`);
|
|
710
|
-
}
|
|
711
|
-
}
|
|
712
|
-
else {
|
|
713
|
-
prompts.log.success(`${providerInfo.cliName} is installed`);
|
|
714
|
-
}
|
|
715
|
-
// Next steps
|
|
716
|
-
prompts.note(`1. Run "${providerInfo.cliName}" to start\n` +
|
|
717
|
-
`2. Or run "ax-cli" (auto-launches ${providerInfo.cliName})\n` +
|
|
718
|
-
`3. Run "${providerInfo.cliName} --help" for all options`, 'Next Steps');
|
|
719
|
-
prompts.outro(chalk.green('Setup complete! Happy coding!'));
|
|
720
|
-
}
|
|
721
|
-
catch (error) {
|
|
722
|
-
const err = error;
|
|
723
|
-
if (err?.message === 'canceled' || err?.name === 'canceled') {
|
|
724
|
-
prompts.cancel('Setup cancelled by user.');
|
|
725
|
-
process.exit(0);
|
|
726
|
-
}
|
|
727
|
-
prompts.log.error(`Setup failed: ${extractErrorMessage(error)}`);
|
|
728
|
-
process.exit(1);
|
|
729
|
-
}
|
|
730
|
-
});
|
|
731
|
-
return setupCommand;
|
|
732
|
-
}
|
|
733
|
-
//# sourceMappingURL=setup.js.map
|