@maestro-js/agent-skills 1.0.0-alpha.18 → 1.0.0-alpha.2
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/{skills → dist}/choosing-an-npm-package/SKILL.md +4 -5
- package/{skills → dist}/maestro-packages/SKILL.md +3 -3
- package/dist/maestro-packages/queue.md +284 -0
- package/dist/maestro-packages/recurring-jobs.md +353 -0
- package/dist/maestro-packages/tracing.md +240 -0
- package/package.json +7 -8
- package/dist/bin.js +0 -19
- package/skills/iconify/SKILL.md +0 -82
- package/skills/iconify/scripts/iconify.js +0 -111
- package/skills/iso-fns/SKILL.md +0 -137
- package/skills/iso-fns/references/api_reference.md +0 -435
- package/skills/maestro-architecture/SKILL.md +0 -552
- package/skills/maestro-examples/SKILL.md +0 -140
- package/skills/maestro-examples/references/cadence/cadence-web/.auth/user.json +0 -15
- package/skills/maestro-examples/references/cadence/cadence-web/app/app.css +0 -112
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/auth-layout.tsx +0 -39
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/back-link.tsx +0 -24
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/button-group.tsx +0 -78
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/button-link.tsx +0 -77
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/button.tsx +0 -139
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/checkbox.tsx +0 -210
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/chip.tsx +0 -161
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/container.tsx +0 -85
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/date-range.tsx +0 -141
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/date-time-picker.tsx +0 -199
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/empty-state.tsx +0 -19
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/form-page.tsx +0 -41
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/form.tsx +0 -106
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/helpers/animated-popover.tsx +0 -27
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/helpers/button-context.ts +0 -13
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/helpers/calendar-month-year-picker.tsx +0 -283
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/helpers/form-field.tsx +0 -231
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/helpers/get-button-classes.ts +0 -141
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/helpers/headless-button.tsx +0 -39
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/icon.tsx +0 -29
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/inline-alert.tsx +0 -57
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/interaction-form.tsx +0 -87
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/menu.tsx +0 -189
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/optional-link.tsx +0 -18
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/page-header.tsx +0 -19
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/rich-text-editor.tsx +0 -352
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/select.tsx +0 -219
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/spinner.tsx +0 -19
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/table/headless-templated-row-table.ts +0 -553
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/table/index.tsx +0 -44
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/table/server-table.ts +0 -146
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/table/table-actions.tsx +0 -79
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/table/table-container.tsx +0 -176
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/table/table-container.type-test.ts +0 -158
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/table/table-filters/date-range-filter.tsx +0 -230
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/table/table-filters/select-filter.tsx +0 -214
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/table/table-filters/sort.tsx +0 -88
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/table/table-primitives.tsx +0 -229
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/table/table-toolbar.tsx +0 -303
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/table/table-types.ts +0 -64
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/table/use-client-table.ts +0 -160
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/table/use-client-table.type-test.ts +0 -220
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/table/use-server-table.ts +0 -195
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/table/use-server-table.type-test.ts +0 -177
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/tag-editor.tsx +0 -53
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/tag-field.tsx +0 -253
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/text-field.tsx +0 -147
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/toast.tsx +0 -182
- package/skills/maestro-examples/references/cadence/cadence-web/app/components/top-nav.tsx +0 -175
- package/skills/maestro-examples/references/cadence/cadence-web/app/entry.client.tsx +0 -21
- package/skills/maestro-examples/references/cadence/cadence-web/app/entry.server.tsx +0 -13
- package/skills/maestro-examples/references/cadence/cadence-web/app/features/csrf-middleware.server.ts +0 -17
- package/skills/maestro-examples/references/cadence/cadence-web/app/features/custom-error-status-code-middleware.server.ts +0 -31
- package/skills/maestro-examples/references/cadence/cadence-web/app/features/rate-limiting-middleware.server.ts +0 -36
- package/skills/maestro-examples/references/cadence/cadence-web/app/features/redirect-with-toast.server.ts +0 -14
- package/skills/maestro-examples/references/cadence/cadence-web/app/features/request-context.server.ts +0 -40
- package/skills/maestro-examples/references/cadence/cadence-web/app/features/security-headers-middleware.server.ts +0 -10
- package/skills/maestro-examples/references/cadence/cadence-web/app/icons/types.ts +0 -36
- package/skills/maestro-examples/references/cadence/cadence-web/app/root.tsx +0 -208
- package/skills/maestro-examples/references/cadence/cadence-web/app/routes/_index.tsx +0 -5
- package/skills/maestro-examples/references/cadence/cadence-web/app/routes/activity.tsx +0 -124
- package/skills/maestro-examples/references/cadence/cadence-web/app/routes/archive.tsx +0 -187
- package/skills/maestro-examples/references/cadence/cadence-web/app/routes/auth.forgot-password.tsx +0 -108
- package/skills/maestro-examples/references/cadence/cadence-web/app/routes/auth.login.tsx +0 -132
- package/skills/maestro-examples/references/cadence/cadence-web/app/routes/auth.logout.tsx +0 -17
- package/skills/maestro-examples/references/cadence/cadence-web/app/routes/auth.register.tsx +0 -172
- package/skills/maestro-examples/references/cadence/cadence-web/app/routes/auth.reset-password.tsx +0 -150
- package/skills/maestro-examples/references/cadence/cadence-web/app/routes/contacts.$id.edit.tsx +0 -89
- package/skills/maestro-examples/references/cadence/cadence-web/app/routes/contacts.$id.tsx +0 -521
- package/skills/maestro-examples/references/cadence/cadence-web/app/routes/contacts.new.tsx +0 -56
- package/skills/maestro-examples/references/cadence/cadence-web/app/routes/contacts.tsx +0 -183
- package/skills/maestro-examples/references/cadence/cadence-web/app/routes/settings.tsx +0 -158
- package/skills/maestro-examples/references/cadence/cadence-web/app/routes/users.tsx +0 -263
- package/skills/maestro-examples/references/cadence/cadence-web/app/routes.ts +0 -4
- package/skills/maestro-examples/references/cadence/cadence-web/app/services.server.ts +0 -1
- package/skills/maestro-examples/references/cadence/cadence-web/app/utils/colors.ts +0 -47
- package/skills/maestro-examples/references/cadence/cadence-web/app/utils/compose-event-handlers.ts +0 -13
- package/skills/maestro-examples/references/cadence/cadence-web/app/utils/compose-refs.ts +0 -35
- package/skills/maestro-examples/references/cadence/cadence-web/app/utils/format-date.ts +0 -10
- package/skills/maestro-examples/references/cadence/cadence-web/app/utils/overridable-component-helper.ts +0 -31
- package/skills/maestro-examples/references/cadence/cadence-web/app/utils/sanitize-html.ts +0 -16
- package/skills/maestro-examples/references/cadence/cadence-web/app/utils/tw.ts +0 -16
- package/skills/maestro-examples/references/cadence/cadence-web/app/utils/use-hydrated.ts +0 -12
- package/skills/maestro-examples/references/cadence/cadence-web/app/utils/use-prevent-default.ts +0 -30
- package/skills/maestro-examples/references/cadence/cadence-web/app/utils/use-query-state.ts +0 -629
- package/skills/maestro-examples/references/cadence/cadence-web/app/utils/use-render-props.ts +0 -42
- package/skills/maestro-examples/references/cadence/cadence-web/app/utils/use-spin-delay.ts +0 -27
- package/skills/maestro-examples/references/cadence/cadence-web/app/utils/use-stable-accessor.ts +0 -14
- package/skills/maestro-examples/references/cadence/cadence-web/instrument.server.mjs +0 -29
- package/skills/maestro-examples/references/cadence/cadence-web/package.json +0 -60
- package/skills/maestro-examples/references/cadence/cadence-web/playwright.config.ts +0 -39
- package/skills/maestro-examples/references/cadence/cadence-web/react-router.config.ts +0 -12
- package/skills/maestro-examples/references/cadence/cadence-web/tailwind.config.ts +0 -7
- package/skills/maestro-examples/references/cadence/cadence-web/tests/activity/filter-activity.spec.ts +0 -93
- package/skills/maestro-examples/references/cadence/cadence-web/tests/activity/recent-activity.spec.ts +0 -70
- package/skills/maestro-examples/references/cadence/cadence-web/tests/archive/archive-view.spec.ts +0 -62
- package/skills/maestro-examples/references/cadence/cadence-web/tests/auth/login-invalid.spec.ts +0 -68
- package/skills/maestro-examples/references/cadence/cadence-web/tests/auth/login-valid.spec.ts +0 -45
- package/skills/maestro-examples/references/cadence/cadence-web/tests/auth/logout.spec.ts +0 -46
- package/skills/maestro-examples/references/cadence/cadence-web/tests/auth/password-reset.spec.ts +0 -105
- package/skills/maestro-examples/references/cadence/cadence-web/tests/auth/register.spec.ts +0 -39
- package/skills/maestro-examples/references/cadence/cadence-web/tests/auth.setup.ts +0 -48
- package/skills/maestro-examples/references/cadence/cadence-web/tests/authorization/member-ownership.spec.ts +0 -104
- package/skills/maestro-examples/references/cadence/cadence-web/tests/authorization/viewer-read-only.spec.ts +0 -103
- package/skills/maestro-examples/references/cadence/cadence-web/tests/constants.ts +0 -11
- package/skills/maestro-examples/references/cadence/cadence-web/tests/contacts/archive-restore.spec.ts +0 -77
- package/skills/maestro-examples/references/cadence/cadence-web/tests/contacts/create-contact.spec.ts +0 -56
- package/skills/maestro-examples/references/cadence/cadence-web/tests/contacts/delete-contact.spec.ts +0 -53
- package/skills/maestro-examples/references/cadence/cadence-web/tests/contacts/edit-contact.spec.ts +0 -60
- package/skills/maestro-examples/references/cadence/cadence-web/tests/contacts/filter-by-last-contacted.spec.ts +0 -85
- package/skills/maestro-examples/references/cadence/cadence-web/tests/contacts/filter-by-tag.spec.ts +0 -68
- package/skills/maestro-examples/references/cadence/cadence-web/tests/contacts/global-search.spec.ts +0 -57
- package/skills/maestro-examples/references/cadence/cadence-web/tests/contacts/sort-contacts.spec.ts +0 -60
- package/skills/maestro-examples/references/cadence/cadence-web/tests/contacts/tags.spec.ts +0 -85
- package/skills/maestro-examples/references/cadence/cadence-web/tests/contacts/view-detail.spec.ts +0 -58
- package/skills/maestro-examples/references/cadence/cadence-web/tests/interactions/delete-interaction.spec.ts +0 -59
- package/skills/maestro-examples/references/cadence/cadence-web/tests/interactions/edit-interaction.spec.ts +0 -68
- package/skills/maestro-examples/references/cadence/cadence-web/tests/interactions/log-email.spec.ts +0 -57
- package/skills/maestro-examples/references/cadence/cadence-web/tests/interactions/log-note.spec.ts +0 -56
- package/skills/maestro-examples/references/cadence/cadence-web/tests/interactions/rich-text-formatting.spec.ts +0 -97
- package/skills/maestro-examples/references/cadence/cadence-web/tests/organization/delete.spec.ts +0 -70
- package/skills/maestro-examples/references/cadence/cadence-web/tests/organization/edit-name.spec.ts +0 -51
- package/skills/maestro-examples/references/cadence/cadence-web/tests/users/change-role.spec.ts +0 -62
- package/skills/maestro-examples/references/cadence/cadence-web/tests/users/invite-user.spec.ts +0 -56
- package/skills/maestro-examples/references/cadence/cadence-web/tests/users/remove-user.spec.ts +0 -58
- package/skills/maestro-examples/references/cadence/cadence-web/tsconfig.json +0 -22
- package/skills/maestro-examples/references/cadence/cadence-web/vite.config.ts +0 -37
- package/skills/maestro-examples/references/cadence/config/agent-container.ts +0 -4
- package/skills/maestro-examples/references/cadence/config/cadence-web.ts +0 -12
- package/skills/maestro-examples/references/cadence/config/db-migrate.ts +0 -9
- package/skills/maestro-examples/references/cadence/config/queue-processor.ts +0 -11
- package/skills/maestro-examples/references/cadence/config/services.ts +0 -16
- package/skills/maestro-examples/references/cadence/infrastructure/db-migrations/20260404000001_organizations-and-users.ts +0 -16
- package/skills/maestro-examples/references/cadence/infrastructure/db-migrations/20260404000002_contacts.ts +0 -16
- package/skills/maestro-examples/references/cadence/infrastructure/db-migrations/20260404000003_interactions.ts +0 -16
- package/skills/maestro-examples/references/cadence/infrastructure/db-migrations/20260404000004_remember-me-tokens.ts +0 -16
- package/skills/maestro-examples/references/cadence/infrastructure/db-migrations/20260404000005_password-reset-tokens.ts +0 -16
- package/skills/maestro-examples/references/cadence/infrastructure/db-migrations/20260404000006_queue-and-recurring-jobs.ts +0 -16
- package/skills/maestro-examples/references/cadence/infrastructure/db-migrations/sqls/20260404000001_organizations-and-users-down.sql +0 -2
- package/skills/maestro-examples/references/cadence/infrastructure/db-migrations/sqls/20260404000001_organizations-and-users-up.sql +0 -24
- package/skills/maestro-examples/references/cadence/infrastructure/db-migrations/sqls/20260404000002_contacts-down.sql +0 -1
- package/skills/maestro-examples/references/cadence/infrastructure/db-migrations/sqls/20260404000002_contacts-up.sql +0 -16
- package/skills/maestro-examples/references/cadence/infrastructure/db-migrations/sqls/20260404000003_interactions-down.sql +0 -1
- package/skills/maestro-examples/references/cadence/infrastructure/db-migrations/sqls/20260404000003_interactions-up.sql +0 -15
- package/skills/maestro-examples/references/cadence/infrastructure/db-migrations/sqls/20260404000004_remember-me-tokens-down.sql +0 -1
- package/skills/maestro-examples/references/cadence/infrastructure/db-migrations/sqls/20260404000004_remember-me-tokens-up.sql +0 -12
- package/skills/maestro-examples/references/cadence/infrastructure/db-migrations/sqls/20260404000005_password-reset-tokens-down.sql +0 -1
- package/skills/maestro-examples/references/cadence/infrastructure/db-migrations/sqls/20260404000005_password-reset-tokens-up.sql +0 -11
- package/skills/maestro-examples/references/cadence/infrastructure/db-migrations/sqls/20260404000006_queue-and-recurring-jobs-down.sql +0 -2
- package/skills/maestro-examples/references/cadence/infrastructure/db-migrations/sqls/20260404000006_queue-and-recurring-jobs-up.sql +0 -21
- package/skills/maestro-examples/references/cadence/package.json +0 -17
- package/skills/maestro-examples/references/cadence/packages/schemas/package.json +0 -17
- package/skills/maestro-examples/references/cadence/packages/schemas/src/contact/index.ts +0 -57
- package/skills/maestro-examples/references/cadence/packages/schemas/src/index.ts +0 -4
- package/skills/maestro-examples/references/cadence/packages/schemas/src/interaction/index.ts +0 -45
- package/skills/maestro-examples/references/cadence/packages/schemas/src/organization/index.ts +0 -32
- package/skills/maestro-examples/references/cadence/packages/schemas/src/user/index.ts +0 -69
- package/skills/maestro-examples/references/cadence/packages/schemas/tsconfig.json +0 -9
- package/skills/maestro-examples/references/cadence/packages/services/package.json +0 -43
- package/skills/maestro-examples/references/cadence/packages/services/run-tests.ts +0 -59
- package/skills/maestro-examples/references/cadence/packages/services/src/auth/auth-db-provider.ts +0 -202
- package/skills/maestro-examples/references/cadence/packages/services/src/auth/auth-use-cases.ts +0 -156
- package/skills/maestro-examples/references/cadence/packages/services/src/auth/index.ts +0 -17
- package/skills/maestro-examples/references/cadence/packages/services/src/auth/profile-db-provider.ts +0 -17
- package/skills/maestro-examples/references/cadence/packages/services/src/contact/contact-db-provider.test.ts +0 -120
- package/skills/maestro-examples/references/cadence/packages/services/src/contact/contact-db-provider.ts +0 -145
- package/skills/maestro-examples/references/cadence/packages/services/src/contact/contact-use-cases.ts +0 -196
- package/skills/maestro-examples/references/cadence/packages/services/src/contact/index.ts +0 -29
- package/skills/maestro-examples/references/cadence/packages/services/src/index.ts +0 -23
- package/skills/maestro-examples/references/cadence/packages/services/src/interaction/index.ts +0 -25
- package/skills/maestro-examples/references/cadence/packages/services/src/interaction/interaction-db-provider.test.ts +0 -128
- package/skills/maestro-examples/references/cadence/packages/services/src/interaction/interaction-db-provider.ts +0 -98
- package/skills/maestro-examples/references/cadence/packages/services/src/interaction/interaction-use-cases.ts +0 -171
- package/skills/maestro-examples/references/cadence/packages/services/src/maestro.ts +0 -218
- package/skills/maestro-examples/references/cadence/packages/services/src/organization/index.ts +0 -8
- package/skills/maestro-examples/references/cadence/packages/services/src/organization/organization-db-provider.test.ts +0 -53
- package/skills/maestro-examples/references/cadence/packages/services/src/organization/organization-db-provider.ts +0 -60
- package/skills/maestro-examples/references/cadence/packages/services/src/organization/organization-use-cases.ts +0 -88
- package/skills/maestro-examples/references/cadence/packages/services/src/permissions.ts +0 -28
- package/skills/maestro-examples/references/cadence/packages/services/src/testing/contact-seed.ts +0 -30
- package/skills/maestro-examples/references/cadence/packages/services/src/testing/index.ts +0 -13
- package/skills/maestro-examples/references/cadence/packages/services/src/testing/interaction-seed.ts +0 -29
- package/skills/maestro-examples/references/cadence/packages/services/src/testing/organization-seed.ts +0 -25
- package/skills/maestro-examples/references/cadence/packages/services/src/testing/seed-pipe.ts +0 -38
- package/skills/maestro-examples/references/cadence/packages/services/src/testing/user-seed.ts +0 -27
- package/skills/maestro-examples/references/cadence/packages/services/src/user/index.ts +0 -27
- package/skills/maestro-examples/references/cadence/packages/services/src/user/user-db-provider.test.ts +0 -100
- package/skills/maestro-examples/references/cadence/packages/services/src/user/user-db-provider.ts +0 -69
- package/skills/maestro-examples/references/cadence/packages/services/src/user/user-use-cases.ts +0 -162
- package/skills/maestro-examples/references/cadence/packages/services/tsconfig.json +0 -9
- package/skills/maestro-examples/references/cadence/scripts/foreign-key-delete-behavior.ts +0 -106
- package/skills/maestro-examples/references/cadence/specs/app.md +0 -72
- package/skills/maestro-examples/references/cadence/specs/data-models.md +0 -80
- package/skills/maestro-examples/references/cadence/specs/multi-tenant-security.md +0 -239
- package/skills/maestro-examples/references/cadence/specs/rich-text-editor.md +0 -108
- package/skills/maestro-examples/references/cadence/specs/table.md +0 -151
- package/skills/maestro-examples/references/cadence/specs/use-cases.md +0 -62
- package/skills/maestro-examples/references/cadence/tsconfig.json +0 -29
- package/skills/maestro-examples/references/chorus/chorus-web/app/app.css +0 -152
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/alert-dialog.tsx +0 -153
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/avatar.tsx +0 -57
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/button-group.tsx +0 -78
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/button-link.tsx +0 -77
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/button.tsx +0 -139
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/channel-card.tsx +0 -40
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/checkbox-group.tsx +0 -175
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/checkbox.tsx +0 -210
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/chip.tsx +0 -161
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/container.tsx +0 -85
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/date-picker.tsx +0 -214
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/date-time-picker.tsx +0 -199
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/dialog.tsx +0 -114
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/enum-chip.tsx +0 -33
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/file-input.tsx +0 -248
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/form.tsx +0 -106
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/headless-file-input.tsx +0 -365
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/helpers/animated-popover.tsx +0 -27
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/helpers/button-context.ts +0 -13
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/helpers/calendar-month-year-picker.tsx +0 -283
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/helpers/form-field.tsx +0 -231
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/helpers/get-button-classes.ts +0 -141
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/helpers/headless-button.tsx +0 -39
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/helpers/pdf-dist.client.ts +0 -9
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/icon.tsx +0 -29
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/image-grid.tsx +0 -96
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/image-input.tsx +0 -268
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/inline-alert.tsx +0 -57
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/like-button.tsx +0 -48
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/menu.tsx +0 -189
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/pdf-input.tsx +0 -252
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/pdf.tsx +0 -89
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/post-card.tsx +0 -147
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/post-composer.tsx +0 -166
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/radio-group.tsx +0 -115
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/select.tsx +0 -219
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/spinner.tsx +0 -19
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/tag-field.tsx +0 -253
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/text-area.tsx +0 -151
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/text-field.tsx +0 -147
- package/skills/maestro-examples/references/chorus/chorus-web/app/components/toast.tsx +0 -179
- package/skills/maestro-examples/references/chorus/chorus-web/app/entry.client.tsx +0 -21
- package/skills/maestro-examples/references/chorus/chorus-web/app/entry.server.tsx +0 -12
- package/skills/maestro-examples/references/chorus/chorus-web/app/features/csrf-hidden-input.tsx +0 -6
- package/skills/maestro-examples/references/chorus/chorus-web/app/features/csrf-middleware.server.ts +0 -17
- package/skills/maestro-examples/references/chorus/chorus-web/app/features/custom-error-status-code-middleware.server.ts +0 -18
- package/skills/maestro-examples/references/chorus/chorus-web/app/features/rate-limiting-middleware.server.ts +0 -36
- package/skills/maestro-examples/references/chorus/chorus-web/app/features/redirect-with-toast.server.ts +0 -14
- package/skills/maestro-examples/references/chorus/chorus-web/app/features/request-context.server.ts +0 -40
- package/skills/maestro-examples/references/chorus/chorus-web/app/features/security-headers-middleware.server.ts +0 -10
- package/skills/maestro-examples/references/chorus/chorus-web/app/icons/types.ts +0 -26
- package/skills/maestro-examples/references/chorus/chorus-web/app/root.tsx +0 -164
- package/skills/maestro-examples/references/chorus/chorus-web/app/routes/_auth/forgot-password.tsx +0 -90
- package/skills/maestro-examples/references/chorus/chorus-web/app/routes/_auth/login.tsx +0 -104
- package/skills/maestro-examples/references/chorus/chorus-web/app/routes/_auth/logout.tsx +0 -44
- package/skills/maestro-examples/references/chorus/chorus-web/app/routes/_auth/reset-password.tsx +0 -130
- package/skills/maestro-examples/references/chorus/chorus-web/app/routes/_auth/signup.tsx +0 -91
- package/skills/maestro-examples/references/chorus/chorus-web/app/routes/_browse/_layout.tsx +0 -36
- package/skills/maestro-examples/references/chorus/chorus-web/app/routes/_browse/c.new.tsx +0 -47
- package/skills/maestro-examples/references/chorus/chorus-web/app/routes/_browse/index.tsx +0 -3
- package/skills/maestro-examples/references/chorus/chorus-web/app/routes/api/hide-post.$postId.tsx +0 -30
- package/skills/maestro-examples/references/chorus/chorus-web/app/routes/api/like.$postId.tsx +0 -22
- package/skills/maestro-examples/references/chorus/chorus-web/app/routes/c.$slug/_layout.tsx +0 -108
- package/skills/maestro-examples/references/chorus/chorus-web/app/routes/c.$slug/post.new.tsx +0 -59
- package/skills/maestro-examples/references/chorus/chorus-web/app/routes/c.$slug.edit.tsx +0 -53
- package/skills/maestro-examples/references/chorus/chorus-web/app/routes/c.$slug.manage/_layout.tsx +0 -123
- package/skills/maestro-examples/references/chorus/chorus-web/app/routes/c.$slug.manage/add-moderator.tsx +0 -48
- package/skills/maestro-examples/references/chorus/chorus-web/app/routes/c.$slug.manage/transfer-ownership.tsx +0 -71
- package/skills/maestro-examples/references/chorus/chorus-web/app/routes/c.$slug.post.$postId.tsx +0 -119
- package/skills/maestro-examples/references/chorus/chorus-web/app/routes/files.$.tsx +0 -22
- package/skills/maestro-examples/references/chorus/chorus-web/app/routes/health.tsx +0 -3
- package/skills/maestro-examples/references/chorus/chorus-web/app/routes/settings.tsx +0 -128
- package/skills/maestro-examples/references/chorus/chorus-web/app/routes.ts +0 -4
- package/skills/maestro-examples/references/chorus/chorus-web/app/services.server.ts +0 -1
- package/skills/maestro-examples/references/chorus/chorus-web/app/utils/colors.ts +0 -47
- package/skills/maestro-examples/references/chorus/chorus-web/app/utils/compose-refs.ts +0 -35
- package/skills/maestro-examples/references/chorus/chorus-web/app/utils/enum-colors.ts +0 -4
- package/skills/maestro-examples/references/chorus/chorus-web/app/utils/file-input.ts +0 -52
- package/skills/maestro-examples/references/chorus/chorus-web/app/utils/tw.ts +0 -16
- package/skills/maestro-examples/references/chorus/chorus-web/app/utils/use-element-size.ts +0 -35
- package/skills/maestro-examples/references/chorus/chorus-web/app/utils/use-number-input.ts +0 -143
- package/skills/maestro-examples/references/chorus/chorus-web/app/utils/use-pagination.ts +0 -41
- package/skills/maestro-examples/references/chorus/chorus-web/app/utils/use-prevent-default.ts +0 -30
- package/skills/maestro-examples/references/chorus/chorus-web/app/utils/use-profile.ts +0 -7
- package/skills/maestro-examples/references/chorus/chorus-web/app/utils/use-render-props.ts +0 -42
- package/skills/maestro-examples/references/chorus/chorus-web/app/utils/use-spin-delay.ts +0 -27
- package/skills/maestro-examples/references/chorus/chorus-web/app/utils/use-stable-accessor.ts +0 -14
- package/skills/maestro-examples/references/chorus/chorus-web/app/utils/use-tab-indicator.ts +0 -107
- package/skills/maestro-examples/references/chorus/chorus-web/environment.d.ts +0 -15
- package/skills/maestro-examples/references/chorus/chorus-web/instrument.server.mjs +0 -29
- package/skills/maestro-examples/references/chorus/chorus-web/package.json +0 -54
- package/skills/maestro-examples/references/chorus/chorus-web/playwright.config.ts +0 -39
- package/skills/maestro-examples/references/chorus/chorus-web/react-router.config.ts +0 -12
- package/skills/maestro-examples/references/chorus/chorus-web/tests/auth-landing.test.ts +0 -8
- package/skills/maestro-examples/references/chorus/chorus-web/tests/auth-login.test.ts +0 -40
- package/skills/maestro-examples/references/chorus/chorus-web/tests/auth-logout.test.ts +0 -8
- package/skills/maestro-examples/references/chorus/chorus-web/tests/auth-signup.test.ts +0 -15
- package/skills/maestro-examples/references/chorus/chorus-web/tests/auth.setup.ts +0 -42
- package/skills/maestro-examples/references/chorus/chorus-web/tests/channel-browse.test.ts +0 -43
- package/skills/maestro-examples/references/chorus/chorus-web/tests/channel-create.test.ts +0 -34
- package/skills/maestro-examples/references/chorus/chorus-web/tests/channel-edit.test.ts +0 -33
- package/skills/maestro-examples/references/chorus/chorus-web/tests/channel-manage-moderators.test.ts +0 -59
- package/skills/maestro-examples/references/chorus/chorus-web/tests/channel-manage-permissions.test.ts +0 -55
- package/skills/maestro-examples/references/chorus/chorus-web/tests/channel-transfer.test.ts +0 -47
- package/skills/maestro-examples/references/chorus/chorus-web/tests/constants.ts +0 -7
- package/skills/maestro-examples/references/chorus/chorus-web/tests/forgot-password.test.ts +0 -33
- package/skills/maestro-examples/references/chorus/chorus-web/tests/hide-post-author.test.ts +0 -62
- package/skills/maestro-examples/references/chorus/chorus-web/tests/hide-post-nonauthor.test.ts +0 -36
- package/skills/maestro-examples/references/chorus/chorus-web/tests/like-toggle.test.ts +0 -60
- package/skills/maestro-examples/references/chorus/chorus-web/tests/like-unauth.test.ts +0 -37
- package/skills/maestro-examples/references/chorus/chorus-web/tests/post-create.test.ts +0 -30
- package/skills/maestro-examples/references/chorus/chorus-web/tests/post-listing.test.ts +0 -33
- package/skills/maestro-examples/references/chorus/chorus-web/tests/post-reply.test.ts +0 -48
- package/skills/maestro-examples/references/chorus/chorus-web/tests/post-view-unauth.test.ts +0 -37
- package/skills/maestro-examples/references/chorus/chorus-web/tests/settings-duplicate.test.ts +0 -28
- package/skills/maestro-examples/references/chorus/chorus-web/tests/settings-update.test.ts +0 -34
- package/skills/maestro-examples/references/chorus/chorus-web/tests/settings-view.test.ts +0 -17
- package/skills/maestro-examples/references/chorus/chorus-web/tests/signup-validation.test.ts +0 -51
- package/skills/maestro-examples/references/chorus/chorus-web/tsconfig.json +0 -14
- package/skills/maestro-examples/references/chorus/chorus-web/vite.config.ts +0 -38
- package/skills/maestro-examples/references/chorus/config/app-a.ts +0 -7
- package/skills/maestro-examples/references/chorus/config/chorus-web.ts +0 -7
- package/skills/maestro-examples/references/chorus/config/db-migrate.ts +0 -9
- package/skills/maestro-examples/references/chorus/config/queue-processor.ts +0 -7
- package/skills/maestro-examples/references/chorus/config/services.ts +0 -15
- package/skills/maestro-examples/references/chorus/infrastructure/cdk/index.ts +0 -60
- package/skills/maestro-examples/references/chorus/infrastructure/cdk.context.json +0 -5
- package/skills/maestro-examples/references/chorus/infrastructure/db-migrations/20260303005902_init_authentication.ts +0 -16
- package/skills/maestro-examples/references/chorus/infrastructure/db-migrations/20260308234835_add-maestro-queue-table.ts +0 -16
- package/skills/maestro-examples/references/chorus/infrastructure/db-migrations/20260315051819_channels.ts +0 -16
- package/skills/maestro-examples/references/chorus/infrastructure/db-migrations/20260315052202_channel-moderators.ts +0 -16
- package/skills/maestro-examples/references/chorus/infrastructure/db-migrations/20260315052539_posts.ts +0 -16
- package/skills/maestro-examples/references/chorus/infrastructure/db-migrations/20260315052734_post-images.ts +0 -16
- package/skills/maestro-examples/references/chorus/infrastructure/db-migrations/20260315053110_likes.ts +0 -16
- package/skills/maestro-examples/references/chorus/infrastructure/db-migrations/sqls/20260303005902_init_authentication-down.sql +0 -3
- package/skills/maestro-examples/references/chorus/infrastructure/db-migrations/sqls/20260303005902_init_authentication-up.sql +0 -40
- package/skills/maestro-examples/references/chorus/infrastructure/db-migrations/sqls/20260308234835_add-maestro-queue-table-down.sql +0 -3
- package/skills/maestro-examples/references/chorus/infrastructure/db-migrations/sqls/20260308234835_add-maestro-queue-table-up.sql +0 -23
- package/skills/maestro-examples/references/chorus/infrastructure/db-migrations/sqls/20260315051819_channels-down.sql +0 -1
- package/skills/maestro-examples/references/chorus/infrastructure/db-migrations/sqls/20260315051819_channels-up.sql +0 -11
- package/skills/maestro-examples/references/chorus/infrastructure/db-migrations/sqls/20260315052202_channel-moderators-down.sql +0 -1
- package/skills/maestro-examples/references/chorus/infrastructure/db-migrations/sqls/20260315052202_channel-moderators-up.sql +0 -7
- package/skills/maestro-examples/references/chorus/infrastructure/db-migrations/sqls/20260315052539_posts-down.sql +0 -1
- package/skills/maestro-examples/references/chorus/infrastructure/db-migrations/sqls/20260315052539_posts-up.sql +0 -14
- package/skills/maestro-examples/references/chorus/infrastructure/db-migrations/sqls/20260315052734_post-images-down.sql +0 -1
- package/skills/maestro-examples/references/chorus/infrastructure/db-migrations/sqls/20260315052734_post-images-up.sql +0 -7
- package/skills/maestro-examples/references/chorus/infrastructure/db-migrations/sqls/20260315053110_likes-down.sql +0 -1
- package/skills/maestro-examples/references/chorus/infrastructure/db-migrations/sqls/20260315053110_likes-up.sql +0 -8
- package/skills/maestro-examples/references/chorus/infrastructure/package.json +0 -20
- package/skills/maestro-examples/references/chorus/infrastructure/tsconfig.json +0 -8
- package/skills/maestro-examples/references/chorus/package.json +0 -17
- package/skills/maestro-examples/references/chorus/packages/email-templates/other/generate-email-modules.ts +0 -22
- package/skills/maestro-examples/references/chorus/packages/email-templates/other/generate-email-previews.ts +0 -18
- package/skills/maestro-examples/references/chorus/packages/email-templates/package.json +0 -27
- package/skills/maestro-examples/references/chorus/packages/email-templates/src/components/button.tsx +0 -19
- package/skills/maestro-examples/references/chorus/packages/email-templates/src/components/root-container.tsx +0 -29
- package/skills/maestro-examples/references/chorus/packages/email-templates/src/components/tailwind-wrapper.tsx +0 -113
- package/skills/maestro-examples/references/chorus/packages/email-templates/src/email-modules.ts +0 -9
- package/skills/maestro-examples/references/chorus/packages/email-templates/src/emails/password-reset.tsx +0 -41
- package/skills/maestro-examples/references/chorus/packages/email-templates/src/index.ts +0 -3
- package/skills/maestro-examples/references/chorus/packages/email-templates/src/render-email-template.ts +0 -24
- package/skills/maestro-examples/references/chorus/packages/email-templates/src/utils/tw.ts +0 -5
- package/skills/maestro-examples/references/chorus/packages/email-templates/tsconfig.json +0 -11
- package/skills/maestro-examples/references/chorus/packages/schemas/package.json +0 -17
- package/skills/maestro-examples/references/chorus/packages/schemas/src/channel/index.ts +0 -41
- package/skills/maestro-examples/references/chorus/packages/schemas/src/index.ts +0 -4
- package/skills/maestro-examples/references/chorus/packages/schemas/src/like/index.ts +0 -16
- package/skills/maestro-examples/references/chorus/packages/schemas/src/post/index.ts +0 -44
- package/skills/maestro-examples/references/chorus/packages/schemas/src/profile/index.ts +0 -80
- package/skills/maestro-examples/references/chorus/packages/schemas/tsconfig.json +0 -9
- package/skills/maestro-examples/references/chorus/packages/services/environment.d.ts +0 -7
- package/skills/maestro-examples/references/chorus/packages/services/package.json +0 -47
- package/skills/maestro-examples/references/chorus/packages/services/run-tests.ts +0 -59
- package/skills/maestro-examples/references/chorus/packages/services/src/auth/auth-use-cases.ts +0 -178
- package/skills/maestro-examples/references/chorus/packages/services/src/auth/authenticatable-db-provider.ts +0 -59
- package/skills/maestro-examples/references/chorus/packages/services/src/auth/index.ts +0 -29
- package/skills/maestro-examples/references/chorus/packages/services/src/auth/password-reset-token-db-provider.ts +0 -58
- package/skills/maestro-examples/references/chorus/packages/services/src/auth/remember-me-token-db-provider.ts +0 -82
- package/skills/maestro-examples/references/chorus/packages/services/src/channel/channel-db-provider.test.ts +0 -85
- package/skills/maestro-examples/references/chorus/packages/services/src/channel/channel-db-provider.ts +0 -158
- package/skills/maestro-examples/references/chorus/packages/services/src/channel/channel-use-cases.ts +0 -303
- package/skills/maestro-examples/references/chorus/packages/services/src/channel/index.ts +0 -29
- package/skills/maestro-examples/references/chorus/packages/services/src/index.ts +0 -21
- package/skills/maestro-examples/references/chorus/packages/services/src/like/index.ts +0 -6
- package/skills/maestro-examples/references/chorus/packages/services/src/like/like-db-provider.test.ts +0 -47
- package/skills/maestro-examples/references/chorus/packages/services/src/like/like-db-provider.ts +0 -53
- package/skills/maestro-examples/references/chorus/packages/services/src/like/like-use-cases.ts +0 -31
- package/skills/maestro-examples/references/chorus/packages/services/src/maestro.ts +0 -215
- package/skills/maestro-examples/references/chorus/packages/services/src/permissions.ts +0 -16
- package/skills/maestro-examples/references/chorus/packages/services/src/post/index.ts +0 -25
- package/skills/maestro-examples/references/chorus/packages/services/src/post/post-db-provider.test.ts +0 -68
- package/skills/maestro-examples/references/chorus/packages/services/src/post/post-db-provider.ts +0 -219
- package/skills/maestro-examples/references/chorus/packages/services/src/post/post-use-cases.ts +0 -184
- package/skills/maestro-examples/references/chorus/packages/services/src/post/redact-hidden-post.ts +0 -4
- package/skills/maestro-examples/references/chorus/packages/services/src/profile/index.ts +0 -17
- package/skills/maestro-examples/references/chorus/packages/services/src/profile/profile-db-provider.test.ts +0 -57
- package/skills/maestro-examples/references/chorus/packages/services/src/profile/profile-db-provider.ts +0 -75
- package/skills/maestro-examples/references/chorus/packages/services/src/profile/profile-use-cases.ts +0 -61
- package/skills/maestro-examples/references/chorus/packages/services/src/testing/channel-seed.ts +0 -27
- package/skills/maestro-examples/references/chorus/packages/services/src/testing/index.ts +0 -13
- package/skills/maestro-examples/references/chorus/packages/services/src/testing/like-seed.ts +0 -21
- package/skills/maestro-examples/references/chorus/packages/services/src/testing/post-seed.ts +0 -27
- package/skills/maestro-examples/references/chorus/packages/services/src/testing/profile-seed.ts +0 -28
- package/skills/maestro-examples/references/chorus/packages/services/src/testing/seed-pipe.ts +0 -38
- package/skills/maestro-examples/references/chorus/packages/services/tsconfig.json +0 -9
- package/skills/maestro-examples/references/chorus/scripts/foreign-key-delete-behavior.ts +0 -111
- package/skills/maestro-examples/references/chorus/specs/app.md +0 -73
- package/skills/maestro-examples/references/chorus/specs/data-models.md +0 -48
- package/skills/maestro-examples/references/chorus/specs/database-schema.md +0 -59
- package/skills/maestro-examples/references/chorus/specs/use-cases.md +0 -33
- package/skills/maestro-examples/references/chorus/tsconfig.json +0 -29
- package/skills/maestro-examples/references/setlist/IMPLEMENTATION_PLAN.md +0 -88
- package/skills/maestro-examples/references/setlist/config/db-migrate.ts +0 -9
- package/skills/maestro-examples/references/setlist/config/queue-processor.ts +0 -11
- package/skills/maestro-examples/references/setlist/config/services.ts +0 -16
- package/skills/maestro-examples/references/setlist/config/setlist-web.ts +0 -12
- package/skills/maestro-examples/references/setlist/infrastructure/cdk/index.ts +0 -56
- package/skills/maestro-examples/references/setlist/infrastructure/cdk.context.json +0 -5
- package/skills/maestro-examples/references/setlist/infrastructure/db-migrations/20260316000000_init.ts +0 -16
- package/skills/maestro-examples/references/setlist/infrastructure/db-migrations/20260317000000_add-queue-and-recurring-job-tables.ts +0 -22
- package/skills/maestro-examples/references/setlist/infrastructure/db-migrations/sqls/20260316000000_init-down.sql +0 -5
- package/skills/maestro-examples/references/setlist/infrastructure/db-migrations/sqls/20260316000000_init-up.sql +0 -68
- package/skills/maestro-examples/references/setlist/infrastructure/db-migrations/sqls/20260317000000_add-queue-and-recurring-job-tables-down.sql +0 -2
- package/skills/maestro-examples/references/setlist/infrastructure/db-migrations/sqls/20260317000000_add-queue-and-recurring-job-tables-up.sql +0 -21
- package/skills/maestro-examples/references/setlist/infrastructure/package.json +0 -20
- package/skills/maestro-examples/references/setlist/infrastructure/tsconfig.json +0 -8
- package/skills/maestro-examples/references/setlist/package.json +0 -19
- package/skills/maestro-examples/references/setlist/packages/email-templates/other/generate-email-modules.ts +0 -22
- package/skills/maestro-examples/references/setlist/packages/email-templates/other/generate-email-previews.ts +0 -18
- package/skills/maestro-examples/references/setlist/packages/email-templates/package.json +0 -27
- package/skills/maestro-examples/references/setlist/packages/email-templates/src/components/button.tsx +0 -19
- package/skills/maestro-examples/references/setlist/packages/email-templates/src/components/root-container.tsx +0 -29
- package/skills/maestro-examples/references/setlist/packages/email-templates/src/components/tailwind-wrapper.tsx +0 -113
- package/skills/maestro-examples/references/setlist/packages/email-templates/src/email-modules.ts +0 -9
- package/skills/maestro-examples/references/setlist/packages/email-templates/src/emails/magic-link-login.tsx +0 -49
- package/skills/maestro-examples/references/setlist/packages/email-templates/src/index.ts +0 -3
- package/skills/maestro-examples/references/setlist/packages/email-templates/src/render-email-template.ts +0 -24
- package/skills/maestro-examples/references/setlist/packages/email-templates/src/utils/tw.ts +0 -5
- package/skills/maestro-examples/references/setlist/packages/email-templates/tsconfig.json +0 -11
- package/skills/maestro-examples/references/setlist/packages/email-templates/tsup.config.ts +0 -10
- package/skills/maestro-examples/references/setlist/packages/schemas/package.json +0 -21
- package/skills/maestro-examples/references/setlist/packages/schemas/src/area/index.ts +0 -28
- package/skills/maestro-examples/references/setlist/packages/schemas/src/index.ts +0 -6
- package/skills/maestro-examples/references/setlist/packages/schemas/src/magic-link/index.ts +0 -20
- package/skills/maestro-examples/references/setlist/packages/schemas/src/position.ts +0 -137
- package/skills/maestro-examples/references/setlist/packages/schemas/src/project/index.ts +0 -44
- package/skills/maestro-examples/references/setlist/packages/schemas/src/task/index.ts +0 -41
- package/skills/maestro-examples/references/setlist/packages/schemas/src/user/index.ts +0 -28
- package/skills/maestro-examples/references/setlist/packages/schemas/tests/position.test.ts +0 -106
- package/skills/maestro-examples/references/setlist/packages/schemas/tsconfig.json +0 -9
- package/skills/maestro-examples/references/setlist/packages/services/package.json +0 -40
- package/skills/maestro-examples/references/setlist/packages/services/run-tests.ts +0 -59
- package/skills/maestro-examples/references/setlist/packages/services/src/area/area-db-provider.test.ts +0 -29
- package/skills/maestro-examples/references/setlist/packages/services/src/area/area-db-provider.ts +0 -81
- package/skills/maestro-examples/references/setlist/packages/services/src/area/area-use-cases.ts +0 -130
- package/skills/maestro-examples/references/setlist/packages/services/src/area/index.ts +0 -27
- package/skills/maestro-examples/references/setlist/packages/services/src/auth/auth-db-provider.test.ts +0 -34
- package/skills/maestro-examples/references/setlist/packages/services/src/auth/auth-db-provider.ts +0 -24
- package/skills/maestro-examples/references/setlist/packages/services/src/auth/auth-use-cases.ts +0 -110
- package/skills/maestro-examples/references/setlist/packages/services/src/auth/index.ts +0 -18
- package/skills/maestro-examples/references/setlist/packages/services/src/auth/magic-link-db-provider.test.ts +0 -52
- package/skills/maestro-examples/references/setlist/packages/services/src/auth/magic-link-db-provider.ts +0 -59
- package/skills/maestro-examples/references/setlist/packages/services/src/auth/user-db-provider.test.ts +0 -33
- package/skills/maestro-examples/references/setlist/packages/services/src/auth/user-db-provider.ts +0 -55
- package/skills/maestro-examples/references/setlist/packages/services/src/auth/verify-magic-link-credentials.ts +0 -39
- package/skills/maestro-examples/references/setlist/packages/services/src/index.ts +0 -20
- package/skills/maestro-examples/references/setlist/packages/services/src/maestro.ts +0 -175
- package/skills/maestro-examples/references/setlist/packages/services/src/project/index.ts +0 -29
- package/skills/maestro-examples/references/setlist/packages/services/src/project/project-db-provider.test.ts +0 -46
- package/skills/maestro-examples/references/setlist/packages/services/src/project/project-db-provider.ts +0 -114
- package/skills/maestro-examples/references/setlist/packages/services/src/project/project-use-cases.ts +0 -183
- package/skills/maestro-examples/references/setlist/packages/services/src/task/index.ts +0 -39
- package/skills/maestro-examples/references/setlist/packages/services/src/task/task-db-provider.test.ts +0 -53
- package/skills/maestro-examples/references/setlist/packages/services/src/task/task-db-provider.ts +0 -219
- package/skills/maestro-examples/references/setlist/packages/services/src/task/task-use-cases.ts +0 -303
- package/skills/maestro-examples/references/setlist/packages/services/src/testing/area-seed.ts +0 -25
- package/skills/maestro-examples/references/setlist/packages/services/src/testing/index.ts +0 -13
- package/skills/maestro-examples/references/setlist/packages/services/src/testing/project-seed.ts +0 -29
- package/skills/maestro-examples/references/setlist/packages/services/src/testing/seed-pipe.ts +0 -38
- package/skills/maestro-examples/references/setlist/packages/services/src/testing/task-seed.ts +0 -31
- package/skills/maestro-examples/references/setlist/packages/services/src/testing/user-seed.ts +0 -24
- package/skills/maestro-examples/references/setlist/packages/services/tsconfig.json +0 -9
- package/skills/maestro-examples/references/setlist/queue-processor/package.json +0 -17
- package/skills/maestro-examples/references/setlist/queue-processor/src/index.ts +0 -29
- package/skills/maestro-examples/references/setlist/queue-processor/src/recurring-jobs.ts +0 -13
- package/skills/maestro-examples/references/setlist/queue-processor/tsconfig.json +0 -4
- package/skills/maestro-examples/references/setlist/scripts/foreign-key-delete-behavior.ts +0 -107
- package/skills/maestro-examples/references/setlist/setlist-web/app/app.css +0 -158
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/alert-dialog.tsx +0 -153
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/app-dnd-provider.tsx +0 -180
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/area-form.tsx +0 -113
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/button-group.tsx +0 -78
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/button.tsx +0 -139
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/checkbox.tsx +0 -210
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/context-menu.tsx +0 -78
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/date-picker.tsx +0 -214
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/dnd-collision-detection.ts +0 -28
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/dnd-utils.ts +0 -11
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/drag-ghost.tsx +0 -24
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/form.tsx +0 -107
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/helpers/animated-popover.tsx +0 -27
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/helpers/button-context.ts +0 -13
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/helpers/calendar-month-year-picker.tsx +0 -283
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/helpers/form-field.tsx +0 -231
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/helpers/get-button-classes.ts +0 -141
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/helpers/headless-button.tsx +0 -39
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/icon.tsx +0 -29
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/inline-alert.tsx +0 -57
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/project-form.tsx +0 -153
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/select.tsx +0 -219
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/sidebar/helpers.ts +0 -73
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/sidebar/index.ts +0 -6
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/sidebar/inline-inputs.tsx +0 -128
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/sidebar/sidebar.tsx +0 -333
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/sidebar/sortable-rows.tsx +0 -256
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/sidebar/use-sidebar-dnd.ts +0 -261
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/spinner.tsx +0 -19
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/task-inline-create.tsx +0 -51
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/task-list/index.ts +0 -3
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/task-list/task-date-helpers.ts +0 -16
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/task-list/task-expanded-detail.tsx +0 -273
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/task-list/task-keyboard-helpers.ts +0 -5
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/task-list/task-list.tsx +0 -134
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/task-list/task-row.tsx +0 -100
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/task-list/types.ts +0 -49
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/task-list/use-expanded-cache.ts +0 -22
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/task-list/use-sticky-task.ts +0 -24
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/task-list/use-task-reorder.ts +0 -140
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/text-area.tsx +0 -151
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/text-field.tsx +0 -147
- package/skills/maestro-examples/references/setlist/setlist-web/app/components/toast.tsx +0 -179
- package/skills/maestro-examples/references/setlist/setlist-web/app/entry.client.tsx +0 -21
- package/skills/maestro-examples/references/setlist/setlist-web/app/entry.server.tsx +0 -13
- package/skills/maestro-examples/references/setlist/setlist-web/app/features/csrf-middleware.server.ts +0 -17
- package/skills/maestro-examples/references/setlist/setlist-web/app/features/custom-error-status-code-middleware.server.ts +0 -31
- package/skills/maestro-examples/references/setlist/setlist-web/app/features/rate-limiting-middleware.server.ts +0 -36
- package/skills/maestro-examples/references/setlist/setlist-web/app/features/redirect-with-toast.server.ts +0 -14
- package/skills/maestro-examples/references/setlist/setlist-web/app/features/request-context.server.ts +0 -52
- package/skills/maestro-examples/references/setlist/setlist-web/app/features/security-headers-middleware.server.ts +0 -10
- package/skills/maestro-examples/references/setlist/setlist-web/app/hooks/use-area-actions.ts +0 -44
- package/skills/maestro-examples/references/setlist/setlist-web/app/hooks/use-csrf-token.ts +0 -6
- package/skills/maestro-examples/references/setlist/setlist-web/app/hooks/use-project-actions.ts +0 -80
- package/skills/maestro-examples/references/setlist/setlist-web/app/hooks/use-task-actions.ts +0 -65
- package/skills/maestro-examples/references/setlist/setlist-web/app/root.tsx +0 -218
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/api/areas.$id.delete.tsx +0 -19
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/api/areas.$id.edit.tsx +0 -27
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/api/areas.$id.reorder.tsx +0 -30
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/api/areas.tsx +0 -23
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/api/projects.$id.complete.tsx +0 -19
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/api/projects.$id.delete.tsx +0 -19
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/api/projects.$id.edit.tsx +0 -32
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/api/projects.$id.move.tsx +0 -23
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/api/projects.$id.reorder.tsx +0 -30
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/api/projects.$id.uncomplete.tsx +0 -19
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/api/projects.tsx +0 -23
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/api/tasks.$id.complete.tsx +0 -19
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/api/tasks.$id.delete.tsx +0 -19
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/api/tasks.$id.edit.tsx +0 -27
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/api/tasks.$id.move.tsx +0 -30
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/api/tasks.$id.reorder.tsx +0 -32
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/api/tasks.$id.uncomplete.tsx +0 -19
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/api/tasks.tsx +0 -23
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/areas.$id.tsx +0 -155
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/auth.login.tsx +0 -98
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/auth.logout.tsx +0 -17
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/auth.verify.tsx +0 -154
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/completed.tsx +0 -121
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/inbox.tsx +0 -68
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/projects.$id.tsx +0 -217
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/today.tsx +0 -86
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes/upcoming.tsx +0 -83
- package/skills/maestro-examples/references/setlist/setlist-web/app/routes.ts +0 -4
- package/skills/maestro-examples/references/setlist/setlist-web/app/services.server.ts +0 -1
- package/skills/maestro-examples/references/setlist/setlist-web/app/utils/colors.ts +0 -47
- package/skills/maestro-examples/references/setlist/setlist-web/app/utils/compose-refs.ts +0 -35
- package/skills/maestro-examples/references/setlist/setlist-web/app/utils/tw.ts +0 -16
- package/skills/maestro-examples/references/setlist/setlist-web/app/utils/use-dismiss.ts +0 -27
- package/skills/maestro-examples/references/setlist/setlist-web/app/utils/use-fetcher-complete.ts +0 -17
- package/skills/maestro-examples/references/setlist/setlist-web/app/utils/use-prevent-default.ts +0 -30
- package/skills/maestro-examples/references/setlist/setlist-web/app/utils/use-render-props.ts +0 -42
- package/skills/maestro-examples/references/setlist/setlist-web/app/utils/use-spin-delay.ts +0 -27
- package/skills/maestro-examples/references/setlist/setlist-web/app/utils/use-stable-accessor.ts +0 -14
- package/skills/maestro-examples/references/setlist/setlist-web/environment.d.ts +0 -8
- package/skills/maestro-examples/references/setlist/setlist-web/instrument.server.mjs +0 -29
- package/skills/maestro-examples/references/setlist/setlist-web/knip.json +0 -3
- package/skills/maestro-examples/references/setlist/setlist-web/package.json +0 -52
- package/skills/maestro-examples/references/setlist/setlist-web/playwright.config.ts +0 -39
- package/skills/maestro-examples/references/setlist/setlist-web/react-router.config.ts +0 -12
- package/skills/maestro-examples/references/setlist/setlist-web/tests/areas-create.test.ts +0 -37
- package/skills/maestro-examples/references/setlist/setlist-web/tests/areas-delete.test.ts +0 -45
- package/skills/maestro-examples/references/setlist/setlist-web/tests/areas-deleted-not-in-sidebar.test.ts +0 -44
- package/skills/maestro-examples/references/setlist/setlist-web/tests/areas-detail-view.test.ts +0 -46
- package/skills/maestro-examples/references/setlist/setlist-web/tests/areas-edit-title.test.ts +0 -48
- package/skills/maestro-examples/references/setlist/setlist-web/tests/areas-expand-collapse.test.ts +0 -50
- package/skills/maestro-examples/references/setlist/setlist-web/tests/areas-list-in-sidebar.test.ts +0 -37
- package/skills/maestro-examples/references/setlist/setlist-web/tests/areas-reorder-dnd.test.ts +0 -82
- package/skills/maestro-examples/references/setlist/setlist-web/tests/auth-logout.test.ts +0 -18
- package/skills/maestro-examples/references/setlist/setlist-web/tests/auth-reject-invalid-token.test.ts +0 -35
- package/skills/maestro-examples/references/setlist/setlist-web/tests/auth-reject-used-token.test.ts +0 -104
- package/skills/maestro-examples/references/setlist/setlist-web/tests/auth-request-magic-link.test.ts +0 -29
- package/skills/maestro-examples/references/setlist/setlist-web/tests/auth-verify-via-pasted-token.test.ts +0 -52
- package/skills/maestro-examples/references/setlist/setlist-web/tests/auth-verify-via-url.test.ts +0 -48
- package/skills/maestro-examples/references/setlist/setlist-web/tests/auth.setup.ts +0 -55
- package/skills/maestro-examples/references/setlist/setlist-web/tests/constants.ts +0 -13
- package/skills/maestro-examples/references/setlist/setlist-web/tests/dnd-inbox-to-area.test.ts +0 -74
- package/skills/maestro-examples/references/setlist/setlist-web/tests/dnd-inbox-to-project.test.ts +0 -73
- package/skills/maestro-examples/references/setlist/setlist-web/tests/dnd-move-to-inbox.test.ts +0 -51
- package/skills/maestro-examples/references/setlist/setlist-web/tests/dnd-project-to-area.test.ts +0 -76
- package/skills/maestro-examples/references/setlist/setlist-web/tests/dnd-project-to-project.test.ts +0 -75
- package/skills/maestro-examples/references/setlist/setlist-web/tests/home.test.ts +0 -27
- package/skills/maestro-examples/references/setlist/setlist-web/tests/projects-complete.test.ts +0 -53
- package/skills/maestro-examples/references/setlist/setlist-web/tests/projects-completed-not-in-sidebar.test.ts +0 -46
- package/skills/maestro-examples/references/setlist/setlist-web/tests/projects-create-in-area.test.ts +0 -55
- package/skills/maestro-examples/references/setlist/setlist-web/tests/projects-create-top-level.test.ts +0 -37
- package/skills/maestro-examples/references/setlist/setlist-web/tests/projects-delete.test.ts +0 -55
- package/skills/maestro-examples/references/setlist/setlist-web/tests/projects-edit-notes-date.test.ts +0 -69
- package/skills/maestro-examples/references/setlist/setlist-web/tests/projects-edit-title.test.ts +0 -48
- package/skills/maestro-examples/references/setlist/setlist-web/tests/projects-move-into-area.test.ts +0 -72
- package/skills/maestro-examples/references/setlist/setlist-web/tests/projects-move-out-of-area.test.ts +0 -76
- package/skills/maestro-examples/references/setlist/setlist-web/tests/projects-reorder-top-level.test.ts +0 -82
- package/skills/maestro-examples/references/setlist/setlist-web/tests/projects-reorder-within-area.test.ts +0 -91
- package/skills/maestro-examples/references/setlist/setlist-web/tests/projects-uncomplete.test.ts +0 -39
- package/skills/maestro-examples/references/setlist/setlist-web/tests/projects-view-tasks.test.ts +0 -48
- package/skills/maestro-examples/references/setlist/setlist-web/tests/tasks-complete-removes-from-active-views.test.ts +0 -52
- package/skills/maestro-examples/references/setlist/setlist-web/tests/tasks-complete.test.ts +0 -46
- package/skills/maestro-examples/references/setlist/setlist-web/tests/tasks-create-in-inbox.test.ts +0 -19
- package/skills/maestro-examples/references/setlist/setlist-web/tests/tasks-create-in-project.test.ts +0 -44
- package/skills/maestro-examples/references/setlist/setlist-web/tests/tasks-delete.test.ts +0 -52
- package/skills/maestro-examples/references/setlist/setlist-web/tests/tasks-edit.test.ts +0 -73
- package/skills/maestro-examples/references/setlist/setlist-web/tests/tasks-reorder-in-project.test.ts +0 -81
- package/skills/maestro-examples/references/setlist/setlist-web/tests/tasks-reorder-inbox.test.ts +0 -80
- package/skills/maestro-examples/references/setlist/setlist-web/tests/tasks-reorder-today.test.ts +0 -103
- package/skills/maestro-examples/references/setlist/setlist-web/tests/tasks-uncomplete.test.ts +0 -51
- package/skills/maestro-examples/references/setlist/setlist-web/tests/tasks-view-details.test.ts +0 -51
- package/skills/maestro-examples/references/setlist/setlist-web/tests/views-active-sidebar-highlight.test.ts +0 -38
- package/skills/maestro-examples/references/setlist/setlist-web/tests/views-inbox-unassigned-only.test.ts +0 -43
- package/skills/maestro-examples/references/setlist/setlist-web/tests/views-navigate-to-completed.test.ts +0 -59
- package/skills/maestro-examples/references/setlist/setlist-web/tests/views-navigate-to-inbox.test.ts +0 -21
- package/skills/maestro-examples/references/setlist/setlist-web/tests/views-navigate-to-today.test.ts +0 -42
- package/skills/maestro-examples/references/setlist/setlist-web/tests/views-navigate-to-upcoming.test.ts +0 -59
- package/skills/maestro-examples/references/setlist/setlist-web/tests/views-sidebar-built-in-views.test.ts +0 -23
- package/skills/maestro-examples/references/setlist/setlist-web/tests/views-today-shows-overdue.test.ts +0 -48
- package/skills/maestro-examples/references/setlist/setlist-web/tsconfig.json +0 -22
- package/skills/maestro-examples/references/setlist/setlist-web/vite.config.ts +0 -37
- package/skills/maestro-examples/references/setlist/specs/app.md +0 -69
- package/skills/maestro-examples/references/setlist/specs/data-models.md +0 -92
- package/skills/maestro-examples/references/setlist/specs/database-schema.md +0 -76
- package/skills/maestro-examples/references/setlist/specs/drag-and-drop.md +0 -89
- package/skills/maestro-examples/references/setlist/specs/magic-link-login.md +0 -300
- package/skills/maestro-examples/references/setlist/specs/position-ordering.md +0 -329
- package/skills/maestro-examples/references/setlist/specs/sidebar.md +0 -65
- package/skills/maestro-examples/references/setlist/specs/use-cases.md +0 -55
- package/skills/maestro-examples/references/setlist/tsconfig.json +0 -28
- package/skills/maestro-packages/permissions.md +0 -215
- package/skills/maestro-packages/queue.md +0 -442
- package/skills/maestro-packages/recurring-jobs.md +0 -238
- package/skills/react-use-effect/SKILL.md +0 -65
- package/skills/react-use-effect/references/patterns.md +0 -283
- /package/{skills → dist}/maestro-cli/SKILL.md +0 -0
- /package/{skills → dist}/maestro-packages/broadcast.md +0 -0
- /package/{skills → dist}/maestro-packages/cache-control.md +0 -0
- /package/{skills → dist}/maestro-packages/cache.md +0 -0
- /package/{skills → dist}/maestro-packages/config.md +0 -0
- /package/{skills → dist}/maestro-packages/context.md +0 -0
- /package/{skills → dist}/maestro-packages/crypt.md +0 -0
- /package/{skills → dist}/maestro-packages/db.md +0 -0
- /package/{skills → dist}/maestro-packages/events.md +0 -0
- /package/{skills → dist}/maestro-packages/exceptions.md +0 -0
- /package/{skills → dist}/maestro-packages/form.md +0 -0
- /package/{skills → dist}/maestro-packages/hash.md +0 -0
- /package/{skills → dist}/maestro-packages/helpers.md +0 -0
- /package/{skills → dist}/maestro-packages/log.md +0 -0
- /package/{skills → dist}/maestro-packages/mail.md +0 -0
- /package/{skills → dist}/maestro-packages/metrics.md +0 -0
- /package/{skills → dist}/maestro-packages/rate-limiting.md +0 -0
- /package/{skills → dist}/maestro-packages/react-router-file-routes.md +0 -0
- /package/{skills → dist}/maestro-packages/sql.md +0 -0
|
@@ -46,20 +46,19 @@ Before installing any dependency, check this list for the user's preferred packa
|
|
|
46
46
|
- **@maestro-js/form** — Headless React form primitives with client and server validation, hidden inputs for custom components, controlled/uncontrolled state management, and Standard Schema (Zod) FormData parsing with automatic type coercion. Use when building custom form components that need native constraint validation, server error integration, file upload handling, or type-safe FormData parsing. Provides HeadlessForm root component, useValidation/useWarningState/useControlledState/useReset hooks, HiddenInput/HiddenFileInput/HiddenSelect components, parseFormData/parseFormDataClientSide utilities, and composeValidators.
|
|
47
47
|
- **@maestro-js/hash** — Pluggable hashing and verification with driver-based backends for @maestro-js/hash. Use when working with @maestro-js/hash, hashing values, verifying hashes, detecting when a rehash is needed, or rotating signing keys. Built-in drivers: SHA256 (HMAC-SHA256 with key rotation and timing-safe comparison).
|
|
48
48
|
- **@maestro-js/helpers** — Standalone utility functions for async control flow and file handling in the @maestro-js/helpers package. Use when working with @maestro-js/helpers. Key capabilities: retry with configurable attempts/delay/backoff, sleep, withMaxConcurrency for limiting parallel executions, withRateLimit with fixed or sliding window, raceWithFallback for promise racing with default values, AsyncIterableCollection for lazy async iteration (map, filter, reduce, forEach, toArray), sanitizeFilename for safe cross-platform filenames, and withRetry for wrapping functions with retry behavior.
|
|
49
|
-
- **@maestro-js/init** — Project scaffolding for the Maestro framework. Generates a complete monorepo with config, schemas, services, web app, queue processor, and infrastructure.
|
|
50
|
-
- **@maestro-js/iso-zod** — Zod custom schemas for ISO 8601 temporal types (Instant, DateTime, ZonedDateTime, Date, Time, YearMonth, MonthDay, Duration) backed by iso-fns validation. Use when defining Zod schemas that include ISO temporal fields. Provides isoZ factory functions that return typed Zod schemas and an isoZRegistry for introspecting registered ISO type metadata.
|
|
51
49
|
- **@maestro-js/log** — Structured logging with pluggable transports and channel-based routing for the Maestro framework. Use when working with @maestro-js/log, adding or modifying log transports, configuring log channels, filtering log messages by level or channel, integrating logging into other packages, or writing tests that capture log output. Key capabilities: create loggers with pluggable transports (console, file, Sentry, stub), route messages through named channels, filter by level and channel, override Node.js console, custom formatters, and the silence transport for suppressing output.
|
|
52
50
|
- **@maestro-js/mail** — Driver-based email sending with queued delivery, scheduled sending, and mailable templates for the @maestro-js/mail package. Use when working with @maestro-js/mail. Covers creating mail services with SendGrid/SES/MailTrap/Stub drivers, sending emails immediately or via queue, scheduling future delivery, building reusable mailable templates, processing webhook events, generating ICS calendar attachments, and testing with the stub driver.
|
|
53
51
|
- **@maestro-js/metrics** — Use when working with @maestro-js/metrics. Unified metrics collection piped through the Log transport system. Covers four metric types (counters, distributions, sets, gauges), provider setup, logger integration, Sentry transport, and custom transport authoring. Trigger on metrics emission, observability instrumentation, Sentry metrics integration, or application telemetry tasks.
|
|
54
52
|
- **@maestro-js/password** —
|
|
55
|
-
- **@maestro-js/
|
|
56
|
-
- **@maestro-js/
|
|
53
|
+
- **@maestro-js/queue** — Database-backed job queue for deferring work beyond the current request with scheduled execution, concurrency control, and distributed tracing. Use when working with @maestro-js/queue, including dispatching jobs, processing queues, configuring the db driver, writing queue consumers, handling retries/stuck jobs, integrating with mail or recurring-jobs, and understanding the queue database schema.
|
|
54
|
+
- **@maestro-js/queue2** — Database-backed job queue for deferring work beyond the current request with scheduled execution, concurrency control, and distributed tracing. Use when working with @maestro-js/queue, including dispatching jobs, processing queues, configuring the db driver, writing queue consumers, handling retries/stuck jobs, integrating with mail or recurring-jobs, and understanding the queue database schema.
|
|
57
55
|
- **@maestro-js/rate-limiting** — Per-key rate limiting with configurable decay windows. Use when enforcing attempt limits on login, API endpoints, or any action that needs throttling. Provides increment/check/clear workflow, guarded callback execution via attempt(), and ISO 8601 duration reporting. Requires a cache driver (e.g. from @maestro-js/cache).
|
|
58
56
|
- **@maestro-js/react-router-file-routes** —
|
|
59
|
-
- **@maestro-js/recurring-jobs** — Use when working with @maestro-js/recurring-jobs. Cron-based
|
|
57
|
+
- **@maestro-js/recurring-jobs** — Use when working with @maestro-js/recurring-jobs. Cron-based job scheduling backed by the Queue package. Covers creating recurring jobs, managing schedules, start/stop processing, rescheduling, listing jobs, and inspecting upcoming runs. Follows the Provider pattern with ServiceRegistry. Key capabilities include cron expression parsing, deduplication across process restarts, per-job dedicated queues, structured log events, and paginated execution history.
|
|
60
58
|
- **@maestro-js/session** —
|
|
61
59
|
- **@maestro-js/signed-url** — URL signing and verification with pluggable hash drivers for @maestro-js/signed-url. Use when generating tamper-proof signed URLs with expiration (e.g. file download links, email verification) or validating signed URL parameters. Accepts any hash driver compatible with @maestro-js/hash.
|
|
62
60
|
- **@maestro-js/sql** — Composable SQL query builders for dynamic WHERE clauses and Common Table Expressions (CTEs). Use when working with @maestro-js/sql, building dynamic SQL filters, constructing parameterized WHERE clauses, wrapping Db services with CTEs, or generating safe parameterized SQL fragments. Key capabilities: WhereClauseBuilder for incremental AND/OR conditions with nested sub-groups, CommonTableExpressionBuilder for wrapping a Db service so all queries auto-prepend WITH clauses, cloning builders, recursive CTEs, and dynamic parameter resolution.
|
|
61
|
+
- **@maestro-js/tracing** — Distributed tracing package built on OpenTelemetry with pluggable providers (Sentry, Maestro). Use when working with @maestro-js/tracing. Key capabilities: wrap functions for automatic span tracking, create active spans with duration measurement, proxy entire objects for tracing, serialize/deserialize trace context across process boundaries (dehydrate/hydrate), add custom log transports for span events, integrate Sentry as a tracing provider.
|
|
63
62
|
|
|
64
63
|
## General Guidance
|
|
65
64
|
|
|
@@ -34,9 +34,9 @@ Each package has a linked detail page with its full API, driver options, and usa
|
|
|
34
34
|
- **log** — Structured logging with pluggable transports and channel-based routing for the Maestro framework. Use when working with @maestro-js/log, adding or modifying log transports, configuring log channels, filtering log messages by level or channel, integrating logging into other packages, or writing tests that capture log output. Key capabilities: create loggers with pluggable transports (console, file, Sentry, stub), route messages through named channels, filter by level and channel, override Node.js console, custom formatters, and the silence transport for suppressing output. [View details](./log.md)
|
|
35
35
|
- **mail** — Driver-based email sending with queued delivery, scheduled sending, and mailable templates for the @maestro-js/mail package. Use when working with @maestro-js/mail. Covers creating mail services with SendGrid/SES/MailTrap/Stub drivers, sending emails immediately or via queue, scheduling future delivery, building reusable mailable templates, processing webhook events, generating ICS calendar attachments, and testing with the stub driver. [View details](./mail.md)
|
|
36
36
|
- **metrics** — Use when working with @maestro-js/metrics. Unified metrics collection piped through the Log transport system. Covers four metric types (counters, distributions, sets, gauges), provider setup, logger integration, Sentry transport, and custom transport authoring. Trigger on metrics emission, observability instrumentation, Sentry metrics integration, or application telemetry tasks. [View details](./metrics.md)
|
|
37
|
-
- **
|
|
38
|
-
- **queue** — Database-backed job queue with middleware, configurable retries, and backoff strategies. Use when dispatching background jobs, processing queues with concurrency control, scheduling delayed work, handling retries and permanent failures, or integrating with mail/recurring-jobs. Provides db (MySQL) and local (in-memory) drivers. [View details](./queue.md)
|
|
37
|
+
- **queue** — Database-backed job queue for deferring work beyond the current request with scheduled execution, concurrency control, and distributed tracing. Use when working with @maestro-js/queue, including dispatching jobs, processing queues, configuring the db driver, writing queue consumers, handling retries/stuck jobs, integrating with mail or recurring-jobs, and understanding the queue database schema. [View details](./queue.md)
|
|
39
38
|
- **rate-limiting** — Per-key rate limiting with configurable decay windows. Use when enforcing attempt limits on login, API endpoints, or any action that needs throttling. Provides increment/check/clear workflow, guarded callback execution via attempt(), and ISO 8601 duration reporting. Requires a cache driver (e.g. from @maestro-js/cache). [View details](./rate-limiting.md)
|
|
40
39
|
- **react-router-file-routes** — [View details](./react-router-file-routes.md)
|
|
41
|
-
- **recurring-jobs** — Use when working with @maestro-js/recurring-jobs. Cron-based
|
|
40
|
+
- **recurring-jobs** — Use when working with @maestro-js/recurring-jobs. Cron-based job scheduling backed by the Queue package. Covers creating recurring jobs, managing schedules, start/stop processing, rescheduling, listing jobs, and inspecting upcoming runs. Follows the Provider pattern with ServiceRegistry. Key capabilities include cron expression parsing, deduplication across process restarts, per-job dedicated queues, structured log events, and paginated execution history. [View details](./recurring-jobs.md)
|
|
42
41
|
- **sql** — Composable SQL query builders for dynamic WHERE clauses and Common Table Expressions (CTEs). Use when working with @maestro-js/sql, building dynamic SQL filters, constructing parameterized WHERE clauses, wrapping Db services with CTEs, or generating safe parameterized SQL fragments. Key capabilities: WhereClauseBuilder for incremental AND/OR conditions with nested sub-groups, CommonTableExpressionBuilder for wrapping a Db service so all queries auto-prepend WITH clauses, cloning builders, recursive CTEs, and dynamic parameter resolution. [View details](./sql.md)
|
|
42
|
+
- **tracing** — Distributed tracing package built on OpenTelemetry with pluggable providers (Sentry, Maestro). Use when working with @maestro-js/tracing. Key capabilities: wrap functions for automatic span tracking, create active spans with duration measurement, proxy entire objects for tracing, serialize/deserialize trace context across process boundaries (dehydrate/hydrate), add custom log transports for span events, integrate Sentry as a tracing provider. [View details](./tracing.md)
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: queue
|
|
3
|
+
description: "Database-backed job queue for deferring work beyond the current request with scheduled execution, concurrency control, and distributed tracing. Use when working with @maestro-js/queue, including dispatching jobs, processing queues, configuring the db driver, writing queue consumers, handling retries/stuck jobs, integrating with mail or recurring-jobs, and understanding the queue database schema."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# @maestro-js/queue
|
|
7
|
+
|
|
8
|
+
Database-backed job queue that stores messages in MySQL via a pluggable driver and processes them asynchronously. Follows the Provider pattern from `@maestro-js/service-registry` with a producer/consumer split supporting scheduled execution, concurrency, and distributed trace propagation.
|
|
9
|
+
|
|
10
|
+
## Quick Setup
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
import { Queue } from '@maestro-js/queue'
|
|
14
|
+
import { Db } from '@maestro-js/db'
|
|
15
|
+
import { Log } from '@maestro-js/log'
|
|
16
|
+
|
|
17
|
+
// Register the queue service with the db driver
|
|
18
|
+
Queue.Provider.register(
|
|
19
|
+
'default',
|
|
20
|
+
Queue.Provider.create({
|
|
21
|
+
driver: Queue.drivers.db({
|
|
22
|
+
db: Db.provider('default'),
|
|
23
|
+
databaseTable: 'jobs'
|
|
24
|
+
}),
|
|
25
|
+
logger: Log
|
|
26
|
+
})
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
// Create a named queue with a work function
|
|
30
|
+
const orderQueue = Queue.create({
|
|
31
|
+
name: 'fulfill-orders',
|
|
32
|
+
workFn: async (body) => {
|
|
33
|
+
await fulfillOrder(body.orderId)
|
|
34
|
+
return { fulfilled: true }
|
|
35
|
+
},
|
|
36
|
+
concurrency: 3
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
// Enqueue a message
|
|
40
|
+
await orderQueue.addMessage({ orderId: 'ord_123' }, { scheduledDate: null })
|
|
41
|
+
|
|
42
|
+
// Start processing
|
|
43
|
+
orderQueue.startProcessing()
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Database Schema
|
|
47
|
+
|
|
48
|
+
The db driver expects a MySQL table (name configurable via `databaseTable`). The column-to-field mapping used internally:
|
|
49
|
+
|
|
50
|
+
| Column | Type | Description |
|
|
51
|
+
| --------------- | ------------- | -------------------------------------------------------- |
|
|
52
|
+
| `id` | int (PK, AI) | Message ID |
|
|
53
|
+
| `batch_id` | int / NULL | Lock batch for concurrent dequeue |
|
|
54
|
+
| `job_type` | varchar | Queue name string |
|
|
55
|
+
| `body` | text (JSON) | Serialized message body |
|
|
56
|
+
| `trace` | text (JSON) | Serialized `DehydratedTrace` for distributed tracing |
|
|
57
|
+
| `status` | enum | `waiting`, `processing`, `success`, `error`, `stuck` |
|
|
58
|
+
| `scheduledDate` | datetime | Earliest time the message can be processed |
|
|
59
|
+
| `enqueuedDate` | datetime | When the message was inserted |
|
|
60
|
+
| `started_ts` | datetime | When processing began |
|
|
61
|
+
| `result` | text | JSON result on success, error stack on failure |
|
|
62
|
+
| `recovered` | tinyint | 1 if the message was recovered from stuck state |
|
|
63
|
+
| `running_time` | int / NULL | Seconds elapsed during processing |
|
|
64
|
+
| `unique_key` | int / NULL | MD5-derived dedup key (nullable) |
|
|
65
|
+
| `priority` | bigint / NULL | Lower value = higher priority (defaults to `Date.now()`) |
|
|
66
|
+
|
|
67
|
+
The driver requires a `FORCE INDEX (locking_update)` index on `(batch_id, status, job_type, scheduledDate)` for efficient locking queries.
|
|
68
|
+
|
|
69
|
+
## API Reference
|
|
70
|
+
|
|
71
|
+
### Provider Setup
|
|
72
|
+
|
|
73
|
+
```ts
|
|
74
|
+
Queue.Provider.create(config: {
|
|
75
|
+
driver: Queue.Driver
|
|
76
|
+
logger: Log.Logger<[Queue.LogMessage]>
|
|
77
|
+
tracing?: Queue.Tracing // optional distributed tracing adapter
|
|
78
|
+
}): Queue.QueueService
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
```ts
|
|
82
|
+
Queue.Provider.register(name: Queue.Provider.Key, service: Queue.QueueService): void
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Drivers
|
|
86
|
+
|
|
87
|
+
```ts
|
|
88
|
+
Queue.drivers.db(config: {
|
|
89
|
+
db: { update, select, insert } // Db provider interface
|
|
90
|
+
databaseTable: string
|
|
91
|
+
extraFields?: string[] // additional columns to insert
|
|
92
|
+
fastestPollingRateMs?: number // default 100
|
|
93
|
+
slowestPollingRateMs?: number // default 10_000
|
|
94
|
+
pollingBackoffRate?: number // default 1.1
|
|
95
|
+
}): Queue.Driver
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Queue Instance Methods
|
|
99
|
+
|
|
100
|
+
Create a queue:
|
|
101
|
+
|
|
102
|
+
```ts
|
|
103
|
+
const queue = Queue.create<MessageBody, Result>({
|
|
104
|
+
name: string,
|
|
105
|
+
workFn: (body: MessageBody) => Promise<Result>,
|
|
106
|
+
logger?: Log.LogFunctions<[Queue.LogMessage]>, // additional per-queue logger
|
|
107
|
+
concurrency?: number // default 1
|
|
108
|
+
})
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Dispatch a message:
|
|
112
|
+
|
|
113
|
+
```ts
|
|
114
|
+
await queue.addMessage(body, {
|
|
115
|
+
scheduledDate: Iso.Instant | null, // null = process immediately
|
|
116
|
+
tracingContext?: DehydratedTrace | null
|
|
117
|
+
})
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Update a waiting message:
|
|
121
|
+
|
|
122
|
+
```ts
|
|
123
|
+
await queue.updateMessage({
|
|
124
|
+
messageId: number,
|
|
125
|
+
scheduledDate: Iso.Instant,
|
|
126
|
+
body: MessageBody
|
|
127
|
+
})
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
List messages (paginated):
|
|
131
|
+
|
|
132
|
+
```ts
|
|
133
|
+
const messages = await queue.listMessages({ pageSize: 50, pageNumber: 0 })
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Processing control:
|
|
137
|
+
|
|
138
|
+
```ts
|
|
139
|
+
queue.startProcessing() // begin polling and processing
|
|
140
|
+
queue.stopProcessing() // stop polling
|
|
141
|
+
await queue.processUntilEmpty({ pollingMs?: number }) // process then resolve when empty
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Service-Level Methods
|
|
145
|
+
|
|
146
|
+
```ts
|
|
147
|
+
Queue.list() // names of all registered queues
|
|
148
|
+
Queue.get<Body, Result>(name) // retrieve a queue by name
|
|
149
|
+
Queue.startProcessing() // start all queues
|
|
150
|
+
Queue.stopProcessing() // stop all queues
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Message Statuses
|
|
154
|
+
|
|
155
|
+
| Status | Meaning |
|
|
156
|
+
| ------------ | -------------------------------------------------------------- |
|
|
157
|
+
| `waiting` | Queued and eligible for processing when scheduled time arrives |
|
|
158
|
+
| `processing` | Locked by a worker and currently executing |
|
|
159
|
+
| `success` | Work function completed without error |
|
|
160
|
+
| `error` | Work function threw or timed out |
|
|
161
|
+
| `stuck` | Processing exceeded timeout; recovered or marked stuck |
|
|
162
|
+
|
|
163
|
+
### Log Events
|
|
164
|
+
|
|
165
|
+
The queue emits structured log messages with these `event` values:
|
|
166
|
+
|
|
167
|
+
- `messageEnqueued` -- message added to the queue
|
|
168
|
+
- `messageDequeued` -- message picked up by a worker
|
|
169
|
+
- `messageProcessed` -- work function completed successfully
|
|
170
|
+
- `messageFailed` -- work function threw an error
|
|
171
|
+
- `queueStarted` -- queue processing started
|
|
172
|
+
- `queueStopped` -- queue processing stopped
|
|
173
|
+
|
|
174
|
+
## Common Patterns
|
|
175
|
+
|
|
176
|
+
### Schedule a Future Job
|
|
177
|
+
|
|
178
|
+
```ts
|
|
179
|
+
import { instantFns } from 'iso-fns2'
|
|
180
|
+
|
|
181
|
+
// Schedule 1 hour from now
|
|
182
|
+
const oneHourLater = instantFns.add(instantFns.now(), { hours: 1 })
|
|
183
|
+
await queue.addMessage({ task: 'reminder' }, { scheduledDate: oneHourLater })
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Deduplication with Unique Keys
|
|
187
|
+
|
|
188
|
+
The db driver supports unique keys via the `addMessage` options on the driver level. When a duplicate `uniqueKey` is inserted, the row is not duplicated -- instead the priority is updated if the new priority is higher (lower number).
|
|
189
|
+
|
|
190
|
+
### Process Until Empty (Worker Scripts)
|
|
191
|
+
|
|
192
|
+
```ts
|
|
193
|
+
// Useful for one-off batch processing or tests
|
|
194
|
+
await queue.processUntilEmpty({ pollingMs: 1000 })
|
|
195
|
+
// Resolves when no waiting/processing messages remain
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### Concurrency Control
|
|
199
|
+
|
|
200
|
+
```ts
|
|
201
|
+
// High-concurrency queue for lightweight jobs
|
|
202
|
+
const emailQueue = Queue.create({
|
|
203
|
+
name: 'send-emails',
|
|
204
|
+
workFn: async (body) => sendEmail(body),
|
|
205
|
+
concurrency: 10
|
|
206
|
+
})
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### Stuck Job Recovery
|
|
210
|
+
|
|
211
|
+
The db driver automatically recovers stuck jobs every 60 seconds. Jobs in `processing` status that exceed the timeout (default 45 minutes) are reset to `waiting` and reprocessed. Set `shouldRecoverStuckJobs: false` in the driver `start` options to mark them as `stuck` instead of recovering.
|
|
212
|
+
|
|
213
|
+
### Distributed Tracing
|
|
214
|
+
|
|
215
|
+
Pass a `tracing` adapter when creating the service to propagate trace context across producer/consumer boundaries:
|
|
216
|
+
|
|
217
|
+
```ts
|
|
218
|
+
Queue.Provider.register(
|
|
219
|
+
'default',
|
|
220
|
+
Queue.Provider.create({
|
|
221
|
+
driver: Queue.drivers.db({ db: Db.provider('default'), databaseTable: 'jobs' }),
|
|
222
|
+
logger: Log,
|
|
223
|
+
tracing: {
|
|
224
|
+
hydrate: (trace, callback) => {
|
|
225
|
+
/* restore trace context */ return callback()
|
|
226
|
+
},
|
|
227
|
+
dehydrate: () => {
|
|
228
|
+
/* return current trace context */ return null
|
|
229
|
+
},
|
|
230
|
+
startActiveSpan: (name, fn) => fn(),
|
|
231
|
+
getActiveSpan: () => undefined
|
|
232
|
+
}
|
|
233
|
+
})
|
|
234
|
+
)
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
The trace data is serialized as `DehydratedTrace` (traceId, spanId, traceFlags, traceState) and stored in the `trace` column.
|
|
238
|
+
|
|
239
|
+
## Testing
|
|
240
|
+
|
|
241
|
+
This package has no tests yet (`pnpm --filter @maestro-js/queue test` prints "No tests yet"). To test queue behavior in consuming packages, mock the driver interface:
|
|
242
|
+
|
|
243
|
+
```ts
|
|
244
|
+
const mockDriver: Queue.Driver = {
|
|
245
|
+
start: () => {},
|
|
246
|
+
stop: () => {},
|
|
247
|
+
listMessages: async () => [],
|
|
248
|
+
addMessage: async () => ({ id: 1 }),
|
|
249
|
+
updateMessage: async () => {},
|
|
250
|
+
isQueueEmpty: async () => true
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
Queue.Provider.register(
|
|
254
|
+
'default',
|
|
255
|
+
Queue.Provider.create({
|
|
256
|
+
driver: mockDriver,
|
|
257
|
+
logger: Log
|
|
258
|
+
})
|
|
259
|
+
)
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
## Cross-Package Integration
|
|
263
|
+
|
|
264
|
+
### Mail (async email sending)
|
|
265
|
+
|
|
266
|
+
The `@maestro-js/mail` package uses Queue to dispatch email-sending jobs asynchronously. Mail enqueues messages; a queue consumer processes them via the configured mail driver.
|
|
267
|
+
|
|
268
|
+
### Recurring Jobs (cron scheduling)
|
|
269
|
+
|
|
270
|
+
The `@maestro-js/recurring-jobs` package uses Queue to execute scheduled/cron-based jobs. It dispatches queue messages on a schedule and relies on the queue's processing infrastructure.
|
|
271
|
+
|
|
272
|
+
### Db (database driver)
|
|
273
|
+
|
|
274
|
+
The db driver requires a `Db` provider that exposes `select`, `update`, and `insert` methods. Pass `Db.provider('default')` as the `db` config option.
|
|
275
|
+
|
|
276
|
+
### Tracing
|
|
277
|
+
|
|
278
|
+
Integrate with `@maestro-js/tracing` by implementing the `Queue.Tracing` interface to propagate OpenTelemetry-compatible trace context across the producer/consumer boundary.
|
|
279
|
+
|
|
280
|
+
## Source Files
|
|
281
|
+
|
|
282
|
+
- `packages/queue/src/index.ts` -- Provider pattern, facade, queue creation and lifecycle
|
|
283
|
+
- `packages/queue/src/queue-types.ts` -- TypeScript interfaces for QueueMessage, QueueDriver, QueueTracing, log events
|
|
284
|
+
- `packages/queue/src/db-queue-driver.ts` -- MySQL-backed driver with polling, batched locking, stuck job recovery
|