maestro-flow 0.3.1 → 0.3.2
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/.claude/commands/maestro-overlay.md +178 -122
- package/.codex/skills/maestro-coordinate/SKILL.md +3 -4
- package/dist/src/commands/launcher.js +1 -1
- package/dist/src/commands/launcher.js.map +1 -1
- package/dist/src/commands/overlay-ui/OverlayList.d.ts +35 -0
- package/dist/src/commands/overlay-ui/OverlayList.d.ts.map +1 -0
- package/dist/src/commands/overlay-ui/OverlayList.js +143 -0
- package/dist/src/commands/overlay-ui/OverlayList.js.map +1 -0
- package/dist/src/commands/overlay-ui/index.d.ts +2 -0
- package/dist/src/commands/overlay-ui/index.d.ts.map +1 -0
- package/dist/src/commands/overlay-ui/index.js +188 -0
- package/dist/src/commands/overlay-ui/index.js.map +1 -0
- package/dist/src/commands/overlay.d.ts.map +1 -1
- package/dist/src/commands/overlay.js +79 -59
- package/dist/src/commands/overlay.js.map +1 -1
- package/dist/src/core/overlay/applier.d.ts +32 -1
- package/dist/src/core/overlay/applier.d.ts.map +1 -1
- package/dist/src/core/overlay/applier.js +109 -1
- package/dist/src/core/overlay/applier.js.map +1 -1
- package/package.json +1 -1
- package/dist/agents/cli-agent-runner.d.ts +0 -131
- package/dist/agents/cli-agent-runner.d.ts.map +0 -1
- package/dist/agents/cli-agent-runner.js +0 -688
- package/dist/agents/cli-agent-runner.js.map +0 -1
- package/dist/agents/cli-history-store.d.ts +0 -63
- package/dist/agents/cli-history-store.d.ts.map +0 -1
- package/dist/agents/cli-history-store.js +0 -242
- package/dist/agents/cli-history-store.js.map +0 -1
- package/dist/agents/dashboard-bridge.d.ts +0 -39
- package/dist/agents/dashboard-bridge.d.ts.map +0 -1
- package/dist/agents/dashboard-bridge.js +0 -76
- package/dist/agents/dashboard-bridge.js.map +0 -1
- package/dist/agents/parallel-cli-runner.d.ts +0 -46
- package/dist/agents/parallel-cli-runner.d.ts.map +0 -1
- package/dist/agents/parallel-cli-runner.js +0 -277
- package/dist/agents/parallel-cli-runner.js.map +0 -1
- package/dist/agents/terminal-adapter.d.ts +0 -94
- package/dist/agents/terminal-adapter.d.ts.map +0 -1
- package/dist/agents/terminal-adapter.js +0 -132
- package/dist/agents/terminal-adapter.js.map +0 -1
- package/dist/agents/terminal-backend.d.ts +0 -53
- package/dist/agents/terminal-backend.d.ts.map +0 -1
- package/dist/agents/terminal-backend.js +0 -286
- package/dist/agents/terminal-backend.js.map +0 -1
- package/dist/async/delegate-broker-client.d.ts +0 -22
- package/dist/async/delegate-broker-client.d.ts.map +0 -1
- package/dist/async/delegate-broker-client.js +0 -47
- package/dist/async/delegate-broker-client.js.map +0 -1
- package/dist/async/delegate-broker.d.ts +0 -180
- package/dist/async/delegate-broker.d.ts.map +0 -1
- package/dist/async/delegate-broker.js +0 -1040
- package/dist/async/delegate-broker.js.map +0 -1
- package/dist/async/delegate-control.d.ts +0 -37
- package/dist/async/delegate-control.d.ts.map +0 -1
- package/dist/async/delegate-control.js +0 -155
- package/dist/async/delegate-control.js.map +0 -1
- package/dist/async/index.d.ts +0 -3
- package/dist/async/index.d.ts.map +0 -1
- package/dist/async/index.js +0 -3
- package/dist/async/index.js.map +0 -1
- package/dist/cli.d.ts +0 -2
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -40
- package/dist/cli.js.map +0 -1
- package/dist/commands/cli.d.ts +0 -3
- package/dist/commands/cli.d.ts.map +0 -1
- package/dist/commands/cli.js +0 -262
- package/dist/commands/cli.js.map +0 -1
- package/dist/commands/coordinate.d.ts +0 -3
- package/dist/commands/coordinate.d.ts.map +0 -1
- package/dist/commands/coordinate.js +0 -275
- package/dist/commands/coordinate.js.map +0 -1
- package/dist/commands/delegate.d.ts +0 -37
- package/dist/commands/delegate.d.ts.map +0 -1
- package/dist/commands/delegate.js +0 -470
- package/dist/commands/delegate.js.map +0 -1
- package/dist/commands/ext.d.ts +0 -3
- package/dist/commands/ext.d.ts.map +0 -1
- package/dist/commands/ext.js +0 -28
- package/dist/commands/ext.js.map +0 -1
- package/dist/commands/hooks.d.ts +0 -3
- package/dist/commands/hooks.d.ts.map +0 -1
- package/dist/commands/hooks.js +0 -126
- package/dist/commands/hooks.js.map +0 -1
- package/dist/commands/install.d.ts +0 -3
- package/dist/commands/install.d.ts.map +0 -1
- package/dist/commands/install.js +0 -621
- package/dist/commands/install.js.map +0 -1
- package/dist/commands/launcher.d.ts +0 -3
- package/dist/commands/launcher.d.ts.map +0 -1
- package/dist/commands/launcher.js +0 -635
- package/dist/commands/launcher.js.map +0 -1
- package/dist/commands/link-coordinate.d.ts +0 -3
- package/dist/commands/link-coordinate.d.ts.map +0 -1
- package/dist/commands/link-coordinate.js +0 -225
- package/dist/commands/link-coordinate.js.map +0 -1
- package/dist/commands/msg.d.ts +0 -3
- package/dist/commands/msg.d.ts.map +0 -1
- package/dist/commands/msg.js +0 -110
- package/dist/commands/msg.js.map +0 -1
- package/dist/commands/overlay.d.ts +0 -3
- package/dist/commands/overlay.d.ts.map +0 -1
- package/dist/commands/overlay.js +0 -243
- package/dist/commands/overlay.js.map +0 -1
- package/dist/commands/run.d.ts +0 -3
- package/dist/commands/run.d.ts.map +0 -1
- package/dist/commands/run.js +0 -15
- package/dist/commands/run.js.map +0 -1
- package/dist/commands/serve.d.ts +0 -3
- package/dist/commands/serve.d.ts.map +0 -1
- package/dist/commands/serve.js +0 -16
- package/dist/commands/serve.js.map +0 -1
- package/dist/commands/spec.d.ts +0 -8
- package/dist/commands/spec.d.ts.map +0 -1
- package/dist/commands/spec.js +0 -147
- package/dist/commands/spec.js.map +0 -1
- package/dist/commands/stop.d.ts +0 -3
- package/dist/commands/stop.d.ts.map +0 -1
- package/dist/commands/stop.js +0 -218
- package/dist/commands/stop.js.map +0 -1
- package/dist/commands/tool.d.ts +0 -3
- package/dist/commands/tool.d.ts.map +0 -1
- package/dist/commands/tool.js +0 -29
- package/dist/commands/tool.js.map +0 -1
- package/dist/commands/uninstall.d.ts +0 -3
- package/dist/commands/uninstall.d.ts.map +0 -1
- package/dist/commands/uninstall.js +0 -77
- package/dist/commands/uninstall.js.map +0 -1
- package/dist/commands/view.d.ts +0 -3
- package/dist/commands/view.d.ts.map +0 -1
- package/dist/commands/view.js +0 -337
- package/dist/commands/view.js.map +0 -1
- package/dist/config/cli-tools-config.d.ts +0 -26
- package/dist/config/cli-tools-config.d.ts.map +0 -1
- package/dist/config/cli-tools-config.js +0 -49
- package/dist/config/cli-tools-config.js.map +0 -1
- package/dist/config/cli-tools-config.test.d.ts +0 -2
- package/dist/config/cli-tools-config.test.d.ts.map +0 -1
- package/dist/config/cli-tools-config.test.js +0 -59
- package/dist/config/cli-tools-config.test.js.map +0 -1
- package/dist/config/index.d.ts +0 -4
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -27
- package/dist/config/index.js.map +0 -1
- package/dist/config/paths.d.ts +0 -15
- package/dist/config/paths.d.ts.map +0 -1
- package/dist/config/paths.js +0 -27
- package/dist/config/paths.js.map +0 -1
- package/dist/config/template-discovery.d.ts +0 -32
- package/dist/config/template-discovery.d.ts.map +0 -1
- package/dist/config/template-discovery.js +0 -128
- package/dist/config/template-discovery.js.map +0 -1
- package/dist/coordinator/cli-executor.d.ts +0 -22
- package/dist/coordinator/cli-executor.d.ts.map +0 -1
- package/dist/coordinator/cli-executor.js +0 -49
- package/dist/coordinator/cli-executor.js.map +0 -1
- package/dist/coordinator/expr-evaluator.d.ts +0 -11
- package/dist/coordinator/expr-evaluator.d.ts.map +0 -1
- package/dist/coordinator/expr-evaluator.js +0 -351
- package/dist/coordinator/expr-evaluator.js.map +0 -1
- package/dist/coordinator/graph-loader.d.ts +0 -16
- package/dist/coordinator/graph-loader.d.ts.map +0 -1
- package/dist/coordinator/graph-loader.js +0 -190
- package/dist/coordinator/graph-loader.js.map +0 -1
- package/dist/coordinator/graph-types.d.ts +0 -304
- package/dist/coordinator/graph-types.d.ts.map +0 -1
- package/dist/coordinator/graph-types.js +0 -6
- package/dist/coordinator/graph-types.js.map +0 -1
- package/dist/coordinator/graph-walker.d.ts +0 -51
- package/dist/coordinator/graph-walker.d.ts.map +0 -1
- package/dist/coordinator/graph-walker.js +0 -666
- package/dist/coordinator/graph-walker.js.map +0 -1
- package/dist/coordinator/index.d.ts +0 -13
- package/dist/coordinator/index.d.ts.map +0 -1
- package/dist/coordinator/index.js +0 -14
- package/dist/coordinator/index.js.map +0 -1
- package/dist/coordinator/intent-router.d.ts +0 -11
- package/dist/coordinator/intent-router.d.ts.map +0 -1
- package/dist/coordinator/intent-router.js +0 -65
- package/dist/coordinator/intent-router.js.map +0 -1
- package/dist/coordinator/link-session.d.ts +0 -29
- package/dist/coordinator/link-session.d.ts.map +0 -1
- package/dist/coordinator/link-session.js +0 -192
- package/dist/coordinator/link-session.js.map +0 -1
- package/dist/coordinator/link-walker.d.ts +0 -56
- package/dist/coordinator/link-walker.d.ts.map +0 -1
- package/dist/coordinator/link-walker.js +0 -548
- package/dist/coordinator/link-walker.js.map +0 -1
- package/dist/coordinator/output-parser.d.ts +0 -5
- package/dist/coordinator/output-parser.d.ts.map +0 -1
- package/dist/coordinator/output-parser.js +0 -114
- package/dist/coordinator/output-parser.js.map +0 -1
- package/dist/coordinator/parallel-executor.d.ts +0 -24
- package/dist/coordinator/parallel-executor.d.ts.map +0 -1
- package/dist/coordinator/parallel-executor.js +0 -43
- package/dist/coordinator/parallel-executor.js.map +0 -1
- package/dist/coordinator/prompt-assembler.d.ts +0 -15
- package/dist/coordinator/prompt-assembler.d.ts.map +0 -1
- package/dist/coordinator/prompt-assembler.js +0 -228
- package/dist/coordinator/prompt-assembler.js.map +0 -1
- package/dist/coordinator/step-analyzer.d.ts +0 -8
- package/dist/coordinator/step-analyzer.d.ts.map +0 -1
- package/dist/coordinator/step-analyzer.js +0 -82
- package/dist/coordinator/step-analyzer.js.map +0 -1
- package/dist/core/extension-loader.d.ts +0 -11
- package/dist/core/extension-loader.d.ts.map +0 -1
- package/dist/core/extension-loader.js +0 -54
- package/dist/core/extension-loader.js.map +0 -1
- package/dist/core/manifest.d.ts +0 -24
- package/dist/core/manifest.d.ts.map +0 -1
- package/dist/core/manifest.js +0 -139
- package/dist/core/manifest.js.map +0 -1
- package/dist/core/mcp-tool-registry.integration.test.d.ts +0 -2
- package/dist/core/mcp-tool-registry.integration.test.d.ts.map +0 -1
- package/dist/core/mcp-tool-registry.integration.test.js +0 -220
- package/dist/core/mcp-tool-registry.integration.test.js.map +0 -1
- package/dist/core/overlay/applier.d.ts +0 -73
- package/dist/core/overlay/applier.d.ts.map +0 -1
- package/dist/core/overlay/applier.js +0 -248
- package/dist/core/overlay/applier.js.map +0 -1
- package/dist/core/overlay/loader.d.ts +0 -26
- package/dist/core/overlay/loader.d.ts.map +0 -1
- package/dist/core/overlay/loader.js +0 -199
- package/dist/core/overlay/loader.js.map +0 -1
- package/dist/core/overlay/patcher.d.ts +0 -26
- package/dist/core/overlay/patcher.d.ts.map +0 -1
- package/dist/core/overlay/patcher.js +0 -212
- package/dist/core/overlay/patcher.js.map +0 -1
- package/dist/core/overlay/section-parser.d.ts +0 -25
- package/dist/core/overlay/section-parser.d.ts.map +0 -1
- package/dist/core/overlay/section-parser.js +0 -99
- package/dist/core/overlay/section-parser.js.map +0 -1
- package/dist/core/overlay/types.d.ts +0 -51
- package/dist/core/overlay/types.d.ts.map +0 -1
- package/dist/core/overlay/types.js +0 -15
- package/dist/core/overlay/types.js.map +0 -1
- package/dist/core/tool-registry.d.ts +0 -10
- package/dist/core/tool-registry.d.ts.map +0 -1
- package/dist/core/tool-registry.js +0 -29
- package/dist/core/tool-registry.js.map +0 -1
- package/dist/core/tool-registry.test.d.ts +0 -2
- package/dist/core/tool-registry.test.d.ts.map +0 -1
- package/dist/core/tool-registry.test.js +0 -78
- package/dist/core/tool-registry.test.js.map +0 -1
- package/dist/db/connection-pool.d.ts +0 -21
- package/dist/db/connection-pool.d.ts.map +0 -1
- package/dist/db/connection-pool.js +0 -53
- package/dist/db/connection-pool.js.map +0 -1
- package/dist/db/index.d.ts +0 -6
- package/dist/db/index.d.ts.map +0 -1
- package/dist/db/index.js +0 -9
- package/dist/db/index.js.map +0 -1
- package/dist/db/schema/core/index.d.ts +0 -5
- package/dist/db/schema/core/index.d.ts.map +0 -1
- package/dist/db/schema/core/index.js +0 -5
- package/dist/db/schema/core/index.js.map +0 -1
- package/dist/db/schema/core/organizations.d.ts +0 -244
- package/dist/db/schema/core/organizations.d.ts.map +0 -1
- package/dist/db/schema/core/organizations.js +0 -44
- package/dist/db/schema/core/organizations.js.map +0 -1
- package/dist/db/schema/core/permissions.d.ts +0 -158
- package/dist/db/schema/core/permissions.d.ts.map +0 -1
- package/dist/db/schema/core/permissions.js +0 -62
- package/dist/db/schema/core/permissions.js.map +0 -1
- package/dist/db/schema/core/refresh-tokens.d.ts +0 -147
- package/dist/db/schema/core/refresh-tokens.d.ts.map +0 -1
- package/dist/db/schema/core/refresh-tokens.js +0 -22
- package/dist/db/schema/core/refresh-tokens.js.map +0 -1
- package/dist/db/schema/core/users.d.ts +0 -178
- package/dist/db/schema/core/users.d.ts.map +0 -1
- package/dist/db/schema/core/users.js +0 -14
- package/dist/db/schema/core/users.js.map +0 -1
- package/dist/db/tenant-migrator.d.ts +0 -11
- package/dist/db/tenant-migrator.d.ts.map +0 -1
- package/dist/db/tenant-migrator.js +0 -74
- package/dist/db/tenant-migrator.js.map +0 -1
- package/dist/db/tenant-schema.d.ts +0 -290
- package/dist/db/tenant-schema.d.ts.map +0 -1
- package/dist/db/tenant-schema.js +0 -32
- package/dist/db/tenant-schema.js.map +0 -1
- package/dist/hooks/constants.d.ts +0 -40
- package/dist/hooks/constants.d.ts.map +0 -1
- package/dist/hooks/constants.js +0 -53
- package/dist/hooks/constants.js.map +0 -1
- package/dist/hooks/context-monitor.d.ts +0 -33
- package/dist/hooks/context-monitor.d.ts.map +0 -1
- package/dist/hooks/context-monitor.js +0 -117
- package/dist/hooks/context-monitor.js.map +0 -1
- package/dist/hooks/delegate-monitor.d.ts +0 -24
- package/dist/hooks/delegate-monitor.d.ts.map +0 -1
- package/dist/hooks/delegate-monitor.js +0 -76
- package/dist/hooks/delegate-monitor.js.map +0 -1
- package/dist/hooks/index.d.ts +0 -4
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/hooks/index.js +0 -4
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/statusline.d.ts +0 -29
- package/dist/hooks/statusline.d.ts.map +0 -1
- package/dist/hooks/statusline.js +0 -134
- package/dist/hooks/statusline.js.map +0 -1
- package/dist/index.d.ts +0 -8
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -6
- package/dist/index.js.map +0 -1
- package/dist/mcp/delegate-channel-relay.d.ts +0 -51
- package/dist/mcp/delegate-channel-relay.d.ts.map +0 -1
- package/dist/mcp/delegate-channel-relay.js +0 -307
- package/dist/mcp/delegate-channel-relay.js.map +0 -1
- package/dist/mcp/server.d.ts +0 -6
- package/dist/mcp/server.d.ts.map +0 -1
- package/dist/mcp/server.js +0 -64
- package/dist/mcp/server.js.map +0 -1
- package/dist/middleware/auth.d.ts +0 -13
- package/dist/middleware/auth.d.ts.map +0 -1
- package/dist/middleware/auth.js +0 -27
- package/dist/middleware/auth.js.map +0 -1
- package/dist/middleware/permission.d.ts +0 -9
- package/dist/middleware/permission.d.ts.map +0 -1
- package/dist/middleware/permission.js +0 -19
- package/dist/middleware/permission.js.map +0 -1
- package/dist/middleware/rate-limit.d.ts +0 -9
- package/dist/middleware/rate-limit.d.ts.map +0 -1
- package/dist/middleware/rate-limit.js +0 -40
- package/dist/middleware/rate-limit.js.map +0 -1
- package/dist/middleware/tenant.d.ts +0 -17
- package/dist/middleware/tenant.d.ts.map +0 -1
- package/dist/middleware/tenant.js +0 -57
- package/dist/middleware/tenant.js.map +0 -1
- package/dist/middleware/validation.d.ts +0 -40
- package/dist/middleware/validation.d.ts.map +0 -1
- package/dist/middleware/validation.js +0 -51
- package/dist/middleware/validation.js.map +0 -1
- package/dist/routes/auth.d.ts +0 -3
- package/dist/routes/auth.d.ts.map +0 -1
- package/dist/routes/auth.js +0 -77
- package/dist/routes/auth.js.map +0 -1
- package/dist/routes/members.d.ts +0 -4
- package/dist/routes/members.d.ts.map +0 -1
- package/dist/routes/members.js +0 -114
- package/dist/routes/members.js.map +0 -1
- package/dist/routes/organizations.d.ts +0 -5
- package/dist/routes/organizations.d.ts.map +0 -1
- package/dist/routes/organizations.js +0 -97
- package/dist/routes/organizations.js.map +0 -1
- package/dist/services/auth.service.d.ts +0 -24
- package/dist/services/auth.service.d.ts.map +0 -1
- package/dist/services/auth.service.js +0 -70
- package/dist/services/auth.service.js.map +0 -1
- package/dist/services/password.service.d.ts +0 -3
- package/dist/services/password.service.d.ts.map +0 -1
- package/dist/services/password.service.js +0 -18
- package/dist/services/password.service.js.map +0 -1
- package/dist/services/rbac.service.d.ts +0 -7
- package/dist/services/rbac.service.d.ts.map +0 -1
- package/dist/services/rbac.service.js +0 -36
- package/dist/services/rbac.service.js.map +0 -1
- package/dist/services/token.service.d.ts +0 -18
- package/dist/services/token.service.d.ts.map +0 -1
- package/dist/services/token.service.js +0 -86
- package/dist/services/token.service.js.map +0 -1
- package/dist/tools/core-memory.d.ts +0 -12
- package/dist/tools/core-memory.d.ts.map +0 -1
- package/dist/tools/core-memory.js +0 -276
- package/dist/tools/core-memory.js.map +0 -1
- package/dist/tools/edit-file.d.ts +0 -25
- package/dist/tools/edit-file.d.ts.map +0 -1
- package/dist/tools/edit-file.js +0 -462
- package/dist/tools/edit-file.js.map +0 -1
- package/dist/tools/index.d.ts +0 -8
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/index.js +0 -536
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/read-file.d.ts +0 -13
- package/dist/tools/read-file.d.ts.map +0 -1
- package/dist/tools/read-file.js +0 -91
- package/dist/tools/read-file.js.map +0 -1
- package/dist/tools/read-many-files.d.ts +0 -15
- package/dist/tools/read-many-files.d.ts.map +0 -1
- package/dist/tools/read-many-files.js +0 -187
- package/dist/tools/read-many-files.js.map +0 -1
- package/dist/tools/spec-index-builder.d.ts +0 -58
- package/dist/tools/spec-index-builder.d.ts.map +0 -1
- package/dist/tools/spec-index-builder.js +0 -211
- package/dist/tools/spec-index-builder.js.map +0 -1
- package/dist/tools/spec-init.d.ts +0 -17
- package/dist/tools/spec-init.d.ts.map +0 -1
- package/dist/tools/spec-init.js +0 -215
- package/dist/tools/spec-init.js.map +0 -1
- package/dist/tools/spec-keyword-extractor.d.ts +0 -24
- package/dist/tools/spec-keyword-extractor.d.ts.map +0 -1
- package/dist/tools/spec-keyword-extractor.js +0 -84
- package/dist/tools/spec-keyword-extractor.js.map +0 -1
- package/dist/tools/spec-keyword-extractor.test.d.ts +0 -2
- package/dist/tools/spec-keyword-extractor.test.d.ts.map +0 -1
- package/dist/tools/spec-keyword-extractor.test.js +0 -99
- package/dist/tools/spec-keyword-extractor.test.js.map +0 -1
- package/dist/tools/spec-loader.d.ts +0 -15
- package/dist/tools/spec-loader.d.ts.map +0 -1
- package/dist/tools/spec-loader.js +0 -93
- package/dist/tools/spec-loader.js.map +0 -1
- package/dist/tools/team-msg.d.ts +0 -52
- package/dist/tools/team-msg.d.ts.map +0 -1
- package/dist/tools/team-msg.js +0 -449
- package/dist/tools/team-msg.js.map +0 -1
- package/dist/tools/write-file.d.ts +0 -19
- package/dist/tools/write-file.d.ts.map +0 -1
- package/dist/tools/write-file.js +0 -165
- package/dist/tools/write-file.js.map +0 -1
- package/dist/types/index.d.ts +0 -47
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -2
- package/dist/types/index.js.map +0 -1
- package/dist/types/tool-schema.d.ts +0 -37
- package/dist/types/tool-schema.d.ts.map +0 -1
- package/dist/types/tool-schema.js +0 -24
- package/dist/types/tool-schema.js.map +0 -1
- package/dist/utils/file-reader.d.ts +0 -74
- package/dist/utils/file-reader.d.ts.map +0 -1
- package/dist/utils/file-reader.js +0 -217
- package/dist/utils/file-reader.js.map +0 -1
- package/dist/utils/path-validator.d.ts +0 -52
- package/dist/utils/path-validator.d.ts.map +0 -1
- package/dist/utils/path-validator.js +0 -151
- package/dist/utils/path-validator.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"write-file.js","sourceRoot":"","sources":["../../src/tools/write-file.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
export interface MaestroConfig {
|
|
2
|
-
version: string;
|
|
3
|
-
extensions: ExtensionConfig[];
|
|
4
|
-
mcp: McpConfig;
|
|
5
|
-
workflows: WorkflowConfig;
|
|
6
|
-
}
|
|
7
|
-
export interface ExtensionConfig {
|
|
8
|
-
name: string;
|
|
9
|
-
enabled: boolean;
|
|
10
|
-
path: string;
|
|
11
|
-
config?: Record<string, unknown>;
|
|
12
|
-
}
|
|
13
|
-
export interface McpConfig {
|
|
14
|
-
port: number;
|
|
15
|
-
host: string;
|
|
16
|
-
enabledTools: string[];
|
|
17
|
-
}
|
|
18
|
-
export interface WorkflowConfig {
|
|
19
|
-
templatesDir: string;
|
|
20
|
-
workflowsDir: string;
|
|
21
|
-
}
|
|
22
|
-
export interface Tool {
|
|
23
|
-
name: string;
|
|
24
|
-
description: string;
|
|
25
|
-
inputSchema: Record<string, unknown>;
|
|
26
|
-
handler: (input: Record<string, unknown>) => Promise<ToolResult>;
|
|
27
|
-
}
|
|
28
|
-
export interface ToolResult {
|
|
29
|
-
content: Array<{
|
|
30
|
-
type: string;
|
|
31
|
-
text: string;
|
|
32
|
-
}>;
|
|
33
|
-
isError?: boolean;
|
|
34
|
-
}
|
|
35
|
-
export interface Extension {
|
|
36
|
-
name: string;
|
|
37
|
-
version: string;
|
|
38
|
-
tools?: Tool[];
|
|
39
|
-
activate: (ctx: ExtensionContext) => Promise<void>;
|
|
40
|
-
deactivate?: () => Promise<void>;
|
|
41
|
-
}
|
|
42
|
-
export interface ExtensionContext {
|
|
43
|
-
registerTool: (tool: Tool) => void;
|
|
44
|
-
config: Record<string, unknown>;
|
|
45
|
-
log: (msg: string) => void;
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,GAAG,EAAE,SAAS,CAAC;IACf,SAAS,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CAClE;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,QAAQ,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B"}
|
package/dist/types/index.js
DELETED
package/dist/types/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CCW-style Tool Schema & Result types
|
|
3
|
-
*
|
|
4
|
-
* Used by ported CCW tools that follow the { schema, handler } export pattern.
|
|
5
|
-
* The adapter function converts CCW ToolResult → maestro ToolResult.
|
|
6
|
-
*/
|
|
7
|
-
export interface ToolSchema {
|
|
8
|
-
name: string;
|
|
9
|
-
description: string;
|
|
10
|
-
inputSchema: {
|
|
11
|
-
type: 'object';
|
|
12
|
-
properties: Record<string, unknown>;
|
|
13
|
-
required?: string[];
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
export interface CcwToolResult<T = unknown> {
|
|
17
|
-
success: boolean;
|
|
18
|
-
result?: T;
|
|
19
|
-
error?: string;
|
|
20
|
-
}
|
|
21
|
-
export type CcwToolHandler<TParams = Record<string, unknown>, TResult = unknown> = (params: TParams) => Promise<CcwToolResult<TResult>>;
|
|
22
|
-
export interface CcwToolRegistration<TParams = Record<string, unknown>> {
|
|
23
|
-
schema: ToolSchema;
|
|
24
|
-
handler: CcwToolHandler<TParams>;
|
|
25
|
-
}
|
|
26
|
-
export interface McpToolResult {
|
|
27
|
-
content: Array<{
|
|
28
|
-
type: string;
|
|
29
|
-
text: string;
|
|
30
|
-
}>;
|
|
31
|
-
isError?: boolean;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Convert CCW-style ToolResult to maestro MCP ToolResult
|
|
35
|
-
*/
|
|
36
|
-
export declare function ccwResultToMcp(ccwResult: CcwToolResult): McpToolResult;
|
|
37
|
-
//# sourceMappingURL=tool-schema.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool-schema.d.ts","sourceRoot":"","sources":["../../src/types/tool-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAGD,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,OAAO;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,MAAM,cAAc,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,IAC7E,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AAGvD,MAAM,WAAW,mBAAmB,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACpE,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;CAClC;AAGD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,aAAa,GAAG,aAAa,CAYtE"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CCW-style Tool Schema & Result types
|
|
3
|
-
*
|
|
4
|
-
* Used by ported CCW tools that follow the { schema, handler } export pattern.
|
|
5
|
-
* The adapter function converts CCW ToolResult → maestro ToolResult.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Convert CCW-style ToolResult to maestro MCP ToolResult
|
|
9
|
-
*/
|
|
10
|
-
export function ccwResultToMcp(ccwResult) {
|
|
11
|
-
if (ccwResult.success) {
|
|
12
|
-
const text = typeof ccwResult.result === 'string'
|
|
13
|
-
? ccwResult.result
|
|
14
|
-
: JSON.stringify(ccwResult.result, null, 2);
|
|
15
|
-
return { content: [{ type: 'text', text }] };
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
return {
|
|
19
|
-
content: [{ type: 'text', text: ccwResult.error || 'Unknown error' }],
|
|
20
|
-
isError: true,
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=tool-schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool-schema.js","sourceRoot":"","sources":["../../src/types/tool-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoCH;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,SAAwB;IACrD,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ;YAC/C,CAAC,CAAC,SAAS,CAAC,MAAM;YAClB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC;YACrE,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared file reading utilities
|
|
3
|
-
*
|
|
4
|
-
* Extracted from read-file.ts for reuse across read_file and read_many_files tools.
|
|
5
|
-
*/
|
|
6
|
-
export declare const MAX_CONTENT_LENGTH = 5000;
|
|
7
|
-
export declare const MAX_FILES = 50;
|
|
8
|
-
export declare const MAX_TOTAL_CONTENT = 50000;
|
|
9
|
-
export declare const BINARY_EXTENSIONS: Set<string>;
|
|
10
|
-
export interface FileEntry {
|
|
11
|
-
path: string;
|
|
12
|
-
size: number;
|
|
13
|
-
content?: string;
|
|
14
|
-
truncated?: boolean;
|
|
15
|
-
matches?: string[];
|
|
16
|
-
totalLines?: number;
|
|
17
|
-
lineRange?: {
|
|
18
|
-
start: number;
|
|
19
|
-
end: number;
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
export interface ReadContentOptions {
|
|
23
|
-
maxLength: number;
|
|
24
|
-
offset?: number;
|
|
25
|
-
limit?: number;
|
|
26
|
-
}
|
|
27
|
-
export interface ReadContentResult {
|
|
28
|
-
content: string;
|
|
29
|
-
truncated: boolean;
|
|
30
|
-
totalLines?: number;
|
|
31
|
-
lineRange?: {
|
|
32
|
-
start: number;
|
|
33
|
-
end: number;
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
export interface ReadResult {
|
|
37
|
-
files: FileEntry[];
|
|
38
|
-
totalFiles: number;
|
|
39
|
-
message: string;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Check if file is likely binary
|
|
43
|
-
*/
|
|
44
|
-
export declare function isBinaryFile(filePath: string): boolean;
|
|
45
|
-
/**
|
|
46
|
-
* Convert glob pattern to regex
|
|
47
|
-
* Supports: *, ?, and brace expansion {a,b,c}
|
|
48
|
-
*/
|
|
49
|
-
export declare function globToRegex(pattern: string): RegExp;
|
|
50
|
-
/**
|
|
51
|
-
* Check if filename matches glob pattern
|
|
52
|
-
*/
|
|
53
|
-
export declare function matchesPattern(filename: string, pattern: string): boolean;
|
|
54
|
-
/**
|
|
55
|
-
* Recursively collect files from directory
|
|
56
|
-
*/
|
|
57
|
-
export declare function collectFiles(dir: string, pattern: string | undefined, maxDepth: number, currentDepth?: number): string[];
|
|
58
|
-
/**
|
|
59
|
-
* Read file content with truncation and optional line-based pagination
|
|
60
|
-
*/
|
|
61
|
-
export declare function readFileContent(filePath: string, options: ReadContentOptions): ReadContentResult;
|
|
62
|
-
/**
|
|
63
|
-
* Find regex matches in content with safety protections
|
|
64
|
-
* - Empty string pattern = "match all" (no filtering) - returns null
|
|
65
|
-
* - Dangerous patterns (zero-width matches) = "match all" for safety - returns null
|
|
66
|
-
* - Validates pattern to prevent infinite loops
|
|
67
|
-
* - Limits iterations to prevent ReDoS attacks
|
|
68
|
-
* - Deduplicates results to prevent duplicates
|
|
69
|
-
* - Reports errors instead of silent failure
|
|
70
|
-
*
|
|
71
|
-
* @returns Array of matching lines, null to match all content (empty string or dangerous pattern), empty array for no matches
|
|
72
|
-
*/
|
|
73
|
-
export declare function findMatches(content: string, pattern: string): string[] | null;
|
|
74
|
-
//# sourceMappingURL=file-reader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-reader.d.ts","sourceRoot":"","sources":["../../src/utils/file-reader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,eAAO,MAAM,SAAS,KAAK,CAAC;AAE5B,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AAGvC,eAAO,MAAM,iBAAiB,aAQ5B,CAAC;AAEH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5C;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5C;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGtD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAsBnD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAGzE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,QAAQ,EAAE,MAAM,EAChB,YAAY,GAAE,MAAU,GACvB,MAAM,EAAE,CA2BV;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,iBAAiB,CAkDhG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAyE7E"}
|
|
@@ -1,217 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared file reading utilities
|
|
3
|
-
*
|
|
4
|
-
* Extracted from read-file.ts for reuse across read_file and read_many_files tools.
|
|
5
|
-
*/
|
|
6
|
-
import { readFileSync, readdirSync } from 'fs';
|
|
7
|
-
import { join, extname } from 'path';
|
|
8
|
-
// Max content per file (truncate if larger)
|
|
9
|
-
export const MAX_CONTENT_LENGTH = 5000;
|
|
10
|
-
// Max files to return
|
|
11
|
-
export const MAX_FILES = 50;
|
|
12
|
-
// Max total content length
|
|
13
|
-
export const MAX_TOTAL_CONTENT = 50000;
|
|
14
|
-
// Common binary extensions to skip
|
|
15
|
-
export const BINARY_EXTENSIONS = new Set([
|
|
16
|
-
'.png', '.jpg', '.jpeg', '.gif', '.bmp', '.ico', '.webp', '.svg',
|
|
17
|
-
'.pdf', '.doc', '.docx', '.xls', '.xlsx', '.ppt', '.pptx',
|
|
18
|
-
'.zip', '.tar', '.gz', '.rar', '.7z',
|
|
19
|
-
'.exe', '.dll', '.so', '.dylib',
|
|
20
|
-
'.mp3', '.mp4', '.wav', '.avi', '.mov',
|
|
21
|
-
'.woff', '.woff2', '.ttf', '.eot', '.otf',
|
|
22
|
-
'.pyc', '.class', '.o', '.obj',
|
|
23
|
-
]);
|
|
24
|
-
/**
|
|
25
|
-
* Check if file is likely binary
|
|
26
|
-
*/
|
|
27
|
-
export function isBinaryFile(filePath) {
|
|
28
|
-
const ext = extname(filePath).toLowerCase();
|
|
29
|
-
return BINARY_EXTENSIONS.has(ext);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Convert glob pattern to regex
|
|
33
|
-
* Supports: *, ?, and brace expansion {a,b,c}
|
|
34
|
-
*/
|
|
35
|
-
export function globToRegex(pattern) {
|
|
36
|
-
// Handle brace expansion: *.{md,json,ts} -> (?:.*\.md|.*\.json|.*\.ts)
|
|
37
|
-
const braceMatch = pattern.match(/^(.*)\{([^}]+)\}(.*)$/);
|
|
38
|
-
if (braceMatch) {
|
|
39
|
-
const [, prefix, options, suffix] = braceMatch;
|
|
40
|
-
const optionList = options.split(',').map(opt => `${prefix}${opt}${suffix}`);
|
|
41
|
-
// Create a regex that matches any of the expanded patterns
|
|
42
|
-
const expandedPatterns = optionList.map(opt => {
|
|
43
|
-
return opt
|
|
44
|
-
.replace(/[.+^${}()|[\]\\]/g, '\\$&')
|
|
45
|
-
.replace(/\*/g, '.*')
|
|
46
|
-
.replace(/\?/g, '.');
|
|
47
|
-
});
|
|
48
|
-
return new RegExp(`^(?:${expandedPatterns.join('|')})$`, 'i');
|
|
49
|
-
}
|
|
50
|
-
// Standard glob conversion
|
|
51
|
-
const escaped = pattern
|
|
52
|
-
.replace(/[.+^${}()|[\]\\]/g, '\\$&')
|
|
53
|
-
.replace(/\*/g, '.*')
|
|
54
|
-
.replace(/\?/g, '.');
|
|
55
|
-
return new RegExp(`^${escaped}$`, 'i');
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Check if filename matches glob pattern
|
|
59
|
-
*/
|
|
60
|
-
export function matchesPattern(filename, pattern) {
|
|
61
|
-
const regex = globToRegex(pattern);
|
|
62
|
-
return regex.test(filename);
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Recursively collect files from directory
|
|
66
|
-
*/
|
|
67
|
-
export function collectFiles(dir, pattern, maxDepth, currentDepth = 0) {
|
|
68
|
-
if (currentDepth > maxDepth)
|
|
69
|
-
return [];
|
|
70
|
-
const files = [];
|
|
71
|
-
try {
|
|
72
|
-
const entries = readdirSync(dir, { withFileTypes: true });
|
|
73
|
-
for (const entry of entries) {
|
|
74
|
-
// Skip hidden files/dirs and node_modules
|
|
75
|
-
if (entry.name.startsWith('.') || entry.name === 'node_modules')
|
|
76
|
-
continue;
|
|
77
|
-
const fullPath = join(dir, entry.name);
|
|
78
|
-
if (entry.isDirectory()) {
|
|
79
|
-
files.push(...collectFiles(fullPath, pattern, maxDepth, currentDepth + 1));
|
|
80
|
-
}
|
|
81
|
-
else if (entry.isFile()) {
|
|
82
|
-
if (!pattern || matchesPattern(entry.name, pattern)) {
|
|
83
|
-
files.push(fullPath);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
catch {
|
|
89
|
-
// Skip directories we can't read
|
|
90
|
-
}
|
|
91
|
-
return files;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Read file content with truncation and optional line-based pagination
|
|
95
|
-
*/
|
|
96
|
-
export function readFileContent(filePath, options) {
|
|
97
|
-
const { maxLength, offset, limit } = options;
|
|
98
|
-
if (isBinaryFile(filePath)) {
|
|
99
|
-
return { content: '[Binary file]', truncated: false };
|
|
100
|
-
}
|
|
101
|
-
try {
|
|
102
|
-
const content = readFileSync(filePath, 'utf8');
|
|
103
|
-
const lines = content.split('\n');
|
|
104
|
-
const totalLines = lines.length;
|
|
105
|
-
// If offset/limit specified, use line-based pagination
|
|
106
|
-
if (offset !== undefined || limit !== undefined) {
|
|
107
|
-
const startLine = Math.min(offset ?? 0, totalLines);
|
|
108
|
-
const endLine = limit !== undefined ? Math.min(startLine + limit, totalLines) : totalLines;
|
|
109
|
-
const selectedLines = lines.slice(startLine, endLine);
|
|
110
|
-
const selectedContent = selectedLines.join('\n');
|
|
111
|
-
const actualEnd = endLine;
|
|
112
|
-
const hasMore = actualEnd < totalLines;
|
|
113
|
-
let finalContent = selectedContent;
|
|
114
|
-
if (selectedContent.length > maxLength) {
|
|
115
|
-
finalContent = selectedContent.substring(0, maxLength) + `\n... (+${selectedContent.length - maxLength} chars)`;
|
|
116
|
-
}
|
|
117
|
-
// Calculate actual line range (handle empty selection)
|
|
118
|
-
const actualLineEnd = selectedLines.length > 0 ? startLine + selectedLines.length - 1 : startLine;
|
|
119
|
-
return {
|
|
120
|
-
content: finalContent,
|
|
121
|
-
truncated: hasMore || selectedContent.length > maxLength,
|
|
122
|
-
totalLines,
|
|
123
|
-
lineRange: { start: startLine, end: actualLineEnd },
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
// Default behavior: truncate by character length
|
|
127
|
-
if (content.length > maxLength) {
|
|
128
|
-
return {
|
|
129
|
-
content: content.substring(0, maxLength) + `\n... (+${content.length - maxLength} chars)`,
|
|
130
|
-
truncated: true,
|
|
131
|
-
totalLines,
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
return { content, truncated: false, totalLines };
|
|
135
|
-
}
|
|
136
|
-
catch (error) {
|
|
137
|
-
return { content: `[Error: ${error.message}]`, truncated: false };
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Find regex matches in content with safety protections
|
|
142
|
-
* - Empty string pattern = "match all" (no filtering) - returns null
|
|
143
|
-
* - Dangerous patterns (zero-width matches) = "match all" for safety - returns null
|
|
144
|
-
* - Validates pattern to prevent infinite loops
|
|
145
|
-
* - Limits iterations to prevent ReDoS attacks
|
|
146
|
-
* - Deduplicates results to prevent duplicates
|
|
147
|
-
* - Reports errors instead of silent failure
|
|
148
|
-
*
|
|
149
|
-
* @returns Array of matching lines, null to match all content (empty string or dangerous pattern), empty array for no matches
|
|
150
|
-
*/
|
|
151
|
-
export function findMatches(content, pattern) {
|
|
152
|
-
// 1. Empty string pattern = "match all" (no filtering)
|
|
153
|
-
if (!pattern || pattern.length === 0) {
|
|
154
|
-
return null;
|
|
155
|
-
}
|
|
156
|
-
// 2. Pattern length limit
|
|
157
|
-
if (pattern.length > 1000) {
|
|
158
|
-
console.error('[read_file] contentPattern error: Pattern too long (max 1000 characters), returning all content');
|
|
159
|
-
return null;
|
|
160
|
-
}
|
|
161
|
-
// 3. Dangerous pattern detection
|
|
162
|
-
try {
|
|
163
|
-
const testRegex = new RegExp(pattern, 'gm');
|
|
164
|
-
const emptyTest = testRegex.exec('');
|
|
165
|
-
if (emptyTest && emptyTest[0] === '' && emptyTest.index === 0) {
|
|
166
|
-
const secondMatch = testRegex.exec('');
|
|
167
|
-
if (secondMatch && secondMatch.index === 0) {
|
|
168
|
-
console.warn(`[read_file] contentPattern: Dangerous pattern "${pattern.substring(0, 50)}" detected, returning all content`);
|
|
169
|
-
return null;
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
catch (e) {
|
|
174
|
-
console.error(`[read_file] contentPattern: Invalid regex pattern: ${e.message}, returning all content`);
|
|
175
|
-
return null;
|
|
176
|
-
}
|
|
177
|
-
try {
|
|
178
|
-
const regex = new RegExp(pattern, 'gm');
|
|
179
|
-
const matches = [];
|
|
180
|
-
const seen = new Set();
|
|
181
|
-
let match;
|
|
182
|
-
let iterations = 0;
|
|
183
|
-
let lastIndex = -1;
|
|
184
|
-
const MAX_ITERATIONS = 1000;
|
|
185
|
-
const MAX_MATCHES = 50;
|
|
186
|
-
while ((match = regex.exec(content)) !== null && matches.length < MAX_MATCHES) {
|
|
187
|
-
iterations++;
|
|
188
|
-
if (iterations > MAX_ITERATIONS) {
|
|
189
|
-
console.error(`[read_file] contentPattern warning: Exceeded ${MAX_ITERATIONS} iterations for pattern "${pattern.substring(0, 50)}"`);
|
|
190
|
-
break;
|
|
191
|
-
}
|
|
192
|
-
if (match.index === lastIndex) {
|
|
193
|
-
regex.lastIndex = match.index + 1;
|
|
194
|
-
continue;
|
|
195
|
-
}
|
|
196
|
-
lastIndex = match.index;
|
|
197
|
-
const lineStart = content.lastIndexOf('\n', match.index) + 1;
|
|
198
|
-
const lineEnd = content.indexOf('\n', match.index);
|
|
199
|
-
const line = content.substring(lineStart, lineEnd === -1 ? undefined : lineEnd).trim();
|
|
200
|
-
if (!line)
|
|
201
|
-
continue;
|
|
202
|
-
if (!seen.has(line)) {
|
|
203
|
-
seen.add(line);
|
|
204
|
-
matches.push(line.substring(0, 200));
|
|
205
|
-
}
|
|
206
|
-
if (matches.length >= 10)
|
|
207
|
-
break;
|
|
208
|
-
}
|
|
209
|
-
return matches;
|
|
210
|
-
}
|
|
211
|
-
catch (error) {
|
|
212
|
-
const errorMsg = error.message;
|
|
213
|
-
console.error(`[read_file] contentPattern error: ${errorMsg}`);
|
|
214
|
-
return [];
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
//# sourceMappingURL=file-reader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-reader.js","sourceRoot":"","sources":["../../src/utils/file-reader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Centralized Path Validation Utility
|
|
3
|
-
*
|
|
4
|
-
* Provides secure path validation and resolution for MCP tools.
|
|
5
|
-
* Prevents path traversal attacks and ensures operations stay within allowed directories.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Check if sandbox mode is enabled
|
|
9
|
-
* When enabled, path validation restricts access to allowed directories only
|
|
10
|
-
*/
|
|
11
|
-
export declare function isSandboxEnabled(): boolean;
|
|
12
|
-
/**
|
|
13
|
-
* Get project root directory
|
|
14
|
-
* Priority: MAESTRO_PROJECT_ROOT > process.cwd()
|
|
15
|
-
*/
|
|
16
|
-
export declare function getProjectRoot(): string;
|
|
17
|
-
/**
|
|
18
|
-
* Get allowed directories list
|
|
19
|
-
* Priority: MAESTRO_ALLOWED_DIRS > [getProjectRoot()]
|
|
20
|
-
*/
|
|
21
|
-
export declare function getAllowedDirectories(): string[];
|
|
22
|
-
/**
|
|
23
|
-
* Normalize path (unify separators to forward slash)
|
|
24
|
-
*/
|
|
25
|
-
export declare function normalizePath(p: string): string;
|
|
26
|
-
/**
|
|
27
|
-
* Check if path is within allowed directories
|
|
28
|
-
*/
|
|
29
|
-
export declare function isPathWithinAllowedDirectories(targetPath: string, allowedDirectories: string[]): boolean;
|
|
30
|
-
/**
|
|
31
|
-
* Validate and resolve path (core function)
|
|
32
|
-
*
|
|
33
|
-
* Security model:
|
|
34
|
-
* 1. Resolve to absolute path
|
|
35
|
-
* 2. Check against allowed directories
|
|
36
|
-
* 3. Resolve symlinks and re-verify
|
|
37
|
-
*
|
|
38
|
-
* @param filePath - Path to validate
|
|
39
|
-
* @param options - Validation options
|
|
40
|
-
* @returns Validated absolute path
|
|
41
|
-
* @throws Error if path is outside allowed directories or validation fails
|
|
42
|
-
*/
|
|
43
|
-
export declare function validatePath(filePath: string, options?: {
|
|
44
|
-
allowedDirectories?: string[];
|
|
45
|
-
mustExist?: boolean;
|
|
46
|
-
}): Promise<string>;
|
|
47
|
-
/**
|
|
48
|
-
* Resolve project-relative path (simplified, no strict validation)
|
|
49
|
-
* Use for cases where strict security validation is not needed
|
|
50
|
-
*/
|
|
51
|
-
export declare function resolveProjectPath(...pathSegments: string[]): string;
|
|
52
|
-
//# sourceMappingURL=path-validator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"path-validator.d.ts","sourceRoot":"","sources":["../../src/utils/path-validator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAG1C;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAMhD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/C;AAuBD;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,MAAM,EAAE,GAC3B,OAAO,CAST;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IACP,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;CAChB,GACL,OAAO,CAAC,MAAM,CAAC,CAmEjB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAEpE"}
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Centralized Path Validation Utility
|
|
3
|
-
*
|
|
4
|
-
* Provides secure path validation and resolution for MCP tools.
|
|
5
|
-
* Prevents path traversal attacks and ensures operations stay within allowed directories.
|
|
6
|
-
*/
|
|
7
|
-
import { resolve, isAbsolute, normalize, sep } from 'path';
|
|
8
|
-
import { realpath } from 'fs/promises';
|
|
9
|
-
// Environment variable configuration
|
|
10
|
-
const ENV_PROJECT_ROOT = 'MAESTRO_PROJECT_ROOT';
|
|
11
|
-
const ENV_ALLOWED_DIRS = 'MAESTRO_ALLOWED_DIRS';
|
|
12
|
-
const ENV_ENABLE_SANDBOX = 'MAESTRO_ENABLE_SANDBOX';
|
|
13
|
-
/**
|
|
14
|
-
* Check if sandbox mode is enabled
|
|
15
|
-
* When enabled, path validation restricts access to allowed directories only
|
|
16
|
-
*/
|
|
17
|
-
export function isSandboxEnabled() {
|
|
18
|
-
const value = process.env[ENV_ENABLE_SANDBOX];
|
|
19
|
-
return value === '1' || value?.toLowerCase() === 'true';
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Get project root directory
|
|
23
|
-
* Priority: MAESTRO_PROJECT_ROOT > process.cwd()
|
|
24
|
-
*/
|
|
25
|
-
export function getProjectRoot() {
|
|
26
|
-
return process.env[ENV_PROJECT_ROOT] || process.cwd();
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Get allowed directories list
|
|
30
|
-
* Priority: MAESTRO_ALLOWED_DIRS > [getProjectRoot()]
|
|
31
|
-
*/
|
|
32
|
-
export function getAllowedDirectories() {
|
|
33
|
-
const envDirs = process.env[ENV_ALLOWED_DIRS];
|
|
34
|
-
if (envDirs) {
|
|
35
|
-
return envDirs.split(',').map(d => d.trim()).filter(Boolean);
|
|
36
|
-
}
|
|
37
|
-
return [getProjectRoot()];
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Normalize path (unify separators to forward slash)
|
|
41
|
-
*/
|
|
42
|
-
export function normalizePath(p) {
|
|
43
|
-
return normalize(p).replace(/\\/g, '/');
|
|
44
|
-
}
|
|
45
|
-
function canonicalizeForComparison(p) {
|
|
46
|
-
const base = getProjectRoot();
|
|
47
|
-
const absolute = isAbsolute(p) ? p : resolve(base, p);
|
|
48
|
-
let canonical = normalize(absolute);
|
|
49
|
-
// Remove trailing separators (except drive roots like C:\ and posix root /)
|
|
50
|
-
canonical = canonical.replace(/[\\/]+$/, '');
|
|
51
|
-
if (/^[a-zA-Z]:$/.test(canonical)) {
|
|
52
|
-
canonical += sep;
|
|
53
|
-
}
|
|
54
|
-
else if (canonical === '') {
|
|
55
|
-
canonical = sep;
|
|
56
|
-
}
|
|
57
|
-
// Windows paths are case-insensitive.
|
|
58
|
-
if (process.platform === 'win32') {
|
|
59
|
-
canonical = canonical.toLowerCase();
|
|
60
|
-
}
|
|
61
|
-
return canonical;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Check if path is within allowed directories
|
|
65
|
-
*/
|
|
66
|
-
export function isPathWithinAllowedDirectories(targetPath, allowedDirectories) {
|
|
67
|
-
const canonicalTarget = canonicalizeForComparison(targetPath);
|
|
68
|
-
return allowedDirectories.some(dir => {
|
|
69
|
-
const canonicalDir = canonicalizeForComparison(dir);
|
|
70
|
-
if (canonicalTarget === canonicalDir)
|
|
71
|
-
return true;
|
|
72
|
-
const boundary = canonicalDir.endsWith(sep) ? canonicalDir : canonicalDir + sep;
|
|
73
|
-
return canonicalTarget.startsWith(boundary);
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Validate and resolve path (core function)
|
|
78
|
-
*
|
|
79
|
-
* Security model:
|
|
80
|
-
* 1. Resolve to absolute path
|
|
81
|
-
* 2. Check against allowed directories
|
|
82
|
-
* 3. Resolve symlinks and re-verify
|
|
83
|
-
*
|
|
84
|
-
* @param filePath - Path to validate
|
|
85
|
-
* @param options - Validation options
|
|
86
|
-
* @returns Validated absolute path
|
|
87
|
-
* @throws Error if path is outside allowed directories or validation fails
|
|
88
|
-
*/
|
|
89
|
-
export async function validatePath(filePath, options = {}) {
|
|
90
|
-
const sandboxEnabled = isSandboxEnabled();
|
|
91
|
-
const allowedDirs = options.allowedDirectories || getAllowedDirectories();
|
|
92
|
-
// 1. Resolve to absolute path
|
|
93
|
-
const absolutePath = isAbsolute(filePath)
|
|
94
|
-
? filePath
|
|
95
|
-
: resolve(getProjectRoot(), filePath);
|
|
96
|
-
const normalizedPath = normalizePath(absolutePath);
|
|
97
|
-
// 2. Initial sandbox check (only if sandbox is enabled)
|
|
98
|
-
if (sandboxEnabled && !isPathWithinAllowedDirectories(normalizedPath, allowedDirs)) {
|
|
99
|
-
throw new Error(`Access denied: path "${normalizedPath}" is outside allowed directories. ` +
|
|
100
|
-
`Allowed: [${allowedDirs.join(', ')}]`);
|
|
101
|
-
}
|
|
102
|
-
// 3. Try to resolve symlinks and re-verify
|
|
103
|
-
try {
|
|
104
|
-
const realPath = await realpath(absolutePath);
|
|
105
|
-
const normalizedReal = normalizePath(realPath);
|
|
106
|
-
// Only check symlink target if sandbox is enabled
|
|
107
|
-
if (sandboxEnabled && !isPathWithinAllowedDirectories(normalizedReal, allowedDirs)) {
|
|
108
|
-
throw new Error(`Access denied: symlink target "${normalizedReal}" is outside allowed directories`);
|
|
109
|
-
}
|
|
110
|
-
return normalizedReal;
|
|
111
|
-
}
|
|
112
|
-
catch (error) {
|
|
113
|
-
// File doesn't exist - validate parent directory
|
|
114
|
-
if (error.code === 'ENOENT') {
|
|
115
|
-
if (options.mustExist) {
|
|
116
|
-
throw new Error(`File not found: ${absolutePath}`);
|
|
117
|
-
}
|
|
118
|
-
// Validate parent directory's real path (only if sandbox is enabled)
|
|
119
|
-
const parentDir = resolve(absolutePath, '..');
|
|
120
|
-
try {
|
|
121
|
-
const realParent = await realpath(parentDir);
|
|
122
|
-
const normalizedParent = normalizePath(realParent);
|
|
123
|
-
if (sandboxEnabled && !isPathWithinAllowedDirectories(normalizedParent, allowedDirs)) {
|
|
124
|
-
throw new Error(`Access denied: parent directory "${normalizedParent}" is outside allowed directories`);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
catch (parentError) {
|
|
128
|
-
if (parentError.code === 'ENOENT') {
|
|
129
|
-
// Parent directory doesn't exist either - return original absolute path
|
|
130
|
-
// Let the caller create it if needed
|
|
131
|
-
return absolutePath;
|
|
132
|
-
}
|
|
133
|
-
throw parentError;
|
|
134
|
-
}
|
|
135
|
-
return absolutePath;
|
|
136
|
-
}
|
|
137
|
-
// Re-throw access denied errors
|
|
138
|
-
if (error.message?.includes('Access denied')) {
|
|
139
|
-
throw error;
|
|
140
|
-
}
|
|
141
|
-
throw error;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Resolve project-relative path (simplified, no strict validation)
|
|
146
|
-
* Use for cases where strict security validation is not needed
|
|
147
|
-
*/
|
|
148
|
-
export function resolveProjectPath(...pathSegments) {
|
|
149
|
-
return resolve(getProjectRoot(), ...pathSegments);
|
|
150
|
-
}
|
|
151
|
-
//# sourceMappingURL=path-validator.js.map
|