@chief-clancy/core 0.1.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/LICENSE +21 -0
- package/README.md +50 -0
- package/dist/board/azdo/api/api.d.ts +95 -0
- package/dist/board/azdo/api/api.d.ts.map +1 -0
- package/dist/board/azdo/api/api.js +173 -0
- package/dist/board/azdo/api/api.js.map +1 -0
- package/dist/board/azdo/api/helpers.d.ts +89 -0
- package/dist/board/azdo/api/helpers.d.ts.map +1 -0
- package/dist/board/azdo/api/helpers.js +133 -0
- package/dist/board/azdo/api/helpers.js.map +1 -0
- package/dist/board/azdo/api/index.d.ts +5 -0
- package/dist/board/azdo/api/index.d.ts.map +1 -0
- package/dist/board/azdo/api/index.js +3 -0
- package/dist/board/azdo/api/index.js.map +1 -0
- package/dist/board/azdo/azdo-board.d.ts +12 -0
- package/dist/board/azdo/azdo-board.d.ts.map +1 -0
- package/dist/board/azdo/azdo-board.js +104 -0
- package/dist/board/azdo/azdo-board.js.map +1 -0
- package/dist/board/azdo/index.d.ts +3 -0
- package/dist/board/azdo/index.d.ts.map +1 -0
- package/dist/board/azdo/index.js +3 -0
- package/dist/board/azdo/index.js.map +1 -0
- package/dist/board/azdo/labels/index.d.ts +2 -0
- package/dist/board/azdo/labels/index.d.ts.map +1 -0
- package/dist/board/azdo/labels/index.js +2 -0
- package/dist/board/azdo/labels/index.js.map +1 -0
- package/dist/board/azdo/labels/labels.d.ts +27 -0
- package/dist/board/azdo/labels/labels.d.ts.map +1 -0
- package/dist/board/azdo/labels/labels.js +64 -0
- package/dist/board/azdo/labels/labels.js.map +1 -0
- package/dist/board/azdo/relations/index.d.ts +2 -0
- package/dist/board/azdo/relations/index.d.ts.map +1 -0
- package/dist/board/azdo/relations/index.js +2 -0
- package/dist/board/azdo/relations/index.js.map +1 -0
- package/dist/board/azdo/relations/relations.d.ts +37 -0
- package/dist/board/azdo/relations/relations.d.ts.map +1 -0
- package/dist/board/azdo/relations/relations.js +109 -0
- package/dist/board/azdo/relations/relations.js.map +1 -0
- package/dist/board/detect-board.d.ts +28 -0
- package/dist/board/detect-board.d.ts.map +1 -0
- package/dist/board/detect-board.js +80 -0
- package/dist/board/detect-board.js.map +1 -0
- package/dist/board/factory/factory.d.ts +18 -0
- package/dist/board/factory/factory.d.ts.map +1 -0
- package/dist/board/factory/factory.js +34 -0
- package/dist/board/factory/factory.js.map +1 -0
- package/dist/board/factory/index.d.ts +2 -0
- package/dist/board/factory/index.d.ts.map +1 -0
- package/dist/board/factory/index.js +2 -0
- package/dist/board/factory/index.js.map +1 -0
- package/dist/board/github/api/api.d.ts +86 -0
- package/dist/board/github/api/api.d.ts.map +1 -0
- package/dist/board/github/api/api.js +161 -0
- package/dist/board/github/api/api.js.map +1 -0
- package/dist/board/github/api/index.d.ts +3 -0
- package/dist/board/github/api/index.d.ts.map +1 -0
- package/dist/board/github/api/index.js +2 -0
- package/dist/board/github/api/index.js.map +1 -0
- package/dist/board/github/github-board.d.ts +19 -0
- package/dist/board/github/github-board.d.ts.map +1 -0
- package/dist/board/github/github-board.js +104 -0
- package/dist/board/github/github-board.js.map +1 -0
- package/dist/board/github/index.d.ts +3 -0
- package/dist/board/github/index.d.ts.map +1 -0
- package/dist/board/github/index.js +3 -0
- package/dist/board/github/index.js.map +1 -0
- package/dist/board/github/labels/index.d.ts +2 -0
- package/dist/board/github/labels/index.d.ts.map +1 -0
- package/dist/board/github/labels/index.js +2 -0
- package/dist/board/github/labels/index.js.map +1 -0
- package/dist/board/github/labels/labels.d.ts +42 -0
- package/dist/board/github/labels/labels.d.ts.map +1 -0
- package/dist/board/github/labels/labels.js +93 -0
- package/dist/board/github/labels/labels.js.map +1 -0
- package/dist/board/github/relations/index.d.ts +2 -0
- package/dist/board/github/relations/index.d.ts.map +1 -0
- package/dist/board/github/relations/index.js +2 -0
- package/dist/board/github/relations/index.js.map +1 -0
- package/dist/board/github/relations/relations.d.ts +54 -0
- package/dist/board/github/relations/relations.d.ts.map +1 -0
- package/dist/board/github/relations/relations.js +152 -0
- package/dist/board/github/relations/relations.js.map +1 -0
- package/dist/board/index.d.ts +2 -0
- package/dist/board/index.d.ts.map +1 -0
- package/dist/board/index.js +2 -0
- package/dist/board/index.js.map +1 -0
- package/dist/board/jira/api/api.d.ts +129 -0
- package/dist/board/jira/api/api.d.ts.map +1 -0
- package/dist/board/jira/api/api.js +207 -0
- package/dist/board/jira/api/api.js.map +1 -0
- package/dist/board/jira/api/index.d.ts +3 -0
- package/dist/board/jira/api/index.d.ts.map +1 -0
- package/dist/board/jira/api/index.js +2 -0
- package/dist/board/jira/api/index.js.map +1 -0
- package/dist/board/jira/index.d.ts +3 -0
- package/dist/board/jira/index.d.ts.map +1 -0
- package/dist/board/jira/index.js +3 -0
- package/dist/board/jira/index.js.map +1 -0
- package/dist/board/jira/jira-board.d.ts +12 -0
- package/dist/board/jira/jira-board.d.ts.map +1 -0
- package/dist/board/jira/jira-board.js +112 -0
- package/dist/board/jira/jira-board.js.map +1 -0
- package/dist/board/jira/labels/index.d.ts +2 -0
- package/dist/board/jira/labels/index.d.ts.map +1 -0
- package/dist/board/jira/labels/index.js +2 -0
- package/dist/board/jira/labels/index.js.map +1 -0
- package/dist/board/jira/labels/labels.d.ts +34 -0
- package/dist/board/jira/labels/labels.d.ts.map +1 -0
- package/dist/board/jira/labels/labels.js +69 -0
- package/dist/board/jira/labels/labels.js.map +1 -0
- package/dist/board/jira/relations/index.d.ts +2 -0
- package/dist/board/jira/relations/index.d.ts.map +1 -0
- package/dist/board/jira/relations/index.js +2 -0
- package/dist/board/jira/relations/index.js.map +1 -0
- package/dist/board/jira/relations/relations.d.ts +44 -0
- package/dist/board/jira/relations/relations.d.ts.map +1 -0
- package/dist/board/jira/relations/relations.js +111 -0
- package/dist/board/jira/relations/relations.js.map +1 -0
- package/dist/board/linear/api/api.d.ts +68 -0
- package/dist/board/linear/api/api.d.ts.map +1 -0
- package/dist/board/linear/api/api.js +179 -0
- package/dist/board/linear/api/api.js.map +1 -0
- package/dist/board/linear/api/index.d.ts +2 -0
- package/dist/board/linear/api/index.d.ts.map +1 -0
- package/dist/board/linear/api/index.js +2 -0
- package/dist/board/linear/api/index.js.map +1 -0
- package/dist/board/linear/index.d.ts +3 -0
- package/dist/board/linear/index.d.ts.map +1 -0
- package/dist/board/linear/index.js +3 -0
- package/dist/board/linear/index.js.map +1 -0
- package/dist/board/linear/labels/index.d.ts +2 -0
- package/dist/board/linear/labels/index.d.ts.map +1 -0
- package/dist/board/linear/labels/index.js +2 -0
- package/dist/board/linear/labels/index.js.map +1 -0
- package/dist/board/linear/labels/labels.d.ts +63 -0
- package/dist/board/linear/labels/labels.d.ts.map +1 -0
- package/dist/board/linear/labels/labels.js +204 -0
- package/dist/board/linear/labels/labels.js.map +1 -0
- package/dist/board/linear/linear-board.d.ts +18 -0
- package/dist/board/linear/linear-board.d.ts.map +1 -0
- package/dist/board/linear/linear-board.js +115 -0
- package/dist/board/linear/linear-board.js.map +1 -0
- package/dist/board/linear/relations/index.d.ts +2 -0
- package/dist/board/linear/relations/index.d.ts.map +1 -0
- package/dist/board/linear/relations/index.js +2 -0
- package/dist/board/linear/relations/index.js.map +1 -0
- package/dist/board/linear/relations/relations.d.ts +67 -0
- package/dist/board/linear/relations/relations.d.ts.map +1 -0
- package/dist/board/linear/relations/relations.js +195 -0
- package/dist/board/linear/relations/relations.js.map +1 -0
- package/dist/board/notion/api/api.d.ts +83 -0
- package/dist/board/notion/api/api.d.ts.map +1 -0
- package/dist/board/notion/api/api.js +124 -0
- package/dist/board/notion/api/api.js.map +1 -0
- package/dist/board/notion/api/helpers.d.ts +105 -0
- package/dist/board/notion/api/helpers.d.ts.map +1 -0
- package/dist/board/notion/api/helpers.js +175 -0
- package/dist/board/notion/api/helpers.js.map +1 -0
- package/dist/board/notion/api/index.d.ts +4 -0
- package/dist/board/notion/api/index.d.ts.map +1 -0
- package/dist/board/notion/api/index.js +3 -0
- package/dist/board/notion/api/index.js.map +1 -0
- package/dist/board/notion/index.d.ts +3 -0
- package/dist/board/notion/index.d.ts.map +1 -0
- package/dist/board/notion/index.js +3 -0
- package/dist/board/notion/index.js.map +1 -0
- package/dist/board/notion/labels/index.d.ts +2 -0
- package/dist/board/notion/labels/index.d.ts.map +1 -0
- package/dist/board/notion/labels/index.js +2 -0
- package/dist/board/notion/labels/index.js.map +1 -0
- package/dist/board/notion/labels/labels.d.ts +30 -0
- package/dist/board/notion/labels/labels.d.ts.map +1 -0
- package/dist/board/notion/labels/labels.js +56 -0
- package/dist/board/notion/labels/labels.js.map +1 -0
- package/dist/board/notion/notion-board.d.ts +12 -0
- package/dist/board/notion/notion-board.d.ts.map +1 -0
- package/dist/board/notion/notion-board.js +156 -0
- package/dist/board/notion/notion-board.js.map +1 -0
- package/dist/board/notion/relations/index.d.ts +2 -0
- package/dist/board/notion/relations/index.d.ts.map +1 -0
- package/dist/board/notion/relations/index.js +2 -0
- package/dist/board/notion/relations/index.js.map +1 -0
- package/dist/board/notion/relations/relations.d.ts +43 -0
- package/dist/board/notion/relations/relations.d.ts.map +1 -0
- package/dist/board/notion/relations/relations.js +127 -0
- package/dist/board/notion/relations/relations.js.map +1 -0
- package/dist/board/shortcut/api/api.d.ts +110 -0
- package/dist/board/shortcut/api/api.d.ts.map +1 -0
- package/dist/board/shortcut/api/api.js +227 -0
- package/dist/board/shortcut/api/api.js.map +1 -0
- package/dist/board/shortcut/api/index.d.ts +2 -0
- package/dist/board/shortcut/api/index.d.ts.map +1 -0
- package/dist/board/shortcut/api/index.js +2 -0
- package/dist/board/shortcut/api/index.js.map +1 -0
- package/dist/board/shortcut/index.d.ts +3 -0
- package/dist/board/shortcut/index.d.ts.map +1 -0
- package/dist/board/shortcut/index.js +3 -0
- package/dist/board/shortcut/index.js.map +1 -0
- package/dist/board/shortcut/labels/index.d.ts +2 -0
- package/dist/board/shortcut/labels/index.d.ts.map +1 -0
- package/dist/board/shortcut/labels/index.js +2 -0
- package/dist/board/shortcut/labels/index.js.map +1 -0
- package/dist/board/shortcut/labels/labels.d.ts +95 -0
- package/dist/board/shortcut/labels/labels.d.ts.map +1 -0
- package/dist/board/shortcut/labels/labels.js +154 -0
- package/dist/board/shortcut/labels/labels.js.map +1 -0
- package/dist/board/shortcut/relations/index.d.ts +2 -0
- package/dist/board/shortcut/relations/index.d.ts.map +1 -0
- package/dist/board/shortcut/relations/index.js +2 -0
- package/dist/board/shortcut/relations/index.js.map +1 -0
- package/dist/board/shortcut/relations/relations.d.ts +44 -0
- package/dist/board/shortcut/relations/relations.d.ts.map +1 -0
- package/dist/board/shortcut/relations/relations.js +118 -0
- package/dist/board/shortcut/relations/relations.js.map +1 -0
- package/dist/board/shortcut/shortcut-board.d.ts +18 -0
- package/dist/board/shortcut/shortcut-board.d.ts.map +1 -0
- package/dist/board/shortcut/shortcut-board.js +143 -0
- package/dist/board/shortcut/shortcut-board.js.map +1 -0
- package/dist/dev/lifecycle/branch/branch.d.ts +35 -0
- package/dist/dev/lifecycle/branch/branch.d.ts.map +1 -0
- package/dist/dev/lifecycle/branch/branch.js +48 -0
- package/dist/dev/lifecycle/branch/branch.js.map +1 -0
- package/dist/dev/lifecycle/branch/index.d.ts +2 -0
- package/dist/dev/lifecycle/branch/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/branch/index.js +2 -0
- package/dist/dev/lifecycle/branch/index.js.map +1 -0
- package/dist/dev/lifecycle/commit-type/commit-type.d.ts +22 -0
- package/dist/dev/lifecycle/commit-type/commit-type.d.ts.map +1 -0
- package/dist/dev/lifecycle/commit-type/commit-type.js +50 -0
- package/dist/dev/lifecycle/commit-type/commit-type.js.map +1 -0
- package/dist/dev/lifecycle/commit-type/index.d.ts +2 -0
- package/dist/dev/lifecycle/commit-type/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/commit-type/index.js +2 -0
- package/dist/dev/lifecycle/commit-type/index.js.map +1 -0
- package/dist/dev/lifecycle/cost/cost.d.ts +28 -0
- package/dist/dev/lifecycle/cost/cost.d.ts.map +1 -0
- package/dist/dev/lifecycle/cost/cost.js +36 -0
- package/dist/dev/lifecycle/cost/cost.js.map +1 -0
- package/dist/dev/lifecycle/deliver-epic/deliver-epic.d.ts +44 -0
- package/dist/dev/lifecycle/deliver-epic/deliver-epic.d.ts.map +1 -0
- package/dist/dev/lifecycle/deliver-epic/deliver-epic.js +75 -0
- package/dist/dev/lifecycle/deliver-epic/deliver-epic.js.map +1 -0
- package/dist/dev/lifecycle/deliver-ticket/deliver-ticket.d.ts +51 -0
- package/dist/dev/lifecycle/deliver-ticket/deliver-ticket.d.ts.map +1 -0
- package/dist/dev/lifecycle/deliver-ticket/deliver-ticket.js +132 -0
- package/dist/dev/lifecycle/deliver-ticket/deliver-ticket.js.map +1 -0
- package/dist/dev/lifecycle/epic/epic.d.ts +66 -0
- package/dist/dev/lifecycle/epic/epic.d.ts.map +1 -0
- package/dist/dev/lifecycle/epic/epic.js +91 -0
- package/dist/dev/lifecycle/epic/epic.js.map +1 -0
- package/dist/dev/lifecycle/epic/index.d.ts +2 -0
- package/dist/dev/lifecycle/epic/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/epic/index.js +2 -0
- package/dist/dev/lifecycle/epic/index.js.map +1 -0
- package/dist/dev/lifecycle/feasibility/feasibility.d.ts +55 -0
- package/dist/dev/lifecycle/feasibility/feasibility.d.ts.map +1 -0
- package/dist/dev/lifecycle/feasibility/feasibility.js +75 -0
- package/dist/dev/lifecycle/feasibility/feasibility.js.map +1 -0
- package/dist/dev/lifecycle/fetch-ticket/fetch-ticket.d.ts +49 -0
- package/dist/dev/lifecycle/fetch-ticket/fetch-ticket.d.ts.map +1 -0
- package/dist/dev/lifecycle/fetch-ticket/fetch-ticket.js +81 -0
- package/dist/dev/lifecycle/fetch-ticket/fetch-ticket.js.map +1 -0
- package/dist/dev/lifecycle/format/format.d.ts +11 -0
- package/dist/dev/lifecycle/format/format.d.ts.map +1 -0
- package/dist/dev/lifecycle/format/format.js +23 -0
- package/dist/dev/lifecycle/format/format.js.map +1 -0
- package/dist/dev/lifecycle/lock/index.d.ts +3 -0
- package/dist/dev/lifecycle/lock/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/lock/index.js +2 -0
- package/dist/dev/lifecycle/lock/index.js.map +1 -0
- package/dist/dev/lifecycle/lock/lock.d.ts +68 -0
- package/dist/dev/lifecycle/lock/lock.d.ts.map +1 -0
- package/dist/dev/lifecycle/lock/lock.js +125 -0
- package/dist/dev/lifecycle/lock/lock.js.map +1 -0
- package/dist/dev/lifecycle/outcome/index.d.ts +2 -0
- package/dist/dev/lifecycle/outcome/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/outcome/index.js +2 -0
- package/dist/dev/lifecycle/outcome/index.js.map +1 -0
- package/dist/dev/lifecycle/outcome/outcome.d.ts +65 -0
- package/dist/dev/lifecycle/outcome/outcome.d.ts.map +1 -0
- package/dist/dev/lifecycle/outcome/outcome.js +61 -0
- package/dist/dev/lifecycle/outcome/outcome.js.map +1 -0
- package/dist/dev/lifecycle/pr-creation/index.d.ts +3 -0
- package/dist/dev/lifecycle/pr-creation/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/pr-creation/index.js +2 -0
- package/dist/dev/lifecycle/pr-creation/index.js.map +1 -0
- package/dist/dev/lifecycle/pr-creation/pr-creation.d.ts +47 -0
- package/dist/dev/lifecycle/pr-creation/pr-creation.d.ts.map +1 -0
- package/dist/dev/lifecycle/pr-creation/pr-creation.js +143 -0
- package/dist/dev/lifecycle/pr-creation/pr-creation.js.map +1 -0
- package/dist/dev/lifecycle/preflight/preflight.d.ts +42 -0
- package/dist/dev/lifecycle/preflight/preflight.d.ts.map +1 -0
- package/dist/dev/lifecycle/preflight/preflight.js +101 -0
- package/dist/dev/lifecycle/preflight/preflight.js.map +1 -0
- package/dist/dev/lifecycle/progress/index.d.ts +3 -0
- package/dist/dev/lifecycle/progress/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/progress/index.js +2 -0
- package/dist/dev/lifecycle/progress/index.js.map +1 -0
- package/dist/dev/lifecycle/progress/progress.d.ts +98 -0
- package/dist/dev/lifecycle/progress/progress.d.ts.map +1 -0
- package/dist/dev/lifecycle/progress/progress.js +212 -0
- package/dist/dev/lifecycle/progress/progress.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/azdo/azdo.d.ts +86 -0
- package/dist/dev/lifecycle/pull-request/azdo/azdo.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/azdo/azdo.js +198 -0
- package/dist/dev/lifecycle/pull-request/azdo/azdo.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/azdo/index.d.ts +2 -0
- package/dist/dev/lifecycle/pull-request/azdo/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/azdo/index.js +2 -0
- package/dist/dev/lifecycle/pull-request/azdo/index.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/cloud.d.ts +85 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/cloud.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/cloud.js +158 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/cloud.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/index.d.ts +3 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/index.js +3 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/index.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/server.d.ts +85 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/server.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/server.js +168 -0
- package/dist/dev/lifecycle/pull-request/bitbucket/server.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/github/github.d.ts +107 -0
- package/dist/dev/lifecycle/pull-request/github/github.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/github/github.js +225 -0
- package/dist/dev/lifecycle/pull-request/github/github.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/github/index.d.ts +2 -0
- package/dist/dev/lifecycle/pull-request/github/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/github/index.js +2 -0
- package/dist/dev/lifecycle/pull-request/github/index.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/gitlab/gitlab.d.ts +103 -0
- package/dist/dev/lifecycle/pull-request/gitlab/gitlab.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/gitlab/gitlab.js +215 -0
- package/dist/dev/lifecycle/pull-request/gitlab/gitlab.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/gitlab/index.d.ts +2 -0
- package/dist/dev/lifecycle/pull-request/gitlab/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/gitlab/index.js +2 -0
- package/dist/dev/lifecycle/pull-request/gitlab/index.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/post-pr/post-pr.d.ts +44 -0
- package/dist/dev/lifecycle/pull-request/post-pr/post-pr.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/post-pr/post-pr.js +64 -0
- package/dist/dev/lifecycle/pull-request/post-pr/post-pr.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/pr-body/index.d.ts +3 -0
- package/dist/dev/lifecycle/pull-request/pr-body/index.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/pr-body/index.js +2 -0
- package/dist/dev/lifecycle/pull-request/pr-body/index.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/pr-body/pr-body.d.ts +65 -0
- package/dist/dev/lifecycle/pull-request/pr-body/pr-body.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/pr-body/pr-body.js +144 -0
- package/dist/dev/lifecycle/pull-request/pr-body/pr-body.js.map +1 -0
- package/dist/dev/lifecycle/pull-request/rework-comment/rework-comment.d.ts +30 -0
- package/dist/dev/lifecycle/pull-request/rework-comment/rework-comment.d.ts.map +1 -0
- package/dist/dev/lifecycle/pull-request/rework-comment/rework-comment.js +39 -0
- package/dist/dev/lifecycle/pull-request/rework-comment/rework-comment.js.map +1 -0
- package/dist/dev/lifecycle/quality/quality.d.ts +99 -0
- package/dist/dev/lifecycle/quality/quality.d.ts.map +1 -0
- package/dist/dev/lifecycle/quality/quality.js +213 -0
- package/dist/dev/lifecycle/quality/quality.js.map +1 -0
- package/dist/dev/lifecycle/resume/resume.d.ts +64 -0
- package/dist/dev/lifecycle/resume/resume.d.ts.map +1 -0
- package/dist/dev/lifecycle/resume/resume.js +171 -0
- package/dist/dev/lifecycle/resume/resume.js.map +1 -0
- package/dist/dev/lifecycle/rework/rework-builders.d.ts +20 -0
- package/dist/dev/lifecycle/rework/rework-builders.d.ts.map +1 -0
- package/dist/dev/lifecycle/rework/rework-builders.js +203 -0
- package/dist/dev/lifecycle/rework/rework-builders.js.map +1 -0
- package/dist/dev/lifecycle/rework/rework-handlers.d.ts +50 -0
- package/dist/dev/lifecycle/rework/rework-handlers.d.ts.map +1 -0
- package/dist/dev/lifecycle/rework/rework-handlers.js +41 -0
- package/dist/dev/lifecycle/rework/rework-handlers.js.map +1 -0
- package/dist/dev/lifecycle/rework/rework.d.ts +63 -0
- package/dist/dev/lifecycle/rework/rework.d.ts.map +1 -0
- package/dist/dev/lifecycle/rework/rework.js +141 -0
- package/dist/dev/lifecycle/rework/rework.js.map +1 -0
- package/dist/dev/pipeline/context.d.ts +105 -0
- package/dist/dev/pipeline/context.d.ts.map +1 -0
- package/dist/dev/pipeline/context.js +107 -0
- package/dist/dev/pipeline/context.js.map +1 -0
- package/dist/dev/pipeline/index.d.ts +6 -0
- package/dist/dev/pipeline/index.d.ts.map +1 -0
- package/dist/dev/pipeline/index.js +5 -0
- package/dist/dev/pipeline/index.js.map +1 -0
- package/dist/dev/pipeline/phases/branch-setup/branch-setup.d.ts +62 -0
- package/dist/dev/pipeline/phases/branch-setup/branch-setup.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/branch-setup/branch-setup.js +128 -0
- package/dist/dev/pipeline/phases/branch-setup/branch-setup.js.map +1 -0
- package/dist/dev/pipeline/phases/branch-setup/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/branch-setup/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/branch-setup/index.js +2 -0
- package/dist/dev/pipeline/phases/branch-setup/index.js.map +1 -0
- package/dist/dev/pipeline/phases/cleanup-phase/cleanup-phase.d.ts +32 -0
- package/dist/dev/pipeline/phases/cleanup-phase/cleanup-phase.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/cleanup-phase/cleanup-phase.js +32 -0
- package/dist/dev/pipeline/phases/cleanup-phase/cleanup-phase.js.map +1 -0
- package/dist/dev/pipeline/phases/cleanup-phase/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/cleanup-phase/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/cleanup-phase/index.js +2 -0
- package/dist/dev/pipeline/phases/cleanup-phase/index.js.map +1 -0
- package/dist/dev/pipeline/phases/cost-phase/cost-phase.d.ts +40 -0
- package/dist/dev/pipeline/phases/cost-phase/cost-phase.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/cost-phase/cost-phase.js +43 -0
- package/dist/dev/pipeline/phases/cost-phase/cost-phase.js.map +1 -0
- package/dist/dev/pipeline/phases/cost-phase/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/cost-phase/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/cost-phase/index.js +2 -0
- package/dist/dev/pipeline/phases/cost-phase/index.js.map +1 -0
- package/dist/dev/pipeline/phases/deliver-phase/deliver-phase.d.ts +68 -0
- package/dist/dev/pipeline/phases/deliver-phase/deliver-phase.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/deliver-phase/deliver-phase.js +125 -0
- package/dist/dev/pipeline/phases/deliver-phase/deliver-phase.js.map +1 -0
- package/dist/dev/pipeline/phases/deliver-phase/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/deliver-phase/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/deliver-phase/index.js +2 -0
- package/dist/dev/pipeline/phases/deliver-phase/index.js.map +1 -0
- package/dist/dev/pipeline/phases/dry-run/dry-run.d.ts +38 -0
- package/dist/dev/pipeline/phases/dry-run/dry-run.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/dry-run/dry-run.js +33 -0
- package/dist/dev/pipeline/phases/dry-run/dry-run.js.map +1 -0
- package/dist/dev/pipeline/phases/dry-run/index.d.ts +2 -0
- package/dist/dev/pipeline/phases/dry-run/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/dry-run/index.js +2 -0
- package/dist/dev/pipeline/phases/dry-run/index.js.map +1 -0
- package/dist/dev/pipeline/phases/epic-completion/epic-completion.d.ts +48 -0
- package/dist/dev/pipeline/phases/epic-completion/epic-completion.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/epic-completion/epic-completion.js +42 -0
- package/dist/dev/pipeline/phases/epic-completion/epic-completion.js.map +1 -0
- package/dist/dev/pipeline/phases/epic-completion/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/epic-completion/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/epic-completion/index.js +2 -0
- package/dist/dev/pipeline/phases/epic-completion/index.js.map +1 -0
- package/dist/dev/pipeline/phases/feasibility/feasibility.d.ts +52 -0
- package/dist/dev/pipeline/phases/feasibility/feasibility.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/feasibility/feasibility.js +34 -0
- package/dist/dev/pipeline/phases/feasibility/feasibility.js.map +1 -0
- package/dist/dev/pipeline/phases/feasibility/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/feasibility/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/feasibility/index.js +2 -0
- package/dist/dev/pipeline/phases/feasibility/index.js.map +1 -0
- package/dist/dev/pipeline/phases/index.d.ts +26 -0
- package/dist/dev/pipeline/phases/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/index.js +14 -0
- package/dist/dev/pipeline/phases/index.js.map +1 -0
- package/dist/dev/pipeline/phases/lock-check/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/lock-check/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/lock-check/index.js +2 -0
- package/dist/dev/pipeline/phases/lock-check/index.js.map +1 -0
- package/dist/dev/pipeline/phases/lock-check/lock-check.d.ts +55 -0
- package/dist/dev/pipeline/phases/lock-check/lock-check.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/lock-check/lock-check.js +60 -0
- package/dist/dev/pipeline/phases/lock-check/lock-check.js.map +1 -0
- package/dist/dev/pipeline/phases/pr-retry/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/pr-retry/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/pr-retry/index.js +2 -0
- package/dist/dev/pipeline/phases/pr-retry/index.js.map +1 -0
- package/dist/dev/pipeline/phases/pr-retry/pr-retry.d.ts +58 -0
- package/dist/dev/pipeline/phases/pr-retry/pr-retry.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/pr-retry/pr-retry.js +82 -0
- package/dist/dev/pipeline/phases/pr-retry/pr-retry.js.map +1 -0
- package/dist/dev/pipeline/phases/preflight-phase/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/preflight-phase/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/preflight-phase/index.js +2 -0
- package/dist/dev/pipeline/phases/preflight-phase/index.js.map +1 -0
- package/dist/dev/pipeline/phases/preflight-phase/preflight-phase.d.ts +42 -0
- package/dist/dev/pipeline/phases/preflight-phase/preflight-phase.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/preflight-phase/preflight-phase.js +41 -0
- package/dist/dev/pipeline/phases/preflight-phase/preflight-phase.js.map +1 -0
- package/dist/dev/pipeline/phases/rework-detection/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/rework-detection/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/rework-detection/index.js +2 -0
- package/dist/dev/pipeline/phases/rework-detection/index.js.map +1 -0
- package/dist/dev/pipeline/phases/rework-detection/rework-detection.d.ts +40 -0
- package/dist/dev/pipeline/phases/rework-detection/rework-detection.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/rework-detection/rework-detection.js +38 -0
- package/dist/dev/pipeline/phases/rework-detection/rework-detection.js.map +1 -0
- package/dist/dev/pipeline/phases/ticket-fetch/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/ticket-fetch/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/ticket-fetch/index.js +2 -0
- package/dist/dev/pipeline/phases/ticket-fetch/index.js.map +1 -0
- package/dist/dev/pipeline/phases/ticket-fetch/ticket-fetch.d.ts +46 -0
- package/dist/dev/pipeline/phases/ticket-fetch/ticket-fetch.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/ticket-fetch/ticket-fetch.js +64 -0
- package/dist/dev/pipeline/phases/ticket-fetch/ticket-fetch.js.map +1 -0
- package/dist/dev/pipeline/phases/transition/index.d.ts +3 -0
- package/dist/dev/pipeline/phases/transition/index.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/transition/index.js +2 -0
- package/dist/dev/pipeline/phases/transition/index.js.map +1 -0
- package/dist/dev/pipeline/phases/transition/transition.d.ts +30 -0
- package/dist/dev/pipeline/phases/transition/transition.d.ts.map +1 -0
- package/dist/dev/pipeline/phases/transition/transition.js +27 -0
- package/dist/dev/pipeline/phases/transition/transition.js.map +1 -0
- package/dist/dev/pipeline/run-pipeline.d.ts +98 -0
- package/dist/dev/pipeline/run-pipeline.d.ts.map +1 -0
- package/dist/dev/pipeline/run-pipeline.js +106 -0
- package/dist/dev/pipeline/run-pipeline.js.map +1 -0
- package/dist/index.d.ts +58 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +58 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/azdo/azdo-pr.d.ts +58 -0
- package/dist/schemas/azdo/azdo-pr.d.ts.map +1 -0
- package/dist/schemas/azdo/azdo-pr.js +48 -0
- package/dist/schemas/azdo/azdo-pr.js.map +1 -0
- package/dist/schemas/azdo/azdo.d.ts +88 -0
- package/dist/schemas/azdo/azdo.d.ts.map +1 -0
- package/dist/schemas/azdo/azdo.js +60 -0
- package/dist/schemas/azdo/azdo.js.map +1 -0
- package/dist/schemas/bitbucket/bitbucket.d.ts +112 -0
- package/dist/schemas/bitbucket/bitbucket.d.ts.map +1 -0
- package/dist/schemas/bitbucket/bitbucket.js +73 -0
- package/dist/schemas/bitbucket/bitbucket.js.map +1 -0
- package/dist/schemas/env/env.d.ts +336 -0
- package/dist/schemas/env/env.d.ts.map +1 -0
- package/dist/schemas/env/env.js +94 -0
- package/dist/schemas/env/env.js.map +1 -0
- package/dist/schemas/github/github.d.ts +128 -0
- package/dist/schemas/github/github.d.ts.map +1 -0
- package/dist/schemas/github/github.js +65 -0
- package/dist/schemas/github/github.js.map +1 -0
- package/dist/schemas/gitlab/gitlab.d.ts +72 -0
- package/dist/schemas/gitlab/gitlab.d.ts.map +1 -0
- package/dist/schemas/gitlab/gitlab.js +38 -0
- package/dist/schemas/gitlab/gitlab.js.map +1 -0
- package/dist/schemas/index.d.ts +15 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +8 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/jira/jira.d.ts +79 -0
- package/dist/schemas/jira/jira.d.ts.map +1 -0
- package/dist/schemas/jira/jira.js +69 -0
- package/dist/schemas/jira/jira.js.map +1 -0
- package/dist/schemas/linear/linear.d.ts +178 -0
- package/dist/schemas/linear/linear.d.ts.map +1 -0
- package/dist/schemas/linear/linear.js +136 -0
- package/dist/schemas/linear/linear.js.map +1 -0
- package/dist/schemas/notion/notion.d.ts +131 -0
- package/dist/schemas/notion/notion.d.ts.map +1 -0
- package/dist/schemas/notion/notion.js +102 -0
- package/dist/schemas/notion/notion.js.map +1 -0
- package/dist/schemas/shortcut/shortcut.d.ts +149 -0
- package/dist/schemas/shortcut/shortcut.d.ts.map +1 -0
- package/dist/schemas/shortcut/shortcut.js +68 -0
- package/dist/schemas/shortcut/shortcut.js.map +1 -0
- package/dist/shared/cache/cache.d.ts +14 -0
- package/dist/shared/cache/cache.d.ts.map +1 -0
- package/dist/shared/cache/cache.js +25 -0
- package/dist/shared/cache/cache.js.map +1 -0
- package/dist/shared/cache/index.d.ts +2 -0
- package/dist/shared/cache/index.d.ts.map +1 -0
- package/dist/shared/cache/index.js +2 -0
- package/dist/shared/cache/index.js.map +1 -0
- package/dist/shared/env-parser/env-parser.d.ts +42 -0
- package/dist/shared/env-parser/env-parser.d.ts.map +1 -0
- package/dist/shared/env-parser/env-parser.js +97 -0
- package/dist/shared/env-parser/env-parser.js.map +1 -0
- package/dist/shared/env-parser/index.d.ts +3 -0
- package/dist/shared/env-parser/index.d.ts.map +1 -0
- package/dist/shared/env-parser/index.js +2 -0
- package/dist/shared/env-parser/index.js.map +1 -0
- package/dist/shared/git-ops/git-ops.d.ts +127 -0
- package/dist/shared/git-ops/git-ops.d.ts.map +1 -0
- package/dist/shared/git-ops/git-ops.js +225 -0
- package/dist/shared/git-ops/git-ops.js.map +1 -0
- package/dist/shared/git-ops/index.d.ts +3 -0
- package/dist/shared/git-ops/index.d.ts.map +1 -0
- package/dist/shared/git-ops/index.js +2 -0
- package/dist/shared/git-ops/index.js.map +1 -0
- package/dist/shared/git-token/git-token.d.ts +18 -0
- package/dist/shared/git-token/git-token.d.ts.map +1 -0
- package/dist/shared/git-token/git-token.js +28 -0
- package/dist/shared/git-token/git-token.js.map +1 -0
- package/dist/shared/git-token/index.d.ts +2 -0
- package/dist/shared/git-token/index.d.ts.map +1 -0
- package/dist/shared/git-token/index.js +2 -0
- package/dist/shared/git-token/index.js.map +1 -0
- package/dist/shared/http/fetch-and-parse/fetch-and-parse.d.ts +32 -0
- package/dist/shared/http/fetch-and-parse/fetch-and-parse.d.ts.map +1 -0
- package/dist/shared/http/fetch-and-parse/fetch-and-parse.js +53 -0
- package/dist/shared/http/fetch-and-parse/fetch-and-parse.js.map +1 -0
- package/dist/shared/http/fetch-and-parse/index.d.ts +3 -0
- package/dist/shared/http/fetch-and-parse/index.d.ts.map +1 -0
- package/dist/shared/http/fetch-and-parse/index.js +2 -0
- package/dist/shared/http/fetch-and-parse/index.js.map +1 -0
- package/dist/shared/http/index.d.ts +7 -0
- package/dist/shared/http/index.d.ts.map +1 -0
- package/dist/shared/http/index.js +4 -0
- package/dist/shared/http/index.js.map +1 -0
- package/dist/shared/http/ping-endpoint/index.d.ts +3 -0
- package/dist/shared/http/ping-endpoint/index.d.ts.map +1 -0
- package/dist/shared/http/ping-endpoint/index.js +2 -0
- package/dist/shared/http/ping-endpoint/index.js.map +1 -0
- package/dist/shared/http/ping-endpoint/ping-endpoint.d.ts +29 -0
- package/dist/shared/http/ping-endpoint/ping-endpoint.d.ts.map +1 -0
- package/dist/shared/http/ping-endpoint/ping-endpoint.js +31 -0
- package/dist/shared/http/ping-endpoint/ping-endpoint.js.map +1 -0
- package/dist/shared/http/retry-fetch/index.d.ts +3 -0
- package/dist/shared/http/retry-fetch/index.d.ts.map +1 -0
- package/dist/shared/http/retry-fetch/index.js +2 -0
- package/dist/shared/http/retry-fetch/index.js.map +1 -0
- package/dist/shared/http/retry-fetch/retry-fetch.d.ts +33 -0
- package/dist/shared/http/retry-fetch/retry-fetch.d.ts.map +1 -0
- package/dist/shared/http/retry-fetch/retry-fetch.js +94 -0
- package/dist/shared/http/retry-fetch/retry-fetch.js.map +1 -0
- package/dist/shared/label-helpers/index.d.ts +3 -0
- package/dist/shared/label-helpers/index.d.ts.map +1 -0
- package/dist/shared/label-helpers/index.js +2 -0
- package/dist/shared/label-helpers/index.js.map +1 -0
- package/dist/shared/label-helpers/label-helpers.d.ts +41 -0
- package/dist/shared/label-helpers/label-helpers.d.ts.map +1 -0
- package/dist/shared/label-helpers/label-helpers.js +51 -0
- package/dist/shared/label-helpers/label-helpers.js.map +1 -0
- package/dist/shared/remote/index.d.ts +2 -0
- package/dist/shared/remote/index.d.ts.map +1 -0
- package/dist/shared/remote/index.js +2 -0
- package/dist/shared/remote/index.js.map +1 -0
- package/dist/shared/remote/remote.d.ts +39 -0
- package/dist/shared/remote/remote.d.ts.map +1 -0
- package/dist/shared/remote/remote.js +180 -0
- package/dist/shared/remote/remote.js.map +1 -0
- package/dist/types/board.d.ts +62 -0
- package/dist/types/board.d.ts.map +1 -0
- package/dist/types/board.js +5 -0
- package/dist/types/board.js.map +1 -0
- package/dist/types/index.d.ts +5 -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/progress.d.ts +21 -0
- package/dist/types/progress.d.ts.map +1 -0
- package/dist/types/progress.js +34 -0
- package/dist/types/progress.js.map +1 -0
- package/dist/types/remote.d.ts +77 -0
- package/dist/types/remote.d.ts.map +1 -0
- package/dist/types/remote.js +5 -0
- package/dist/types/remote.js.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
// ─── RunContext class ────────────────────────────────────────────────────────
|
|
2
|
+
/**
|
|
3
|
+
* Shared state threaded through all orchestrator phases.
|
|
4
|
+
*
|
|
5
|
+
* Fixed fields are set at creation and never change. Phase-populated
|
|
6
|
+
* fields start `undefined` and are set progressively by each phase.
|
|
7
|
+
*/
|
|
8
|
+
export class RunContext {
|
|
9
|
+
// ── Fixed at creation ──────────────────────────────────────────────
|
|
10
|
+
projectRoot;
|
|
11
|
+
argv;
|
|
12
|
+
dryRun;
|
|
13
|
+
skipFeasibility;
|
|
14
|
+
startTime;
|
|
15
|
+
isAfk;
|
|
16
|
+
/* eslint-disable functional/prefer-readonly-type -- phase-populated fields are mutated progressively */
|
|
17
|
+
// ── Populated by preflight phase ───────────────────────────────────
|
|
18
|
+
config;
|
|
19
|
+
board;
|
|
20
|
+
// ── Populated by rework / ticket-fetch phases ──────────────────────
|
|
21
|
+
ticket;
|
|
22
|
+
isRework;
|
|
23
|
+
prFeedback;
|
|
24
|
+
reworkPrNumber;
|
|
25
|
+
reworkDiscussionIds;
|
|
26
|
+
reworkReviewers;
|
|
27
|
+
// ── Populated by ticket-fetch / branch-setup phases ─────────────────
|
|
28
|
+
ticketBranch;
|
|
29
|
+
targetBranch;
|
|
30
|
+
effectiveTarget;
|
|
31
|
+
baseBranch;
|
|
32
|
+
originalBranch;
|
|
33
|
+
skipEpicBranch;
|
|
34
|
+
hasParent;
|
|
35
|
+
// ── Populated by lock-write phase ──────────────────────────────────
|
|
36
|
+
lockOwner;
|
|
37
|
+
/* eslint-enable functional/prefer-readonly-type */
|
|
38
|
+
// ── Setter methods ─────────────────────────────────────────────────
|
|
39
|
+
/** Set preflight-phase fields. */
|
|
40
|
+
setPreflight(config, board) {
|
|
41
|
+
this.config = config;
|
|
42
|
+
this.board = board;
|
|
43
|
+
}
|
|
44
|
+
/** Set rework-detection fields. */
|
|
45
|
+
setRework(opts) {
|
|
46
|
+
this.isRework = opts.isRework;
|
|
47
|
+
this.prFeedback = opts.prFeedback;
|
|
48
|
+
this.reworkPrNumber = opts.reworkPrNumber;
|
|
49
|
+
this.reworkDiscussionIds = opts.reworkDiscussionIds;
|
|
50
|
+
this.reworkReviewers = opts.reworkReviewers;
|
|
51
|
+
}
|
|
52
|
+
/** Set ticket from ticket-fetch phase. */
|
|
53
|
+
setTicket(ticket) {
|
|
54
|
+
this.ticket = ticket;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Set computed branch names from ticket-fetch phase.
|
|
58
|
+
*
|
|
59
|
+
* Note: `setBranchSetup` intentionally overwrites the 4 shared fields
|
|
60
|
+
* (`ticketBranch`, `targetBranch`, `baseBranch`, `hasParent`) set here,
|
|
61
|
+
* as branch-setup may compute different values (e.g. adjusted effective
|
|
62
|
+
* target after single-child detection).
|
|
63
|
+
*/
|
|
64
|
+
setTicketBranches(opts) {
|
|
65
|
+
this.ticketBranch = opts.ticketBranch;
|
|
66
|
+
this.targetBranch = opts.targetBranch;
|
|
67
|
+
this.baseBranch = opts.baseBranch;
|
|
68
|
+
this.hasParent = opts.hasParent;
|
|
69
|
+
}
|
|
70
|
+
/** Set branch-setup fields. */
|
|
71
|
+
setBranchSetup(opts) {
|
|
72
|
+
this.ticketBranch = opts.ticketBranch;
|
|
73
|
+
this.targetBranch = opts.targetBranch;
|
|
74
|
+
this.effectiveTarget = opts.effectiveTarget;
|
|
75
|
+
this.baseBranch = opts.baseBranch;
|
|
76
|
+
this.originalBranch = opts.originalBranch;
|
|
77
|
+
this.skipEpicBranch = opts.skipEpicBranch;
|
|
78
|
+
this.hasParent = opts.hasParent;
|
|
79
|
+
}
|
|
80
|
+
/** Set lock ownership flag. */
|
|
81
|
+
setLockOwner(value) {
|
|
82
|
+
this.lockOwner = value;
|
|
83
|
+
}
|
|
84
|
+
constructor(opts) {
|
|
85
|
+
this.projectRoot = opts.projectRoot;
|
|
86
|
+
this.argv = opts.argv;
|
|
87
|
+
this.dryRun = opts.argv.includes('--dry-run');
|
|
88
|
+
this.skipFeasibility = opts.argv.includes('--skip-feasibility');
|
|
89
|
+
this.startTime = opts.now ?? Date.now();
|
|
90
|
+
this.isAfk = opts.isAfk ?? false;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
// ─── Factory ─────────────────────────────────────────────────────────────────
|
|
94
|
+
/**
|
|
95
|
+
* Create the initial RunContext from options.
|
|
96
|
+
*
|
|
97
|
+
* Uses explicit parameters instead of `process.cwd()` / `process.env`
|
|
98
|
+
* for testability. The terminal layer is responsible for reading those
|
|
99
|
+
* globals and passing them in.
|
|
100
|
+
*
|
|
101
|
+
* @param opts - Creation options (projectRoot, argv, isAfk).
|
|
102
|
+
* @returns A new `RunContext` with fixed fields set and phase fields undefined.
|
|
103
|
+
*/
|
|
104
|
+
export function createContext(opts) {
|
|
105
|
+
return new RunContext(opts);
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/dev/pipeline/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { createContext, RunContext } from './context.js';
|
|
2
|
+
export { runPipeline } from './run-pipeline.js';
|
|
3
|
+
export type { PipelineDeps, PipelineResult } from './run-pipeline.js';
|
|
4
|
+
export { branchSetup, cleanupPhase, costPhase, deliverPhase, dryRun, epicCompletion, feasibilityPhase, lockCheck, prRetry, preflightPhase, reworkDetection, ticketFetch, transition, } from './phases/index.js';
|
|
5
|
+
export type { BranchSetupDeps, CleanupDeps, CostPhaseDeps, DeliverPhaseDeps, EpicCompletionDeps, FeasibilityPhaseDeps, LockCheckDeps, PreflightPhaseDeps, PrRetryDeps, ReworkDetectionDeps, TicketFetchDeps, TransitionDeps, } from './phases/index.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dev/pipeline/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGtE,OAAO,EACL,WAAW,EACX,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,MAAM,EACN,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,OAAO,EACP,cAAc,EACd,eAAe,EACf,WAAW,EACX,UAAU,GACX,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,eAAe,EACf,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,cAAc,GACf,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { createContext, RunContext } from './context.js';
|
|
2
|
+
export { runPipeline } from './run-pipeline.js';
|
|
3
|
+
// Phase functions + deps types (consumed by terminal dep factory)
|
|
4
|
+
export { branchSetup, cleanupPhase, costPhase, deliverPhase, dryRun, epicCompletion, feasibilityPhase, lockCheck, prRetry, preflightPhase, reworkDetection, ticketFetch, transition, } from './phases/index.js';
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dev/pipeline/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,kEAAkE;AAClE,OAAO,EACL,WAAW,EACX,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,MAAM,EACN,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,OAAO,EACP,cAAc,EACd,eAAe,EACf,WAAW,EACX,UAAU,GACX,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Branch setup — git branch operations (epic, standalone, rework)
|
|
3
|
+
* and lock file creation.
|
|
4
|
+
*
|
|
5
|
+
* Populates `effectiveTarget`, `originalBranch`, `skipEpicBranch`, and
|
|
6
|
+
* `lockOwner` on the context. Returns structured results — no console output.
|
|
7
|
+
*/
|
|
8
|
+
import type { RunContext } from '../../context.js';
|
|
9
|
+
import type { ChildrenStatus, FetchedTicket } from '../../../../types/board.js';
|
|
10
|
+
/** Result of ensureEpicBranch operation. */
|
|
11
|
+
type EnsureEpicResult = {
|
|
12
|
+
readonly ok: boolean;
|
|
13
|
+
readonly error?: string;
|
|
14
|
+
};
|
|
15
|
+
/** Lock data written to `.clancy/lock.json`. */
|
|
16
|
+
type WriteLockData = {
|
|
17
|
+
readonly ticketKey: string;
|
|
18
|
+
readonly ticketTitle: string;
|
|
19
|
+
readonly ticketBranch: string;
|
|
20
|
+
readonly targetBranch: string;
|
|
21
|
+
readonly parentKey: string;
|
|
22
|
+
readonly description?: string;
|
|
23
|
+
readonly startedAt: string;
|
|
24
|
+
};
|
|
25
|
+
/** Structured result of the branch-setup phase. */
|
|
26
|
+
type BranchSetupResult = {
|
|
27
|
+
readonly ok: boolean;
|
|
28
|
+
readonly error?: string;
|
|
29
|
+
};
|
|
30
|
+
/** Injected dependencies for branch-setup. */
|
|
31
|
+
export type BranchSetupDeps = {
|
|
32
|
+
/** Get the current git branch. Pre-wired with exec. */
|
|
33
|
+
readonly currentBranch: () => string;
|
|
34
|
+
/** Check out a branch, optionally creating it. Pre-wired with exec. */
|
|
35
|
+
readonly checkout: (branch: string, create?: boolean) => void;
|
|
36
|
+
/** Fetch a remote branch. Returns true if found. Pre-wired with exec. */
|
|
37
|
+
readonly fetchRemoteBranch: (branch: string) => boolean;
|
|
38
|
+
/** Ensure a branch exists locally, fetching from remote if needed. Pre-wired with exec. */
|
|
39
|
+
readonly ensureBranch: (branch: string, baseBranch: string) => void;
|
|
40
|
+
/** Ensure an epic branch exists. Pre-wired with exec. */
|
|
41
|
+
readonly ensureEpicBranch: (epicBranch: string, baseBranch: string) => EnsureEpicResult;
|
|
42
|
+
/** Check children status for a parent ticket. Pre-wired with board + ticket field extraction. */
|
|
43
|
+
readonly fetchChildrenStatus: (ticket: FetchedTicket) => Promise<ChildrenStatus | undefined>;
|
|
44
|
+
/** Write the lock file. Pre-wired with lockFs + projectRoot. */
|
|
45
|
+
readonly writeLock: (data: WriteLockData) => void;
|
|
46
|
+
/** Current ISO timestamp factory for lock file. Factory (not value) because writeLockSafe runs later than context creation. Default: `() => new Date().toISOString()`. */
|
|
47
|
+
readonly now?: () => string;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Set up git branches for the ticket and write the lock file.
|
|
51
|
+
*
|
|
52
|
+
* Handles three flows: epic branch (parented tickets), standalone (no parent),
|
|
53
|
+
* and rework (existing feature branch). Single-child detection skips the
|
|
54
|
+
* epic branch when the parent has exactly one child.
|
|
55
|
+
*
|
|
56
|
+
* @param ctx - Pipeline context (requires ticket + branches from prior phases).
|
|
57
|
+
* @param deps - Injected dependencies.
|
|
58
|
+
* @returns Structured result indicating success or failure.
|
|
59
|
+
*/
|
|
60
|
+
export declare function branchSetup(ctx: RunContext, deps: BranchSetupDeps): Promise<BranchSetupResult>;
|
|
61
|
+
export {};
|
|
62
|
+
//# sourceMappingURL=branch-setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branch-setup.d.ts","sourceRoot":"","sources":["../../../../../src/dev/pipeline/phases/branch-setup/branch-setup.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAIxE,4CAA4C;AAC5C,KAAK,gBAAgB,GAAG;IACtB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,gDAAgD;AAChD,KAAK,aAAa,GAAG;IACnB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,mDAAmD;AACnD,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,8CAA8C;AAC9C,MAAM,MAAM,eAAe,GAAG;IAC5B,uDAAuD;IACvD,QAAQ,CAAC,aAAa,EAAE,MAAM,MAAM,CAAC;IACrC,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9D,yEAAyE;IACzE,QAAQ,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IACxD,2FAA2F;IAC3F,QAAQ,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACpE,yDAAyD;IACzD,QAAQ,CAAC,gBAAgB,EAAE,CACzB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,KACf,gBAAgB,CAAC;IACtB,iGAAiG;IACjG,QAAQ,CAAC,mBAAmB,EAAE,CAC5B,MAAM,EAAE,aAAa,KAClB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IACzC,gEAAgE;IAChE,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IAClD,0KAA0K;IAC1K,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CAC7B,CAAC;AAIF;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,UAAU,EACf,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,iBAAiB,CAAC,CAqC5B"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
// ─── Phase ───────────────────────────────────────────────────────────────────
|
|
2
|
+
/**
|
|
3
|
+
* Set up git branches for the ticket and write the lock file.
|
|
4
|
+
*
|
|
5
|
+
* Handles three flows: epic branch (parented tickets), standalone (no parent),
|
|
6
|
+
* and rework (existing feature branch). Single-child detection skips the
|
|
7
|
+
* epic branch when the parent has exactly one child.
|
|
8
|
+
*
|
|
9
|
+
* @param ctx - Pipeline context (requires ticket + branches from prior phases).
|
|
10
|
+
* @param deps - Injected dependencies.
|
|
11
|
+
* @returns Structured result indicating success or failure.
|
|
12
|
+
*/
|
|
13
|
+
export async function branchSetup(ctx, deps) {
|
|
14
|
+
// Safe: pipeline ordering guarantees prior phases populate these fields
|
|
15
|
+
const ticketBranch = ctx.ticketBranch;
|
|
16
|
+
const targetBranch = ctx.targetBranch;
|
|
17
|
+
const baseBranch = ctx.baseBranch;
|
|
18
|
+
const hasParent = ctx.hasParent === true;
|
|
19
|
+
const isRework = ctx.isRework === true;
|
|
20
|
+
const originalBranch = deps.currentBranch();
|
|
21
|
+
const skipEpicBranch = await checkSingleChild(ctx, deps);
|
|
22
|
+
const effectiveTarget = hasParent && !skipEpicBranch ? targetBranch : baseBranch;
|
|
23
|
+
// Populate context with computed branch-setup fields
|
|
24
|
+
ctx.setBranchSetup({
|
|
25
|
+
ticketBranch,
|
|
26
|
+
targetBranch,
|
|
27
|
+
effectiveTarget,
|
|
28
|
+
baseBranch,
|
|
29
|
+
originalBranch,
|
|
30
|
+
skipEpicBranch,
|
|
31
|
+
hasParent,
|
|
32
|
+
});
|
|
33
|
+
// Set up branches based on flow
|
|
34
|
+
const branchResult = isRework
|
|
35
|
+
? setupReworkBranch(ctx, deps)
|
|
36
|
+
: setupFreshBranch(ctx, deps);
|
|
37
|
+
if (!branchResult.ok) {
|
|
38
|
+
deps.checkout(originalBranch);
|
|
39
|
+
return branchResult;
|
|
40
|
+
}
|
|
41
|
+
writeLockSafe(ctx, deps);
|
|
42
|
+
return { ok: true };
|
|
43
|
+
}
|
|
44
|
+
// ─── Internal helpers ────────────────────────────────────────────────────────
|
|
45
|
+
// Safe: called only from branchSetup after fields are populated
|
|
46
|
+
/** Check if the parent has exactly 1 child, meaning we skip the epic branch. */
|
|
47
|
+
async function checkSingleChild(ctx, deps) {
|
|
48
|
+
if (ctx.hasParent !== true || ctx.isRework === true)
|
|
49
|
+
return false;
|
|
50
|
+
const status = await deps.fetchChildrenStatus(ctx.ticket);
|
|
51
|
+
return status?.total === 1;
|
|
52
|
+
}
|
|
53
|
+
// Safe: called only from branchSetup after setBranchSetup populates fields
|
|
54
|
+
/** Set up branches for a rework ticket. */
|
|
55
|
+
function setupReworkBranch(ctx, deps) {
|
|
56
|
+
const ticketBranch = ctx.ticketBranch;
|
|
57
|
+
const effectiveTarget = ctx.effectiveTarget;
|
|
58
|
+
const baseBranch = ctx.baseBranch;
|
|
59
|
+
if (ctx.hasParent === true && ctx.skipEpicBranch !== true) {
|
|
60
|
+
const epic = deps.ensureEpicBranch(ctx.targetBranch, baseBranch);
|
|
61
|
+
if (!epic.ok)
|
|
62
|
+
return { ok: false, error: epic.error };
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
deps.ensureBranch(effectiveTarget, baseBranch);
|
|
66
|
+
}
|
|
67
|
+
const fetched = deps.fetchRemoteBranch(ticketBranch);
|
|
68
|
+
if (fetched) {
|
|
69
|
+
deps.checkout(ticketBranch);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
deps.checkout(effectiveTarget);
|
|
73
|
+
deps.checkout(ticketBranch, true);
|
|
74
|
+
}
|
|
75
|
+
return { ok: true };
|
|
76
|
+
}
|
|
77
|
+
// Safe: called only from branchSetup after setBranchSetup populates fields
|
|
78
|
+
/** Set up branches for a fresh (non-rework) ticket. */
|
|
79
|
+
function setupFreshBranch(ctx, deps) {
|
|
80
|
+
if (ctx.hasParent === true && ctx.skipEpicBranch !== true) {
|
|
81
|
+
return setupEpicBranch(ctx, deps);
|
|
82
|
+
}
|
|
83
|
+
return setupStandalone(ctx, deps);
|
|
84
|
+
}
|
|
85
|
+
// Safe: called only from setupFreshBranch after setBranchSetup populates fields
|
|
86
|
+
/** Set up epic branch flow: ensure epic, create feature from it. */
|
|
87
|
+
function setupEpicBranch(ctx, deps) {
|
|
88
|
+
const epic = deps.ensureEpicBranch(ctx.targetBranch, ctx.baseBranch);
|
|
89
|
+
if (!epic.ok)
|
|
90
|
+
return { ok: false, error: epic.error };
|
|
91
|
+
deps.checkout(ctx.targetBranch);
|
|
92
|
+
deps.checkout(ctx.ticketBranch, true);
|
|
93
|
+
return { ok: true };
|
|
94
|
+
}
|
|
95
|
+
// Safe: called only from setupFreshBranch after setBranchSetup populates fields
|
|
96
|
+
/** Set up standalone flow: branch from base. */
|
|
97
|
+
function setupStandalone(ctx, deps) {
|
|
98
|
+
const baseBranch = ctx.baseBranch;
|
|
99
|
+
deps.ensureBranch(baseBranch, baseBranch);
|
|
100
|
+
deps.checkout(baseBranch);
|
|
101
|
+
deps.checkout(ctx.ticketBranch, true);
|
|
102
|
+
return { ok: true };
|
|
103
|
+
}
|
|
104
|
+
/** Resolve the current ISO timestamp from deps or fallback. */
|
|
105
|
+
function timestamp(deps) {
|
|
106
|
+
const now = deps.now ?? (() => new Date().toISOString());
|
|
107
|
+
return now();
|
|
108
|
+
}
|
|
109
|
+
/** Best-effort lock write — never crashes the pipeline. */
|
|
110
|
+
function writeLockSafe(ctx, deps) {
|
|
111
|
+
try {
|
|
112
|
+
const ticket = ctx.ticket;
|
|
113
|
+
deps.writeLock({
|
|
114
|
+
ticketKey: ticket.key,
|
|
115
|
+
ticketTitle: ticket.title,
|
|
116
|
+
ticketBranch: ctx.ticketBranch,
|
|
117
|
+
targetBranch: ctx.effectiveTarget,
|
|
118
|
+
parentKey: ticket.parentInfo,
|
|
119
|
+
description: (ticket.description ?? '').slice(0, 2000) || undefined,
|
|
120
|
+
startedAt: timestamp(deps),
|
|
121
|
+
});
|
|
122
|
+
ctx.setLockOwner(true);
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
// Best-effort — continue without crash protection
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=branch-setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branch-setup.js","sourceRoot":"","sources":["../../../../../src/dev/pipeline/phases/branch-setup/branch-setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/dev/pipeline/phases/branch-setup/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/dev/pipeline/phases/branch-setup/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cleanup — completion result + notification.
|
|
3
|
+
*
|
|
4
|
+
* Returns structured completion data (ticket key, title, elapsed time)
|
|
5
|
+
* for the terminal layer to display. Sends a webhook notification
|
|
6
|
+
* (best-effort) when configured.
|
|
7
|
+
*/
|
|
8
|
+
import type { RunContext } from '../../context.js';
|
|
9
|
+
/** Structured result of the cleanup phase. */
|
|
10
|
+
type CleanupResult = {
|
|
11
|
+
readonly ok: boolean;
|
|
12
|
+
readonly ticketKey: string;
|
|
13
|
+
readonly ticketTitle: string;
|
|
14
|
+
readonly elapsedMs: number;
|
|
15
|
+
};
|
|
16
|
+
/** Injected dependencies for cleanup. */
|
|
17
|
+
export type CleanupDeps = {
|
|
18
|
+
/** Send a webhook notification. Pre-wired by terminal layer. */
|
|
19
|
+
readonly notify: (webhook: string, message: string) => Promise<void>;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Finalise the pipeline run: compute elapsed time and send notification.
|
|
23
|
+
*
|
|
24
|
+
* Always returns `ok: true` — cleanup failure never blocks completion.
|
|
25
|
+
*
|
|
26
|
+
* @param ctx - Pipeline context (requires config + ticket from prior phases).
|
|
27
|
+
* @param deps - Injected dependencies.
|
|
28
|
+
* @returns Structured completion data for terminal display.
|
|
29
|
+
*/
|
|
30
|
+
export declare function cleanupPhase(ctx: RunContext, deps: CleanupDeps): Promise<CleanupResult>;
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=cleanup-phase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup-phase.d.ts","sourceRoot":"","sources":["../../../../../src/dev/pipeline/phases/cleanup-phase/cleanup-phase.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAInD,8CAA8C;AAC9C,KAAK,aAAa,GAAG;IACnB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,yCAAyC;AACzC,MAAM,MAAM,WAAW,GAAG;IACxB,gEAAgE;IAChE,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACtE,CAAC;AAIF;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,UAAU,EACf,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,aAAa,CAAC,CAyBxB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// ─── Phase ───────────────────────────────────────────────────────────────────
|
|
2
|
+
/**
|
|
3
|
+
* Finalise the pipeline run: compute elapsed time and send notification.
|
|
4
|
+
*
|
|
5
|
+
* Always returns `ok: true` — cleanup failure never blocks completion.
|
|
6
|
+
*
|
|
7
|
+
* @param ctx - Pipeline context (requires config + ticket from prior phases).
|
|
8
|
+
* @param deps - Injected dependencies.
|
|
9
|
+
* @returns Structured completion data for terminal display.
|
|
10
|
+
*/
|
|
11
|
+
export async function cleanupPhase(ctx, deps) {
|
|
12
|
+
// Safe: pipeline ordering guarantees config + ticket are populated
|
|
13
|
+
const config = ctx.config;
|
|
14
|
+
const ticket = ctx.ticket;
|
|
15
|
+
const elapsedMs = Date.now() - ctx.startTime;
|
|
16
|
+
const webhook = config.env.CLANCY_NOTIFY_WEBHOOK;
|
|
17
|
+
if (webhook) {
|
|
18
|
+
try {
|
|
19
|
+
await deps.notify(webhook, `✓ Clancy completed [${ticket.key}] ${ticket.title}`);
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
// Best-effort — notification failure never blocks completion
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
ok: true,
|
|
27
|
+
ticketKey: ticket.key,
|
|
28
|
+
ticketTitle: ticket.title,
|
|
29
|
+
elapsedMs,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=cleanup-phase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup-phase.js","sourceRoot":"","sources":["../../../../../src/dev/pipeline/phases/cleanup-phase/cleanup-phase.ts"],"names":[],"mappings":"AAyBA,gFAAgF;AAEhF;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAe,EACf,IAAiB;IAEjB,mEAAmE;IACnE,MAAM,MAAM,GAAG,GAAG,CAAC,MAAO,CAAC;IAC3B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAO,CAAC;IAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC;IAE7C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAEjD,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CACf,OAAO,EACP,uBAAuB,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,EAAE,CACrD,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,6DAA6D;QAC/D,CAAC;IACH,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,SAAS,EAAE,MAAM,CAAC,GAAG;QACrB,WAAW,EAAE,MAAM,CAAC,KAAK;QACzB,SAAS;KACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/dev/pipeline/phases/cleanup-phase/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/dev/pipeline/phases/cleanup-phase/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cost logging — record duration + estimated tokens.
|
|
3
|
+
*
|
|
4
|
+
* Reads lock file for `startedAt`, uses `CLANCY_TOKEN_RATE` from config.
|
|
5
|
+
* Best-effort — cost logging failure never blocks completion.
|
|
6
|
+
*/
|
|
7
|
+
import type { RunContext } from '../../context.js';
|
|
8
|
+
/** Structured result of the cost phase. */
|
|
9
|
+
type CostPhaseResult = {
|
|
10
|
+
readonly ok: boolean;
|
|
11
|
+
};
|
|
12
|
+
/** Options passed to the pre-wired cost entry writer. */
|
|
13
|
+
type CostEntryArgs = {
|
|
14
|
+
readonly ticketKey: string;
|
|
15
|
+
readonly startedAt: string;
|
|
16
|
+
readonly tokenRate: number;
|
|
17
|
+
};
|
|
18
|
+
/** Injected dependencies for cost-phase. */
|
|
19
|
+
export type CostPhaseDeps = {
|
|
20
|
+
/** Read the lock file. Pre-wired with lockFs + projectRoot. */
|
|
21
|
+
readonly readLock: () => {
|
|
22
|
+
readonly startedAt: string;
|
|
23
|
+
} | undefined;
|
|
24
|
+
/** Append a cost entry. Pre-wired with costFs + projectRoot + `now`. */
|
|
25
|
+
readonly appendCostEntry: (args: CostEntryArgs) => void;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Log estimated token cost for the current run.
|
|
29
|
+
*
|
|
30
|
+
* Reads the lock file to get `startedAt`, computes token rate from
|
|
31
|
+
* config, and appends a cost entry. Best-effort — always returns
|
|
32
|
+
* `ok: true` regardless of errors.
|
|
33
|
+
*
|
|
34
|
+
* @param ctx - Pipeline context (requires config + ticket from prior phases).
|
|
35
|
+
* @param deps - Injected dependencies.
|
|
36
|
+
* @returns Structured result (always ok).
|
|
37
|
+
*/
|
|
38
|
+
export declare function costPhase(ctx: RunContext, deps: CostPhaseDeps): CostPhaseResult;
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=cost-phase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-phase.d.ts","sourceRoot":"","sources":["../../../../../src/dev/pipeline/phases/cost-phase/cost-phase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAInD,2CAA2C;AAC3C,KAAK,eAAe,GAAG;IACrB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,yDAAyD;AACzD,KAAK,aAAa,GAAG;IACnB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,4CAA4C;AAC5C,MAAM,MAAM,aAAa,GAAG;IAC1B,+DAA+D;IAC/D,QAAQ,CAAC,QAAQ,EAAE,MAAM;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IACpE,wEAAwE;IACxE,QAAQ,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;CACzD,CAAC;AAQF;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,UAAU,EACf,IAAI,EAAE,aAAa,GAClB,eAAe,CAqBjB"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// ─── Constants ───────────────────────────────────────────────────────────────
|
|
2
|
+
const DEFAULT_TOKEN_RATE = 6600;
|
|
3
|
+
// ─── Phase ───────────────────────────────────────────────────────────────────
|
|
4
|
+
/**
|
|
5
|
+
* Log estimated token cost for the current run.
|
|
6
|
+
*
|
|
7
|
+
* Reads the lock file to get `startedAt`, computes token rate from
|
|
8
|
+
* config, and appends a cost entry. Best-effort — always returns
|
|
9
|
+
* `ok: true` regardless of errors.
|
|
10
|
+
*
|
|
11
|
+
* @param ctx - Pipeline context (requires config + ticket from prior phases).
|
|
12
|
+
* @param deps - Injected dependencies.
|
|
13
|
+
* @returns Structured result (always ok).
|
|
14
|
+
*/
|
|
15
|
+
export function costPhase(ctx, deps) {
|
|
16
|
+
try {
|
|
17
|
+
// Safe: pipeline ordering guarantees config + ticket are populated
|
|
18
|
+
const config = ctx.config;
|
|
19
|
+
const ticket = ctx.ticket;
|
|
20
|
+
const lock = deps.readLock();
|
|
21
|
+
if (!lock)
|
|
22
|
+
return { ok: true };
|
|
23
|
+
const tokenRate = parseTokenRate(config.env.CLANCY_TOKEN_RATE);
|
|
24
|
+
deps.appendCostEntry({
|
|
25
|
+
ticketKey: ticket.key,
|
|
26
|
+
startedAt: lock.startedAt,
|
|
27
|
+
tokenRate,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
// Best-effort — cost logging failure never blocks completion
|
|
32
|
+
}
|
|
33
|
+
return { ok: true };
|
|
34
|
+
}
|
|
35
|
+
// ─── Helpers ─────────────────────────────────────────────────────────────────
|
|
36
|
+
/** Parse token rate from env, falling back to default. */
|
|
37
|
+
function parseTokenRate(raw) {
|
|
38
|
+
if (raw == null)
|
|
39
|
+
return DEFAULT_TOKEN_RATE;
|
|
40
|
+
const parsed = Number(raw);
|
|
41
|
+
return Number.isFinite(parsed) && parsed > 0 ? parsed : DEFAULT_TOKEN_RATE;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=cost-phase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-phase.js","sourceRoot":"","sources":["../../../../../src/dev/pipeline/phases/cost-phase/cost-phase.ts"],"names":[],"mappings":"AA8BA,gFAAgF;AAEhF,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC,gFAAgF;AAEhF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,SAAS,CACvB,GAAe,EACf,IAAmB;IAEnB,IAAI,CAAC;QACH,mEAAmE;QACnE,MAAM,MAAM,GAAG,GAAG,CAAC,MAAO,CAAC;QAC3B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAO,CAAC;QAE3B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QAE/B,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAE/D,IAAI,CAAC,eAAe,CAAC;YACnB,SAAS,EAAE,MAAM,CAAC,GAAG;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,6DAA6D;IAC/D,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,gFAAgF;AAEhF,0DAA0D;AAC1D,SAAS,cAAc,CAAC,GAAuB;IAC7C,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,kBAAkB,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC;AAC7E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/dev/pipeline/phases/cost-phase/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/dev/pipeline/phases/cost-phase/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deliver — PR creation and delivery (rework and fresh paths).
|
|
3
|
+
*
|
|
4
|
+
* Reads ticket, branch, and rework state from context. Delegates push + PR
|
|
5
|
+
* creation to pre-wired `deliverViaPullRequest`, then logs progress and
|
|
6
|
+
* quality metrics. Returns structured results — no console output.
|
|
7
|
+
*/
|
|
8
|
+
import type { RunContext } from '../../context.js';
|
|
9
|
+
import type { ProgressStatus } from '../../../../types/progress.js';
|
|
10
|
+
/** Structured result of the deliver phase. */
|
|
11
|
+
type DeliverPhaseResult = {
|
|
12
|
+
readonly ok: boolean;
|
|
13
|
+
};
|
|
14
|
+
/** Minimal delivery result from the pre-wired deliver function. */
|
|
15
|
+
type DeliveryResult = {
|
|
16
|
+
readonly pushed: boolean;
|
|
17
|
+
};
|
|
18
|
+
/** Options passed to the pre-wired deliver function. */
|
|
19
|
+
type DeliverCallOpts = {
|
|
20
|
+
readonly ticketBranch: string;
|
|
21
|
+
readonly targetBranch: string;
|
|
22
|
+
readonly skipLog?: boolean;
|
|
23
|
+
readonly parent?: string;
|
|
24
|
+
readonly singleChildParent?: string;
|
|
25
|
+
};
|
|
26
|
+
/** Options passed to the pre-wired progress writer. */
|
|
27
|
+
type ProgressCallOpts = {
|
|
28
|
+
readonly key: string;
|
|
29
|
+
readonly summary: string;
|
|
30
|
+
readonly status: ProgressStatus;
|
|
31
|
+
readonly prNumber?: number;
|
|
32
|
+
readonly parent?: string;
|
|
33
|
+
};
|
|
34
|
+
/** Options passed to the pre-wired post-rework actions. */
|
|
35
|
+
type PostReworkCallOpts = {
|
|
36
|
+
readonly prNumber: number;
|
|
37
|
+
readonly feedback: readonly string[];
|
|
38
|
+
readonly discussionIds?: readonly string[];
|
|
39
|
+
readonly reviewers?: readonly string[];
|
|
40
|
+
};
|
|
41
|
+
/** Injected dependencies for deliver-phase. */
|
|
42
|
+
export type DeliverPhaseDeps = {
|
|
43
|
+
/** Push branch + create PR. Pre-wired with exec, fetchFn, config, ticket, etc. */
|
|
44
|
+
readonly deliverViaPullRequest: (opts: DeliverCallOpts) => Promise<DeliveryResult>;
|
|
45
|
+
/** Append a progress entry. Pre-wired with progressFs + projectRoot. */
|
|
46
|
+
readonly appendProgress: (opts: ProgressCallOpts) => void;
|
|
47
|
+
/** Record delivery quality metric. Pre-wired with qualityFs + projectRoot. */
|
|
48
|
+
readonly recordDelivery: () => void;
|
|
49
|
+
/** Record rework quality metric. Pre-wired with qualityFs + projectRoot. */
|
|
50
|
+
readonly recordRework: () => void;
|
|
51
|
+
/** Post-rework PR comment + thread resolution + review re-request. Pre-wired with handlers. */
|
|
52
|
+
readonly postReworkActions: (opts: PostReworkCallOpts) => Promise<void>;
|
|
53
|
+
/** Remove build label from ticket after delivery. Best-effort — never blocks. */
|
|
54
|
+
readonly removeBuildLabel: (ticketKey: string) => Promise<void>;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Deliver the ticket via PR (rework or fresh path).
|
|
58
|
+
*
|
|
59
|
+
* Decomposed into {@link deliverRework} and {@link deliverFresh} based on
|
|
60
|
+
* `ctx.isRework`. Parent key computation is shared via {@link computeParentKeys}.
|
|
61
|
+
*
|
|
62
|
+
* @param ctx - Pipeline context (requires ticket + branches + rework state).
|
|
63
|
+
* @param deps - Injected dependencies.
|
|
64
|
+
* @returns Structured result indicating delivery success.
|
|
65
|
+
*/
|
|
66
|
+
export declare function deliverPhase(ctx: RunContext, deps: DeliverPhaseDeps): Promise<DeliverPhaseResult>;
|
|
67
|
+
export {};
|
|
68
|
+
//# sourceMappingURL=deliver-phase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deliver-phase.d.ts","sourceRoot":"","sources":["../../../../../src/dev/pipeline/phases/deliver-phase/deliver-phase.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI5D,8CAA8C;AAC9C,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,mEAAmE;AACnE,KAAK,cAAc,GAAG;IACpB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,wDAAwD;AACxD,KAAK,eAAe,GAAG;IACrB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC,CAAC;AAEF,uDAAuD;AACvD,KAAK,gBAAgB,GAAG;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,2DAA2D;AAC3D,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,kFAAkF;IAClF,QAAQ,CAAC,qBAAqB,EAAE,CAC9B,IAAI,EAAE,eAAe,KAClB,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC1D,8EAA8E;IAC9E,QAAQ,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC;IACpC,4EAA4E;IAC5E,QAAQ,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC;IAClC,+FAA+F;IAC/F,QAAQ,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,iFAAiF;IACjF,QAAQ,CAAC,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE,CAAC;AAIF;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,UAAU,EACf,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,kBAAkB,CAAC,CAI7B"}
|