@defai.digital/ax-cli 4.4.6 → 4.4.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/ax-cli +1 -5
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +158 -9
- package/dist/index.js.map +1 -1
- package/dist/setup.d.ts +27 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +591 -0
- package/dist/setup.js.map +1 -0
- package/package.json +43 -135
- package/LICENSE +0 -22
- package/README.md +0 -387
- package/config-defaults/messages.yaml +0 -75
- package/config-defaults/models.yaml +0 -57
- package/config-defaults/prompts.yaml +0 -948
- package/config-defaults/settings.yaml +0 -157
- package/dist/agent/agent-executor.d.ts +0 -61
- package/dist/agent/agent-executor.js +0 -194
- package/dist/agent/agent-executor.js.map +0 -1
- package/dist/agent/agent-router.d.ts +0 -68
- package/dist/agent/agent-router.js +0 -242
- package/dist/agent/agent-router.js.map +0 -1
- package/dist/agent/context-manager.d.ts +0 -122
- package/dist/agent/context-manager.js +0 -406
- package/dist/agent/context-manager.js.map +0 -1
- package/dist/agent/core/index.d.ts +0 -8
- package/dist/agent/core/index.js +0 -9
- package/dist/agent/core/index.js.map +0 -1
- package/dist/agent/core/types.d.ts +0 -92
- package/dist/agent/core/types.js +0 -11
- package/dist/agent/core/types.js.map +0 -1
- package/dist/agent/dependency-resolver.d.ts +0 -90
- package/dist/agent/dependency-resolver.js +0 -366
- package/dist/agent/dependency-resolver.js.map +0 -1
- package/dist/agent/execution/index.d.ts +0 -9
- package/dist/agent/execution/index.js +0 -9
- package/dist/agent/execution/index.js.map +0 -1
- package/dist/agent/execution/tool-executor.d.ts +0 -93
- package/dist/agent/execution/tool-executor.js +0 -552
- package/dist/agent/execution/tool-executor.js.map +0 -1
- package/dist/agent/index.d.ts +0 -14
- package/dist/agent/index.js +0 -145
- package/dist/agent/index.js.map +0 -1
- package/dist/agent/llm-agent.d.ts +0 -368
- package/dist/agent/llm-agent.js +0 -1931
- package/dist/agent/llm-agent.js.map +0 -1
- package/dist/agent/loop-detector.d.ts +0 -72
- package/dist/agent/loop-detector.js +0 -335
- package/dist/agent/loop-detector.js.map +0 -1
- package/dist/agent/parallel-tools.d.ts +0 -69
- package/dist/agent/parallel-tools.js +0 -188
- package/dist/agent/parallel-tools.js.map +0 -1
- package/dist/agent/planning/index.d.ts +0 -9
- package/dist/agent/planning/index.js +0 -9
- package/dist/agent/planning/index.js.map +0 -1
- package/dist/agent/planning/plan-executor.d.ts +0 -79
- package/dist/agent/planning/plan-executor.js +0 -240
- package/dist/agent/planning/plan-executor.js.map +0 -1
- package/dist/agent/progress-tracker.d.ts +0 -94
- package/dist/agent/progress-tracker.js +0 -225
- package/dist/agent/progress-tracker.js.map +0 -1
- package/dist/agent/specialized/analysis-agent.d.ts +0 -11
- package/dist/agent/specialized/analysis-agent.js +0 -24
- package/dist/agent/specialized/analysis-agent.js.map +0 -1
- package/dist/agent/specialized/debug-agent.d.ts +0 -11
- package/dist/agent/specialized/debug-agent.js +0 -46
- package/dist/agent/specialized/debug-agent.js.map +0 -1
- package/dist/agent/specialized/documentation-agent.d.ts +0 -11
- package/dist/agent/specialized/documentation-agent.js +0 -24
- package/dist/agent/specialized/documentation-agent.js.map +0 -1
- package/dist/agent/specialized/index.d.ts +0 -11
- package/dist/agent/specialized/index.js +0 -12
- package/dist/agent/specialized/index.js.map +0 -1
- package/dist/agent/specialized/performance-agent.d.ts +0 -11
- package/dist/agent/specialized/performance-agent.js +0 -24
- package/dist/agent/specialized/performance-agent.js.map +0 -1
- package/dist/agent/specialized/refactoring-agent.d.ts +0 -11
- package/dist/agent/specialized/refactoring-agent.js +0 -24
- package/dist/agent/specialized/refactoring-agent.js.map +0 -1
- package/dist/agent/specialized/testing-agent.d.ts +0 -11
- package/dist/agent/specialized/testing-agent.js +0 -24
- package/dist/agent/specialized/testing-agent.js.map +0 -1
- package/dist/agent/status-reporter.d.ts +0 -114
- package/dist/agent/status-reporter.js +0 -335
- package/dist/agent/status-reporter.js.map +0 -1
- package/dist/agent/streaming/index.d.ts +0 -9
- package/dist/agent/streaming/index.js +0 -9
- package/dist/agent/streaming/index.js.map +0 -1
- package/dist/agent/streaming/stream-handler.d.ts +0 -62
- package/dist/agent/streaming/stream-handler.js +0 -217
- package/dist/agent/streaming/stream-handler.js.map +0 -1
- package/dist/agent/subagent-orchestrator.d.ts +0 -166
- package/dist/agent/subagent-orchestrator.js +0 -487
- package/dist/agent/subagent-orchestrator.js.map +0 -1
- package/dist/agent/subagent-types.d.ts +0 -261
- package/dist/agent/subagent-types.js +0 -257
- package/dist/agent/subagent-types.js.map +0 -1
- package/dist/agent/subagent.d.ts +0 -116
- package/dist/agent/subagent.js +0 -507
- package/dist/agent/subagent.js.map +0 -1
- package/dist/checkpoint/index.d.ts +0 -9
- package/dist/checkpoint/index.js +0 -11
- package/dist/checkpoint/index.js.map +0 -1
- package/dist/checkpoint/manager.d.ts +0 -101
- package/dist/checkpoint/manager.js +0 -407
- package/dist/checkpoint/manager.js.map +0 -1
- package/dist/checkpoint/storage.d.ts +0 -39
- package/dist/checkpoint/storage.js +0 -350
- package/dist/checkpoint/storage.js.map +0 -1
- package/dist/checkpoint/types.d.ts +0 -111
- package/dist/checkpoint/types.js +0 -17
- package/dist/checkpoint/types.js.map +0 -1
- package/dist/commands/cache.d.ts +0 -7
- package/dist/commands/cache.js +0 -284
- package/dist/commands/cache.js.map +0 -1
- package/dist/commands/custom-commands.d.ts +0 -77
- package/dist/commands/custom-commands.js +0 -251
- package/dist/commands/custom-commands.js.map +0 -1
- package/dist/commands/design.d.ts +0 -18
- package/dist/commands/design.js +0 -511
- package/dist/commands/design.js.map +0 -1
- package/dist/commands/doctor.d.ts +0 -6
- package/dist/commands/doctor.js +0 -773
- package/dist/commands/doctor.js.map +0 -1
- package/dist/commands/frontend.d.ts +0 -9
- package/dist/commands/frontend.js +0 -645
- package/dist/commands/frontend.js.map +0 -1
- package/dist/commands/init/wizard.d.ts +0 -55
- package/dist/commands/init/wizard.js +0 -189
- package/dist/commands/init/wizard.js.map +0 -1
- package/dist/commands/init.d.ts +0 -8
- package/dist/commands/init.js +0 -195
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/mcp-migrate.d.ts +0 -9
- package/dist/commands/mcp-migrate.js +0 -175
- package/dist/commands/mcp-migrate.js.map +0 -1
- package/dist/commands/mcp.d.ts +0 -2
- package/dist/commands/mcp.js +0 -1292
- package/dist/commands/mcp.js.map +0 -1
- package/dist/commands/memory.d.ts +0 -6
- package/dist/commands/memory.js +0 -555
- package/dist/commands/memory.js.map +0 -1
- package/dist/commands/models.d.ts +0 -5
- package/dist/commands/models.js +0 -213
- package/dist/commands/models.js.map +0 -1
- package/dist/commands/plan.d.ts +0 -43
- package/dist/commands/plan.js +0 -362
- package/dist/commands/plan.js.map +0 -1
- package/dist/commands/rewind.d.ts +0 -19
- package/dist/commands/rewind.js +0 -221
- package/dist/commands/rewind.js.map +0 -1
- package/dist/commands/setup.d.ts +0 -14
- package/dist/commands/setup.js +0 -733
- package/dist/commands/setup.js.map +0 -1
- package/dist/commands/status.d.ts +0 -7
- package/dist/commands/status.js +0 -437
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/templates.d.ts +0 -5
- package/dist/commands/templates.js +0 -245
- package/dist/commands/templates.js.map +0 -1
- package/dist/commands/update.d.ts +0 -49
- package/dist/commands/update.js +0 -366
- package/dist/commands/update.js.map +0 -1
- package/dist/commands/usage.d.ts +0 -8
- package/dist/commands/usage.js +0 -264
- package/dist/commands/usage.js.map +0 -1
- package/dist/commands/vscode.d.ts +0 -7
- package/dist/commands/vscode.js +0 -419
- package/dist/commands/vscode.js.map +0 -1
- package/dist/constants.d.ts +0 -236
- package/dist/constants.js +0 -288
- package/dist/constants.js.map +0 -1
- package/dist/design/figma-alias.d.ts +0 -170
- package/dist/design/figma-alias.js +0 -577
- package/dist/design/figma-alias.js.map +0 -1
- package/dist/design/figma-audit.d.ts +0 -40
- package/dist/design/figma-audit.js +0 -383
- package/dist/design/figma-audit.js.map +0 -1
- package/dist/design/figma-client.d.ts +0 -131
- package/dist/design/figma-client.js +0 -369
- package/dist/design/figma-client.js.map +0 -1
- package/dist/design/figma-map.d.ts +0 -29
- package/dist/design/figma-map.js +0 -346
- package/dist/design/figma-map.js.map +0 -1
- package/dist/design/figma-tokens.d.ts +0 -73
- package/dist/design/figma-tokens.js +0 -448
- package/dist/design/figma-tokens.js.map +0 -1
- package/dist/design/index.d.ts +0 -13
- package/dist/design/index.js +0 -20
- package/dist/design/index.js.map +0 -1
- package/dist/design/types.d.ts +0 -98
- package/dist/design/types.js +0 -9
- package/dist/design/types.js.map +0 -1
- package/dist/hooks/hook-runner.d.ts +0 -142
- package/dist/hooks/hook-runner.js +0 -436
- package/dist/hooks/hook-runner.js.map +0 -1
- package/dist/hooks/index.d.ts +0 -9
- package/dist/hooks/index.js +0 -10
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/manager.d.ts +0 -84
- package/dist/hooks/manager.js +0 -348
- package/dist/hooks/manager.js.map +0 -1
- package/dist/hooks/types.d.ts +0 -134
- package/dist/hooks/types.js +0 -9
- package/dist/hooks/types.js.map +0 -1
- package/dist/index.d.ts +0 -2
- package/dist/ipc/index.d.ts +0 -9
- package/dist/ipc/index.js +0 -10
- package/dist/ipc/index.js.map +0 -1
- package/dist/ipc/vscode-client.d.ts +0 -200
- package/dist/ipc/vscode-client.js +0 -495
- package/dist/ipc/vscode-client.js.map +0 -1
- package/dist/llm/client.d.ts +0 -205
- package/dist/llm/client.js +0 -735
- package/dist/llm/client.js.map +0 -1
- package/dist/llm/tools.d.ts +0 -102
- package/dist/llm/tools.js +0 -275
- package/dist/llm/tools.js.map +0 -1
- package/dist/llm/types.d.ts +0 -428
- package/dist/llm/types.js +0 -194
- package/dist/llm/types.js.map +0 -1
- package/dist/mcp/automatosx-auto-discovery.d.ts +0 -66
- package/dist/mcp/automatosx-auto-discovery.js +0 -169
- package/dist/mcp/automatosx-auto-discovery.js.map +0 -1
- package/dist/mcp/automatosx-loader.d.ts +0 -99
- package/dist/mcp/automatosx-loader.js +0 -250
- package/dist/mcp/automatosx-loader.js.map +0 -1
- package/dist/mcp/cancellation.d.ts +0 -182
- package/dist/mcp/cancellation.js +0 -275
- package/dist/mcp/cancellation.js.map +0 -1
- package/dist/mcp/client-v2.d.ts +0 -500
- package/dist/mcp/client-v2.js +0 -1433
- package/dist/mcp/client-v2.js.map +0 -1
- package/dist/mcp/client.d.ts +0 -170
- package/dist/mcp/client.js +0 -232
- package/dist/mcp/client.js.map +0 -1
- package/dist/mcp/config-detector.d.ts +0 -90
- package/dist/mcp/config-detector.js +0 -250
- package/dist/mcp/config-detector.js.map +0 -1
- package/dist/mcp/config-migrator.d.ts +0 -68
- package/dist/mcp/config-migrator.js +0 -291
- package/dist/mcp/config-migrator.js.map +0 -1
- package/dist/mcp/config.d.ts +0 -24
- package/dist/mcp/config.js +0 -273
- package/dist/mcp/config.js.map +0 -1
- package/dist/mcp/constants.d.ts +0 -66
- package/dist/mcp/constants.js +0 -85
- package/dist/mcp/constants.js.map +0 -1
- package/dist/mcp/content-length-transport.d.ts +0 -106
- package/dist/mcp/content-length-transport.js +0 -413
- package/dist/mcp/content-length-transport.js.map +0 -1
- package/dist/mcp/debug.d.ts +0 -211
- package/dist/mcp/debug.js +0 -404
- package/dist/mcp/debug.js.map +0 -1
- package/dist/mcp/error-formatter.d.ts +0 -40
- package/dist/mcp/error-formatter.js +0 -207
- package/dist/mcp/error-formatter.js.map +0 -1
- package/dist/mcp/error-remediation.d.ts +0 -45
- package/dist/mcp/error-remediation.js +0 -291
- package/dist/mcp/error-remediation.js.map +0 -1
- package/dist/mcp/health.d.ts +0 -120
- package/dist/mcp/health.js +0 -267
- package/dist/mcp/health.js.map +0 -1
- package/dist/mcp/index.d.ts +0 -56
- package/dist/mcp/index.js +0 -89
- package/dist/mcp/index.js.map +0 -1
- package/dist/mcp/invariants.d.ts +0 -141
- package/dist/mcp/invariants.js +0 -243
- package/dist/mcp/invariants.js.map +0 -1
- package/dist/mcp/mutex-safe.d.ts +0 -151
- package/dist/mcp/mutex-safe.js +0 -260
- package/dist/mcp/mutex-safe.js.map +0 -1
- package/dist/mcp/progress.d.ts +0 -155
- package/dist/mcp/progress.js +0 -252
- package/dist/mcp/progress.js.map +0 -1
- package/dist/mcp/prompts.d.ts +0 -68
- package/dist/mcp/prompts.js +0 -129
- package/dist/mcp/prompts.js.map +0 -1
- package/dist/mcp/provider-mcp-loader.d.ts +0 -130
- package/dist/mcp/provider-mcp-loader.js +0 -292
- package/dist/mcp/provider-mcp-loader.js.map +0 -1
- package/dist/mcp/reconnection.d.ts +0 -101
- package/dist/mcp/reconnection.js +0 -253
- package/dist/mcp/reconnection.js.map +0 -1
- package/dist/mcp/registry.d.ts +0 -75
- package/dist/mcp/registry.js +0 -276
- package/dist/mcp/registry.js.map +0 -1
- package/dist/mcp/resources.d.ts +0 -58
- package/dist/mcp/resources.js +0 -144
- package/dist/mcp/resources.js.map +0 -1
- package/dist/mcp/schema-validator.d.ts +0 -82
- package/dist/mcp/schema-validator.js +0 -161
- package/dist/mcp/schema-validator.js.map +0 -1
- package/dist/mcp/ssrf-protection.d.ts +0 -86
- package/dist/mcp/ssrf-protection.js +0 -311
- package/dist/mcp/ssrf-protection.js.map +0 -1
- package/dist/mcp/subscriptions.d.ts +0 -168
- package/dist/mcp/subscriptions.js +0 -248
- package/dist/mcp/subscriptions.js.map +0 -1
- package/dist/mcp/templates.d.ts +0 -52
- package/dist/mcp/templates.js +0 -627
- package/dist/mcp/templates.js.map +0 -1
- package/dist/mcp/transports.d.ts +0 -80
- package/dist/mcp/transports.js +0 -237
- package/dist/mcp/transports.js.map +0 -1
- package/dist/mcp/type-safety.d.ts +0 -225
- package/dist/mcp/type-safety.js +0 -237
- package/dist/mcp/type-safety.js.map +0 -1
- package/dist/mcp/validation.d.ts +0 -29
- package/dist/mcp/validation.js +0 -339
- package/dist/mcp/validation.js.map +0 -1
- package/dist/mcp/zai-detector.d.ts +0 -63
- package/dist/mcp/zai-detector.js +0 -193
- package/dist/mcp/zai-detector.js.map +0 -1
- package/dist/mcp/zai-templates.d.ts +0 -90
- package/dist/mcp/zai-templates.js +0 -157
- package/dist/mcp/zai-templates.js.map +0 -1
- package/dist/memory/context-generator.d.ts +0 -84
- package/dist/memory/context-generator.js +0 -546
- package/dist/memory/context-generator.js.map +0 -1
- package/dist/memory/context-injector.d.ts +0 -97
- package/dist/memory/context-injector.js +0 -159
- package/dist/memory/context-injector.js.map +0 -1
- package/dist/memory/context-store.d.ts +0 -103
- package/dist/memory/context-store.js +0 -264
- package/dist/memory/context-store.js.map +0 -1
- package/dist/memory/index.d.ts +0 -43
- package/dist/memory/index.js +0 -49
- package/dist/memory/index.js.map +0 -1
- package/dist/memory/provider-context-store.d.ts +0 -127
- package/dist/memory/provider-context-store.js +0 -385
- package/dist/memory/provider-context-store.js.map +0 -1
- package/dist/memory/schemas.d.ts +0 -118
- package/dist/memory/schemas.js +0 -106
- package/dist/memory/schemas.js.map +0 -1
- package/dist/memory/stats-collector.d.ts +0 -73
- package/dist/memory/stats-collector.js +0 -170
- package/dist/memory/stats-collector.js.map +0 -1
- package/dist/memory/types.d.ts +0 -177
- package/dist/memory/types.js +0 -73
- package/dist/memory/types.js.map +0 -1
- package/dist/permissions/index.d.ts +0 -6
- package/dist/permissions/index.js +0 -7
- package/dist/permissions/index.js.map +0 -1
- package/dist/permissions/permission-manager.d.ts +0 -149
- package/dist/permissions/permission-manager.js +0 -410
- package/dist/permissions/permission-manager.js.map +0 -1
- package/dist/planner/dependency-resolver.d.ts +0 -72
- package/dist/planner/dependency-resolver.js +0 -272
- package/dist/planner/dependency-resolver.js.map +0 -1
- package/dist/planner/index.d.ts +0 -12
- package/dist/planner/index.js +0 -28
- package/dist/planner/index.js.map +0 -1
- package/dist/planner/plan-generator.d.ts +0 -74
- package/dist/planner/plan-generator.js +0 -244
- package/dist/planner/plan-generator.js.map +0 -1
- package/dist/planner/plan-storage.d.ts +0 -113
- package/dist/planner/plan-storage.js +0 -398
- package/dist/planner/plan-storage.js.map +0 -1
- package/dist/planner/prompts/planning-prompt.d.ts +0 -62
- package/dist/planner/prompts/planning-prompt.js +0 -414
- package/dist/planner/prompts/planning-prompt.js.map +0 -1
- package/dist/planner/task-planner.d.ts +0 -139
- package/dist/planner/task-planner.js +0 -532
- package/dist/planner/task-planner.js.map +0 -1
- package/dist/planner/token-estimator.d.ts +0 -63
- package/dist/planner/token-estimator.js +0 -295
- package/dist/planner/token-estimator.js.map +0 -1
- package/dist/planner/types.d.ts +0 -425
- package/dist/planner/types.js +0 -213
- package/dist/planner/types.js.map +0 -1
- package/dist/provider/config.d.ts +0 -227
- package/dist/provider/config.js +0 -430
- package/dist/provider/config.js.map +0 -1
- package/dist/schemas/api-schemas.d.ts +0 -45
- package/dist/schemas/api-schemas.js +0 -129
- package/dist/schemas/api-schemas.js.map +0 -1
- package/dist/schemas/confirmation-schemas.d.ts +0 -39
- package/dist/schemas/confirmation-schemas.js +0 -48
- package/dist/schemas/confirmation-schemas.js.map +0 -1
- package/dist/schemas/index-unified.d.ts +0 -12
- package/dist/schemas/index-unified.js +0 -17
- package/dist/schemas/index-unified.js.map +0 -1
- package/dist/schemas/index.d.ts +0 -83
- package/dist/schemas/index.js +0 -139
- package/dist/schemas/index.js.map +0 -1
- package/dist/schemas/settings-schemas.d.ts +0 -186
- package/dist/schemas/settings-schemas.js +0 -324
- package/dist/schemas/settings-schemas.js.map +0 -1
- package/dist/schemas/tool-schemas.d.ts +0 -127
- package/dist/schemas/tool-schemas.js +0 -84
- package/dist/schemas/tool-schemas.js.map +0 -1
- package/dist/schemas/yaml-schemas.d.ts +0 -231
- package/dist/schemas/yaml-schemas.js +0 -199
- package/dist/schemas/yaml-schemas.js.map +0 -1
- package/dist/sdk/errors.d.ts +0 -100
- package/dist/sdk/errors.js +0 -138
- package/dist/sdk/errors.js.map +0 -1
- package/dist/sdk/index.d.ts +0 -901
- package/dist/sdk/index.js +0 -1272
- package/dist/sdk/index.js.map +0 -1
- package/dist/sdk/progress-reporter.d.ts +0 -123
- package/dist/sdk/progress-reporter.js +0 -220
- package/dist/sdk/progress-reporter.js.map +0 -1
- package/dist/sdk/testing.d.ts +0 -427
- package/dist/sdk/testing.js +0 -725
- package/dist/sdk/testing.js.map +0 -1
- package/dist/sdk/tool-registry.d.ts +0 -194
- package/dist/sdk/tool-registry.js +0 -326
- package/dist/sdk/tool-registry.js.map +0 -1
- package/dist/sdk/types.d.ts +0 -53
- package/dist/sdk/types.js +0 -8
- package/dist/sdk/types.js.map +0 -1
- package/dist/sdk/unified-logger.d.ts +0 -173
- package/dist/sdk/unified-logger.js +0 -327
- package/dist/sdk/unified-logger.js.map +0 -1
- package/dist/sdk/version.d.ts +0 -163
- package/dist/sdk/version.js +0 -205
- package/dist/sdk/version.js.map +0 -1
- package/dist/tools/ask-user.d.ts +0 -126
- package/dist/tools/ask-user.js +0 -290
- package/dist/tools/ask-user.js.map +0 -1
- package/dist/tools/ax-agent.d.ts +0 -71
- package/dist/tools/ax-agent.js +0 -283
- package/dist/tools/ax-agent.js.map +0 -1
- package/dist/tools/bash-output.d.ts +0 -25
- package/dist/tools/bash-output.js +0 -146
- package/dist/tools/bash-output.js.map +0 -1
- package/dist/tools/bash.d.ts +0 -67
- package/dist/tools/bash.js +0 -522
- package/dist/tools/bash.js.map +0 -1
- package/dist/tools/confirmation-tool.d.ts +0 -16
- package/dist/tools/confirmation-tool.js +0 -76
- package/dist/tools/confirmation-tool.js.map +0 -1
- package/dist/tools/definitions/ask-user.d.ts +0 -8
- package/dist/tools/definitions/ask-user.js +0 -168
- package/dist/tools/definitions/ask-user.js.map +0 -1
- package/dist/tools/definitions/ax-agent.d.ts +0 -8
- package/dist/tools/definitions/ax-agent.js +0 -276
- package/dist/tools/definitions/ax-agent.js.map +0 -1
- package/dist/tools/definitions/bash-output.d.ts +0 -7
- package/dist/tools/definitions/bash-output.js +0 -78
- package/dist/tools/definitions/bash-output.js.map +0 -1
- package/dist/tools/definitions/bash.d.ts +0 -8
- package/dist/tools/definitions/bash.js +0 -152
- package/dist/tools/definitions/bash.js.map +0 -1
- package/dist/tools/definitions/create-file.d.ts +0 -7
- package/dist/tools/definitions/create-file.js +0 -129
- package/dist/tools/definitions/create-file.js.map +0 -1
- package/dist/tools/definitions/design.d.ts +0 -12
- package/dist/tools/definitions/design.js +0 -368
- package/dist/tools/definitions/design.js.map +0 -1
- package/dist/tools/definitions/index.d.ts +0 -49
- package/dist/tools/definitions/index.js +0 -87
- package/dist/tools/definitions/index.js.map +0 -1
- package/dist/tools/definitions/multi-edit.d.ts +0 -7
- package/dist/tools/definitions/multi-edit.js +0 -123
- package/dist/tools/definitions/multi-edit.js.map +0 -1
- package/dist/tools/definitions/search.d.ts +0 -7
- package/dist/tools/definitions/search.js +0 -159
- package/dist/tools/definitions/search.js.map +0 -1
- package/dist/tools/definitions/str-replace-editor.d.ts +0 -7
- package/dist/tools/definitions/str-replace-editor.js +0 -145
- package/dist/tools/definitions/str-replace-editor.js.map +0 -1
- package/dist/tools/definitions/todo.d.ts +0 -8
- package/dist/tools/definitions/todo.js +0 -261
- package/dist/tools/definitions/todo.js.map +0 -1
- package/dist/tools/definitions/view-file.d.ts +0 -7
- package/dist/tools/definitions/view-file.js +0 -111
- package/dist/tools/definitions/view-file.js.map +0 -1
- package/dist/tools/design-tool.d.ts +0 -68
- package/dist/tools/design-tool.js +0 -299
- package/dist/tools/design-tool.js.map +0 -1
- package/dist/tools/format-generators.d.ts +0 -62
- package/dist/tools/format-generators.js +0 -291
- package/dist/tools/format-generators.js.map +0 -1
- package/dist/tools/index.d.ts +0 -8
- package/dist/tools/index.js +0 -11
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/priority-registry.d.ts +0 -124
- package/dist/tools/priority-registry.js +0 -401
- package/dist/tools/priority-registry.js.map +0 -1
- package/dist/tools/priority.d.ts +0 -158
- package/dist/tools/priority.js +0 -350
- package/dist/tools/priority.js.map +0 -1
- package/dist/tools/registry.d.ts +0 -146
- package/dist/tools/registry.js +0 -171
- package/dist/tools/registry.js.map +0 -1
- package/dist/tools/search.d.ts +0 -85
- package/dist/tools/search.js +0 -430
- package/dist/tools/search.js.map +0 -1
- package/dist/tools/text-editor.d.ts +0 -87
- package/dist/tools/text-editor.js +0 -1369
- package/dist/tools/text-editor.js.map +0 -1
- package/dist/tools/todo-tool.d.ts +0 -20
- package/dist/tools/todo-tool.js +0 -186
- package/dist/tools/todo-tool.js.map +0 -1
- package/dist/tools/types.d.ts +0 -175
- package/dist/tools/types.js +0 -11
- package/dist/tools/types.js.map +0 -1
- package/dist/types/index.d.ts +0 -30
- package/dist/types/index.js +0 -2
- package/dist/types/index.js.map +0 -1
- package/dist/types/project-analysis.d.ts +0 -84
- package/dist/types/project-analysis.js +0 -5
- package/dist/types/project-analysis.js.map +0 -1
- package/dist/types/template.d.ts +0 -53
- package/dist/types/template.js +0 -5
- package/dist/types/template.js.map +0 -1
- package/dist/ui/app.d.ts +0 -7
- package/dist/ui/app.js +0 -102
- package/dist/ui/app.js.map +0 -1
- package/dist/ui/components/api-key-input.d.ts +0 -7
- package/dist/ui/components/api-key-input.js +0 -92
- package/dist/ui/components/api-key-input.js.map +0 -1
- package/dist/ui/components/chat-history.d.ts +0 -12
- package/dist/ui/components/chat-history.js +0 -391
- package/dist/ui/components/chat-history.js.map +0 -1
- package/dist/ui/components/chat-input.d.ts +0 -13
- package/dist/ui/components/chat-input.js +0 -179
- package/dist/ui/components/chat-input.js.map +0 -1
- package/dist/ui/components/chat-interface.d.ts +0 -11
- package/dist/ui/components/chat-interface.js +0 -830
- package/dist/ui/components/chat-interface.js.map +0 -1
- package/dist/ui/components/collapsible-tool-result.d.ts +0 -42
- package/dist/ui/components/collapsible-tool-result.js +0 -216
- package/dist/ui/components/collapsible-tool-result.js.map +0 -1
- package/dist/ui/components/command-suggestions.d.ts +0 -29
- package/dist/ui/components/command-suggestions.js +0 -88
- package/dist/ui/components/command-suggestions.js.map +0 -1
- package/dist/ui/components/confirmation-dialog.d.ts +0 -11
- package/dist/ui/components/confirmation-dialog.js +0 -100
- package/dist/ui/components/confirmation-dialog.js.map +0 -1
- package/dist/ui/components/context-breakdown.d.ts +0 -23
- package/dist/ui/components/context-breakdown.js +0 -124
- package/dist/ui/components/context-breakdown.js.map +0 -1
- package/dist/ui/components/diff-renderer.d.ts +0 -13
- package/dist/ui/components/diff-renderer.js +0 -192
- package/dist/ui/components/diff-renderer.js.map +0 -1
- package/dist/ui/components/index.d.ts +0 -18
- package/dist/ui/components/index.js +0 -20
- package/dist/ui/components/index.js.map +0 -1
- package/dist/ui/components/keyboard-help.d.ts +0 -17
- package/dist/ui/components/keyboard-help.js +0 -122
- package/dist/ui/components/keyboard-help.js.map +0 -1
- package/dist/ui/components/keyboard-hints.d.ts +0 -35
- package/dist/ui/components/keyboard-hints.js +0 -142
- package/dist/ui/components/keyboard-hints.js.map +0 -1
- package/dist/ui/components/loading-spinner.d.ts +0 -9
- package/dist/ui/components/loading-spinner.js +0 -120
- package/dist/ui/components/loading-spinner.js.map +0 -1
- package/dist/ui/components/mcp-dashboard.d.ts +0 -15
- package/dist/ui/components/mcp-dashboard.js +0 -520
- package/dist/ui/components/mcp-dashboard.js.map +0 -1
- package/dist/ui/components/mcp-status.d.ts +0 -5
- package/dist/ui/components/mcp-status.js +0 -58
- package/dist/ui/components/mcp-status.js.map +0 -1
- package/dist/ui/components/model-selection.d.ts +0 -12
- package/dist/ui/components/model-selection.js +0 -17
- package/dist/ui/components/model-selection.js.map +0 -1
- package/dist/ui/components/phase-progress.d.ts +0 -21
- package/dist/ui/components/phase-progress.js +0 -185
- package/dist/ui/components/phase-progress.js.map +0 -1
- package/dist/ui/components/question-dialog.d.ts +0 -17
- package/dist/ui/components/question-dialog.js +0 -181
- package/dist/ui/components/question-dialog.js.map +0 -1
- package/dist/ui/components/quick-actions.d.ts +0 -12
- package/dist/ui/components/quick-actions.js +0 -171
- package/dist/ui/components/quick-actions.js.map +0 -1
- package/dist/ui/components/reasoning-display.d.ts +0 -36
- package/dist/ui/components/reasoning-display.js +0 -46
- package/dist/ui/components/reasoning-display.js.map +0 -1
- package/dist/ui/components/status-bar.d.ts +0 -47
- package/dist/ui/components/status-bar.js +0 -310
- package/dist/ui/components/status-bar.js.map +0 -1
- package/dist/ui/components/subagent-monitor.d.ts +0 -41
- package/dist/ui/components/subagent-monitor.js +0 -122
- package/dist/ui/components/subagent-monitor.js.map +0 -1
- package/dist/ui/components/toast-notification.d.ts +0 -197
- package/dist/ui/components/toast-notification.js +0 -190
- package/dist/ui/components/toast-notification.js.map +0 -1
- package/dist/ui/components/tool-group-display.d.ts +0 -19
- package/dist/ui/components/tool-group-display.js +0 -222
- package/dist/ui/components/tool-group-display.js.map +0 -1
- package/dist/ui/components/virtualized-chat-history.d.ts +0 -33
- package/dist/ui/components/virtualized-chat-history.js +0 -182
- package/dist/ui/components/virtualized-chat-history.js.map +0 -1
- package/dist/ui/components/welcome-panel.d.ts +0 -11
- package/dist/ui/components/welcome-panel.js +0 -225
- package/dist/ui/components/welcome-panel.js.map +0 -1
- package/dist/ui/hooks/use-chat-reducer.d.ts +0 -69
- package/dist/ui/hooks/use-chat-reducer.js +0 -118
- package/dist/ui/hooks/use-chat-reducer.js.map +0 -1
- package/dist/ui/hooks/use-enhanced-input.d.ts +0 -53
- package/dist/ui/hooks/use-enhanced-input.js +0 -1275
- package/dist/ui/hooks/use-enhanced-input.js.map +0 -1
- package/dist/ui/hooks/use-input-handler.d.ts +0 -79
- package/dist/ui/hooks/use-input-handler.js +0 -2251
- package/dist/ui/hooks/use-input-handler.js.map +0 -1
- package/dist/ui/hooks/use-input-history.d.ts +0 -9
- package/dist/ui/hooks/use-input-history.js +0 -168
- package/dist/ui/hooks/use-input-history.js.map +0 -1
- package/dist/ui/shared/max-sized-box.d.ts +0 -17
- package/dist/ui/shared/max-sized-box.js +0 -14
- package/dist/ui/shared/max-sized-box.js.map +0 -1
- package/dist/ui/themes/index.d.ts +0 -5
- package/dist/ui/themes/index.js +0 -5
- package/dist/ui/themes/index.js.map +0 -1
- package/dist/ui/themes/theme-registry.d.ts +0 -55
- package/dist/ui/themes/theme-registry.js +0 -202
- package/dist/ui/themes/theme-registry.js.map +0 -1
- package/dist/ui/utils/bracketed-paste-handler.d.ts +0 -97
- package/dist/ui/utils/bracketed-paste-handler.js +0 -322
- package/dist/ui/utils/bracketed-paste-handler.js.map +0 -1
- package/dist/ui/utils/change-summarizer.d.ts +0 -20
- package/dist/ui/utils/change-summarizer.js +0 -282
- package/dist/ui/utils/change-summarizer.js.map +0 -1
- package/dist/ui/utils/code-colorizer.d.ts +0 -9
- package/dist/ui/utils/code-colorizer.js +0 -13
- package/dist/ui/utils/code-colorizer.js.map +0 -1
- package/dist/ui/utils/colors.d.ts +0 -41
- package/dist/ui/utils/colors.js +0 -80
- package/dist/ui/utils/colors.js.map +0 -1
- package/dist/ui/utils/image-handler.d.ts +0 -29
- package/dist/ui/utils/image-handler.js +0 -129
- package/dist/ui/utils/image-handler.js.map +0 -1
- package/dist/ui/utils/markdown-renderer.d.ts +0 -4
- package/dist/ui/utils/markdown-renderer.js +0 -40
- package/dist/ui/utils/markdown-renderer.js.map +0 -1
- package/dist/ui/utils/semantic-action-detector.d.ts +0 -49
- package/dist/ui/utils/semantic-action-detector.js +0 -339
- package/dist/ui/utils/semantic-action-detector.js.map +0 -1
- package/dist/ui/utils/tool-grouper.d.ts +0 -94
- package/dist/ui/utils/tool-grouper.js +0 -618
- package/dist/ui/utils/tool-grouper.js.map +0 -1
- package/dist/utils/api-error.d.ts +0 -61
- package/dist/utils/api-error.js +0 -176
- package/dist/utils/api-error.js.map +0 -1
- package/dist/utils/audit-logger.d.ts +0 -206
- package/dist/utils/audit-logger.js +0 -286
- package/dist/utils/audit-logger.js.map +0 -1
- package/dist/utils/auto-accept-logger.d.ts +0 -175
- package/dist/utils/auto-accept-logger.js +0 -423
- package/dist/utils/auto-accept-logger.js.map +0 -1
- package/dist/utils/automatosx-detector.d.ts +0 -19
- package/dist/utils/automatosx-detector.js +0 -52
- package/dist/utils/automatosx-detector.js.map +0 -1
- package/dist/utils/background-task-manager.d.ts +0 -114
- package/dist/utils/background-task-manager.js +0 -470
- package/dist/utils/background-task-manager.js.map +0 -1
- package/dist/utils/cache.d.ts +0 -77
- package/dist/utils/cache.js +0 -180
- package/dist/utils/cache.js.map +0 -1
- package/dist/utils/command-security.d.ts +0 -85
- package/dist/utils/command-security.js +0 -210
- package/dist/utils/command-security.js.map +0 -1
- package/dist/utils/config-loader.d.ts +0 -190
- package/dist/utils/config-loader.js +0 -108
- package/dist/utils/config-loader.js.map +0 -1
- package/dist/utils/confirmation-service.d.ts +0 -51
- package/dist/utils/confirmation-service.js +0 -220
- package/dist/utils/confirmation-service.js.map +0 -1
- package/dist/utils/console-messenger.d.ts +0 -80
- package/dist/utils/console-messenger.js +0 -142
- package/dist/utils/console-messenger.js.map +0 -1
- package/dist/utils/custom-instructions.d.ts +0 -1
- package/dist/utils/custom-instructions.js +0 -24
- package/dist/utils/custom-instructions.js.map +0 -1
- package/dist/utils/encryption.d.ts +0 -86
- package/dist/utils/encryption.js +0 -236
- package/dist/utils/encryption.js.map +0 -1
- package/dist/utils/enhanced-error-messages.d.ts +0 -33
- package/dist/utils/enhanced-error-messages.js +0 -440
- package/dist/utils/enhanced-error-messages.js.map +0 -1
- package/dist/utils/error-handler.d.ts +0 -65
- package/dist/utils/error-handler.js +0 -148
- package/dist/utils/error-handler.js.map +0 -1
- package/dist/utils/error-translator.d.ts +0 -25
- package/dist/utils/error-translator.js +0 -203
- package/dist/utils/error-translator.js.map +0 -1
- package/dist/utils/external-editor.d.ts +0 -47
- package/dist/utils/external-editor.js +0 -179
- package/dist/utils/external-editor.js.map +0 -1
- package/dist/utils/file-cache.d.ts +0 -148
- package/dist/utils/file-cache.js +0 -413
- package/dist/utils/file-cache.js.map +0 -1
- package/dist/utils/file-lock.d.ts +0 -141
- package/dist/utils/file-lock.js +0 -554
- package/dist/utils/file-lock.js.map +0 -1
- package/dist/utils/file-mentions.d.ts +0 -68
- package/dist/utils/file-mentions.js +0 -225
- package/dist/utils/file-mentions.js.map +0 -1
- package/dist/utils/history-manager.d.ts +0 -52
- package/dist/utils/history-manager.js +0 -211
- package/dist/utils/history-manager.js.map +0 -1
- package/dist/utils/history-migration.d.ts +0 -9
- package/dist/utils/history-migration.js +0 -37
- package/dist/utils/history-migration.js.map +0 -1
- package/dist/utils/image-processor.d.ts +0 -33
- package/dist/utils/image-processor.js +0 -124
- package/dist/utils/image-processor.js.map +0 -1
- package/dist/utils/index.d.ts +0 -92
- package/dist/utils/index.js +0 -111
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/init-previewer.d.ts +0 -56
- package/dist/utils/init-previewer.js +0 -239
- package/dist/utils/init-previewer.js.map +0 -1
- package/dist/utils/init-validator.d.ts +0 -65
- package/dist/utils/init-validator.js +0 -252
- package/dist/utils/init-validator.js.map +0 -1
- package/dist/utils/input-sanitizer.d.ts +0 -210
- package/dist/utils/input-sanitizer.js +0 -362
- package/dist/utils/input-sanitizer.js.map +0 -1
- package/dist/utils/instruction-generator.d.ts +0 -21
- package/dist/utils/instruction-generator.js +0 -233
- package/dist/utils/instruction-generator.js.map +0 -1
- package/dist/utils/json-utils.d.ts +0 -72
- package/dist/utils/json-utils.js +0 -226
- package/dist/utils/json-utils.js.map +0 -1
- package/dist/utils/llm-optimized-instruction-generator.d.ts +0 -36
- package/dist/utils/llm-optimized-instruction-generator.js +0 -365
- package/dist/utils/llm-optimized-instruction-generator.js.map +0 -1
- package/dist/utils/message-optimizer.d.ts +0 -100
- package/dist/utils/message-optimizer.js +0 -297
- package/dist/utils/message-optimizer.js.map +0 -1
- package/dist/utils/onboarding-manager.d.ts +0 -45
- package/dist/utils/onboarding-manager.js +0 -131
- package/dist/utils/onboarding-manager.js.map +0 -1
- package/dist/utils/parallel-analyzer.d.ts +0 -123
- package/dist/utils/parallel-analyzer.js +0 -241
- package/dist/utils/parallel-analyzer.js.map +0 -1
- package/dist/utils/paste-utils.d.ts +0 -99
- package/dist/utils/paste-utils.js +0 -295
- package/dist/utils/paste-utils.js.map +0 -1
- package/dist/utils/path-helpers.d.ts +0 -8
- package/dist/utils/path-helpers.js +0 -35
- package/dist/utils/path-helpers.js.map +0 -1
- package/dist/utils/path-security.d.ts +0 -92
- package/dist/utils/path-security.js +0 -300
- package/dist/utils/path-security.js.map +0 -1
- package/dist/utils/path-utils.d.ts +0 -83
- package/dist/utils/path-utils.js +0 -122
- package/dist/utils/path-utils.js.map +0 -1
- package/dist/utils/path-validator.d.ts +0 -66
- package/dist/utils/path-validator.js +0 -141
- package/dist/utils/path-validator.js.map +0 -1
- package/dist/utils/performance.d.ts +0 -74
- package/dist/utils/performance.js +0 -133
- package/dist/utils/performance.js.map +0 -1
- package/dist/utils/process-pool.d.ts +0 -109
- package/dist/utils/process-pool.js +0 -332
- package/dist/utils/process-pool.js.map +0 -1
- package/dist/utils/progress-tracker.d.ts +0 -51
- package/dist/utils/progress-tracker.js +0 -152
- package/dist/utils/progress-tracker.js.map +0 -1
- package/dist/utils/project-analyzer.d.ts +0 -49
- package/dist/utils/project-analyzer.js +0 -396
- package/dist/utils/project-analyzer.js.map +0 -1
- package/dist/utils/prompt-builder.d.ts +0 -14
- package/dist/utils/prompt-builder.js +0 -100
- package/dist/utils/prompt-builder.js.map +0 -1
- package/dist/utils/provider-context.d.ts +0 -243
- package/dist/utils/provider-context.js +0 -421
- package/dist/utils/provider-context.js.map +0 -1
- package/dist/utils/provider-file-cache.d.ts +0 -91
- package/dist/utils/provider-file-cache.js +0 -165
- package/dist/utils/provider-file-cache.js.map +0 -1
- package/dist/utils/provider-settings.d.ts +0 -181
- package/dist/utils/provider-settings.js +0 -450
- package/dist/utils/provider-settings.js.map +0 -1
- package/dist/utils/rate-limiter.d.ts +0 -222
- package/dist/utils/rate-limiter.js +0 -338
- package/dist/utils/rate-limiter.js.map +0 -1
- package/dist/utils/retry-helper.d.ts +0 -81
- package/dist/utils/retry-helper.js +0 -244
- package/dist/utils/retry-helper.js.map +0 -1
- package/dist/utils/safety-rules.d.ts +0 -64
- package/dist/utils/safety-rules.js +0 -225
- package/dist/utils/safety-rules.js.map +0 -1
- package/dist/utils/settings-manager.d.ts +0 -256
- package/dist/utils/settings-manager.js +0 -967
- package/dist/utils/settings-manager.js.map +0 -1
- package/dist/utils/setup-validator.d.ts +0 -47
- package/dist/utils/setup-validator.js +0 -304
- package/dist/utils/setup-validator.js.map +0 -1
- package/dist/utils/string-utils.d.ts +0 -19
- package/dist/utils/string-utils.js +0 -28
- package/dist/utils/string-utils.js.map +0 -1
- package/dist/utils/template-manager.d.ts +0 -62
- package/dist/utils/template-manager.js +0 -366
- package/dist/utils/template-manager.js.map +0 -1
- package/dist/utils/text-utils.d.ts +0 -82
- package/dist/utils/text-utils.js +0 -203
- package/dist/utils/text-utils.js.map +0 -1
- package/dist/utils/token-counter.d.ts +0 -76
- package/dist/utils/token-counter.js +0 -231
- package/dist/utils/token-counter.js.map +0 -1
- package/dist/utils/usage-tracker.d.ts +0 -78
- package/dist/utils/usage-tracker.js +0 -126
- package/dist/utils/usage-tracker.js.map +0 -1
- package/dist/utils/version.d.ts +0 -14
- package/dist/utils/version.js +0 -70
- package/dist/utils/version.js.map +0 -1
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import * as os from 'os';
|
|
2
|
-
import * as path from 'path';
|
|
3
|
-
import * as fs from 'fs';
|
|
4
|
-
import { CONFIG_DIR_NAME, CONFIG_PATHS } from '../constants.js';
|
|
5
|
-
/**
|
|
6
|
-
* Resolve the base directory for AX CLI user data.
|
|
7
|
-
*
|
|
8
|
-
* - Honors AX_CLI_HOME when set (useful for tests and sandboxed environments)
|
|
9
|
-
* - Defaults to ~/.ax-cli to preserve existing behavior
|
|
10
|
-
* - Falls back to <cwd>/.ax-cli when the home directory is not writable
|
|
11
|
-
*/
|
|
12
|
-
export function getAxBaseDir() {
|
|
13
|
-
const override = process.env.AX_CLI_HOME;
|
|
14
|
-
if (override && override.trim().length > 0) {
|
|
15
|
-
return path.resolve(override);
|
|
16
|
-
}
|
|
17
|
-
const defaultDir = path.join(os.homedir(), CONFIG_DIR_NAME);
|
|
18
|
-
// If defaultDir is writable, use it
|
|
19
|
-
try {
|
|
20
|
-
fs.accessSync(defaultDir, fs.constants.W_OK);
|
|
21
|
-
return defaultDir;
|
|
22
|
-
}
|
|
23
|
-
catch {
|
|
24
|
-
// Fallback to workspace-local directory to avoid EPERM in sandboxed environments
|
|
25
|
-
const fallbackDir = CONFIG_PATHS.PROJECT_DIR;
|
|
26
|
-
try {
|
|
27
|
-
fs.mkdirSync(fallbackDir, { recursive: true });
|
|
28
|
-
}
|
|
29
|
-
catch {
|
|
30
|
-
// Ignore mkdir errors - final write attempts will surface meaningful errors
|
|
31
|
-
}
|
|
32
|
-
return fallbackDir;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=path-helpers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"path-helpers.js","sourceRoot":"","sources":["../../src/utils/path-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACzC,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;IAE5D,oCAAoC;IACpC,IAAI,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7C,OAAO,UAAU,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,iFAAiF;QACjF,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC;QAC7C,IAAI,CAAC;YACH,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,4EAA4E;QAC9E,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;AACH,CAAC"}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Path Security Utilities
|
|
3
|
-
*
|
|
4
|
-
* Provides comprehensive path validation to prevent path traversal,
|
|
5
|
-
* symlink attacks, and access to dangerous system directories (REQ-SEC-002).
|
|
6
|
-
*
|
|
7
|
-
* @module path-security
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* Result of path validation
|
|
11
|
-
*/
|
|
12
|
-
export interface PathValidationResult {
|
|
13
|
-
success: boolean;
|
|
14
|
-
path?: string;
|
|
15
|
-
error?: string;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Options for path validation
|
|
19
|
-
*/
|
|
20
|
-
export interface PathValidationOptions {
|
|
21
|
-
allowSymlinks?: boolean;
|
|
22
|
-
allowedRoots?: string[];
|
|
23
|
-
checkExists?: boolean;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Get OS-specific dangerous paths that should never be accessed.
|
|
27
|
-
* Results are cached for performance.
|
|
28
|
-
*
|
|
29
|
-
* @returns Array of dangerous path prefixes
|
|
30
|
-
*/
|
|
31
|
-
export declare function getDangerousPathsForOS(): string[];
|
|
32
|
-
/**
|
|
33
|
-
* Get dangerous file patterns that should be blocked.
|
|
34
|
-
* Results are cached for performance.
|
|
35
|
-
*
|
|
36
|
-
* @returns Array of dangerous file patterns (strings or regexes)
|
|
37
|
-
*/
|
|
38
|
-
export declare function getDangerousFilePatterns(): Array<string | RegExp>;
|
|
39
|
-
/**
|
|
40
|
-
* Check if a path matches a dangerous file pattern.
|
|
41
|
-
*
|
|
42
|
-
* @param filePath - Path to check
|
|
43
|
-
* @returns True if file matches dangerous pattern
|
|
44
|
-
*/
|
|
45
|
-
export declare function isDangerousFile(filePath: string): boolean;
|
|
46
|
-
/**
|
|
47
|
-
* Canonicalize a path by resolving symlinks and normalizing.
|
|
48
|
-
*
|
|
49
|
-
* @param filePath - Path to canonicalize
|
|
50
|
-
* @returns Canonicalized path or original if canonicalization fails
|
|
51
|
-
*/
|
|
52
|
-
export declare function canonicalizePath(filePath: string): Promise<string>;
|
|
53
|
-
/**
|
|
54
|
-
* Check if a path contains symlinks in any component.
|
|
55
|
-
*
|
|
56
|
-
* @param filePath - Path to check
|
|
57
|
-
* @returns True if any component is a symlink
|
|
58
|
-
*/
|
|
59
|
-
export declare function containsSymlinks(filePath: string): Promise<boolean>;
|
|
60
|
-
/**
|
|
61
|
-
* Validate a file path for security.
|
|
62
|
-
*
|
|
63
|
-
* Performs comprehensive checks:
|
|
64
|
-
* 1. Canonicalization (resolve symlinks)
|
|
65
|
-
* 2. Allowed root validation
|
|
66
|
-
* 3. Dangerous path blocking
|
|
67
|
-
* 4. Symlink detection
|
|
68
|
-
* 5. Dangerous file detection
|
|
69
|
-
*
|
|
70
|
-
* @param filePath - Path to validate
|
|
71
|
-
* @param options - Validation options
|
|
72
|
-
* @returns Validation result with success status and validated path
|
|
73
|
-
*/
|
|
74
|
-
export declare function validatePathSecure(filePath: string, options?: PathValidationOptions): Promise<PathValidationResult>;
|
|
75
|
-
/**
|
|
76
|
-
* Synchronous version of validatePathSecure.
|
|
77
|
-
* Less secure (doesn't resolve symlinks), use async version when possible.
|
|
78
|
-
*
|
|
79
|
-
* @param filePath - Path to validate
|
|
80
|
-
* @param options - Validation options
|
|
81
|
-
* @returns Validation result
|
|
82
|
-
*/
|
|
83
|
-
export declare function validatePathSecureSync(filePath: string, options?: PathValidationOptions): PathValidationResult;
|
|
84
|
-
/**
|
|
85
|
-
* Create a safe path joiner that validates the result.
|
|
86
|
-
*
|
|
87
|
-
* @param basePath - Base directory path
|
|
88
|
-
* @param relativePath - Relative path to join
|
|
89
|
-
* @param options - Validation options
|
|
90
|
-
* @returns Validated joined path or null if invalid
|
|
91
|
-
*/
|
|
92
|
-
export declare function safePathJoin(basePath: string, relativePath: string, options?: PathValidationOptions): Promise<string | null>;
|
|
@@ -1,300 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Path Security Utilities
|
|
3
|
-
*
|
|
4
|
-
* Provides comprehensive path validation to prevent path traversal,
|
|
5
|
-
* symlink attacks, and access to dangerous system directories (REQ-SEC-002).
|
|
6
|
-
*
|
|
7
|
-
* @module path-security
|
|
8
|
-
*/
|
|
9
|
-
import path from 'path';
|
|
10
|
-
import fs from 'fs-extra';
|
|
11
|
-
import os from 'os';
|
|
12
|
-
import { CONFIG_DIR_NAME } from '../constants.js';
|
|
13
|
-
// Cache dangerous paths per platform (computed once)
|
|
14
|
-
let _dangerousPathsCache = null;
|
|
15
|
-
/**
|
|
16
|
-
* Get OS-specific dangerous paths that should never be accessed.
|
|
17
|
-
* Results are cached for performance.
|
|
18
|
-
*
|
|
19
|
-
* @returns Array of dangerous path prefixes
|
|
20
|
-
*/
|
|
21
|
-
export function getDangerousPathsForOS() {
|
|
22
|
-
if (_dangerousPathsCache)
|
|
23
|
-
return _dangerousPathsCache;
|
|
24
|
-
const platform = process.platform;
|
|
25
|
-
// Common dangerous paths (Unix-like)
|
|
26
|
-
const commonPaths = [
|
|
27
|
-
'/etc', '/sys', '/proc', '/dev', '/root', '/boot', '/var',
|
|
28
|
-
'/lib', '/lib64', '/usr/lib', '/usr/local/lib',
|
|
29
|
-
'/bin', '/sbin', '/usr/bin', '/usr/sbin',
|
|
30
|
-
];
|
|
31
|
-
if (platform === 'darwin') {
|
|
32
|
-
_dangerousPathsCache = [
|
|
33
|
-
...commonPaths,
|
|
34
|
-
'/System', '/Library', '/private/etc', '/private/var',
|
|
35
|
-
'/Volumes', '/Applications',
|
|
36
|
-
];
|
|
37
|
-
}
|
|
38
|
-
else if (platform === 'win32') {
|
|
39
|
-
_dangerousPathsCache = [
|
|
40
|
-
'C:\\Windows', 'C:\\Program Files', 'C:\\Program Files (x86)',
|
|
41
|
-
'C:\\ProgramData', 'C:\\System Volume Information', 'C:\\$Recycle.Bin',
|
|
42
|
-
];
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
_dangerousPathsCache = [...commonPaths, '/snap', '/mnt', '/media', '/run'];
|
|
46
|
-
}
|
|
47
|
-
return _dangerousPathsCache;
|
|
48
|
-
}
|
|
49
|
-
// Cache dangerous file patterns (computed once)
|
|
50
|
-
let _dangerousFilePatternsCache = null;
|
|
51
|
-
/**
|
|
52
|
-
* Get dangerous file patterns that should be blocked.
|
|
53
|
-
* Results are cached for performance.
|
|
54
|
-
*
|
|
55
|
-
* @returns Array of dangerous file patterns (strings or regexes)
|
|
56
|
-
*/
|
|
57
|
-
export function getDangerousFilePatterns() {
|
|
58
|
-
if (_dangerousFilePatternsCache)
|
|
59
|
-
return _dangerousFilePatternsCache;
|
|
60
|
-
_dangerousFilePatternsCache = [
|
|
61
|
-
// SSH keys
|
|
62
|
-
/\.ssh\/id_rsa$/, /\.ssh\/id_ed25519$/, /\.ssh\/id_ecdsa$/,
|
|
63
|
-
/\.ssh\/authorized_keys$/, /\.ssh\/known_hosts$/,
|
|
64
|
-
// AWS credentials
|
|
65
|
-
/\.aws\/credentials$/, /\.aws\/config$/,
|
|
66
|
-
// Other credentials
|
|
67
|
-
'.npmrc', '.gitconfig', '.docker/config.json',
|
|
68
|
-
// Shell history
|
|
69
|
-
/\.bash_history$/, /\.zsh_history$/, /\.sh_history$/,
|
|
70
|
-
// Environment files
|
|
71
|
-
/\.env$/, /\.env\.local$/, /\.env\.production$/,
|
|
72
|
-
// System files (Unix)
|
|
73
|
-
'/etc/passwd', '/etc/shadow', '/etc/sudoers', '/etc/hosts', '/etc/ssh/sshd_config',
|
|
74
|
-
];
|
|
75
|
-
return _dangerousFilePatternsCache;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Check if a path matches a dangerous file pattern.
|
|
79
|
-
*
|
|
80
|
-
* @param filePath - Path to check
|
|
81
|
-
* @returns True if file matches dangerous pattern
|
|
82
|
-
*/
|
|
83
|
-
export function isDangerousFile(filePath) {
|
|
84
|
-
const normalized = filePath.replace(/\\/g, '/');
|
|
85
|
-
const patterns = getDangerousFilePatterns();
|
|
86
|
-
return patterns.some(pattern => {
|
|
87
|
-
if (typeof pattern === 'string') {
|
|
88
|
-
return normalized.includes(pattern) || normalized.endsWith(pattern);
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
return pattern.test(normalized);
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Canonicalize a path by resolving symlinks and normalizing.
|
|
97
|
-
*
|
|
98
|
-
* @param filePath - Path to canonicalize
|
|
99
|
-
* @returns Canonicalized path or original if canonicalization fails
|
|
100
|
-
*/
|
|
101
|
-
export async function canonicalizePath(filePath) {
|
|
102
|
-
try {
|
|
103
|
-
// Use fs.realpath to resolve symlinks
|
|
104
|
-
const canonical = await fs.realpath(filePath);
|
|
105
|
-
return canonical;
|
|
106
|
-
}
|
|
107
|
-
catch {
|
|
108
|
-
// If realpath fails (e.g., file doesn't exist), just resolve
|
|
109
|
-
return path.resolve(filePath);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Check if a path contains symlinks in any component.
|
|
114
|
-
*
|
|
115
|
-
* @param filePath - Path to check
|
|
116
|
-
* @returns True if any component is a symlink
|
|
117
|
-
*/
|
|
118
|
-
export async function containsSymlinks(filePath) {
|
|
119
|
-
const resolved = path.resolve(filePath);
|
|
120
|
-
const components = resolved.split(path.sep).filter(c => c);
|
|
121
|
-
let currentPath = path.isAbsolute(filePath) ? path.sep : '.';
|
|
122
|
-
for (const component of components) {
|
|
123
|
-
currentPath = path.join(currentPath, component);
|
|
124
|
-
try {
|
|
125
|
-
const stats = await fs.lstat(currentPath);
|
|
126
|
-
if (stats.isSymbolicLink()) {
|
|
127
|
-
return true;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
catch {
|
|
131
|
-
// If stat fails, path doesn't exist yet - not a symlink
|
|
132
|
-
continue;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
return false;
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Validate a file path for security.
|
|
139
|
-
*
|
|
140
|
-
* Performs comprehensive checks:
|
|
141
|
-
* 1. Canonicalization (resolve symlinks)
|
|
142
|
-
* 2. Allowed root validation
|
|
143
|
-
* 3. Dangerous path blocking
|
|
144
|
-
* 4. Symlink detection
|
|
145
|
-
* 5. Dangerous file detection
|
|
146
|
-
*
|
|
147
|
-
* @param filePath - Path to validate
|
|
148
|
-
* @param options - Validation options
|
|
149
|
-
* @returns Validation result with success status and validated path
|
|
150
|
-
*/
|
|
151
|
-
export async function validatePathSecure(filePath, options = {}) {
|
|
152
|
-
try {
|
|
153
|
-
// 1. Canonicalize path (resolves symlinks)
|
|
154
|
-
const canonical = await canonicalizePath(filePath);
|
|
155
|
-
// 2. Resolve to absolute path
|
|
156
|
-
const resolved = path.resolve(canonical);
|
|
157
|
-
// 3. Check if within allowed directory roots
|
|
158
|
-
const allowedRoots = options.allowedRoots || [
|
|
159
|
-
process.cwd(),
|
|
160
|
-
path.join(os.homedir(), CONFIG_DIR_NAME),
|
|
161
|
-
];
|
|
162
|
-
const isAllowed = allowedRoots.some(root => {
|
|
163
|
-
const normalizedRoot = path.resolve(root);
|
|
164
|
-
return (resolved === normalizedRoot ||
|
|
165
|
-
resolved.startsWith(normalizedRoot + path.sep));
|
|
166
|
-
});
|
|
167
|
-
if (!isAllowed) {
|
|
168
|
-
return {
|
|
169
|
-
success: false,
|
|
170
|
-
error: `Path "${filePath}" is outside allowed directories. Allowed roots: ${allowedRoots.join(', ')}`,
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
// 4. Check for dangerous paths (OS-specific)
|
|
174
|
-
const dangerousPaths = getDangerousPathsForOS();
|
|
175
|
-
for (const dangerous of dangerousPaths) {
|
|
176
|
-
const normalizedDangerous = path.resolve(dangerous);
|
|
177
|
-
if (resolved.startsWith(normalizedDangerous + path.sep) ||
|
|
178
|
-
resolved === normalizedDangerous) {
|
|
179
|
-
return {
|
|
180
|
-
success: false,
|
|
181
|
-
error: `Access to system directory "${dangerous}" denied`,
|
|
182
|
-
};
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
// 5. Check for dangerous files
|
|
186
|
-
if (isDangerousFile(resolved)) {
|
|
187
|
-
return {
|
|
188
|
-
success: false,
|
|
189
|
-
error: `Access to sensitive file denied: "${filePath}"`,
|
|
190
|
-
};
|
|
191
|
-
}
|
|
192
|
-
// 6. Check for symlinks (if not allowed)
|
|
193
|
-
if (!options.allowSymlinks) {
|
|
194
|
-
const hasSymlinks = await containsSymlinks(filePath);
|
|
195
|
-
if (hasSymlinks) {
|
|
196
|
-
return {
|
|
197
|
-
success: false,
|
|
198
|
-
error: `Path contains symlinks: "${filePath}". Symlinks are not allowed for security.`,
|
|
199
|
-
};
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
// 7. Optionally check if path exists
|
|
203
|
-
if (options.checkExists) {
|
|
204
|
-
const exists = await fs.pathExists(resolved);
|
|
205
|
-
if (!exists) {
|
|
206
|
-
return {
|
|
207
|
-
success: false,
|
|
208
|
-
error: `Path does not exist: "${filePath}"`,
|
|
209
|
-
};
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
// All checks passed
|
|
213
|
-
return {
|
|
214
|
-
success: true,
|
|
215
|
-
path: resolved,
|
|
216
|
-
};
|
|
217
|
-
}
|
|
218
|
-
catch (error) {
|
|
219
|
-
return {
|
|
220
|
-
success: false,
|
|
221
|
-
error: `Path validation error: ${error.message}`,
|
|
222
|
-
};
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
/**
|
|
226
|
-
* Synchronous version of validatePathSecure.
|
|
227
|
-
* Less secure (doesn't resolve symlinks), use async version when possible.
|
|
228
|
-
*
|
|
229
|
-
* @param filePath - Path to validate
|
|
230
|
-
* @param options - Validation options
|
|
231
|
-
* @returns Validation result
|
|
232
|
-
*/
|
|
233
|
-
export function validatePathSecureSync(filePath, options = {}) {
|
|
234
|
-
try {
|
|
235
|
-
// Resolve to absolute path (no symlink resolution in sync version)
|
|
236
|
-
const resolved = path.resolve(filePath);
|
|
237
|
-
// Check allowed roots
|
|
238
|
-
const allowedRoots = options.allowedRoots || [
|
|
239
|
-
process.cwd(),
|
|
240
|
-
path.join(os.homedir(), CONFIG_DIR_NAME),
|
|
241
|
-
];
|
|
242
|
-
const isAllowed = allowedRoots.some(root => {
|
|
243
|
-
const normalizedRoot = path.resolve(root);
|
|
244
|
-
return (resolved === normalizedRoot ||
|
|
245
|
-
resolved.startsWith(normalizedRoot + path.sep));
|
|
246
|
-
});
|
|
247
|
-
if (!isAllowed) {
|
|
248
|
-
return {
|
|
249
|
-
success: false,
|
|
250
|
-
error: `Path outside allowed directories`,
|
|
251
|
-
};
|
|
252
|
-
}
|
|
253
|
-
// Check dangerous paths
|
|
254
|
-
const dangerousPaths = getDangerousPathsForOS();
|
|
255
|
-
for (const dangerous of dangerousPaths) {
|
|
256
|
-
const normalizedDangerous = path.resolve(dangerous);
|
|
257
|
-
if (resolved.startsWith(normalizedDangerous + path.sep) ||
|
|
258
|
-
resolved === normalizedDangerous) {
|
|
259
|
-
return {
|
|
260
|
-
success: false,
|
|
261
|
-
error: `Access to system directory denied`,
|
|
262
|
-
};
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
// Check dangerous files
|
|
266
|
-
if (isDangerousFile(resolved)) {
|
|
267
|
-
return {
|
|
268
|
-
success: false,
|
|
269
|
-
error: `Access to sensitive file denied`,
|
|
270
|
-
};
|
|
271
|
-
}
|
|
272
|
-
return {
|
|
273
|
-
success: true,
|
|
274
|
-
path: resolved,
|
|
275
|
-
};
|
|
276
|
-
}
|
|
277
|
-
catch (error) {
|
|
278
|
-
return {
|
|
279
|
-
success: false,
|
|
280
|
-
error: error.message,
|
|
281
|
-
};
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
/**
|
|
285
|
-
* Create a safe path joiner that validates the result.
|
|
286
|
-
*
|
|
287
|
-
* @param basePath - Base directory path
|
|
288
|
-
* @param relativePath - Relative path to join
|
|
289
|
-
* @param options - Validation options
|
|
290
|
-
* @returns Validated joined path or null if invalid
|
|
291
|
-
*/
|
|
292
|
-
export async function safePathJoin(basePath, relativePath, options = {}) {
|
|
293
|
-
const joined = path.join(basePath, relativePath);
|
|
294
|
-
const validation = await validatePathSecure(joined, options);
|
|
295
|
-
if (!validation.success || !validation.path) {
|
|
296
|
-
return null;
|
|
297
|
-
}
|
|
298
|
-
return validation.path;
|
|
299
|
-
}
|
|
300
|
-
//# sourceMappingURL=path-security.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"path-security.js","sourceRoot":"","sources":["../../src/utils/path-security.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cross-platform path utility functions
|
|
3
|
-
*
|
|
4
|
-
* This module provides utilities for handling file paths consistently
|
|
5
|
-
* across different operating systems (Windows, macOS, Linux).
|
|
6
|
-
*
|
|
7
|
-
* @module path-utils
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* Normalize path separators to forward slashes (for display and logging)
|
|
11
|
-
*
|
|
12
|
-
* This function converts all path separators to forward slashes, which is
|
|
13
|
-
* useful for consistent display across platforms and for comparison in tests.
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* // Windows
|
|
17
|
-
* normalizePath('C:\\Users\\foo\\bar') // => 'C:/Users/foo/bar'
|
|
18
|
-
*
|
|
19
|
-
* // Unix
|
|
20
|
-
* normalizePath('/Users/foo/bar') // => '/Users/foo/bar'
|
|
21
|
-
*
|
|
22
|
-
* @param filePath - The path to normalize
|
|
23
|
-
* @returns Path with forward slashes (empty string if input is falsy)
|
|
24
|
-
*/
|
|
25
|
-
export declare function normalizePath(filePath: string): string;
|
|
26
|
-
/**
|
|
27
|
-
* Convert path to platform-native format (for filesystem operations)
|
|
28
|
-
*
|
|
29
|
-
* This function normalizes the path to use the platform's native separator,
|
|
30
|
-
* which is necessary for filesystem operations.
|
|
31
|
-
*
|
|
32
|
-
* @example
|
|
33
|
-
* // Windows
|
|
34
|
-
* platformPath('foo/bar/baz') // => 'foo\\bar\\baz'
|
|
35
|
-
*
|
|
36
|
-
* // Unix
|
|
37
|
-
* platformPath('foo/bar/baz') // => 'foo/bar/baz'
|
|
38
|
-
*
|
|
39
|
-
* @param filePath - The path to convert
|
|
40
|
-
* @returns Path with platform-native separators (empty string if input is falsy)
|
|
41
|
-
*/
|
|
42
|
-
export declare function platformPath(filePath: string): string;
|
|
43
|
-
/**
|
|
44
|
-
* Check if running on Windows
|
|
45
|
-
*
|
|
46
|
-
* @returns True if running on Windows platform
|
|
47
|
-
*/
|
|
48
|
-
export declare function isWindows(): boolean;
|
|
49
|
-
/**
|
|
50
|
-
* Compare two paths for equality (ignoring separator differences)
|
|
51
|
-
*
|
|
52
|
-
* This function compares two paths by normalizing both to forward slashes
|
|
53
|
-
* and then comparing case-insensitively on Windows.
|
|
54
|
-
*
|
|
55
|
-
* @example
|
|
56
|
-
* // Windows
|
|
57
|
-
* pathsEqual('foo/bar', 'foo\\bar') // => true
|
|
58
|
-
* pathsEqual('Foo/Bar', 'foo/bar') // => true
|
|
59
|
-
*
|
|
60
|
-
* // Unix
|
|
61
|
-
* pathsEqual('foo/bar', 'foo/bar') // => true
|
|
62
|
-
* pathsEqual('Foo/Bar', 'foo/bar') // => false
|
|
63
|
-
*
|
|
64
|
-
* @param path1 - First path to compare
|
|
65
|
-
* @param path2 - Second path to compare
|
|
66
|
-
* @returns True if paths are equal
|
|
67
|
-
*/
|
|
68
|
-
export declare function pathsEqual(path1: string, path2: string): boolean;
|
|
69
|
-
/**
|
|
70
|
-
* Check if a path contains a segment (cross-platform)
|
|
71
|
-
*
|
|
72
|
-
* This function checks if a full path contains a specific segment,
|
|
73
|
-
* normalizing both paths before comparison.
|
|
74
|
-
*
|
|
75
|
-
* @example
|
|
76
|
-
* pathContains('/foo/bar/baz', 'bar/baz') // => true
|
|
77
|
-
* pathContains('C:\\foo\\bar', 'bar') // => true
|
|
78
|
-
*
|
|
79
|
-
* @param fullPath - Full path to search in
|
|
80
|
-
* @param segment - Segment to search for
|
|
81
|
-
* @returns True if fullPath contains segment
|
|
82
|
-
*/
|
|
83
|
-
export declare function pathContains(fullPath: string, segment: string): boolean;
|
package/dist/utils/path-utils.js
DELETED
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cross-platform path utility functions
|
|
3
|
-
*
|
|
4
|
-
* This module provides utilities for handling file paths consistently
|
|
5
|
-
* across different operating systems (Windows, macOS, Linux).
|
|
6
|
-
*
|
|
7
|
-
* @module path-utils
|
|
8
|
-
*/
|
|
9
|
-
import path from 'node:path';
|
|
10
|
-
import os from 'node:os';
|
|
11
|
-
import { equalsIgnoreCase, containsIgnoreCase } from './string-utils.js';
|
|
12
|
-
/**
|
|
13
|
-
* Normalize path separators to forward slashes (for display and logging)
|
|
14
|
-
*
|
|
15
|
-
* This function converts all path separators to forward slashes, which is
|
|
16
|
-
* useful for consistent display across platforms and for comparison in tests.
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* // Windows
|
|
20
|
-
* normalizePath('C:\\Users\\foo\\bar') // => 'C:/Users/foo/bar'
|
|
21
|
-
*
|
|
22
|
-
* // Unix
|
|
23
|
-
* normalizePath('/Users/foo/bar') // => '/Users/foo/bar'
|
|
24
|
-
*
|
|
25
|
-
* @param filePath - The path to normalize
|
|
26
|
-
* @returns Path with forward slashes (empty string if input is falsy)
|
|
27
|
-
*/
|
|
28
|
-
export function normalizePath(filePath) {
|
|
29
|
-
if (!filePath)
|
|
30
|
-
return '';
|
|
31
|
-
// Replace all backslashes with forward slashes
|
|
32
|
-
// This works consistently across all platforms
|
|
33
|
-
return filePath.replace(/\\/g, '/');
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Convert path to platform-native format (for filesystem operations)
|
|
37
|
-
*
|
|
38
|
-
* This function normalizes the path to use the platform's native separator,
|
|
39
|
-
* which is necessary for filesystem operations.
|
|
40
|
-
*
|
|
41
|
-
* @example
|
|
42
|
-
* // Windows
|
|
43
|
-
* platformPath('foo/bar/baz') // => 'foo\\bar\\baz'
|
|
44
|
-
*
|
|
45
|
-
* // Unix
|
|
46
|
-
* platformPath('foo/bar/baz') // => 'foo/bar/baz'
|
|
47
|
-
*
|
|
48
|
-
* @param filePath - The path to convert
|
|
49
|
-
* @returns Path with platform-native separators (empty string if input is falsy)
|
|
50
|
-
*/
|
|
51
|
-
export function platformPath(filePath) {
|
|
52
|
-
if (!filePath)
|
|
53
|
-
return '';
|
|
54
|
-
return path.normalize(filePath);
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Check if running on Windows
|
|
58
|
-
*
|
|
59
|
-
* @returns True if running on Windows platform
|
|
60
|
-
*/
|
|
61
|
-
export function isWindows() {
|
|
62
|
-
return os.platform() === 'win32';
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Compare two paths for equality (ignoring separator differences)
|
|
66
|
-
*
|
|
67
|
-
* This function compares two paths by normalizing both to forward slashes
|
|
68
|
-
* and then comparing case-insensitively on Windows.
|
|
69
|
-
*
|
|
70
|
-
* @example
|
|
71
|
-
* // Windows
|
|
72
|
-
* pathsEqual('foo/bar', 'foo\\bar') // => true
|
|
73
|
-
* pathsEqual('Foo/Bar', 'foo/bar') // => true
|
|
74
|
-
*
|
|
75
|
-
* // Unix
|
|
76
|
-
* pathsEqual('foo/bar', 'foo/bar') // => true
|
|
77
|
-
* pathsEqual('Foo/Bar', 'foo/bar') // => false
|
|
78
|
-
*
|
|
79
|
-
* @param path1 - First path to compare
|
|
80
|
-
* @param path2 - Second path to compare
|
|
81
|
-
* @returns True if paths are equal
|
|
82
|
-
*/
|
|
83
|
-
export function pathsEqual(path1, path2) {
|
|
84
|
-
// Handle null/undefined/empty cases
|
|
85
|
-
if (!path1 || !path2) {
|
|
86
|
-
return path1 === path2;
|
|
87
|
-
}
|
|
88
|
-
const normalized1 = normalizePath(path1);
|
|
89
|
-
const normalized2 = normalizePath(path2);
|
|
90
|
-
// Windows is case-insensitive
|
|
91
|
-
if (isWindows()) {
|
|
92
|
-
return equalsIgnoreCase(normalized1, normalized2);
|
|
93
|
-
}
|
|
94
|
-
return normalized1 === normalized2;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Check if a path contains a segment (cross-platform)
|
|
98
|
-
*
|
|
99
|
-
* This function checks if a full path contains a specific segment,
|
|
100
|
-
* normalizing both paths before comparison.
|
|
101
|
-
*
|
|
102
|
-
* @example
|
|
103
|
-
* pathContains('/foo/bar/baz', 'bar/baz') // => true
|
|
104
|
-
* pathContains('C:\\foo\\bar', 'bar') // => true
|
|
105
|
-
*
|
|
106
|
-
* @param fullPath - Full path to search in
|
|
107
|
-
* @param segment - Segment to search for
|
|
108
|
-
* @returns True if fullPath contains segment
|
|
109
|
-
*/
|
|
110
|
-
export function pathContains(fullPath, segment) {
|
|
111
|
-
if (!fullPath || !segment) {
|
|
112
|
-
return false;
|
|
113
|
-
}
|
|
114
|
-
const normalizedFull = normalizePath(fullPath);
|
|
115
|
-
const normalizedSegment = normalizePath(segment);
|
|
116
|
-
// Windows is case-insensitive
|
|
117
|
-
if (isWindows()) {
|
|
118
|
-
return containsIgnoreCase(normalizedFull, normalizedSegment);
|
|
119
|
-
}
|
|
120
|
-
return normalizedFull.includes(normalizedSegment);
|
|
121
|
-
}
|
|
122
|
-
//# sourceMappingURL=path-utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"path-utils.js","sourceRoot":"","sources":["../../src/utils/path-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEzE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzB,+CAA+C;IAC/C,+CAA+C;IAC/C,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzB,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,KAAa;IACrD,oCAAoC;IACpC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO,KAAK,KAAK,KAAK,CAAC;IACzB,CAAC;IAED,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAEzC,8BAA8B;IAC9B,IAAI,SAAS,EAAE,EAAE,CAAC;QAChB,OAAO,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,WAAW,KAAK,WAAW,CAAC;AACrC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,OAAe;IAC5D,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,iBAAiB,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAEjD,8BAA8B;IAC9B,IAAI,SAAS,EAAE,EAAE,CAAC;QAChB,OAAO,kBAAkB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AACpD,CAAC"}
|