gennady 0.6.1 → 0.7.0
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 +2 -15
- package/ai/agents/agent-resolve-conflicts.xml +6 -0
- package/ai/agents/agent-review-verifier.xml +6 -0
- package/ai/directives/architecture/README.md +21 -0
- package/ai/directives/coding/README.md +23 -0
- package/ai/directives/coding/result-conventions.xml +55 -0
- package/ai/directives/coding/svelte5-runes.xml +248 -0
- package/ai/directives/coding/sveltekit-rules.xml +247 -0
- package/ai/directives/coding/typescript-rules.xml +589 -0
- package/ai/directives/coding/uikit-component-storybook.xml +347 -0
- package/ai/directives/coding/uikit-component-svelte.xml +344 -0
- package/ai/directives/coding/uikit-spec-drafting.xml +243 -0
- package/ai/directives/dbc-audit.directive.xml +131 -0
- package/ai/directives/dev-review.directive.xml +148 -0
- package/ai/directives/infra/README.md +11 -0
- package/ai/directives/infra/eslint-setup.xml +467 -0
- package/ai/directives/infra/git-setup.xml +261 -0
- package/ai/directives/infra/nodejs-npm-setup.xml +354 -0
- package/ai/directives/infra/storybook-setup.xml +153 -0
- package/ai/directives/knowledge.xml +206 -0
- package/ai/directives/perf-auditor/perf-auditor.directive.xml +75 -0
- package/ai/directives/perf-auditor/rules/async-latency.xml +101 -0
- package/ai/directives/perf-auditor/rules/data-structures.xml +103 -0
- package/ai/directives/perf-auditor/rules/iteration-fusion.xml +96 -0
- package/ai/directives/perf-auditor/rules/memory-gc.xml +102 -0
- package/ai/directives/sdd/README.md +49 -0
- package/ai/directives/sdd/audit.directive.xml +543 -0
- package/ai/directives/sdd/discovery.directive.xml +824 -0
- package/ai/directives/sdd/fix.directive.xml +249 -0
- package/ai/directives/sdd/module-decomposition.directive.xml +666 -0
- package/ai/directives/sdd/phase-execution-protocol.xml +339 -0
- package/ai/directives/sdd/scaffold.directive.xml +717 -0
- package/ai/directives/sdd/setup.directive.xml +213 -0
- package/ai/directives/sdd/svelte-ui-discovery.directive.xml +263 -0
- package/ai/directives/semantic-change-extractor.directive.xml +99 -0
- package/ai/directives/testing/README.md +25 -0
- package/ai/directives/testing/common.xml +234 -0
- package/ai/directives/testing/node-test.xml +288 -0
- package/ai/directives/testing/playwright-cli.xml +199 -0
- package/ai/directives/testing/playwright-e2e.xml +292 -0
- package/ai/directives/testing/storybook-usage.xml +173 -0
- package/ai/directives/testing/svelte-testing.xml +237 -0
- package/ai/directives/testing/vitest-rules.xml +326 -0
- package/ai/docs/README.md +17 -0
- package/ai/docs/ai-icl.md +538 -0
- package/ai/docs/ai-priming.md +548 -0
- package/ai/docs/ai-prompt-formats.md +406 -0
- package/ai/docs/ai-promting.md +572 -0
- package/ai/drafts/DRAFT.md +120 -0
- package/ai/drafts/agent-devgen-class-from-description.rules.xml +123 -0
- package/ai/drafts/agent-typescript-devgen.v1.xml +303 -0
- package/ai/drafts/d.md +65 -0
- package/ai/drafts/music-posts.md +105 -0
- package/ai/fw/v1/architecture/blueprint-factory.xml +77 -0
- package/ai/fw/v1/core/mental-model.xml +50 -0
- package/ai/fw/v1/discovery/intent-reactor.xml +92 -0
- package/ai/fw/v1/production/swarm-protocol.xml +122 -0
- package/ai/fw/v1/review/quality-pipeline.xml +102 -0
- package/ai/fw/v2/arch-universal.xml +73 -0
- package/ai/fw-draft/README.md +79 -0
- package/ai/fw-draft/bin/discovery.sh +116 -0
- package/ai/fw-draft/gennady.xml +58 -0
- package/ai/fw-draft/provider/claude.xml +16 -0
- package/ai/fw-draft/provider/cursor.xml +23 -0
- package/ai/fw-draft/provider/default.xml +12 -0
- package/ai/fw-draft/roles/developer.xml +18 -0
- package/ai/fw-draft/router.xml +39 -0
- package/ai/fw-draft/routes/development.xml +32 -0
- package/ai/fw-draft/routes/universal.xml +58 -0
- package/ai/fw-draft/rules/dev/base/file-structure-rules.xml +89 -0
- package/ai/fw-draft/rules/dev/typescript/contacts.xml +194 -0
- package/dist/ai/agents/agent-resolve-conflicts.xml +6 -0
- package/dist/ai/agents/agent-review-verifier.xml +6 -0
- package/dist/ai/directives/architecture/README.md +21 -0
- package/dist/ai/directives/coding/README.md +23 -0
- package/dist/ai/directives/coding/result-conventions.xml +55 -0
- package/dist/ai/directives/coding/svelte5-runes.xml +248 -0
- package/dist/ai/directives/coding/sveltekit-rules.xml +247 -0
- package/dist/ai/directives/coding/typescript-rules.xml +589 -0
- package/dist/ai/directives/coding/uikit-component-storybook.xml +347 -0
- package/dist/ai/directives/coding/uikit-component-svelte.xml +344 -0
- package/dist/ai/directives/coding/uikit-spec-drafting.xml +243 -0
- package/dist/ai/directives/dbc-audit.directive.xml +131 -0
- package/dist/ai/directives/dev-review.directive.xml +148 -0
- package/dist/ai/directives/infra/README.md +11 -0
- package/dist/ai/directives/infra/eslint-setup.xml +467 -0
- package/dist/ai/directives/infra/git-setup.xml +261 -0
- package/dist/ai/directives/infra/nodejs-npm-setup.xml +354 -0
- package/dist/ai/directives/infra/storybook-setup.xml +153 -0
- package/dist/ai/directives/knowledge.xml +206 -0
- package/dist/ai/directives/perf-auditor/perf-auditor.directive.xml +75 -0
- package/dist/ai/directives/perf-auditor/rules/async-latency.xml +101 -0
- package/dist/ai/directives/perf-auditor/rules/data-structures.xml +103 -0
- package/dist/ai/directives/perf-auditor/rules/iteration-fusion.xml +96 -0
- package/dist/ai/directives/perf-auditor/rules/memory-gc.xml +102 -0
- package/dist/ai/directives/sdd/README.md +49 -0
- package/dist/ai/directives/sdd/audit.directive.xml +543 -0
- package/dist/ai/directives/sdd/discovery.directive.xml +824 -0
- package/dist/ai/directives/sdd/fix.directive.xml +249 -0
- package/dist/ai/directives/sdd/module-decomposition.directive.xml +666 -0
- package/dist/ai/directives/sdd/phase-execution-protocol.xml +339 -0
- package/dist/ai/directives/sdd/scaffold.directive.xml +717 -0
- package/dist/ai/directives/sdd/setup.directive.xml +213 -0
- package/dist/ai/directives/sdd/svelte-ui-discovery.directive.xml +263 -0
- package/dist/ai/directives/semantic-change-extractor.directive.xml +99 -0
- package/dist/ai/directives/testing/README.md +25 -0
- package/dist/ai/directives/testing/common.xml +234 -0
- package/dist/ai/directives/testing/node-test.xml +288 -0
- package/dist/ai/directives/testing/playwright-cli.xml +199 -0
- package/dist/ai/directives/testing/playwright-e2e.xml +292 -0
- package/dist/ai/directives/testing/storybook-usage.xml +173 -0
- package/dist/ai/directives/testing/svelte-testing.xml +237 -0
- package/dist/ai/directives/testing/vitest-rules.xml +326 -0
- package/dist/ai/docs/README.md +17 -0
- package/dist/ai/docs/ai-icl.md +538 -0
- package/dist/ai/docs/ai-priming.md +548 -0
- package/dist/ai/docs/ai-prompt-formats.md +406 -0
- package/dist/ai/docs/ai-promting.md +572 -0
- package/dist/ai/drafts/DRAFT.md +120 -0
- package/dist/ai/drafts/agent-devgen-class-from-description.rules.xml +123 -0
- package/dist/ai/drafts/agent-typescript-devgen.v1.xml +303 -0
- package/dist/ai/drafts/d.md +65 -0
- package/dist/ai/drafts/music-posts.md +105 -0
- package/dist/ai/fw/v1/architecture/blueprint-factory.xml +77 -0
- package/dist/ai/fw/v1/core/mental-model.xml +50 -0
- package/dist/ai/fw/v1/discovery/intent-reactor.xml +92 -0
- package/dist/ai/fw/v1/production/swarm-protocol.xml +122 -0
- package/dist/ai/fw/v1/review/quality-pipeline.xml +102 -0
- package/dist/ai/fw/v2/arch-universal.xml +73 -0
- package/dist/ai/fw-draft/README.md +79 -0
- package/dist/ai/fw-draft/bin/discovery.sh +116 -0
- package/dist/ai/fw-draft/gennady.xml +58 -0
- package/dist/ai/fw-draft/provider/claude.xml +16 -0
- package/dist/ai/fw-draft/provider/cursor.xml +23 -0
- package/dist/ai/fw-draft/provider/default.xml +12 -0
- package/dist/ai/fw-draft/roles/developer.xml +18 -0
- package/dist/ai/fw-draft/router.xml +39 -0
- package/dist/ai/fw-draft/routes/development.xml +32 -0
- package/dist/ai/fw-draft/routes/universal.xml +58 -0
- package/dist/ai/fw-draft/rules/dev/base/file-structure-rules.xml +89 -0
- package/dist/ai/fw-draft/rules/dev/typescript/contacts.xml +194 -0
- package/dist/chunks/devtools-B-7ugZhF.js +79 -0
- package/dist/chunks/{help.cmd-CWasx25o.js → help.cmd-B_G7EWzF.js} +9 -2
- package/dist/chunks/{index-Gy1n7hRU.js → index-BeL1Zcbg.js} +1 -1
- package/dist/chunks/index-CVR66voe.js +26963 -0
- package/dist/chunks/index-CXuhZzS3.js +16979 -0
- package/dist/chunks/{index-Bh0p7rJg.js → index-CaahtXiM.js} +33 -9
- package/dist/chunks/{index-BrobNwbS.js → index-CiEM-8nJ.js} +35 -19
- package/dist/chunks/{index-D1Hurfwu.js → index-D1qsi0Uc.js} +57 -33
- package/dist/chunks/index-D9ceRUyB.js +443 -0
- package/dist/chunks/index-DJpVmyp2.js +176 -0
- package/dist/chunks/{index-B3r-YFvt.js → index-DU6jD7SS.js} +1 -1
- package/dist/chunks/index-KxSZKmZn.js +540 -0
- package/dist/chunks/{index-DgAmONSz.js → index-UbHoePfr.js} +12 -12
- package/dist/chunks/{index-Bx_P7mlL.js → index-g1LXlp77.js} +2 -2
- package/dist/chunks/index-zBnnuvLA.js +3788 -0
- package/dist/chunks/{run-review-command.logic-BQDGxh0f.js → run-review-command.logic-DpkRoEi8.js} +2 -2
- package/dist/chunks/services-CaLOhuLV.js +2889 -0
- package/dist/chunks/shared-Bjy30TeM.js +665 -0
- package/dist/cli/cmd/_shared/prompt/io/load-agent-template.io.d.ts +3 -3
- package/dist/cli/cmd/_shared/prompt/logic/build-ai-first-knowledge-block.logic.d.ts +3 -3
- package/dist/cli/cmd/_shared/prompt/logic/build-ai-verify-placeholders.logic.d.ts +7 -4
- package/dist/cli/cmd/_shared/prompt/logic/verify-commands/resolve-verify-commands.logic.d.ts +5 -0
- package/dist/cli/cmd/_shared/update-check-worker.d.ts +1 -0
- package/dist/cli/cmd/_shared/update-check.d.ts +38 -0
- package/dist/cli/cmd/agent-mon/cmd/create-providers.d.ts +15 -0
- package/dist/cli/cmd/agent-mon/cmd/index.d.ts +1 -0
- package/dist/cli/cmd/agent-mon/cmd/run.d.ts +12 -0
- package/dist/cli/cmd/agent-mon/state/create-state-manager.d.ts +32 -0
- package/dist/cli/cmd/agent-mon/state/group-by-provider.d.ts +14 -0
- package/dist/cli/cmd/agent-mon/state/index.d.ts +5 -0
- package/dist/cli/cmd/agent-mon/state/is-waiting.d.ts +9 -0
- package/dist/cli/cmd/agent-mon/state/view-model.type.d.ts +74 -0
- package/dist/cli/cmd/agent-mon/ui/app.d.ts +16 -0
- package/dist/cli/cmd/agent-mon/ui/column-view.d.ts +14 -0
- package/dist/cli/cmd/agent-mon/ui/index.d.ts +10 -0
- package/dist/cli/cmd/agent-mon/ui/provider-column.d.ts +14 -0
- package/dist/cli/cmd/agent-mon/ui/session-card.d.ts +12 -0
- package/dist/cli/cmd/agent-mon/ui/status-badge.d.ts +10 -0
- package/dist/cli/cmd/alt-opinion/alt-opinion-parser.d.ts +18 -0
- package/dist/cli/cmd/alt-opinion/alt-opinion-runner.d.ts +32 -0
- package/dist/cli/cmd/alt-opinion/alt-opinion.cmd.d.ts +34 -0
- package/dist/cli/cmd/alt-opinion/alt-opinion.types.d.ts +88 -0
- package/dist/cli/cmd/alt-opinion/index.d.ts +1 -0
- package/dist/cli/cmd/cat/cat-url.fn.d.ts +19 -0
- package/dist/cli/cmd/lint/checks/anchor.check.d.ts +11 -0
- package/dist/cli/cmd/lint/checks/dbc-contract.check.d.ts +16 -0
- package/dist/cli/cmd/lint/checks/disables.check.d.ts +12 -0
- package/dist/cli/cmd/lint/checks/file-header.check.d.ts +10 -0
- package/dist/cli/cmd/lint/checks/language.check.d.ts +11 -0
- package/dist/cli/cmd/lint/index.d.ts +1 -0
- package/dist/cli/cmd/lint/lint.cmd.d.ts +18 -0
- package/dist/cli/cmd/lint/lint.types.d.ts +72 -0
- package/dist/cli/cmd/lint/utils/resolve-references.fn.d.ts +32 -0
- package/dist/cli/cmd/remote-console/index.d.ts +2 -0
- package/dist/cli/cmd/remote-console/remote-console.cmd.d.ts +55 -0
- package/dist/cli/cmd/resolve-conflicts/_core/io/resolve-conflicts-template-load.io.d.ts +2 -2
- package/dist/cli/cmd/resolve-conflicts/_core/logic/resolve-conflicts-command-args-parse.logic.d.ts +3 -3
- package/dist/cli/cmd/resolve-conflicts/_core/logic/resolve-conflicts-command-run.logic.d.ts +3 -3
- package/dist/cli/cmd/resolve-conflicts/_core/logic/resolve-conflicts-context-git-build.logic.d.ts +4 -4
- package/dist/cli/cmd/resolve-conflicts/_core/types/resolve-conflicts-artifact.type.d.ts +3 -1
- package/dist/cli/cmd/resolve-conflicts/_core/types/resolve-conflicts-command-args.type.d.ts +3 -1
- package/dist/cli/cmd/resolve-conflicts/_core/types/resolve-conflicts-command-result.type.d.ts +5 -1
- package/dist/cli/cmd/resolve-conflicts/_core/types/resolve-conflicts-context-git.type.d.ts +18 -2
- package/dist/cli/cmd/resolve-conflicts/_core/xml/resolve-conflicts-artifact-build.xml.d.ts +6 -6
- package/dist/cli/cmd/resolve-conflicts/_core/xml/resolve-conflicts-render.xml.d.ts +4 -4
- package/dist/cli/cmd/review/_core/io/load-review-verify-template.io.d.ts +2 -2
- package/dist/cli/cmd/review/_core/logic/build-review-context-git.logic.d.ts +3 -3
- package/dist/cli/cmd/review/_core/logic/build-review-context-vcs.logic.d.ts +2 -2
- package/dist/cli/cmd/review/_core/logic/load-review-context-mr.logic.d.ts +5 -5
- package/dist/cli/cmd/review/_core/logic/parse-review-command-args.logic.d.ts +3 -3
- package/dist/cli/cmd/review/_core/logic/resolve-review-intent.logic.d.ts +3 -3
- package/dist/cli/cmd/review/_core/logic/run-review-command.logic.d.ts +3 -3
- package/dist/cli/cmd/review/_core/types/review-artifact.type.d.ts +4 -1
- package/dist/cli/cmd/review/_core/types/review-command-args.type.d.ts +7 -1
- package/dist/cli/cmd/review/_core/types/review-command-mode.type.d.ts +1 -1
- package/dist/cli/cmd/review/_core/types/review-command-options.type.d.ts +3 -1
- package/dist/cli/cmd/review/_core/types/review-command-result.type.d.ts +5 -1
- package/dist/cli/cmd/review/_core/types/review-context-git.type.d.ts +3 -1
- package/dist/cli/cmd/review/_core/types/review-context-mr.type.d.ts +22 -3
- package/dist/cli/cmd/review/_core/types/review-context-vcs.type.d.ts +4 -1
- package/dist/cli/cmd/review/_core/types/review-intent.type.d.ts +1 -1
- package/dist/cli/cmd/review/_core/xml/build-review-artifact.xml.d.ts +10 -10
- package/dist/cli/cmd/review/_core/xml/render-review-issues.xml.d.ts +3 -3
- package/dist/cli/cmd/review/_core/xml/render-review-verify.xml.d.ts +4 -4
- package/dist/cli/cmd/sync/index.d.ts +1 -0
- package/dist/cli/cmd/sync/sync-core.d.ts +65 -0
- package/dist/cli/cmd/sync/sync-formatter.d.ts +12 -0
- package/dist/cli/cmd/sync/sync.cmd.d.ts +33 -0
- package/dist/cli/cmd/sync/sync.types.d.ts +50 -0
- package/dist/cli/cmd/vcs-reply/vcs-reply.cmd.d.ts +4 -4
- package/dist/cli/utils/ai-legacy/ai-legacy-agent.d.ts +12 -11
- package/dist/cli/utils/ai-legacy/ai-legacy-core.d.ts +33 -17
- package/dist/cli/utils/ai-legacy/ai-legacy-model.d.ts +42 -23
- package/dist/cli/utils/cat-gen/cat-gen.d.ts +19 -8
- package/dist/cli/utils/commit-gen/commit-gen.d.ts +39 -15
- package/dist/cli/utils/prompts/index.d.ts +6 -6
- package/dist/cli/utils/review-gen/review-gen.d.ts +33 -9
- package/dist/gennady.js +30 -10
- package/dist/index.d.ts +1 -0
- package/dist/index.js +44 -23
- package/dist/services/agent-mon/diff/diff.d.ts +9 -0
- package/dist/services/agent-mon/diff/index.d.ts +1 -0
- package/dist/services/agent-mon/index.d.ts +10 -0
- package/dist/services/agent-mon/model/agent-provider.type.d.ts +20 -0
- package/dist/services/agent-mon/model/agent-session.type.d.ts +49 -0
- package/dist/services/agent-mon/model/errors.d.ts +20 -0
- package/dist/services/agent-mon/model/index.d.ts +7 -0
- package/dist/services/agent-mon/model/observe-opts.type.d.ts +7 -0
- package/dist/services/agent-mon/model/scan-opts.type.d.ts +7 -0
- package/dist/services/agent-mon/model/session-changes.type.d.ts +10 -0
- package/dist/services/agent-mon/monitor/agent-monitor.d.ts +44 -0
- package/dist/services/agent-mon/monitor/create-monitor.d.ts +6 -0
- package/dist/services/agent-mon/monitor/index.d.ts +2 -0
- package/dist/services/agent-mon/observe/index.d.ts +1 -0
- package/dist/services/agent-mon/observe/observe.d.ts +12 -0
- package/dist/services/agent-mon/providers/claude/claude-provider.d.ts +50 -0
- package/dist/services/agent-mon/providers/claude/index.d.ts +5 -0
- package/dist/services/agent-mon/providers/claude/ps.d.ts +36 -0
- package/dist/services/agent-mon/providers/claude/session-json.d.ts +37 -0
- package/dist/services/agent-mon/providers/opencode/db.d.ts +41 -0
- package/dist/services/agent-mon/providers/opencode/index.d.ts +3 -0
- package/dist/services/agent-mon/providers/opencode/model-parser.d.ts +6 -0
- package/dist/services/agent-mon/providers/opencode/opencode-provider.d.ts +45 -0
- package/dist/services/ai-client/providers/ai-model.type.d.ts +14 -0
- package/dist/services/ai-client/providers/open-router/open-router-model.type.d.ts +1 -4
- package/dist/services/ai-client/providers/open-router/open-router-provider.d.ts +17 -0
- package/dist/services/ai-client/providers/openai-like-provider.d.ts +1 -0
- package/dist/services/data-ore/telegram/telegram-data-ore.d.ts +17 -0
- package/dist/services/data-ore/telegram/telegram-data-ore.types.d.ts +4 -0
- package/dist/services/data-ore/telegram/telegram-demo-music-helper.d.ts +1 -0
- package/dist/services/data-ore/telegram/telegram-demo.d.ts +1 -0
- package/dist/services/dbc/linter/dbc-ast-adapter.types.d.ts +82 -0
- package/dist/services/dbc/linter/dbc-linter.types.d.ts +95 -0
- package/dist/services/dbc/linter/implementations/ts/dbc-ts-ast-adapter.d.ts +183 -0
- package/dist/services/dbc/linter/implementations/ts/dbc-ts-linter.d.ts +152 -0
- package/dist/services/dbc/parser/dbc-parser.types.d.ts +16 -16
- package/dist/services/dbc/parser/implementations/jsdoc/dbc-jsdoc-parser.d.ts +14 -4
- package/dist/services/logger/logger.d.ts +26 -6
- package/dist/services/remote-console/client/remote-console-client-serializer.d.ts +7 -0
- package/dist/services/remote-console/client/remote-console-client.d.ts +20 -0
- package/dist/services/remote-console/client/remote-console-client.types.d.ts +88 -0
- package/dist/services/remote-console/remote-console.d.ts +6 -0
- package/dist/services/remote-console/server/remote-console-server.d.ts +10 -0
- package/dist/services/remote-console/server/remote-console-server.types.d.ts +44 -0
- package/dist/services/remote-console/server/remote-console-stdout-writer.d.ts +26 -0
- package/dist/services/vcs-client/abstract/vcs-client-merge-discussions.d.ts +22 -14
- package/dist/services/vcs-client/abstract/vcs-client-merge-requests.d.ts +31 -14
- package/dist/services/vcs-client/abstract/vcs-client-repository-files.d.ts +16 -0
- package/dist/services/vcs-client/abstract/vcs-client.d.ts +9 -5
- package/dist/services/vcs-client/entities/vcs-file-content.type.d.ts +24 -0
- package/dist/services/vcs-client/entities/vcs-merge-request-changes.type.d.ts +32 -0
- package/dist/services/vcs-client/entities/vcs-url.type.d.ts +14 -0
- package/dist/services/vcs-client/entities/vcs-user.type.d.ts +3 -0
- package/dist/services/vcs-client/github/vcs-github-client.d.ts +31 -0
- package/dist/services/vcs-client/github/vcs-github-merge-requests.d.ts +40 -0
- package/dist/services/vcs-client/github/vcs-github-repository-files.d.ts +27 -0
- package/dist/services/vcs-client/gitlab/vcs-gitlab-client.d.ts +13 -4
- package/dist/services/vcs-client/gitlab/vcs-gitlab-merge-discussions.d.ts +16 -5
- package/dist/services/vcs-client/gitlab/vcs-gitlab-merge-requests.d.ts +24 -5
- package/dist/services/vcs-client/gitlab/vcs-gitlab-repository-files.d.ts +27 -0
- package/dist/services/vcs-client/parse-vcs-url.d.ts +3 -0
- package/dist/shared/backend/git/git-core.d.ts +24 -22
- package/dist/shared/backend/git/git-diff.d.ts +16 -5
- package/dist/shared/backend/rc/rc-config.d.ts +27 -15
- package/dist/shared/common/exec.d.ts +4 -6
- package/dist/shared/common/files.d.ts +1 -3
- package/dist/shared/common/language.d.ts +3 -6
- package/dist/shared/common/parse-args.d.ts +1 -4
- package/dist/shared/common/style.d.ts +3 -3
- package/dist/shared/common/think.d.ts +1 -5
- package/dist/shared/common/tokens.d.ts +1 -5
- package/dist/shared/common/unguard.d.ts +4 -8
- package/dist/shared/common/xml.d.ts +16 -12
- package/package.json +20 -4
- package/dist/.ai/agents/agent-resolve-conflicts.xml +0 -148
- package/dist/.ai/agents/agent-review-verifier.xml +0 -181
- package/dist/chunks/index-C4jt5WBP.js +0 -3548
- package/dist/chunks/services-Sb7TwLxt.js +0 -122
- package/dist/chunks/shared-D0kSJB49.js +0 -601
|
@@ -1,45 +1,62 @@
|
|
|
1
|
+
import type { VcsMergeRequestChanges, VcsMergeRequestChangesQuery } from '../entities/vcs-merge-request-changes.type.js';
|
|
1
2
|
/**
|
|
2
|
-
* @purpose
|
|
3
|
+
* @purpose Parameters for querying Merge Request list: project, branch, state, pagination.
|
|
3
4
|
* @consumer VcsClientMergeRequests
|
|
4
5
|
*/
|
|
5
6
|
export type VcsMergeRequestsQuery = {
|
|
7
|
+
/** @purpose GitLab project path or ID */
|
|
6
8
|
project: string;
|
|
9
|
+
/** @purpose Source branch name to filter MRs */
|
|
7
10
|
sourceBranch?: string;
|
|
11
|
+
/** @purpose MR state filter: opened, closed, merged, etc. */
|
|
8
12
|
state?: string;
|
|
13
|
+
/** @purpose Page size | @invariant Default: GitLab default when absent */
|
|
9
14
|
perPage?: number;
|
|
15
|
+
/** @purpose Page number starting from 1 */
|
|
10
16
|
page?: number;
|
|
11
17
|
};
|
|
12
18
|
/**
|
|
13
|
-
* @purpose
|
|
19
|
+
* @purpose Parameters for querying a Merge Request by IID.
|
|
14
20
|
* @consumer VcsClientMergeRequests
|
|
15
21
|
*/
|
|
16
22
|
export type VcsMergeRequestByIidQuery = {
|
|
23
|
+
/** @purpose GitLab project path or ID */
|
|
17
24
|
project: string;
|
|
25
|
+
/** @purpose Merge request internal ID */
|
|
18
26
|
iid: string | number;
|
|
19
27
|
};
|
|
20
28
|
/**
|
|
21
|
-
* @purpose
|
|
29
|
+
* @purpose Access to Merge Requests/Pull Requests.
|
|
30
|
+
* @invariant Error Policy: Network/status errors are thrown outward from request().
|
|
22
31
|
* @consumer VcsClient
|
|
23
|
-
* @invariant Error Policy: Ошибки сети/статуса пробрасываются наружу из request().
|
|
24
32
|
*/
|
|
25
33
|
export declare abstract class VcsClientMergeRequests {
|
|
26
34
|
/**
|
|
27
|
-
* @purpose
|
|
28
|
-
* @param query
|
|
29
|
-
* @returns
|
|
35
|
+
* @purpose Get MR list by project and filters.
|
|
36
|
+
* @param query Query object.
|
|
37
|
+
* @returns List of Merge Requests by minimal filters.
|
|
38
|
+
* @sideEffect Network: GET /projects/:project/merge_requests
|
|
30
39
|
*/
|
|
31
40
|
abstract getList(query: VcsMergeRequestsQuery): Promise<unknown[]>;
|
|
32
41
|
/**
|
|
33
|
-
* @purpose
|
|
34
|
-
* @param query
|
|
35
|
-
* @returns
|
|
36
|
-
* @sideEffect Network:
|
|
42
|
+
* @purpose Get the first MR matching the same filters as getList.
|
|
43
|
+
* @param query Query object.
|
|
44
|
+
* @returns First found MR or null.
|
|
45
|
+
* @sideEffect Network: Delegates to getList() with per_page=1 limit.
|
|
37
46
|
*/
|
|
38
47
|
abstract getOne(query: VcsMergeRequestsQuery): Promise<unknown | null>;
|
|
39
48
|
/**
|
|
40
|
-
* @purpose
|
|
41
|
-
* @param query
|
|
42
|
-
* @returns
|
|
49
|
+
* @purpose Get Merge Request by IID within a project.
|
|
50
|
+
* @param query Parameters: { project, iid }.
|
|
51
|
+
* @returns Merge Request object or null on 404.
|
|
52
|
+
* @sideEffect Network: GET /projects/:project/merge_requests/:iid
|
|
43
53
|
*/
|
|
44
54
|
abstract getByIid(query: VcsMergeRequestByIidQuery): Promise<unknown | null>;
|
|
55
|
+
/**
|
|
56
|
+
* @purpose Get list of changed files in MR/PR.
|
|
57
|
+
* @param query Parameters: { repository, iid, page?, perPage? }.
|
|
58
|
+
* @returns List of changed files with metadata.
|
|
59
|
+
* @sideEffect Network: GitLab GET /projects/:id/merge_requests/:iid/changes | GitHub GET /repos/:owner/:repo/pulls/:number/files
|
|
60
|
+
*/
|
|
61
|
+
abstract getChanges(query: VcsMergeRequestChangesQuery): Promise<VcsMergeRequestChanges[]>;
|
|
45
62
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { VcsFileContent, VcsFileContentQuery } from '../entities/vcs-file-content.type.js';
|
|
2
|
+
/**
|
|
3
|
+
* @purpose Access to VCS repository file contents.
|
|
4
|
+
* @invariant Error Policy: Network/status errors are thrown outward from request().
|
|
5
|
+
* @invariant Encoding Contract: Adapter decodes content (base64 → utf-8 for text).
|
|
6
|
+
* @consumer VcsClient
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class VcsClientRepositoryFiles {
|
|
9
|
+
/**
|
|
10
|
+
* @purpose Get file content from repository.
|
|
11
|
+
* @param query Parameters: { repository, path, ref }.
|
|
12
|
+
* @returns File content or null if file not found (404).
|
|
13
|
+
* @sideEffect Network: GitLab GET /projects/:id/repository/files/:path/raw?ref= | GitHub GET /repos/:owner/:repo/contents/:path?ref=
|
|
14
|
+
*/
|
|
15
|
+
abstract getFileContent(query: VcsFileContentQuery): Promise<VcsFileContent | null>;
|
|
16
|
+
}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import type { VcsClientMergeDiscussions } from './vcs-client-merge-discussions.js';
|
|
2
2
|
import type { VcsClientMergeRequests } from './vcs-client-merge-requests.js';
|
|
3
|
+
import type { VcsClientRepositoryFiles } from './vcs-client-repository-files.js';
|
|
3
4
|
/**
|
|
4
|
-
* @purpose
|
|
5
|
-
* @invariant Error Policy:
|
|
6
|
-
* @invariant Retry Policy:
|
|
5
|
+
* @purpose Abstract client for working with VCS services (e.g. GitLab, GitHub).
|
|
6
|
+
* @invariant Error Policy: Any non-2xx response is converted to an Error with status details.
|
|
7
|
+
* @invariant Retry Policy: No retries; retry responsibility lies with the caller.
|
|
8
|
+
* @consumer cli/review-verify, cli/cat
|
|
7
9
|
*/
|
|
8
10
|
export declare abstract class VcsClient {
|
|
9
11
|
/** @see {VcsClientMergeRequests} in ./vcs-client-merge-requests.ts */
|
|
10
12
|
abstract readonly MergeRequests: VcsClientMergeRequests;
|
|
11
|
-
/** @see {VcsClientMergeDiscussions} in ./vcs-client-merge-discussions.ts */
|
|
12
|
-
abstract readonly MergeDiscussions
|
|
13
|
+
/** @see {VcsClientMergeDiscussions} in ./vcs-client-merge-discussions.ts | @deferred GitHub adapter does not implement this */
|
|
14
|
+
abstract readonly MergeDiscussions?: VcsClientMergeDiscussions;
|
|
15
|
+
/** @see {VcsClientRepositoryFiles} in ./vcs-client-repository-files.ts | @deferred GitLab-only in v1 */
|
|
16
|
+
abstract readonly RepositoryFiles?: VcsClientRepositoryFiles;
|
|
13
17
|
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @purpose File content from repository: path, content (decoded), encoding.
|
|
3
|
+
* @consumer VcsClientRepositoryFiles.getFileContent
|
|
4
|
+
*/
|
|
5
|
+
export type VcsFileContent = {
|
|
6
|
+
/** @purpose Path to file in repository */
|
|
7
|
+
path: string;
|
|
8
|
+
/** @purpose File content (decoded by adapter: base64 → utf-8 for text, base64 for binary) */
|
|
9
|
+
content: string;
|
|
10
|
+
/** @purpose Content encoding: utf-8 (text) or base64 (binary) */
|
|
11
|
+
encoding: 'utf-8' | 'base64';
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* @purpose File content query parameters: repository, path, branch/commit.
|
|
15
|
+
* @consumer VcsClientRepositoryFiles.getFileContent
|
|
16
|
+
*/
|
|
17
|
+
export type VcsFileContentQuery = {
|
|
18
|
+
/** @purpose Repository identifier (group/project or owner/repo) */
|
|
19
|
+
repository: string;
|
|
20
|
+
/** @purpose Path to file in repository */
|
|
21
|
+
path: string;
|
|
22
|
+
/** @purpose Branch, tag, or commit SHA */
|
|
23
|
+
ref: string;
|
|
24
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @purpose One changed file in MR/PR: path, status, branch, change metrics.
|
|
3
|
+
* @consumer VcsClientMergeRequests.getChanges
|
|
4
|
+
*/
|
|
5
|
+
export type VcsMergeRequestChanges = {
|
|
6
|
+
/** @purpose File path (new_path for GitLab, filename for GitHub) */
|
|
7
|
+
path: string;
|
|
8
|
+
/** @purpose Change status: added, modified, deleted, renamed */
|
|
9
|
+
status: 'added' | 'modified' | 'deleted' | 'renamed';
|
|
10
|
+
/** @purpose Previous path (only for renamed) */
|
|
11
|
+
previousPath?: string;
|
|
12
|
+
/** @purpose Branch (source_branch GitLab / head.ref GitHub) — for getFileContent */
|
|
13
|
+
ref: string;
|
|
14
|
+
/** @purpose Number of added lines */
|
|
15
|
+
additions?: number;
|
|
16
|
+
/** @purpose Number of deleted lines */
|
|
17
|
+
deletions?: number;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* @purpose MR/PR changes query parameters: repository, number, pagination.
|
|
21
|
+
* @consumer VcsClientMergeRequests.getChanges
|
|
22
|
+
*/
|
|
23
|
+
export type VcsMergeRequestChangesQuery = {
|
|
24
|
+
/** @purpose Repository identifier (group/project or owner/repo) */
|
|
25
|
+
repository: string;
|
|
26
|
+
/** @purpose MR number (IID) or PR (number) */
|
|
27
|
+
iid: string | number;
|
|
28
|
+
/** @purpose Page number (starting from 1) */
|
|
29
|
+
page?: number;
|
|
30
|
+
/** @purpose Page size */
|
|
31
|
+
perPage?: number;
|
|
32
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @purpose Parsed merge request / pull request URL result.
|
|
3
|
+
* @consumer parseVcsUrl
|
|
4
|
+
*/
|
|
5
|
+
export type VcsUrl = {
|
|
6
|
+
/** @purpose VCS provider: gitlab or github */
|
|
7
|
+
provider: 'gitlab' | 'github';
|
|
8
|
+
/** @purpose Host (with port if present): gitlab.com, github.internal.com:8443 */
|
|
9
|
+
host: string;
|
|
10
|
+
/** @purpose Repository identifier: group/project for GitLab, owner/repo for GitHub */
|
|
11
|
+
repository: string;
|
|
12
|
+
/** @purpose MR number (IID) or PR (number) */
|
|
13
|
+
iid: number;
|
|
14
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { VcsGithubMergeRequests } from './vcs-github-merge-requests.js';
|
|
2
|
+
import { VcsGithubRepositoryFiles } from './vcs-github-repository-files.js';
|
|
3
|
+
import { VcsClient } from '../abstract/vcs-client.js';
|
|
4
|
+
/**
|
|
5
|
+
* @purpose Options for creating a GitHub API client: base URL and access token.
|
|
6
|
+
* @consumer VcsGithubClient
|
|
7
|
+
*/
|
|
8
|
+
export type VcsGithubClientOptions = {
|
|
9
|
+
/** @purpose GitHub API base URL (e.g. https://api.github.com) */
|
|
10
|
+
baseUrl: string;
|
|
11
|
+
/** @purpose GitHub personal access token */
|
|
12
|
+
token: string;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* @purpose GitHub client for working with REST API (minimal: without MergeDiscussions).
|
|
16
|
+
* @invariant Error Policy: Any non-2xx response is converted to an Error with status details.
|
|
17
|
+
* @consumer cli/cat
|
|
18
|
+
*/
|
|
19
|
+
export declare class VcsGithubClient extends VcsClient {
|
|
20
|
+
/** @see {VcsClient#MergeRequests} in services/vcs-client/abstract/vcs-client.ts */
|
|
21
|
+
readonly MergeRequests: VcsGithubMergeRequests;
|
|
22
|
+
/** @see {VcsClient#MergeDiscussions} in services/vcs-client/abstract/vcs-client.ts */
|
|
23
|
+
readonly MergeDiscussions: undefined;
|
|
24
|
+
/** @see {VcsClient#RepositoryFiles} in services/vcs-client/abstract/vcs-client.ts */
|
|
25
|
+
readonly RepositoryFiles: VcsGithubRepositoryFiles;
|
|
26
|
+
/**
|
|
27
|
+
* @purpose Create a GitHub API client bound to a base URL with access token.
|
|
28
|
+
* @param options Connection parameters: base URL and access token.
|
|
29
|
+
*/
|
|
30
|
+
constructor(options: VcsGithubClientOptions);
|
|
31
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { VcsClientMergeRequests } from '../abstract/vcs-client-merge-requests.js';
|
|
2
|
+
import type { VcsMergeRequestChanges, VcsMergeRequestChangesQuery } from '../entities/vcs-merge-request-changes.type.js';
|
|
3
|
+
type RequestFn = (path: string, init?: RequestInit) => Promise<unknown>;
|
|
4
|
+
/**
|
|
5
|
+
* @purpose Access to Pull Request files via GitHub API.
|
|
6
|
+
* @invariant Error Policy: Network/status errors are thrown outward from request().
|
|
7
|
+
* @consumer VcsGithubClient
|
|
8
|
+
*/
|
|
9
|
+
export declare class VcsGithubMergeRequests extends VcsClientMergeRequests {
|
|
10
|
+
/** @purpose Bound HTTP request function for GitHub API calls */
|
|
11
|
+
protected _request: RequestFn;
|
|
12
|
+
/**
|
|
13
|
+
* @purpose Wire the HTTP request adapter for GitHub PR endpoints.
|
|
14
|
+
* @param request Authenticated HTTP request function targeting GitHub API.
|
|
15
|
+
*/
|
|
16
|
+
constructor(request: RequestFn);
|
|
17
|
+
/**
|
|
18
|
+
* @purpose GitHub getList not implemented — use getChanges for PR files.
|
|
19
|
+
* @returns Empty array — not implemented.
|
|
20
|
+
*/
|
|
21
|
+
getList(): Promise<unknown[]>;
|
|
22
|
+
/**
|
|
23
|
+
* @purpose GitHub getOne not implemented.
|
|
24
|
+
* @returns Null — not implemented.
|
|
25
|
+
*/
|
|
26
|
+
getOne(): Promise<unknown | null>;
|
|
27
|
+
/**
|
|
28
|
+
* @purpose GitHub getByIid not implemented.
|
|
29
|
+
* @returns Null — not implemented.
|
|
30
|
+
*/
|
|
31
|
+
getByIid(): Promise<unknown | null>;
|
|
32
|
+
/**
|
|
33
|
+
* @param query Target repository and PR number, optional pagination.
|
|
34
|
+
* @returns List of changed files with metadata.
|
|
35
|
+
* @sideEffect Network: GET /repos/:owner/:repo/pulls/:number/files
|
|
36
|
+
* @see {VcsClientMergeRequests#getChanges} in services/vcs-client/abstract/vcs-client-merge-requests.ts
|
|
37
|
+
*/
|
|
38
|
+
getChanges(query: VcsMergeRequestChangesQuery): Promise<VcsMergeRequestChanges[]>;
|
|
39
|
+
}
|
|
40
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { VcsClientRepositoryFiles } from '../abstract/vcs-client-repository-files.js';
|
|
2
|
+
import type { VcsFileContent, VcsFileContentQuery } from '../entities/vcs-file-content.type.js';
|
|
3
|
+
/**
|
|
4
|
+
* @purpose Access to repository file contents via GitHub Contents API.
|
|
5
|
+
* @invariant Error Policy: Network/status errors are thrown outward. 404 → null.
|
|
6
|
+
* @invariant Encoding Contract: GitHub returns base64 → adapter decodes to utf-8.
|
|
7
|
+
* @consumer VcsGithubClient
|
|
8
|
+
*/
|
|
9
|
+
export declare class VcsGithubRepositoryFiles extends VcsClientRepositoryFiles {
|
|
10
|
+
/** @purpose GitHub API base URL */
|
|
11
|
+
protected _baseUrl: string;
|
|
12
|
+
/** @purpose GitHub access token */
|
|
13
|
+
protected _token: string;
|
|
14
|
+
/**
|
|
15
|
+
* @purpose Wire the adapter with GitHub connection params for raw content fetches.
|
|
16
|
+
* @param baseUrl GitHub API base URL (e.g. https://api.github.com).
|
|
17
|
+
* @param token GitHub personal access token.
|
|
18
|
+
*/
|
|
19
|
+
constructor(baseUrl: string, token: string);
|
|
20
|
+
/**
|
|
21
|
+
* @param query Target repository, file path, and ref.
|
|
22
|
+
* @returns File content or null if file not found.
|
|
23
|
+
* @sideEffect Network: GET /repos/:owner/:repo/contents/:path?ref=
|
|
24
|
+
* @see {VcsClientRepositoryFiles#getFileContent} in services/vcs-client/abstract/vcs-client-repository-files.ts
|
|
25
|
+
*/
|
|
26
|
+
getFileContent(query: VcsFileContentQuery): Promise<VcsFileContent | null>;
|
|
27
|
+
}
|
|
@@ -1,24 +1,33 @@
|
|
|
1
1
|
import { VcsGitlabMergeRequests } from './vcs-gitlab-merge-requests.js';
|
|
2
2
|
import { VcsGitlabMergeDiscussions } from './vcs-gitlab-merge-discussions.js';
|
|
3
|
+
import { VcsGitlabRepositoryFiles } from './vcs-gitlab-repository-files.js';
|
|
3
4
|
import { VcsClient } from '../abstract/vcs-client.js';
|
|
4
5
|
/**
|
|
5
|
-
* @purpose
|
|
6
|
+
* @purpose Options for creating a GitLab API client: base URL and access token.
|
|
6
7
|
* @consumer VcsGitlabClient
|
|
7
8
|
*/
|
|
8
9
|
export type VcsGitlabClientOptions = {
|
|
10
|
+
/** @purpose GitLab instance base URL (e.g. https://gitlab.example.com) */
|
|
9
11
|
baseUrl: string;
|
|
12
|
+
/** @purpose GitLab personal or project access token */
|
|
10
13
|
token: string;
|
|
11
14
|
};
|
|
12
15
|
/**
|
|
13
|
-
* @purpose
|
|
16
|
+
* @purpose GitLab client for working with REST API.
|
|
17
|
+
* @invariant Error Policy: Any non-2xx response is converted to an Error with status details.
|
|
18
|
+
* @invariant Retry Policy: No retries; retry responsibility lies with the caller.
|
|
14
19
|
* @consumer cli/review-verify
|
|
15
|
-
* @invariant Error Policy: Любой ответ !2xx преобразуется в Error с подробностями статуса.
|
|
16
|
-
* @invariant Retry Policy: Повторов нет; ответственность за ретраи на вызывающей стороне.
|
|
17
20
|
*/
|
|
18
21
|
export declare class VcsGitlabClient extends VcsClient {
|
|
19
22
|
/** @see {VcsClient#MergeRequests} in services/vcs-client/abstract/vcs-client.ts */
|
|
20
23
|
readonly MergeRequests: VcsGitlabMergeRequests;
|
|
21
24
|
/** @see {VcsClient#MergeDiscussions} in services/vcs-client/abstract/vcs-client.ts */
|
|
22
25
|
readonly MergeDiscussions: VcsGitlabMergeDiscussions;
|
|
26
|
+
/** @see {VcsClient#RepositoryFiles} in services/vcs-client/abstract/vcs-client.ts */
|
|
27
|
+
readonly RepositoryFiles: VcsGitlabRepositoryFiles;
|
|
28
|
+
/**
|
|
29
|
+
* @purpose Create a GitLab API client bound to a base URL with access token.
|
|
30
|
+
* @param options Connection parameters: base URL and access token.
|
|
31
|
+
*/
|
|
23
32
|
constructor(options: VcsGitlabClientOptions);
|
|
24
33
|
}
|
|
@@ -1,26 +1,37 @@
|
|
|
1
1
|
import { VcsClientMergeDiscussions, type VcsAddNoteQuery, type VcsDiscussionsListQuery } from '../abstract/vcs-client-merge-discussions.js';
|
|
2
2
|
type RequestFn = (path: string, init?: RequestInit) => Promise<unknown>;
|
|
3
3
|
/**
|
|
4
|
-
* @purpose
|
|
4
|
+
* @purpose Access to Discussions for Merge Requests in GitLab.
|
|
5
|
+
* @invariant Error Policy: Network/status errors are thrown outward from request().
|
|
5
6
|
* @consumer VcsGitlabClient
|
|
6
|
-
* @invariant Error Policy: Ошибки сети/статуса пробрасываются наружу из request().
|
|
7
7
|
*/
|
|
8
8
|
export declare class VcsGitlabMergeDiscussions extends VcsClientMergeDiscussions {
|
|
9
|
+
/** @purpose Bound HTTP request function injected for GitLab API calls */
|
|
9
10
|
protected _request: RequestFn;
|
|
11
|
+
/**
|
|
12
|
+
* @purpose Wire the HTTP request adapter for GitLab merge discussion endpoints.
|
|
13
|
+
* @param request Authenticated HTTP request function targeting GitLab API.
|
|
14
|
+
*/
|
|
10
15
|
constructor(request: RequestFn);
|
|
11
16
|
/**
|
|
12
|
-
* @
|
|
17
|
+
* @param query Target project, MR, discussion, and note body.
|
|
18
|
+
* @returns Created note object from GitLab API.
|
|
13
19
|
* @sideEffect Network: POST /projects/:project/merge_requests/:iid/discussions/:discussion_id/notes
|
|
20
|
+
* @see {VcsClientMergeDiscussions#addNote} in services/vcs-client/abstract/vcs-merge-discussions.ts
|
|
14
21
|
*/
|
|
15
22
|
addNote(query: VcsAddNoteQuery): Promise<unknown>;
|
|
16
23
|
/**
|
|
17
|
-
* @
|
|
24
|
+
* @param query Target project, MR, and optional pagination.
|
|
25
|
+
* @returns List of discussions for the requested page.
|
|
18
26
|
* @sideEffect Network: GET /projects/:project/merge_requests/:iid/discussions
|
|
27
|
+
* @see {VcsClientMergeDiscussions#getList} in services/vcs-client/abstract/vcs-merge-discussions.ts
|
|
19
28
|
*/
|
|
20
29
|
getList(query: VcsDiscussionsListQuery): Promise<unknown[]>;
|
|
21
30
|
/**
|
|
31
|
+
* @param query Target project and MR.
|
|
32
|
+
* @returns Complete list of all discussions across all pages.
|
|
33
|
+
* @sideEffect Network: Multiple GET requests for paginated loading.
|
|
22
34
|
* @see {VcsClientMergeDiscussions#getAll} in services/vcs-client/abstract/vcs-merge-discussions.ts
|
|
23
|
-
* @sideEffect Network: Многократные GET для постраничной загрузки.
|
|
24
35
|
*/
|
|
25
36
|
getAll(query: {
|
|
26
37
|
project: string;
|
|
@@ -1,27 +1,46 @@
|
|
|
1
1
|
import { VcsClientMergeRequests, type VcsMergeRequestByIidQuery, type VcsMergeRequestsQuery } from '../abstract/vcs-client-merge-requests.js';
|
|
2
|
+
import type { VcsMergeRequestChanges, VcsMergeRequestChangesQuery } from '../entities/vcs-merge-request-changes.type.js';
|
|
2
3
|
type RequestFn = (path: string, init?: RequestInit) => Promise<unknown>;
|
|
3
4
|
/**
|
|
4
|
-
* @purpose
|
|
5
|
+
* @purpose Access GitLab Merge Requests.
|
|
6
|
+
* @invariant Error Policy: Network/status errors propagated to caller.
|
|
5
7
|
* @consumer VcsGitlabClient
|
|
6
|
-
* @invariant Error Policy: Ошибки сети/статуса пробрасываются наружу из request().
|
|
7
8
|
*/
|
|
8
9
|
export declare class VcsGitlabMergeRequests extends VcsClientMergeRequests {
|
|
10
|
+
/** @purpose Bound HTTP request function injected for GitLab API calls */
|
|
9
11
|
protected _request: RequestFn;
|
|
12
|
+
/**
|
|
13
|
+
* @purpose Wire the HTTP request adapter for GitLab merge request endpoints.
|
|
14
|
+
* @param request Authenticated HTTP request function targeting GitLab API.
|
|
15
|
+
*/
|
|
10
16
|
constructor(request: RequestFn);
|
|
11
17
|
/**
|
|
12
|
-
* @
|
|
18
|
+
* @param query Target project and optional filters.
|
|
19
|
+
* @returns List of merge requests matching the filters.
|
|
13
20
|
* @sideEffect Network: GET /projects/:project/merge_requests
|
|
21
|
+
* @see {VcsClientMergeRequests#getList} in services/vcs-client/abstract/vcs-merge-requests.ts
|
|
14
22
|
*/
|
|
15
23
|
getList(query: VcsMergeRequestsQuery): Promise<unknown[]>;
|
|
16
24
|
/**
|
|
25
|
+
* @param query Target project and optional filters.
|
|
26
|
+
* @returns First matching merge request or null.
|
|
27
|
+
* @sideEffect Network: Delegates to getList() with per_page=1 limit.
|
|
17
28
|
* @see {VcsClientMergeRequests#getList} in services/vcs-client/abstract/vcs-merge-requests.ts
|
|
18
|
-
* @sideEffect Network: Делегирует в getList() с ограничением per_page=1.
|
|
19
29
|
*/
|
|
20
30
|
getOne(query: VcsMergeRequestsQuery): Promise<unknown | null>;
|
|
21
31
|
/**
|
|
22
|
-
* @
|
|
32
|
+
* @param query Target project and MR IID.
|
|
33
|
+
* @returns Merge request object or null on 404.
|
|
23
34
|
* @sideEffect Network: GET /projects/:project/merge_requests/:iid
|
|
35
|
+
* @see {VcsClientMergeRequests#getList} in services/vcs-client/abstract/vcs-merge-requests.ts
|
|
24
36
|
*/
|
|
25
37
|
getByIid(query: VcsMergeRequestByIidQuery): Promise<unknown | null>;
|
|
38
|
+
/**
|
|
39
|
+
* @param query Target repository and MR IID, optional pagination.
|
|
40
|
+
* @returns List of changed files with metadata.
|
|
41
|
+
* @sideEffect Network: GET /projects/:project/merge_requests/:iid/changes
|
|
42
|
+
* @see {VcsClientMergeRequests#getChanges} in services/vcs-client/abstract/vcs-client-merge-requests.ts
|
|
43
|
+
*/
|
|
44
|
+
getChanges(query: VcsMergeRequestChangesQuery): Promise<VcsMergeRequestChanges[]>;
|
|
26
45
|
}
|
|
27
46
|
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { VcsClientRepositoryFiles } from '../abstract/vcs-client-repository-files.js';
|
|
2
|
+
import type { VcsFileContent, VcsFileContentQuery } from '../entities/vcs-file-content.type.js';
|
|
3
|
+
/**
|
|
4
|
+
* @purpose Access repository files via GitLab API (/raw endpoint).
|
|
5
|
+
* @invariant Error Policy: Network/status errors propagated to caller. 404 → null.
|
|
6
|
+
* @invariant Encoding Contract: Text files → encoding: 'utf-8'; binary → encoding: 'base64'.
|
|
7
|
+
* @consumer VcsGitlabClient
|
|
8
|
+
*/
|
|
9
|
+
export declare class VcsGitlabRepositoryFiles extends VcsClientRepositoryFiles {
|
|
10
|
+
/** @purpose GitLab instance base URL */
|
|
11
|
+
protected _baseUrl: string;
|
|
12
|
+
/** @purpose GitLab access token */
|
|
13
|
+
protected _token: string;
|
|
14
|
+
/**
|
|
15
|
+
* @purpose Wire the adapter with GitLab connection params for raw file fetches.
|
|
16
|
+
* @param baseUrl GitLab instance base URL (e.g. https://gitlab.com/api/v4).
|
|
17
|
+
* @param token GitLab personal access token.
|
|
18
|
+
*/
|
|
19
|
+
constructor(baseUrl: string, token: string);
|
|
20
|
+
/**
|
|
21
|
+
* @param query Target repository, file path, and ref.
|
|
22
|
+
* @returns File content or null if file not found.
|
|
23
|
+
* @sideEffect Network: GET /projects/:id/repository/files/:path/raw?ref=
|
|
24
|
+
* @see {VcsClientRepositoryFiles#getFileContent} in services/vcs-client/abstract/vcs-client-repository-files.ts
|
|
25
|
+
*/
|
|
26
|
+
getFileContent(query: VcsFileContentQuery): Promise<VcsFileContent | null>;
|
|
27
|
+
}
|
|
@@ -1,61 +1,63 @@
|
|
|
1
1
|
import { type ParsedDiffFile } from './git-diff.js';
|
|
2
2
|
/**
|
|
3
|
-
* @purpose
|
|
3
|
+
* @purpose Describe origin remote repository data (host, project, scheme).
|
|
4
4
|
* @consumer git-core, vcs-client
|
|
5
5
|
*/
|
|
6
6
|
export type GitRemoteInfo = {
|
|
7
|
+
/** @purpose Git host domain (e.g. github.com). */
|
|
7
8
|
host: string;
|
|
9
|
+
/** @purpose Repository path on the host (e.g. owner/repo). */
|
|
8
10
|
project: string;
|
|
11
|
+
/** @purpose URL scheme used for origin remote (http, https, ssh). */
|
|
9
12
|
scheme: string;
|
|
10
13
|
};
|
|
11
14
|
/**
|
|
12
|
-
* @purpose
|
|
15
|
+
* @purpose Aggregated diff information: raw text, parsed files, token and commit metrics.
|
|
13
16
|
* @consumer commit-gen, review-gen, ai-legacy
|
|
14
17
|
*/
|
|
15
18
|
export type GitDiffInfo = {
|
|
19
|
+
/** @purpose Raw git diff text output. */
|
|
16
20
|
diff: string;
|
|
21
|
+
/** @purpose All parsed diff files sorted by token count ascending. */
|
|
17
22
|
parsedDiff: ParsedDiffFile[];
|
|
23
|
+
/** @purpose Code/config files only, excluding tests, deleted and renamed. */
|
|
18
24
|
parsedCodeDiff: ParsedDiffFile[];
|
|
25
|
+
/** @purpose Total token count across parsed code diff files. */
|
|
19
26
|
parsedCodeTokens: number;
|
|
27
|
+
/** @purpose Token count of the largest code file chunk. */
|
|
20
28
|
parsedCodeChunkMaxTokens: number;
|
|
29
|
+
/** @purpose Unique programming languages detected across code diff files. */
|
|
21
30
|
programmingLanguages: (string | undefined)[];
|
|
31
|
+
/** @purpose Number of commits on top of base branch. */
|
|
22
32
|
commitCount: number;
|
|
23
33
|
};
|
|
24
34
|
/**
|
|
25
|
-
* @purpose
|
|
26
|
-
* @
|
|
27
|
-
* @sideEffect Process: выполнение git branch.
|
|
35
|
+
* @purpose Determine the base branch (main or master) for diff analysis.
|
|
36
|
+
* @sideEffect Process: executes git branch.
|
|
28
37
|
*/
|
|
29
38
|
export declare const detectGitBaseBranch: () => string;
|
|
30
39
|
/**
|
|
31
|
-
* @purpose
|
|
32
|
-
* @
|
|
33
|
-
* @sideEffect Process: выполнение git rev-parse.
|
|
40
|
+
* @purpose Get current Git branch name.
|
|
41
|
+
* @sideEffect Process: executes git rev-parse.
|
|
34
42
|
*/
|
|
35
43
|
export declare const getGitCurrentBranch: () => string;
|
|
36
44
|
/**
|
|
37
|
-
* @purpose
|
|
38
|
-
* @
|
|
39
|
-
* @sideEffect Process: выполнение git config / git remote.
|
|
45
|
+
* @purpose Get origin remote repository info.
|
|
46
|
+
* @sideEffect Process: executes git config / git remote.
|
|
40
47
|
*/
|
|
41
48
|
export declare const getGitRemote: () => GitRemoteInfo | null;
|
|
42
49
|
/**
|
|
43
|
-
* @purpose
|
|
44
|
-
* @
|
|
45
|
-
* @sideEffect Process: выполнение git rev-list.
|
|
50
|
+
* @purpose Count commits on top of the base branch.
|
|
51
|
+
* @sideEffect Process: executes git rev-list.
|
|
46
52
|
*/
|
|
47
53
|
export declare const getGitCommitCount: () => number;
|
|
48
54
|
/**
|
|
49
|
-
* @purpose
|
|
50
|
-
* @
|
|
51
|
-
* @returns Строка с текстовым представлением diff из git.
|
|
52
|
-
* @sideEffect Process: выполнение git diff.
|
|
55
|
+
* @purpose Get textual diff of current state against target.
|
|
56
|
+
* @sideEffect Process: executes git diff.
|
|
53
57
|
*/
|
|
54
58
|
export declare const getGitDiff: (targetBranch?: string) => string;
|
|
55
59
|
/**
|
|
56
|
-
* @purpose
|
|
57
|
-
* @
|
|
58
|
-
* @returns Объект с исходным diff, разобранными файлами и метриками (языки, токены, коммиты).
|
|
59
|
-
* @sideEffect Process: вызовы getGitDiff и getGitCommitCount (git команды).
|
|
60
|
+
* @purpose Build aggregated diff info for further analysis/ranking.
|
|
61
|
+
* @sideEffect Process: calls getGitDiff and getGitCommitCount (git commands).
|
|
60
62
|
*/
|
|
61
63
|
export declare const getGitDiffInfo: (branch?: string) => GitDiffInfo;
|
|
@@ -1,15 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @purpose
|
|
2
|
+
* @purpose Describe one file from parsed git diff: flags, name, category, language, hunks and token count.
|
|
3
3
|
* @consumer git-core, commit-gen, review-gen
|
|
4
4
|
*/
|
|
5
5
|
export type ParsedDiffFile = {
|
|
6
|
+
/** @purpose True if the file was created in this diff (new file mode). */
|
|
6
7
|
isNew: boolean;
|
|
8
|
+
/** @purpose True if the file was deleted in this diff (deleted file mode). */
|
|
7
9
|
isDeleted: boolean;
|
|
10
|
+
/** @purpose True if the file was renamed (rename from/to headers present). */
|
|
8
11
|
isRenamed: boolean;
|
|
12
|
+
/** @purpose Current file path (post-rename if applicable). */
|
|
9
13
|
filename: string;
|
|
14
|
+
/** @purpose Original file path before rename, or null. */
|
|
10
15
|
oldFilename: string | null;
|
|
16
|
+
/** @purpose New file mode octet (e.g. 100644), or null. */
|
|
11
17
|
newFileMode: string | null;
|
|
18
|
+
/** @purpose Deleted file mode octet, or null. */
|
|
12
19
|
deletedFileMode: string | null;
|
|
20
|
+
/** @purpose Aggregated hunk data: token counts and change lines. */
|
|
13
21
|
diff: {
|
|
14
22
|
tokens: number;
|
|
15
23
|
hunks: {
|
|
@@ -18,17 +26,20 @@ export type ParsedDiffFile = {
|
|
|
18
26
|
tokens: number;
|
|
19
27
|
}[];
|
|
20
28
|
};
|
|
29
|
+
/** @purpose Total token count computed across all hunks. */
|
|
21
30
|
tokens: number;
|
|
31
|
+
/** @purpose Raw metadata extracted from diff headers (index, modes, etc.). */
|
|
22
32
|
metadata: Record<string, unknown>;
|
|
33
|
+
/** @purpose File extension in lowercase (e.g. 'ts'). */
|
|
23
34
|
ext: string;
|
|
35
|
+
/** @purpose File category: code, config, doc, img, bin, lock, etc. */
|
|
24
36
|
category: string;
|
|
37
|
+
/** @purpose Detected programming language from file extension, if any. */
|
|
25
38
|
programmingLanguage?: string;
|
|
26
39
|
};
|
|
27
40
|
/**
|
|
28
|
-
* @purpose
|
|
41
|
+
* @purpose Parse raw git diff output into normalized file list with metadata and tokens.
|
|
42
|
+
* @pre Input string must match `git diff` format (unified diff).
|
|
29
43
|
* @consumer git/git-core, commit-gen, review-gen
|
|
30
|
-
* @pre Входная строка должна соответствовать формату `git diff` (unified diff).
|
|
31
|
-
* @param diffText Полный текстовый diff для парсинга.
|
|
32
|
-
* @returns Массив объектов файлов с признаками (isNew/isDeleted/isRenamed), категориями, языком, хунками и суммой токенов.
|
|
33
44
|
*/
|
|
34
45
|
export declare const parseGitDiff: (diffText: string) => ParsedDiffFile[];
|