monday-cli 0.2.0 → 0.4.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/CHANGELOG.md +675 -2
- package/README.md +223 -31
- package/dist/api/assets.d.ts +326 -0
- package/dist/api/assets.d.ts.map +1 -0
- package/dist/api/assets.js +519 -0
- package/dist/api/assets.js.map +1 -0
- package/dist/api/board-favorites.d.ts +329 -0
- package/dist/api/board-favorites.d.ts.map +1 -0
- package/dist/api/board-favorites.js +353 -0
- package/dist/api/board-favorites.js.map +1 -0
- package/dist/api/board-mutation-result.d.ts +9 -5
- package/dist/api/board-mutation-result.d.ts.map +1 -1
- package/dist/api/board-mutation-result.js +9 -5
- package/dist/api/board-mutation-result.js.map +1 -1
- package/dist/api/board-relation-validation.d.ts +161 -0
- package/dist/api/board-relation-validation.d.ts.map +1 -0
- package/dist/api/board-relation-validation.js +317 -0
- package/dist/api/board-relation-validation.js.map +1 -0
- package/dist/api/cache.d.ts +14 -5
- package/dist/api/cache.d.ts.map +1 -1
- package/dist/api/cache.js +8 -10
- package/dist/api/cache.js.map +1 -1
- package/dist/api/column-mapping.js +2 -2
- package/dist/api/column-mapping.js.map +1 -1
- package/dist/api/column-mutation-result.d.ts +9 -5
- package/dist/api/column-mutation-result.d.ts.map +1 -1
- package/dist/api/column-mutation-result.js +9 -5
- package/dist/api/column-mutation-result.js.map +1 -1
- package/dist/api/column-types.d.ts +37 -14
- package/dist/api/column-types.d.ts.map +1 -1
- package/dist/api/column-types.js +47 -6
- package/dist/api/column-types.js.map +1 -1
- package/dist/api/column-values.d.ts +234 -31
- package/dist/api/column-values.d.ts.map +1 -1
- package/dist/api/column-values.js +560 -124
- package/dist/api/column-values.js.map +1 -1
- package/dist/api/cross-board-search.d.ts +501 -0
- package/dist/api/cross-board-search.d.ts.map +1 -0
- package/dist/api/cross-board-search.js +547 -0
- package/dist/api/cross-board-search.js.map +1 -0
- package/dist/api/dev-conventions.d.ts +1038 -0
- package/dist/api/dev-conventions.d.ts.map +1 -0
- package/dist/api/dev-conventions.js +1556 -0
- package/dist/api/dev-conventions.js.map +1 -0
- package/dist/api/documents.d.ts +519 -0
- package/dist/api/documents.d.ts.map +1 -0
- package/dist/api/documents.js +586 -0
- package/dist/api/documents.js.map +1 -0
- package/dist/api/dry-run.d.ts +32 -5
- package/dist/api/dry-run.d.ts.map +1 -1
- package/dist/api/dry-run.js +149 -32
- package/dist/api/dry-run.js.map +1 -1
- package/dist/api/errors.d.ts.map +1 -1
- package/dist/api/errors.js +28 -7
- package/dist/api/errors.js.map +1 -1
- package/dist/api/group-mutation-result.d.ts +9 -5
- package/dist/api/group-mutation-result.d.ts.map +1 -1
- package/dist/api/group-mutation-result.js +9 -5
- package/dist/api/group-mutation-result.js.map +1 -1
- package/dist/api/item-history-projection.d.ts +919 -0
- package/dist/api/item-history-projection.d.ts.map +1 -0
- package/dist/api/item-history-projection.js +1104 -0
- package/dist/api/item-history-projection.js.map +1 -0
- package/dist/api/item-mutation-execute.d.ts +82 -0
- package/dist/api/item-mutation-execute.d.ts.map +1 -0
- package/dist/api/item-mutation-execute.js +199 -0
- package/dist/api/item-mutation-execute.js.map +1 -0
- package/dist/api/item-watch.d.ts +263 -0
- package/dist/api/item-watch.d.ts.map +1 -0
- package/dist/api/item-watch.js +709 -0
- package/dist/api/item-watch.js.map +1 -0
- package/dist/api/multipart-transport.d.ts +223 -0
- package/dist/api/multipart-transport.d.ts.map +1 -0
- package/dist/api/multipart-transport.js +274 -0
- package/dist/api/multipart-transport.js.map +1 -0
- package/dist/api/notifications.d.ts +156 -0
- package/dist/api/notifications.d.ts.map +1 -0
- package/dist/api/notifications.js +215 -0
- package/dist/api/notifications.js.map +1 -0
- package/dist/api/oauth-test-helper.d.ts +64 -0
- package/dist/api/oauth-test-helper.d.ts.map +1 -0
- package/dist/api/oauth-test-helper.js +179 -0
- package/dist/api/oauth-test-helper.js.map +1 -0
- package/dist/api/oauth.d.ts +198 -0
- package/dist/api/oauth.d.ts.map +1 -0
- package/dist/api/oauth.js +471 -0
- package/dist/api/oauth.js.map +1 -0
- package/dist/api/parallel-dispatch.d.ts +155 -0
- package/dist/api/parallel-dispatch.d.ts.map +1 -0
- package/dist/api/parallel-dispatch.js +243 -0
- package/dist/api/parallel-dispatch.js.map +1 -0
- package/dist/api/partial-success-bulk.d.ts +480 -0
- package/dist/api/partial-success-bulk.d.ts.map +1 -0
- package/dist/api/partial-success-bulk.js +436 -0
- package/dist/api/partial-success-bulk.js.map +1 -0
- package/dist/api/partial-success-mutation.d.ts +13 -1
- package/dist/api/partial-success-mutation.d.ts.map +1 -1
- package/dist/api/partial-success-mutation.js +5 -1
- package/dist/api/partial-success-mutation.js.map +1 -1
- package/dist/api/people.d.ts +54 -1
- package/dist/api/people.d.ts.map +1 -1
- package/dist/api/people.js +27 -3
- package/dist/api/people.js.map +1 -1
- package/dist/api/probes.d.ts +487 -0
- package/dist/api/probes.d.ts.map +1 -0
- package/dist/api/probes.js +881 -0
- package/dist/api/probes.js.map +1 -0
- package/dist/api/raw-document.d.ts.map +1 -1
- package/dist/api/raw-document.js +2 -2
- package/dist/api/raw-document.js.map +1 -1
- package/dist/api/raw-write.d.ts +12 -4
- package/dist/api/raw-write.d.ts.map +1 -1
- package/dist/api/raw-write.js +32 -14
- package/dist/api/raw-write.js.map +1 -1
- package/dist/api/resolution-context.d.ts +23 -11
- package/dist/api/resolution-context.d.ts.map +1 -1
- package/dist/api/resolution-context.js +53 -12
- package/dist/api/resolution-context.js.map +1 -1
- package/dist/api/resolution-pass.d.ts +30 -1
- package/dist/api/resolution-pass.d.ts.map +1 -1
- package/dist/api/resolution-pass.js +36 -1
- package/dist/api/resolution-pass.js.map +1 -1
- package/dist/api/resolve-client.d.ts +22 -0
- package/dist/api/resolve-client.d.ts.map +1 -1
- package/dist/api/resolve-client.js +9 -1
- package/dist/api/resolve-client.js.map +1 -1
- package/dist/api/response-root.d.ts +92 -46
- package/dist/api/response-root.d.ts.map +1 -1
- package/dist/api/response-root.js +93 -41
- package/dist/api/response-root.js.map +1 -1
- package/dist/api/tag-directory.d.ts +154 -0
- package/dist/api/tag-directory.d.ts.map +1 -0
- package/dist/api/tag-directory.js +325 -0
- package/dist/api/tag-directory.js.map +1 -0
- package/dist/api/time-tracking.d.ts +165 -0
- package/dist/api/time-tracking.d.ts.map +1 -0
- package/dist/api/time-tracking.js +135 -0
- package/dist/api/time-tracking.js.map +1 -0
- package/dist/api/transport.js +3 -3
- package/dist/api/transport.js.map +1 -1
- package/dist/api/usage.d.ts +190 -0
- package/dist/api/usage.d.ts.map +1 -0
- package/dist/api/usage.js +194 -0
- package/dist/api/usage.js.map +1 -0
- package/dist/api/users-fan-out-mutation.d.ts.map +1 -1
- package/dist/api/users-fan-out-mutation.js +10 -5
- package/dist/api/users-fan-out-mutation.js.map +1 -1
- package/dist/api/webhooks.d.ts +357 -0
- package/dist/api/webhooks.d.ts.map +1 -0
- package/dist/api/webhooks.js +333 -0
- package/dist/api/webhooks.js.map +1 -0
- package/dist/cli/envelope-out.d.ts +18 -1
- package/dist/cli/envelope-out.d.ts.map +1 -1
- package/dist/cli/envelope-out.js +16 -2
- package/dist/cli/envelope-out.js.map +1 -1
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +120 -1
- package/dist/cli/program.js.map +1 -1
- package/dist/cli/run.d.ts +32 -0
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +3 -0
- package/dist/cli/run.js.map +1 -1
- package/dist/commands/account/tags.d.ts +37 -0
- package/dist/commands/account/tags.d.ts.map +1 -0
- package/dist/commands/account/tags.js +84 -0
- package/dist/commands/account/tags.js.map +1 -0
- package/dist/commands/auth/login.d.ts +14 -0
- package/dist/commands/auth/login.d.ts.map +1 -0
- package/dist/commands/auth/login.js +314 -0
- package/dist/commands/auth/login.js.map +1 -0
- package/dist/commands/auth/logout.d.ts +28 -0
- package/dist/commands/auth/logout.d.ts.map +1 -0
- package/dist/commands/auth/logout.js +94 -0
- package/dist/commands/auth/logout.js.map +1 -0
- package/dist/commands/board/archive.d.ts.map +1 -1
- package/dist/commands/board/archive.js +14 -14
- package/dist/commands/board/archive.js.map +1 -1
- package/dist/commands/board/column-create.d.ts +9 -8
- package/dist/commands/board/column-create.d.ts.map +1 -1
- package/dist/commands/board/column-create.js +61 -51
- package/dist/commands/board/column-create.js.map +1 -1
- package/dist/commands/board/column-delete.d.ts.map +1 -1
- package/dist/commands/board/column-delete.js +15 -16
- package/dist/commands/board/column-delete.js.map +1 -1
- package/dist/commands/board/column-update.d.ts.map +1 -1
- package/dist/commands/board/column-update.js +23 -22
- package/dist/commands/board/column-update.js.map +1 -1
- package/dist/commands/board/create.d.ts.map +1 -1
- package/dist/commands/board/create.js +14 -17
- package/dist/commands/board/create.js.map +1 -1
- package/dist/commands/board/delete.d.ts.map +1 -1
- package/dist/commands/board/delete.js +12 -15
- package/dist/commands/board/delete.js.map +1 -1
- package/dist/commands/board/describe.d.ts.map +1 -1
- package/dist/commands/board/describe.js +30 -0
- package/dist/commands/board/describe.js.map +1 -1
- package/dist/commands/board/duplicate.d.ts.map +1 -1
- package/dist/commands/board/duplicate.js +12 -13
- package/dist/commands/board/duplicate.js.map +1 -1
- package/dist/commands/board/favorites.d.ts +33 -0
- package/dist/commands/board/favorites.d.ts.map +1 -0
- package/dist/commands/board/favorites.js +74 -0
- package/dist/commands/board/favorites.js.map +1 -0
- package/dist/commands/board/find.d.ts +1 -1
- package/dist/commands/board/group-archive.d.ts.map +1 -1
- package/dist/commands/board/group-archive.js +12 -16
- package/dist/commands/board/group-archive.js.map +1 -1
- package/dist/commands/board/group-create.d.ts.map +1 -1
- package/dist/commands/board/group-create.js +9 -19
- package/dist/commands/board/group-create.js.map +1 -1
- package/dist/commands/board/group-delete.d.ts.map +1 -1
- package/dist/commands/board/group-delete.js +12 -16
- package/dist/commands/board/group-delete.js.map +1 -1
- package/dist/commands/board/group-duplicate.d.ts.map +1 -1
- package/dist/commands/board/group-duplicate.js +12 -16
- package/dist/commands/board/group-duplicate.js.map +1 -1
- package/dist/commands/board/group-update.d.ts.map +1 -1
- package/dist/commands/board/group-update.js +12 -11
- package/dist/commands/board/group-update.js.map +1 -1
- package/dist/commands/board/list.d.ts +1 -1
- package/dist/commands/board/update.d.ts.map +1 -1
- package/dist/commands/board/update.js +16 -11
- package/dist/commands/board/update.js.map +1 -1
- package/dist/commands/cache/list.d.ts +2 -0
- package/dist/commands/cache/list.d.ts.map +1 -1
- package/dist/commands/cache/list.js +2 -2
- package/dist/commands/cache/list.js.map +1 -1
- package/dist/commands/completion.d.ts +188 -0
- package/dist/commands/completion.d.ts.map +1 -0
- package/dist/commands/completion.js +418 -0
- package/dist/commands/completion.js.map +1 -0
- package/dist/commands/dev/_shared.d.ts +40 -0
- package/dist/commands/dev/_shared.d.ts.map +1 -0
- package/dist/commands/dev/_shared.js +104 -0
- package/dist/commands/dev/_shared.js.map +1 -0
- package/dist/commands/dev/configure.d.ts +36 -0
- package/dist/commands/dev/configure.d.ts.map +1 -0
- package/dist/commands/dev/configure.js +145 -0
- package/dist/commands/dev/configure.js.map +1 -0
- package/dist/commands/dev/discover.d.ts +34 -0
- package/dist/commands/dev/discover.d.ts.map +1 -0
- package/dist/commands/dev/discover.js +117 -0
- package/dist/commands/dev/discover.js.map +1 -0
- package/dist/commands/dev/doctor.d.ts +39 -0
- package/dist/commands/dev/doctor.d.ts.map +1 -0
- package/dist/commands/dev/doctor.js +91 -0
- package/dist/commands/dev/doctor.js.map +1 -0
- package/dist/commands/dev/epic/items.d.ts +24 -0
- package/dist/commands/dev/epic/items.d.ts.map +1 -0
- package/dist/commands/dev/epic/items.js +103 -0
- package/dist/commands/dev/epic/items.js.map +1 -0
- package/dist/commands/dev/epic/list.d.ts +36 -0
- package/dist/commands/dev/epic/list.d.ts.map +1 -0
- package/dist/commands/dev/epic/list.js +120 -0
- package/dist/commands/dev/epic/list.js.map +1 -0
- package/dist/commands/dev/release/list.d.ts +21 -0
- package/dist/commands/dev/release/list.d.ts.map +1 -0
- package/dist/commands/dev/release/list.js +73 -0
- package/dist/commands/dev/release/list.js.map +1 -0
- package/dist/commands/dev/sprint/current.d.ts +24 -0
- package/dist/commands/dev/sprint/current.d.ts.map +1 -0
- package/dist/commands/dev/sprint/current.js +90 -0
- package/dist/commands/dev/sprint/current.js.map +1 -0
- package/dist/commands/dev/sprint/items.d.ts +34 -0
- package/dist/commands/dev/sprint/items.d.ts.map +1 -0
- package/dist/commands/dev/sprint/items.js +118 -0
- package/dist/commands/dev/sprint/items.js.map +1 -0
- package/dist/commands/dev/sprint/list.d.ts +41 -0
- package/dist/commands/dev/sprint/list.d.ts.map +1 -0
- package/dist/commands/dev/sprint/list.js +104 -0
- package/dist/commands/dev/sprint/list.js.map +1 -0
- package/dist/commands/dev/task/block.d.ts +29 -0
- package/dist/commands/dev/task/block.d.ts.map +1 -0
- package/dist/commands/dev/task/block.js +106 -0
- package/dist/commands/dev/task/block.js.map +1 -0
- package/dist/commands/dev/task/done.d.ts +30 -0
- package/dist/commands/dev/task/done.d.ts.map +1 -0
- package/dist/commands/dev/task/done.js +113 -0
- package/dist/commands/dev/task/done.js.map +1 -0
- package/dist/commands/dev/task/list.d.ts +42 -0
- package/dist/commands/dev/task/list.d.ts.map +1 -0
- package/dist/commands/dev/task/list.js +227 -0
- package/dist/commands/dev/task/list.js.map +1 -0
- package/dist/commands/dev/task/start.d.ts +29 -0
- package/dist/commands/dev/task/start.d.ts.map +1 -0
- package/dist/commands/dev/task/start.js +90 -0
- package/dist/commands/dev/task/start.js.map +1 -0
- package/dist/commands/doc/get.d.ts +46 -0
- package/dist/commands/doc/get.d.ts.map +1 -0
- package/dist/commands/doc/get.js +95 -0
- package/dist/commands/doc/get.js.map +1 -0
- package/dist/commands/doc/list.d.ts +83 -0
- package/dist/commands/doc/list.d.ts.map +1 -0
- package/dist/commands/doc/list.js +248 -0
- package/dist/commands/doc/list.js.map +1 -0
- package/dist/commands/emit.d.ts.map +1 -1
- package/dist/commands/emit.js +5 -3
- package/dist/commands/emit.js.map +1 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +141 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/item/archive.d.ts.map +1 -1
- package/dist/commands/item/archive.js +11 -0
- package/dist/commands/item/archive.js.map +1 -1
- package/dist/commands/item/clear.d.ts.map +1 -1
- package/dist/commands/item/clear.js +15 -0
- package/dist/commands/item/clear.js.map +1 -1
- package/dist/commands/item/create.d.ts.map +1 -1
- package/dist/commands/item/create.js +41 -8
- package/dist/commands/item/create.js.map +1 -1
- package/dist/commands/item/delete.d.ts.map +1 -1
- package/dist/commands/item/delete.js +11 -0
- package/dist/commands/item/delete.js.map +1 -1
- package/dist/commands/item/duplicate.d.ts.map +1 -1
- package/dist/commands/item/duplicate.js +12 -0
- package/dist/commands/item/duplicate.js.map +1 -1
- package/dist/commands/item/history.d.ts +60 -0
- package/dist/commands/item/history.d.ts.map +1 -0
- package/dist/commands/item/history.js +309 -0
- package/dist/commands/item/history.js.map +1 -0
- package/dist/commands/item/list.d.ts.map +1 -1
- package/dist/commands/item/list.js +16 -13
- package/dist/commands/item/list.js.map +1 -1
- package/dist/commands/item/move.d.ts.map +1 -1
- package/dist/commands/item/move.js +41 -7
- package/dist/commands/item/move.js.map +1 -1
- package/dist/commands/item/search.d.ts +99 -15
- package/dist/commands/item/search.d.ts.map +1 -1
- package/dist/commands/item/search.js +480 -36
- package/dist/commands/item/search.js.map +1 -1
- package/dist/commands/item/set.d.ts.map +1 -1
- package/dist/commands/item/set.js +52 -8
- package/dist/commands/item/set.js.map +1 -1
- package/dist/commands/item/time-track/start.d.ts +61 -0
- package/dist/commands/item/time-track/start.d.ts.map +1 -0
- package/dist/commands/item/time-track/start.js +138 -0
- package/dist/commands/item/time-track/start.js.map +1 -0
- package/dist/commands/item/time-track/stop.d.ts +32 -0
- package/dist/commands/item/time-track/stop.d.ts.map +1 -0
- package/dist/commands/item/time-track/stop.js +97 -0
- package/dist/commands/item/time-track/stop.js.map +1 -0
- package/dist/commands/item/update.d.ts +2 -0
- package/dist/commands/item/update.d.ts.map +1 -1
- package/dist/commands/item/update.js +164 -113
- package/dist/commands/item/update.js.map +1 -1
- package/dist/commands/item/upload.d.ts +108 -0
- package/dist/commands/item/upload.d.ts.map +1 -0
- package/dist/commands/item/upload.js +370 -0
- package/dist/commands/item/upload.js.map +1 -0
- package/dist/commands/item/upsert.d.ts.map +1 -1
- package/dist/commands/item/upsert.js +48 -1
- package/dist/commands/item/upsert.js.map +1 -1
- package/dist/commands/item/watch.d.ts +90 -0
- package/dist/commands/item/watch.d.ts.map +1 -0
- package/dist/commands/item/watch.js +342 -0
- package/dist/commands/item/watch.js.map +1 -0
- package/dist/commands/notification/send.d.ts +60 -0
- package/dist/commands/notification/send.d.ts.map +1 -0
- package/dist/commands/notification/send.js +147 -0
- package/dist/commands/notification/send.js.map +1 -0
- package/dist/commands/parse-argv.d.ts.map +1 -1
- package/dist/commands/parse-argv.js +14 -4
- package/dist/commands/parse-argv.js.map +1 -1
- package/dist/commands/raw/index.d.ts.map +1 -1
- package/dist/commands/raw/index.js +13 -15
- package/dist/commands/raw/index.js.map +1 -1
- package/dist/commands/run-by-id-lookup.d.ts.map +1 -1
- package/dist/commands/run-by-id-lookup.js +2 -2
- package/dist/commands/run-by-id-lookup.js.map +1 -1
- package/dist/commands/schema/index.d.ts +2 -0
- package/dist/commands/schema/index.d.ts.map +1 -1
- package/dist/commands/status.d.ts +120 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +365 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/update/body-source.d.ts.map +1 -1
- package/dist/commands/update/body-source.js +2 -2
- package/dist/commands/update/body-source.js.map +1 -1
- package/dist/commands/update/create.d.ts +2 -3
- package/dist/commands/update/create.d.ts.map +1 -1
- package/dist/commands/update/create.js +15 -3
- package/dist/commands/update/create.js.map +1 -1
- package/dist/commands/update/delete.d.ts.map +1 -1
- package/dist/commands/update/delete.js +11 -0
- package/dist/commands/update/delete.js.map +1 -1
- package/dist/commands/update/edit.d.ts.map +1 -1
- package/dist/commands/update/edit.js +11 -0
- package/dist/commands/update/edit.js.map +1 -1
- package/dist/commands/update/list.d.ts.map +1 -1
- package/dist/commands/update/list.js +15 -12
- package/dist/commands/update/list.js.map +1 -1
- package/dist/commands/update/reply.d.ts.map +1 -1
- package/dist/commands/update/reply.js +11 -0
- package/dist/commands/update/reply.js.map +1 -1
- package/dist/commands/update/toggle.d.ts.map +1 -1
- package/dist/commands/update/toggle.js +13 -0
- package/dist/commands/update/toggle.js.map +1 -1
- package/dist/commands/update/upload.d.ts +69 -0
- package/dist/commands/update/upload.d.ts.map +1 -0
- package/dist/commands/update/upload.js +235 -0
- package/dist/commands/update/upload.js.map +1 -0
- package/dist/commands/usage.d.ts +58 -0
- package/dist/commands/usage.d.ts.map +1 -0
- package/dist/commands/usage.js +94 -0
- package/dist/commands/usage.js.map +1 -0
- package/dist/commands/webhook/create.d.ts +74 -0
- package/dist/commands/webhook/create.d.ts.map +1 -0
- package/dist/commands/webhook/create.js +150 -0
- package/dist/commands/webhook/create.js.map +1 -0
- package/dist/commands/webhook/delete.d.ts +46 -0
- package/dist/commands/webhook/delete.d.ts.map +1 -0
- package/dist/commands/webhook/delete.js +141 -0
- package/dist/commands/webhook/delete.js.map +1 -0
- package/dist/commands/webhook/list.d.ts +23 -0
- package/dist/commands/webhook/list.d.ts.map +1 -0
- package/dist/commands/webhook/list.js +68 -0
- package/dist/commands/webhook/list.js.map +1 -0
- package/dist/commands/workspace/create.d.ts.map +1 -1
- package/dist/commands/workspace/create.js +16 -0
- package/dist/commands/workspace/create.js.map +1 -1
- package/dist/commands/workspace/delete.d.ts.map +1 -1
- package/dist/commands/workspace/delete.js +13 -13
- package/dist/commands/workspace/delete.js.map +1 -1
- package/dist/commands/workspace/list.d.ts +1 -1
- package/dist/commands/workspace/update.d.ts.map +1 -1
- package/dist/commands/workspace/update.js +15 -15
- package/dist/commands/workspace/update.js.map +1 -1
- package/dist/config/credentials.d.ts +189 -0
- package/dist/config/credentials.d.ts.map +1 -0
- package/dist/config/credentials.js +300 -0
- package/dist/config/credentials.js.map +1 -0
- package/dist/config/profiles.d.ts +125 -0
- package/dist/config/profiles.d.ts.map +1 -0
- package/dist/config/profiles.js +227 -0
- package/dist/config/profiles.js.map +1 -0
- package/dist/types/global-flags.d.ts +1 -1
- package/dist/types/global-flags.d.ts.map +1 -1
- package/dist/types/global-flags.js +28 -16
- package/dist/types/global-flags.js.map +1 -1
- package/dist/types/ids.d.ts +4 -0
- package/dist/types/ids.d.ts.map +1 -1
- package/dist/types/ids.js +12 -3
- package/dist/types/ids.js.map +1 -1
- package/dist/utils/errors.d.ts +57 -3
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +69 -2
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/fs.d.ts +35 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js +36 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/json.d.ts +60 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +86 -0
- package/dist/utils/json.js.map +1 -0
- package/dist/utils/mime.d.ts +24 -0
- package/dist/utils/mime.d.ts.map +1 -0
- package/dist/utils/mime.js +64 -0
- package/dist/utils/mime.js.map +1 -0
- package/dist/utils/output/envelope.d.ts +30 -0
- package/dist/utils/output/envelope.d.ts.map +1 -1
- package/dist/utils/output/envelope.js +26 -0
- package/dist/utils/output/envelope.js.map +1 -1
- package/dist/utils/output/ndjson.d.ts +90 -3
- package/dist/utils/output/ndjson.d.ts.map +1 -1
- package/dist/utils/output/ndjson.js +33 -0
- package/dist/utils/output/ndjson.js.map +1 -1
- package/dist/utils/redact.d.ts.map +1 -1
- package/dist/utils/redact.js +31 -0
- package/dist/utils/redact.js.map +1 -1
- package/dist/utils/signal.d.ts +42 -0
- package/dist/utils/signal.d.ts.map +1 -0
- package/dist/utils/signal.js +45 -0
- package/dist/utils/signal.js.map +1 -0
- package/package.json +2 -1
- package/dist/commands/account/client-helper.d.ts +0 -37
- package/dist/commands/account/client-helper.d.ts.map +0 -1
- package/dist/commands/account/client-helper.js +0 -55
- package/dist/commands/account/client-helper.js.map +0 -1
|
@@ -0,0 +1,1038 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Monday Dev convention helpers for the v0.3-M26 `monday dev …`
|
|
3
|
+
* namespace (`cli-design.md` §2.7 + §5.9 + §11.3 + §13 v0.3 entry;
|
|
4
|
+
* `v0.3-plan.md` §3 M26).
|
|
5
|
+
*
|
|
6
|
+
* **Monday Dev is convention, not API (cli-design §2.7).** No
|
|
7
|
+
* dedicated GraphQL surface — `dev sprint current`, `dev task done`,
|
|
8
|
+
* etc. are *workflow shortcuts* that resolve to standard board /
|
|
9
|
+
* item CRUD operations against per-profile-configured board IDs.
|
|
10
|
+
* This module owns the convention-to-board-ID resolution, the
|
|
11
|
+
* per-profile `[profiles.<name>.dev]` reader / writer, and the
|
|
12
|
+
* board-name-based discovery heuristic that seeds the config from
|
|
13
|
+
* a Monday Dev template-shaped workspace.
|
|
14
|
+
*
|
|
15
|
+
* **What this module owns.**
|
|
16
|
+
*
|
|
17
|
+
* 1. The {@link DevMapping} alias over `profiles.ts:profileDevBlockSchema`
|
|
18
|
+
* — single source of truth for the per-profile board mapping
|
|
19
|
+
* shape. Re-exported here for namespace-clarity at the
|
|
20
|
+
* `dev`-command call sites; the schema itself lives next to
|
|
21
|
+
* the profile-file reader so v0.3-M21's multi-profile config
|
|
22
|
+
* shape stays single-source-of-truth.
|
|
23
|
+
* 2. The {@link DevDiscoverOutput} + {@link DevConfigureOutput} +
|
|
24
|
+
* {@link DevDoctorOutput} output projections — pinned at this
|
|
25
|
+
* pre-flight so `monday schema` reads consistent shapes across
|
|
26
|
+
* the three setup verbs.
|
|
27
|
+
* 3. Pure helpers: {@link matchBoardByConvention} (name-based
|
|
28
|
+
* heuristic — exact-match-then-substring against the
|
|
29
|
+
* Monday Dev template's stock board names) +
|
|
30
|
+
* {@link buildDiscoverMappingFromMatches} (collapses the
|
|
31
|
+
* heuristic's per-noun matches into a {@link DevMapping}).
|
|
32
|
+
* Real implementations — the heuristic is content-addressed
|
|
33
|
+
* against board names so it shipped testable at pre-flight
|
|
34
|
+
* alongside the runtime fetchers (M26a IMPL `19755e3` landed
|
|
35
|
+
* the `boards(state: all, workspace_ids:)` walker with the
|
|
36
|
+
* `Board.type === 'board'` filter + per-board metadata
|
|
37
|
+
* hydration).
|
|
38
|
+
* 4. Runtime fetchers: {@link discoverDevBoards} (walks accessible
|
|
39
|
+
* boards + applies the heuristic) + {@link runDevDoctor}
|
|
40
|
+
* (validates the active profile's mapping against current board
|
|
41
|
+
* shape) + {@link loadDevMapping} (reads
|
|
42
|
+
* `[profiles.<name>.dev]`) + {@link saveDevMapping} (writes
|
|
43
|
+
* `[profiles.<name>.dev]` via atomic TOML round-trip). The
|
|
44
|
+
* pre-flight `c8 ignore start/stop` wraps dropped at M26a IMPL
|
|
45
|
+
* (`19755e3`) alongside the per-fetcher wire bodies.
|
|
46
|
+
*
|
|
47
|
+
* **Empirical-probe findings pinned at M26a IMPL (2026-05-11, against
|
|
48
|
+
* `api.monday.com`, API version `2026-01`) — `scripts/probe/m26-
|
|
49
|
+
* dev-discover.ts` + `scripts/probe/m26-board-kind.ts` +
|
|
50
|
+
* `scripts/probe/m26-board-type.ts`:**
|
|
51
|
+
*
|
|
52
|
+
* - **Stock template names unchanged.** Live Monday Dev workspace
|
|
53
|
+
* surfaces `Tasks` / `Epics` / `Bugs Queue` matching the pinned
|
|
54
|
+
* {@link DEV_NOUN_PATTERNS} (substring tolerance handles the
|
|
55
|
+
* `Queue` suffix on bugs). Decision 1 closure stands; no
|
|
56
|
+
* `DEV_NOUN_PATTERNS` amendment needed.
|
|
57
|
+
* - **`Board.type === 'board'` filter required.** Monday's
|
|
58
|
+
* `boards()` walker returns `sub_items_board` virtual entries
|
|
59
|
+
* (auto-generated `Subitems of <BoardName>` boards) that pollute
|
|
60
|
+
* the substring heuristic — `Subitems of Tasks` matches the
|
|
61
|
+
* `tasks` pattern, creating an ambiguous match that prevents
|
|
62
|
+
* auto-mapping. The walker filters to `type === 'board'`,
|
|
63
|
+
* silently dropping `sub_items_board` / `custom_object` /
|
|
64
|
+
* `document` entries. Behavior-equivalent refinement, NOT a
|
|
65
|
+
* contract amendment — {@link DiscoverBoardCandidate} schema
|
|
66
|
+
* unchanged.
|
|
67
|
+
* - **`state: all` walker filter.** Per the M26 IMPL handoff
|
|
68
|
+
* guidance (don't filter by board state at the walker), the
|
|
69
|
+
* walker passes `state: all` so the heuristic sees archived /
|
|
70
|
+
* deleted boards too; the action body surfaces them on
|
|
71
|
+
* {@link DevDiscoverOutput.matches} for agent-side review.
|
|
72
|
+
* - **`board_kind`-`public`/`private`/`share` only.** Does NOT
|
|
73
|
+
* discriminate subitem boards — `Subitems of Tasks` reports
|
|
74
|
+
* `board_kind: 'public'`, identical to the parent `Tasks`
|
|
75
|
+
* board. Hence the `Board.type` filter rather than a
|
|
76
|
+
* `board_kind` filter.
|
|
77
|
+
*
|
|
78
|
+
* **What this module does NOT own.**
|
|
79
|
+
*
|
|
80
|
+
* - The base profile-config schema + read path. Lives in
|
|
81
|
+
* `src/config/profiles.ts` per v0.3-M21 (`loadProfilesConfig`,
|
|
82
|
+
* `profilesConfigSchema`, `profileDevBlockSchema`). This module
|
|
83
|
+
* re-exports the dev-block schema as `devMappingSchema` for
|
|
84
|
+
* namespace clarity + owns the dev-block WRITE-back path
|
|
85
|
+
* (`saveDevMapping`); the parent profile shape stays under
|
|
86
|
+
* `src/config/profiles.ts`.
|
|
87
|
+
* - Per-workflow-verb wire calls (sprint/epic/release/task
|
|
88
|
+
* reads + writes). Those route through existing api/* modules
|
|
89
|
+
* (`items-page-walker`, `item-mutation-execute`, etc.) — the
|
|
90
|
+
* dev namespace contributes the *resolver* that maps `current
|
|
91
|
+
* sprint` to the right item-search input, not new wire
|
|
92
|
+
* primitives.
|
|
93
|
+
* - Convention-name overrides for non-template workspaces. The
|
|
94
|
+
* heuristic looks for Monday Dev template's stock English
|
|
95
|
+
* names; localised workspaces (Spanish "Tareas" etc.) fall
|
|
96
|
+
* through to `dev configure` + an explicit per-board override.
|
|
97
|
+
* A v0.4+ extension may add `--name-aliases` to discover.
|
|
98
|
+
*
|
|
99
|
+
* **Failure-mode routing (no new ERROR_CODES; 29 stays).** Per
|
|
100
|
+
* cli-design §5.9, the two `dev_*` codes pre-registered in
|
|
101
|
+
* `src/utils/errors.ts:ERROR_CODES` cover the namespace's failure
|
|
102
|
+
* modes:
|
|
103
|
+
*
|
|
104
|
+
* - `dev_not_configured` — active profile has no `[profiles.
|
|
105
|
+
* <name>.dev]` block AND no overrides via env vars / flags.
|
|
106
|
+
* Surface points at `monday dev configure` + `monday dev
|
|
107
|
+
* discover`.
|
|
108
|
+
* - `dev_board_misconfigured` — mapped board exists but doesn't
|
|
109
|
+
* expose the expected column (no status column on the tasks
|
|
110
|
+
* board, etc.). Surface points at `monday dev doctor` for
|
|
111
|
+
* diagnostics + `monday board describe <bid>` to inspect.
|
|
112
|
+
*
|
|
113
|
+
* Other failures (board deleted / access revoked / column-token
|
|
114
|
+
* collision / etc.) route through the existing 29-code registry
|
|
115
|
+
* (`not_found`, `column_not_found`, `unauthorized`, etc.) without
|
|
116
|
+
* widening.
|
|
117
|
+
*/
|
|
118
|
+
import { z } from 'zod';
|
|
119
|
+
import type { Complexity } from '../utils/output/envelope.js';
|
|
120
|
+
import { type ProfilesRootOptions, type ProfileDevBlock } from '../config/profiles.js';
|
|
121
|
+
import type { MondayClient } from './client.js';
|
|
122
|
+
import { type ProjectedItem } from './item-projection.js';
|
|
123
|
+
/**
|
|
124
|
+
* The per-profile Monday Dev board mapping. Alias over the
|
|
125
|
+
* `profileDevBlockSchema` defined in `src/config/profiles.ts:49-57`
|
|
126
|
+
* so the dev-namespace verbs read the same shape v0.3-M21 pinned
|
|
127
|
+
* for the multi-profile TOML config.
|
|
128
|
+
*
|
|
129
|
+
* Field names use snake_case to match the TOML config; the CLI
|
|
130
|
+
* flag layer (`monday dev configure --tasks-board <bid>`) maps
|
|
131
|
+
* camelCase argv to snake_case at the parse boundary.
|
|
132
|
+
*/
|
|
133
|
+
export declare const devMappingSchema: z.ZodObject<{
|
|
134
|
+
tasks_board: z.ZodOptional<z.ZodString>;
|
|
135
|
+
sprints_board: z.ZodOptional<z.ZodString>;
|
|
136
|
+
epics_board: z.ZodOptional<z.ZodString>;
|
|
137
|
+
bugs_board: z.ZodOptional<z.ZodString>;
|
|
138
|
+
releases_board: z.ZodOptional<z.ZodString>;
|
|
139
|
+
}, z.core.$strict>;
|
|
140
|
+
export type DevMapping = ProfileDevBlock;
|
|
141
|
+
/**
|
|
142
|
+
* The Monday Dev template's stock noun → board-name patterns.
|
|
143
|
+
* The discovery heuristic uses these as the matcher seed; a
|
|
144
|
+
* workspace whose board names match one of these patterns (case-
|
|
145
|
+
* insensitive, Unicode NFC) gets auto-mapped to the corresponding
|
|
146
|
+
* dev-noun slot.
|
|
147
|
+
*
|
|
148
|
+
* Pinned in the order the heuristic considers them. Order matters
|
|
149
|
+
* only for tie-breaking when a single board matches multiple
|
|
150
|
+
* patterns (rare; e.g. a board named "Tasks & Bugs" matches both
|
|
151
|
+
* `tasks` and `bugs` — the heuristic surfaces such ambiguity on
|
|
152
|
+
* the success envelope's `matches[]` array via
|
|
153
|
+
* `matched.length > 1` rather than auto-mapping).
|
|
154
|
+
*
|
|
155
|
+
* Localised workspaces (Spanish "Tareas", French "Sprints" — same
|
|
156
|
+
* spelling but different language) round-trip the English form
|
|
157
|
+
* since the heuristic is forward-compat-extensible at v0.4 via a
|
|
158
|
+
* `--name-aliases` flag on `dev discover`. Today's heuristic ships
|
|
159
|
+
* English-only by design — Monday Dev templates default to English
|
|
160
|
+
* board names on new workspaces regardless of UI locale.
|
|
161
|
+
*/
|
|
162
|
+
export declare const DEV_NOUN_PATTERNS: readonly {
|
|
163
|
+
readonly noun: keyof DevMapping;
|
|
164
|
+
readonly patterns: readonly string[];
|
|
165
|
+
}[];
|
|
166
|
+
/**
|
|
167
|
+
* One board candidate the discovery heuristic considers. Carries
|
|
168
|
+
* the minimum the matcher needs: ID for the mapping, name for the
|
|
169
|
+
* heuristic itself, optional workspace_id so `dev discover
|
|
170
|
+
* --workspace <wid>` can scope the search.
|
|
171
|
+
*/
|
|
172
|
+
export interface DiscoverBoardCandidate {
|
|
173
|
+
readonly id: string;
|
|
174
|
+
readonly name: string;
|
|
175
|
+
readonly workspace_id: string | null;
|
|
176
|
+
}
|
|
177
|
+
export declare const discoverBoardCandidateSchema: z.ZodObject<{
|
|
178
|
+
id: z.ZodString;
|
|
179
|
+
name: z.ZodString;
|
|
180
|
+
workspace_id: z.ZodNullable<z.ZodString>;
|
|
181
|
+
}, z.core.$strict>;
|
|
182
|
+
/**
|
|
183
|
+
* One per-noun match result from the heuristic. The `matched`
|
|
184
|
+
* array carries every board that matched the noun's patterns; the
|
|
185
|
+
* `dev discover` action layer surfaces ambiguity (`matched.length
|
|
186
|
+
* > 1`) and zero-match (`matched.length === 0`) cases via the
|
|
187
|
+
* success envelope's `matches[]` array rather than auto-resolving
|
|
188
|
+
* silently or emitting a warning code.
|
|
189
|
+
*/
|
|
190
|
+
export interface DevNounMatchResult {
|
|
191
|
+
readonly noun: keyof DevMapping;
|
|
192
|
+
readonly matched: readonly DiscoverBoardCandidate[];
|
|
193
|
+
}
|
|
194
|
+
export declare const devNounMatchResultSchema: z.ZodObject<{
|
|
195
|
+
noun: z.ZodEnum<{
|
|
196
|
+
tasks_board: "tasks_board";
|
|
197
|
+
sprints_board: "sprints_board";
|
|
198
|
+
epics_board: "epics_board";
|
|
199
|
+
bugs_board: "bugs_board";
|
|
200
|
+
releases_board: "releases_board";
|
|
201
|
+
}>;
|
|
202
|
+
matched: z.ZodArray<z.ZodObject<{
|
|
203
|
+
id: z.ZodString;
|
|
204
|
+
name: z.ZodString;
|
|
205
|
+
workspace_id: z.ZodNullable<z.ZodString>;
|
|
206
|
+
}, z.core.$strict>>;
|
|
207
|
+
}, z.core.$strict>;
|
|
208
|
+
/**
|
|
209
|
+
* Returns true when `candidate.name` matches any of `patterns`.
|
|
210
|
+
* Exact-match wins over substring-match; the matcher returns true
|
|
211
|
+
* on either form so the caller can rank candidates afterwards if
|
|
212
|
+
* needed. Pure helper — real implementation at pre-flight so the
|
|
213
|
+
* Codex review can verify the heuristic shape inline.
|
|
214
|
+
*/
|
|
215
|
+
export declare const matchBoardByConvention: (candidate: DiscoverBoardCandidate, patterns: readonly string[]) => boolean;
|
|
216
|
+
/**
|
|
217
|
+
* Runs the heuristic across `candidates` and groups by dev-noun.
|
|
218
|
+
* Returns one {@link DevNounMatchResult} per noun in
|
|
219
|
+
* {@link DEV_NOUN_PATTERNS} order; nouns with zero matches surface
|
|
220
|
+
* with empty `matched` arrays (the caller surfaces these on the
|
|
221
|
+
* `dev discover` success envelope's `matches[]` array via
|
|
222
|
+
* `matched.length === 0` — no warning code registered at M26
|
|
223
|
+
* pre-flight). Pure helper — real implementation at pre-flight.
|
|
224
|
+
*/
|
|
225
|
+
export declare const groupCandidatesByDevNoun: (candidates: readonly DiscoverBoardCandidate[]) => readonly DevNounMatchResult[];
|
|
226
|
+
/**
|
|
227
|
+
* Collapses the per-noun match results into a {@link DevMapping}.
|
|
228
|
+
* Nouns with exactly one match populate the mapping slot;
|
|
229
|
+
* zero-match or ambiguous (>1 match) nouns are omitted from the
|
|
230
|
+
* mapping. The caller — `dev discover` — surfaces both modes
|
|
231
|
+
* via the same `matches[]` array on the success envelope
|
|
232
|
+
* (`matched.length === 0` = unmapped; `matched.length > 1` =
|
|
233
|
+
* ambiguous); no separate warning code is registered at M26
|
|
234
|
+
* pre-flight (round-1 Codex P2-3 clarification — warning-code
|
|
235
|
+
* registration is per cli-design §6.1 + the `dev discover`
|
|
236
|
+
* surface intentionally uses data-shape rather than warnings
|
|
237
|
+
* for the heuristic's per-noun outcomes). Pure helper — real
|
|
238
|
+
* implementation at pre-flight.
|
|
239
|
+
*/
|
|
240
|
+
export declare const buildDiscoverMappingFromMatches: (matches: readonly DevNounMatchResult[]) => DevMapping;
|
|
241
|
+
/**
|
|
242
|
+
* Output shape for `monday dev discover` (cli-design §11.3 +
|
|
243
|
+
* §4.3 `dev discover [--apply]` row). Surfaces the heuristic's
|
|
244
|
+
* findings + the would-be-written mapping. Per-noun outcomes
|
|
245
|
+
* (matched / unmapped / ambiguous) are surfaced via the
|
|
246
|
+
* `matches[]` array's per-entry `matched.length` rather than
|
|
247
|
+
* via a separate warning surface.
|
|
248
|
+
*/
|
|
249
|
+
export interface DevDiscoverOutput {
|
|
250
|
+
readonly profile: string;
|
|
251
|
+
readonly mapping: DevMapping;
|
|
252
|
+
readonly matches: readonly DevNounMatchResult[];
|
|
253
|
+
readonly applied: boolean;
|
|
254
|
+
}
|
|
255
|
+
export declare const devDiscoverOutputSchema: z.ZodObject<{
|
|
256
|
+
profile: z.ZodString;
|
|
257
|
+
mapping: z.ZodObject<{
|
|
258
|
+
tasks_board: z.ZodOptional<z.ZodString>;
|
|
259
|
+
sprints_board: z.ZodOptional<z.ZodString>;
|
|
260
|
+
epics_board: z.ZodOptional<z.ZodString>;
|
|
261
|
+
bugs_board: z.ZodOptional<z.ZodString>;
|
|
262
|
+
releases_board: z.ZodOptional<z.ZodString>;
|
|
263
|
+
}, z.core.$strict>;
|
|
264
|
+
matches: z.ZodArray<z.ZodObject<{
|
|
265
|
+
noun: z.ZodEnum<{
|
|
266
|
+
tasks_board: "tasks_board";
|
|
267
|
+
sprints_board: "sprints_board";
|
|
268
|
+
epics_board: "epics_board";
|
|
269
|
+
bugs_board: "bugs_board";
|
|
270
|
+
releases_board: "releases_board";
|
|
271
|
+
}>;
|
|
272
|
+
matched: z.ZodArray<z.ZodObject<{
|
|
273
|
+
id: z.ZodString;
|
|
274
|
+
name: z.ZodString;
|
|
275
|
+
workspace_id: z.ZodNullable<z.ZodString>;
|
|
276
|
+
}, z.core.$strict>>;
|
|
277
|
+
}, z.core.$strict>>;
|
|
278
|
+
applied: z.ZodBoolean;
|
|
279
|
+
}, z.core.$strict>;
|
|
280
|
+
/**
|
|
281
|
+
* Output shape for `monday dev configure` (cli-design §4.3 +
|
|
282
|
+
* §5.9). The verb writes the now-stored mapping to the active
|
|
283
|
+
* profile's `[profiles.<name>.dev]` block and returns the
|
|
284
|
+
* canonical mapping (post-write read-back) so an agent can verify
|
|
285
|
+
* the value landed.
|
|
286
|
+
*/
|
|
287
|
+
export interface DevConfigureOutput {
|
|
288
|
+
readonly profile: string;
|
|
289
|
+
readonly mapping: DevMapping;
|
|
290
|
+
}
|
|
291
|
+
export declare const devConfigureOutputSchema: z.ZodObject<{
|
|
292
|
+
profile: z.ZodString;
|
|
293
|
+
mapping: z.ZodObject<{
|
|
294
|
+
tasks_board: z.ZodOptional<z.ZodString>;
|
|
295
|
+
sprints_board: z.ZodOptional<z.ZodString>;
|
|
296
|
+
epics_board: z.ZodOptional<z.ZodString>;
|
|
297
|
+
bugs_board: z.ZodOptional<z.ZodString>;
|
|
298
|
+
releases_board: z.ZodOptional<z.ZodString>;
|
|
299
|
+
}, z.core.$strict>;
|
|
300
|
+
}, z.core.$strict>;
|
|
301
|
+
/**
|
|
302
|
+
* Pinned check-name vocabulary for `dev doctor` (Decision 2
|
|
303
|
+
* closure at M26 pre-flight). The runtime body iterates this list
|
|
304
|
+
* in order and emits one {@link DevDoctorCheckResult} per name.
|
|
305
|
+
* Names are stable contract surface — agents key off them (an
|
|
306
|
+
* agent self-correcting after a `dev task` failure can grep the
|
|
307
|
+
* doctor output for `tasks_status_column_present.status === 'fail'`).
|
|
308
|
+
*
|
|
309
|
+
* Adding a check is non-breaking (additive); removing or renaming
|
|
310
|
+
* is a major bump.
|
|
311
|
+
*
|
|
312
|
+
* **Round-1 Codex fix (P1-1).** `sprints_state_column_present`
|
|
313
|
+
* was the round-0 name but every sprint verb's runtime semantics
|
|
314
|
+
* are date-range-derived (cli-design §5.9 + the sprint-list verb's
|
|
315
|
+
* `--state active|past|future` filter), not status-column-derived.
|
|
316
|
+
* Renamed to `sprints_date_columns_present` to match what the
|
|
317
|
+
* runtime body will actually inspect — start_date + end_date
|
|
318
|
+
* columns on the configured sprints board.
|
|
319
|
+
*
|
|
320
|
+
* **Round-1 Codex fix (P2-2).** Added `bugs_board_exists` so the
|
|
321
|
+
* `bugs_board` mapping slot is diagnosed by the doctor like every
|
|
322
|
+
* other dev-noun slot.
|
|
323
|
+
*
|
|
324
|
+
* **Round-2 Codex fix (P2-3).** Replaced `epics_to_releases_relation`
|
|
325
|
+
* with `tasks_to_epics_relation` — the round-1 list had a relation
|
|
326
|
+
* check for an epic↔release wiring that no M26 verb consumes
|
|
327
|
+
* (there's no `dev release items` verb at v0.3), while the
|
|
328
|
+
* actually-consumed epic↔task relation (`dev epic items <eid>`
|
|
329
|
+
* walks tasks linked to a given epic) was missing. The release-
|
|
330
|
+
* to-epic relation can rejoin in a v0.3.x / v0.4 follow-up when /
|
|
331
|
+
* if a `dev release items` verb lands. Total check count holds at
|
|
332
|
+
* 10.
|
|
333
|
+
*/
|
|
334
|
+
export declare const DEV_DOCTOR_CHECK_NAMES: readonly ["tasks_board_exists", "tasks_status_column_present", "tasks_status_labels_canonical", "sprints_board_exists", "sprints_date_columns_present", "epics_board_exists", "releases_board_exists", "bugs_board_exists", "tasks_to_sprints_relation", "tasks_to_epics_relation"];
|
|
335
|
+
export type DevDoctorCheckName = (typeof DEV_DOCTOR_CHECK_NAMES)[number];
|
|
336
|
+
/**
|
|
337
|
+
* One diagnostic check `dev doctor` ran against the active
|
|
338
|
+
* profile's mapping. `status: 'ok'` = passed; `'warn'` = the
|
|
339
|
+
* check raised a non-fatal concern (e.g. status column has
|
|
340
|
+
* non-standard labels); `'fail'` = the check found drift that
|
|
341
|
+
* blocks the corresponding `dev` verb (e.g. tasks board has no
|
|
342
|
+
* status column at all — `dev task start` would fail).
|
|
343
|
+
*
|
|
344
|
+
* Per-status `details` shape is now STRUCTURALLY pinned at M26a
|
|
345
|
+
* IMPL round-2 P2-1 via the {@link okCheckDetailsSchema} /
|
|
346
|
+
* {@link warnCheckDetailsSchema} / {@link failCheckDetailsSchema}
|
|
347
|
+
* discriminated union below — `monday schema dev.doctor` surfaces
|
|
348
|
+
* the closed {@link DEV_DOCTOR_REASONS} enum via JSON Schema
|
|
349
|
+
* export, and `failResult` enforces a required `reason` at
|
|
350
|
+
* compile time. Extra `details` keys beyond `reason` stay open
|
|
351
|
+
* per-status (open-ended `Record<string, unknown>` extension via
|
|
352
|
+
* `.loose()`) so each check emits its own context fields
|
|
353
|
+
* (`board_id`, `column_id`, etc.) without per-check schema
|
|
354
|
+
* widening.
|
|
355
|
+
*
|
|
356
|
+
* **M26 pre-flight round-1 Codex fix (P2-1).** `name` is typed
|
|
357
|
+
* as {@link DevDoctorCheckName} (the enum literal union) so
|
|
358
|
+
* `monday schema` exposes the stable vocabulary + implementation
|
|
359
|
+
* typos fail output-schema validation rather than silently
|
|
360
|
+
* passing through.
|
|
361
|
+
*/
|
|
362
|
+
/**
|
|
363
|
+
* Pinned `details.reason` enum vocabulary surfaced by per-check
|
|
364
|
+
* failure paths. Closes the Decision 2 deferral (per-check
|
|
365
|
+
* discriminated-union pinning) at M26a IMPL — `details.reason`
|
|
366
|
+
* is the agent-keyable discriminator on `status: 'fail'` (and on
|
|
367
|
+
* `status: 'warn'` when a warn carries a structured reason, e.g.
|
|
368
|
+
* `settings_unparseable`).
|
|
369
|
+
*
|
|
370
|
+
* Codex M26a IMPL round-1 P2-1 fix: previously the schema accepted
|
|
371
|
+
* any `details: Record<string, unknown>` shape, so `monday schema`
|
|
372
|
+
* couldn't expose the reason vocabulary + tests couldn't catch
|
|
373
|
+
* typos. Pinning the enum + the "fail requires reason" refinement
|
|
374
|
+
* gives agents a stable branchpoint.
|
|
375
|
+
*
|
|
376
|
+
* Adding a reason is non-breaking; removing or renaming is major.
|
|
377
|
+
*/
|
|
378
|
+
export declare const DEV_DOCTOR_REASONS: readonly ["not_in_mapping", "not_accessible", "board_deleted", "no_tasks_board", "no_sprints_board", "no_status_column", "no_date_columns", "no_relation_column", "no_matching_relation", "no_target_board", "settings_unparseable"];
|
|
379
|
+
export type DevDoctorReason = (typeof DEV_DOCTOR_REASONS)[number];
|
|
380
|
+
export declare const devDoctorReasonSchema: z.ZodEnum<{
|
|
381
|
+
not_in_mapping: "not_in_mapping";
|
|
382
|
+
not_accessible: "not_accessible";
|
|
383
|
+
board_deleted: "board_deleted";
|
|
384
|
+
no_tasks_board: "no_tasks_board";
|
|
385
|
+
no_sprints_board: "no_sprints_board";
|
|
386
|
+
no_status_column: "no_status_column";
|
|
387
|
+
no_date_columns: "no_date_columns";
|
|
388
|
+
no_relation_column: "no_relation_column";
|
|
389
|
+
no_matching_relation: "no_matching_relation";
|
|
390
|
+
no_target_board: "no_target_board";
|
|
391
|
+
settings_unparseable: "settings_unparseable";
|
|
392
|
+
}>;
|
|
393
|
+
/**
|
|
394
|
+
* Per-status `details` shape. Codex M26a IMPL round-2 P2-1 + P2-2
|
|
395
|
+
* fix: the round-1 superRefine ran the `reason`-enum check
|
|
396
|
+
* runtime-only — `monday schema` (which calls `z.toJSONSchema(outputSchema)`)
|
|
397
|
+
* couldn't surface the enum vocabulary, and ok-status details were
|
|
398
|
+
* incidentally blocked when an ok carried any non-enum `reason`.
|
|
399
|
+
* Refactored into a structural discriminated union on `status`:
|
|
400
|
+
*
|
|
401
|
+
* - `ok`: open `details` object (or null) — no `reason` constraint.
|
|
402
|
+
* - `warn`: optional `reason: DEV_DOCTOR_REASONS` enum + open
|
|
403
|
+
* extras; supports both unstructured warnings (archived board)
|
|
404
|
+
* and structured ones (settings_unparseable).
|
|
405
|
+
* - `fail`: REQUIRED `reason: DEV_DOCTOR_REASONS` enum + open
|
|
406
|
+
* extras; `details` is non-nullable on fail (every failure
|
|
407
|
+
* surfaces a structured reason).
|
|
408
|
+
*
|
|
409
|
+
* Open-ended extra keys per-status mirror Monday's per-call payload
|
|
410
|
+
* variability — every check emits its own context fields
|
|
411
|
+
* (`board_id`, `column_id`, etc.) under the same status family.
|
|
412
|
+
*/
|
|
413
|
+
export declare const okCheckDetailsSchema: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
414
|
+
export declare const warnCheckDetailsSchema: z.ZodNullable<z.ZodObject<{
|
|
415
|
+
reason: z.ZodOptional<z.ZodEnum<{
|
|
416
|
+
not_in_mapping: "not_in_mapping";
|
|
417
|
+
not_accessible: "not_accessible";
|
|
418
|
+
board_deleted: "board_deleted";
|
|
419
|
+
no_tasks_board: "no_tasks_board";
|
|
420
|
+
no_sprints_board: "no_sprints_board";
|
|
421
|
+
no_status_column: "no_status_column";
|
|
422
|
+
no_date_columns: "no_date_columns";
|
|
423
|
+
no_relation_column: "no_relation_column";
|
|
424
|
+
no_matching_relation: "no_matching_relation";
|
|
425
|
+
no_target_board: "no_target_board";
|
|
426
|
+
settings_unparseable: "settings_unparseable";
|
|
427
|
+
}>>;
|
|
428
|
+
}, z.core.$loose>>;
|
|
429
|
+
export declare const failCheckDetailsSchema: z.ZodObject<{
|
|
430
|
+
reason: z.ZodEnum<{
|
|
431
|
+
not_in_mapping: "not_in_mapping";
|
|
432
|
+
not_accessible: "not_accessible";
|
|
433
|
+
board_deleted: "board_deleted";
|
|
434
|
+
no_tasks_board: "no_tasks_board";
|
|
435
|
+
no_sprints_board: "no_sprints_board";
|
|
436
|
+
no_status_column: "no_status_column";
|
|
437
|
+
no_date_columns: "no_date_columns";
|
|
438
|
+
no_relation_column: "no_relation_column";
|
|
439
|
+
no_matching_relation: "no_matching_relation";
|
|
440
|
+
no_target_board: "no_target_board";
|
|
441
|
+
settings_unparseable: "settings_unparseable";
|
|
442
|
+
}>;
|
|
443
|
+
}, z.core.$loose>;
|
|
444
|
+
export declare const devDoctorCheckResultOkSchema: z.ZodObject<{
|
|
445
|
+
name: z.ZodEnum<{
|
|
446
|
+
tasks_board_exists: "tasks_board_exists";
|
|
447
|
+
tasks_status_column_present: "tasks_status_column_present";
|
|
448
|
+
tasks_status_labels_canonical: "tasks_status_labels_canonical";
|
|
449
|
+
sprints_board_exists: "sprints_board_exists";
|
|
450
|
+
sprints_date_columns_present: "sprints_date_columns_present";
|
|
451
|
+
epics_board_exists: "epics_board_exists";
|
|
452
|
+
releases_board_exists: "releases_board_exists";
|
|
453
|
+
bugs_board_exists: "bugs_board_exists";
|
|
454
|
+
tasks_to_sprints_relation: "tasks_to_sprints_relation";
|
|
455
|
+
tasks_to_epics_relation: "tasks_to_epics_relation";
|
|
456
|
+
}>;
|
|
457
|
+
status: z.ZodLiteral<"ok">;
|
|
458
|
+
message: z.ZodString;
|
|
459
|
+
details: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
460
|
+
}, z.core.$strict>;
|
|
461
|
+
export declare const devDoctorCheckResultWarnSchema: z.ZodObject<{
|
|
462
|
+
name: z.ZodEnum<{
|
|
463
|
+
tasks_board_exists: "tasks_board_exists";
|
|
464
|
+
tasks_status_column_present: "tasks_status_column_present";
|
|
465
|
+
tasks_status_labels_canonical: "tasks_status_labels_canonical";
|
|
466
|
+
sprints_board_exists: "sprints_board_exists";
|
|
467
|
+
sprints_date_columns_present: "sprints_date_columns_present";
|
|
468
|
+
epics_board_exists: "epics_board_exists";
|
|
469
|
+
releases_board_exists: "releases_board_exists";
|
|
470
|
+
bugs_board_exists: "bugs_board_exists";
|
|
471
|
+
tasks_to_sprints_relation: "tasks_to_sprints_relation";
|
|
472
|
+
tasks_to_epics_relation: "tasks_to_epics_relation";
|
|
473
|
+
}>;
|
|
474
|
+
status: z.ZodLiteral<"warn">;
|
|
475
|
+
message: z.ZodString;
|
|
476
|
+
details: z.ZodNullable<z.ZodObject<{
|
|
477
|
+
reason: z.ZodOptional<z.ZodEnum<{
|
|
478
|
+
not_in_mapping: "not_in_mapping";
|
|
479
|
+
not_accessible: "not_accessible";
|
|
480
|
+
board_deleted: "board_deleted";
|
|
481
|
+
no_tasks_board: "no_tasks_board";
|
|
482
|
+
no_sprints_board: "no_sprints_board";
|
|
483
|
+
no_status_column: "no_status_column";
|
|
484
|
+
no_date_columns: "no_date_columns";
|
|
485
|
+
no_relation_column: "no_relation_column";
|
|
486
|
+
no_matching_relation: "no_matching_relation";
|
|
487
|
+
no_target_board: "no_target_board";
|
|
488
|
+
settings_unparseable: "settings_unparseable";
|
|
489
|
+
}>>;
|
|
490
|
+
}, z.core.$loose>>;
|
|
491
|
+
}, z.core.$strict>;
|
|
492
|
+
export declare const devDoctorCheckResultFailSchema: z.ZodObject<{
|
|
493
|
+
name: z.ZodEnum<{
|
|
494
|
+
tasks_board_exists: "tasks_board_exists";
|
|
495
|
+
tasks_status_column_present: "tasks_status_column_present";
|
|
496
|
+
tasks_status_labels_canonical: "tasks_status_labels_canonical";
|
|
497
|
+
sprints_board_exists: "sprints_board_exists";
|
|
498
|
+
sprints_date_columns_present: "sprints_date_columns_present";
|
|
499
|
+
epics_board_exists: "epics_board_exists";
|
|
500
|
+
releases_board_exists: "releases_board_exists";
|
|
501
|
+
bugs_board_exists: "bugs_board_exists";
|
|
502
|
+
tasks_to_sprints_relation: "tasks_to_sprints_relation";
|
|
503
|
+
tasks_to_epics_relation: "tasks_to_epics_relation";
|
|
504
|
+
}>;
|
|
505
|
+
status: z.ZodLiteral<"fail">;
|
|
506
|
+
message: z.ZodString;
|
|
507
|
+
details: z.ZodObject<{
|
|
508
|
+
reason: z.ZodEnum<{
|
|
509
|
+
not_in_mapping: "not_in_mapping";
|
|
510
|
+
not_accessible: "not_accessible";
|
|
511
|
+
board_deleted: "board_deleted";
|
|
512
|
+
no_tasks_board: "no_tasks_board";
|
|
513
|
+
no_sprints_board: "no_sprints_board";
|
|
514
|
+
no_status_column: "no_status_column";
|
|
515
|
+
no_date_columns: "no_date_columns";
|
|
516
|
+
no_relation_column: "no_relation_column";
|
|
517
|
+
no_matching_relation: "no_matching_relation";
|
|
518
|
+
no_target_board: "no_target_board";
|
|
519
|
+
settings_unparseable: "settings_unparseable";
|
|
520
|
+
}>;
|
|
521
|
+
}, z.core.$loose>;
|
|
522
|
+
}, z.core.$strict>;
|
|
523
|
+
export declare const devDoctorCheckResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
524
|
+
name: z.ZodEnum<{
|
|
525
|
+
tasks_board_exists: "tasks_board_exists";
|
|
526
|
+
tasks_status_column_present: "tasks_status_column_present";
|
|
527
|
+
tasks_status_labels_canonical: "tasks_status_labels_canonical";
|
|
528
|
+
sprints_board_exists: "sprints_board_exists";
|
|
529
|
+
sprints_date_columns_present: "sprints_date_columns_present";
|
|
530
|
+
epics_board_exists: "epics_board_exists";
|
|
531
|
+
releases_board_exists: "releases_board_exists";
|
|
532
|
+
bugs_board_exists: "bugs_board_exists";
|
|
533
|
+
tasks_to_sprints_relation: "tasks_to_sprints_relation";
|
|
534
|
+
tasks_to_epics_relation: "tasks_to_epics_relation";
|
|
535
|
+
}>;
|
|
536
|
+
status: z.ZodLiteral<"ok">;
|
|
537
|
+
message: z.ZodString;
|
|
538
|
+
details: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
539
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
540
|
+
name: z.ZodEnum<{
|
|
541
|
+
tasks_board_exists: "tasks_board_exists";
|
|
542
|
+
tasks_status_column_present: "tasks_status_column_present";
|
|
543
|
+
tasks_status_labels_canonical: "tasks_status_labels_canonical";
|
|
544
|
+
sprints_board_exists: "sprints_board_exists";
|
|
545
|
+
sprints_date_columns_present: "sprints_date_columns_present";
|
|
546
|
+
epics_board_exists: "epics_board_exists";
|
|
547
|
+
releases_board_exists: "releases_board_exists";
|
|
548
|
+
bugs_board_exists: "bugs_board_exists";
|
|
549
|
+
tasks_to_sprints_relation: "tasks_to_sprints_relation";
|
|
550
|
+
tasks_to_epics_relation: "tasks_to_epics_relation";
|
|
551
|
+
}>;
|
|
552
|
+
status: z.ZodLiteral<"warn">;
|
|
553
|
+
message: z.ZodString;
|
|
554
|
+
details: z.ZodNullable<z.ZodObject<{
|
|
555
|
+
reason: z.ZodOptional<z.ZodEnum<{
|
|
556
|
+
not_in_mapping: "not_in_mapping";
|
|
557
|
+
not_accessible: "not_accessible";
|
|
558
|
+
board_deleted: "board_deleted";
|
|
559
|
+
no_tasks_board: "no_tasks_board";
|
|
560
|
+
no_sprints_board: "no_sprints_board";
|
|
561
|
+
no_status_column: "no_status_column";
|
|
562
|
+
no_date_columns: "no_date_columns";
|
|
563
|
+
no_relation_column: "no_relation_column";
|
|
564
|
+
no_matching_relation: "no_matching_relation";
|
|
565
|
+
no_target_board: "no_target_board";
|
|
566
|
+
settings_unparseable: "settings_unparseable";
|
|
567
|
+
}>>;
|
|
568
|
+
}, z.core.$loose>>;
|
|
569
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
570
|
+
name: z.ZodEnum<{
|
|
571
|
+
tasks_board_exists: "tasks_board_exists";
|
|
572
|
+
tasks_status_column_present: "tasks_status_column_present";
|
|
573
|
+
tasks_status_labels_canonical: "tasks_status_labels_canonical";
|
|
574
|
+
sprints_board_exists: "sprints_board_exists";
|
|
575
|
+
sprints_date_columns_present: "sprints_date_columns_present";
|
|
576
|
+
epics_board_exists: "epics_board_exists";
|
|
577
|
+
releases_board_exists: "releases_board_exists";
|
|
578
|
+
bugs_board_exists: "bugs_board_exists";
|
|
579
|
+
tasks_to_sprints_relation: "tasks_to_sprints_relation";
|
|
580
|
+
tasks_to_epics_relation: "tasks_to_epics_relation";
|
|
581
|
+
}>;
|
|
582
|
+
status: z.ZodLiteral<"fail">;
|
|
583
|
+
message: z.ZodString;
|
|
584
|
+
details: z.ZodObject<{
|
|
585
|
+
reason: z.ZodEnum<{
|
|
586
|
+
not_in_mapping: "not_in_mapping";
|
|
587
|
+
not_accessible: "not_accessible";
|
|
588
|
+
board_deleted: "board_deleted";
|
|
589
|
+
no_tasks_board: "no_tasks_board";
|
|
590
|
+
no_sprints_board: "no_sprints_board";
|
|
591
|
+
no_status_column: "no_status_column";
|
|
592
|
+
no_date_columns: "no_date_columns";
|
|
593
|
+
no_relation_column: "no_relation_column";
|
|
594
|
+
no_matching_relation: "no_matching_relation";
|
|
595
|
+
no_target_board: "no_target_board";
|
|
596
|
+
settings_unparseable: "settings_unparseable";
|
|
597
|
+
}>;
|
|
598
|
+
}, z.core.$loose>;
|
|
599
|
+
}, z.core.$strict>], "status">;
|
|
600
|
+
export type DevDoctorCheckResult = z.infer<typeof devDoctorCheckResultSchema>;
|
|
601
|
+
/**
|
|
602
|
+
* Output shape for `monday dev doctor` (cli-design §11.3). The
|
|
603
|
+
* verb runs every check against the active profile's mapping +
|
|
604
|
+
* surfaces both the per-check results and the active mapping
|
|
605
|
+
* (so an agent diagnosing a misconfiguration sees both in one
|
|
606
|
+
* envelope).
|
|
607
|
+
*
|
|
608
|
+
* **Decision 2 closure (M26 pre-flight + M26a IMPL).** The
|
|
609
|
+
* pinned check names: see {@link DEV_DOCTOR_CHECK_NAMES} above
|
|
610
|
+
* (10 entries post-round-1; round-0 had 9 entries before P1-1
|
|
611
|
+
* / P2-2 fix-ups). Mirror cli-design §11.3 "runs `board doctor`
|
|
612
|
+
* against each configured dev board plus checks the cross-board
|
|
613
|
+
* `board_relation` wiring". Per-check `details` shape was
|
|
614
|
+
* deferred to IMPL at pre-flight + landed at M26a IMPL round-2
|
|
615
|
+
* P2-1 as a structural `z.discriminatedUnion('status', [...])`
|
|
616
|
+
* over {@link okCheckDetailsSchema} / {@link warnCheckDetailsSchema}
|
|
617
|
+
* / {@link failCheckDetailsSchema} (the `reason` enum from
|
|
618
|
+
* {@link DEV_DOCTOR_REASONS} is required on fail + optional on
|
|
619
|
+
* warn; extra keys per check stay open).
|
|
620
|
+
*/
|
|
621
|
+
export interface DevDoctorOutput {
|
|
622
|
+
readonly profile: string;
|
|
623
|
+
readonly mapping: DevMapping;
|
|
624
|
+
readonly checks: readonly DevDoctorCheckResult[];
|
|
625
|
+
readonly summary: {
|
|
626
|
+
readonly ok_count: number;
|
|
627
|
+
readonly warn_count: number;
|
|
628
|
+
readonly fail_count: number;
|
|
629
|
+
};
|
|
630
|
+
}
|
|
631
|
+
export declare const devDoctorOutputSchema: z.ZodObject<{
|
|
632
|
+
profile: z.ZodString;
|
|
633
|
+
mapping: z.ZodObject<{
|
|
634
|
+
tasks_board: z.ZodOptional<z.ZodString>;
|
|
635
|
+
sprints_board: z.ZodOptional<z.ZodString>;
|
|
636
|
+
epics_board: z.ZodOptional<z.ZodString>;
|
|
637
|
+
bugs_board: z.ZodOptional<z.ZodString>;
|
|
638
|
+
releases_board: z.ZodOptional<z.ZodString>;
|
|
639
|
+
}, z.core.$strict>;
|
|
640
|
+
checks: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
641
|
+
name: z.ZodEnum<{
|
|
642
|
+
tasks_board_exists: "tasks_board_exists";
|
|
643
|
+
tasks_status_column_present: "tasks_status_column_present";
|
|
644
|
+
tasks_status_labels_canonical: "tasks_status_labels_canonical";
|
|
645
|
+
sprints_board_exists: "sprints_board_exists";
|
|
646
|
+
sprints_date_columns_present: "sprints_date_columns_present";
|
|
647
|
+
epics_board_exists: "epics_board_exists";
|
|
648
|
+
releases_board_exists: "releases_board_exists";
|
|
649
|
+
bugs_board_exists: "bugs_board_exists";
|
|
650
|
+
tasks_to_sprints_relation: "tasks_to_sprints_relation";
|
|
651
|
+
tasks_to_epics_relation: "tasks_to_epics_relation";
|
|
652
|
+
}>;
|
|
653
|
+
status: z.ZodLiteral<"ok">;
|
|
654
|
+
message: z.ZodString;
|
|
655
|
+
details: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
656
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
657
|
+
name: z.ZodEnum<{
|
|
658
|
+
tasks_board_exists: "tasks_board_exists";
|
|
659
|
+
tasks_status_column_present: "tasks_status_column_present";
|
|
660
|
+
tasks_status_labels_canonical: "tasks_status_labels_canonical";
|
|
661
|
+
sprints_board_exists: "sprints_board_exists";
|
|
662
|
+
sprints_date_columns_present: "sprints_date_columns_present";
|
|
663
|
+
epics_board_exists: "epics_board_exists";
|
|
664
|
+
releases_board_exists: "releases_board_exists";
|
|
665
|
+
bugs_board_exists: "bugs_board_exists";
|
|
666
|
+
tasks_to_sprints_relation: "tasks_to_sprints_relation";
|
|
667
|
+
tasks_to_epics_relation: "tasks_to_epics_relation";
|
|
668
|
+
}>;
|
|
669
|
+
status: z.ZodLiteral<"warn">;
|
|
670
|
+
message: z.ZodString;
|
|
671
|
+
details: z.ZodNullable<z.ZodObject<{
|
|
672
|
+
reason: z.ZodOptional<z.ZodEnum<{
|
|
673
|
+
not_in_mapping: "not_in_mapping";
|
|
674
|
+
not_accessible: "not_accessible";
|
|
675
|
+
board_deleted: "board_deleted";
|
|
676
|
+
no_tasks_board: "no_tasks_board";
|
|
677
|
+
no_sprints_board: "no_sprints_board";
|
|
678
|
+
no_status_column: "no_status_column";
|
|
679
|
+
no_date_columns: "no_date_columns";
|
|
680
|
+
no_relation_column: "no_relation_column";
|
|
681
|
+
no_matching_relation: "no_matching_relation";
|
|
682
|
+
no_target_board: "no_target_board";
|
|
683
|
+
settings_unparseable: "settings_unparseable";
|
|
684
|
+
}>>;
|
|
685
|
+
}, z.core.$loose>>;
|
|
686
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
687
|
+
name: z.ZodEnum<{
|
|
688
|
+
tasks_board_exists: "tasks_board_exists";
|
|
689
|
+
tasks_status_column_present: "tasks_status_column_present";
|
|
690
|
+
tasks_status_labels_canonical: "tasks_status_labels_canonical";
|
|
691
|
+
sprints_board_exists: "sprints_board_exists";
|
|
692
|
+
sprints_date_columns_present: "sprints_date_columns_present";
|
|
693
|
+
epics_board_exists: "epics_board_exists";
|
|
694
|
+
releases_board_exists: "releases_board_exists";
|
|
695
|
+
bugs_board_exists: "bugs_board_exists";
|
|
696
|
+
tasks_to_sprints_relation: "tasks_to_sprints_relation";
|
|
697
|
+
tasks_to_epics_relation: "tasks_to_epics_relation";
|
|
698
|
+
}>;
|
|
699
|
+
status: z.ZodLiteral<"fail">;
|
|
700
|
+
message: z.ZodString;
|
|
701
|
+
details: z.ZodObject<{
|
|
702
|
+
reason: z.ZodEnum<{
|
|
703
|
+
not_in_mapping: "not_in_mapping";
|
|
704
|
+
not_accessible: "not_accessible";
|
|
705
|
+
board_deleted: "board_deleted";
|
|
706
|
+
no_tasks_board: "no_tasks_board";
|
|
707
|
+
no_sprints_board: "no_sprints_board";
|
|
708
|
+
no_status_column: "no_status_column";
|
|
709
|
+
no_date_columns: "no_date_columns";
|
|
710
|
+
no_relation_column: "no_relation_column";
|
|
711
|
+
no_matching_relation: "no_matching_relation";
|
|
712
|
+
no_target_board: "no_target_board";
|
|
713
|
+
settings_unparseable: "settings_unparseable";
|
|
714
|
+
}>;
|
|
715
|
+
}, z.core.$loose>;
|
|
716
|
+
}, z.core.$strict>], "status">>;
|
|
717
|
+
summary: z.ZodObject<{
|
|
718
|
+
ok_count: z.ZodNumber;
|
|
719
|
+
warn_count: z.ZodNumber;
|
|
720
|
+
fail_count: z.ZodNumber;
|
|
721
|
+
}, z.core.$strict>;
|
|
722
|
+
}, z.core.$strict>;
|
|
723
|
+
/**
|
|
724
|
+
* Inputs to {@link discoverDevBoards}.
|
|
725
|
+
*
|
|
726
|
+
* `workspaceId` is optional — when set, the discovery walker scopes
|
|
727
|
+
* to that workspace via Monday's `boards(workspace_ids: [...])`
|
|
728
|
+
* arg; when unset, it walks every board the user has access to.
|
|
729
|
+
* M26a IMPL pinned the walker cadence at `DISCOVER_PAGE_LIMIT` 200
|
|
730
|
+
* entries per page with a hard `DISCOVER_PAGE_CAP` of 50 pages
|
|
731
|
+
* (10000 boards max — comfortably above any realistic dev
|
|
732
|
+
* workspace).
|
|
733
|
+
*/
|
|
734
|
+
export interface DiscoverDevBoardsInputs {
|
|
735
|
+
readonly client: MondayClient;
|
|
736
|
+
readonly workspaceId?: string;
|
|
737
|
+
}
|
|
738
|
+
/**
|
|
739
|
+
* Result of {@link discoverDevBoards}. Carries the candidate list
|
|
740
|
+
* + the grouped per-noun match results so the `dev discover`
|
|
741
|
+
* action can emit the {@link DevDiscoverOutput} envelope after
|
|
742
|
+
* deciding whether `--apply` writes the mapping to the active
|
|
743
|
+
* profile.
|
|
744
|
+
*
|
|
745
|
+
* `source` / `cacheAgeSeconds` / `complexity` mirror the M23
|
|
746
|
+
* {@link FetchBoardFavoritesResult} envelope-meta pin — discover
|
|
747
|
+
* is a pure live read with no per-call cache; `complexity` is the
|
|
748
|
+
* LAST page's complexity slot (under `--verbose`).
|
|
749
|
+
*/
|
|
750
|
+
export interface DiscoverDevBoardsResult {
|
|
751
|
+
readonly candidates: readonly DiscoverBoardCandidate[];
|
|
752
|
+
readonly matches: readonly DevNounMatchResult[];
|
|
753
|
+
readonly source: 'live';
|
|
754
|
+
readonly cacheAgeSeconds: null;
|
|
755
|
+
readonly complexity: Complexity | null;
|
|
756
|
+
}
|
|
757
|
+
/**
|
|
758
|
+
* Walks the user's accessible boards (optionally scoped to
|
|
759
|
+
* `workspaceId`) and groups them by dev-noun via the heuristic.
|
|
760
|
+
*
|
|
761
|
+
* **Walker contract.** Pages through `boards(limit:, page:, state:
|
|
762
|
+
* all[, workspace_ids:])` until a short page indicates the end of
|
|
763
|
+
* results OR the page cap is reached. Per the M26a IMPL handoff,
|
|
764
|
+
* `state: all` is passed so archived / deleted boards surface to the
|
|
765
|
+
* heuristic too — the action body surfaces them on
|
|
766
|
+
* {@link DevDiscoverOutput.matches} for agent-side review. The
|
|
767
|
+
* walker silently drops `Board.type !== 'board'` rows
|
|
768
|
+
* (`sub_items_board` virtual boards, `custom_object` entries,
|
|
769
|
+
* `document` entries) since those aren't valid dev-noun mapping
|
|
770
|
+
* targets — see the module docstring for the empirical-probe
|
|
771
|
+
* rationale.
|
|
772
|
+
*/
|
|
773
|
+
export declare const discoverDevBoards: (inputs: DiscoverDevBoardsInputs) => Promise<DiscoverDevBoardsResult>;
|
|
774
|
+
/**
|
|
775
|
+
* Inputs to {@link runDevDoctor}.
|
|
776
|
+
*/
|
|
777
|
+
export interface RunDevDoctorInputs {
|
|
778
|
+
readonly client: MondayClient;
|
|
779
|
+
readonly profile: string;
|
|
780
|
+
readonly mapping: DevMapping;
|
|
781
|
+
}
|
|
782
|
+
/**
|
|
783
|
+
* Result of {@link runDevDoctor}. Mirrors the {@link DevDoctorOutput}
|
|
784
|
+
* envelope minus the action-owned `profile` + `mapping` echo (the
|
|
785
|
+
* action body re-echoes these from its own inputs so the doctor
|
|
786
|
+
* resolver stays narrow). `source` / `cacheAgeSeconds` /
|
|
787
|
+
* `complexity` mirror the M23 envelope-meta pin.
|
|
788
|
+
*/
|
|
789
|
+
export interface RunDevDoctorResult {
|
|
790
|
+
readonly checks: readonly DevDoctorCheckResult[];
|
|
791
|
+
readonly summary: DevDoctorOutput['summary'];
|
|
792
|
+
readonly source: 'live';
|
|
793
|
+
readonly cacheAgeSeconds: null;
|
|
794
|
+
readonly complexity: Complexity | null;
|
|
795
|
+
}
|
|
796
|
+
/**
|
|
797
|
+
* Internal wire-row shape for the doctor's per-board hydration call.
|
|
798
|
+
* Carries the columns + state needed for the 10 pinned checks.
|
|
799
|
+
*/
|
|
800
|
+
declare const rawDoctorColumnSchema: z.ZodObject<{
|
|
801
|
+
id: z.ZodString;
|
|
802
|
+
title: z.ZodString;
|
|
803
|
+
type: z.ZodString;
|
|
804
|
+
settings_str: z.ZodNullable<z.ZodString>;
|
|
805
|
+
}, z.core.$loose>;
|
|
806
|
+
type RawDoctorColumn = z.infer<typeof rawDoctorColumnSchema>;
|
|
807
|
+
/**
|
|
808
|
+
* Runs every {@link DEV_DOCTOR_CHECK_NAMES} check against the
|
|
809
|
+
* `inputs.mapping`. Returns a per-check result list + a summary
|
|
810
|
+
* count. One `boards(ids:)` call hydrates every configured board's
|
|
811
|
+
* metadata; the 10 checks operate over the hydrated data.
|
|
812
|
+
*
|
|
813
|
+
* The verb's exit code stays 0 regardless of per-check `fail`
|
|
814
|
+
* counts — `dev doctor`'s success is "diagnostics completed";
|
|
815
|
+
* agents inspect `data.summary.fail_count` for drift.
|
|
816
|
+
* `dev_board_misconfigured` is reserved for the case where the
|
|
817
|
+
* doctor itself can't complete (no boards hydrated at all, etc.) —
|
|
818
|
+
* not surfaced here at this milestone (no configured boards = empty
|
|
819
|
+
* mapping = every `<noun>_board_exists` check fails, which is the
|
|
820
|
+
* correct diagnostic signal).
|
|
821
|
+
*/
|
|
822
|
+
export declare const runDevDoctor: (inputs: RunDevDoctorInputs) => Promise<RunDevDoctorResult>;
|
|
823
|
+
/**
|
|
824
|
+
* Reads the active profile's `[profiles.<name>.dev]` block. Throws
|
|
825
|
+
* `dev_not_configured` when:
|
|
826
|
+
* - no `config.toml` exists at all (`details.reason:
|
|
827
|
+
* "no_config_file"`),
|
|
828
|
+
* - the named profile is absent from the config
|
|
829
|
+
* (`details.reason: "profile_absent"`), OR
|
|
830
|
+
* - the named profile exists but has no `dev` sub-block
|
|
831
|
+
* (`details.reason: "no_dev_block"`).
|
|
832
|
+
*
|
|
833
|
+
* Each surface points the agent at `monday dev configure` /
|
|
834
|
+
* `monday dev discover --apply` via `details.hint`.
|
|
835
|
+
*/
|
|
836
|
+
export declare const loadDevMapping: (profile: string, options?: ProfilesRootOptions) => Promise<DevMapping>;
|
|
837
|
+
/**
|
|
838
|
+
* Atomically writes the supplied `mapping` into
|
|
839
|
+
* `profiles[profile].dev` in `~/.monday-cli/config.toml`. Creates
|
|
840
|
+
* the file (and the named profile entry) if absent.
|
|
841
|
+
*
|
|
842
|
+
* **TOML round-trip behavior.** `smol-toml`'s `stringify` produces
|
|
843
|
+
* canonical TOML output — comments and bespoke formatting from the
|
|
844
|
+
* original file are NOT preserved. This is a contract correction
|
|
845
|
+
* vs the M26 pre-flight docstring claim (to be flagged in the
|
|
846
|
+
* M26a close-docs sweep's post-mortem). Mitigation: most config.toml
|
|
847
|
+
* files are CLI-managed (`monday auth login` populates the
|
|
848
|
+
* credentials side; this helper populates the dev side), so the
|
|
849
|
+
* comment-preservation concern is narrow. A future v0.4 string-
|
|
850
|
+
* surgery write path could preserve comments outside the dev block
|
|
851
|
+
* if user demand surfaces.
|
|
852
|
+
*
|
|
853
|
+
* **Disk discipline (mirrors `src/config/credentials.ts`):**
|
|
854
|
+
* 1. `mkdir({ recursive: true, mode: 0o700 })` + explicit `chmod
|
|
855
|
+
* 0o700` on the parent dir.
|
|
856
|
+
* 2. `writeFile(tmpPath, payload, { mode: 0o600 })`.
|
|
857
|
+
* 3. `chmod(tmpPath, 0o600)` (re-applied since `writeFile`'s
|
|
858
|
+
* `mode` is advisory under umask).
|
|
859
|
+
* 4. `rename(tmpPath, finalPath)` (atomic on the same filesystem).
|
|
860
|
+
*
|
|
861
|
+
* **Idempotent:** re-writing the same mapping produces the same
|
|
862
|
+
* bytes (modulo formatting). When `mapping` carries every existing
|
|
863
|
+
* slot at the same value, the write is functionally a no-op.
|
|
864
|
+
*/
|
|
865
|
+
export declare const saveDevMapping: (profile: string, mapping: DevMapping, options?: ProfilesRootOptions) => Promise<void>;
|
|
866
|
+
/**
|
|
867
|
+
* Sprint date-range state literal — `active` (today within range),
|
|
868
|
+
* `past` (range ended before today), `future` (range starts after
|
|
869
|
+
* today). Surfaced as the argv shape for `dev sprint list --state`
|
|
870
|
+
* + the classification output of {@link classifySprint}.
|
|
871
|
+
*
|
|
872
|
+
* R-NEW-38 lift (post-M26b drift sweep): hoisted from
|
|
873
|
+
* `commands/dev/sprint/list.ts:_internals` after the 3-consumer
|
|
874
|
+
* threshold fired across `sprint/list.ts` + `sprint/current.ts` +
|
|
875
|
+
* `task/list.ts` (the verb-file-to-verb-file cross-import via
|
|
876
|
+
* `_internals` was the anti-pattern that surfaced the lift).
|
|
877
|
+
*/
|
|
878
|
+
export declare const SPRINT_STATE_LITERALS: readonly ["active", "past", "future"];
|
|
879
|
+
export type SprintState = (typeof SPRINT_STATE_LITERALS)[number];
|
|
880
|
+
/**
|
|
881
|
+
* Parses a YYYY-MM-DD string into an epoch-ms day boundary (UTC).
|
|
882
|
+
* NaN-guards per the M24 round-2 P3-1 precedent (`4c83860`) —
|
|
883
|
+
* returns `null` on an unparseable / malformed date so the caller
|
|
884
|
+
* falls through to the `past` default rather than emitting NaN-
|
|
885
|
+
* shaped state buckets.
|
|
886
|
+
*/
|
|
887
|
+
export declare const dayEpoch: (raw: string | null | undefined) => number | null;
|
|
888
|
+
export interface SprintDateRange {
|
|
889
|
+
readonly start: number;
|
|
890
|
+
readonly end: number;
|
|
891
|
+
}
|
|
892
|
+
/**
|
|
893
|
+
* Extracts a sprint's date range from its projected columns. Prefers
|
|
894
|
+
* a `timeline` column (parses `value.from` / `value.to`); falls back
|
|
895
|
+
* to the first two `date` columns sorted by id (single date column
|
|
896
|
+
* = single-day range; reversed start/end auto-normalised by epoch).
|
|
897
|
+
* Returns `null` when no usable date columns are present.
|
|
898
|
+
*/
|
|
899
|
+
export declare const extractDateRange: (item: ProjectedItem) => SprintDateRange | null;
|
|
900
|
+
/**
|
|
901
|
+
* Classifies a sprint's state from its date range + the current
|
|
902
|
+
* day's epoch. Sprints without a resolvable date range default to
|
|
903
|
+
* `past` so a `--state past` filter catches misconfigured rows
|
|
904
|
+
* (the structural drift is diagnosed via `dev doctor`'s
|
|
905
|
+
* `sprints_date_columns_present` check; no warning code).
|
|
906
|
+
*/
|
|
907
|
+
export declare const classifySprint: (range: SprintDateRange | null, todayEpoch: number) => SprintState;
|
|
908
|
+
/**
|
|
909
|
+
* Walks every page of `items_page` on the supplied board and projects
|
|
910
|
+
* the rows through the M4 {@link projectItem} contract. Used by the
|
|
911
|
+
* read-side dev workflow verbs (`dev sprint list/items/current`,
|
|
912
|
+
* `dev epic list/items`, `dev release list`, `dev task list`).
|
|
913
|
+
*
|
|
914
|
+
* Skips board-metadata cache loading — dev verbs don't expose
|
|
915
|
+
* `--columns` selection, and the items_page rows include
|
|
916
|
+
* `column { title }` per the {@link ITEM_FIELDS_FRAGMENT}, so the
|
|
917
|
+
* fallback title path on {@link projectItem} is sufficient. Returns
|
|
918
|
+
* the `complexity` from the *last* response so the verb's success
|
|
919
|
+
* envelope reflects the freshest budget snapshot per `cli-design.md`
|
|
920
|
+
* §6.1 — mirrors the {@link paginate} walker's idiom.
|
|
921
|
+
*/
|
|
922
|
+
export declare const walkDevBoardItems: (inputs: {
|
|
923
|
+
readonly client: MondayClient;
|
|
924
|
+
readonly boardId: string;
|
|
925
|
+
readonly operationName: string;
|
|
926
|
+
readonly queryParams?: Readonly<Record<string, unknown>>;
|
|
927
|
+
readonly now: () => Date;
|
|
928
|
+
}) => Promise<{
|
|
929
|
+
readonly items: readonly ProjectedItem[];
|
|
930
|
+
readonly complexity: Complexity | null;
|
|
931
|
+
}>;
|
|
932
|
+
/**
|
|
933
|
+
* Hydrates one board's `columns { id title type settings_str }` slot
|
|
934
|
+
* via a single `boards(ids:)` call. Used by mutation verbs
|
|
935
|
+
* (`dev task start/done/block`) to resolve the status column ID +
|
|
936
|
+
* label vocabulary, and by the relation-filter verbs
|
|
937
|
+
* (`dev sprint items`, `dev epic items`) to find the board_relation
|
|
938
|
+
* column linking the tasks board to a target.
|
|
939
|
+
*/
|
|
940
|
+
export declare const hydrateDevBoardColumns: (client: MondayClient, boardId: string, operationName: string) => Promise<{
|
|
941
|
+
readonly columns: readonly RawDoctorColumn[];
|
|
942
|
+
readonly complexity: Complexity | null;
|
|
943
|
+
}>;
|
|
944
|
+
/**
|
|
945
|
+
* Walks `columns` looking for a `board_relation` column whose
|
|
946
|
+
* `settings_str.boardIds` (or `board_ids`) array includes
|
|
947
|
+
* `targetBoardId`. Returns the first match or `undefined`.
|
|
948
|
+
*
|
|
949
|
+
* Same `settings_str` parse as the doctor's
|
|
950
|
+
* `checkBoardRelation` — pinned at M26a IMPL. Lifted here for
|
|
951
|
+
* reuse by `dev sprint items` and `dev epic items`.
|
|
952
|
+
*/
|
|
953
|
+
export declare const findRelationColumnIdToBoard: (columns: readonly {
|
|
954
|
+
readonly id: string;
|
|
955
|
+
readonly type: string;
|
|
956
|
+
readonly settings_str: string | null;
|
|
957
|
+
}[], targetBoardId: string) => string | undefined;
|
|
958
|
+
/**
|
|
959
|
+
* Extracts linked item IDs (as decimal strings) from a board_relation
|
|
960
|
+
* column's parsed `value` JSON. Monday's wire shape is one of:
|
|
961
|
+
* - `{linkedPulseIds: [{linkedPulseId: 123 | "123"}, ...]}`
|
|
962
|
+
* - `{item_ids: [123 | "123", ...]}` (newer 2026-01 shape)
|
|
963
|
+
* Returns an empty array on null / malformed / unrecognised shape.
|
|
964
|
+
*/
|
|
965
|
+
export declare const extractLinkedItemIds: (value: unknown) => readonly string[];
|
|
966
|
+
/**
|
|
967
|
+
* Finds the status (or color) column on a board. Returns the column
|
|
968
|
+
* + the parsed labels (id → label text). Throws
|
|
969
|
+
* `dev_board_misconfigured` with `reason: 'no_status_column'` when
|
|
970
|
+
* no status column is present (mirrors the doctor's
|
|
971
|
+
* `tasks_status_column_present` fail surface; if doctor passes, this
|
|
972
|
+
* lookup also passes).
|
|
973
|
+
*/
|
|
974
|
+
export declare const resolveStatusColumn: (boardId: string, columns: readonly RawDoctorColumn[]) => {
|
|
975
|
+
readonly columnId: string;
|
|
976
|
+
readonly labels: ReadonlyMap<string, string>;
|
|
977
|
+
};
|
|
978
|
+
/**
|
|
979
|
+
* Canonical status labels Monday Dev's stock Tasks template surfaces.
|
|
980
|
+
* The three task mutation verbs (`dev task start/done/block`) flip
|
|
981
|
+
* the status column to one of these. Exported for the
|
|
982
|
+
* {@link flipTaskStatus} helper + the verbs that import the literal
|
|
983
|
+
* union for argv shapes.
|
|
984
|
+
*/
|
|
985
|
+
export type DevTaskCanonicalLabel = 'Working on it' | 'Done' | 'Stuck';
|
|
986
|
+
/**
|
|
987
|
+
* Resolves a canonical Monday Dev status label ("Working on it" /
|
|
988
|
+
* "Done" / "Stuck") to the actual label text written on the
|
|
989
|
+
* configured status column — case-insensitive match. Returns the
|
|
990
|
+
* exact stored form so the subsequent
|
|
991
|
+
* `change_simple_column_value` flips against bytes Monday accepts
|
|
992
|
+
* (the wire is case-sensitive on the value).
|
|
993
|
+
*
|
|
994
|
+
* Throws `dev_board_misconfigured` with
|
|
995
|
+
* `reason: 'no_status_column'` when the canonical label isn't
|
|
996
|
+
* present on the column — points at `monday dev doctor` for
|
|
997
|
+
* diagnostics. (Mirrors the doctor's
|
|
998
|
+
* `tasks_status_labels_canonical` warn surface; the doctor's warn
|
|
999
|
+
* doesn't block a workflow verb at the doctor layer, but the
|
|
1000
|
+
* workflow verb itself can't proceed without a matching label.)
|
|
1001
|
+
*/
|
|
1002
|
+
export declare const resolveCanonicalLabel: (boardId: string, columnId: string, labels: ReadonlyMap<string, string>, canonical: DevTaskCanonicalLabel) => string;
|
|
1003
|
+
export interface DevCreateUpdateResult {
|
|
1004
|
+
readonly updateId: string;
|
|
1005
|
+
readonly complexity: Complexity | null;
|
|
1006
|
+
}
|
|
1007
|
+
/**
|
|
1008
|
+
* Fires the `create_update` mutation for a dev task side-effect
|
|
1009
|
+
* (`task done --message` / `task block --reason`) and returns the
|
|
1010
|
+
* created update's ID + the wire complexity. Shared by both verbs
|
|
1011
|
+
* (3-consumer threshold not yet reached, but the parse-boundary
|
|
1012
|
+
* discipline matters at every site).
|
|
1013
|
+
*
|
|
1014
|
+
* Throws `internal_error` when Monday's response carries
|
|
1015
|
+
* `create_update: null` (the documented null-payload escape hatch
|
|
1016
|
+
* for failed update creation; mirrors M5b's `internal_error` shape
|
|
1017
|
+
* per `item-mutation-result.ts`'s `caller_handles` semantics).
|
|
1018
|
+
*/
|
|
1019
|
+
export declare const fireDevCreateUpdate: (inputs: {
|
|
1020
|
+
readonly client: MondayClient;
|
|
1021
|
+
readonly itemId: string;
|
|
1022
|
+
readonly body: string;
|
|
1023
|
+
readonly operationName: string;
|
|
1024
|
+
}) => Promise<DevCreateUpdateResult>;
|
|
1025
|
+
export declare const flipTaskStatus: (inputs: {
|
|
1026
|
+
readonly client: MondayClient;
|
|
1027
|
+
readonly tasksBoard: string;
|
|
1028
|
+
readonly itemId: string;
|
|
1029
|
+
readonly canonical: DevTaskCanonicalLabel;
|
|
1030
|
+
readonly hydrateOperation: string;
|
|
1031
|
+
}) => Promise<{
|
|
1032
|
+
readonly projected: ProjectedItem;
|
|
1033
|
+
readonly columnId: string;
|
|
1034
|
+
readonly label: string;
|
|
1035
|
+
readonly complexity: Complexity | null;
|
|
1036
|
+
}>;
|
|
1037
|
+
export {};
|
|
1038
|
+
//# sourceMappingURL=dev-conventions.d.ts.map
|