@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
|
@@ -1,645 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Frontend development workflow commands
|
|
3
|
-
* Specialized commands for design-to-code workflows with Figma integration
|
|
4
|
-
*/
|
|
5
|
-
import { Command } from 'commander';
|
|
6
|
-
import chalk from 'chalk';
|
|
7
|
-
import { getMCPManager } from '../llm/tools.js';
|
|
8
|
-
import { extractErrorMessage } from '../utils/error-handler.js';
|
|
9
|
-
/**
|
|
10
|
-
* Parse Figma URL to extract file ID and node ID
|
|
11
|
-
*/
|
|
12
|
-
function parseFigmaUrl(url) {
|
|
13
|
-
// Examples:
|
|
14
|
-
// https://figma.com/file/abc123xyz/Design-System
|
|
15
|
-
// https://figma.com/file/abc123xyz?node-id=1:234
|
|
16
|
-
// https://www.figma.com/design/abc123xyz/Design-System?node-id=1:234
|
|
17
|
-
const patterns = [
|
|
18
|
-
// New design URLs
|
|
19
|
-
/figma\.com\/design\/([a-zA-Z0-9-_]+)/,
|
|
20
|
-
// Classic file URLs
|
|
21
|
-
/figma\.com\/file\/([a-zA-Z0-9-_]+)/,
|
|
22
|
-
];
|
|
23
|
-
let fileId;
|
|
24
|
-
for (const pattern of patterns) {
|
|
25
|
-
const match = url.match(pattern);
|
|
26
|
-
if (match) {
|
|
27
|
-
fileId = match[1];
|
|
28
|
-
break;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
if (!fileId) {
|
|
32
|
-
throw new Error('Invalid Figma URL. Expected format: https://figma.com/file/[file-id] or https://figma.com/design/[file-id]');
|
|
33
|
-
}
|
|
34
|
-
// Extract node ID if present
|
|
35
|
-
const nodeIdMatch = url.match(/node-id=([^&]+)/);
|
|
36
|
-
const nodeId = nodeIdMatch ? nodeIdMatch[1] : undefined;
|
|
37
|
-
return { fileId, nodeId };
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Validate that Figma MCP server is connected
|
|
41
|
-
*/
|
|
42
|
-
async function ensureFigmaConnected() {
|
|
43
|
-
const manager = getMCPManager();
|
|
44
|
-
const servers = manager.getServers();
|
|
45
|
-
if (!servers.includes('figma')) {
|
|
46
|
-
console.log(chalk.yellow('\nā ļø Figma MCP server is not connected.'));
|
|
47
|
-
console.log();
|
|
48
|
-
console.log(chalk.blue('To use frontend commands, you need to set up Figma integration:'));
|
|
49
|
-
console.log();
|
|
50
|
-
console.log('1. Generate a Figma access token:');
|
|
51
|
-
console.log(chalk.gray(' https://figma.com/settings ā Personal access tokens'));
|
|
52
|
-
console.log();
|
|
53
|
-
console.log('2. Set the environment variable:');
|
|
54
|
-
console.log(chalk.cyan(' export FIGMA_ACCESS_TOKEN="your_token"'));
|
|
55
|
-
console.log();
|
|
56
|
-
console.log('3. Add Figma MCP server:');
|
|
57
|
-
console.log(chalk.cyan(' ax-cli mcp add figma --template'));
|
|
58
|
-
console.log();
|
|
59
|
-
throw new Error('Figma MCP server not connected. Please set up Figma integration first.');
|
|
60
|
-
}
|
|
61
|
-
// Verify Figma tools are available
|
|
62
|
-
const tools = manager.getTools().filter(t => t.serverName === 'figma');
|
|
63
|
-
if (tools.length === 0) {
|
|
64
|
-
throw new Error('Figma MCP server is connected but no tools are available. Try reconnecting: ax-cli mcp remove figma && ax-cli mcp add figma --template');
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Build a specialized prompt for design-to-code workflow
|
|
69
|
-
*/
|
|
70
|
-
function buildDesignToCodePrompt(params) {
|
|
71
|
-
const { fileId, nodeId, framework, typescript, cssType, outputDir, includeTests, includeStorybook } = params;
|
|
72
|
-
const nodeInfo = nodeId ? `node ID ${nodeId}` : 'the entire file';
|
|
73
|
-
return `
|
|
74
|
-
Using the Figma MCP server, retrieve the design for:
|
|
75
|
-
- File ID: ${fileId}
|
|
76
|
-
${nodeId ? `- Node ID: ${nodeId}` : ''}
|
|
77
|
-
|
|
78
|
-
Generate a ${framework}${typescript ? ' TypeScript' : ' JavaScript'} component from ${nodeInfo} with:
|
|
79
|
-
|
|
80
|
-
**Component Requirements:**
|
|
81
|
-
1. Match the exact structure and layout from the Figma design
|
|
82
|
-
2. Use ${cssType} for styling that precisely matches the design specifications
|
|
83
|
-
3. Create a props interface derived from design variants (if any)
|
|
84
|
-
4. Include proper accessibility attributes (ARIA labels, semantic HTML, keyboard navigation)
|
|
85
|
-
5. Implement responsive behavior based on Figma constraints/auto-layout
|
|
86
|
-
${includeTests ? `6. Generate unit tests using ${framework === 'react' || framework === 'solid' ? 'Testing Library' : framework === 'vue' ? 'Vue Test Utils' : framework === 'angular' ? 'Jasmine/Karma' : 'Vitest'}` : ''}
|
|
87
|
-
${includeStorybook ? '7. Create Storybook stories showcasing all variants and states' : ''}
|
|
88
|
-
|
|
89
|
-
**Extract and Apply from Figma:**
|
|
90
|
-
- Layout system (Flexbox, Grid, Auto-layout)
|
|
91
|
-
- Spacing (padding, margin, gap) - use exact pixel values
|
|
92
|
-
- Colors - reference design tokens or use exact hex/rgb values
|
|
93
|
-
- Typography (font family, size, weight, line height, letter spacing)
|
|
94
|
-
- Border radius, shadows, effects
|
|
95
|
-
- Interactive states (hover, active, focus, disabled)
|
|
96
|
-
- Responsive breakpoints (if multiple frames exist)
|
|
97
|
-
|
|
98
|
-
**Component Structure:**
|
|
99
|
-
- Create clean, maintainable component code
|
|
100
|
-
- Use composition for complex components
|
|
101
|
-
- Separate concerns (logic, presentation, styles)
|
|
102
|
-
- Follow ${framework} best practices and conventions
|
|
103
|
-
${framework === 'angular' ? `
|
|
104
|
-
**Angular-Specific:**
|
|
105
|
-
- Use Angular component decorators (@Component)
|
|
106
|
-
- Implement proper change detection strategy
|
|
107
|
-
- Use Angular directives and pipes where appropriate
|
|
108
|
-
- Follow Angular style guide conventions
|
|
109
|
-
` : framework === 'solid' ? `
|
|
110
|
-
**Solid.js-Specific:**
|
|
111
|
-
- Use createSignal for reactive state
|
|
112
|
-
- Leverage fine-grained reactivity
|
|
113
|
-
- Use Show, For, and other Solid control flow components
|
|
114
|
-
- Follow Solid.js reactivity patterns
|
|
115
|
-
` : framework === 'vue' ? `
|
|
116
|
-
**Vue-Specific:**
|
|
117
|
-
- Use Composition API (setup script)
|
|
118
|
-
- Leverage Vue 3 reactivity (ref, reactive, computed)
|
|
119
|
-
- Use template syntax for clean markup
|
|
120
|
-
- Follow Vue 3 best practices
|
|
121
|
-
` : `
|
|
122
|
-
**React-Specific:**
|
|
123
|
-
- Use functional components with hooks
|
|
124
|
-
- Leverage useState, useEffect, useMemo where appropriate
|
|
125
|
-
- Follow React composition patterns
|
|
126
|
-
- Implement proper key props for lists
|
|
127
|
-
`}
|
|
128
|
-
|
|
129
|
-
**Output Location:**
|
|
130
|
-
Save all generated files to: ${outputDir}/
|
|
131
|
-
|
|
132
|
-
**File Structure:**
|
|
133
|
-
${framework === 'angular' ? `
|
|
134
|
-
${typescript ? `
|
|
135
|
-
- component-name.component.ts (component class)
|
|
136
|
-
- component-name.component.html (template)
|
|
137
|
-
- component-name.component.${cssType === 'scss' || cssType === 'tailwind' ? 'scss' : 'css'} (styles)
|
|
138
|
-
${includeTests ? '- component-name.component.spec.ts (unit tests)' : ''}
|
|
139
|
-
- index.ts (barrel export)
|
|
140
|
-
` : `
|
|
141
|
-
- component-name.component.js (component class)
|
|
142
|
-
- component-name.component.html (template)
|
|
143
|
-
- component-name.component.css (styles)
|
|
144
|
-
${includeTests ? '- component-name.component.spec.js (unit tests)' : ''}
|
|
145
|
-
- index.js (barrel export)
|
|
146
|
-
`}
|
|
147
|
-
` : framework === 'vue' ? `
|
|
148
|
-
- Component.vue (single-file component)
|
|
149
|
-
${includeTests ? `- Component.spec.${typescript ? 'ts' : 'js'} (unit tests)` : ''}
|
|
150
|
-
${includeStorybook ? `- Component.stories.${typescript ? 'ts' : 'js'} (Storybook stories)` : ''}
|
|
151
|
-
- index.${typescript ? 'ts' : 'js'} (barrel export)
|
|
152
|
-
` : typescript ? `
|
|
153
|
-
- Component.${framework === 'solid' ? 'tsx' : 'tsx'} (main component)
|
|
154
|
-
- Component.module.${cssType === 'modules' ? 'css' : cssType} (styles)
|
|
155
|
-
${includeTests ? '- Component.test.tsx (unit tests)' : ''}
|
|
156
|
-
${includeStorybook ? '- Component.stories.tsx (Storybook stories)' : ''}
|
|
157
|
-
- index.ts (barrel export)
|
|
158
|
-
` : `
|
|
159
|
-
- Component.${framework === 'solid' ? 'jsx' : 'jsx'} (main component)
|
|
160
|
-
- Component.module.${cssType === 'modules' ? 'css' : cssType} (styles)
|
|
161
|
-
${includeTests ? '- Component.test.jsx (unit tests)' : ''}
|
|
162
|
-
${includeStorybook ? '- Component.stories.jsx (Storybook stories)' : ''}
|
|
163
|
-
- index.js (barrel export)
|
|
164
|
-
`}
|
|
165
|
-
|
|
166
|
-
After generating the component, show me:
|
|
167
|
-
1. A summary of what was created
|
|
168
|
-
2. The component props interface
|
|
169
|
-
3. Any design decisions or assumptions made
|
|
170
|
-
4. Suggestions for improvements or next steps
|
|
171
|
-
`.trim();
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* Build a prompt for token extraction
|
|
175
|
-
*/
|
|
176
|
-
function buildTokenExtractionPrompt(params) {
|
|
177
|
-
const { fileId, format, outputFile, categories } = params;
|
|
178
|
-
const categoryList = categories.includes('all')
|
|
179
|
-
? 'all design tokens (colors, typography, spacing, effects, etc.)'
|
|
180
|
-
: categories.join(', ');
|
|
181
|
-
return `
|
|
182
|
-
Using the Figma MCP server, extract ${categoryList} from file ID: ${fileId}
|
|
183
|
-
|
|
184
|
-
**Requirements:**
|
|
185
|
-
1. Use the Figma MCP tools to retrieve all design variables/styles
|
|
186
|
-
2. Organize tokens by category (colors, typography, spacing, etc.)
|
|
187
|
-
3. Generate a ${format} file with proper formatting
|
|
188
|
-
|
|
189
|
-
**Output Format: ${format}**
|
|
190
|
-
${format === 'css' ? `
|
|
191
|
-
- CSS custom properties (CSS variables)
|
|
192
|
-
- Group by category with comments
|
|
193
|
-
- Use semantic naming (--color-primary-500, --spacing-md)
|
|
194
|
-
- Include fallback values where appropriate
|
|
195
|
-
` : ''}
|
|
196
|
-
${format === 'scss' ? `
|
|
197
|
-
- SCSS variables
|
|
198
|
-
- Group by category with comments
|
|
199
|
-
- Use semantic naming ($color-primary-500, $spacing-md)
|
|
200
|
-
- Include mixins for common patterns
|
|
201
|
-
` : ''}
|
|
202
|
-
${format === 'json' ? `
|
|
203
|
-
- Structured JSON object
|
|
204
|
-
- Nested by category
|
|
205
|
-
- Include metadata (name, value, description)
|
|
206
|
-
- Use camelCase for keys
|
|
207
|
-
` : ''}
|
|
208
|
-
${format === 'js' || format === 'ts' ? `
|
|
209
|
-
- ES module exports
|
|
210
|
-
- Typed objects (if TypeScript)
|
|
211
|
-
- Group by category
|
|
212
|
-
- Include JSDoc comments
|
|
213
|
-
` : ''}
|
|
214
|
-
|
|
215
|
-
**Token Categories:**
|
|
216
|
-
${categories.includes('all') || categories.includes('colors') ? `
|
|
217
|
-
**Colors:**
|
|
218
|
-
- Palette colors (primary, secondary, neutral, etc.)
|
|
219
|
-
- Semantic colors (success, warning, error, info)
|
|
220
|
-
- Text colors
|
|
221
|
-
- Background colors
|
|
222
|
-
- Border colors
|
|
223
|
-
` : ''}
|
|
224
|
-
${categories.includes('all') || categories.includes('typography') ? `
|
|
225
|
-
**Typography:**
|
|
226
|
-
- Font families
|
|
227
|
-
- Font sizes
|
|
228
|
-
- Font weights
|
|
229
|
-
- Line heights
|
|
230
|
-
- Letter spacing
|
|
231
|
-
` : ''}
|
|
232
|
-
${categories.includes('all') || categories.includes('spacing') ? `
|
|
233
|
-
**Spacing:**
|
|
234
|
-
- Padding values
|
|
235
|
-
- Margin values
|
|
236
|
-
- Gap values
|
|
237
|
-
- Use consistent scale (e.g., 4px, 8px, 16px, 24px...)
|
|
238
|
-
` : ''}
|
|
239
|
-
${categories.includes('all') || categories.includes('effects') ? `
|
|
240
|
-
**Effects:**
|
|
241
|
-
- Box shadows
|
|
242
|
-
- Text shadows
|
|
243
|
-
- Border radius values
|
|
244
|
-
- Opacity values
|
|
245
|
-
` : ''}
|
|
246
|
-
|
|
247
|
-
**Output:**
|
|
248
|
-
Save the generated tokens to: ${outputFile}
|
|
249
|
-
|
|
250
|
-
After extraction, show me:
|
|
251
|
-
1. Summary of extracted tokens (how many of each category)
|
|
252
|
-
2. Any naming conventions applied
|
|
253
|
-
3. Suggestions for usage in the codebase
|
|
254
|
-
`.trim();
|
|
255
|
-
}
|
|
256
|
-
/**
|
|
257
|
-
* Build a prompt for component generation
|
|
258
|
-
*/
|
|
259
|
-
function buildComponentGenerationPrompt(params) {
|
|
260
|
-
const { componentName, source, fileId, nodeId, framework, typescript, cssType, outputDir } = params;
|
|
261
|
-
if (source === 'figma') {
|
|
262
|
-
if (!fileId) {
|
|
263
|
-
throw new Error('Figma file ID is required when source is "figma"');
|
|
264
|
-
}
|
|
265
|
-
return `
|
|
266
|
-
Using the Figma MCP server, find and generate a component named "${componentName}":
|
|
267
|
-
|
|
268
|
-
**Search Process:**
|
|
269
|
-
1. Search for components in Figma file ${fileId} that match the name "${componentName}"
|
|
270
|
-
${nodeId ? `2. Use node ID ${nodeId} if searching by name fails` : '2. If multiple matches, show options and ask which one to use'}
|
|
271
|
-
|
|
272
|
-
**Generation:**
|
|
273
|
-
Generate a ${framework}${typescript ? ' TypeScript' : ''} component using ${cssType} for styling.
|
|
274
|
-
|
|
275
|
-
Follow the same requirements as design-to-code:
|
|
276
|
-
- Match exact Figma design
|
|
277
|
-
- Include all variants and states
|
|
278
|
-
- Proper accessibility
|
|
279
|
-
- Responsive behavior
|
|
280
|
-
- Clean, maintainable code
|
|
281
|
-
|
|
282
|
-
Save to: ${outputDir}/${componentName}/
|
|
283
|
-
`.trim();
|
|
284
|
-
}
|
|
285
|
-
// For other sources (template, scratch)
|
|
286
|
-
return `
|
|
287
|
-
Generate a ${framework}${typescript ? ' TypeScript' : ''} component named "${componentName}":
|
|
288
|
-
|
|
289
|
-
**Component Type:** ${source === 'template' ? 'Based on common component patterns' : 'From scratch'}
|
|
290
|
-
|
|
291
|
-
**Requirements:**
|
|
292
|
-
1. Create a well-structured, production-ready component
|
|
293
|
-
2. Use ${cssType} for styling
|
|
294
|
-
3. Include proper TypeScript types (if applicable)
|
|
295
|
-
4. Add accessibility attributes
|
|
296
|
-
5. Follow ${framework} best practices
|
|
297
|
-
|
|
298
|
-
**Variants to include:**
|
|
299
|
-
- Default state
|
|
300
|
-
- Hover state
|
|
301
|
-
- Active state
|
|
302
|
-
- Disabled state
|
|
303
|
-
- Loading state (if applicable)
|
|
304
|
-
|
|
305
|
-
Save to: ${outputDir}/${componentName}/
|
|
306
|
-
`.trim();
|
|
307
|
-
}
|
|
308
|
-
/**
|
|
309
|
-
* Build a prompt for visual design comparison
|
|
310
|
-
*/
|
|
311
|
-
function buildVisualComparisonPrompt(params) {
|
|
312
|
-
const { fileId, nodeId, filePaths, model, exportScreenshot, outputFormat } = params;
|
|
313
|
-
const nodeInfo = nodeId ? ` (node ID: ${nodeId})` : '';
|
|
314
|
-
return `
|
|
315
|
-
**Visual Design Comparison Task**
|
|
316
|
-
|
|
317
|
-
Using the Figma MCP server and ${model} vision capabilities, perform a comprehensive visual comparison between the Figma design and the current implementation.
|
|
318
|
-
|
|
319
|
-
**Step 1: Export Design from Figma**
|
|
320
|
-
${exportScreenshot ? `
|
|
321
|
-
- Use Figma MCP to export a screenshot of the design from file ${fileId}${nodeInfo}
|
|
322
|
-
- Export at 2x resolution for detailed comparison
|
|
323
|
-
- Save temporarily for vision analysis
|
|
324
|
-
` : `
|
|
325
|
-
- I will provide the Figma design screenshot separately
|
|
326
|
-
- File ID: ${fileId}${nodeInfo}
|
|
327
|
-
`}
|
|
328
|
-
|
|
329
|
-
**Step 2: Read Implementation Files**
|
|
330
|
-
Read and analyze the following implementation files:
|
|
331
|
-
${filePaths.map(path => `- ${path}`).join('\n')}
|
|
332
|
-
|
|
333
|
-
**Step 3: Visual Comparison Analysis**
|
|
334
|
-
Using ${model} vision model, compare the Figma design screenshot with the implementation and analyze:
|
|
335
|
-
|
|
336
|
-
**Layout & Structure:**
|
|
337
|
-
- Component positioning and alignment
|
|
338
|
-
- Grid/flexbox layout accuracy
|
|
339
|
-
- Spacing between elements (padding, margins)
|
|
340
|
-
- Element dimensions and aspect ratios
|
|
341
|
-
- Responsive behavior considerations
|
|
342
|
-
|
|
343
|
-
**Visual Styling:**
|
|
344
|
-
- Color accuracy (backgrounds, borders, text, shadows)
|
|
345
|
-
- Typography (font family, size, weight, line-height)
|
|
346
|
-
- Border radius and shape consistency
|
|
347
|
-
- Box shadows and elevation
|
|
348
|
-
- Image and icon rendering
|
|
349
|
-
|
|
350
|
-
**Component States:**
|
|
351
|
-
- Default state matching
|
|
352
|
-
- Hover state implementation
|
|
353
|
-
- Active state styling
|
|
354
|
-
- Disabled state (if applicable)
|
|
355
|
-
- Focus states and accessibility
|
|
356
|
-
|
|
357
|
-
**Accessibility:**
|
|
358
|
-
- Color contrast ratios
|
|
359
|
-
- ARIA attributes presence
|
|
360
|
-
- Semantic HTML usage
|
|
361
|
-
- Keyboard navigation support
|
|
362
|
-
|
|
363
|
-
**Step 4: Generate Diff Report**
|
|
364
|
-
Create a detailed comparison report in ${outputFormat} format with:
|
|
365
|
-
|
|
366
|
-
1. **Overall Similarity Score**: 0-100% match
|
|
367
|
-
2. **Critical Differences**: Issues that significantly affect visual appearance
|
|
368
|
-
3. **Minor Differences**: Small discrepancies that could be improved
|
|
369
|
-
4. **Recommendations**: Specific code changes to match design exactly
|
|
370
|
-
5. **Accessibility Gaps**: Missing or incorrect accessibility features
|
|
371
|
-
|
|
372
|
-
**Output Format: ${outputFormat}**
|
|
373
|
-
${outputFormat === 'markdown' ? `
|
|
374
|
-
Use clear markdown formatting with:
|
|
375
|
-
- Headings for sections
|
|
376
|
-
- Code blocks for suggested changes
|
|
377
|
-
- Screenshots or visual descriptions where helpful
|
|
378
|
-
- Bullet points for lists
|
|
379
|
-
` : outputFormat === 'html' ? `
|
|
380
|
-
Generate HTML with:
|
|
381
|
-
- Styled sections with headings
|
|
382
|
-
- Code blocks with syntax highlighting
|
|
383
|
-
- Side-by-side comparison tables
|
|
384
|
-
- Color swatches for color differences
|
|
385
|
-
` : `
|
|
386
|
-
Generate JSON with structure:
|
|
387
|
-
{
|
|
388
|
-
"similarityScore": 0-100,
|
|
389
|
-
"criticalDifferences": [...],
|
|
390
|
-
"minorDifferences": [...],
|
|
391
|
-
"recommendations": [...],
|
|
392
|
-
"accessibilityGaps": [...]
|
|
393
|
-
}
|
|
394
|
-
`}
|
|
395
|
-
|
|
396
|
-
**Important Notes:**
|
|
397
|
-
- Be specific with measurements (e.g., "8px too much padding" not "padding is off")
|
|
398
|
-
- Reference exact color codes (#hex or rgb values)
|
|
399
|
-
- Suggest exact CSS changes to fix discrepancies
|
|
400
|
-
- Prioritize user-visible differences over minor implementation details
|
|
401
|
-
`.trim();
|
|
402
|
-
}
|
|
403
|
-
/**
|
|
404
|
-
* Create the frontend command group
|
|
405
|
-
*/
|
|
406
|
-
export function createFrontendCommand() {
|
|
407
|
-
const frontendCmd = new Command('frontend');
|
|
408
|
-
frontendCmd.description('Front-end development workflows with MCP integration');
|
|
409
|
-
// Design to code command
|
|
410
|
-
frontendCmd
|
|
411
|
-
.command('design-to-code <figma-url>')
|
|
412
|
-
.description('Convert Figma designs to code')
|
|
413
|
-
.option('--framework <name>', 'Target framework (react, vue, svelte, angular, solid)', 'react')
|
|
414
|
-
.option('--typescript', 'Generate TypeScript', true)
|
|
415
|
-
.option('--no-typescript', 'Generate JavaScript')
|
|
416
|
-
.option('--css <type>', 'CSS solution (modules, styled, tailwind, emotion, scss)', 'modules')
|
|
417
|
-
.option('--output <dir>', 'Output directory', 'src/components')
|
|
418
|
-
.option('--test', 'Generate test files', false)
|
|
419
|
-
.option('--storybook', 'Generate Storybook stories', false)
|
|
420
|
-
.action(async (figmaUrl, options) => {
|
|
421
|
-
try {
|
|
422
|
-
console.log(chalk.blue.bold('\nšØ Design-to-Code Workflow\n'));
|
|
423
|
-
// Ensure Figma is connected
|
|
424
|
-
await ensureFigmaConnected();
|
|
425
|
-
// Parse Figma URL
|
|
426
|
-
console.log(chalk.gray('Parsing Figma URL...'));
|
|
427
|
-
const { fileId, nodeId } = parseFigmaUrl(figmaUrl);
|
|
428
|
-
console.log(chalk.green(`ā File ID: ${fileId}`));
|
|
429
|
-
if (nodeId) {
|
|
430
|
-
console.log(chalk.green(`ā Node ID: ${nodeId}`));
|
|
431
|
-
}
|
|
432
|
-
console.log();
|
|
433
|
-
// Build the prompt
|
|
434
|
-
const prompt = buildDesignToCodePrompt({
|
|
435
|
-
fileId,
|
|
436
|
-
nodeId,
|
|
437
|
-
framework: options.framework,
|
|
438
|
-
typescript: options.typescript,
|
|
439
|
-
cssType: options.css,
|
|
440
|
-
outputDir: options.output,
|
|
441
|
-
includeTests: options.test,
|
|
442
|
-
includeStorybook: options.storybook
|
|
443
|
-
});
|
|
444
|
-
// Display configuration
|
|
445
|
-
console.log(chalk.blue('Configuration:'));
|
|
446
|
-
console.log(chalk.gray(` Framework: ${options.framework}`));
|
|
447
|
-
console.log(chalk.gray(` Language: ${options.typescript ? 'TypeScript' : 'JavaScript'}`));
|
|
448
|
-
console.log(chalk.gray(` Styling: ${options.css}`));
|
|
449
|
-
console.log(chalk.gray(` Output: ${options.output}/`));
|
|
450
|
-
console.log(chalk.gray(` Tests: ${options.test ? 'Yes' : 'No'}`));
|
|
451
|
-
console.log(chalk.gray(` Storybook: ${options.storybook ? 'Yes' : 'No'}`));
|
|
452
|
-
console.log();
|
|
453
|
-
// Show the prompt that will be sent to the AI
|
|
454
|
-
console.log(chalk.blue('š¤ Sending request to AI agent...\n'));
|
|
455
|
-
// In a real implementation, this would call the LLMAgent
|
|
456
|
-
// For now, show the prompt
|
|
457
|
-
console.log(chalk.yellow('Prompt to be executed:'));
|
|
458
|
-
console.log(chalk.gray('ā'.repeat(80)));
|
|
459
|
-
console.log(prompt);
|
|
460
|
-
console.log(chalk.gray('ā'.repeat(80)));
|
|
461
|
-
console.log();
|
|
462
|
-
console.log(chalk.green('ā
To execute this workflow, run:'));
|
|
463
|
-
console.log(chalk.cyan(` ax-cli -p "${prompt.substring(0, 100)}..."`));
|
|
464
|
-
console.log();
|
|
465
|
-
}
|
|
466
|
-
catch (error) {
|
|
467
|
-
console.error(chalk.red(`\nā Error: ${extractErrorMessage(error)}\n`));
|
|
468
|
-
process.exit(1);
|
|
469
|
-
}
|
|
470
|
-
});
|
|
471
|
-
// Extract tokens command
|
|
472
|
-
frontendCmd
|
|
473
|
-
.command('extract-tokens <file-id>')
|
|
474
|
-
.description('Extract design tokens from Figma')
|
|
475
|
-
.option('--format <type>', 'Output format (css, scss, json, js, ts)', 'css')
|
|
476
|
-
.option('--output <file>', 'Output file path', 'src/styles/design-tokens.css')
|
|
477
|
-
.option('--categories <list>', 'Token categories (colors, typography, spacing, effects, all)', 'all')
|
|
478
|
-
.action(async (fileId, options) => {
|
|
479
|
-
try {
|
|
480
|
-
console.log(chalk.blue.bold('\nšØ Design Token Extraction\n'));
|
|
481
|
-
// Ensure Figma is connected
|
|
482
|
-
await ensureFigmaConnected();
|
|
483
|
-
// Parse categories
|
|
484
|
-
const categories = options.categories.split(',').map((c) => c.trim());
|
|
485
|
-
// Build the prompt
|
|
486
|
-
const prompt = buildTokenExtractionPrompt({
|
|
487
|
-
fileId,
|
|
488
|
-
format: options.format,
|
|
489
|
-
outputFile: options.output,
|
|
490
|
-
categories
|
|
491
|
-
});
|
|
492
|
-
// Display configuration
|
|
493
|
-
console.log(chalk.blue('Configuration:'));
|
|
494
|
-
console.log(chalk.gray(` File ID: ${fileId}`));
|
|
495
|
-
console.log(chalk.gray(` Format: ${options.format}`));
|
|
496
|
-
console.log(chalk.gray(` Output: ${options.output}`));
|
|
497
|
-
console.log(chalk.gray(` Categories: ${categories.join(', ')}`));
|
|
498
|
-
console.log();
|
|
499
|
-
console.log(chalk.blue('š¤ Sending request to AI agent...\n'));
|
|
500
|
-
// Show the prompt
|
|
501
|
-
console.log(chalk.yellow('Prompt to be executed:'));
|
|
502
|
-
console.log(chalk.gray('ā'.repeat(80)));
|
|
503
|
-
console.log(prompt);
|
|
504
|
-
console.log(chalk.gray('ā'.repeat(80)));
|
|
505
|
-
console.log();
|
|
506
|
-
console.log(chalk.green('ā
To execute this workflow, run:'));
|
|
507
|
-
console.log(chalk.cyan(` ax-cli -p "${prompt.substring(0, 100)}..."`));
|
|
508
|
-
console.log();
|
|
509
|
-
}
|
|
510
|
-
catch (error) {
|
|
511
|
-
console.error(chalk.red(`\nā Error: ${extractErrorMessage(error)}\n`));
|
|
512
|
-
process.exit(1);
|
|
513
|
-
}
|
|
514
|
-
});
|
|
515
|
-
// Generate component command
|
|
516
|
-
frontendCmd
|
|
517
|
-
.command('gen-component <name>')
|
|
518
|
-
.description('Generate a component from Figma or template')
|
|
519
|
-
.option('--source <type>', 'Component source (figma, template, scratch)', 'figma')
|
|
520
|
-
.option('--file-id <id>', 'Figma file ID (required if source is figma)')
|
|
521
|
-
.option('--node-id <id>', 'Figma node ID (optional)')
|
|
522
|
-
.option('--framework <name>', 'Target framework (react, vue, svelte, angular, solid)', 'react')
|
|
523
|
-
.option('--typescript', 'Generate TypeScript', true)
|
|
524
|
-
.option('--no-typescript', 'Generate JavaScript')
|
|
525
|
-
.option('--css <type>', 'CSS solution (modules, styled, tailwind, emotion)', 'modules')
|
|
526
|
-
.option('--output <dir>', 'Output directory', 'src/components')
|
|
527
|
-
.action(async (name, options) => {
|
|
528
|
-
try {
|
|
529
|
-
console.log(chalk.blue.bold(`\nš§ Component Generation: ${name}\n`));
|
|
530
|
-
// If source is figma, ensure it's connected
|
|
531
|
-
if (options.source === 'figma') {
|
|
532
|
-
await ensureFigmaConnected();
|
|
533
|
-
if (!options.fileId) {
|
|
534
|
-
console.error(chalk.red('ā --file-id is required when source is "figma"'));
|
|
535
|
-
console.log();
|
|
536
|
-
console.log(chalk.blue('Usage:'));
|
|
537
|
-
console.log(chalk.cyan(` ax-cli frontend gen-component ${name} --source figma --file-id abc123xyz`));
|
|
538
|
-
console.log();
|
|
539
|
-
process.exit(1);
|
|
540
|
-
}
|
|
541
|
-
}
|
|
542
|
-
// Build the prompt
|
|
543
|
-
const prompt = buildComponentGenerationPrompt({
|
|
544
|
-
componentName: name,
|
|
545
|
-
source: options.source,
|
|
546
|
-
fileId: options.fileId,
|
|
547
|
-
nodeId: options.nodeId,
|
|
548
|
-
framework: options.framework,
|
|
549
|
-
typescript: options.typescript,
|
|
550
|
-
cssType: options.css,
|
|
551
|
-
outputDir: options.output
|
|
552
|
-
});
|
|
553
|
-
// Display configuration
|
|
554
|
-
console.log(chalk.blue('Configuration:'));
|
|
555
|
-
console.log(chalk.gray(` Component: ${name}`));
|
|
556
|
-
console.log(chalk.gray(` Source: ${options.source}`));
|
|
557
|
-
if (options.fileId) {
|
|
558
|
-
console.log(chalk.gray(` Figma File: ${options.fileId}`));
|
|
559
|
-
}
|
|
560
|
-
if (options.nodeId) {
|
|
561
|
-
console.log(chalk.gray(` Figma Node: ${options.nodeId}`));
|
|
562
|
-
}
|
|
563
|
-
console.log(chalk.gray(` Framework: ${options.framework}`));
|
|
564
|
-
console.log(chalk.gray(` Language: ${options.typescript ? 'TypeScript' : 'JavaScript'}`));
|
|
565
|
-
console.log(chalk.gray(` Styling: ${options.css}`));
|
|
566
|
-
console.log(chalk.gray(` Output: ${options.output}/${name}/`));
|
|
567
|
-
console.log();
|
|
568
|
-
console.log(chalk.blue('š¤ Sending request to AI agent...\n'));
|
|
569
|
-
// Show the prompt
|
|
570
|
-
console.log(chalk.yellow('Prompt to be executed:'));
|
|
571
|
-
console.log(chalk.gray('ā'.repeat(80)));
|
|
572
|
-
console.log(prompt);
|
|
573
|
-
console.log(chalk.gray('ā'.repeat(80)));
|
|
574
|
-
console.log();
|
|
575
|
-
console.log(chalk.green('ā
To execute this workflow, run:'));
|
|
576
|
-
console.log(chalk.cyan(` ax-cli -p "${prompt.substring(0, 100)}..."`));
|
|
577
|
-
console.log();
|
|
578
|
-
}
|
|
579
|
-
catch (error) {
|
|
580
|
-
console.error(chalk.red(`\nā Error: ${extractErrorMessage(error)}\n`));
|
|
581
|
-
process.exit(1);
|
|
582
|
-
}
|
|
583
|
-
});
|
|
584
|
-
// Compare design command with visual comparison
|
|
585
|
-
frontendCmd
|
|
586
|
-
.command('compare-design <figma-url>')
|
|
587
|
-
.description('Compare implementation with Figma design using visual AI')
|
|
588
|
-
.option('--file <path>', 'Implementation file(s) to compare (comma-separated)', 'src/components')
|
|
589
|
-
.option('--model <name>', 'Vision model to use', 'glm-4.6v')
|
|
590
|
-
.option('--export-screenshot', 'Export screenshot from Figma', true)
|
|
591
|
-
.option('--format <type>', 'Output format (markdown, html, json)', 'markdown')
|
|
592
|
-
.action(async (figmaUrl, options) => {
|
|
593
|
-
try {
|
|
594
|
-
console.log(chalk.blue.bold('\nš Visual Design Comparison\n'));
|
|
595
|
-
// Validate Figma connection
|
|
596
|
-
await ensureFigmaConnected();
|
|
597
|
-
// Parse Figma URL
|
|
598
|
-
const { fileId, nodeId } = parseFigmaUrl(figmaUrl);
|
|
599
|
-
// Split file paths if multiple
|
|
600
|
-
const filePaths = options.file.split(',').map((f) => f.trim());
|
|
601
|
-
// Build the visual comparison prompt
|
|
602
|
-
const prompt = buildVisualComparisonPrompt({
|
|
603
|
-
fileId,
|
|
604
|
-
nodeId,
|
|
605
|
-
filePaths,
|
|
606
|
-
model: options.model,
|
|
607
|
-
exportScreenshot: options.exportScreenshot,
|
|
608
|
-
outputFormat: options.format
|
|
609
|
-
});
|
|
610
|
-
// Display configuration
|
|
611
|
-
console.log(chalk.blue('Configuration:'));
|
|
612
|
-
console.log(chalk.gray(` Figma File ID: ${fileId}`));
|
|
613
|
-
if (nodeId) {
|
|
614
|
-
console.log(chalk.gray(` Figma Node ID: ${nodeId}`));
|
|
615
|
-
}
|
|
616
|
-
console.log(chalk.gray(` Implementation Files: ${filePaths.join(', ')}`));
|
|
617
|
-
console.log(chalk.gray(` Vision Model: ${options.model}`));
|
|
618
|
-
console.log(chalk.gray(` Export Screenshot: ${options.exportScreenshot ? 'Yes' : 'No'}`));
|
|
619
|
-
console.log(chalk.gray(` Output Format: ${options.format}`));
|
|
620
|
-
console.log();
|
|
621
|
-
console.log(chalk.blue('š¤ Sending request to AI agent with vision capabilities...\n'));
|
|
622
|
-
// Show the prompt
|
|
623
|
-
console.log(chalk.yellow('Visual Comparison Prompt:'));
|
|
624
|
-
console.log(chalk.gray('ā'.repeat(80)));
|
|
625
|
-
console.log(prompt);
|
|
626
|
-
console.log(chalk.gray('ā'.repeat(80)));
|
|
627
|
-
console.log();
|
|
628
|
-
console.log(chalk.green('ā
To execute this visual comparison, run:'));
|
|
629
|
-
console.log(chalk.cyan(` ax-cli -p "${prompt.substring(0, 100)}..." --model ${options.model}`));
|
|
630
|
-
console.log();
|
|
631
|
-
console.log(chalk.blue('š What this will do:'));
|
|
632
|
-
console.log(chalk.gray(' 1. Export screenshot from Figma design'));
|
|
633
|
-
console.log(chalk.gray(' 2. Read your implementation files'));
|
|
634
|
-
console.log(chalk.gray(' 3. Use GLM-4.6V vision model to compare visual appearance'));
|
|
635
|
-
console.log(chalk.gray(' 4. Generate detailed difference report'));
|
|
636
|
-
console.log();
|
|
637
|
-
}
|
|
638
|
-
catch (error) {
|
|
639
|
-
console.error(chalk.red(`\nā Error: ${extractErrorMessage(error)}\n`));
|
|
640
|
-
process.exit(1);
|
|
641
|
-
}
|
|
642
|
-
});
|
|
643
|
-
return frontendCmd;
|
|
644
|
-
}
|
|
645
|
-
//# sourceMappingURL=frontend.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"frontend.js","sourceRoot":"","sources":["../../src/commands/frontend.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;GAEG;AACH,SAAS,aAAa,CAAC,GAAW;IAChC,YAAY;IACZ,iDAAiD;IACjD,iDAAiD;IACjD,qEAAqE;IAErE,MAAM,QAAQ,GAAG;QACf,kBAAkB;QAClB,sCAAsC;QACtC,oBAAoB;QACpB,oCAAoC;KACrC,CAAC;IAEF,IAAI,MAA0B,CAAC;IAE/B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAClB,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,4GAA4G,CAAC,CAAC;IAChI,CAAC;IAED,6BAA6B;IAC7B,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAExD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,oBAAoB;IACjC,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAErC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC,CAAC;QAC3F,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC,CAAC;QAClF,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC5F,CAAC;IAED,mCAAmC;IACnC,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC;IACvE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,wIAAwI,CAAC,CAAC;IAC5J,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAAC,MAShC;IACC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;IAE7G,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAElE,OAAO;;aAEI,MAAM;EACjB,MAAM,CAAC,CAAC,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;;aAEzB,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,mBAAmB,QAAQ;;;;SAIrF,OAAO;;;;EAId,YAAY,CAAC,CAAC,CAAC,gCAAgC,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;EACxN,gBAAgB,CAAC,CAAC,CAAC,gEAAgE,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;WAe/E,SAAS;EAClB,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC;;;;;;CAM3B,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC;;;;;;CAM3B,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC;;;;;;CAMzB,CAAC,CAAC,CAAC;;;;;;CAMH;;;+BAG8B,SAAS;;;EAGtC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC;EAC1B,UAAU,CAAC,CAAC,CAAC;;;6BAGc,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;EACxF,YAAY,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC,CAAC,EAAE;;CAEtE,CAAC,CAAC,CAAC;;;;EAIF,YAAY,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC,CAAC,EAAE;;CAEtE;CACA,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC;;EAExB,YAAY,CAAC,CAAC,CAAC,oBAAoB,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE;EAC/E,gBAAgB,CAAC,CAAC,CAAC,uBAAuB,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,sBAAsB,CAAC,CAAC,CAAC,EAAE;UACrF,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;CACjC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;cACH,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;qBAC9B,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;EAC1D,YAAY,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,EAAE;EACvD,gBAAgB,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,EAAE;;CAEtE,CAAC,CAAC,CAAC;cACU,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;qBAC9B,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;EAC1D,YAAY,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,EAAE;EACvD,gBAAgB,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,EAAE;;CAEtE;;;;;;;GAOE,CAAC,IAAI,EAAE,CAAC;AACX,CAAC;AAED;;GAEG;AACH,SAAS,0BAA0B,CAAC,MAKnC;IACC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAE1D,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC7C,CAAC,CAAC,gEAAgE;QAClE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE1B,OAAO;sCAC6B,YAAY,kBAAkB,MAAM;;;;;gBAK1D,MAAM;;mBAEH,MAAM;EACvB,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC;;;;;CAKpB,CAAC,CAAC,CAAC,EAAE;EACJ,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC;;;;;CAKrB,CAAC,CAAC,CAAC,EAAE;EACJ,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC;;;;;CAKrB,CAAC,CAAC,CAAC,EAAE;EACJ,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC;;;;;CAKtC,CAAC,CAAC,CAAC,EAAE;;;EAGJ,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;;;;;;;CAO/D,CAAC,CAAC,CAAC,EAAE;EACJ,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;;;;;;;CAOnE,CAAC,CAAC,CAAC,EAAE;EACJ,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;;;;;;CAMhE,CAAC,CAAC,CAAC,EAAE;EACJ,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;;;;;;CAMhE,CAAC,CAAC,CAAC,EAAE;;;gCAG0B,UAAU;;;;;;GAMvC,CAAC,IAAI,EAAE,CAAC;AACX,CAAC;AAED;;GAEG;AACH,SAAS,8BAA8B,CAAC,MASvC;IACC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IAEpG,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QAED,OAAO;mEACwD,aAAa;;;yCAGvC,MAAM,yBAAyB,aAAa;EACnF,MAAM,CAAC,CAAC,CAAC,kBAAkB,MAAM,6BAA6B,CAAC,CAAC,CAAC,+DAA+D;;;aAGrH,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,oBAAoB,OAAO;;;;;;;;;WASxE,SAAS,IAAI,aAAa;KAChC,CAAC,IAAI,EAAE,CAAC;IACX,CAAC;IAED,wCAAwC;IACxC,OAAO;aACI,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,qBAAqB,aAAa;;sBAEpE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,cAAc;;;;SAI1F,OAAO;;;YAGJ,SAAS;;;;;;;;;WASV,SAAS,IAAI,aAAa;GAClC,CAAC,IAAI,EAAE,CAAC;AACX,CAAC;AAED;;GAEG;AACH,SAAS,2BAA2B,CAAC,MAOpC;IACC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IAEpF,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,cAAc,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAEvD,OAAO;;;iCAGwB,KAAK;;;EAGpC,gBAAgB,CAAC,CAAC,CAAC;iEAC4C,MAAM,GAAG,QAAQ;;;CAGjF,CAAC,CAAC,CAAC;;aAES,MAAM,GAAG,QAAQ;CAC7B;;;;EAIC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;QAGvC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yCA8B4B,YAAY;;;;;;;;mBAQlC,YAAY;EAC7B,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC;;;;;;CAM/B,CAAC,CAAC,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC;;;;;;CAM7B,CAAC,CAAC,CAAC;;;;;;;;;CASH;;;;;;;GAOE,CAAC,IAAI,EAAE,CAAC;AACX,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5C,WAAW,CAAC,WAAW,CAAC,sDAAsD,CAAC,CAAC;IAEhF,yBAAyB;IACzB,WAAW;SACR,OAAO,CAAC,4BAA4B,CAAC;SACrC,WAAW,CAAC,+BAA+B,CAAC;SAC5C,MAAM,CAAC,oBAAoB,EAAE,uDAAuD,EAAE,OAAO,CAAC;SAC9F,MAAM,CAAC,cAAc,EAAE,qBAAqB,EAAE,IAAI,CAAC;SACnD,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;SAChD,MAAM,CAAC,cAAc,EAAE,yDAAyD,EAAE,SAAS,CAAC;SAC5F,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,CAAC;SAC9D,MAAM,CAAC,QAAQ,EAAE,qBAAqB,EAAE,KAAK,CAAC;SAC9C,MAAM,CAAC,aAAa,EAAE,4BAA4B,EAAE,KAAK,CAAC;SAC1D,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,OAAO,EAAE,EAAE;QAC1C,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;YAE/D,4BAA4B;YAC5B,MAAM,oBAAoB,EAAE,CAAC;YAE7B,kBAAkB;YAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAChD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;YAEnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC,CAAC;YACjD,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC,CAAC;YACnD,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,mBAAmB;YACnB,MAAM,MAAM,GAAG,uBAAuB,CAAC;gBACrC,MAAM;gBACN,MAAM;gBACN,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,OAAO,EAAE,OAAO,CAAC,GAAG;gBACpB,SAAS,EAAE,OAAO,CAAC,MAAM;gBACzB,YAAY,EAAE,OAAO,CAAC,IAAI;gBAC1B,gBAAgB,EAAE,OAAO,CAAC,SAAS;aACpC,CAAC,CAAC;YAEH,wBAAwB;YACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YAC3F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5E,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,8CAA8C;YAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;YAE/D,yDAAyD;YACzD,2BAA2B;YAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YACzE,OAAO,CAAC,GAAG,EAAE,CAAC;QAEhB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,yBAAyB;IACzB,WAAW;SACR,OAAO,CAAC,0BAA0B,CAAC;SACnC,WAAW,CAAC,kCAAkC,CAAC;SAC/C,MAAM,CAAC,iBAAiB,EAAE,yCAAyC,EAAE,KAAK,CAAC;SAC3E,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,8BAA8B,CAAC;SAC7E,MAAM,CAAC,qBAAqB,EAAE,8DAA8D,EAAE,KAAK,CAAC;SACpG,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAAO,EAAE,EAAE;QACxC,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;YAE/D,4BAA4B;YAC5B,MAAM,oBAAoB,EAAE,CAAC;YAE7B,mBAAmB;YACnB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAE9E,mBAAmB;YACnB,MAAM,MAAM,GAAG,0BAA0B,CAAC;gBACxC,MAAM;gBACN,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,UAAU,EAAE,OAAO,CAAC,MAAM;gBAC1B,UAAU;aACX,CAAC,CAAC;YAEH,wBAAwB;YACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;YAE/D,kBAAkB;YAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YACzE,OAAO,CAAC,GAAG,EAAE,CAAC;QAEhB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,6BAA6B;IAC7B,WAAW;SACR,OAAO,CAAC,sBAAsB,CAAC;SAC/B,WAAW,CAAC,6CAA6C,CAAC;SAC1D,MAAM,CAAC,iBAAiB,EAAE,6CAA6C,EAAE,OAAO,CAAC;SACjF,MAAM,CAAC,gBAAgB,EAAE,6CAA6C,CAAC;SACvE,MAAM,CAAC,gBAAgB,EAAE,0BAA0B,CAAC;SACpD,MAAM,CAAC,oBAAoB,EAAE,uDAAuD,EAAE,OAAO,CAAC;SAC9F,MAAM,CAAC,cAAc,EAAE,qBAAqB,EAAE,IAAI,CAAC;SACnD,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;SAChD,MAAM,CAAC,cAAc,EAAE,mDAAmD,EAAE,SAAS,CAAC;SACtF,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,CAAC;SAC9D,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAAO,EAAE,EAAE;QACtC,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B,IAAI,IAAI,CAAC,CAAC,CAAC;YAErE,4CAA4C;YAC5C,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBAC/B,MAAM,oBAAoB,EAAE,CAAC;gBAE7B,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;oBACpB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC,CAAC;oBAC3E,OAAO,CAAC,GAAG,EAAE,CAAC;oBACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,IAAI,qCAAqC,CAAC,CAAC,CAAC;oBACtG,OAAO,CAAC,GAAG,EAAE,CAAC;oBACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,mBAAmB;YACnB,MAAM,MAAM,GAAG,8BAA8B,CAAC;gBAC5C,aAAa,EAAE,IAAI;gBACnB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,OAAO,EAAE,OAAO,CAAC,GAAG;gBACpB,SAAS,EAAE,OAAO,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,wBAAwB;YACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACvD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC7D,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC7D,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YAC3F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;YAE/D,kBAAkB;YAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YACzE,OAAO,CAAC,GAAG,EAAE,CAAC;QAEhB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,gDAAgD;IAChD,WAAW;SACR,OAAO,CAAC,4BAA4B,CAAC;SACrC,WAAW,CAAC,0DAA0D,CAAC;SACvE,MAAM,CAAC,eAAe,EAAE,qDAAqD,EAAE,gBAAgB,CAAC;SAChG,MAAM,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,UAAU,CAAC;SAC3D,MAAM,CAAC,qBAAqB,EAAE,8BAA8B,EAAE,IAAI,CAAC;SACnE,MAAM,CAAC,iBAAiB,EAAE,sCAAsC,EAAE,UAAU,CAAC;SAC7E,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,OAAO,EAAE,EAAE;QAC1C,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;YAEhE,4BAA4B;YAC5B,MAAM,oBAAoB,EAAE,CAAC;YAE7B,kBAAkB;YAClB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;YAEnD,+BAA+B;YAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAEvE,qCAAqC;YACrC,MAAM,MAAM,GAAG,2BAA2B,CAAC;gBACzC,MAAM;gBACN,MAAM;gBACN,SAAS;gBACT,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;gBAC1C,YAAY,EAAE,OAAO,CAAC,MAAM;aAC7B,CAAC,CAAC;YAEH,wBAAwB;YACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC,CAAC;YACtD,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC,CAAC;YACxD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC3F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC,CAAC;YAExF,kBAAkB;YAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC,CAAC;YACtE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,gBAAgB,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAClG,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC,CAAC;YACvF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,EAAE,CAAC;QAEhB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,WAAW,CAAC;AACrB,CAAC"}
|