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,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The managed comment — rung 5 of the degradation ladder (LP-278).
|
|
3
|
+
*
|
|
4
|
+
* When the remote body cannot carry the managed block — the remote declares
|
|
5
|
+
* `encoding: comment`, or a body write is refused at runtime — the *same block*
|
|
6
|
+
* is posted as a comment instead. The comment body **is** the managed block:
|
|
7
|
+
* the same delimiters, the same table, the same id links, so the pull parser
|
|
8
|
+
* (`parseManagedBlock` in `managed-block.ts`) recovers it without knowing
|
|
9
|
+
* whether it arrived in a body or a comment. The block codec stays
|
|
10
|
+
* carrier-agnostic; this module only adds the comment-shaped wrapper around it.
|
|
11
|
+
*
|
|
12
|
+
* Two facts are the whole of the design:
|
|
13
|
+
*
|
|
14
|
+
* 1. **The comment id lives in the link store** (`LinkEntry.managedCommentId`).
|
|
15
|
+
* Without it the next push cannot find the comment and posts a second one
|
|
16
|
+
* — the visible, annoying failure that makes people turn sync off. The
|
|
17
|
+
* strategy planner below turns the recorded id plus the comment capability
|
|
18
|
+
* into exactly one action: post, edit, replace, remove or refuse.
|
|
19
|
+
* 2. **A managed comment is our output, never a human's.** It is excluded
|
|
20
|
+
* from comment sync in both directions: the push never re-posts it as a
|
|
21
|
+
* user comment, and a pull never imports it as one. `isManagedCommentBody`
|
|
22
|
+
* is the shared test — by id where the link store knows it, by body where
|
|
23
|
+
* the id was lost.
|
|
24
|
+
*
|
|
25
|
+
* Pure: no disk, no network, no Node imports — the planners and the web bundle
|
|
26
|
+
* carry it, exactly like `managed-block.ts`.
|
|
27
|
+
*/
|
|
28
|
+
import { type ManagedBlockEntry, type ManagedBlockLinks } from './managed-block.js';
|
|
29
|
+
/**
|
|
30
|
+
* Render the managed comment's body. It is the managed block itself — the
|
|
31
|
+
* delimiters are what let the next pull recognise and strip it, and they are
|
|
32
|
+
* what let `isManagedCommentBody` tell our comment from a human's.
|
|
33
|
+
*/
|
|
34
|
+
export declare function renderManagedComment(entries: readonly ManagedBlockEntry[], links?: ManagedBlockLinks): string;
|
|
35
|
+
/**
|
|
36
|
+
* True when a comment body is a managed comment — one of our own block outputs
|
|
37
|
+
* rather than a human's prose. The test is the codec's own parse: both
|
|
38
|
+
* delimiters present, begin before end. Cheap enough for the pull's comment
|
|
39
|
+
* filter, and it degrades to `false` (treat as a human comment) when a human
|
|
40
|
+
* mangled the delimiters, so nothing of ours is ever mistaken for theirs.
|
|
41
|
+
*/
|
|
42
|
+
export declare function isManagedCommentBody(body: string): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* The comment capability, in the shape the strategy planner reads. Mirror of
|
|
45
|
+
* `CommentSupport` in `capabilities.ts`, re-declared here as plain fields so
|
|
46
|
+
* this module stays import-free of the Node-only capability cache.
|
|
47
|
+
*/
|
|
48
|
+
export interface ManagedCommentCapability {
|
|
49
|
+
/** The provider holds comments at all. */
|
|
50
|
+
native: boolean;
|
|
51
|
+
/** A posted comment can be edited in place. */
|
|
52
|
+
editable: boolean;
|
|
53
|
+
/** A posted comment can be deleted. */
|
|
54
|
+
deletable: boolean;
|
|
55
|
+
}
|
|
56
|
+
/** What the next push should do about the managed comment. */
|
|
57
|
+
export type ManagedCommentAction =
|
|
58
|
+
/** No entries to write and no comment exists — nothing to do. */
|
|
59
|
+
{
|
|
60
|
+
kind: 'none';
|
|
61
|
+
}
|
|
62
|
+
/** No comment yet: post a new one. */
|
|
63
|
+
| {
|
|
64
|
+
kind: 'post';
|
|
65
|
+
}
|
|
66
|
+
/** A comment exists and can be edited: edit it in place. */
|
|
67
|
+
| {
|
|
68
|
+
kind: 'edit';
|
|
69
|
+
commentId: string;
|
|
70
|
+
}
|
|
71
|
+
/** A comment exists, cannot be edited, but can be deleted: delete + repost. */
|
|
72
|
+
| {
|
|
73
|
+
kind: 'replace';
|
|
74
|
+
commentId: string;
|
|
75
|
+
}
|
|
76
|
+
/** Entries went away but the comment remains: delete it. */
|
|
77
|
+
| {
|
|
78
|
+
kind: 'remove';
|
|
79
|
+
commentId: string;
|
|
80
|
+
}
|
|
81
|
+
/** The carrier cannot satisfy the request — report the reason. */
|
|
82
|
+
| {
|
|
83
|
+
kind: 'unavailable';
|
|
84
|
+
reason: string;
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Decide what one push should do about a document's managed comment, from the
|
|
88
|
+
* recorded comment id, the comment capability, and whether there is anything
|
|
89
|
+
* to write.
|
|
90
|
+
*
|
|
91
|
+
* The rules, in order:
|
|
92
|
+
*
|
|
93
|
+
* - nothing to write, no comment → `none`;
|
|
94
|
+
* - nothing to write, a comment exists → `remove` (needs deletion);
|
|
95
|
+
* - something to write, no comment → `post` (needs comments at all);
|
|
96
|
+
* - something to write, a comment exists → `edit` when editable, else
|
|
97
|
+
* `replace` (delete + repost) when deletable, else `unavailable`.
|
|
98
|
+
*
|
|
99
|
+
* A `replace` must delete the old comment first — otherwise the remote accrues
|
|
100
|
+
* one stale comment per push. A platform that can neither edit nor delete
|
|
101
|
+
* comments can only ever post once, so a change after that is refused rather
|
|
102
|
+
* than silently dropped or duplicated.
|
|
103
|
+
*/
|
|
104
|
+
export declare function planManagedComment(capability: ManagedCommentCapability, existingId: string | undefined, hasEntries: boolean): ManagedCommentAction;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The managed comment — rung 5 of the degradation ladder (LP-278).
|
|
3
|
+
*
|
|
4
|
+
* When the remote body cannot carry the managed block — the remote declares
|
|
5
|
+
* `encoding: comment`, or a body write is refused at runtime — the *same block*
|
|
6
|
+
* is posted as a comment instead. The comment body **is** the managed block:
|
|
7
|
+
* the same delimiters, the same table, the same id links, so the pull parser
|
|
8
|
+
* (`parseManagedBlock` in `managed-block.ts`) recovers it without knowing
|
|
9
|
+
* whether it arrived in a body or a comment. The block codec stays
|
|
10
|
+
* carrier-agnostic; this module only adds the comment-shaped wrapper around it.
|
|
11
|
+
*
|
|
12
|
+
* Two facts are the whole of the design:
|
|
13
|
+
*
|
|
14
|
+
* 1. **The comment id lives in the link store** (`LinkEntry.managedCommentId`).
|
|
15
|
+
* Without it the next push cannot find the comment and posts a second one
|
|
16
|
+
* — the visible, annoying failure that makes people turn sync off. The
|
|
17
|
+
* strategy planner below turns the recorded id plus the comment capability
|
|
18
|
+
* into exactly one action: post, edit, replace, remove or refuse.
|
|
19
|
+
* 2. **A managed comment is our output, never a human's.** It is excluded
|
|
20
|
+
* from comment sync in both directions: the push never re-posts it as a
|
|
21
|
+
* user comment, and a pull never imports it as one. `isManagedCommentBody`
|
|
22
|
+
* is the shared test — by id where the link store knows it, by body where
|
|
23
|
+
* the id was lost.
|
|
24
|
+
*
|
|
25
|
+
* Pure: no disk, no network, no Node imports — the planners and the web bundle
|
|
26
|
+
* carry it, exactly like `managed-block.ts`.
|
|
27
|
+
*/
|
|
28
|
+
import { parseManagedBlock, renderManagedBlock, } from './managed-block.js';
|
|
29
|
+
// ---------------------------------------------------------------------------
|
|
30
|
+
// The comment body
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
/**
|
|
33
|
+
* Render the managed comment's body. It is the managed block itself — the
|
|
34
|
+
* delimiters are what let the next pull recognise and strip it, and they are
|
|
35
|
+
* what let `isManagedCommentBody` tell our comment from a human's.
|
|
36
|
+
*/
|
|
37
|
+
export function renderManagedComment(entries, links) {
|
|
38
|
+
return renderManagedBlock(entries, links);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* True when a comment body is a managed comment — one of our own block outputs
|
|
42
|
+
* rather than a human's prose. The test is the codec's own parse: both
|
|
43
|
+
* delimiters present, begin before end. Cheap enough for the pull's comment
|
|
44
|
+
* filter, and it degrades to `false` (treat as a human comment) when a human
|
|
45
|
+
* mangled the delimiters, so nothing of ours is ever mistaken for theirs.
|
|
46
|
+
*/
|
|
47
|
+
export function isManagedCommentBody(body) {
|
|
48
|
+
return parseManagedBlock(body).found;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Decide what one push should do about a document's managed comment, from the
|
|
52
|
+
* recorded comment id, the comment capability, and whether there is anything
|
|
53
|
+
* to write.
|
|
54
|
+
*
|
|
55
|
+
* The rules, in order:
|
|
56
|
+
*
|
|
57
|
+
* - nothing to write, no comment → `none`;
|
|
58
|
+
* - nothing to write, a comment exists → `remove` (needs deletion);
|
|
59
|
+
* - something to write, no comment → `post` (needs comments at all);
|
|
60
|
+
* - something to write, a comment exists → `edit` when editable, else
|
|
61
|
+
* `replace` (delete + repost) when deletable, else `unavailable`.
|
|
62
|
+
*
|
|
63
|
+
* A `replace` must delete the old comment first — otherwise the remote accrues
|
|
64
|
+
* one stale comment per push. A platform that can neither edit nor delete
|
|
65
|
+
* comments can only ever post once, so a change after that is refused rather
|
|
66
|
+
* than silently dropped or duplicated.
|
|
67
|
+
*/
|
|
68
|
+
export function planManagedComment(capability, existingId, hasEntries) {
|
|
69
|
+
if (!hasEntries) {
|
|
70
|
+
if (existingId === undefined)
|
|
71
|
+
return { kind: 'none' };
|
|
72
|
+
if (!capability.deletable) {
|
|
73
|
+
return { kind: 'unavailable', reason: 'the managed comment is empty and comments cannot be deleted' };
|
|
74
|
+
}
|
|
75
|
+
return { kind: 'remove', commentId: existingId };
|
|
76
|
+
}
|
|
77
|
+
if (existingId === undefined) {
|
|
78
|
+
if (!capability.native) {
|
|
79
|
+
return { kind: 'unavailable', reason: 'the remote holds no comments' };
|
|
80
|
+
}
|
|
81
|
+
return { kind: 'post' };
|
|
82
|
+
}
|
|
83
|
+
if (capability.editable)
|
|
84
|
+
return { kind: 'edit', commentId: existingId };
|
|
85
|
+
if (capability.deletable)
|
|
86
|
+
return { kind: 'replace', commentId: existingId };
|
|
87
|
+
return {
|
|
88
|
+
kind: 'unavailable',
|
|
89
|
+
reason: 'the managed comment exists but cannot be edited or deleted',
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=managed-comment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-comment.js","sourceRoot":"","sources":["../../src/remote/managed-comment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EACL,iBAAiB,EACjB,kBAAkB,GAGnB,MAAM,oBAAoB,CAAC;AAE5B,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAqC,EACrC,KAAyB;IAEzB,OAAO,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;AACvC,CAAC;AAmCD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAAoC,EACpC,UAA8B,EAC9B,UAAmB;IAEnB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,IAAI,UAAU,KAAK,SAAS;YAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACtD,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC1B,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,6DAA6D,EAAE,CAAC;QACxG,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;IACnD,CAAC;IAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,8BAA8B,EAAE,CAAC;QACzE,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;IACxE,IAAI,UAAU,CAAC,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;IAC5E,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,4DAA4D;KACrE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Board vocabulary ↔ remote vocabulary: the type mapping (LP-268).
|
|
3
|
+
*
|
|
4
|
+
* One slice of the mapping engine (LP-254): how a board's issue types become a
|
|
5
|
+
* remote's issue types — or labels, where the provider has no native types —
|
|
6
|
+
* and back again. The mapping is data: `mapping.types` in the remote's config
|
|
7
|
+
* block, a map from a board type name to its remote representation. This
|
|
8
|
+
* module only applies it.
|
|
9
|
+
*
|
|
10
|
+
* Depth is never declared here. `hierarchy` is the single source of parenting
|
|
11
|
+
* truth locally; every function takes the issue hierarchy (what
|
|
12
|
+
* `hierarchyFor(config, 'issue')` returns) and derives depth from it exactly as
|
|
13
|
+
* `typesAtDepth` does — a type is legal at the depth where the hierarchy lists
|
|
14
|
+
* it. A second depth declaration in the remote config is the bug this
|
|
15
|
+
* arrangement exists to prevent.
|
|
16
|
+
*
|
|
17
|
+
* Pure: no disk, no network. Everything takes its inputs and returns a value,
|
|
18
|
+
* so the mapping is testable against literals. The sibling mappings are the
|
|
19
|
+
* same shape — declarative, driven by config, applied here: status (below),
|
|
20
|
+
* attribute in `attributes.ts` (LP-270), resource in `accounts.ts` (LP-271),
|
|
21
|
+
* then period (LP-272).
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* One board type's remote representation, as declared under `mapping.types`.
|
|
25
|
+
*
|
|
26
|
+
* `remote` is **one** name — the remote issue type (Jira "Story", the
|
|
27
|
+
* jsonfile `type` field) or the label that marks it (GitHub, Linear). A board
|
|
28
|
+
* type and a remote type are one-to-one in both directions: a push has one
|
|
29
|
+
* name to write, and a pull reading that name knows which board type it is.
|
|
30
|
+
* Nothing here is a list, because nothing here is a choice.
|
|
31
|
+
*
|
|
32
|
+
* That is the one way it differs from `StatusMapping` below, and the
|
|
33
|
+
* difference is real rather than cosmetic: several *remote states* genuinely
|
|
34
|
+
* mean one board status ("Done", "Won't Fix" and "Duplicate" are all the
|
|
35
|
+
* board's `done`), so a status carries a list and a `push` that says which one
|
|
36
|
+
* to write back. No such case exists for types.
|
|
37
|
+
*
|
|
38
|
+
* **Which carrier the name lands in is the provider's business, not the
|
|
39
|
+
* mapping's.** A provider with native issue types (Jira, jsonfile) writes it
|
|
40
|
+
* into the native type field; one without (GitHub, Linear) writes it as a
|
|
41
|
+
* label. Declaring the carrier here as well was a redundancy: `{ type: Story,
|
|
42
|
+
* labels: [story] }` said the same thing twice, in two keys that could
|
|
43
|
+
* disagree, about a decision the provider had already made. It also means a
|
|
44
|
+
* mapping survives a repository that later turns native issue types on — the
|
|
45
|
+
* name is the same, only where it is written moves.
|
|
46
|
+
*
|
|
47
|
+
* The declaration may be written short (`user_story: Story`) or as the object
|
|
48
|
+
* form (`user_story: { remote: Story }`); `normalizeTypeMapping` expands the
|
|
49
|
+
* shorthand to the object form, which is the only form the engine reads.
|
|
50
|
+
*/
|
|
51
|
+
export interface TypeMapping {
|
|
52
|
+
/** The remote name that means this board type. Never empty. */
|
|
53
|
+
remote: string;
|
|
54
|
+
}
|
|
55
|
+
/** The `mapping.types` block: local type name → remote representation. */
|
|
56
|
+
export type TypeMappings = Record<string, TypeMapping>;
|
|
57
|
+
/**
|
|
58
|
+
* Normalize one `mapping.types` value to the object form. Accepts the bare
|
|
59
|
+
* string (`user_story: Story`) and the object form, and returns `undefined`
|
|
60
|
+
* when the value names nothing.
|
|
61
|
+
*
|
|
62
|
+
* Two **superseded** spellings are folded rather than refused, so a board
|
|
63
|
+
* written against an older shape keeps working and means what it meant:
|
|
64
|
+
* `{ type: Story, labels: [story] }` (the two carriers, before the provider
|
|
65
|
+
* was left to choose) and a list (`[Story, "User Story"]`, before types were
|
|
66
|
+
* one-to-one). Where a fold has to choose, the native `type` wins over a
|
|
67
|
+
* label and the first entry wins over the rest — the value that was actually
|
|
68
|
+
* being written before.
|
|
69
|
+
*/
|
|
70
|
+
export declare function normalizeTypeMapping(value: unknown): TypeMapping | undefined;
|
|
71
|
+
/**
|
|
72
|
+
* Normalize the whole `mapping.types` block, dropping entries that name no
|
|
73
|
+
* remote type. The provider schema rejects malformed values before this runs;
|
|
74
|
+
* this is the pure spelling of the same rule for callers that read a mapping
|
|
75
|
+
* without a schema in hand.
|
|
76
|
+
*/
|
|
77
|
+
export declare function normalizeTypeMappings(raw: Record<string, unknown>): TypeMappings;
|
|
78
|
+
/**
|
|
79
|
+
* The remote name a push writes for a board type. Returns `undefined` when
|
|
80
|
+
* the type has no usable mapping; a default remote type must never be
|
|
81
|
+
* invented, because filing everything as "Task" is precisely the silent data
|
|
82
|
+
* loss this refuses.
|
|
83
|
+
*/
|
|
84
|
+
export declare function mapTypeToRemote(mappings: TypeMappings, boardType: string): string | undefined;
|
|
85
|
+
/** Every remote name any mapped type claims, in declaration order. */
|
|
86
|
+
export declare function claimedTypeValues(mappings: TypeMappings): string[];
|
|
87
|
+
/**
|
|
88
|
+
* Board types (in hierarchy order) with no usable mapping — the list a
|
|
89
|
+
* preflight reports when it refuses to open the remote. A mapping entry that
|
|
90
|
+
* names no remote type counts as missing.
|
|
91
|
+
*/
|
|
92
|
+
export declare function missingTypeMappings(mappings: TypeMappings, hierarchy: string[][]): string[];
|
|
93
|
+
/** What the remote issue carries that a type could be recovered from. */
|
|
94
|
+
export interface RemoteTypeObservation {
|
|
95
|
+
/** The remote's native issue type, when the provider has types. */
|
|
96
|
+
remoteType?: string;
|
|
97
|
+
/** The remote issue's labels. */
|
|
98
|
+
labels: readonly string[];
|
|
99
|
+
}
|
|
100
|
+
/** Why `mapTypeFromRemote` could not produce a single board type. */
|
|
101
|
+
export type TypeResolutionFailure = 'unmapped' | 'depth' | 'ambiguous';
|
|
102
|
+
/**
|
|
103
|
+
* The result of resolving a remote issue back to a board type.
|
|
104
|
+
*
|
|
105
|
+
* `candidates` is every board type whose mapping matched the observation, in
|
|
106
|
+
* sorted order. When `type` is set the resolution succeeded; when it is
|
|
107
|
+
* `undefined`, `unresolved` says why:
|
|
108
|
+
*
|
|
109
|
+
* - `unmapped` — no board type's mapping matched the observation (candidates
|
|
110
|
+
* is empty).
|
|
111
|
+
* - `depth` — candidates matched, but none is legal at the document's
|
|
112
|
+
* depth (the remote reparented it somewhere the local
|
|
113
|
+
* hierarchy forbids).
|
|
114
|
+
* - `ambiguous` — more than one candidate is legal at the depth, and the
|
|
115
|
+
* managed block's recorded type did not (or could not) break
|
|
116
|
+
* the tie. The depth-legal contenders are `candidates`
|
|
117
|
+
* filtered by `hierarchy[depth]`.
|
|
118
|
+
*/
|
|
119
|
+
export interface BoardTypeResolution {
|
|
120
|
+
type: string | undefined;
|
|
121
|
+
candidates: string[];
|
|
122
|
+
unresolved: TypeResolutionFailure | undefined;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Resolve a remote issue's type back to a board type. When the observation
|
|
126
|
+
* matches several board types the resolution disambiguates **by depth first** —
|
|
127
|
+
* the type must be legal at the document's depth — **then by the managed
|
|
128
|
+
* block's recorded type**, the tiebreaker for two types that share a depth.
|
|
129
|
+
*
|
|
130
|
+
* `recordedType` is the `type` value the managed block wrote when this issue
|
|
131
|
+
* was pushed; it is consulted only within the depth-narrowed set, so it can
|
|
132
|
+
* break a tie but never override the hierarchy.
|
|
133
|
+
*/
|
|
134
|
+
export declare function mapTypeFromRemote(mappings: TypeMappings, hierarchy: string[][], observation: RemoteTypeObservation, opts: {
|
|
135
|
+
depth: number;
|
|
136
|
+
recordedType?: string;
|
|
137
|
+
}): BoardTypeResolution;
|
|
138
|
+
/**
|
|
139
|
+
* Every board type whose mapping claims this observation, sorted — the shared
|
|
140
|
+
* answer to "what type is this remote issue?" before depth and the managed
|
|
141
|
+
* block get a say. Each provider's translator reads it rather than filtering
|
|
142
|
+
* `mapping.types` itself, so the four of them cannot drift apart on what
|
|
143
|
+
* counts as a match.
|
|
144
|
+
*/
|
|
145
|
+
export declare function boardTypesMatching(mappings: TypeMappings, observation: RemoteTypeObservation): string[];
|
|
146
|
+
/** One hierarchy level the remote cannot hold natively. */
|
|
147
|
+
export interface DegradedLevel {
|
|
148
|
+
/** Folder depth of this level, matching `hierarchy`'s index. */
|
|
149
|
+
depth: number;
|
|
150
|
+
/** Type names that live at this level. */
|
|
151
|
+
types: string[];
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* The hierarchy levels beyond the remote's native depth — the levels whose
|
|
155
|
+
* parenting must be carried by the degradation ladder rather than a native
|
|
156
|
+
* parent field. Their *types* still map normally; it is the nesting that
|
|
157
|
+
* degrades.
|
|
158
|
+
*
|
|
159
|
+
* `nativeDepth` is the number of levels the remote can nest, counting the root
|
|
160
|
+
* as level 1: a tracker with no hierarchy is 1, one with a single level of
|
|
161
|
+
* sub-issues (GitHub) is 2, and so on. Levels at index `nativeDepth` and
|
|
162
|
+
* beyond are degraded.
|
|
163
|
+
*/
|
|
164
|
+
export declare function degradedHierarchyLevels(hierarchy: string[][], nativeDepth: number): DegradedLevel[];
|
|
165
|
+
/**
|
|
166
|
+
* One board status's remote representation, as declared under `mapping.statuses`.
|
|
167
|
+
*
|
|
168
|
+
* `remote` lists every remote state that means this board status — GitHub
|
|
169
|
+
* labels, Jira workflow statuses, Linear states. A push writes exactly one of
|
|
170
|
+
* them: `push` when it names one, otherwise the first. `closed` records
|
|
171
|
+
* whether this status closes the remote issue; it must agree with the board
|
|
172
|
+
* status's `terminal` flag, and a disagreement is a warning.
|
|
173
|
+
*
|
|
174
|
+
* The declaration may be written short — `done: Done`, or
|
|
175
|
+
* `done: [Done, "Won't Fix", Duplicate]` — and `normalizeStatusMapping` expands
|
|
176
|
+
* the shorthand to this object form, which is the only form the engine reads.
|
|
177
|
+
*/
|
|
178
|
+
export interface StatusMapping {
|
|
179
|
+
/** Every remote state that means this board status. Never empty. */
|
|
180
|
+
remote: string[];
|
|
181
|
+
/** Which remote state a push writes. Defaults to `remote[0]`. */
|
|
182
|
+
push?: string;
|
|
183
|
+
/** Whether this status closes the remote issue. */
|
|
184
|
+
closed?: boolean;
|
|
185
|
+
}
|
|
186
|
+
/** The `mapping.statuses` block: local status id → remote representation. */
|
|
187
|
+
export type StatusMappings = Record<string, StatusMapping>;
|
|
188
|
+
/**
|
|
189
|
+
* Normalize one `mapping.statuses` value to the object form. Accepts the
|
|
190
|
+
* three spellings — a single remote state (`done: Done`), a list
|
|
191
|
+
* (`done: [Done, "Won't Fix"]`), or the full object — and returns `undefined`
|
|
192
|
+
* when the value carries no usable remote state.
|
|
193
|
+
*/
|
|
194
|
+
export declare function normalizeStatusMapping(value: unknown): StatusMapping | undefined;
|
|
195
|
+
/**
|
|
196
|
+
* Normalize the whole `mapping.statuses` block, dropping entries that carry no
|
|
197
|
+
* usable remote state. The provider schema rejects malformed values before
|
|
198
|
+
* this runs; this is the pure spelling of the same rule for callers that read
|
|
199
|
+
* a mapping without a schema in hand.
|
|
200
|
+
*/
|
|
201
|
+
export declare function normalizeStatusMappings(raw: Record<string, unknown>): StatusMappings;
|
|
202
|
+
/**
|
|
203
|
+
* One entry's `remote` states, read defensively. Normalized entries always
|
|
204
|
+
* carry a list; a hand-built one that skipped the schema may carry the bare
|
|
205
|
+
* string the config also accepts (`done: { remote: Done }`), and that must
|
|
206
|
+
* read as one state — never as a string being indexed into, which would hand
|
|
207
|
+
* a push the single character `D`.
|
|
208
|
+
*/
|
|
209
|
+
export declare function statusStatesOf(entry: StatusMapping | undefined): string[];
|
|
210
|
+
/**
|
|
211
|
+
* The remote state a push writes for a board status — `push` when declared,
|
|
212
|
+
* otherwise the first `remote` state. Returns `undefined` when the status has
|
|
213
|
+
* no usable mapping; a default remote state must never be invented.
|
|
214
|
+
*/
|
|
215
|
+
export declare function mapStatusToRemote(mappings: StatusMappings, boardStatus: string): string | undefined;
|
|
216
|
+
/**
|
|
217
|
+
* Whether a board status closes the remote issue, per the mapping: `true` when
|
|
218
|
+
* the entry says `closed: true`, `false` when it says `closed: false`, and
|
|
219
|
+
* `undefined` when the status is unmapped or the entry does not say — absent
|
|
220
|
+
* means "not declared", never "assume it matches `terminal`".
|
|
221
|
+
*/
|
|
222
|
+
export declare function isClosedRemote(mappings: StatusMappings, boardStatus: string): boolean | undefined;
|
|
223
|
+
/**
|
|
224
|
+
* Board statuses with no usable mapping — the list a preflight reports when it
|
|
225
|
+
* refuses to open the remote. A status with no key, or whose entry normalised
|
|
226
|
+
* away to nothing, counts as missing.
|
|
227
|
+
*/
|
|
228
|
+
export declare function missingStatusMappings(mappings: StatusMappings, boardStatusIds: readonly string[]): string[];
|
|
229
|
+
/** Why `mapStatusFromRemote` could not produce a single board status. */
|
|
230
|
+
export type StatusResolutionFailure = 'unmapped' | 'ambiguous';
|
|
231
|
+
/**
|
|
232
|
+
* The result of resolving observed remote states back to a board status.
|
|
233
|
+
*
|
|
234
|
+
* `candidates` is every board status whose `remote` list includes one of the
|
|
235
|
+
* observed states, in sorted order. When `status` is set the resolution
|
|
236
|
+
* succeeded; when it is `undefined`, `unresolved` says why:
|
|
237
|
+
*
|
|
238
|
+
* - `unmapped` — no board status claims any observed state;
|
|
239
|
+
* - `ambiguous` — several board statuses each claim one observed state (the
|
|
240
|
+
* issue carries both "Done" and "In Progress", say).
|
|
241
|
+
*/
|
|
242
|
+
export interface BoardStatusResolution {
|
|
243
|
+
status: string | undefined;
|
|
244
|
+
candidates: string[];
|
|
245
|
+
unresolved: StatusResolutionFailure | undefined;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Resolve observed remote states back to a single board status. A board
|
|
249
|
+
* status claims the issue when one of its `remote` states is observed; a
|
|
250
|
+
* status mapping is expected to be many-remote-states-to-one-status, so a
|
|
251
|
+
* single observed state can never be ambiguous on its own — only several
|
|
252
|
+
* observed states that claim *different* board statuses are.
|
|
253
|
+
*/
|
|
254
|
+
export declare function mapStatusFromRemote(mappings: StatusMappings, observed: readonly string[]): BoardStatusResolution;
|
|
255
|
+
/**
|
|
256
|
+
* Remote states with no board counterpart — the reverse-direction totality
|
|
257
|
+
* the preflight reports before anything is written. `observedRemoteStates` is
|
|
258
|
+
* the full set of states the remote actually carries (from a live listing),
|
|
259
|
+
* not the labels on one issue.
|
|
260
|
+
*/
|
|
261
|
+
export declare function unmappedRemoteStates(mappings: StatusMappings, observedRemoteStates: readonly string[]): string[];
|
|
262
|
+
/**
|
|
263
|
+
* Where a board status's `terminal` flag and the mapping's `closed` flag
|
|
264
|
+
* disagree. They must agree, or a push would close a non-end column (or leave
|
|
265
|
+
* an end column open) — and a pull could not recover either faithfully.
|
|
266
|
+
*/
|
|
267
|
+
export interface StatusClosednessMismatch {
|
|
268
|
+
status: string;
|
|
269
|
+
/** The board's `terminal` flag. */
|
|
270
|
+
terminal: boolean;
|
|
271
|
+
/** The mapping's `closed` flag (false when absent). */
|
|
272
|
+
closed: boolean;
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Board statuses whose `terminal` flag disagrees with the mapping's `closed`
|
|
276
|
+
* flag, in both directions: terminal-but-not-closed, and closed-but-not-
|
|
277
|
+
* terminal. `statuses` is the board's status list (`BoardConfig.statuses`).
|
|
278
|
+
*/
|
|
279
|
+
export declare function statusClosednessMismatches(mappings: StatusMappings, statuses: readonly {
|
|
280
|
+
id: string;
|
|
281
|
+
terminal?: boolean;
|
|
282
|
+
}[]): StatusClosednessMismatch[];
|