@mesrai/cli 0.4.21
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/README.md +670 -0
- package/dist/agents/agent.interface.d.ts +41 -0
- package/dist/agents/agent.interface.d.ts.map +1 -0
- package/dist/agents/agent.interface.js +2 -0
- package/dist/agents/agent.interface.js.map +1 -0
- package/dist/agents/claude-code.agent.d.ts +14 -0
- package/dist/agents/claude-code.agent.d.ts.map +1 -0
- package/dist/agents/claude-code.agent.js +90 -0
- package/dist/agents/claude-code.agent.js.map +1 -0
- package/dist/agents/codex.agent.d.ts +14 -0
- package/dist/agents/codex.agent.d.ts.map +1 -0
- package/dist/agents/codex.agent.js +77 -0
- package/dist/agents/codex.agent.js.map +1 -0
- package/dist/agents/cursor.agent.d.ts +29 -0
- package/dist/agents/cursor.agent.d.ts.map +1 -0
- package/dist/agents/cursor.agent.js +85 -0
- package/dist/agents/cursor.agent.js.map +1 -0
- package/dist/cli.d.ts +4 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +60 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/auth/index.d.ts +3 -0
- package/dist/commands/auth/index.d.ts.map +1 -0
- package/dist/commands/auth/index.js +37 -0
- package/dist/commands/auth/index.js.map +1 -0
- package/dist/commands/auth/login.d.ts +11 -0
- package/dist/commands/auth/login.d.ts.map +1 -0
- package/dist/commands/auth/login.js +158 -0
- package/dist/commands/auth/login.js.map +1 -0
- package/dist/commands/auth/logout.d.ts +2 -0
- package/dist/commands/auth/logout.d.ts.map +1 -0
- package/dist/commands/auth/logout.js +26 -0
- package/dist/commands/auth/logout.js.map +1 -0
- package/dist/commands/auth/status.d.ts +2 -0
- package/dist/commands/auth/status.d.ts.map +1 -0
- package/dist/commands/auth/status.js +82 -0
- package/dist/commands/auth/status.js.map +1 -0
- package/dist/commands/auth/team-key.d.ts +5 -0
- package/dist/commands/auth/team-key.d.ts.map +1 -0
- package/dist/commands/auth/team-key.js +112 -0
- package/dist/commands/auth/team-key.js.map +1 -0
- package/dist/commands/auth/token.d.ts +2 -0
- package/dist/commands/auth/token.d.ts.map +1 -0
- package/dist/commands/auth/token.js +33 -0
- package/dist/commands/auth/token.js.map +1 -0
- package/dist/commands/config.d.ts +5 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +26 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/diff.d.ts +3 -0
- package/dist/commands/diff.d.ts.map +1 -0
- package/dist/commands/diff.js +23 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/hook/index.d.ts +3 -0
- package/dist/commands/hook/index.d.ts.map +1 -0
- package/dist/commands/hook/index.js +24 -0
- package/dist/commands/hook/index.js.map +1 -0
- package/dist/commands/hook/install.d.ts +11 -0
- package/dist/commands/hook/install.d.ts.map +1 -0
- package/dist/commands/hook/install.js +149 -0
- package/dist/commands/hook/install.js.map +1 -0
- package/dist/commands/hook/status.d.ts +2 -0
- package/dist/commands/hook/status.d.ts.map +1 -0
- package/dist/commands/hook/status.js +36 -0
- package/dist/commands/hook/status.js.map +1 -0
- package/dist/commands/hook/uninstall.d.ts +5 -0
- package/dist/commands/hook/uninstall.d.ts.map +1 -0
- package/dist/commands/hook/uninstall.js +66 -0
- package/dist/commands/hook/uninstall.js.map +1 -0
- package/dist/commands/memory/capture.d.ts +8 -0
- package/dist/commands/memory/capture.d.ts.map +1 -0
- package/dist/commands/memory/capture.js +124 -0
- package/dist/commands/memory/capture.js.map +1 -0
- package/dist/commands/memory/disable.d.ts +5 -0
- package/dist/commands/memory/disable.d.ts.map +1 -0
- package/dist/commands/memory/disable.js +67 -0
- package/dist/commands/memory/disable.js.map +1 -0
- package/dist/commands/memory/enable.d.ts +7 -0
- package/dist/commands/memory/enable.d.ts.map +1 -0
- package/dist/commands/memory/enable.js +74 -0
- package/dist/commands/memory/enable.js.map +1 -0
- package/dist/commands/memory/hooks.d.ts +31 -0
- package/dist/commands/memory/hooks.d.ts.map +1 -0
- package/dist/commands/memory/hooks.js +283 -0
- package/dist/commands/memory/hooks.js.map +1 -0
- package/dist/commands/memory/index.d.ts +3 -0
- package/dist/commands/memory/index.d.ts.map +1 -0
- package/dist/commands/memory/index.js +36 -0
- package/dist/commands/memory/index.js.map +1 -0
- package/dist/commands/memory/session-hooks/claude-code.d.ts +2 -0
- package/dist/commands/memory/session-hooks/claude-code.d.ts.map +1 -0
- package/dist/commands/memory/session-hooks/claude-code.js +24 -0
- package/dist/commands/memory/session-hooks/claude-code.js.map +1 -0
- package/dist/commands/memory/session-hooks/codex.d.ts +2 -0
- package/dist/commands/memory/session-hooks/codex.d.ts.map +1 -0
- package/dist/commands/memory/session-hooks/codex.js +16 -0
- package/dist/commands/memory/session-hooks/codex.js.map +1 -0
- package/dist/commands/memory/session-hooks/cursor.d.ts +2 -0
- package/dist/commands/memory/session-hooks/cursor.d.ts.map +1 -0
- package/dist/commands/memory/session-hooks/cursor.js +20 -0
- package/dist/commands/memory/session-hooks/cursor.js.map +1 -0
- package/dist/commands/memory/session-hooks/index.d.ts +3 -0
- package/dist/commands/memory/session-hooks/index.d.ts.map +1 -0
- package/dist/commands/memory/session-hooks/index.js +21 -0
- package/dist/commands/memory/session-hooks/index.js.map +1 -0
- package/dist/commands/memory/session-hooks/shared.d.ts +7 -0
- package/dist/commands/memory/session-hooks/shared.d.ts.map +1 -0
- package/dist/commands/memory/session-hooks/shared.js +52 -0
- package/dist/commands/memory/session-hooks/shared.js.map +1 -0
- package/dist/commands/memory/session-hooks-install-codex.d.ts +19 -0
- package/dist/commands/memory/session-hooks-install-codex.d.ts.map +1 -0
- package/dist/commands/memory/session-hooks-install-codex.js +91 -0
- package/dist/commands/memory/session-hooks-install-codex.js.map +1 -0
- package/dist/commands/memory/session-hooks-install-cursor.d.ts +9 -0
- package/dist/commands/memory/session-hooks-install-cursor.d.ts.map +1 -0
- package/dist/commands/memory/session-hooks-install-cursor.js +119 -0
- package/dist/commands/memory/session-hooks-install-cursor.js.map +1 -0
- package/dist/commands/memory/session-hooks-install.d.ts +9 -0
- package/dist/commands/memory/session-hooks-install.d.ts.map +1 -0
- package/dist/commands/memory/session-hooks-install.js +173 -0
- package/dist/commands/memory/session-hooks-install.js.map +1 -0
- package/dist/commands/pr.d.ts +2 -0
- package/dist/commands/pr.d.ts.map +1 -0
- package/dist/commands/pr.js +2 -0
- package/dist/commands/pr.js.map +1 -0
- package/dist/commands/review.d.ts +2 -0
- package/dist/commands/review.d.ts.map +1 -0
- package/dist/commands/review.js +2 -0
- package/dist/commands/review.js.map +1 -0
- package/dist/commands/rules.d.ts +31 -0
- package/dist/commands/rules.d.ts.map +1 -0
- package/dist/commands/rules.js +159 -0
- package/dist/commands/rules.js.map +1 -0
- package/dist/commands/schema.d.ts +3 -0
- package/dist/commands/schema.d.ts.map +1 -0
- package/dist/commands/schema.js +62 -0
- package/dist/commands/schema.js.map +1 -0
- package/dist/commands/skills.d.ts +3 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +85 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +99 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/subscribe.d.ts +4 -0
- package/dist/commands/subscribe.d.ts.map +1 -0
- package/dist/commands/subscribe.js +25 -0
- package/dist/commands/subscribe.js.map +1 -0
- package/dist/commands/update.d.ts +10 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +112 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/constants.d.ts +3 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +6 -0
- package/dist/constants.js.map +1 -0
- package/dist/features/centralized-config/actions.d.ts +20 -0
- package/dist/features/centralized-config/actions.d.ts.map +1 -0
- package/dist/features/centralized-config/actions.js +114 -0
- package/dist/features/centralized-config/actions.js.map +1 -0
- package/dist/features/centralized-config/command.d.ts +4 -0
- package/dist/features/centralized-config/command.d.ts.map +1 -0
- package/dist/features/centralized-config/command.js +43 -0
- package/dist/features/centralized-config/command.js.map +1 -0
- package/dist/features/pr/command.d.ts +4 -0
- package/dist/features/pr/command.d.ts.map +1 -0
- package/dist/features/pr/command.js +222 -0
- package/dist/features/pr/command.js.map +1 -0
- package/dist/features/repo-config/actions.d.ts +33 -0
- package/dist/features/repo-config/actions.d.ts.map +1 -0
- package/dist/features/repo-config/actions.js +271 -0
- package/dist/features/repo-config/actions.js.map +1 -0
- package/dist/features/repo-config/command.d.ts +15 -0
- package/dist/features/repo-config/command.d.ts.map +1 -0
- package/dist/features/repo-config/command.js +135 -0
- package/dist/features/repo-config/command.js.map +1 -0
- package/dist/features/review/command.d.ts +4 -0
- package/dist/features/review/command.d.ts.map +1 -0
- package/dist/features/review/command.js +404 -0
- package/dist/features/review/command.js.map +1 -0
- package/dist/features/review/diff.d.ts +23 -0
- package/dist/features/review/diff.d.ts.map +1 -0
- package/dist/features/review/diff.js +47 -0
- package/dist/features/review/diff.js.map +1 -0
- package/dist/features/review/errors.d.ts +3 -0
- package/dist/features/review/errors.d.ts.map +1 -0
- package/dist/features/review/errors.js +26 -0
- package/dist/features/review/errors.js.map +1 -0
- package/dist/features/review/hunk-context.d.ts +25 -0
- package/dist/features/review/hunk-context.d.ts.map +1 -0
- package/dist/features/review/hunk-context.js +158 -0
- package/dist/features/review/hunk-context.js.map +1 -0
- package/dist/features/review/hunk-viewer.d.ts +25 -0
- package/dist/features/review/hunk-viewer.d.ts.map +1 -0
- package/dist/features/review/hunk-viewer.js +59 -0
- package/dist/features/review/hunk-viewer.js.map +1 -0
- package/dist/features/review/no-changes.d.ts +6 -0
- package/dist/features/review/no-changes.d.ts.map +1 -0
- package/dist/features/review/no-changes.js +31 -0
- package/dist/features/review/no-changes.js.map +1 -0
- package/dist/features/review/options.d.ts +7 -0
- package/dist/features/review/options.d.ts.map +1 -0
- package/dist/features/review/options.js +18 -0
- package/dist/features/review/options.js.map +1 -0
- package/dist/features/review/result.d.ts +40 -0
- package/dist/features/review/result.d.ts.map +1 -0
- package/dist/features/review/result.js +95 -0
- package/dist/features/review/result.js.map +1 -0
- package/dist/formatters/json.d.ts +7 -0
- package/dist/formatters/json.d.ts.map +1 -0
- package/dist/formatters/json.js +7 -0
- package/dist/formatters/json.js.map +1 -0
- package/dist/formatters/markdown.d.ts +7 -0
- package/dist/formatters/markdown.d.ts.map +1 -0
- package/dist/formatters/markdown.js +93 -0
- package/dist/formatters/markdown.js.map +1 -0
- package/dist/formatters/prompt.d.ts +12 -0
- package/dist/formatters/prompt.d.ts.map +1 -0
- package/dist/formatters/prompt.js +90 -0
- package/dist/formatters/prompt.js.map +1 -0
- package/dist/formatters/repo-config.d.ts +7 -0
- package/dist/formatters/repo-config.d.ts.map +1 -0
- package/dist/formatters/repo-config.js +99 -0
- package/dist/formatters/repo-config.js.map +1 -0
- package/dist/formatters/terminal.d.ts +7 -0
- package/dist/formatters/terminal.d.ts.map +1 -0
- package/dist/formatters/terminal.js +130 -0
- package/dist/formatters/terminal.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +51 -0
- package/dist/index.js.map +1 -0
- package/dist/services/api/api-core.d.ts +27 -0
- package/dist/services/api/api-core.d.ts.map +1 -0
- package/dist/services/api/api-core.js +451 -0
- package/dist/services/api/api-core.js.map +1 -0
- package/dist/services/api/api.interface.d.ts +101 -0
- package/dist/services/api/api.interface.d.ts.map +1 -0
- package/dist/services/api/api.interface.js +2 -0
- package/dist/services/api/api.interface.js.map +1 -0
- package/dist/services/api/api.real.d.ts +19 -0
- package/dist/services/api/api.real.d.ts.map +1 -0
- package/dist/services/api/api.real.js +20 -0
- package/dist/services/api/api.real.js.map +1 -0
- package/dist/services/api/auth.api.d.ts +17 -0
- package/dist/services/api/auth.api.d.ts.map +1 -0
- package/dist/services/api/auth.api.js +73 -0
- package/dist/services/api/auth.api.js.map +1 -0
- package/dist/services/api/cli-auth.api.d.ts +29 -0
- package/dist/services/api/cli-auth.api.d.ts.map +1 -0
- package/dist/services/api/cli-auth.api.js +23 -0
- package/dist/services/api/cli-auth.api.js.map +1 -0
- package/dist/services/api/config.api.d.ts +34 -0
- package/dist/services/api/config.api.d.ts.map +1 -0
- package/dist/services/api/config.api.js +108 -0
- package/dist/services/api/config.api.js.map +1 -0
- package/dist/services/api/index.d.ts +4 -0
- package/dist/services/api/index.d.ts.map +1 -0
- package/dist/services/api/index.js +3 -0
- package/dist/services/api/index.js.map +1 -0
- package/dist/services/api/memory.api.d.ts +10 -0
- package/dist/services/api/memory.api.d.ts.map +1 -0
- package/dist/services/api/memory.api.js +19 -0
- package/dist/services/api/memory.api.js.map +1 -0
- package/dist/services/api/review.api.d.ts +27 -0
- package/dist/services/api/review.api.d.ts.map +1 -0
- package/dist/services/api/review.api.js +140 -0
- package/dist/services/api/review.api.js.map +1 -0
- package/dist/services/api/rules.api.d.ts +13 -0
- package/dist/services/api/rules.api.d.ts.map +1 -0
- package/dist/services/api/rules.api.js +41 -0
- package/dist/services/api/rules.api.js.map +1 -0
- package/dist/services/api/sessions.api.d.ts +6 -0
- package/dist/services/api/sessions.api.d.ts.map +1 -0
- package/dist/services/api/sessions.api.js +129 -0
- package/dist/services/api/sessions.api.js.map +1 -0
- package/dist/services/api/trial.api.d.ts +10 -0
- package/dist/services/api/trial.api.d.ts.map +1 -0
- package/dist/services/api/trial.api.js +11 -0
- package/dist/services/api/trial.api.js.map +1 -0
- package/dist/services/auth.service.d.ts +29 -0
- package/dist/services/auth.service.d.ts.map +1 -0
- package/dist/services/auth.service.js +190 -0
- package/dist/services/auth.service.js.map +1 -0
- package/dist/services/browser-login.service.d.ts +23 -0
- package/dist/services/browser-login.service.d.ts.map +1 -0
- package/dist/services/browser-login.service.js +187 -0
- package/dist/services/browser-login.service.js.map +1 -0
- package/dist/services/centralized-config.service.d.ts +24 -0
- package/dist/services/centralized-config.service.d.ts.map +1 -0
- package/dist/services/centralized-config.service.js +112 -0
- package/dist/services/centralized-config.service.js.map +1 -0
- package/dist/services/context.service.d.ts +25 -0
- package/dist/services/context.service.d.ts.map +1 -0
- package/dist/services/context.service.js +134 -0
- package/dist/services/context.service.js.map +1 -0
- package/dist/services/device-login.service.d.ts +23 -0
- package/dist/services/device-login.service.d.ts.map +1 -0
- package/dist/services/device-login.service.js +70 -0
- package/dist/services/device-login.service.js.map +1 -0
- package/dist/services/fix.service.d.ts +31 -0
- package/dist/services/fix.service.d.ts.map +1 -0
- package/dist/services/fix.service.js +121 -0
- package/dist/services/fix.service.js.map +1 -0
- package/dist/services/git-hooks.service.d.ts +20 -0
- package/dist/services/git-hooks.service.d.ts.map +1 -0
- package/dist/services/git-hooks.service.js +126 -0
- package/dist/services/git-hooks.service.js.map +1 -0
- package/dist/services/git.service.d.ts +44 -0
- package/dist/services/git.service.d.ts.map +1 -0
- package/dist/services/git.service.js +321 -0
- package/dist/services/git.service.js.map +1 -0
- package/dist/services/hook-logger.service.d.ts +18 -0
- package/dist/services/hook-logger.service.d.ts.map +1 -0
- package/dist/services/hook-logger.service.js +48 -0
- package/dist/services/hook-logger.service.js.map +1 -0
- package/dist/services/lifecycle-events.d.ts +49 -0
- package/dist/services/lifecycle-events.d.ts.map +1 -0
- package/dist/services/lifecycle-events.js +86 -0
- package/dist/services/lifecycle-events.js.map +1 -0
- package/dist/services/lifecycle-git-context.d.ts +15 -0
- package/dist/services/lifecycle-git-context.d.ts.map +1 -0
- package/dist/services/lifecycle-git-context.js +23 -0
- package/dist/services/lifecycle-git-context.js.map +1 -0
- package/dist/services/lifecycle-local-turn-state.d.ts +14 -0
- package/dist/services/lifecycle-local-turn-state.d.ts.map +1 -0
- package/dist/services/lifecycle-local-turn-state.js +18 -0
- package/dist/services/lifecycle-local-turn-state.js.map +1 -0
- package/dist/services/lifecycle-transcript.d.ts +25 -0
- package/dist/services/lifecycle-transcript.d.ts.map +1 -0
- package/dist/services/lifecycle-transcript.js +29 -0
- package/dist/services/lifecycle-transcript.js.map +1 -0
- package/dist/services/lifecycle-turn-data.d.ts +11 -0
- package/dist/services/lifecycle-turn-data.d.ts.map +1 -0
- package/dist/services/lifecycle-turn-data.js +23 -0
- package/dist/services/lifecycle-turn-data.js.map +1 -0
- package/dist/services/lifecycle.service.d.ts +14 -0
- package/dist/services/lifecycle.service.d.ts.map +1 -0
- package/dist/services/lifecycle.service.js +276 -0
- package/dist/services/lifecycle.service.js.map +1 -0
- package/dist/services/repo-config.service.d.ts +22 -0
- package/dist/services/repo-config.service.d.ts.map +1 -0
- package/dist/services/repo-config.service.js +81 -0
- package/dist/services/repo-config.service.js.map +1 -0
- package/dist/services/repo-settings-wizard.service.d.ts +19 -0
- package/dist/services/repo-settings-wizard.service.d.ts.map +1 -0
- package/dist/services/repo-settings-wizard.service.js +260 -0
- package/dist/services/repo-settings-wizard.service.js.map +1 -0
- package/dist/services/repo-settings.service.d.ts +30 -0
- package/dist/services/repo-settings.service.d.ts.map +1 -0
- package/dist/services/repo-settings.service.js +99 -0
- package/dist/services/repo-settings.service.js.map +1 -0
- package/dist/services/review-auth-fallback.d.ts +7 -0
- package/dist/services/review-auth-fallback.d.ts.map +1 -0
- package/dist/services/review-auth-fallback.js +25 -0
- package/dist/services/review-auth-fallback.js.map +1 -0
- package/dist/services/review-config-builder.d.ts +19 -0
- package/dist/services/review-config-builder.d.ts.map +1 -0
- package/dist/services/review-config-builder.js +29 -0
- package/dist/services/review-config-builder.js.map +1 -0
- package/dist/services/review-file-filter.d.ts +3 -0
- package/dist/services/review-file-filter.d.ts.map +1 -0
- package/dist/services/review-file-filter.js +35 -0
- package/dist/services/review-file-filter.js.map +1 -0
- package/dist/services/review-normalizer.d.ts +6 -0
- package/dist/services/review-normalizer.d.ts.map +1 -0
- package/dist/services/review-normalizer.js +62 -0
- package/dist/services/review-normalizer.js.map +1 -0
- package/dist/services/review-verbose.d.ts +28 -0
- package/dist/services/review-verbose.d.ts.map +1 -0
- package/dist/services/review-verbose.js +52 -0
- package/dist/services/review-verbose.js.map +1 -0
- package/dist/services/review.service.d.ts +38 -0
- package/dist/services/review.service.d.ts.map +1 -0
- package/dist/services/review.service.js +152 -0
- package/dist/services/review.service.js.map +1 -0
- package/dist/services/rules.service.d.ts +16 -0
- package/dist/services/rules.service.d.ts.map +1 -0
- package/dist/services/rules.service.js +98 -0
- package/dist/services/rules.service.js.map +1 -0
- package/dist/services/session-local.service.d.ts +25 -0
- package/dist/services/session-local.service.d.ts.map +1 -0
- package/dist/services/session-local.service.js +79 -0
- package/dist/services/session-local.service.js.map +1 -0
- package/dist/services/transcript-parser.service.d.ts +10 -0
- package/dist/services/transcript-parser.service.d.ts.map +1 -0
- package/dist/services/transcript-parser.service.js +127 -0
- package/dist/services/transcript-parser.service.js.map +1 -0
- package/dist/services/transcript.service.d.ts +33 -0
- package/dist/services/transcript.service.d.ts.map +1 -0
- package/dist/services/transcript.service.js +264 -0
- package/dist/services/transcript.service.js.map +1 -0
- package/dist/types/auth.d.ts +18 -0
- package/dist/types/auth.d.ts.map +1 -0
- package/dist/types/auth.js +2 -0
- package/dist/types/auth.js.map +1 -0
- package/dist/types/cli.d.ts +41 -0
- package/dist/types/cli.d.ts.map +1 -0
- package/dist/types/cli.js +2 -0
- package/dist/types/cli.js.map +1 -0
- package/dist/types/command-output.d.ts +29 -0
- package/dist/types/command-output.d.ts.map +1 -0
- package/dist/types/command-output.js +2 -0
- package/dist/types/command-output.js.map +1 -0
- package/dist/types/config.d.ts +68 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +2 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/errors.d.ts +8 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +15 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/memory.d.ts +39 -0
- package/dist/types/memory.d.ts.map +1 -0
- package/dist/types/memory.js +2 -0
- package/dist/types/memory.js.map +1 -0
- package/dist/types/repo-config.d.ts +24 -0
- package/dist/types/repo-config.d.ts.map +1 -0
- package/dist/types/repo-config.js +2 -0
- package/dist/types/repo-config.js.map +1 -0
- package/dist/types/review.d.ts +112 -0
- package/dist/types/review.d.ts.map +1 -0
- package/dist/types/review.js +2 -0
- package/dist/types/review.js.map +1 -0
- package/dist/types/rules.d.ts +42 -0
- package/dist/types/rules.d.ts.map +1 -0
- package/dist/types/rules.js +7 -0
- package/dist/types/rules.js.map +1 -0
- package/dist/types/session-events.d.ts +48 -0
- package/dist/types/session-events.d.ts.map +1 -0
- package/dist/types/session-events.js +2 -0
- package/dist/types/session-events.js.map +1 -0
- package/dist/types/session.d.ts +150 -0
- package/dist/types/session.d.ts.map +1 -0
- package/dist/types/session.js +9 -0
- package/dist/types/session.js.map +1 -0
- package/dist/types/trial.d.ts +10 -0
- package/dist/types/trial.d.ts.map +1 -0
- package/dist/types/trial.js +2 -0
- package/dist/types/trial.js.map +1 -0
- package/dist/ui/interactive-formatters.d.ts +6 -0
- package/dist/ui/interactive-formatters.d.ts.map +1 -0
- package/dist/ui/interactive-formatters.js +61 -0
- package/dist/ui/interactive-formatters.js.map +1 -0
- package/dist/ui/interactive-helpers.d.ts +20 -0
- package/dist/ui/interactive-helpers.d.ts.map +1 -0
- package/dist/ui/interactive-helpers.js +82 -0
- package/dist/ui/interactive-helpers.js.map +1 -0
- package/dist/ui/interactive-renderers.d.ts +6 -0
- package/dist/ui/interactive-renderers.d.ts.map +1 -0
- package/dist/ui/interactive-renderers.js +82 -0
- package/dist/ui/interactive-renderers.js.map +1 -0
- package/dist/ui/interactive.d.ts +25 -0
- package/dist/ui/interactive.d.ts.map +1 -0
- package/dist/ui/interactive.js +228 -0
- package/dist/ui/interactive.js.map +1 -0
- package/dist/utils/auth-mode.d.ts +7 -0
- package/dist/utils/auth-mode.d.ts.map +1 -0
- package/dist/utils/auth-mode.js +42 -0
- package/dist/utils/auth-mode.js.map +1 -0
- package/dist/utils/banner.d.ts +2 -0
- package/dist/utils/banner.d.ts.map +1 -0
- package/dist/utils/banner.js +180 -0
- package/dist/utils/banner.js.map +1 -0
- package/dist/utils/cli-exit.d.ts +13 -0
- package/dist/utils/cli-exit.d.ts.map +1 -0
- package/dist/utils/cli-exit.js +29 -0
- package/dist/utils/cli-exit.js.map +1 -0
- package/dist/utils/clipboard.d.ts +2 -0
- package/dist/utils/clipboard.d.ts.map +1 -0
- package/dist/utils/clipboard.js +11 -0
- package/dist/utils/clipboard.js.map +1 -0
- package/dist/utils/command-context.d.ts +12 -0
- package/dist/utils/command-context.d.ts.map +1 -0
- package/dist/utils/command-context.js +15 -0
- package/dist/utils/command-context.js.map +1 -0
- package/dist/utils/command-errors.d.ts +12 -0
- package/dist/utils/command-errors.d.ts.map +1 -0
- package/dist/utils/command-errors.js +112 -0
- package/dist/utils/command-errors.js.map +1 -0
- package/dist/utils/command-output.d.ts +5 -0
- package/dist/utils/command-output.d.ts.map +1 -0
- package/dist/utils/command-output.js +46 -0
- package/dist/utils/command-output.js.map +1 -0
- package/dist/utils/command-schema.d.ts +29 -0
- package/dist/utils/command-schema.d.ts.map +1 -0
- package/dist/utils/command-schema.js +74 -0
- package/dist/utils/command-schema.js.map +1 -0
- package/dist/utils/commander-errors.d.ts +8 -0
- package/dist/utils/commander-errors.d.ts.map +1 -0
- package/dist/utils/commander-errors.js +79 -0
- package/dist/utils/commander-errors.js.map +1 -0
- package/dist/utils/commander-setup.d.ts +3 -0
- package/dist/utils/commander-setup.d.ts.map +1 -0
- package/dist/utils/commander-setup.js +10 -0
- package/dist/utils/commander-setup.js.map +1 -0
- package/dist/utils/config.d.ts +13 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +71 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/credentials.d.ts +6 -0
- package/dist/utils/credentials.d.ts.map +1 -0
- package/dist/utils/credentials.js +64 -0
- package/dist/utils/credentials.js.map +1 -0
- package/dist/utils/device.d.ts +7 -0
- package/dist/utils/device.d.ts.map +1 -0
- package/dist/utils/device.js +133 -0
- package/dist/utils/device.js.map +1 -0
- package/dist/utils/field-mask.d.ts +2 -0
- package/dist/utils/field-mask.d.ts.map +1 -0
- package/dist/utils/field-mask.js +93 -0
- package/dist/utils/field-mask.js.map +1 -0
- package/dist/utils/git-diff.d.ts +5 -0
- package/dist/utils/git-diff.d.ts.map +1 -0
- package/dist/utils/git-diff.js +14 -0
- package/dist/utils/git-diff.js.map +1 -0
- package/dist/utils/git-file-reader.d.ts +22 -0
- package/dist/utils/git-file-reader.d.ts.map +1 -0
- package/dist/utils/git-file-reader.js +45 -0
- package/dist/utils/git-file-reader.js.map +1 -0
- package/dist/utils/git-file-selection.d.ts +14 -0
- package/dist/utils/git-file-selection.d.ts.map +1 -0
- package/dist/utils/git-file-selection.js +20 -0
- package/dist/utils/git-file-selection.js.map +1 -0
- package/dist/utils/git-file-targets.d.ts +4 -0
- package/dist/utils/git-file-targets.d.ts.map +1 -0
- package/dist/utils/git-file-targets.js +11 -0
- package/dist/utils/git-file-targets.js.map +1 -0
- package/dist/utils/git-remote.d.ts +7 -0
- package/dist/utils/git-remote.d.ts.map +1 -0
- package/dist/utils/git-remote.js +94 -0
- package/dist/utils/git-remote.js.map +1 -0
- package/dist/utils/git-status.d.ts +7 -0
- package/dist/utils/git-status.d.ts.map +1 -0
- package/dist/utils/git-status.js +36 -0
- package/dist/utils/git-status.js.map +1 -0
- package/dist/utils/hunk.d.ts +15 -0
- package/dist/utils/hunk.d.ts.map +1 -0
- package/dist/utils/hunk.js +44 -0
- package/dist/utils/hunk.js.map +1 -0
- package/dist/utils/input-validation.d.ts +11 -0
- package/dist/utils/input-validation.d.ts.map +1 -0
- package/dist/utils/input-validation.js +73 -0
- package/dist/utils/input-validation.js.map +1 -0
- package/dist/utils/install-instructions.d.ts +6 -0
- package/dist/utils/install-instructions.d.ts.map +1 -0
- package/dist/utils/install-instructions.js +18 -0
- package/dist/utils/install-instructions.js.map +1 -0
- package/dist/utils/logger.d.ts +13 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +48 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/rate-limit.d.ts +5 -0
- package/dist/utils/rate-limit.d.ts.map +1 -0
- package/dist/utils/rate-limit.js +56 -0
- package/dist/utils/rate-limit.js.map +1 -0
- package/dist/utils/recent-activity.d.ts +9 -0
- package/dist/utils/recent-activity.d.ts.map +1 -0
- package/dist/utils/recent-activity.js +139 -0
- package/dist/utils/recent-activity.js.map +1 -0
- package/dist/utils/repo-settings-dashboard.d.ts +6 -0
- package/dist/utils/repo-settings-dashboard.d.ts.map +1 -0
- package/dist/utils/repo-settings-dashboard.js +36 -0
- package/dist/utils/repo-settings-dashboard.js.map +1 -0
- package/dist/utils/repo-settings-patterns.d.ts +7 -0
- package/dist/utils/repo-settings-patterns.d.ts.map +1 -0
- package/dist/utils/repo-settings-patterns.js +66 -0
- package/dist/utils/repo-settings-patterns.js.map +1 -0
- package/dist/utils/repo-settings-schema.d.ts +6 -0
- package/dist/utils/repo-settings-schema.d.ts.map +1 -0
- package/dist/utils/repo-settings-schema.js +70 -0
- package/dist/utils/repo-settings-schema.js.map +1 -0
- package/dist/utils/review-output.d.ts +4 -0
- package/dist/utils/review-output.d.ts.map +1 -0
- package/dist/utils/review-output.js +18 -0
- package/dist/utils/review-output.js.map +1 -0
- package/dist/utils/skills-sync-manifest.d.ts +5 -0
- package/dist/utils/skills-sync-manifest.d.ts.map +1 -0
- package/dist/utils/skills-sync-manifest.js +39 -0
- package/dist/utils/skills-sync-manifest.js.map +1 -0
- package/dist/utils/skills-sync-paths.d.ts +5 -0
- package/dist/utils/skills-sync-paths.d.ts.map +1 -0
- package/dist/utils/skills-sync-paths.js +60 -0
- package/dist/utils/skills-sync-paths.js.map +1 -0
- package/dist/utils/skills-sync-targets.d.ts +3 -0
- package/dist/utils/skills-sync-targets.d.ts.map +1 -0
- package/dist/utils/skills-sync-targets.js +218 -0
- package/dist/utils/skills-sync-targets.js.map +1 -0
- package/dist/utils/skills-sync.d.ts +39 -0
- package/dist/utils/skills-sync.d.ts.map +1 -0
- package/dist/utils/skills-sync.js +200 -0
- package/dist/utils/skills-sync.js.map +1 -0
- package/dist/utils/skills.d.ts +13 -0
- package/dist/utils/skills.d.ts.map +1 -0
- package/dist/utils/skills.js +117 -0
- package/dist/utils/skills.js.map +1 -0
- package/dist/utils/stream-input.d.ts +13 -0
- package/dist/utils/stream-input.d.ts.map +1 -0
- package/dist/utils/stream-input.js +36 -0
- package/dist/utils/stream-input.js.map +1 -0
- package/dist/utils/team-key-auth.d.ts +5 -0
- package/dist/utils/team-key-auth.d.ts.map +1 -0
- package/dist/utils/team-key-auth.js +14 -0
- package/dist/utils/team-key-auth.js.map +1 -0
- package/dist/utils/update-check.d.ts +2 -0
- package/dist/utils/update-check.d.ts.map +1 -0
- package/dist/utils/update-check.js +30 -0
- package/dist/utils/update-check.js.map +1 -0
- package/package.json +90 -0
- package/skills/README.md +64 -0
- package/skills/hunk-review/SKILL.md +154 -0
- package/skills/mesrai-business-rules-validation/SKILL.md +65 -0
- package/skills/mesrai-centralized-config/SKILL.md +102 -0
- package/skills/mesrai-mesrai-rules/SKILL.md +103 -0
- package/skills/mesrai-mesrai-rules/instructions/create-mesrai-rule.md +56 -0
- package/skills/mesrai-mesrai-rules/instructions/update-mesrai-rule.md +63 -0
- package/skills/mesrai-mesrai-rules/instructions/view-mesrai-rules.md +65 -0
- package/skills/mesrai-mesrai-rules/rules/create-mesrai-rule.md +48 -0
- package/skills/mesrai-mesrai-rules/rules/update-mesrai-rule.md +55 -0
- package/skills/mesrai-mesrai-rules/rules/view-mesrai-rules.md +56 -0
- package/skills/mesrai-pr-suggestions-resolver/SKILL.md +61 -0
- package/skills/mesrai-review/SKILL.md +53 -0
- package/skills/mesrai-review-dev/SKILL.md +55 -0
- package/skills/mesrai-review-dev/scripts/run-local-cli.sh +49 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { cliWarn } from '../utils/logger.js';
|
|
3
|
+
const MAX_FILES = 500;
|
|
4
|
+
const MAX_DIFF_SIZE = 1024 * 1024; // 1MB
|
|
5
|
+
const MAX_CONTENT_SIZE = 5 * 1024 * 1024; // 5MB
|
|
6
|
+
export function filterReviewFiles(files, quiet = false) {
|
|
7
|
+
const skipped = [];
|
|
8
|
+
const filtered = files.filter((file) => {
|
|
9
|
+
const diffBytes = Buffer.byteLength(file.diff, 'utf8');
|
|
10
|
+
const contentBytes = Buffer.byteLength(file.content, 'utf8');
|
|
11
|
+
if (diffBytes > MAX_DIFF_SIZE) {
|
|
12
|
+
const sizeKB = Math.round(diffBytes / 1024);
|
|
13
|
+
skipped.push(` - ${file.path} (diff: ${sizeKB}KB, max: ${MAX_DIFF_SIZE / 1024}KB)`);
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
if (contentBytes > MAX_CONTENT_SIZE) {
|
|
17
|
+
const sizeMB = (contentBytes / (1024 * 1024)).toFixed(1);
|
|
18
|
+
skipped.push(` - ${file.path} (content: ${sizeMB}MB, max: ${MAX_CONTENT_SIZE / (1024 * 1024)}MB)`);
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
return true;
|
|
22
|
+
});
|
|
23
|
+
if (!quiet && skipped.length > 0) {
|
|
24
|
+
cliWarn(chalk.yellow(`⚠ Skipped ${skipped.length} file(s) exceeding size limits:`));
|
|
25
|
+
skipped.forEach((message) => cliWarn(chalk.yellow(message)));
|
|
26
|
+
}
|
|
27
|
+
if (filtered.length > MAX_FILES) {
|
|
28
|
+
if (!quiet) {
|
|
29
|
+
cliWarn(chalk.yellow(`⚠ Too many files (${filtered.length}), sending first ${MAX_FILES}`));
|
|
30
|
+
}
|
|
31
|
+
return filtered.slice(0, MAX_FILES);
|
|
32
|
+
}
|
|
33
|
+
return filtered;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=review-file-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-file-filter.js","sourceRoot":"","sources":["../../src/services/review-file-filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM;AACzC,MAAM,gBAAgB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM;AAEhD,MAAM,UAAU,iBAAiB,CAC7B,KAAoB,EACpB,KAAK,GAAG,KAAK;IAEb,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACnC,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE7D,IAAI,SAAS,GAAG,aAAa,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,CACR,OAAO,IAAI,CAAC,IAAI,WAAW,MAAM,YAAY,aAAa,GAAG,IAAI,KAAK,CACzE,CAAC;YACF,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,YAAY,GAAG,gBAAgB,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,CAAC,YAAY,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACzD,OAAO,CAAC,IAAI,CACR,OAAO,IAAI,CAAC,IAAI,cAAc,MAAM,YAAY,gBAAgB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CACxF,CAAC;YACF,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,CACH,KAAK,CAAC,MAAM,CACR,aAAa,OAAO,CAAC,MAAM,iCAAiC,CAC/D,CACJ,CAAC;QACF,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,CACH,KAAK,CAAC,MAAM,CACR,qBAAqB,QAAQ,CAAC,MAAM,oBAAoB,SAAS,EAAE,CACtE,CACJ,CAAC;QACN,CAAC;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ApiFileSuggestion, ApiPrLevelSuggestion, PullRequestSuggestionsResponse, ReviewIssue, ReviewResult, Severity } from '../types/review.js';
|
|
2
|
+
export declare function normalizeSeverity(severity?: string): Severity;
|
|
3
|
+
export declare function mapFileSuggestions(files: ApiFileSuggestion[]): ReviewIssue[];
|
|
4
|
+
export declare function mapPrLevelSuggestions(prLevel: ApiPrLevelSuggestion[]): ReviewIssue[];
|
|
5
|
+
export declare function normalizeSuggestionsResponse(response: PullRequestSuggestionsResponse): ReviewResult;
|
|
6
|
+
//# sourceMappingURL=review-normalizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-normalizer.d.ts","sourceRoot":"","sources":["../../src/services/review-normalizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,iBAAiB,EACjB,oBAAoB,EAEpB,8BAA8B,EAC9B,WAAW,EACX,YAAY,EACZ,QAAQ,EACX,MAAM,oBAAoB,CAAC;AAE5B,wBAAgB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,CAe7D;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,WAAW,EAAE,CAU5E;AAED,wBAAgB,qBAAqB,CACjC,OAAO,EAAE,oBAAoB,EAAE,GAChC,WAAW,EAAE,CASf;AAED,wBAAgB,4BAA4B,CACxC,QAAQ,EAAE,8BAA8B,GACzC,YAAY,CA0Bd"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
export function normalizeSeverity(severity) {
|
|
2
|
+
if (!severity) {
|
|
3
|
+
return 'info';
|
|
4
|
+
}
|
|
5
|
+
const normalized = severity.toLowerCase();
|
|
6
|
+
if (normalized === 'critical') {
|
|
7
|
+
return 'critical';
|
|
8
|
+
}
|
|
9
|
+
if (normalized === 'high' || normalized === 'error') {
|
|
10
|
+
return 'error';
|
|
11
|
+
}
|
|
12
|
+
if (normalized === 'medium' || normalized === 'warning') {
|
|
13
|
+
return 'warning';
|
|
14
|
+
}
|
|
15
|
+
return 'info';
|
|
16
|
+
}
|
|
17
|
+
export function mapFileSuggestions(files) {
|
|
18
|
+
return files.map((suggestion) => ({
|
|
19
|
+
file: suggestion.filePath ?? suggestion.relevantFile,
|
|
20
|
+
line: suggestion.relevantLinesStart ?? 1,
|
|
21
|
+
endLine: suggestion.relevantLinesEnd,
|
|
22
|
+
severity: normalizeSeverity(suggestion.severity),
|
|
23
|
+
message: suggestion.suggestionContent,
|
|
24
|
+
suggestion: suggestion.oneSentenceSummary,
|
|
25
|
+
ruleId: suggestion.label,
|
|
26
|
+
}));
|
|
27
|
+
}
|
|
28
|
+
export function mapPrLevelSuggestions(prLevel) {
|
|
29
|
+
return prLevel.map((suggestion) => ({
|
|
30
|
+
file: 'PR',
|
|
31
|
+
line: 0,
|
|
32
|
+
severity: normalizeSeverity(suggestion.severity),
|
|
33
|
+
message: suggestion.suggestionContent,
|
|
34
|
+
suggestion: suggestion.oneSentenceSummary,
|
|
35
|
+
ruleId: suggestion.label,
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
export function normalizeSuggestionsResponse(response) {
|
|
39
|
+
let issues = [];
|
|
40
|
+
if (Array.isArray(response.issues)) {
|
|
41
|
+
issues = response.issues;
|
|
42
|
+
}
|
|
43
|
+
else if (Array.isArray(response.suggestions)) {
|
|
44
|
+
issues = response.suggestions;
|
|
45
|
+
}
|
|
46
|
+
else if (response.suggestions &&
|
|
47
|
+
typeof response.suggestions === 'object') {
|
|
48
|
+
const suggestionsObj = response.suggestions;
|
|
49
|
+
issues = [
|
|
50
|
+
...mapFileSuggestions(suggestionsObj.files ?? []),
|
|
51
|
+
...mapPrLevelSuggestions(suggestionsObj.prLevel ?? []),
|
|
52
|
+
];
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
summary: response.summary ?? 'Pull request suggestions',
|
|
56
|
+
issues,
|
|
57
|
+
filesAnalyzed: response.filesAnalyzed ??
|
|
58
|
+
new Set(issues.map((issue) => issue.file)).size,
|
|
59
|
+
duration: response.duration ?? 0,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=review-normalizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-normalizer.js","sourceRoot":"","sources":["../../src/services/review-normalizer.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,iBAAiB,CAAC,QAAiB;IAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC1C,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC5B,OAAO,UAAU,CAAC;IACtB,CAAC;IACD,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QAClD,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QACtD,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAA0B;IACzD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,YAAY;QACpD,IAAI,EAAE,UAAU,CAAC,kBAAkB,IAAI,CAAC;QACxC,OAAO,EAAE,UAAU,CAAC,gBAAgB;QACpC,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC;QAChD,OAAO,EAAE,UAAU,CAAC,iBAAiB;QACrC,UAAU,EAAE,UAAU,CAAC,kBAAkB;QACzC,MAAM,EAAE,UAAU,CAAC,KAAK;KAC3B,CAAC,CAAC,CAAC;AACR,CAAC;AAED,MAAM,UAAU,qBAAqB,CACjC,OAA+B;IAE/B,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAChC,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,CAAC;QACP,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC;QAChD,OAAO,EAAE,UAAU,CAAC,iBAAiB;QACrC,UAAU,EAAE,UAAU,CAAC,kBAAkB;QACzC,MAAM,EAAE,UAAU,CAAC,KAAK;KAC3B,CAAC,CAAC,CAAC;AACR,CAAC;AAED,MAAM,UAAU,4BAA4B,CACxC,QAAwC;IAExC,IAAI,MAAM,GAAkB,EAAE,CAAC;IAE/B,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC7B,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7C,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC;IAClC,CAAC;SAAM,IACH,QAAQ,CAAC,WAAW;QACpB,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ,EAC1C,CAAC;QACC,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAmC,CAAC;QACpE,MAAM,GAAG;YACL,GAAG,kBAAkB,CAAC,cAAc,CAAC,KAAK,IAAI,EAAE,CAAC;YACjD,GAAG,qBAAqB,CAAC,cAAc,CAAC,OAAO,IAAI,EAAE,CAAC;SACzD,CAAC;IACN,CAAC;IAED,OAAO;QACH,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,0BAA0B;QACvD,MAAM;QACN,aAAa,EACT,QAAQ,CAAC,aAAa;YACtB,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;QACnD,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,CAAC;KACnC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { FileContent, ReviewConfig } from '../types/review.js';
|
|
2
|
+
export declare function createAnalyzeStartVerboseMessages({ diff, rulesOnly, fast, }: {
|
|
3
|
+
diff: string;
|
|
4
|
+
rulesOnly?: boolean;
|
|
5
|
+
fast?: boolean;
|
|
6
|
+
}): string[];
|
|
7
|
+
export declare function createFullFileContentsVerboseMessages(files: FileContent[] | undefined): string[];
|
|
8
|
+
export declare function createAnalyzeApiRequestVerboseMessages({ diff, reviewConfig, mode, gitInfo, }: {
|
|
9
|
+
diff: string;
|
|
10
|
+
reviewConfig: ReviewConfig;
|
|
11
|
+
mode: 'team-key' | 'personal-token';
|
|
12
|
+
gitInfo?: {
|
|
13
|
+
branch?: string;
|
|
14
|
+
remote?: string | null;
|
|
15
|
+
};
|
|
16
|
+
}): string[];
|
|
17
|
+
export declare function createAnalyzeApiResponseVerboseMessages({ summary, issuesCount, filesAnalyzed, }: {
|
|
18
|
+
summary: string;
|
|
19
|
+
issuesCount: number;
|
|
20
|
+
filesAnalyzed: number;
|
|
21
|
+
}): string[];
|
|
22
|
+
export declare function createTrialAnalyzeStartVerboseMessages(diff: string): string[];
|
|
23
|
+
export declare function createTrialAnalyzeResponseVerboseMessages({ summary, issuesCount, filesAnalyzed, }: {
|
|
24
|
+
summary: string;
|
|
25
|
+
issuesCount: number;
|
|
26
|
+
filesAnalyzed: number;
|
|
27
|
+
}): string[];
|
|
28
|
+
//# sourceMappingURL=review-verbose.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-verbose.d.ts","sourceRoot":"","sources":["../../src/services/review-verbose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEpE,wBAAgB,iCAAiC,CAAC,EAC9C,IAAI,EACJ,SAAS,EACT,IAAI,GACP,EAAE;IACC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,MAAM,EAAE,CAKX;AAED,wBAAgB,qCAAqC,CACjD,KAAK,EAAE,WAAW,EAAE,GAAG,SAAS,GACjC,MAAM,EAAE,CASV;AAED,wBAAgB,sCAAsC,CAAC,EACnD,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,OAAO,GACV,EAAE;IACC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,YAAY,CAAC;IAC3B,IAAI,EAAE,UAAU,GAAG,gBAAgB,CAAC;IACpC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACzD,GAAG,MAAM,EAAE,CAeX;AAED,wBAAgB,uCAAuC,CAAC,EACpD,OAAO,EACP,WAAW,EACX,aAAa,GAChB,EAAE;IACC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACzB,GAAG,MAAM,EAAE,CAOX;AAED,wBAAgB,sCAAsC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAO7E;AAED,wBAAgB,yCAAyC,CAAC,EACtD,OAAO,EACP,WAAW,EACX,aAAa,GAChB,EAAE;IACC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACzB,GAAG,MAAM,EAAE,CAOX"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export function createAnalyzeStartVerboseMessages({ diff, rulesOnly, fast, }) {
|
|
2
|
+
return [
|
|
3
|
+
`[verbose] Review config: rulesOnly=${!!rulesOnly}, fast=${!!fast}`,
|
|
4
|
+
`[verbose] Diff size: ${diff.length} characters`,
|
|
5
|
+
];
|
|
6
|
+
}
|
|
7
|
+
export function createFullFileContentsVerboseMessages(files) {
|
|
8
|
+
const safeFiles = files ?? [];
|
|
9
|
+
return [
|
|
10
|
+
`[verbose] Full file contents: ${safeFiles.length} file(s)`,
|
|
11
|
+
...safeFiles.map((file) => `[verbose] - ${file.path}: ${file.content.length} chars, status=${file.status}`),
|
|
12
|
+
];
|
|
13
|
+
}
|
|
14
|
+
export function createAnalyzeApiRequestVerboseMessages({ diff, reviewConfig, mode, gitInfo, }) {
|
|
15
|
+
const lines = mode === 'team-key'
|
|
16
|
+
? [
|
|
17
|
+
'[verbose] Using team key with metrics',
|
|
18
|
+
`[verbose] Git info: branch=${gitInfo?.branch ?? ''}, remote=${gitInfo?.remote ?? ''}`,
|
|
19
|
+
]
|
|
20
|
+
: ['[verbose] Using personal token (no metrics)'];
|
|
21
|
+
return [
|
|
22
|
+
...lines,
|
|
23
|
+
'[verbose] Sending to API:',
|
|
24
|
+
`[verbose] - diff length: ${diff.length} chars`,
|
|
25
|
+
`[verbose] - config: ${JSON.stringify(reviewConfig)}`,
|
|
26
|
+
];
|
|
27
|
+
}
|
|
28
|
+
export function createAnalyzeApiResponseVerboseMessages({ summary, issuesCount, filesAnalyzed, }) {
|
|
29
|
+
return [
|
|
30
|
+
'[verbose] API response:',
|
|
31
|
+
`[verbose] - summary: ${summary}`,
|
|
32
|
+
`[verbose] - issues: ${issuesCount}`,
|
|
33
|
+
`[verbose] - filesAnalyzed: ${filesAnalyzed}`,
|
|
34
|
+
];
|
|
35
|
+
}
|
|
36
|
+
export function createTrialAnalyzeStartVerboseMessages(diff) {
|
|
37
|
+
const preview = diff.substring(0, 300);
|
|
38
|
+
return [
|
|
39
|
+
'[verbose] Running trial analyze',
|
|
40
|
+
`[verbose] Diff size: ${diff.length} characters`,
|
|
41
|
+
`[verbose] Diff preview:\n${preview}${diff.length > 300 ? '\n... (truncated)' : ''}`,
|
|
42
|
+
];
|
|
43
|
+
}
|
|
44
|
+
export function createTrialAnalyzeResponseVerboseMessages({ summary, issuesCount, filesAnalyzed, }) {
|
|
45
|
+
return [
|
|
46
|
+
'[verbose] Trial API response:',
|
|
47
|
+
`[verbose] - summary: ${summary}`,
|
|
48
|
+
`[verbose] - issues: ${issuesCount}`,
|
|
49
|
+
`[verbose] - filesAnalyzed: ${filesAnalyzed}`,
|
|
50
|
+
];
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=review-verbose.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-verbose.js","sourceRoot":"","sources":["../../src/services/review-verbose.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,iCAAiC,CAAC,EAC9C,IAAI,EACJ,SAAS,EACT,IAAI,GAKP;IACG,OAAO;QACH,sCAAsC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,IAAI,EAAE;QACnE,wBAAwB,IAAI,CAAC,MAAM,aAAa;KACnD,CAAC;AACN,CAAC;AAED,MAAM,UAAU,qCAAqC,CACjD,KAAgC;IAEhC,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE,CAAC;IAC9B,OAAO;QACH,iCAAiC,SAAS,CAAC,MAAM,UAAU;QAC3D,GAAG,SAAS,CAAC,GAAG,CACZ,CAAC,IAAI,EAAE,EAAE,CACL,iBAAiB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,kBAAkB,IAAI,CAAC,MAAM,EAAE,CACxF;KACJ,CAAC;AACN,CAAC;AAED,MAAM,UAAU,sCAAsC,CAAC,EACnD,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,OAAO,GAMV;IACG,MAAM,KAAK,GACP,IAAI,KAAK,UAAU;QACf,CAAC,CAAC;YACI,uCAAuC;YACvC,8BAA8B,OAAO,EAAE,MAAM,IAAI,EAAE,YAAY,OAAO,EAAE,MAAM,IAAI,EAAE,EAAE;SACzF;QACH,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC;IAE1D,OAAO;QACH,GAAG,KAAK;QACR,2BAA2B;QAC3B,8BAA8B,IAAI,CAAC,MAAM,QAAQ;QACjD,yBAAyB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;KAC1D,CAAC;AACN,CAAC;AAED,MAAM,UAAU,uCAAuC,CAAC,EACpD,OAAO,EACP,WAAW,EACX,aAAa,GAKhB;IACG,OAAO;QACH,yBAAyB;QACzB,0BAA0B,OAAO,EAAE;QACnC,yBAAyB,WAAW,EAAE;QACtC,gCAAgC,aAAa,EAAE;KAClD,CAAC;AACN,CAAC;AAED,MAAM,UAAU,sCAAsC,CAAC,IAAY;IAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvC,OAAO;QACH,iCAAiC;QACjC,wBAAwB,IAAI,CAAC,MAAM,aAAa;QAChD,4BAA4B,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,EAAE;KACvF,CAAC;AACN,CAAC;AAED,MAAM,UAAU,yCAAyC,CAAC,EACtD,OAAO,EACP,WAAW,EACX,aAAa,GAKhB;IACG,OAAO;QACH,+BAA+B;QAC/B,0BAA0B,OAAO,EAAE;QACnC,yBAAyB,WAAW,EAAE;QACtC,gCAAgC,aAAa,EAAE;KAClD,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { BusinessValidationResponse, ReviewResult, Severity, TrialReviewResult } from '../types/review.js';
|
|
2
|
+
declare class ReviewService {
|
|
3
|
+
private verbose;
|
|
4
|
+
setVerbose(verbose: boolean): void;
|
|
5
|
+
private logVerbose;
|
|
6
|
+
analyze(diff: string, rulesOnly?: boolean, fast?: boolean, options?: {
|
|
7
|
+
files?: string[];
|
|
8
|
+
staged?: boolean;
|
|
9
|
+
commit?: string;
|
|
10
|
+
branch?: string;
|
|
11
|
+
quiet?: boolean;
|
|
12
|
+
onProgress?: (status: string) => void;
|
|
13
|
+
}): Promise<ReviewResult>;
|
|
14
|
+
getPullRequestSuggestions(params: {
|
|
15
|
+
prUrl?: string;
|
|
16
|
+
prNumber?: number;
|
|
17
|
+
repositoryId?: string;
|
|
18
|
+
format?: 'markdown';
|
|
19
|
+
severity?: string;
|
|
20
|
+
category?: string;
|
|
21
|
+
}): Promise<{
|
|
22
|
+
result: ReviewResult;
|
|
23
|
+
markdown?: string;
|
|
24
|
+
}>;
|
|
25
|
+
triggerBusinessValidation(params: {
|
|
26
|
+
repository?: string;
|
|
27
|
+
taskUrl?: string;
|
|
28
|
+
taskId?: string;
|
|
29
|
+
diff?: string;
|
|
30
|
+
}): Promise<BusinessValidationResponse>;
|
|
31
|
+
trialAnalyze(diff: string, options?: {
|
|
32
|
+
githubPat?: string;
|
|
33
|
+
}): Promise<TrialReviewResult>;
|
|
34
|
+
normalizeSeverity(severity?: string): Severity;
|
|
35
|
+
}
|
|
36
|
+
export declare const reviewService: ReviewService;
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=review.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.service.d.ts","sourceRoot":"","sources":["../../src/services/review.service.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EACR,0BAA0B,EAE1B,YAAY,EACZ,QAAQ,EACR,iBAAiB,EACpB,MAAM,oBAAoB,CAAC;AAE5B,cAAM,aAAa;IACf,OAAO,CAAC,OAAO,CAAkB;IAEjC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC,OAAO,CAAC,UAAU;IAOZ,OAAO,CACT,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,OAAO,EACnB,IAAI,CAAC,EAAE,OAAO,EACd,OAAO,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;KACzC,GACF,OAAO,CAAC,YAAY,CAAC;IAyGlB,yBAAyB,CAAC,MAAM,EAAE;QACpC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,MAAM,CAAC,EAAE,UAAU,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,YAAY,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAsBlD,yBAAyB,CAAC,MAAM,EAAE;QACpC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAWjC,YAAY,CACd,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GACjC,OAAO,CAAC,iBAAiB,CAAC;IAuC7B,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ;CAGjD;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { api } from './api/index.js';
|
|
2
|
+
import { authService } from './auth.service.js';
|
|
3
|
+
import { gitService } from './git.service.js';
|
|
4
|
+
import { getTrialIdentifier } from '../utils/rate-limit.js';
|
|
5
|
+
import { loadConfig } from '../utils/config.js';
|
|
6
|
+
import { CLI_VERSION } from '../constants.js';
|
|
7
|
+
import chalk from 'chalk';
|
|
8
|
+
import { cliDebug } from '../utils/logger.js';
|
|
9
|
+
import { withTeamKeyFallback } from './review-auth-fallback.js';
|
|
10
|
+
import { buildReviewConfig } from './review-config-builder.js';
|
|
11
|
+
import { filterReviewFiles } from './review-file-filter.js';
|
|
12
|
+
import { createAnalyzeApiRequestVerboseMessages, createAnalyzeApiResponseVerboseMessages, createAnalyzeStartVerboseMessages, createFullFileContentsVerboseMessages, createTrialAnalyzeResponseVerboseMessages, createTrialAnalyzeStartVerboseMessages, } from './review-verbose.js';
|
|
13
|
+
import { normalizeSeverity, normalizeSuggestionsResponse, } from './review-normalizer.js';
|
|
14
|
+
class ReviewService {
|
|
15
|
+
verbose = false;
|
|
16
|
+
setVerbose(verbose) {
|
|
17
|
+
this.verbose = verbose;
|
|
18
|
+
}
|
|
19
|
+
logVerbose(message) {
|
|
20
|
+
if (!this.verbose) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
cliDebug(chalk.dim(message));
|
|
24
|
+
}
|
|
25
|
+
async analyze(diff, rulesOnly, fast, options) {
|
|
26
|
+
const token = await authService.getValidToken();
|
|
27
|
+
createAnalyzeStartVerboseMessages({ diff, rulesOnly, fast }).forEach((message) => this.logVerbose(message));
|
|
28
|
+
const reviewConfig = await buildReviewConfig({
|
|
29
|
+
rulesOnly,
|
|
30
|
+
fast,
|
|
31
|
+
options,
|
|
32
|
+
getFullFileContents: (files, fileOptions) => gitService.getFullFileContents(files, fileOptions),
|
|
33
|
+
filterFiles: filterReviewFiles,
|
|
34
|
+
});
|
|
35
|
+
createFullFileContentsVerboseMessages(reviewConfig.files).forEach((message) => this.logVerbose(message));
|
|
36
|
+
const teamConfig = await loadConfig();
|
|
37
|
+
const isTeamKey = token.startsWith('mesrai_');
|
|
38
|
+
if (isTeamKey && teamConfig) {
|
|
39
|
+
const gitInfo = await gitService.getGitInfo();
|
|
40
|
+
const inferredPlatform = gitInfo.remote
|
|
41
|
+
? gitService.inferPlatform(gitInfo.remote)
|
|
42
|
+
: undefined;
|
|
43
|
+
createAnalyzeApiRequestVerboseMessages({
|
|
44
|
+
diff,
|
|
45
|
+
reviewConfig,
|
|
46
|
+
mode: 'team-key',
|
|
47
|
+
gitInfo: {
|
|
48
|
+
branch: gitInfo.branch,
|
|
49
|
+
remote: gitInfo.remote,
|
|
50
|
+
},
|
|
51
|
+
}).forEach((message) => this.logVerbose(message));
|
|
52
|
+
const result = await api.review.analyzeWithMetrics(diff, token, reviewConfig, {
|
|
53
|
+
userEmail: gitInfo.userEmail,
|
|
54
|
+
gitRemote: gitInfo.remote || undefined,
|
|
55
|
+
branch: gitInfo.branch,
|
|
56
|
+
commitSha: gitInfo.commitSha,
|
|
57
|
+
mergeBaseSha: gitInfo.mergeBaseSha,
|
|
58
|
+
inferredPlatform,
|
|
59
|
+
cliVersion: CLI_VERSION,
|
|
60
|
+
}, options?.onProgress);
|
|
61
|
+
createAnalyzeApiResponseVerboseMessages({
|
|
62
|
+
summary: result.summary,
|
|
63
|
+
issuesCount: result.issues?.length ?? 0,
|
|
64
|
+
filesAnalyzed: result.filesAnalyzed,
|
|
65
|
+
}).forEach((message) => this.logVerbose(message));
|
|
66
|
+
return result;
|
|
67
|
+
}
|
|
68
|
+
// Personal token: also send git context for repository-scoped rules
|
|
69
|
+
const gitInfo = await gitService.getGitInfo();
|
|
70
|
+
const inferredPlatform = gitInfo.remote
|
|
71
|
+
? gitService.inferPlatform(gitInfo.remote)
|
|
72
|
+
: undefined;
|
|
73
|
+
createAnalyzeApiRequestVerboseMessages({
|
|
74
|
+
diff,
|
|
75
|
+
reviewConfig,
|
|
76
|
+
mode: 'personal-token',
|
|
77
|
+
gitInfo: {
|
|
78
|
+
branch: gitInfo.branch,
|
|
79
|
+
remote: gitInfo.remote,
|
|
80
|
+
},
|
|
81
|
+
}).forEach((message) => this.logVerbose(message));
|
|
82
|
+
const result = await api.review.analyzeWithMetrics(diff, token, reviewConfig, {
|
|
83
|
+
userEmail: gitInfo.userEmail,
|
|
84
|
+
gitRemote: gitInfo.remote || undefined,
|
|
85
|
+
branch: gitInfo.branch,
|
|
86
|
+
commitSha: gitInfo.commitSha,
|
|
87
|
+
mergeBaseSha: gitInfo.mergeBaseSha,
|
|
88
|
+
inferredPlatform,
|
|
89
|
+
cliVersion: CLI_VERSION,
|
|
90
|
+
}, options?.onProgress);
|
|
91
|
+
createAnalyzeApiResponseVerboseMessages({
|
|
92
|
+
summary: result.summary,
|
|
93
|
+
issuesCount: result.issues?.length ?? 0,
|
|
94
|
+
filesAnalyzed: result.filesAnalyzed,
|
|
95
|
+
}).forEach((message) => this.logVerbose(message));
|
|
96
|
+
return result;
|
|
97
|
+
}
|
|
98
|
+
async getPullRequestSuggestions(params) {
|
|
99
|
+
if (!params.prUrl && !(params.prNumber && params.repositoryId)) {
|
|
100
|
+
throw new Error('Provide prUrl or prNumber with repositoryId to fetch pull request suggestions.');
|
|
101
|
+
}
|
|
102
|
+
const token = await authService.getValidToken();
|
|
103
|
+
const response = await withTeamKeyFallback({
|
|
104
|
+
token,
|
|
105
|
+
loadConfig,
|
|
106
|
+
operation: (activeToken) => api.review.getPullRequestSuggestions(activeToken, params),
|
|
107
|
+
});
|
|
108
|
+
return {
|
|
109
|
+
result: normalizeSuggestionsResponse(response),
|
|
110
|
+
markdown: response.markdown,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
async triggerBusinessValidation(params) {
|
|
114
|
+
const token = await authService.getValidToken();
|
|
115
|
+
return await withTeamKeyFallback({
|
|
116
|
+
token,
|
|
117
|
+
loadConfig,
|
|
118
|
+
operation: (activeToken) => api.review.triggerBusinessValidation(activeToken, params),
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
async trialAnalyze(diff, options) {
|
|
122
|
+
const fingerprint = await getTrialIdentifier();
|
|
123
|
+
// Pull git context so the sandbox can clone+apply (mergeBaseSha,
|
|
124
|
+
// remote, branch, commitSha). Failures are non-fatal — getGitInfo
|
|
125
|
+
// already swallows individual lookup errors.
|
|
126
|
+
const gitInfo = await gitService.getGitInfo();
|
|
127
|
+
const inferredPlatform = gitInfo.remote
|
|
128
|
+
? gitService.inferPlatform(gitInfo.remote)
|
|
129
|
+
: undefined;
|
|
130
|
+
createTrialAnalyzeStartVerboseMessages(diff).forEach((message) => this.logVerbose(message));
|
|
131
|
+
const result = await api.review.trialAnalyze(diff, fingerprint, {
|
|
132
|
+
userEmail: gitInfo.userEmail,
|
|
133
|
+
gitRemote: gitInfo.remote || undefined,
|
|
134
|
+
branch: gitInfo.branch,
|
|
135
|
+
commitSha: gitInfo.commitSha,
|
|
136
|
+
mergeBaseSha: gitInfo.mergeBaseSha,
|
|
137
|
+
inferredPlatform,
|
|
138
|
+
cliVersion: CLI_VERSION,
|
|
139
|
+
}, options?.githubPat);
|
|
140
|
+
createTrialAnalyzeResponseVerboseMessages({
|
|
141
|
+
summary: result.summary,
|
|
142
|
+
issuesCount: result.issues?.length ?? 0,
|
|
143
|
+
filesAnalyzed: result.filesAnalyzed,
|
|
144
|
+
}).forEach((message) => this.logVerbose(message));
|
|
145
|
+
return result;
|
|
146
|
+
}
|
|
147
|
+
normalizeSeverity(severity) {
|
|
148
|
+
return normalizeSeverity(severity);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
export const reviewService = new ReviewService();
|
|
152
|
+
//# sourceMappingURL=review.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.service.js","sourceRoot":"","sources":["../../src/services/review.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { MesraiRuleMutationResult, CreateMesraiRuleRequest, MesraiRule, UpdateMesraiRuleRequest, ViewMesraiRulesRequest } from '../types/rules.js';
|
|
2
|
+
export type UpdateMesraiRuleInput = {
|
|
3
|
+
ruleId: string;
|
|
4
|
+
} & UpdateMesraiRuleRequest;
|
|
5
|
+
declare class RulesService {
|
|
6
|
+
createRule(input: CreateMesraiRuleRequest): Promise<MesraiRuleMutationResult>;
|
|
7
|
+
updateRule(input: UpdateMesraiRuleInput): Promise<MesraiRuleMutationResult>;
|
|
8
|
+
viewRules(input?: ViewMesraiRulesRequest): Promise<MesraiRule[]>;
|
|
9
|
+
private normalizeSeverity;
|
|
10
|
+
private normalizeScope;
|
|
11
|
+
private requireText;
|
|
12
|
+
private normalizeOptionalText;
|
|
13
|
+
}
|
|
14
|
+
export { RulesService };
|
|
15
|
+
export declare const rulesService: RulesService;
|
|
16
|
+
//# sourceMappingURL=rules.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rules.service.d.ts","sourceRoot":"","sources":["../../src/services/rules.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,wBAAwB,EACxB,uBAAuB,EACvB,UAAU,EAGV,uBAAuB,EACvB,sBAAsB,EACzB,MAAM,mBAAmB,CAAC;AAK3B,MAAM,MAAM,qBAAqB,GAAG;IAChC,MAAM,EAAE,MAAM,CAAC;CAClB,GAAG,uBAAuB,CAAC;AAW5B,cAAM,YAAY;IACR,UAAU,CACZ,KAAK,EAAE,uBAAuB,GAC/B,OAAO,CAAC,wBAAwB,CAAC;IAe9B,UAAU,CACZ,KAAK,EAAE,qBAAqB,GAC7B,OAAO,CAAC,wBAAwB,CAAC;IAmD9B,SAAS,CAAC,KAAK,GAAE,sBAA2B,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAU1E,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,qBAAqB;CAIhC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,eAAO,MAAM,YAAY,cAAqB,CAAC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { CommandError } from '../utils/command-errors.js';
|
|
2
|
+
import { api } from './api/index.js';
|
|
3
|
+
import { authService } from './auth.service.js';
|
|
4
|
+
const VALID_SEVERITIES = [
|
|
5
|
+
'low',
|
|
6
|
+
'medium',
|
|
7
|
+
'high',
|
|
8
|
+
'critical',
|
|
9
|
+
];
|
|
10
|
+
const VALID_SCOPES = ['pull request', 'file'];
|
|
11
|
+
class RulesService {
|
|
12
|
+
async createRule(input) {
|
|
13
|
+
const accessToken = await authService.getValidToken();
|
|
14
|
+
const payload = {
|
|
15
|
+
title: this.requireText(input.title, 'title'),
|
|
16
|
+
rule: this.requireText(input.rule, 'rule'),
|
|
17
|
+
repositoryId: this.normalizeOptionalText(input.repositoryId) || 'global',
|
|
18
|
+
severity: this.normalizeSeverity(input.severity ?? 'medium'),
|
|
19
|
+
scope: this.normalizeScope(input.scope ?? 'file'),
|
|
20
|
+
path: this.normalizeOptionalText(input.path) || '**/*',
|
|
21
|
+
};
|
|
22
|
+
return api.rules.createRule(accessToken, payload);
|
|
23
|
+
}
|
|
24
|
+
async updateRule(input) {
|
|
25
|
+
const accessToken = await authService.getValidToken();
|
|
26
|
+
const ruleId = this.requireText(input.ruleId, 'rule-id');
|
|
27
|
+
let hasRuleChanges = false;
|
|
28
|
+
const payload = {};
|
|
29
|
+
const title = this.normalizeOptionalText(input.title);
|
|
30
|
+
if (title) {
|
|
31
|
+
payload.title = title;
|
|
32
|
+
hasRuleChanges = true;
|
|
33
|
+
}
|
|
34
|
+
const rule = this.normalizeOptionalText(input.rule);
|
|
35
|
+
if (rule) {
|
|
36
|
+
payload.rule = rule;
|
|
37
|
+
hasRuleChanges = true;
|
|
38
|
+
}
|
|
39
|
+
if (input.severity !== undefined) {
|
|
40
|
+
payload.severity = this.normalizeSeverity(input.severity);
|
|
41
|
+
hasRuleChanges = true;
|
|
42
|
+
}
|
|
43
|
+
if (input.scope !== undefined) {
|
|
44
|
+
payload.scope = this.normalizeScope(input.scope);
|
|
45
|
+
hasRuleChanges = true;
|
|
46
|
+
}
|
|
47
|
+
const path = this.normalizeOptionalText(input.path);
|
|
48
|
+
if (path) {
|
|
49
|
+
payload.path = path;
|
|
50
|
+
hasRuleChanges = true;
|
|
51
|
+
}
|
|
52
|
+
const repositoryId = this.normalizeOptionalText(input.repositoryId);
|
|
53
|
+
if (repositoryId) {
|
|
54
|
+
payload.repositoryId = repositoryId;
|
|
55
|
+
hasRuleChanges = true;
|
|
56
|
+
}
|
|
57
|
+
if (!hasRuleChanges) {
|
|
58
|
+
throw new CommandError('INVALID_INPUT', 'Provide at least one field to update: --repo-id, --title, --rule, --severity, --scope, or --path.');
|
|
59
|
+
}
|
|
60
|
+
return api.rules.updateRule(accessToken, ruleId, payload);
|
|
61
|
+
}
|
|
62
|
+
async viewRules(input = {}) {
|
|
63
|
+
const accessToken = await authService.getValidToken();
|
|
64
|
+
const query = {
|
|
65
|
+
repositoryId: this.normalizeOptionalText(input.repositoryId),
|
|
66
|
+
ruleId: this.normalizeOptionalText(input.ruleId),
|
|
67
|
+
};
|
|
68
|
+
return api.rules.viewRules(accessToken, query);
|
|
69
|
+
}
|
|
70
|
+
normalizeSeverity(value) {
|
|
71
|
+
const normalized = value.trim().toLowerCase();
|
|
72
|
+
if (!VALID_SEVERITIES.includes(normalized)) {
|
|
73
|
+
throw new CommandError('INVALID_INPUT', `Invalid severity '${value}'. Use one of: ${VALID_SEVERITIES.join(', ')}.`);
|
|
74
|
+
}
|
|
75
|
+
return normalized;
|
|
76
|
+
}
|
|
77
|
+
normalizeScope(value) {
|
|
78
|
+
const normalized = value.trim().toLowerCase();
|
|
79
|
+
if (!VALID_SCOPES.includes(normalized)) {
|
|
80
|
+
throw new CommandError('INVALID_INPUT', `Invalid scope '${value}'. Use one of: ${VALID_SCOPES.join(', ')}.`);
|
|
81
|
+
}
|
|
82
|
+
return normalized;
|
|
83
|
+
}
|
|
84
|
+
requireText(value, field) {
|
|
85
|
+
const normalized = value.trim();
|
|
86
|
+
if (!normalized) {
|
|
87
|
+
throw new CommandError('INVALID_INPUT', `--${field} cannot be empty.`);
|
|
88
|
+
}
|
|
89
|
+
return normalized;
|
|
90
|
+
}
|
|
91
|
+
normalizeOptionalText(value) {
|
|
92
|
+
const normalized = value?.trim();
|
|
93
|
+
return normalized ? normalized : undefined;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
export { RulesService };
|
|
97
|
+
export const rulesService = new RulesService();
|
|
98
|
+
//# sourceMappingURL=rules.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rules.service.js","sourceRoot":"","sources":["../../src/services/rules.service.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMhD,MAAM,gBAAgB,GAAyB;IAC3C,KAAK;IACL,QAAQ;IACR,MAAM;IACN,UAAU;CACb,CAAC;AAEF,MAAM,YAAY,GAAsB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AAEjE,MAAM,YAAY;IACd,KAAK,CAAC,UAAU,CACZ,KAA8B;QAE9B,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,aAAa,EAAE,CAAC;QACtD,MAAM,OAAO,GAA4B;YACrC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC;YAC7C,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;YAC1C,YAAY,EACR,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,QAAQ;YAC9D,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC;YAC5D,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC;YACjD,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,MAAM;SACzD,CAAC;QAEF,OAAO,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,UAAU,CACZ,KAA4B;QAE5B,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,aAAa,EAAE,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACzD,IAAI,cAAc,GAAG,KAAK,CAAC;QAE3B,MAAM,OAAO,GAA4B,EAAE,CAAC;QAE5C,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,KAAK,EAAE,CAAC;YACR,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;YACtB,cAAc,GAAG,IAAI,CAAC;QAC1B,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,IAAI,EAAE,CAAC;YACP,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;YACpB,cAAc,GAAG,IAAI,CAAC;QAC1B,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC1D,cAAc,GAAG,IAAI,CAAC;QAC1B,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjD,cAAc,GAAG,IAAI,CAAC;QAC1B,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,IAAI,EAAE,CAAC;YACP,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;YACpB,cAAc,GAAG,IAAI,CAAC;QAC1B,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI,YAAY,EAAE,CAAC;YACf,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC;YACpC,cAAc,GAAG,IAAI,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,MAAM,IAAI,YAAY,CAClB,eAAe,EACf,mGAAmG,CACtG,CAAC;QACN,CAAC;QAED,OAAO,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAgC,EAAE;QAC9C,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,aAAa,EAAE,CAAC;QACtD,MAAM,KAAK,GAA2B;YAClC,YAAY,EAAE,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,YAAY,CAAC;YAC5D,MAAM,EAAE,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC;SACnD,CAAC;QAEF,OAAO,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAEO,iBAAiB,CAAC,KAAa;QACnC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAwB,CAAC;QACpE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,YAAY,CAClB,eAAe,EACf,qBAAqB,KAAK,kBAAkB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC7E,CAAC;QACN,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAEO,cAAc,CAAC,KAAa;QAChC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAqB,CAAC;QACjE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,YAAY,CAClB,eAAe,EACf,kBAAkB,KAAK,kBAAkB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACtE,CAAC;QACN,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAEO,WAAW,CAAC,KAAa,EAAE,KAAa;QAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,IAAI,YAAY,CAClB,eAAe,EACf,KAAK,KAAK,mBAAmB,CAChC,CAAC;QACN,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAEO,qBAAqB,CAAC,KAAc;QACxC,MAAM,UAAU,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;QACjC,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;CACJ;AAED,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface LocalSessionData {
|
|
2
|
+
turnId: string;
|
|
3
|
+
transcriptPath: string;
|
|
4
|
+
transcriptOffset: number;
|
|
5
|
+
/** Set to true after turn_end is sent — prevents duplicate turn_end events */
|
|
6
|
+
turnCompleted?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function saveLocal(repoRoot: string, sessionId: string, data: LocalSessionData): Promise<void>;
|
|
9
|
+
export declare function loadLocal(repoRoot: string, sessionId: string): Promise<LocalSessionData | null>;
|
|
10
|
+
export declare function removeLocal(repoRoot: string, sessionId: string): Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* Mark the current turn as completed to prevent duplicate turn_end events
|
|
13
|
+
* (e.g. Stop + PostToolUse(TodoWrite) both triggering TurnEnd).
|
|
14
|
+
*/
|
|
15
|
+
export declare function markTurnCompleted(repoRoot: string, sessionId: string): Promise<void>;
|
|
16
|
+
export interface StaleSession {
|
|
17
|
+
sessionId: string;
|
|
18
|
+
ageMs: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* List session files older than maxAgeMs.
|
|
22
|
+
* Used on SessionStart to detect orphaned sessions from previous crashes.
|
|
23
|
+
*/
|
|
24
|
+
export declare function listStaleSessions(repoRoot: string, maxAgeMs: number): Promise<StaleSession[]>;
|
|
25
|
+
//# sourceMappingURL=session-local.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-local.service.d.ts","sourceRoot":"","sources":["../../src/services/session-local.service.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAYD,wBAAsB,SAAS,CAC3B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,gBAAgB,GACvB,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,SAAS,CAC3B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAUlC;AAED,wBAAsB,WAAW,CAC7B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACnC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACnC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,EAAE,CAAC,CAgCzB"}
|