@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,44 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
import { execa } from 'execa';
|
|
4
|
+
const require = createRequire(import.meta.url);
|
|
5
|
+
let cachedHunkBin = null;
|
|
6
|
+
export function resolveHunkBin() {
|
|
7
|
+
if (cachedHunkBin) {
|
|
8
|
+
return cachedHunkBin;
|
|
9
|
+
}
|
|
10
|
+
const pkgPath = require.resolve('hunkdiff/package.json');
|
|
11
|
+
const pkg = require('hunkdiff/package.json');
|
|
12
|
+
let binRelative;
|
|
13
|
+
if (typeof pkg.bin === 'string') {
|
|
14
|
+
binRelative = pkg.bin;
|
|
15
|
+
}
|
|
16
|
+
else if (pkg.bin && typeof pkg.bin === 'object') {
|
|
17
|
+
binRelative = pkg.bin.hunk ?? Object.values(pkg.bin)[0];
|
|
18
|
+
}
|
|
19
|
+
if (!binRelative) {
|
|
20
|
+
throw new Error('hunkdiff package.json is missing a bin entry — cannot locate the hunk binary.');
|
|
21
|
+
}
|
|
22
|
+
cachedHunkBin = path.resolve(path.dirname(pkgPath), binRelative);
|
|
23
|
+
return cachedHunkBin;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Spawn the bundled hunk binary with `process.execPath` so we don't depend on
|
|
27
|
+
* the shebang resolving correctly across platforms. stdio defaults to inherit
|
|
28
|
+
* so the TUI takes over the terminal.
|
|
29
|
+
*/
|
|
30
|
+
export async function runHunk(args, options = {}) {
|
|
31
|
+
const bin = resolveHunkBin();
|
|
32
|
+
const result = await execa(process.execPath, [bin, ...args], {
|
|
33
|
+
stdio: 'inherit',
|
|
34
|
+
reject: false,
|
|
35
|
+
...(options.execa ?? {}),
|
|
36
|
+
});
|
|
37
|
+
return { exitCode: result.exitCode ?? 0 };
|
|
38
|
+
}
|
|
39
|
+
export function isHunkExecError(error) {
|
|
40
|
+
return Boolean(error &&
|
|
41
|
+
typeof error === 'object' &&
|
|
42
|
+
'shortMessage' in error);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=hunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hunk.js","sourceRoot":"","sources":["../../src/utils/hunk.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAiD,MAAM,OAAO,CAAC;AAE7E,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAM/C,IAAI,aAAa,GAAkB,IAAI,CAAC;AAExC,MAAM,UAAU,cAAc;IAC1B,IAAI,aAAa,EAAE,CAAC;QAChB,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACzD,MAAM,GAAG,GAAG,OAAO,CAAC,uBAAuB,CAAoB,CAAC;IAEhE,IAAI,WAA+B,CAAC;IACpC,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC9B,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC;IAC1B,CAAC;SAAM,IAAI,GAAG,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QAChD,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACX,+EAA+E,CAClF,CAAC;IACN,CAAC;IAED,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;IACjE,OAAO,aAAa,CAAC;AACzB,CAAC;AAMD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CACzB,IAAc,EACd,UAAoC,EAAE;IAEtC,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE;QACzD,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,KAAK;QACb,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;KAC3B,CAAC,CAAC;IAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC1C,OAAO,OAAO,CACV,KAAK;QACL,OAAO,KAAK,KAAK,QAAQ;QACzB,cAAc,IAAK,KAAiC,CACvD,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { OutputFormat } from '../types/cli.js';
|
|
2
|
+
export declare function parseOptionalNumber(raw: string | undefined, flag: string): number | undefined;
|
|
3
|
+
export declare function parseCsvEnumList(raw: string | undefined, flag: string, allowed: readonly string[]): string[] | undefined;
|
|
4
|
+
export declare function validateHttpUrl(raw: string, flag: string): string;
|
|
5
|
+
export declare function parseFieldList(raw: string | undefined): string[] | undefined;
|
|
6
|
+
export declare function assertStructuredOutputForFields(input: {
|
|
7
|
+
fields?: string;
|
|
8
|
+
format: OutputFormat;
|
|
9
|
+
isAgent: boolean;
|
|
10
|
+
}): void;
|
|
11
|
+
//# sourceMappingURL=input-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-validation.d.ts","sourceRoot":"","sources":["../../src/utils/input-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGpD,wBAAgB,mBAAmB,CAC/B,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,IAAI,EAAE,MAAM,GACb,MAAM,GAAG,SAAS,CAmBpB;AAED,wBAAgB,gBAAgB,CAC5B,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,SAAS,MAAM,EAAE,GAC3B,MAAM,EAAE,GAAG,SAAS,CA+BtB;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAajE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,GAAG,SAAS,CAe5E;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CACpB,GAAG,IAAI,CAaP"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { CommandError } from './command-errors.js';
|
|
2
|
+
export function parseOptionalNumber(raw, flag) {
|
|
3
|
+
if (raw === undefined) {
|
|
4
|
+
return undefined;
|
|
5
|
+
}
|
|
6
|
+
const value = Number(raw);
|
|
7
|
+
if (!Number.isFinite(value) ||
|
|
8
|
+
Number.isNaN(value) ||
|
|
9
|
+
!Number.isInteger(value) ||
|
|
10
|
+
value <= 0) {
|
|
11
|
+
throw new CommandError('INVALID_INPUT', `Invalid ${flag} value`, 1, {
|
|
12
|
+
flag,
|
|
13
|
+
raw,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return value;
|
|
17
|
+
}
|
|
18
|
+
export function parseCsvEnumList(raw, flag, allowed) {
|
|
19
|
+
if (!raw) {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
const items = raw
|
|
23
|
+
.split(',')
|
|
24
|
+
.map((item) => item.trim())
|
|
25
|
+
.filter(Boolean);
|
|
26
|
+
if (items.length === 0) {
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
const normalizedAllowed = new Set(allowed.map((item) => item.toLowerCase()));
|
|
30
|
+
const invalid = items.filter((item) => !normalizedAllowed.has(item.toLowerCase()));
|
|
31
|
+
if (invalid.length > 0) {
|
|
32
|
+
throw new CommandError('INVALID_INPUT', `Invalid value for ${flag}: ${invalid.join(', ')}`, 1, { flag, invalid, allowed: [...allowed] });
|
|
33
|
+
}
|
|
34
|
+
return items;
|
|
35
|
+
}
|
|
36
|
+
export function validateHttpUrl(raw, flag) {
|
|
37
|
+
try {
|
|
38
|
+
const url = new URL(raw);
|
|
39
|
+
if (url.protocol !== 'http:' && url.protocol !== 'https:') {
|
|
40
|
+
throw new Error('invalid protocol');
|
|
41
|
+
}
|
|
42
|
+
return raw;
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
throw new CommandError('INVALID_INPUT', `Invalid ${flag} value`, 1, {
|
|
46
|
+
flag,
|
|
47
|
+
raw,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export function parseFieldList(raw) {
|
|
52
|
+
if (!raw) {
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
const fields = raw
|
|
56
|
+
.split(',')
|
|
57
|
+
.map((field) => field.trim())
|
|
58
|
+
.filter(Boolean);
|
|
59
|
+
if (fields.length === 0) {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
return [...new Set(fields)];
|
|
63
|
+
}
|
|
64
|
+
export function assertStructuredOutputForFields(input) {
|
|
65
|
+
if (!input.fields) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
if (input.isAgent || input.format === 'json') {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
throw new CommandError('INVALID_INPUT', '--fields requires --format json or --agent');
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=input-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-validation.js","sourceRoot":"","sources":["../../src/utils/input-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-instructions.d.ts","sourceRoot":"","sources":["../../src/utils/install-instructions.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,2BAA2B;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAOD,wBAAgB,gCAAgC,CAC5C,QAAQ,kBAAmB,GAC5B,2BAA2B,CAe7B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const UNIX_INSTALLER_URL = 'https://raw.githubusercontent.com/mesraitech/cli/main/install.sh';
|
|
2
|
+
const WINDOWS_INSTALLER_URL = 'https://raw.githubusercontent.com/mesraitech/cli/main/install.ps1';
|
|
3
|
+
export function resolveRemoteInstallInstructions(platform = process.platform) {
|
|
4
|
+
if (platform === 'win32') {
|
|
5
|
+
return {
|
|
6
|
+
primary: `powershell -NoProfile -ExecutionPolicy Bypass -Command "$tmp = Join-Path $env:TEMP 'mesrai-install.ps1'; Invoke-WebRequest ${WINDOWS_INSTALLER_URL} -OutFile $tmp; & $tmp"`,
|
|
7
|
+
fallback: `powershell -NoProfile -ExecutionPolicy Bypass -Command "$scriptPath = Join-Path (Get-Location) 'install.ps1'; Invoke-WebRequest ${WINDOWS_INSTALLER_URL} -OutFile $scriptPath; & $scriptPath"`,
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
return {
|
|
11
|
+
primary: `curl -fsSL ${UNIX_INSTALLER_URL} | bash`,
|
|
12
|
+
fallback: [
|
|
13
|
+
`curl -fsSL ${UNIX_INSTALLER_URL} -o /tmp/mesrai-install.sh`,
|
|
14
|
+
'bash /tmp/mesrai-install.sh',
|
|
15
|
+
].join(' && '),
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=install-instructions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-instructions.js","sourceRoot":"","sources":["../../src/utils/install-instructions.ts"],"names":[],"mappings":"AAKA,MAAM,kBAAkB,GACpB,kEAAkE,CAAC;AACvE,MAAM,qBAAqB,GACvB,mEAAmE,CAAC;AAExE,MAAM,UAAU,gCAAgC,CAC5C,QAAQ,GAAG,OAAO,CAAC,QAAQ;IAE3B,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACvB,OAAO;YACH,OAAO,EAAE,8HAA8H,qBAAqB,yBAAyB;YACrL,QAAQ,EAAE,mIAAmI,qBAAqB,uCAAuC;SAC5M,CAAC;IACN,CAAC;IAED,OAAO;QACH,OAAO,EAAE,cAAc,kBAAkB,SAAS;QAClD,QAAQ,EAAE;YACN,cAAc,kBAAkB,4BAA4B;YAC5D,6BAA6B;SAChC,CAAC,IAAI,CAAC,MAAM,CAAC;KACjB,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface CliOutputMode {
|
|
2
|
+
quiet?: boolean;
|
|
3
|
+
verbose?: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare function isCliQuietMode(): boolean;
|
|
6
|
+
export declare function isCliVerboseMode(): boolean;
|
|
7
|
+
export declare function setCliOutputMode(mode: CliOutputMode): void;
|
|
8
|
+
export declare function cliInfo(...args: unknown[]): void;
|
|
9
|
+
export declare function cliWarn(...args: unknown[]): void;
|
|
10
|
+
export declare function cliError(...args: unknown[]): void;
|
|
11
|
+
export declare function cliDebug(...args: unknown[]): void;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,UAAU,aAAa;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED,wBAAgB,gBAAgB,IAAI,OAAO,CAK1C;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAgB1D;AAED,wBAAgB,OAAO,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAKhD;AAED,wBAAgB,OAAO,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAKhD;AAED,wBAAgB,QAAQ,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAEjD;AAED,wBAAgB,QAAQ,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAMjD"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export function isCliQuietMode() {
|
|
2
|
+
return process.env.MESRAI_QUIET === '1';
|
|
3
|
+
}
|
|
4
|
+
export function isCliVerboseMode() {
|
|
5
|
+
return (process.env.MESRAI_VERBOSE === '1' ||
|
|
6
|
+
process.env.MESRAI_VERBOSE === 'true');
|
|
7
|
+
}
|
|
8
|
+
export function setCliOutputMode(mode) {
|
|
9
|
+
if (mode.quiet !== undefined) {
|
|
10
|
+
if (mode.quiet) {
|
|
11
|
+
process.env.MESRAI_QUIET = '1';
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
delete process.env.MESRAI_QUIET;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
if (mode.verbose !== undefined) {
|
|
18
|
+
if (mode.verbose) {
|
|
19
|
+
process.env.MESRAI_VERBOSE = '1';
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
delete process.env.MESRAI_VERBOSE;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export function cliInfo(...args) {
|
|
27
|
+
if (isCliQuietMode()) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
console.log(...args);
|
|
31
|
+
}
|
|
32
|
+
export function cliWarn(...args) {
|
|
33
|
+
if (isCliQuietMode()) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
console.warn(...args);
|
|
37
|
+
}
|
|
38
|
+
export function cliError(...args) {
|
|
39
|
+
console.error(...args);
|
|
40
|
+
}
|
|
41
|
+
export function cliDebug(...args) {
|
|
42
|
+
if (isCliQuietMode() || !isCliVerboseMode()) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
// Keep stdout clean for machine-readable formats (json/markdown).
|
|
46
|
+
console.error(...args);
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,cAAc;IAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC5B,OAAO,CACH,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,GAAG;QAClC,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,MAAM,CACxC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAmB;IAChD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC;QACnC,CAAC;aAAM,CAAC;YACJ,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QACpC,CAAC;IACL,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC;QACrC,CAAC;aAAM,CAAC;YACJ,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QACtC,CAAC;IACL,CAAC;AACL,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAG,IAAe;IACtC,IAAI,cAAc,EAAE,EAAE,CAAC;QACnB,OAAO;IACX,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAG,IAAe;IACtC,IAAI,cAAc,EAAE,EAAE,CAAC;QACnB,OAAO;IACX,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAG,IAAe;IACvC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAG,IAAe;IACvC,IAAI,cAAc,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;QAC1C,OAAO;IACX,CAAC;IACD,kEAAkE;IAClE,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { TrialStatus } from '../types/trial.js';
|
|
2
|
+
export declare function getTrialIdentifier(): Promise<string>;
|
|
3
|
+
export declare function checkTrialStatus(): Promise<TrialStatus>;
|
|
4
|
+
export declare function showTrialLimitPrompt(status: TrialStatus): void;
|
|
5
|
+
//# sourceMappingURL=rate-limit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../src/utils/rate-limit.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKrD,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CA0B1D;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,WAAW,CAAC,CAG7D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAgB9D"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import machineId from 'node-machine-id';
|
|
2
|
+
import crypto from 'crypto';
|
|
3
|
+
import os from 'os';
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import { api } from '../services/api/index.js';
|
|
6
|
+
import { gitService } from '../services/git.service.js';
|
|
7
|
+
import { cliInfo } from './logger.js';
|
|
8
|
+
const { machineIdSync } = machineId;
|
|
9
|
+
export async function getTrialIdentifier() {
|
|
10
|
+
try {
|
|
11
|
+
const machineId = machineIdSync();
|
|
12
|
+
const username = os.userInfo().username;
|
|
13
|
+
let repoPath = '';
|
|
14
|
+
try {
|
|
15
|
+
repoPath = await gitService.getGitRoot();
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
repoPath = process.cwd();
|
|
19
|
+
}
|
|
20
|
+
const raw = `${machineId}:${username}:${repoPath}`;
|
|
21
|
+
return crypto
|
|
22
|
+
.createHash('sha256')
|
|
23
|
+
.update(raw)
|
|
24
|
+
.digest('hex')
|
|
25
|
+
.substring(0, 32);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
const fallback = `${os.hostname()}:${os.userInfo().username}:${Date.now()}`;
|
|
29
|
+
return crypto
|
|
30
|
+
.createHash('sha256')
|
|
31
|
+
.update(fallback)
|
|
32
|
+
.digest('hex')
|
|
33
|
+
.substring(0, 32);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export async function checkTrialStatus() {
|
|
37
|
+
const fingerprint = await getTrialIdentifier();
|
|
38
|
+
return api.trial.getStatus(fingerprint);
|
|
39
|
+
}
|
|
40
|
+
export function showTrialLimitPrompt(status) {
|
|
41
|
+
const box = `
|
|
42
|
+
${chalk.yellow('╭──────────────────────────────────────────────────────────╮')}
|
|
43
|
+
${chalk.yellow('│')} ${chalk.bold.yellow('⚡ Daily limit reached')} (${status.reviewsUsed}/${status.reviewsLimit} reviews)${' '.repeat(16)}${chalk.yellow('│')}
|
|
44
|
+
${chalk.yellow('│')} ${chalk.yellow('│')}
|
|
45
|
+
${chalk.yellow('│')} Sign up for free to unlock: ${chalk.yellow('│')}
|
|
46
|
+
${chalk.yellow('│')} ${chalk.green('✓')} Unlimited reviews ${chalk.yellow('│')}
|
|
47
|
+
${chalk.yellow('│')} ${chalk.green('✓')} Custom configurations ${chalk.yellow('│')}
|
|
48
|
+
${chalk.yellow('│')} ${chalk.green('✓')} Review history ${chalk.yellow('│')}
|
|
49
|
+
${chalk.yellow('│')} ${chalk.green('✓')} Team integration ${chalk.yellow('│')}
|
|
50
|
+
${chalk.yellow('│')} ${chalk.yellow('│')}
|
|
51
|
+
${chalk.yellow('│')} ${chalk.dim('→')} ${chalk.cyan('mesrai auth login')} ${chalk.yellow('│')}
|
|
52
|
+
${chalk.yellow('╰──────────────────────────────────────────────────────────╯')}
|
|
53
|
+
`;
|
|
54
|
+
cliInfo(box);
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=rate-limit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../src/utils/rate-limit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface RecentActivityEntry {
|
|
2
|
+
command: string;
|
|
3
|
+
timestamp: number;
|
|
4
|
+
}
|
|
5
|
+
export declare function loadRecentActivity(): Promise<RecentActivityEntry[]>;
|
|
6
|
+
export declare function recordRecentActivity(rawArgs: string[]): Promise<void>;
|
|
7
|
+
export declare function formatRelativeTime(timestamp: number, now?: number): string;
|
|
8
|
+
export declare function getRecentActivityLines(maxItems?: number): Promise<string[]>;
|
|
9
|
+
//# sourceMappingURL=recent-activity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recent-activity.d.ts","sourceRoot":"","sources":["../../src/utils/recent-activity.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACrB;AAkED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC,CA+BzE;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB3E;AAED,wBAAgB,kBAAkB,CAC9B,SAAS,EAAE,MAAM,EACjB,GAAG,SAAa,GACjB,MAAM,CAkBR;AAED,wBAAsB,sBAAsB,CAAC,QAAQ,SAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAY5E"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import os from 'node:os';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
const MESRAI_DIR = path.join(os.homedir(), '.mesrai');
|
|
5
|
+
const RECENT_ACTIVITY_FILE = path.join(MESRAI_DIR, 'recent-activity.json');
|
|
6
|
+
const MAX_ENTRIES = 10;
|
|
7
|
+
const SENSITIVE_FLAGS = new Set([
|
|
8
|
+
'--key',
|
|
9
|
+
'--team-key',
|
|
10
|
+
'--token',
|
|
11
|
+
'--access-token',
|
|
12
|
+
'--refresh-token',
|
|
13
|
+
'--password',
|
|
14
|
+
]);
|
|
15
|
+
function isJsonParseError(error) {
|
|
16
|
+
return error instanceof SyntaxError;
|
|
17
|
+
}
|
|
18
|
+
async function ensureConfigDir() {
|
|
19
|
+
try {
|
|
20
|
+
await fs.mkdir(MESRAI_DIR, { recursive: true, mode: 0o700 });
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
if (error.code !== 'EEXIST') {
|
|
24
|
+
throw error;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function sanitizeArgs(args) {
|
|
29
|
+
const sanitized = [];
|
|
30
|
+
for (let i = 0; i < args.length; i += 1) {
|
|
31
|
+
const arg = args[i] ?? '';
|
|
32
|
+
if (arg.startsWith('--')) {
|
|
33
|
+
const [flag, value] = arg.split('=', 2);
|
|
34
|
+
if (SENSITIVE_FLAGS.has(flag)) {
|
|
35
|
+
if (value !== undefined) {
|
|
36
|
+
sanitized.push(`${flag}=[REDACTED]`);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
sanitized.push(flag);
|
|
40
|
+
if (i + 1 < args.length) {
|
|
41
|
+
sanitized.push('[REDACTED]');
|
|
42
|
+
i += 1;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
sanitized.push(arg);
|
|
49
|
+
}
|
|
50
|
+
return sanitized;
|
|
51
|
+
}
|
|
52
|
+
function shouldRecordCommand(args) {
|
|
53
|
+
if (args.length === 0) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
const firstArg = args[0];
|
|
57
|
+
if (!firstArg) {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
if (firstArg === '--help' ||
|
|
61
|
+
firstArg === '-h' ||
|
|
62
|
+
firstArg === '--version' ||
|
|
63
|
+
firstArg === '-V') {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
export async function loadRecentActivity() {
|
|
69
|
+
try {
|
|
70
|
+
const content = await fs.readFile(RECENT_ACTIVITY_FILE, 'utf-8');
|
|
71
|
+
const parsed = JSON.parse(content);
|
|
72
|
+
if (!parsed || !Array.isArray(parsed.entries)) {
|
|
73
|
+
return [];
|
|
74
|
+
}
|
|
75
|
+
return parsed.entries
|
|
76
|
+
.filter((entry) => entry &&
|
|
77
|
+
typeof entry.command === 'string' &&
|
|
78
|
+
typeof entry.timestamp === 'number')
|
|
79
|
+
.sort((a, b) => b.timestamp - a.timestamp);
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
const code = error.code;
|
|
83
|
+
if (code === 'ENOENT') {
|
|
84
|
+
return [];
|
|
85
|
+
}
|
|
86
|
+
if (isJsonParseError(error)) {
|
|
87
|
+
const brokenFile = `${RECENT_ACTIVITY_FILE}.corrupted.${Date.now()}`;
|
|
88
|
+
await fs.rename(RECENT_ACTIVITY_FILE, brokenFile).catch(() => { });
|
|
89
|
+
return [];
|
|
90
|
+
}
|
|
91
|
+
throw error;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
export async function recordRecentActivity(rawArgs) {
|
|
95
|
+
if (!shouldRecordCommand(rawArgs)) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const args = sanitizeArgs(rawArgs);
|
|
99
|
+
const command = `mesrai ${args.join(' ').trim()}`.trim();
|
|
100
|
+
if (!command || command === 'mesrai') {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const existing = await loadRecentActivity();
|
|
104
|
+
const nextEntries = [
|
|
105
|
+
{ command, timestamp: Date.now() },
|
|
106
|
+
...existing.filter((entry) => entry.command !== command),
|
|
107
|
+
].slice(0, MAX_ENTRIES);
|
|
108
|
+
await ensureConfigDir();
|
|
109
|
+
const tmpFile = `${RECENT_ACTIVITY_FILE}.${process.pid}.${Date.now()}.tmp`;
|
|
110
|
+
const payload = JSON.stringify({ entries: nextEntries }, null, 2);
|
|
111
|
+
await fs.writeFile(tmpFile, payload, { encoding: 'utf-8', mode: 0o600 });
|
|
112
|
+
await fs.rename(tmpFile, RECENT_ACTIVITY_FILE);
|
|
113
|
+
}
|
|
114
|
+
export function formatRelativeTime(timestamp, now = Date.now()) {
|
|
115
|
+
const diffSeconds = Math.max(0, Math.floor((now - timestamp) / 1000));
|
|
116
|
+
if (diffSeconds < 60) {
|
|
117
|
+
return `${diffSeconds}s ago`;
|
|
118
|
+
}
|
|
119
|
+
const diffMinutes = Math.floor(diffSeconds / 60);
|
|
120
|
+
if (diffMinutes < 60) {
|
|
121
|
+
return `${diffMinutes}m ago`;
|
|
122
|
+
}
|
|
123
|
+
const diffHours = Math.floor(diffMinutes / 60);
|
|
124
|
+
if (diffHours < 24) {
|
|
125
|
+
return `${diffHours}h ago`;
|
|
126
|
+
}
|
|
127
|
+
const diffDays = Math.floor(diffHours / 24);
|
|
128
|
+
return `${diffDays}d ago`;
|
|
129
|
+
}
|
|
130
|
+
export async function getRecentActivityLines(maxItems = 2) {
|
|
131
|
+
const entries = await loadRecentActivity();
|
|
132
|
+
if (entries.length === 0) {
|
|
133
|
+
return ['No recent activity yet'];
|
|
134
|
+
}
|
|
135
|
+
return entries
|
|
136
|
+
.slice(0, Math.max(1, maxItems))
|
|
137
|
+
.map((entry) => `${entry.command} - ${formatRelativeTime(entry.timestamp)}`);
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=recent-activity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recent-activity.js","sourceRoot":"","sources":["../../src/utils/recent-activity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const SUPPORTED_REPO_SETTINGS_SECTIONS: readonly ["general", "review-categories", "custom-prompts", "suggestion-control", "pr-summary", "mesrai-rules", "custom-messages", "business-rules"];
|
|
2
|
+
export type RepositorySettingsSection = (typeof SUPPORTED_REPO_SETTINGS_SECTIONS)[number];
|
|
3
|
+
export declare function getMesraiAppUrl(): string;
|
|
4
|
+
export declare function validateRepositorySettingsSection(section: string | undefined): RepositorySettingsSection;
|
|
5
|
+
export declare function getRepositorySettingsSectionLabel(section: RepositorySettingsSection): string;
|
|
6
|
+
//# sourceMappingURL=repo-settings-dashboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo-settings-dashboard.d.ts","sourceRoot":"","sources":["../../src/utils/repo-settings-dashboard.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gCAAgC,sJASnC,CAAC;AAEX,MAAM,MAAM,yBAAyB,GACjC,CAAC,OAAO,gCAAgC,CAAC,CAAC,MAAM,CAAC,CAAC;AAatD,wBAAgB,eAAe,IAAI,MAAM,CAGxC;AAED,wBAAgB,iCAAiC,CAC7C,OAAO,EAAE,MAAM,GAAG,SAAS,GAC5B,yBAAyB,CAc3B;AAED,wBAAgB,iCAAiC,CAC7C,OAAO,EAAE,yBAAyB,GACnC,MAAM,CAER"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { CommandError } from './command-errors.js';
|
|
2
|
+
export const SUPPORTED_REPO_SETTINGS_SECTIONS = [
|
|
3
|
+
'general',
|
|
4
|
+
'review-categories',
|
|
5
|
+
'custom-prompts',
|
|
6
|
+
'suggestion-control',
|
|
7
|
+
'pr-summary',
|
|
8
|
+
'mesrai-rules',
|
|
9
|
+
'custom-messages',
|
|
10
|
+
'business-rules',
|
|
11
|
+
];
|
|
12
|
+
const SECTION_LABELS = {
|
|
13
|
+
'general': 'General',
|
|
14
|
+
'review-categories': 'Review Categories',
|
|
15
|
+
'custom-prompts': 'Custom Prompts',
|
|
16
|
+
'suggestion-control': 'Suggestion Control',
|
|
17
|
+
'pr-summary': 'PR Summary',
|
|
18
|
+
'mesrai-rules': 'Mesrai Rules',
|
|
19
|
+
'custom-messages': 'Custom Messages',
|
|
20
|
+
'business-rules': 'Business Rules',
|
|
21
|
+
};
|
|
22
|
+
export function getMesraiAppUrl() {
|
|
23
|
+
const configuredUrl = process.env.MESRAI_APP_URL?.trim();
|
|
24
|
+
return configuredUrl || 'https://app.mesrai.com';
|
|
25
|
+
}
|
|
26
|
+
export function validateRepositorySettingsSection(section) {
|
|
27
|
+
const normalized = section?.trim().toLowerCase() || 'general';
|
|
28
|
+
if (!SUPPORTED_REPO_SETTINGS_SECTIONS.includes(normalized)) {
|
|
29
|
+
throw new CommandError('INVALID_INPUT', `Unsupported section '${section}'. Supported sections: ${SUPPORTED_REPO_SETTINGS_SECTIONS.join(', ')}`);
|
|
30
|
+
}
|
|
31
|
+
return normalized;
|
|
32
|
+
}
|
|
33
|
+
export function getRepositorySettingsSectionLabel(section) {
|
|
34
|
+
return SECTION_LABELS[section];
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=repo-settings-dashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo-settings-dashboard.js","sourceRoot":"","sources":["../../src/utils/repo-settings-dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC5C,SAAS;IACT,mBAAmB;IACnB,gBAAgB;IAChB,oBAAoB;IACpB,YAAY;IACZ,cAAc;IACd,iBAAiB;IACjB,gBAAgB;CACV,CAAC;AAKX,MAAM,cAAc,GAA8C;IAC9D,SAAS,EAAE,SAAS;IACpB,mBAAmB,EAAE,mBAAmB;IACxC,gBAAgB,EAAE,gBAAgB;IAClC,oBAAoB,EAAE,oBAAoB;IAC1C,YAAY,EAAE,YAAY;IAC1B,cAAc,EAAE,cAAc;IAC9B,iBAAiB,EAAE,iBAAiB;IACpC,gBAAgB,EAAE,gBAAgB;CACrC,CAAC;AAEF,MAAM,UAAU,eAAe;IAC3B,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;IACzD,OAAO,aAAa,IAAI,wBAAwB,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC7C,OAA2B;IAE3B,MAAM,UAAU,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,SAAS,CAAC;IAC9D,IACI,CAAC,gCAAgC,CAAC,QAAQ,CACtC,UAAuC,CAC1C,EACH,CAAC;QACC,MAAM,IAAI,YAAY,CAClB,eAAe,EACf,wBAAwB,OAAO,0BAA0B,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzG,CAAC;IACN,CAAC;IAED,OAAO,UAAuC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC7C,OAAkC;IAElC,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { RepositorySettings } from '../types/repo-config.js';
|
|
2
|
+
export declare const SUPPORTED_REPO_PATTERN_FIELDS: readonly ["ignore-files", "base-branches", "ignore-titles"];
|
|
3
|
+
export type RepositoryPatternField = (typeof SUPPORTED_REPO_PATTERN_FIELDS)[number];
|
|
4
|
+
export declare function validateRepositoryPatternField(field: string): RepositoryPatternField;
|
|
5
|
+
export declare function addRepositoryPattern(settings: RepositorySettings, field: string, pattern: string): RepositorySettings;
|
|
6
|
+
export declare function removeRepositoryPattern(settings: RepositorySettings, field: string, pattern: string): RepositorySettings;
|
|
7
|
+
//# sourceMappingURL=repo-settings-patterns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo-settings-patterns.d.ts","sourceRoot":"","sources":["../../src/utils/repo-settings-patterns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,eAAO,MAAM,6BAA6B,6DAIhC,CAAC;AAEX,MAAM,MAAM,sBAAsB,GAC9B,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD,wBAAgB,8BAA8B,CAC1C,KAAK,EAAE,MAAM,GACd,sBAAsB,CAcxB;AAwCD,wBAAgB,oBAAoB,CAChC,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GAChB,kBAAkB,CAmBpB;AAED,wBAAgB,uBAAuB,CACnC,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GAChB,kBAAkB,CAiBpB"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { CommandError } from './command-errors.js';
|
|
2
|
+
export const SUPPORTED_REPO_PATTERN_FIELDS = [
|
|
3
|
+
'ignore-files',
|
|
4
|
+
'base-branches',
|
|
5
|
+
'ignore-titles',
|
|
6
|
+
];
|
|
7
|
+
export function validateRepositoryPatternField(field) {
|
|
8
|
+
const normalized = field.trim().toLowerCase();
|
|
9
|
+
if (!SUPPORTED_REPO_PATTERN_FIELDS.includes(normalized)) {
|
|
10
|
+
throw new CommandError('INVALID_INPUT', `Unsupported pattern field '${field}'. Supported pattern fields: ${SUPPORTED_REPO_PATTERN_FIELDS.join(', ')}`);
|
|
11
|
+
}
|
|
12
|
+
return normalized;
|
|
13
|
+
}
|
|
14
|
+
function getPatterns(settings, field) {
|
|
15
|
+
switch (field) {
|
|
16
|
+
case 'ignore-files':
|
|
17
|
+
return settings.ignoredFilePatterns;
|
|
18
|
+
case 'base-branches':
|
|
19
|
+
return settings.baseBranchPatterns;
|
|
20
|
+
case 'ignore-titles':
|
|
21
|
+
return settings.ignoredTitlePatterns;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function withPatterns(settings, field, patterns) {
|
|
25
|
+
switch (field) {
|
|
26
|
+
case 'ignore-files':
|
|
27
|
+
return {
|
|
28
|
+
...settings,
|
|
29
|
+
ignoredFilePatterns: patterns,
|
|
30
|
+
};
|
|
31
|
+
case 'base-branches':
|
|
32
|
+
return {
|
|
33
|
+
...settings,
|
|
34
|
+
baseBranchPatterns: patterns,
|
|
35
|
+
};
|
|
36
|
+
case 'ignore-titles':
|
|
37
|
+
return {
|
|
38
|
+
...settings,
|
|
39
|
+
ignoredTitlePatterns: patterns,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export function addRepositoryPattern(settings, field, pattern) {
|
|
44
|
+
const supportedField = validateRepositoryPatternField(field);
|
|
45
|
+
const normalizedPattern = pattern.trim();
|
|
46
|
+
if (!normalizedPattern) {
|
|
47
|
+
throw new CommandError('INVALID_INPUT', 'Pattern value cannot be empty.');
|
|
48
|
+
}
|
|
49
|
+
const existing = getPatterns(settings, supportedField);
|
|
50
|
+
if (existing.includes(normalizedPattern)) {
|
|
51
|
+
return settings;
|
|
52
|
+
}
|
|
53
|
+
return withPatterns(settings, supportedField, [
|
|
54
|
+
...existing,
|
|
55
|
+
normalizedPattern,
|
|
56
|
+
]);
|
|
57
|
+
}
|
|
58
|
+
export function removeRepositoryPattern(settings, field, pattern) {
|
|
59
|
+
const supportedField = validateRepositoryPatternField(field);
|
|
60
|
+
const normalizedPattern = pattern.trim();
|
|
61
|
+
if (!normalizedPattern) {
|
|
62
|
+
throw new CommandError('INVALID_INPUT', 'Pattern value cannot be empty.');
|
|
63
|
+
}
|
|
64
|
+
return withPatterns(settings, supportedField, getPatterns(settings, supportedField).filter((existingPattern) => existingPattern !== normalizedPattern));
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=repo-settings-patterns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo-settings-patterns.js","sourceRoot":"","sources":["../../src/utils/repo-settings-patterns.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,CAAC,MAAM,6BAA6B,GAAG;IACzC,cAAc;IACd,eAAe;IACf,eAAe;CACT,CAAC;AAKX,MAAM,UAAU,8BAA8B,CAC1C,KAAa;IAEb,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IACI,CAAC,6BAA6B,CAAC,QAAQ,CACnC,UAAoC,CACvC,EACH,CAAC;QACC,MAAM,IAAI,YAAY,CAClB,eAAe,EACf,8BAA8B,KAAK,gCAAgC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChH,CAAC;IACN,CAAC;IAED,OAAO,UAAoC,CAAC;AAChD,CAAC;AAED,SAAS,WAAW,CAChB,QAA4B,EAC5B,KAA6B;IAE7B,QAAQ,KAAK,EAAE,CAAC;QACZ,KAAK,cAAc;YACf,OAAO,QAAQ,CAAC,mBAAmB,CAAC;QACxC,KAAK,eAAe;YAChB,OAAO,QAAQ,CAAC,kBAAkB,CAAC;QACvC,KAAK,eAAe;YAChB,OAAO,QAAQ,CAAC,oBAAoB,CAAC;IAC7C,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CACjB,QAA4B,EAC5B,KAA6B,EAC7B,QAAkB;IAElB,QAAQ,KAAK,EAAE,CAAC;QACZ,KAAK,cAAc;YACf,OAAO;gBACH,GAAG,QAAQ;gBACX,mBAAmB,EAAE,QAAQ;aAChC,CAAC;QACN,KAAK,eAAe;YAChB,OAAO;gBACH,GAAG,QAAQ;gBACX,kBAAkB,EAAE,QAAQ;aAC/B,CAAC;QACN,KAAK,eAAe;YAChB,OAAO;gBACH,GAAG,QAAQ;gBACX,oBAAoB,EAAE,QAAQ;aACjC,CAAC;IACV,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAChC,QAA4B,EAC5B,KAAa,EACb,OAAe;IAEf,MAAM,cAAc,GAAG,8BAA8B,CAAC,KAAK,CAAC,CAAC;IAC7D,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IACzC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACrB,MAAM,IAAI,YAAY,CAClB,eAAe,EACf,gCAAgC,CACnC,CAAC;IACN,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACvD,IAAI,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACvC,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,OAAO,YAAY,CAAC,QAAQ,EAAE,cAAc,EAAE;QAC1C,GAAG,QAAQ;QACX,iBAAiB;KACpB,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,uBAAuB,CACnC,QAA4B,EAC5B,KAAa,EACb,OAAe;IAEf,MAAM,cAAc,GAAG,8BAA8B,CAAC,KAAK,CAAC,CAAC;IAC7D,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IACzC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACrB,MAAM,IAAI,YAAY,CAClB,eAAe,EACf,gCAAgC,CACnC,CAAC;IACN,CAAC;IAED,OAAO,YAAY,CACf,QAAQ,EACR,cAAc,EACd,WAAW,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,MAAM,CACxC,CAAC,eAAe,EAAE,EAAE,CAAC,eAAe,KAAK,iBAAiB,CAC7D,CACJ,CAAC;AACN,CAAC"}
|