light-plan 0.0.0-stage → 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 +3181 -2
- package/assets/README.md +111 -0
- package/assets/agents/lpm-developer.md +468 -0
- package/assets/agents/lpm-planner.md +532 -0
- package/assets/harnesses/claude.yml +43 -0
- package/assets/harnesses/copilot.yml +54 -0
- package/assets/harnesses/reasonix.yml +49 -0
- package/assets/hcm/light-plan.yml +45 -0
- package/assets/skills/lpm-board-health.md +243 -0
- package/assets/skills/lpm-board-setup.md +354 -0
- package/assets/skills/lpm-delivery.md +344 -0
- package/assets/skills/lpm-planning.md +411 -0
- package/assets/skills/lpm-templates.md +144 -0
- package/assets/skills/lpm.md +267 -0
- package/dist/cli/agent-view.d.ts +27 -0
- package/dist/cli/agent-view.js +247 -0
- package/dist/cli/agent-view.js.map +1 -0
- package/dist/cli/commands/agent/assets.d.ts +64 -0
- package/dist/cli/commands/agent/assets.js +106 -0
- package/dist/cli/commands/agent/assets.js.map +1 -0
- package/dist/cli/commands/agent/glob.d.ts +25 -0
- package/dist/cli/commands/agent/glob.js +82 -0
- package/dist/cli/commands/agent/glob.js.map +1 -0
- package/dist/cli/commands/agent/index.d.ts +11 -0
- package/dist/cli/commands/agent/index.js +284 -0
- package/dist/cli/commands/agent/index.js.map +1 -0
- package/dist/cli/commands/agent/install.d.ts +59 -0
- package/dist/cli/commands/agent/install.js +131 -0
- package/dist/cli/commands/agent/install.js.map +1 -0
- package/dist/cli/commands/agent/mapping.d.ts +175 -0
- package/dist/cli/commands/agent/mapping.js +256 -0
- package/dist/cli/commands/agent/mapping.js.map +1 -0
- package/dist/cli/commands/check.d.ts +2 -0
- package/dist/cli/commands/check.js +81 -0
- package/dist/cli/commands/check.js.map +1 -0
- package/dist/cli/commands/comment.d.ts +2 -0
- package/dist/cli/commands/comment.js +104 -0
- package/dist/cli/commands/comment.js.map +1 -0
- package/dist/cli/commands/convert.d.ts +2 -0
- package/dist/cli/commands/convert.js +115 -0
- package/dist/cli/commands/convert.js.map +1 -0
- package/dist/cli/commands/copy.d.ts +2 -0
- package/dist/cli/commands/copy.js +69 -0
- package/dist/cli/commands/copy.js.map +1 -0
- package/dist/cli/commands/export.d.ts +11 -0
- package/dist/cli/commands/export.js +226 -0
- package/dist/cli/commands/export.js.map +1 -0
- package/dist/cli/commands/flag.d.ts +2 -0
- package/dist/cli/commands/flag.js +172 -0
- package/dist/cli/commands/flag.js.map +1 -0
- package/dist/cli/commands/git.d.ts +11 -0
- package/dist/cli/commands/git.js +357 -0
- package/dist/cli/commands/git.js.map +1 -0
- package/dist/cli/commands/hcm/bundle.d.ts +60 -0
- package/dist/cli/commands/hcm/bundle.js +166 -0
- package/dist/cli/commands/hcm/bundle.js.map +1 -0
- package/dist/cli/commands/hcm/index.d.ts +11 -0
- package/dist/cli/commands/hcm/index.js +162 -0
- package/dist/cli/commands/hcm/index.js.map +1 -0
- package/dist/cli/commands/init.d.ts +2 -0
- package/dist/cli/commands/init.js +81 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/insert.d.ts +2 -0
- package/dist/cli/commands/insert.js +70 -0
- package/dist/cli/commands/insert.js.map +1 -0
- package/dist/cli/commands/instructions.d.ts +7 -0
- package/dist/cli/commands/instructions.js +256 -0
- package/dist/cli/commands/instructions.js.map +1 -0
- package/dist/cli/commands/link.d.ts +2 -0
- package/dist/cli/commands/link.js +121 -0
- package/dist/cli/commands/link.js.map +1 -0
- package/dist/cli/commands/mcp/config.d.ts +71 -0
- package/dist/cli/commands/mcp/config.js +119 -0
- package/dist/cli/commands/mcp/config.js.map +1 -0
- package/dist/cli/commands/mcp/index.d.ts +9 -0
- package/dist/cli/commands/mcp/index.js +92 -0
- package/dist/cli/commands/mcp/index.js.map +1 -0
- package/dist/cli/commands/mcp/serve.d.ts +1 -0
- package/dist/cli/commands/mcp/serve.js +76 -0
- package/dist/cli/commands/mcp/serve.js.map +1 -0
- package/dist/cli/commands/mcp/setup.d.ts +1 -0
- package/dist/cli/commands/mcp/setup.js +83 -0
- package/dist/cli/commands/mcp/setup.js.map +1 -0
- package/dist/cli/commands/me.d.ts +2 -0
- package/dist/cli/commands/me.js +85 -0
- package/dist/cli/commands/me.js.map +1 -0
- package/dist/cli/commands/move.d.ts +2 -0
- package/dist/cli/commands/move.js +81 -0
- package/dist/cli/commands/move.js.map +1 -0
- package/dist/cli/commands/new.d.ts +2 -0
- package/dist/cli/commands/new.js +222 -0
- package/dist/cli/commands/new.js.map +1 -0
- package/dist/cli/commands/open.d.ts +2 -0
- package/dist/cli/commands/open.js +43 -0
- package/dist/cli/commands/open.js.map +1 -0
- package/dist/cli/commands/period.d.ts +10 -0
- package/dist/cli/commands/period.js +165 -0
- package/dist/cli/commands/period.js.map +1 -0
- package/dist/cli/commands/profile.d.ts +2 -0
- package/dist/cli/commands/profile.js +133 -0
- package/dist/cli/commands/profile.js.map +1 -0
- package/dist/cli/commands/queue.d.ts +2 -0
- package/dist/cli/commands/queue.js +582 -0
- package/dist/cli/commands/queue.js.map +1 -0
- package/dist/cli/commands/remote.d.ts +10 -0
- package/dist/cli/commands/remote.js +3142 -0
- package/dist/cli/commands/remote.js.map +1 -0
- package/dist/cli/commands/rm.d.ts +2 -0
- package/dist/cli/commands/rm.js +63 -0
- package/dist/cli/commands/rm.js.map +1 -0
- package/dist/cli/commands/set.d.ts +2 -0
- package/dist/cli/commands/set.js +139 -0
- package/dist/cli/commands/set.js.map +1 -0
- package/dist/cli/commands/split.d.ts +2 -0
- package/dist/cli/commands/split.js +90 -0
- package/dist/cli/commands/split.js.map +1 -0
- package/dist/cli/commands/task.d.ts +2 -0
- package/dist/cli/commands/task.js +298 -0
- package/dist/cli/commands/task.js.map +1 -0
- package/dist/cli/commands/team.d.ts +2 -0
- package/dist/cli/commands/team.js +114 -0
- package/dist/cli/commands/team.js.map +1 -0
- package/dist/cli/commands/template.d.ts +2 -0
- package/dist/cli/commands/template.js +338 -0
- package/dist/cli/commands/template.js.map +1 -0
- package/dist/cli/commands/ui.d.ts +2 -0
- package/dist/cli/commands/ui.js +98 -0
- package/dist/cli/commands/ui.js.map +1 -0
- package/dist/cli/commands/upstream.d.ts +2 -0
- package/dist/cli/commands/upstream.js +218 -0
- package/dist/cli/commands/upstream.js.map +1 -0
- package/dist/cli/context.d.ts +24 -0
- package/dist/cli/context.js +52 -0
- package/dist/cli/context.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +208 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/live.d.ts +71 -0
- package/dist/cli/live.js +182 -0
- package/dist/cli/live.js.map +1 -0
- package/dist/cli/plan.d.ts +28 -0
- package/dist/cli/plan.js +76 -0
- package/dist/cli/plan.js.map +1 -0
- package/dist/cli/prompt.d.ts +60 -0
- package/dist/cli/prompt.js +185 -0
- package/dist/cli/prompt.js.map +1 -0
- package/dist/cli/ui.d.ts +65 -0
- package/dist/cli/ui.js +79 -0
- package/dist/cli/ui.js.map +1 -0
- package/dist/core/board/dependency-rollup.d.ts +54 -0
- package/dist/core/board/dependency-rollup.js +72 -0
- package/dist/core/board/dependency-rollup.js.map +1 -0
- package/dist/core/board/flag-rollup.d.ts +33 -0
- package/dist/core/board/flag-rollup.js +56 -0
- package/dist/core/board/flag-rollup.js.map +1 -0
- package/dist/core/board/index.d.ts +21 -0
- package/dist/core/board/index.js +22 -0
- package/dist/core/board/index.js.map +1 -0
- package/dist/core/board/load/cache.d.ts +52 -0
- package/dist/core/board/load/cache.js +105 -0
- package/dist/core/board/load/cache.js.map +1 -0
- package/dist/core/board/load/fields.d.ts +33 -0
- package/dist/core/board/load/fields.js +154 -0
- package/dist/core/board/load/fields.js.map +1 -0
- package/dist/core/board/load/scan.d.ts +39 -0
- package/dist/core/board/load/scan.js +88 -0
- package/dist/core/board/load/scan.js.map +1 -0
- package/dist/core/board/load/tree.d.ts +10 -0
- package/dist/core/board/load/tree.js +114 -0
- package/dist/core/board/load/tree.js.map +1 -0
- package/dist/core/board/load.d.ts +69 -0
- package/dist/core/board/load.js +204 -0
- package/dist/core/board/load.js.map +1 -0
- package/dist/core/board/query.d.ts +126 -0
- package/dist/core/board/query.js +291 -0
- package/dist/core/board/query.js.map +1 -0
- package/dist/core/board/registry.d.ts +51 -0
- package/dist/core/board/registry.js +98 -0
- package/dist/core/board/registry.js.map +1 -0
- package/dist/core/board/remote-scopes.d.ts +71 -0
- package/dist/core/board/remote-scopes.js +103 -0
- package/dist/core/board/remote-scopes.js.map +1 -0
- package/dist/core/board/rollup.d.ts +32 -0
- package/dist/core/board/rollup.js +67 -0
- package/dist/core/board/rollup.js.map +1 -0
- package/dist/core/board/scope.d.ts +81 -0
- package/dist/core/board/scope.js +134 -0
- package/dist/core/board/scope.js.map +1 -0
- package/dist/core/board/simulate.d.ts +138 -0
- package/dist/core/board/simulate.js +141 -0
- package/dist/core/board/simulate.js.map +1 -0
- package/dist/core/board/tasks/index.d.ts +25 -0
- package/dist/core/board/tasks/index.js +26 -0
- package/dist/core/board/tasks/index.js.map +1 -0
- package/dist/core/board/tasks/ranking.d.ts +155 -0
- package/dist/core/board/tasks/ranking.js +374 -0
- package/dist/core/board/tasks/ranking.js.map +1 -0
- package/dist/core/board/tasks/roster.d.ts +42 -0
- package/dist/core/board/tasks/roster.js +82 -0
- package/dist/core/board/tasks/roster.js.map +1 -0
- package/dist/core/board/tasks.d.ts +1 -0
- package/dist/core/board/tasks.js +2 -0
- package/dist/core/board/tasks.js.map +1 -0
- package/dist/core/config/index.d.ts +9 -0
- package/dist/core/config/index.js +10 -0
- package/dist/core/config/index.js.map +1 -0
- package/dist/core/config/lookup.d.ts +114 -0
- package/dist/core/config/lookup.js +221 -0
- package/dist/core/config/lookup.js.map +1 -0
- package/dist/core/config/remote-blocks.d.ts +17 -0
- package/dist/core/config/remote-blocks.js +47 -0
- package/dist/core/config/remote-blocks.js.map +1 -0
- package/dist/core/config/schema.d.ts +10 -0
- package/dist/core/config/schema.js +451 -0
- package/dist/core/config/schema.js.map +1 -0
- package/dist/core/errors.d.ts +23 -0
- package/dist/core/errors.js +31 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/gitsync/hosts.d.ts +40 -0
- package/dist/core/gitsync/hosts.js +115 -0
- package/dist/core/gitsync/hosts.js.map +1 -0
- package/dist/core/gitsync/index.d.ts +25 -0
- package/dist/core/gitsync/index.js +25 -0
- package/dist/core/gitsync/index.js.map +1 -0
- package/dist/core/gitsync/integrate.d.ts +72 -0
- package/dist/core/gitsync/integrate.js +115 -0
- package/dist/core/gitsync/integrate.js.map +1 -0
- package/dist/core/gitsync/repo.d.ts +61 -0
- package/dist/core/gitsync/repo.js +213 -0
- package/dist/core/gitsync/repo.js.map +1 -0
- package/dist/core/gitsync/run.d.ts +58 -0
- package/dist/core/gitsync/run.js +102 -0
- package/dist/core/gitsync/run.js.map +1 -0
- package/dist/core/gitsync/status.d.ts +59 -0
- package/dist/core/gitsync/status.js +81 -0
- package/dist/core/gitsync/status.js.map +1 -0
- package/dist/core/gitsync/sync.d.ts +111 -0
- package/dist/core/gitsync/sync.js +275 -0
- package/dist/core/gitsync/sync.js.map +1 -0
- package/dist/core/index.d.ts +31 -0
- package/dist/core/index.js +32 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/instructions/analyze.d.ts +70 -0
- package/dist/core/instructions/analyze.js +275 -0
- package/dist/core/instructions/analyze.js.map +1 -0
- package/dist/core/instructions/builtin.d.ts +21 -0
- package/dist/core/instructions/builtin.js +133 -0
- package/dist/core/instructions/builtin.js.map +1 -0
- package/dist/core/instructions/context.d.ts +155 -0
- package/dist/core/instructions/context.js +209 -0
- package/dist/core/instructions/context.js.map +1 -0
- package/dist/core/instructions/index.d.ts +29 -0
- package/dist/core/instructions/index.js +30 -0
- package/dist/core/instructions/index.js.map +1 -0
- package/dist/core/instructions/instructions.d.ts +90 -0
- package/dist/core/instructions/instructions.js +179 -0
- package/dist/core/instructions/instructions.js.map +1 -0
- package/dist/core/instructions/template.d.ts +108 -0
- package/dist/core/instructions/template.js +252 -0
- package/dist/core/instructions/template.js.map +1 -0
- package/dist/core/model/attributes.d.ts +16 -0
- package/dist/core/model/attributes.js +119 -0
- package/dist/core/model/attributes.js.map +1 -0
- package/dist/core/model/index.d.ts +10 -0
- package/dist/core/model/index.js +11 -0
- package/dist/core/model/index.js.map +1 -0
- package/dist/core/model/links.d.ts +34 -0
- package/dist/core/model/links.js +114 -0
- package/dist/core/model/links.js.map +1 -0
- package/dist/core/model/profile.d.ts +31 -0
- package/dist/core/model/profile.js +8 -0
- package/dist/core/model/profile.js.map +1 -0
- package/dist/core/model/types.d.ts +441 -0
- package/dist/core/model/types.js +167 -0
- package/dist/core/model/types.js.map +1 -0
- package/dist/core/model/zod.d.ts +6 -0
- package/dist/core/model/zod.js +11 -0
- package/dist/core/model/zod.js.map +1 -0
- package/dist/core/operations/board-index.d.ts +45 -0
- package/dist/core/operations/board-index.js +147 -0
- package/dist/core/operations/board-index.js.map +1 -0
- package/dist/core/operations/claim.d.ts +69 -0
- package/dist/core/operations/claim.js +115 -0
- package/dist/core/operations/claim.js.map +1 -0
- package/dist/core/operations/comment.d.ts +30 -0
- package/dist/core/operations/comment.js +46 -0
- package/dist/core/operations/comment.js.map +1 -0
- package/dist/core/operations/create.d.ts +82 -0
- package/dist/core/operations/create.js +306 -0
- package/dist/core/operations/create.js.map +1 -0
- package/dist/core/operations/flag.d.ts +58 -0
- package/dist/core/operations/flag.js +95 -0
- package/dist/core/operations/flag.js.map +1 -0
- package/dist/core/operations/git-sync.d.ts +148 -0
- package/dist/core/operations/git-sync.js +341 -0
- package/dist/core/operations/git-sync.js.map +1 -0
- package/dist/core/operations/index.d.ts +44 -0
- package/dist/core/operations/index.js +45 -0
- package/dist/core/operations/index.js.map +1 -0
- package/dist/core/operations/init.d.ts +25 -0
- package/dist/core/operations/init.js +122 -0
- package/dist/core/operations/init.js.map +1 -0
- package/dist/core/operations/link.d.ts +40 -0
- package/dist/core/operations/link.js +131 -0
- package/dist/core/operations/link.js.map +1 -0
- package/dist/core/operations/move.d.ts +43 -0
- package/dist/core/operations/move.js +103 -0
- package/dist/core/operations/move.js.map +1 -0
- package/dist/core/operations/profile.d.ts +23 -0
- package/dist/core/operations/profile.js +26 -0
- package/dist/core/operations/profile.js.map +1 -0
- package/dist/core/operations/remotes-off.d.ts +12 -0
- package/dist/core/operations/remotes-off.js +67 -0
- package/dist/core/operations/remotes-off.js.map +1 -0
- package/dist/core/operations/remove.d.ts +18 -0
- package/dist/core/operations/remove.js +114 -0
- package/dist/core/operations/remove.js.map +1 -0
- package/dist/core/operations/retype.d.ts +25 -0
- package/dist/core/operations/retype.js +59 -0
- package/dist/core/operations/retype.js.map +1 -0
- package/dist/core/operations/rollup.d.ts +74 -0
- package/dist/core/operations/rollup.js +121 -0
- package/dist/core/operations/rollup.js.map +1 -0
- package/dist/core/operations/shared.d.ts +133 -0
- package/dist/core/operations/shared.js +383 -0
- package/dist/core/operations/shared.js.map +1 -0
- package/dist/core/operations/update.d.ts +43 -0
- package/dist/core/operations/update.js +161 -0
- package/dist/core/operations/update.js.map +1 -0
- package/dist/core/operations/user.d.ts +27 -0
- package/dist/core/operations/user.js +68 -0
- package/dist/core/operations/user.js.map +1 -0
- package/dist/core/profile/current.d.ts +35 -0
- package/dist/core/profile/current.js +31 -0
- package/dist/core/profile/current.js.map +1 -0
- package/dist/core/profile/index.d.ts +14 -0
- package/dist/core/profile/index.js +15 -0
- package/dist/core/profile/index.js.map +1 -0
- package/dist/core/profile/schema.d.ts +9 -0
- package/dist/core/profile/schema.js +100 -0
- package/dist/core/profile/schema.js.map +1 -0
- package/dist/core/storage/activity.d.ts +78 -0
- package/dist/core/storage/activity.js +131 -0
- package/dist/core/storage/activity.js.map +1 -0
- package/dist/core/storage/atomic.d.ts +34 -0
- package/dist/core/storage/atomic.js +117 -0
- package/dist/core/storage/atomic.js.map +1 -0
- package/dist/core/storage/comments.d.ts +39 -0
- package/dist/core/storage/comments.js +88 -0
- package/dist/core/storage/comments.js.map +1 -0
- package/dist/core/storage/document.d.ts +16 -0
- package/dist/core/storage/document.js +98 -0
- package/dist/core/storage/document.js.map +1 -0
- package/dist/core/storage/frontmatter.d.ts +16 -0
- package/dist/core/storage/frontmatter.js +33 -0
- package/dist/core/storage/frontmatter.js.map +1 -0
- package/dist/core/storage/git.d.ts +8 -0
- package/dist/core/storage/git.js +48 -0
- package/dist/core/storage/git.js.map +1 -0
- package/dist/core/storage/index.d.ts +27 -0
- package/dist/core/storage/index.js +28 -0
- package/dist/core/storage/index.js.map +1 -0
- package/dist/core/storage/local.d.ts +57 -0
- package/dist/core/storage/local.js +133 -0
- package/dist/core/storage/local.js.map +1 -0
- package/dist/core/storage/lock.d.ts +85 -0
- package/dist/core/storage/lock.js +364 -0
- package/dist/core/storage/lock.js.map +1 -0
- package/dist/core/storage/paths.d.ts +125 -0
- package/dist/core/storage/paths.js +202 -0
- package/dist/core/storage/paths.js.map +1 -0
- package/dist/core/storage/state.d.ts +32 -0
- package/dist/core/storage/state.js +71 -0
- package/dist/core/storage/state.js.map +1 -0
- package/dist/core/storage/templates.d.ts +29 -0
- package/dist/core/storage/templates.js +62 -0
- package/dist/core/storage/templates.js.map +1 -0
- package/dist/core/storage/views.d.ts +18 -0
- package/dist/core/storage/views.js +62 -0
- package/dist/core/storage/views.js.map +1 -0
- package/dist/core/validation/check.d.ts +4 -0
- package/dist/core/validation/check.js +22 -0
- package/dist/core/validation/check.js.map +1 -0
- package/dist/core/validation/checks/collection.d.ts +4 -0
- package/dist/core/validation/checks/collection.js +152 -0
- package/dist/core/validation/checks/collection.js.map +1 -0
- package/dist/core/validation/checks/counters.d.ts +3 -0
- package/dist/core/validation/checks/counters.js +23 -0
- package/dist/core/validation/checks/counters.js.map +1 -0
- package/dist/core/validation/checks/dependencies.d.ts +3 -0
- package/dist/core/validation/checks/dependencies.js +58 -0
- package/dist/core/validation/checks/dependencies.js.map +1 -0
- package/dist/core/validation/checks/gitignore.d.ts +10 -0
- package/dist/core/validation/checks/gitignore.js +22 -0
- package/dist/core/validation/checks/gitignore.js.map +1 -0
- package/dist/core/validation/checks/index-file.d.ts +8 -0
- package/dist/core/validation/checks/index-file.js +26 -0
- package/dist/core/validation/checks/index-file.js.map +1 -0
- package/dist/core/validation/checks/index.d.ts +20 -0
- package/dist/core/validation/checks/index.js +21 -0
- package/dist/core/validation/checks/index.js.map +1 -0
- package/dist/core/validation/checks/issues.d.ts +3 -0
- package/dist/core/validation/checks/issues.js +152 -0
- package/dist/core/validation/checks/issues.js.map +1 -0
- package/dist/core/validation/checks/periods.d.ts +3 -0
- package/dist/core/validation/checks/periods.js +89 -0
- package/dist/core/validation/checks/periods.js.map +1 -0
- package/dist/core/validation/checks/remotes.d.ts +20 -0
- package/dist/core/validation/checks/remotes.js +42 -0
- package/dist/core/validation/checks/remotes.js.map +1 -0
- package/dist/core/validation/checks/resources.d.ts +3 -0
- package/dist/core/validation/checks/resources.js +77 -0
- package/dist/core/validation/checks/resources.js.map +1 -0
- package/dist/core/validation/checks/rollup.d.ts +27 -0
- package/dist/core/validation/checks/rollup.js +53 -0
- package/dist/core/validation/checks/rollup.js.map +1 -0
- package/dist/core/validation/checks/squads.d.ts +3 -0
- package/dist/core/validation/checks/squads.js +42 -0
- package/dist/core/validation/checks/squads.js.map +1 -0
- package/dist/core/validation/checks/templates.d.ts +14 -0
- package/dist/core/validation/checks/templates.js +119 -0
- package/dist/core/validation/checks/templates.js.map +1 -0
- package/dist/core/validation/fix.d.ts +7 -0
- package/dist/core/validation/fix.js +273 -0
- package/dist/core/validation/fix.js.map +1 -0
- package/dist/core/validation/index.d.ts +7 -0
- package/dist/core/validation/index.js +8 -0
- package/dist/core/validation/index.js.map +1 -0
- package/dist/core/validation/shared.d.ts +47 -0
- package/dist/core/validation/shared.js +66 -0
- package/dist/core/validation/shared.js.map +1 -0
- package/dist/mcp/context.d.ts +70 -0
- package/dist/mcp/context.js +110 -0
- package/dist/mcp/context.js.map +1 -0
- package/dist/mcp/index.d.ts +49 -0
- package/dist/mcp/index.js +90 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/reply.d.ts +28 -0
- package/dist/mcp/reply.js +34 -0
- package/dist/mcp/reply.js.map +1 -0
- package/dist/mcp/tools/plan/create.d.ts +3 -0
- package/dist/mcp/tools/plan/create.js +128 -0
- package/dist/mcp/tools/plan/create.js.map +1 -0
- package/dist/mcp/tools/plan/delete.d.ts +3 -0
- package/dist/mcp/tools/plan/delete.js +35 -0
- package/dist/mcp/tools/plan/delete.js.map +1 -0
- package/dist/mcp/tools/plan/graph.d.ts +3 -0
- package/dist/mcp/tools/plan/graph.js +53 -0
- package/dist/mcp/tools/plan/graph.js.map +1 -0
- package/dist/mcp/tools/plan/index.d.ts +15 -0
- package/dist/mcp/tools/plan/index.js +16 -0
- package/dist/mcp/tools/plan/index.js.map +1 -0
- package/dist/mcp/tools/plan/link.d.ts +3 -0
- package/dist/mcp/tools/plan/link.js +46 -0
- package/dist/mcp/tools/plan/link.js.map +1 -0
- package/dist/mcp/tools/plan/registrar.d.ts +10 -0
- package/dist/mcp/tools/plan/registrar.js +24 -0
- package/dist/mcp/tools/plan/registrar.js.map +1 -0
- package/dist/mcp/tools/plan/reshape.d.ts +3 -0
- package/dist/mcp/tools/plan/reshape.js +95 -0
- package/dist/mcp/tools/plan/reshape.js.map +1 -0
- package/dist/mcp/tools/plan/timeline.d.ts +3 -0
- package/dist/mcp/tools/plan/timeline.js +68 -0
- package/dist/mcp/tools/plan/timeline.js.map +1 -0
- package/dist/mcp/tools/plan/upstream.d.ts +14 -0
- package/dist/mcp/tools/plan/upstream.js +69 -0
- package/dist/mcp/tools/plan/upstream.js.map +1 -0
- package/dist/mcp/tools/plan.d.ts +1 -0
- package/dist/mcp/tools/plan.js +2 -0
- package/dist/mcp/tools/plan.js.map +1 -0
- package/dist/mcp/tools/read.d.ts +3 -0
- package/dist/mcp/tools/read.js +339 -0
- package/dist/mcp/tools/read.js.map +1 -0
- package/dist/mcp/tools/remote.d.ts +3 -0
- package/dist/mcp/tools/remote.js +254 -0
- package/dist/mcp/tools/remote.js.map +1 -0
- package/dist/mcp/tools/templates.d.ts +12 -0
- package/dist/mcp/tools/templates.js +165 -0
- package/dist/mcp/tools/templates.js.map +1 -0
- package/dist/mcp/tools/work.d.ts +16 -0
- package/dist/mcp/tools/work.js +359 -0
- package/dist/mcp/tools/work.js.map +1 -0
- package/dist/remote/accounts.d.ts +158 -0
- package/dist/remote/accounts.js +207 -0
- package/dist/remote/accounts.js.map +1 -0
- package/dist/remote/adopt.d.ts +139 -0
- package/dist/remote/adopt.js +181 -0
- package/dist/remote/adopt.js.map +1 -0
- package/dist/remote/anchor.d.ts +35 -0
- package/dist/remote/anchor.js +53 -0
- package/dist/remote/anchor.js.map +1 -0
- package/dist/remote/attributes.d.ts +103 -0
- package/dist/remote/attributes.js +245 -0
- package/dist/remote/attributes.js.map +1 -0
- package/dist/remote/audit.d.ts +112 -0
- package/dist/remote/audit.js +215 -0
- package/dist/remote/audit.js.map +1 -0
- package/dist/remote/capabilities.d.ts +267 -0
- package/dist/remote/capabilities.js +225 -0
- package/dist/remote/capabilities.js.map +1 -0
- package/dist/remote/check.d.ts +49 -0
- package/dist/remote/check.js +356 -0
- package/dist/remote/check.js.map +1 -0
- package/dist/remote/comments.d.ts +86 -0
- package/dist/remote/comments.js +87 -0
- package/dist/remote/comments.js.map +1 -0
- package/dist/remote/config-file.d.ts +237 -0
- package/dist/remote/config-file.js +640 -0
- package/dist/remote/config-file.js.map +1 -0
- package/dist/remote/conflicts.d.ts +110 -0
- package/dist/remote/conflicts.js +188 -0
- package/dist/remote/conflicts.js.map +1 -0
- package/dist/remote/connection-catalogue.d.ts +65 -0
- package/dist/remote/connection-catalogue.js +66 -0
- package/dist/remote/connection-catalogue.js.map +1 -0
- package/dist/remote/connection.d.ts +84 -0
- package/dist/remote/connection.js +229 -0
- package/dist/remote/connection.js.map +1 -0
- package/dist/remote/coverage.d.ts +65 -0
- package/dist/remote/coverage.js +244 -0
- package/dist/remote/coverage.js.map +1 -0
- package/dist/remote/credentials.d.ts +95 -0
- package/dist/remote/credentials.js +210 -0
- package/dist/remote/credentials.js.map +1 -0
- package/dist/remote/execute.d.ts +178 -0
- package/dist/remote/execute.js +1245 -0
- package/dist/remote/execute.js.map +1 -0
- package/dist/remote/fingerprint.d.ts +172 -0
- package/dist/remote/fingerprint.js +337 -0
- package/dist/remote/fingerprint.js.map +1 -0
- package/dist/remote/fixtures.d.ts +176 -0
- package/dist/remote/fixtures.js +432 -0
- package/dist/remote/fixtures.js.map +1 -0
- package/dist/remote/guard.d.ts +90 -0
- package/dist/remote/guard.js +83 -0
- package/dist/remote/guard.js.map +1 -0
- package/dist/remote/hierarchy.d.ts +141 -0
- package/dist/remote/hierarchy.js +129 -0
- package/dist/remote/hierarchy.js.map +1 -0
- package/dist/remote/index.d.ts +145 -0
- package/dist/remote/index.js +146 -0
- package/dist/remote/index.js.map +1 -0
- package/dist/remote/inspect.d.ts +103 -0
- package/dist/remote/inspect.js +152 -0
- package/dist/remote/inspect.js.map +1 -0
- package/dist/remote/labels.d.ts +75 -0
- package/dist/remote/labels.js +137 -0
- package/dist/remote/labels.js.map +1 -0
- package/dist/remote/ladder.d.ts +145 -0
- package/dist/remote/ladder.js +387 -0
- package/dist/remote/ladder.js.map +1 -0
- package/dist/remote/ledger.d.ts +97 -0
- package/dist/remote/ledger.js +148 -0
- package/dist/remote/ledger.js.map +1 -0
- package/dist/remote/lifecycle.d.ts +175 -0
- package/dist/remote/lifecycle.js +274 -0
- package/dist/remote/lifecycle.js.map +1 -0
- package/dist/remote/links.d.ts +411 -0
- package/dist/remote/links.js +748 -0
- package/dist/remote/links.js.map +1 -0
- package/dist/remote/managed-block.d.ts +182 -0
- package/dist/remote/managed-block.js +406 -0
- package/dist/remote/managed-block.js.map +1 -0
- package/dist/remote/managed-comment.d.ts +104 -0
- package/dist/remote/managed-comment.js +92 -0
- package/dist/remote/managed-comment.js.map +1 -0
- package/dist/remote/mapping.d.ts +282 -0
- package/dist/remote/mapping.js +336 -0
- package/dist/remote/mapping.js.map +1 -0
- package/dist/remote/merge.d.ts +172 -0
- package/dist/remote/merge.js +221 -0
- package/dist/remote/merge.js.map +1 -0
- package/dist/remote/periods.d.ts +209 -0
- package/dist/remote/periods.js +224 -0
- package/dist/remote/periods.js.map +1 -0
- package/dist/remote/plan.d.ts +671 -0
- package/dist/remote/plan.js +1210 -0
- package/dist/remote/plan.js.map +1 -0
- package/dist/remote/policy.d.ts +67 -0
- package/dist/remote/policy.js +67 -0
- package/dist/remote/policy.js.map +1 -0
- package/dist/remote/preflight.d.ts +112 -0
- package/dist/remote/preflight.js +342 -0
- package/dist/remote/preflight.js.map +1 -0
- package/dist/remote/prerequisites.d.ts +113 -0
- package/dist/remote/prerequisites.js +161 -0
- package/dist/remote/prerequisites.js.map +1 -0
- package/dist/remote/provider.d.ts +802 -0
- package/dist/remote/provider.js +27 -0
- package/dist/remote/provider.js.map +1 -0
- package/dist/remote/providers/github/config.d.ts +84 -0
- package/dist/remote/providers/github/config.js +161 -0
- package/dist/remote/providers/github/config.js.map +1 -0
- package/dist/remote/providers/github/connector.d.ts +33 -0
- package/dist/remote/providers/github/connector.js +774 -0
- package/dist/remote/providers/github/connector.js.map +1 -0
- package/dist/remote/providers/github/edges.d.ts +29 -0
- package/dist/remote/providers/github/edges.js +56 -0
- package/dist/remote/providers/github/edges.js.map +1 -0
- package/dist/remote/providers/github/hierarchy.d.ts +21 -0
- package/dist/remote/providers/github/hierarchy.js +46 -0
- package/dist/remote/providers/github/hierarchy.js.map +1 -0
- package/dist/remote/providers/github/index.d.ts +26 -0
- package/dist/remote/providers/github/index.js +69 -0
- package/dist/remote/providers/github/index.js.map +1 -0
- package/dist/remote/providers/github/project-iteration.d.ts +71 -0
- package/dist/remote/providers/github/project-iteration.js +203 -0
- package/dist/remote/providers/github/project-iteration.js.map +1 -0
- package/dist/remote/providers/github/project-provision.d.ts +130 -0
- package/dist/remote/providers/github/project-provision.js +247 -0
- package/dist/remote/providers/github/project-provision.js.map +1 -0
- package/dist/remote/providers/github/project-status.d.ts +115 -0
- package/dist/remote/providers/github/project-status.js +317 -0
- package/dist/remote/providers/github/project-status.js.map +1 -0
- package/dist/remote/providers/github/projects.d.ts +181 -0
- package/dist/remote/providers/github/projects.js +481 -0
- package/dist/remote/providers/github/projects.js.map +1 -0
- package/dist/remote/providers/github/translator.d.ts +103 -0
- package/dist/remote/providers/github/translator.js +400 -0
- package/dist/remote/providers/github/translator.js.map +1 -0
- package/dist/remote/providers/jira/config.d.ts +96 -0
- package/dist/remote/providers/jira/config.js +200 -0
- package/dist/remote/providers/jira/config.js.map +1 -0
- package/dist/remote/providers/jira/connector.d.ts +42 -0
- package/dist/remote/providers/jira/connector.js +1688 -0
- package/dist/remote/providers/jira/connector.js.map +1 -0
- package/dist/remote/providers/jira/fields.d.ts +292 -0
- package/dist/remote/providers/jira/fields.js +463 -0
- package/dist/remote/providers/jira/fields.js.map +1 -0
- package/dist/remote/providers/jira/hierarchy.d.ts +28 -0
- package/dist/remote/providers/jira/hierarchy.js +60 -0
- package/dist/remote/providers/jira/hierarchy.js.map +1 -0
- package/dist/remote/providers/jira/index.d.ts +29 -0
- package/dist/remote/providers/jira/index.js +100 -0
- package/dist/remote/providers/jira/index.js.map +1 -0
- package/dist/remote/providers/jira/links.d.ts +41 -0
- package/dist/remote/providers/jira/links.js +102 -0
- package/dist/remote/providers/jira/links.js.map +1 -0
- package/dist/remote/providers/jira/sprints.d.ts +80 -0
- package/dist/remote/providers/jira/sprints.js +107 -0
- package/dist/remote/providers/jira/sprints.js.map +1 -0
- package/dist/remote/providers/jira/translator.d.ts +61 -0
- package/dist/remote/providers/jira/translator.js +382 -0
- package/dist/remote/providers/jira/translator.js.map +1 -0
- package/dist/remote/providers/jira/types.d.ts +112 -0
- package/dist/remote/providers/jira/types.js +160 -0
- package/dist/remote/providers/jira/types.js.map +1 -0
- package/dist/remote/providers/jira/vocabulary.d.ts +55 -0
- package/dist/remote/providers/jira/vocabulary.js +91 -0
- package/dist/remote/providers/jira/vocabulary.js.map +1 -0
- package/dist/remote/providers/jsonfile/config.d.ts +61 -0
- package/dist/remote/providers/jsonfile/config.js +83 -0
- package/dist/remote/providers/jsonfile/config.js.map +1 -0
- package/dist/remote/providers/jsonfile/connector.d.ts +34 -0
- package/dist/remote/providers/jsonfile/connector.js +251 -0
- package/dist/remote/providers/jsonfile/connector.js.map +1 -0
- package/dist/remote/providers/jsonfile/index.d.ts +38 -0
- package/dist/remote/providers/jsonfile/index.js +90 -0
- package/dist/remote/providers/jsonfile/index.js.map +1 -0
- package/dist/remote/providers/jsonfile/store.d.ts +59 -0
- package/dist/remote/providers/jsonfile/store.js +48 -0
- package/dist/remote/providers/jsonfile/store.js.map +1 -0
- package/dist/remote/providers/jsonfile/translator.d.ts +54 -0
- package/dist/remote/providers/jsonfile/translator.js +199 -0
- package/dist/remote/providers/jsonfile/translator.js.map +1 -0
- package/dist/remote/providers/linear/config.d.ts +83 -0
- package/dist/remote/providers/linear/config.js +140 -0
- package/dist/remote/providers/linear/config.js.map +1 -0
- package/dist/remote/providers/linear/connector.d.ts +36 -0
- package/dist/remote/providers/linear/connector.js +438 -0
- package/dist/remote/providers/linear/connector.js.map +1 -0
- package/dist/remote/providers/linear/estimate.d.ts +63 -0
- package/dist/remote/providers/linear/estimate.js +112 -0
- package/dist/remote/providers/linear/estimate.js.map +1 -0
- package/dist/remote/providers/linear/index.d.ts +31 -0
- package/dist/remote/providers/linear/index.js +75 -0
- package/dist/remote/providers/linear/index.js.map +1 -0
- package/dist/remote/providers/linear/labels.d.ts +51 -0
- package/dist/remote/providers/linear/labels.js +129 -0
- package/dist/remote/providers/linear/labels.js.map +1 -0
- package/dist/remote/providers/linear/states.d.ts +97 -0
- package/dist/remote/providers/linear/states.js +124 -0
- package/dist/remote/providers/linear/states.js.map +1 -0
- package/dist/remote/providers/linear/translator.d.ts +48 -0
- package/dist/remote/providers/linear/translator.js +343 -0
- package/dist/remote/providers/linear/translator.js.map +1 -0
- package/dist/remote/providers/linear/vocabulary.d.ts +27 -0
- package/dist/remote/providers/linear/vocabulary.js +42 -0
- package/dist/remote/providers/linear/vocabulary.js.map +1 -0
- package/dist/remote/provision.d.ts +45 -0
- package/dist/remote/provision.js +81 -0
- package/dist/remote/provision.js.map +1 -0
- package/dist/remote/pull.d.ts +52 -0
- package/dist/remote/pull.js +116 -0
- package/dist/remote/pull.js.map +1 -0
- package/dist/remote/readiness.d.ts +67 -0
- package/dist/remote/readiness.js +336 -0
- package/dist/remote/readiness.js.map +1 -0
- package/dist/remote/rebase.d.ts +157 -0
- package/dist/remote/rebase.js +255 -0
- package/dist/remote/rebase.js.map +1 -0
- package/dist/remote/reconcile.d.ts +115 -0
- package/dist/remote/reconcile.js +140 -0
- package/dist/remote/reconcile.js.map +1 -0
- package/dist/remote/redact.d.ts +70 -0
- package/dist/remote/redact.js +132 -0
- package/dist/remote/redact.js.map +1 -0
- package/dist/remote/registry.d.ts +32 -0
- package/dist/remote/registry.js +54 -0
- package/dist/remote/registry.js.map +1 -0
- package/dist/remote/remotes.d.ts +94 -0
- package/dist/remote/remotes.js +182 -0
- package/dist/remote/remotes.js.map +1 -0
- package/dist/remote/render.d.ts +147 -0
- package/dist/remote/render.js +683 -0
- package/dist/remote/render.js.map +1 -0
- package/dist/remote/report.d.ts +63 -0
- package/dist/remote/report.js +345 -0
- package/dist/remote/report.js.map +1 -0
- package/dist/remote/resolutions.d.ts +115 -0
- package/dist/remote/resolutions.js +217 -0
- package/dist/remote/resolutions.js.map +1 -0
- package/dist/remote/scaffold.d.ts +134 -0
- package/dist/remote/scaffold.js +370 -0
- package/dist/remote/scaffold.js.map +1 -0
- package/dist/remote/scope.d.ts +57 -0
- package/dist/remote/scope.js +91 -0
- package/dist/remote/scope.js.map +1 -0
- package/dist/remote/selection.d.ts +38 -0
- package/dist/remote/selection.js +50 -0
- package/dist/remote/selection.js.map +1 -0
- package/dist/remote/shape.d.ts +141 -0
- package/dist/remote/shape.js +220 -0
- package/dist/remote/shape.js.map +1 -0
- package/dist/remote/status.d.ts +104 -0
- package/dist/remote/status.js +238 -0
- package/dist/remote/status.js.map +1 -0
- package/dist/remote/sync.d.ts +182 -0
- package/dist/remote/sync.js +523 -0
- package/dist/remote/sync.js.map +1 -0
- package/dist/remote/transport/budget.d.ts +48 -0
- package/dist/remote/transport/budget.js +68 -0
- package/dist/remote/transport/budget.js.map +1 -0
- package/dist/remote/transport/connector.d.ts +115 -0
- package/dist/remote/transport/connector.js +21 -0
- package/dist/remote/transport/connector.js.map +1 -0
- package/dist/remote/transport/error.d.ts +88 -0
- package/dist/remote/transport/error.js +196 -0
- package/dist/remote/transport/error.js.map +1 -0
- package/dist/remote/transport/gh.d.ts +20 -0
- package/dist/remote/transport/gh.js +41 -0
- package/dist/remote/transport/gh.js.map +1 -0
- package/dist/remote/transport/graphql.d.ts +25 -0
- package/dist/remote/transport/graphql.js +81 -0
- package/dist/remote/transport/graphql.js.map +1 -0
- package/dist/remote/transport/http.d.ts +47 -0
- package/dist/remote/transport/http.js +195 -0
- package/dist/remote/transport/http.js.map +1 -0
- package/dist/remote/transport/index.d.ts +18 -0
- package/dist/remote/transport/index.js +19 -0
- package/dist/remote/transport/index.js.map +1 -0
- package/dist/remote/transport/process.d.ts +39 -0
- package/dist/remote/transport/process.js +121 -0
- package/dist/remote/transport/process.js.map +1 -0
- package/dist/remote/transport/rest.d.ts +22 -0
- package/dist/remote/transport/rest.js +57 -0
- package/dist/remote/transport/rest.js.map +1 -0
- package/dist/remote/transport/retry.d.ts +91 -0
- package/dist/remote/transport/retry.js +138 -0
- package/dist/remote/transport/retry.js.map +1 -0
- package/dist/remote/transport-error.d.ts +19 -0
- package/dist/remote/transport-error.js +22 -0
- package/dist/remote/transport-error.js.map +1 -0
- package/dist/remote/vocabulary.d.ts +126 -0
- package/dist/remote/vocabulary.js +57 -0
- package/dist/remote/vocabulary.js.map +1 -0
- package/dist/runner/config.d.ts +7 -0
- package/dist/runner/config.js +61 -0
- package/dist/runner/config.js.map +1 -0
- package/dist/runner/git.d.ts +19 -0
- package/dist/runner/git.js +26 -0
- package/dist/runner/git.js.map +1 -0
- package/dist/runner/index.d.ts +20 -0
- package/dist/runner/index.js +21 -0
- package/dist/runner/index.js.map +1 -0
- package/dist/runner/loop.d.ts +46 -0
- package/dist/runner/loop.js +243 -0
- package/dist/runner/loop.js.map +1 -0
- package/dist/runner/pi.d.ts +39 -0
- package/dist/runner/pi.js +276 -0
- package/dist/runner/pi.js.map +1 -0
- package/dist/runner/shell.d.ts +44 -0
- package/dist/runner/shell.js +174 -0
- package/dist/runner/shell.js.map +1 -0
- package/dist/runner/stats.d.ts +19 -0
- package/dist/runner/stats.js +58 -0
- package/dist/runner/stats.js.map +1 -0
- package/dist/runner/types.d.ts +218 -0
- package/dist/runner/types.js +37 -0
- package/dist/runner/types.js.map +1 -0
- package/dist/server/git.d.ts +8 -0
- package/dist/server/git.js +50 -0
- package/dist/server/git.js.map +1 -0
- package/dist/server/http/respond.d.ts +13 -0
- package/dist/server/http/respond.js +59 -0
- package/dist/server/http/respond.js.map +1 -0
- package/dist/server/http/router.d.ts +27 -0
- package/dist/server/http/router.js +48 -0
- package/dist/server/http/router.js.map +1 -0
- package/dist/server/http/static.d.ts +14 -0
- package/dist/server/http/static.js +55 -0
- package/dist/server/http/static.js.map +1 -0
- package/dist/server/index.d.ts +58 -0
- package/dist/server/index.js +124 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/routes/board.d.ts +8 -0
- package/dist/server/routes/board.js +19 -0
- package/dist/server/routes/board.js.map +1 -0
- package/dist/server/routes/comments.d.ts +13 -0
- package/dist/server/routes/comments.js +36 -0
- package/dist/server/routes/comments.js.map +1 -0
- package/dist/server/routes/flags.d.ts +16 -0
- package/dist/server/routes/flags.js +37 -0
- package/dist/server/routes/flags.js.map +1 -0
- package/dist/server/routes/git.d.ts +13 -0
- package/dist/server/routes/git.js +84 -0
- package/dist/server/routes/git.js.map +1 -0
- package/dist/server/routes/remotes.d.ts +36 -0
- package/dist/server/routes/remotes.js +749 -0
- package/dist/server/routes/remotes.js.map +1 -0
- package/dist/server/routes/views.d.ts +10 -0
- package/dist/server/routes/views.js +63 -0
- package/dist/server/routes/views.js.map +1 -0
- package/dist/server/views/schema.d.ts +2 -0
- package/dist/server/views/schema.js +121 -0
- package/dist/server/views/schema.js.map +1 -0
- package/dist/server/views/store.d.ts +17 -0
- package/dist/server/views/store.js +67 -0
- package/dist/server/views/store.js.map +1 -0
- package/dist/shared/adf.d.ts +83 -0
- package/dist/shared/adf.js +795 -0
- package/dist/shared/adf.js.map +1 -0
- package/dist/shared/blocking.d.ts +130 -0
- package/dist/shared/blocking.js +179 -0
- package/dist/shared/blocking.js.map +1 -0
- package/dist/shared/changes.d.ts +100 -0
- package/dist/shared/changes.js +112 -0
- package/dist/shared/changes.js.map +1 -0
- package/dist/shared/cohesion.d.ts +75 -0
- package/dist/shared/cohesion.js +132 -0
- package/dist/shared/cohesion.js.map +1 -0
- package/dist/shared/dependency-rollup.d.ts +91 -0
- package/dist/shared/dependency-rollup.js +132 -0
- package/dist/shared/dependency-rollup.js.map +1 -0
- package/dist/shared/errors.d.ts +23 -0
- package/dist/shared/errors.js +24 -0
- package/dist/shared/errors.js.map +1 -0
- package/dist/shared/flag-rollup.d.ts +88 -0
- package/dist/shared/flag-rollup.js +119 -0
- package/dist/shared/flag-rollup.js.map +1 -0
- package/dist/shared/git-sync.d.ts +90 -0
- package/dist/shared/git-sync.js +9 -0
- package/dist/shared/git-sync.js.map +1 -0
- package/dist/shared/index.d.ts +40 -0
- package/dist/shared/index.js +41 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/model.d.ts +218 -0
- package/dist/shared/model.js +95 -0
- package/dist/shared/model.js.map +1 -0
- package/dist/shared/period-query.d.ts +21 -0
- package/dist/shared/period-query.js +26 -0
- package/dist/shared/period-query.js.map +1 -0
- package/dist/shared/period-stance.d.ts +45 -0
- package/dist/shared/period-stance.js +50 -0
- package/dist/shared/period-stance.js.map +1 -0
- package/dist/shared/plans/breakdown.d.ts +66 -0
- package/dist/shared/plans/breakdown.js +186 -0
- package/dist/shared/plans/breakdown.js.map +1 -0
- package/dist/shared/plans/index.d.ts +21 -0
- package/dist/shared/plans/index.js +22 -0
- package/dist/shared/plans/index.js.map +1 -0
- package/dist/shared/plans/instantiate.d.ts +61 -0
- package/dist/shared/plans/instantiate.js +184 -0
- package/dist/shared/plans/instantiate.js.map +1 -0
- package/dist/shared/plans/reading.d.ts +79 -0
- package/dist/shared/plans/reading.js +149 -0
- package/dist/shared/plans/reading.js.map +1 -0
- package/dist/shared/plans/reparent.d.ts +54 -0
- package/dist/shared/plans/reparent.js +217 -0
- package/dist/shared/plans/reparent.js.map +1 -0
- package/dist/shared/plans/timeline.d.ts +93 -0
- package/dist/shared/plans/timeline.js +224 -0
- package/dist/shared/plans/timeline.js.map +1 -0
- package/dist/shared/plans/upstream.d.ts +67 -0
- package/dist/shared/plans/upstream.js +73 -0
- package/dist/shared/plans/upstream.js.map +1 -0
- package/dist/shared/remote-api.d.ts +413 -0
- package/dist/shared/remote-api.js +11 -0
- package/dist/shared/remote-api.js.map +1 -0
- package/dist/shared/remote-coverage.d.ts +120 -0
- package/dist/shared/remote-coverage.js +98 -0
- package/dist/shared/remote-coverage.js.map +1 -0
- package/dist/shared/remote-readiness.d.ts +162 -0
- package/dist/shared/remote-readiness.js +49 -0
- package/dist/shared/remote-readiness.js.map +1 -0
- package/dist/shared/remote-status.d.ts +268 -0
- package/dist/shared/remote-status.js +79 -0
- package/dist/shared/remote-status.js.map +1 -0
- package/dist/shared/rollup.d.ts +90 -0
- package/dist/shared/rollup.js +119 -0
- package/dist/shared/rollup.js.map +1 -0
- package/dist/shared/static.d.ts +65 -0
- package/dist/shared/static.js +107 -0
- package/dist/shared/static.js.map +1 -0
- package/dist/shared/template-params.d.ts +80 -0
- package/dist/shared/template-params.js +141 -0
- package/dist/shared/template-params.js.map +1 -0
- package/dist/shared/view.d.ts +105 -0
- package/dist/shared/view.js +44 -0
- package/dist/shared/view.js.map +1 -0
- package/dist/shared/work-unit.d.ts +34 -0
- package/dist/shared/work-unit.js +47 -0
- package/dist/shared/work-unit.js.map +1 -0
- package/dist/sync/apply.d.ts +21 -0
- package/dist/sync/apply.js +149 -0
- package/dist/sync/apply.js.map +1 -0
- package/dist/sync/dto.d.ts +9 -0
- package/dist/sync/dto.js +162 -0
- package/dist/sync/dto.js.map +1 -0
- package/dist/sync/index.d.ts +24 -0
- package/dist/sync/index.js +25 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/patch.d.ts +13 -0
- package/dist/sync/patch.js +212 -0
- package/dist/sync/patch.js.map +1 -0
- package/dist/sync/session.d.ts +31 -0
- package/dist/sync/session.js +55 -0
- package/dist/sync/session.js.map +1 -0
- package/dist/sync/static.d.ts +11 -0
- package/dist/sync/static.js +33 -0
- package/dist/sync/static.js.map +1 -0
- package/package.json +95 -4
- package/templates/blank.yml +71 -0
- package/templates/context/bug.md +107 -0
- package/templates/context/default.md +119 -0
- package/templates/context/epic.md +81 -0
- package/templates/context/feature.md +91 -0
- package/templates/context/research.md +87 -0
- package/templates/context/review.md +81 -0
- package/templates/context/story.md +94 -0
- package/templates/context/sub_task.md +108 -0
- package/templates/context/task.md +86 -0
- package/templates/context/test.md +73 -0
- package/templates/context/user_story.md +147 -0
- package/templates/kanban.yml +226 -0
- package/templates/scrum.yml +567 -0
- package/web/dist/assets/index-D0j8OnHq.js +35 -0
- package/web/dist/assets/index-DFL7v8aP.css +1 -0
- package/web/dist/index.html +13 -0
- package/web/dist-viewer/assets/index-Bcns6OuC.css +1 -0
- package/web/dist-viewer/assets/index-vVXzeiFo.js +7 -0
- package/web/dist-viewer/index.html +14 -0
|
@@ -0,0 +1,400 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitHub's two-way vocabulary translation.
|
|
3
|
+
*
|
|
4
|
+
* GitHub has no native issue types, no custom fields, and no workflow state
|
|
5
|
+
* beyond open/closed — so everything the board distinguishes rides on labels.
|
|
6
|
+
* This translator is the GitHub-specific bridge between the board vocabulary
|
|
7
|
+
* and the GitHub one, using the remote's `mapping` block:
|
|
8
|
+
*
|
|
9
|
+
* push: a `BoardOp` plus the mapping becomes a `RemoteRequest` carrying
|
|
10
|
+
* title, body and the labels that stand in for type / status /
|
|
11
|
+
* attributes;
|
|
12
|
+
* pull: a GitHub issue record plus the mapping becomes `BoardFieldsPatch`,
|
|
13
|
+
* recovering type and status from labels when the mapping names them
|
|
14
|
+
* unambiguously.
|
|
15
|
+
*
|
|
16
|
+
* Pure: no I/O. One translator serves every GitHub remote; the mapping and the
|
|
17
|
+
* board's attribute definitions are passed per call. Where a value cannot be
|
|
18
|
+
* mapped back unambiguously, the field is left absent rather than guessed —
|
|
19
|
+
* the pull planner, which sees the whole board and its hierarchy, is the layer
|
|
20
|
+
* that breaks ties (LP-268).
|
|
21
|
+
*
|
|
22
|
+
* Statuses are the one vocabulary element that is fully two-way here: the
|
|
23
|
+
* status engine (`mapping.ts`, LP-269) resolves a board status to the remote
|
|
24
|
+
* label a push writes, resolves the observed labels back to a board status,
|
|
25
|
+
* and carries the `closed` flag that maps a terminal status onto GitHub's
|
|
26
|
+
* open/closed state.
|
|
27
|
+
*
|
|
28
|
+
* Attributes go through the coercion engine (`attributes.ts`, LP-270): a value
|
|
29
|
+
* is coerced to its label form on the way out and back to its board type on
|
|
30
|
+
* the way in, with a reported failure when it cannot — an enum value with no
|
|
31
|
+
* matching option, a number field holding free text. On this provider the
|
|
32
|
+
* remote field kind is derived from the board type, because GitHub's only
|
|
33
|
+
* carrier is a label: an `array` attribute claims one label per item, every
|
|
34
|
+
* other type claims one label holding the value as text. A label the mapping
|
|
35
|
+
* does not claim is never read into an attribute, and is left for the executor
|
|
36
|
+
* to preserve — labels are shared with humans.
|
|
37
|
+
*
|
|
38
|
+
* Assignees go through the account mapping (`accounts.ts`, LP-271): a person
|
|
39
|
+
* whose `via` attribute holds a login becomes that login, a person with no
|
|
40
|
+
* login and a generic pool both go unassigned — the pool also carries a
|
|
41
|
+
* `pool:` label so the pull can restore it — and a login nobody on the roster
|
|
42
|
+
* matches is reported with the `lpm new person` that would add them, never
|
|
43
|
+
* invented.
|
|
44
|
+
*
|
|
45
|
+
* Periods go through the period mapping (`periods.ts`, LP-272, LP-313): the
|
|
46
|
+
* mapped level becomes the native carrier — a milestone or a Project iteration
|
|
47
|
+
* field — and every other level a `period:<type>` row in the managed block.
|
|
48
|
+
* The pull resolves the carrier's title back to a local period — recovering
|
|
49
|
+
* the dates for the planner to reconcile — and reads the degraded levels back
|
|
50
|
+
* out of the block.
|
|
51
|
+
*/
|
|
52
|
+
import { mapAssigneeFromRemote, mapAssigneeToRemote, normalizeAccountMapping, } from '../../accounts.js';
|
|
53
|
+
import { coerceFromRemote, coerceToRemote, } from '../../attributes.js';
|
|
54
|
+
import { boardTypesMatching, claimedTypeValues, isClosedRemote, mapStatusFromRemote, mapStatusToRemote, mapTypeToRemote, } from '../../mapping.js';
|
|
55
|
+
import { parseManagedBlock } from '../../managed-block.js';
|
|
56
|
+
import { labelClaim } from '../../labels.js';
|
|
57
|
+
import { withBlockAssignee } from '../../accounts.js';
|
|
58
|
+
import { degradedFromBlockFields, degradedTypesOf, mapPeriodFromRemote, mapPeriodToRemote, normalizePeriodMapping, } from '../../periods.js';
|
|
59
|
+
import { projectStatusFieldOf, resolveProjectStatus, } from './project-status.js';
|
|
60
|
+
/** Extract a GitHub issue's labels as plain strings. */
|
|
61
|
+
function labelsOf(record) {
|
|
62
|
+
const labels = record.labels;
|
|
63
|
+
if (!Array.isArray(labels))
|
|
64
|
+
return [];
|
|
65
|
+
return labels
|
|
66
|
+
.map((label) => {
|
|
67
|
+
if (typeof label === 'string')
|
|
68
|
+
return label;
|
|
69
|
+
if (label && typeof label === 'object') {
|
|
70
|
+
const name = label.name;
|
|
71
|
+
if (typeof name === 'string')
|
|
72
|
+
return name;
|
|
73
|
+
}
|
|
74
|
+
return '';
|
|
75
|
+
})
|
|
76
|
+
.filter((label) => label.length > 0);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* The remote field a board attribute of this type lands on, given that the
|
|
80
|
+
* only carrier GitHub has is a label. An `array` claims one label per item
|
|
81
|
+
* (`labels`); every other type claims a single label holding the value as text
|
|
82
|
+
* (`text`). The coercion then does the type work in both directions.
|
|
83
|
+
*/
|
|
84
|
+
function fieldFor(type) {
|
|
85
|
+
return type === 'array' ? { kind: 'labels' } : { kind: 'text' };
|
|
86
|
+
}
|
|
87
|
+
/** Skip a value that carries nothing to write. */
|
|
88
|
+
function isEmptyValue(value) {
|
|
89
|
+
return value === undefined || value === null || value === '';
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* The labels a mapping claims, derived from its declaration (LP-308). Exact
|
|
93
|
+
* labels are the type labels and status states; prefixes are the attribute
|
|
94
|
+
* prefixes and the reserved `pool:` prefix (a pool assignment degrades to a
|
|
95
|
+
* label even when no account mapping is declared). Degraded period levels no
|
|
96
|
+
* longer ride labels — they ride the managed block (LP-313) — so the claim
|
|
97
|
+
* derives nothing from the timeline. Derived from the mapping rather than a
|
|
98
|
+
* convention, so a board that maps an attribute onto real label names still
|
|
99
|
+
* owns exactly those names and nothing else.
|
|
100
|
+
*/
|
|
101
|
+
export function labelClaimFromMapping(mapping, _periods = new Map()) {
|
|
102
|
+
const exact = [];
|
|
103
|
+
const prefixes = [];
|
|
104
|
+
exact.push(...claimedTypeValues(mapping.types ?? {}));
|
|
105
|
+
for (const entry of Object.values(mapping.statuses ?? {})) {
|
|
106
|
+
exact.push(...entry.remote);
|
|
107
|
+
}
|
|
108
|
+
for (const prefix of Object.values(mapping.attributes ?? {})) {
|
|
109
|
+
if (prefix.length > 0)
|
|
110
|
+
prefixes.push(`${prefix}:`);
|
|
111
|
+
}
|
|
112
|
+
// A generic pool degrades to a `pool:` label whatever the account mapping
|
|
113
|
+
// says, so the prefix is always claimed (LP-271).
|
|
114
|
+
prefixes.push('pool:');
|
|
115
|
+
return labelClaim(exact, prefixes);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Push: turn a board op into a GitHub request description.
|
|
119
|
+
*
|
|
120
|
+
* A create/update carries `title`, `body` and the labels derived from the
|
|
121
|
+
* mapping: the type's labels, the status's label, and one `<prefix>:<value>`
|
|
122
|
+
* label per mapped attribute (several for an `array`). An attribute value that
|
|
123
|
+
* will not coerce is omitted and reported in `problems` — nothing is written
|
|
124
|
+
* for it. The assignee is resolved through the account mapping (a login, or
|
|
125
|
+
* unassigned for a pool / a gap). A delete carries only its kind — GitHub
|
|
126
|
+
* issues cannot be hard-deleted, so the connector closes them.
|
|
127
|
+
*
|
|
128
|
+
* Every non-delete request also carries the label claim, so the connector can
|
|
129
|
+
* reconcile the list against the labels already on the issue (LP-308).
|
|
130
|
+
*/
|
|
131
|
+
export function describeRequest(op, mapping, attributes, roster = new Map(), periods = new Map()) {
|
|
132
|
+
if (op.kind === 'delete') {
|
|
133
|
+
return { request: { kind: 'delete' }, problems: [], resourceGaps: [], periodGaps: [] };
|
|
134
|
+
}
|
|
135
|
+
const m = mapping;
|
|
136
|
+
const labels = [];
|
|
137
|
+
const problems = [];
|
|
138
|
+
const resourceGaps = [];
|
|
139
|
+
const periodGaps = [];
|
|
140
|
+
let state;
|
|
141
|
+
let assignee;
|
|
142
|
+
let period;
|
|
143
|
+
let degradedPeriods;
|
|
144
|
+
let projectStatus;
|
|
145
|
+
// GitHub has no native type field in the REST issue body, so the mapped
|
|
146
|
+
// value rides a label — which carrier it lands in is this translator's
|
|
147
|
+
// call, never the mapping's.
|
|
148
|
+
const remoteType = mapTypeToRemote(m.types ?? {}, op.fields.type);
|
|
149
|
+
if (remoteType !== undefined)
|
|
150
|
+
labels.push(remoteType);
|
|
151
|
+
const remoteStatus = mapStatusToRemote(m.statuses ?? {}, op.fields.status);
|
|
152
|
+
if (remoteStatus !== undefined) {
|
|
153
|
+
labels.push(remoteStatus);
|
|
154
|
+
// A terminal status closes the remote issue; an explicitly-open status
|
|
155
|
+
// opens it (so a card moved back out of `done` reopens its twin). When
|
|
156
|
+
// the mapping does not say, the state is left untouched rather than
|
|
157
|
+
// guessed — `lpm check` warns about a terminal status that never says.
|
|
158
|
+
const closed = isClosedRemote(m.statuses ?? {}, op.fields.status);
|
|
159
|
+
if (closed === true)
|
|
160
|
+
state = 'closed';
|
|
161
|
+
else if (closed === false)
|
|
162
|
+
state = 'open';
|
|
163
|
+
// Project status (LP-312): when the board's status lives in a Project
|
|
164
|
+
// single-select, the same label is also the column value the connector
|
|
165
|
+
// writes there — the executor asks for it only on a status-affecting
|
|
166
|
+
// write.
|
|
167
|
+
if (projectStatusFieldOf(m) !== undefined)
|
|
168
|
+
projectStatus = remoteStatus;
|
|
169
|
+
}
|
|
170
|
+
// Assignee: resolve the board resource to a GitHub login (LP-271). A pool
|
|
171
|
+
// becomes unassigned plus a `pool:` label; a person with no login becomes
|
|
172
|
+
// unassigned and is reported. Absent (`undefined`) means the op does not
|
|
173
|
+
// carry an assignee, so the remote side is left untouched.
|
|
174
|
+
if (op.fields.assignee !== undefined) {
|
|
175
|
+
const accounts = normalizeAccountMapping(m.accounts);
|
|
176
|
+
const push = mapAssigneeToRemote(roster, accounts, op.fields.assignee);
|
|
177
|
+
labels.push(...push.labels);
|
|
178
|
+
assignee = push.account ?? null;
|
|
179
|
+
if (push.gap)
|
|
180
|
+
resourceGaps.push(push.gap);
|
|
181
|
+
}
|
|
182
|
+
// Period: resolve the issue's period to a container (the mapped level) plus
|
|
183
|
+
// the degraded levels above it, which ride the managed block (LP-313).
|
|
184
|
+
// Absent (`undefined`) means the op does not carry a period, so the remote
|
|
185
|
+
// side is left untouched; a period at a degraded level has no container and
|
|
186
|
+
// clears the milestone/iteration, its membership riding on the block instead.
|
|
187
|
+
if (op.fields.period !== undefined) {
|
|
188
|
+
const periodMapping = normalizePeriodMapping(m.periods);
|
|
189
|
+
if (periodMapping) {
|
|
190
|
+
const push = mapPeriodToRemote(periods, periodMapping, op.fields.period);
|
|
191
|
+
if (push.degraded.length > 0)
|
|
192
|
+
degradedPeriods = push.degraded;
|
|
193
|
+
period = push.container ?? null;
|
|
194
|
+
if (push.gap)
|
|
195
|
+
periodGaps.push(push.gap);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
for (const [attribute, prefix] of Object.entries(m.attributes ?? {})) {
|
|
199
|
+
const value = op.fields.attributes?.[attribute];
|
|
200
|
+
if (isEmptyValue(value))
|
|
201
|
+
continue;
|
|
202
|
+
const type = attributes[attribute]?.type ?? 'string';
|
|
203
|
+
const field = fieldFor(type);
|
|
204
|
+
const result = coerceToRemote(type, value, field);
|
|
205
|
+
if (!result.ok) {
|
|
206
|
+
problems.push({ attribute, direction: 'push', reason: result.reason, options: result.options });
|
|
207
|
+
continue;
|
|
208
|
+
}
|
|
209
|
+
if (field.kind === 'labels') {
|
|
210
|
+
for (const item of result.value)
|
|
211
|
+
labels.push(`${prefix}:${item}`);
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
labels.push(`${prefix}:${String(result.value)}`);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
return {
|
|
218
|
+
request: {
|
|
219
|
+
kind: op.kind,
|
|
220
|
+
title: op.fields.title,
|
|
221
|
+
body: op.fields.body,
|
|
222
|
+
labels,
|
|
223
|
+
labelClaim: labelClaimFromMapping(m, periods),
|
|
224
|
+
state,
|
|
225
|
+
assignee,
|
|
226
|
+
period,
|
|
227
|
+
...(degradedPeriods !== undefined ? { degradedPeriods } : {}),
|
|
228
|
+
...(projectStatus !== undefined ? { projectStatus } : {}),
|
|
229
|
+
},
|
|
230
|
+
problems,
|
|
231
|
+
resourceGaps,
|
|
232
|
+
periodGaps,
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Pull: turn a GitHub issue record into board fields.
|
|
237
|
+
*
|
|
238
|
+
* `title` and `body` pass through; `type` is recovered when exactly one board
|
|
239
|
+
* type's mapped labels match the issue's labels; `status` when a mapped label
|
|
240
|
+
* names it; `attributes` from `<prefix>:<value>` labels, coerced back to each
|
|
241
|
+
* attribute's board type. A label value that will not coerce back (free text
|
|
242
|
+
* in a number field) is reported in `problems` and the attribute is left
|
|
243
|
+
* alone. Ambiguity leaves the field absent — the pull planner breaks ties with
|
|
244
|
+
* the board's hierarchy. The assignee is recovered through the account
|
|
245
|
+
* mapping: the `pool:` label restores a pool, a login restores a person, an
|
|
246
|
+
* unassigned issue clears it, and a login nobody matches is reported. The
|
|
247
|
+
* period is recovered through the period mapping (LP-272, LP-313): the
|
|
248
|
+
* carrier's title — a milestone or a Project iteration — resolves to a local
|
|
249
|
+
* period, its dates are passed through for the planner to reconcile, a
|
|
250
|
+
* carrier nobody on the timeline matches is reported in `result.period.missing`
|
|
251
|
+
* rather than invented, and the degraded levels ride back out of the managed
|
|
252
|
+
* block.
|
|
253
|
+
*/
|
|
254
|
+
export function fieldsFromRecord(record, mapping, attributes, roster = new Map(), periods = new Map()) {
|
|
255
|
+
const m = mapping;
|
|
256
|
+
const labels = labelsOf(record);
|
|
257
|
+
const patch = {};
|
|
258
|
+
const problems = [];
|
|
259
|
+
const unknownAccounts = [];
|
|
260
|
+
const result = { patch, problems, unknownAccounts };
|
|
261
|
+
if (typeof record.title === 'string')
|
|
262
|
+
patch.title = record.title;
|
|
263
|
+
// The managed block is the sync layer's own output, never the document's
|
|
264
|
+
// prose — it is stripped on the way back so the local body holds what a
|
|
265
|
+
// human wrote, not the `parent` / edge / period rows the encoder appended
|
|
266
|
+
// (LP-309, LP-314, LP-313).
|
|
267
|
+
let managedFields = {};
|
|
268
|
+
if (typeof record.body === 'string') {
|
|
269
|
+
const parsed = parseManagedBlock(record.body);
|
|
270
|
+
patch.body = parsed.found ? parsed.body : record.body;
|
|
271
|
+
if (parsed.found)
|
|
272
|
+
managedFields = parsed.fields;
|
|
273
|
+
}
|
|
274
|
+
// Period: the container (a milestone or an iteration, per the carrier)
|
|
275
|
+
// resolves to a local period by name among the mapped level's periods; its
|
|
276
|
+
// dates are the observed dates, carried for the planner to reconcile against
|
|
277
|
+
// the local period. A container with no local counterpart is reported,
|
|
278
|
+
// never invented (LP-272, LP-313).
|
|
279
|
+
const periodMapping = normalizePeriodMapping(m.periods);
|
|
280
|
+
if (periodMapping) {
|
|
281
|
+
let name;
|
|
282
|
+
let ends;
|
|
283
|
+
if (periodMapping.carrier === 'iteration') {
|
|
284
|
+
// The iteration title arrives on the record via `project_iteration`,
|
|
285
|
+
// enriched by the connector's Project read (LP-313).
|
|
286
|
+
const iteration = record['project_iteration'];
|
|
287
|
+
if (typeof iteration === 'string')
|
|
288
|
+
name = iteration;
|
|
289
|
+
}
|
|
290
|
+
else {
|
|
291
|
+
const milestone = record.milestone;
|
|
292
|
+
if (milestone && typeof milestone === 'object') {
|
|
293
|
+
const title = milestone.title;
|
|
294
|
+
if (typeof title === 'string')
|
|
295
|
+
name = title;
|
|
296
|
+
const due = milestone.due_on;
|
|
297
|
+
if (typeof due === 'string')
|
|
298
|
+
ends = due;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
const pull = mapPeriodFromRemote(periods, periodMapping, {
|
|
302
|
+
container: name,
|
|
303
|
+
ends,
|
|
304
|
+
degraded: degradedFromBlockFields(managedFields, degradedTypesOf(periods, periodMapping)),
|
|
305
|
+
});
|
|
306
|
+
if (pull.periodId !== undefined)
|
|
307
|
+
patch.period = pull.periodId;
|
|
308
|
+
result.period = pull;
|
|
309
|
+
}
|
|
310
|
+
// Assignee: the `pool:` label restores a pool, a login matching a person's
|
|
311
|
+
// `via` value restores that person, an explicitly-unassigned issue clears
|
|
312
|
+
// the local assignee, and a login nobody on the roster matches is reported
|
|
313
|
+
// with the `lpm new person` that would add them — never invented (LP-271).
|
|
314
|
+
const assignee = record.assignee;
|
|
315
|
+
let login;
|
|
316
|
+
if (assignee && typeof assignee === 'object') {
|
|
317
|
+
const value = assignee.login;
|
|
318
|
+
if (typeof value === 'string')
|
|
319
|
+
login = value;
|
|
320
|
+
}
|
|
321
|
+
// An assignee the remote could not hold rides the managed block (rung 4), and
|
|
322
|
+
// it is recovered by handing the block's value to the same pool resolution the
|
|
323
|
+
// `pool:` label uses — both carry a board resource id, so one reader serves
|
|
324
|
+
// both and there is no second way for an assignee to come back.
|
|
325
|
+
const accounts = normalizeAccountMapping(m.accounts);
|
|
326
|
+
const resolved = mapAssigneeFromRemote(roster, accounts, {
|
|
327
|
+
account: login,
|
|
328
|
+
labels: withBlockAssignee(labels, managedFields),
|
|
329
|
+
});
|
|
330
|
+
if (resolved.resourceId !== undefined) {
|
|
331
|
+
patch.assignee = resolved.resourceId;
|
|
332
|
+
}
|
|
333
|
+
else if (resolved.unassigned) {
|
|
334
|
+
patch.assignee = null;
|
|
335
|
+
}
|
|
336
|
+
else if (resolved.unknown) {
|
|
337
|
+
unknownAccounts.push(resolved.unknown);
|
|
338
|
+
}
|
|
339
|
+
// Type: every board type whose mapped values appear on the issue.
|
|
340
|
+
const typeCandidates = boardTypesMatching(m.types ?? {}, { labels });
|
|
341
|
+
if (typeCandidates.length === 1)
|
|
342
|
+
patch.type = typeCandidates[0];
|
|
343
|
+
// Status: labels are the legacy carrier; the issue state and (when the
|
|
344
|
+
// mapping declares a Project status field) the Project column are the two
|
|
345
|
+
// signals that can override it. The state only names terminality (a closed
|
|
346
|
+
// issue is the terminal status); the column names a specific status. They
|
|
347
|
+
// resolve together with the configured precedence, and a disagreement is
|
|
348
|
+
// reported in `statusDiscrepancy` rather than silently chosen (LP-312).
|
|
349
|
+
const projectField = projectStatusFieldOf(m);
|
|
350
|
+
const column = projectField !== undefined && typeof record['project_status'] === 'string'
|
|
351
|
+
? record['project_status']
|
|
352
|
+
: undefined;
|
|
353
|
+
const state = typeof record['state'] === 'string' ? record['state'] : undefined;
|
|
354
|
+
const projectResolution = resolveProjectStatus(m, { column, state });
|
|
355
|
+
if (projectResolution.status !== undefined) {
|
|
356
|
+
patch.status = projectResolution.status;
|
|
357
|
+
}
|
|
358
|
+
else {
|
|
359
|
+
const resolution = mapStatusFromRemote(m.statuses ?? {}, labels);
|
|
360
|
+
if (resolution.status !== undefined)
|
|
361
|
+
patch.status = resolution.status;
|
|
362
|
+
}
|
|
363
|
+
if (projectResolution.discrepancy !== undefined) {
|
|
364
|
+
result.statusDiscrepancy = projectResolution.discrepancy;
|
|
365
|
+
}
|
|
366
|
+
// Attributes: `<prefix>:<value>` labels, coerced back by prefix and type.
|
|
367
|
+
const recovered = {};
|
|
368
|
+
for (const [attribute, prefix] of Object.entries(m.attributes ?? {})) {
|
|
369
|
+
const type = attributes[attribute]?.type ?? 'string';
|
|
370
|
+
const field = fieldFor(type);
|
|
371
|
+
if (field.kind === 'labels') {
|
|
372
|
+
const items = labels
|
|
373
|
+
.filter((label) => label.startsWith(`${prefix}:`))
|
|
374
|
+
.map((label) => label.slice(prefix.length + 1))
|
|
375
|
+
.filter((item) => item.length > 0);
|
|
376
|
+
if (items.length > 0)
|
|
377
|
+
recovered[attribute] = items;
|
|
378
|
+
continue;
|
|
379
|
+
}
|
|
380
|
+
const marker = labels.find((label) => label.startsWith(`${prefix}:`));
|
|
381
|
+
if (marker === undefined)
|
|
382
|
+
continue;
|
|
383
|
+
const raw = marker.slice(prefix.length + 1);
|
|
384
|
+
const result = coerceFromRemote(type, raw, { values: attributes[attribute]?.values });
|
|
385
|
+
if (result.ok) {
|
|
386
|
+
recovered[attribute] = result.value;
|
|
387
|
+
}
|
|
388
|
+
else {
|
|
389
|
+
problems.push({ attribute, direction: 'pull', reason: result.reason, options: result.options });
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
if (Object.keys(recovered).length > 0)
|
|
393
|
+
patch.attributes = recovered;
|
|
394
|
+
return result;
|
|
395
|
+
}
|
|
396
|
+
export const githubTranslator = {
|
|
397
|
+
describeRequest,
|
|
398
|
+
fieldsFromRecord,
|
|
399
|
+
};
|
|
400
|
+
//# sourceMappingURL=translator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translator.js","sourceRoot":"","sources":["../../../../src/remote/providers/github/translator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Jira provider's own slice of a remote declaration.
|
|
3
|
+
*
|
|
4
|
+
* Core validates the frame — that a remote has a `provider`, a scope, a
|
|
5
|
+
* direction and two policies. This schema validates the contents of the
|
|
6
|
+
* `connection` and `mapping` blocks for Jira Cloud specifically, and is called
|
|
7
|
+
* when the remote is opened (LP-259), exactly as `storage/views.ts` owns the
|
|
8
|
+
* contents of a view file.
|
|
9
|
+
*
|
|
10
|
+
* Jira Cloud has *native* issue types, workflow statuses (transition-mediated)
|
|
11
|
+
* and custom fields, so the mapping names them rather than encoding them onto
|
|
12
|
+
* labels:
|
|
13
|
+
*
|
|
14
|
+
* - `types` board type → the Jira issuetype name (`{ type: Story }`)
|
|
15
|
+
* - `statuses` board status id → the Jira status name(s) a push targets,
|
|
16
|
+
* plus whether the status is terminal (`closed`) — the flag
|
|
17
|
+
* that lets the sync tell a finished column from an open one
|
|
18
|
+
* - `attributes` board attribute name → the Jira custom field id that
|
|
19
|
+
* carries it (`customfield_10016`). Resolving a *name* to an
|
|
20
|
+
* id is LP-324's discovery, not this schema's: the mapping
|
|
21
|
+
* names the id the instance actually has.
|
|
22
|
+
* - `accounts` `{ via: <attribute> }` — which resource attribute carries
|
|
23
|
+
* the Jira account (LP-271, LP-329). `via: email` resolves
|
|
24
|
+
* through Jira's user search and is refused with the
|
|
25
|
+
* `jira_account_id` alternative on a privacy-restricted
|
|
26
|
+
* instance; `via: jira_account_id` (or any other attribute)
|
|
27
|
+
* holds the account id and is used directly, no search.
|
|
28
|
+
* - `periods` `{ container: <period type> }` — which period level maps to
|
|
29
|
+
* a Jira sprint (LP-328); the other levels ride labels
|
|
30
|
+
* - `transitions` `{ multi_hop: <bool> }` — whether a status change may walk
|
|
31
|
+
* the workflow several transitions (LP-326); off by default
|
|
32
|
+
* - `transition_fields` field key → value, the answers for transition
|
|
33
|
+
* screens whose fields are required (a resolution, a reason)
|
|
34
|
+
*
|
|
35
|
+
* The connection block carries the Cloud site, the project key and the agile
|
|
36
|
+
* board id (enables sprint mapping), plus the identity resolved through the
|
|
37
|
+
* credential chain — `email` and `token` name *where* the secret comes from,
|
|
38
|
+
* never the secret itself (LP-290).
|
|
39
|
+
*/
|
|
40
|
+
import { z } from 'zod';
|
|
41
|
+
export declare const jiraConfigSchema: z.ZodObject<{
|
|
42
|
+
connection: z.ZodObject<{
|
|
43
|
+
site: z.ZodString;
|
|
44
|
+
project: z.ZodString;
|
|
45
|
+
board: z.ZodPipe<z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>, z.ZodTransform<string | undefined, string | number | undefined>>;
|
|
46
|
+
email: z.ZodOptional<z.ZodString>;
|
|
47
|
+
token: z.ZodOptional<z.ZodString>;
|
|
48
|
+
tls_verify: z.ZodOptional<z.ZodBoolean>;
|
|
49
|
+
}, z.core.$strip>;
|
|
50
|
+
mapping: z.ZodObject<{
|
|
51
|
+
types: z.ZodPipe<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>, z.ZodObject<{
|
|
52
|
+
remote: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
53
|
+
type: z.ZodOptional<z.ZodString>;
|
|
54
|
+
labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
55
|
+
}, z.core.$strip>]>>>, z.ZodTransform<import("../../mapping.js").TypeMappings, Record<string, string | string[] | {
|
|
56
|
+
remote?: string | string[] | undefined;
|
|
57
|
+
type?: string | undefined;
|
|
58
|
+
labels?: string[] | undefined;
|
|
59
|
+
}>>>;
|
|
60
|
+
statuses: z.ZodPipe<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>, z.ZodObject<{
|
|
61
|
+
remote: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
|
|
62
|
+
push: z.ZodOptional<z.ZodString>;
|
|
63
|
+
closed: z.ZodOptional<z.ZodBoolean>;
|
|
64
|
+
}, z.core.$strip>]>>>, z.ZodTransform<import("../../mapping.js").StatusMappings, Record<string, string | string[] | {
|
|
65
|
+
remote: string | string[];
|
|
66
|
+
push?: string | undefined;
|
|
67
|
+
closed?: boolean | undefined;
|
|
68
|
+
}>>>;
|
|
69
|
+
transitions: z.ZodDefault<z.ZodOptional<z.ZodObject<{
|
|
70
|
+
multi_hop: z.ZodOptional<z.ZodBoolean>;
|
|
71
|
+
}, z.core.$strip>>>;
|
|
72
|
+
transition_fields: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
73
|
+
attributes: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
74
|
+
accounts: z.ZodOptional<z.ZodObject<{
|
|
75
|
+
via: z.ZodString;
|
|
76
|
+
}, z.core.$strip>>;
|
|
77
|
+
hierarchy: z.ZodOptional<z.ZodEnum<{
|
|
78
|
+
labels: "labels";
|
|
79
|
+
"sub-issues": "sub-issues";
|
|
80
|
+
}>>;
|
|
81
|
+
periods: z.ZodOptional<z.ZodPipe<z.ZodObject<{
|
|
82
|
+
container: z.ZodString;
|
|
83
|
+
}, z.core.$strip>, z.ZodTransform<{
|
|
84
|
+
container: string;
|
|
85
|
+
carrier: "sprint";
|
|
86
|
+
}, {
|
|
87
|
+
container: string;
|
|
88
|
+
}>>>;
|
|
89
|
+
}, z.core.$strip>;
|
|
90
|
+
}, z.core.$strip>;
|
|
91
|
+
/** The validated shape of a Jira remote declaration. */
|
|
92
|
+
export type JiraConfig = z.infer<typeof jiraConfigSchema>;
|
|
93
|
+
/** The `mapping` block, after validation. */
|
|
94
|
+
export type JiraMapping = JiraConfig['mapping'];
|
|
95
|
+
/** The `connection` block, after validation (defaults applied, board stringified). */
|
|
96
|
+
export type JiraConnection = JiraConfig['connection'];
|