@lssm/lib.jobs 0.0.0-canary-20251217060804 → 0.0.0-canary-20251217062139

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.
Files changed (135) hide show
  1. package/dist/contracts/dist/capabilities/openbanking.js +1 -0
  2. package/dist/contracts/dist/client/index.js +1 -0
  3. package/dist/contracts/dist/client/react/feature-render.js +1 -0
  4. package/dist/contracts/dist/client/react/form-render.js +1 -0
  5. package/dist/contracts/dist/client/react/index.js +1 -0
  6. package/dist/contracts/dist/contract-registry/index.js +1 -0
  7. package/dist/contracts/dist/contract-registry/schemas.js +1 -0
  8. package/dist/contracts/dist/docs/PUBLISHING.docblock.js +76 -0
  9. package/dist/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +350 -0
  10. package/dist/contracts/dist/docs/index.js +1 -0
  11. package/dist/contracts/dist/docs/presentations.js +1 -0
  12. package/dist/contracts/dist/docs/registry.js +1 -0
  13. package/dist/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +383 -0
  14. package/dist/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +68 -0
  15. package/dist/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +140 -0
  16. package/dist/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +86 -0
  17. package/dist/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +1 -0
  18. package/dist/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +58 -0
  19. package/dist/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +38 -0
  20. package/dist/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +213 -0
  21. package/dist/contracts/dist/docs/tech/llm/llm-integration.docblock.js +289 -0
  22. package/dist/contracts/dist/docs/tech/mcp-endpoints.docblock.js +1 -0
  23. package/dist/contracts/dist/docs/tech/presentation-runtime.docblock.js +1 -0
  24. package/dist/contracts/dist/docs/tech/schema/README.docblock.js +262 -0
  25. package/dist/contracts/dist/docs/tech/studio/learning-events.docblock.js +1 -0
  26. package/dist/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +57 -0
  27. package/dist/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +63 -0
  28. package/dist/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +36 -0
  29. package/dist/contracts/dist/docs/tech/studio/project-routing.docblock.js +1 -0
  30. package/dist/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +20 -0
  31. package/dist/contracts/dist/docs/tech/studio/team-invitations.docblock.js +65 -0
  32. package/dist/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +1 -0
  33. package/dist/contracts/dist/docs/tech/studio/workspaces.docblock.js +41 -0
  34. package/dist/contracts/dist/docs/tech/telemetry-ingest.docblock.js +122 -0
  35. package/dist/contracts/dist/docs/tech/templates/runtime.docblock.js +1 -0
  36. package/dist/contracts/dist/docs/tech/vscode-extension.docblock.js +68 -0
  37. package/dist/contracts/dist/docs/tech/workflows/overview.docblock.js +1 -0
  38. package/dist/contracts/dist/events.js +1 -0
  39. package/dist/contracts/dist/experiments/evaluator.js +1 -0
  40. package/dist/contracts/dist/index.js +1 -0
  41. package/dist/contracts/dist/install.js +1 -0
  42. package/dist/contracts/dist/integrations/contracts.js +1 -0
  43. package/dist/contracts/dist/integrations/index.js +1 -0
  44. package/dist/contracts/dist/integrations/openbanking/contracts/accounts.js +1 -0
  45. package/dist/contracts/dist/integrations/openbanking/contracts/balances.js +1 -0
  46. package/dist/contracts/dist/integrations/openbanking/contracts/index.js +1 -0
  47. package/dist/contracts/dist/integrations/openbanking/contracts/transactions.js +1 -0
  48. package/dist/contracts/dist/integrations/openbanking/models.js +1 -0
  49. package/dist/contracts/dist/integrations/openbanking/telemetry.js +1 -0
  50. package/dist/contracts/dist/integrations/providers/elevenlabs.js +1 -0
  51. package/dist/contracts/dist/integrations/providers/gcs-storage.js +1 -0
  52. package/dist/contracts/dist/integrations/providers/gmail.js +1 -0
  53. package/dist/contracts/dist/integrations/providers/google-calendar.js +1 -0
  54. package/dist/contracts/dist/integrations/providers/index.js +1 -0
  55. package/dist/contracts/dist/integrations/providers/mistral.js +1 -0
  56. package/dist/contracts/dist/integrations/providers/postmark.js +1 -0
  57. package/dist/contracts/dist/integrations/providers/powens.js +1 -0
  58. package/dist/contracts/dist/integrations/providers/qdrant.js +1 -0
  59. package/dist/contracts/dist/integrations/providers/registry.js +1 -0
  60. package/dist/contracts/dist/integrations/providers/stripe.js +1 -0
  61. package/dist/contracts/dist/integrations/providers/twilio-sms.js +1 -0
  62. package/dist/contracts/dist/jobs/queue.js +1 -0
  63. package/dist/contracts/dist/jsonschema.js +1 -0
  64. package/dist/contracts/dist/knowledge/contracts.js +1 -0
  65. package/dist/contracts/dist/knowledge/index.js +1 -0
  66. package/dist/contracts/dist/knowledge/spaces/email-threads.js +1 -0
  67. package/dist/contracts/dist/knowledge/spaces/financial-docs.js +1 -0
  68. package/dist/contracts/dist/knowledge/spaces/financial-overview.js +1 -0
  69. package/dist/contracts/dist/knowledge/spaces/index.js +1 -0
  70. package/dist/contracts/dist/knowledge/spaces/product-canon.js +1 -0
  71. package/dist/contracts/dist/knowledge/spaces/support-faq.js +1 -0
  72. package/dist/contracts/dist/knowledge/spaces/uploaded-docs.js +1 -0
  73. package/dist/contracts/dist/llm/exporters.js +1 -0
  74. package/dist/contracts/dist/llm/index.js +1 -0
  75. package/dist/contracts/dist/llm/prompts.js +1 -0
  76. package/dist/contracts/dist/onboarding-base.js +1 -0
  77. package/dist/contracts/dist/openapi.js +1 -0
  78. package/dist/contracts/dist/ownership.js +1 -0
  79. package/dist/contracts/dist/presentations.js +1 -0
  80. package/dist/contracts/dist/presentations.v2.js +1 -0
  81. package/dist/contracts/dist/prompt.js +1 -0
  82. package/dist/contracts/dist/promptRegistry.js +1 -0
  83. package/dist/contracts/dist/regenerator/index.js +1 -0
  84. package/dist/contracts/dist/regenerator/service.js +1 -0
  85. package/dist/contracts/dist/registry.js +1 -0
  86. package/dist/contracts/dist/resources.js +1 -0
  87. package/dist/contracts/dist/schema/dist/EnumType.js +1 -0
  88. package/dist/contracts/dist/schema/dist/FieldType.js +1 -0
  89. package/dist/contracts/dist/schema/dist/ScalarTypeEnum.js +1 -0
  90. package/dist/contracts/dist/schema/dist/SchemaModel.js +1 -0
  91. package/dist/contracts/dist/schema/dist/entity/defineEntity.js +1 -0
  92. package/dist/contracts/dist/schema/dist/entity/index.js +1 -0
  93. package/dist/contracts/dist/schema/dist/entity/types.js +1 -0
  94. package/dist/contracts/dist/schema/dist/index.js +1 -0
  95. package/dist/contracts/dist/server/graphql-pothos.js +1 -0
  96. package/dist/contracts/dist/server/index.js +1 -0
  97. package/dist/contracts/dist/server/mcp/createMcpServer.js +1 -0
  98. package/dist/contracts/dist/server/mcp/registerPresentations.js +1 -0
  99. package/dist/contracts/dist/server/mcp/registerPrompts.js +1 -0
  100. package/dist/contracts/dist/server/mcp/registerResources.js +1 -0
  101. package/dist/contracts/dist/server/mcp/registerTools.js +1 -0
  102. package/dist/contracts/dist/server/provider-mcp.js +1 -0
  103. package/dist/contracts/dist/server/rest-elysia.js +1 -0
  104. package/dist/contracts/dist/server/rest-express.js +1 -0
  105. package/dist/contracts/dist/server/rest-generic.js +1 -0
  106. package/dist/contracts/dist/server/rest-next-app.js +1 -0
  107. package/dist/contracts/dist/server/rest-next-pages.js +1 -0
  108. package/dist/contracts/dist/spec.js +1 -0
  109. package/dist/contracts/dist/telemetry/index.js +1 -0
  110. package/dist/contracts/dist/telemetry/tracker.js +1 -0
  111. package/dist/contracts/dist/tests/index.js +1 -0
  112. package/dist/contracts/dist/tests/runner.js +1 -0
  113. package/dist/contracts/dist/workflow/index.js +1 -0
  114. package/dist/contracts/dist/workflow/runner.js +1 -0
  115. package/dist/contracts/index.js +1 -1
  116. package/dist/entities/index.d.ts +116 -116
  117. package/dist/entities/index.js +1 -1
  118. package/dist/events.d.ts +97 -97
  119. package/dist/events.js +1 -1
  120. package/dist/index.js +1 -1
  121. package/dist/queue/gcp-cloud-tasks.js +1 -1
  122. package/dist/queue/gcp-pubsub.js +1 -1
  123. package/dist/queue/index.js +1 -1
  124. package/dist/queue/memory-queue.js +1 -1
  125. package/dist/queue/scaleway-sqs-queue.js +1 -1
  126. package/dist/queue/types.js +1 -1
  127. package/dist/schema/dist/EnumType.js +1 -0
  128. package/dist/schema/dist/FieldType.js +1 -0
  129. package/dist/schema/dist/ScalarTypeEnum.js +1 -0
  130. package/dist/schema/dist/SchemaModel.js +1 -0
  131. package/dist/schema/dist/entity/defineEntity.js +1 -0
  132. package/dist/schema/dist/entity/index.js +1 -0
  133. package/dist/schema/dist/entity/types.js +1 -0
  134. package/dist/schema/dist/index.js +1 -0
  135. package/package.json +6 -6
@@ -1 +1 @@
1
- import{ScalarTypeEnum as e,defineSchemaModel as t}from"@lssm/lib.schema";import{defineCommand as n,defineQuery as r}from"@lssm/lib.contracts";const i=[`platform.jobs`],a=t({name:`Job`,description:`Represents a background job`,fields:{id:{type:e.String_unsecure(),isOptional:!1},type:{type:e.String_unsecure(),isOptional:!1},version:{type:e.Int_unsecure(),isOptional:!1},payload:{type:e.JSON(),isOptional:!1},status:{type:e.String_unsecure(),isOptional:!1},priority:{type:e.Int_unsecure(),isOptional:!1},attempts:{type:e.Int_unsecure(),isOptional:!1},maxRetries:{type:e.Int_unsecure(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1},updatedAt:{type:e.DateTime(),isOptional:!1},scheduledAt:{type:e.DateTime(),isOptional:!0},startedAt:{type:e.DateTime(),isOptional:!0},completedAt:{type:e.DateTime(),isOptional:!0},lastError:{type:e.String_unsecure(),isOptional:!0}}}),o=t({name:`ScheduledJob`,description:`Represents a scheduled/recurring job`,fields:{id:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},description:{type:e.String_unsecure(),isOptional:!0},cronExpression:{type:e.String_unsecure(),isOptional:!1},timezone:{type:e.String_unsecure(),isOptional:!1},jobType:{type:e.String_unsecure(),isOptional:!1},enabled:{type:e.Boolean(),isOptional:!1},lastRunAt:{type:e.DateTime(),isOptional:!0},nextRunAt:{type:e.DateTime(),isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1}}}),s=t({name:`QueueStats`,description:`Job queue statistics`,fields:{pending:{type:e.Int_unsecure(),isOptional:!1},running:{type:e.Int_unsecure(),isOptional:!1},completed:{type:e.Int_unsecure(),isOptional:!1},failed:{type:e.Int_unsecure(),isOptional:!1},deadLetter:{type:e.Int_unsecure(),isOptional:!1}}}),c=t({name:`EnqueueJobInput`,description:`Input for enqueuing a new job`,fields:{type:{type:e.String_unsecure(),isOptional:!1},payload:{type:e.JSON(),isOptional:!1},delaySeconds:{type:e.Int_unsecure(),isOptional:!0},dedupeKey:{type:e.String_unsecure(),isOptional:!0},maxRetries:{type:e.Int_unsecure(),isOptional:!0},priority:{type:e.Int_unsecure(),isOptional:!0},timeoutMs:{type:e.Int_unsecure(),isOptional:!0}}}),l=t({name:`GetJobInput`,description:`Input for getting a job by ID`,fields:{jobId:{type:e.String_unsecure(),isOptional:!1}}}),u=t({name:`CancelJobInput`,description:`Input for cancelling a job`,fields:{jobId:{type:e.String_unsecure(),isOptional:!1}}}),d=t({name:`CancelJobOutput`,description:`Output for cancel job operation`,fields:{success:{type:e.Boolean(),isOptional:!1}}}),f=t({name:`CreateScheduledJobInput`,description:`Input for creating a scheduled job`,fields:{name:{type:e.String_unsecure(),isOptional:!1},description:{type:e.String_unsecure(),isOptional:!0},cronExpression:{type:e.String_unsecure(),isOptional:!1},timezone:{type:e.String_unsecure(),isOptional:!0},jobType:{type:e.String_unsecure(),isOptional:!1},payload:{type:e.JSON(),isOptional:!0},maxRetries:{type:e.Int_unsecure(),isOptional:!0},enabled:{type:e.Boolean(),isOptional:!0}}}),p=t({name:`ListScheduledJobsOutput`,description:`Output for listing scheduled jobs`,fields:{schedules:{type:o,isArray:!0,isOptional:!1}}}),m=t({name:`ToggleScheduledJobInput`,description:`Input for toggling a scheduled job`,fields:{name:{type:e.String_unsecure(),isOptional:!1},enabled:{type:e.Boolean(),isOptional:!1}}}),h=t({name:`JobEnqueuedPayload`,description:`Payload for job.enqueued event`,fields:{jobId:{type:e.String_unsecure(),isOptional:!1},type:{type:e.String_unsecure(),isOptional:!1},priority:{type:e.Int_unsecure(),isOptional:!1},scheduledAt:{type:e.DateTime(),isOptional:!0},tenantId:{type:e.String_unsecure(),isOptional:!0},enqueuedAt:{type:e.DateTime(),isOptional:!1}}}),g=t({name:`JobCancelledPayload`,description:`Payload for job.cancelled event`,fields:{jobId:{type:e.String_unsecure(),isOptional:!1}}}),_=n({meta:{name:`jobs.enqueue`,version:1,stability:`stable`,owners:[...i],tags:[`jobs`,`enqueue`],description:`Enqueue a background job for async processing.`,goal:`Allow services to offload work to background processing.`,context:`Called by any service that needs async processing.`},io:{input:c,output:a},policy:{auth:`user`},sideEffects:{emits:[{name:`job.enqueued`,version:1,when:`Job is enqueued`,payload:h}]}}),v=r({meta:{name:`jobs.get`,version:1,stability:`stable`,owners:[...i],tags:[`jobs`,`get`],description:`Get a job by ID.`,goal:`Check job status and result.`,context:`Called to poll job status or retrieve results.`},io:{input:l,output:a},policy:{auth:`user`}}),y=n({meta:{name:`jobs.cancel`,version:1,stability:`stable`,owners:[...i],tags:[`jobs`,`cancel`],description:`Cancel a pending job.`,goal:`Allow cancellation of jobs that are no longer needed.`,context:`Only pending jobs can be cancelled.`},io:{input:u,output:d,errors:{JOB_NOT_FOUND:{description:`Job does not exist`,http:404,gqlCode:`JOB_NOT_FOUND`,when:`Job ID is invalid`},JOB_NOT_PENDING:{description:`Job is not in pending state`,http:409,gqlCode:`JOB_NOT_PENDING`,when:`Job has already started or completed`}}},policy:{auth:`user`},sideEffects:{emits:[{name:`job.cancelled`,version:1,when:`Job is cancelled`,payload:g}]}}),b=r({meta:{name:`jobs.stats`,version:1,stability:`stable`,owners:[...i],tags:[`jobs`,`stats`,`admin`],description:`Get job queue statistics.`,goal:`Monitor queue health and backlog.`,context:`Admin dashboard monitoring.`},io:{input:null,output:s},policy:{auth:`admin`}}),x=n({meta:{name:`jobs.schedule.create`,version:1,stability:`stable`,owners:[...i],tags:[`jobs`,`schedule`,`create`],description:`Create a scheduled/recurring job.`,goal:`Set up recurring background tasks.`,context:`Admin configuration for periodic tasks.`},io:{input:f,output:o},policy:{auth:`admin`}}),S=r({meta:{name:`jobs.schedule.list`,version:1,stability:`stable`,owners:[...i],tags:[`jobs`,`schedule`,`list`],description:`List all scheduled jobs.`,goal:`View configured recurring tasks.`,context:`Admin dashboard.`},io:{input:null,output:p},policy:{auth:`admin`}}),C=n({meta:{name:`jobs.schedule.toggle`,version:1,stability:`stable`,owners:[...i],tags:[`jobs`,`schedule`,`toggle`],description:`Enable or disable a scheduled job.`,goal:`Control when recurring tasks run.`,context:`Admin control over scheduled tasks.`},io:{input:m,output:o},policy:{auth:`admin`}});export{y as CancelJobContract,x as CreateScheduledJobContract,_ as EnqueueJobContract,v as GetJobContract,b as GetQueueStatsContract,a as JobModel,S as ListScheduledJobsContract,s as QueueStatsModel,o as ScheduledJobModel,C as ToggleScheduledJobContract};
1
+ import{l as e}from"../schema/dist/ScalarTypeEnum.js";import{n as t}from"../schema/dist/SchemaModel.js";import"../schema/dist/index.js";import{n,t as r}from"./dist/spec.js";import"./dist/index.js";const i=[`platform.jobs`],a=t({name:`Job`,description:`Represents a background job`,fields:{id:{type:e.String_unsecure(),isOptional:!1},type:{type:e.String_unsecure(),isOptional:!1},version:{type:e.Int_unsecure(),isOptional:!1},payload:{type:e.JSON(),isOptional:!1},status:{type:e.String_unsecure(),isOptional:!1},priority:{type:e.Int_unsecure(),isOptional:!1},attempts:{type:e.Int_unsecure(),isOptional:!1},maxRetries:{type:e.Int_unsecure(),isOptional:!1},createdAt:{type:e.DateTime(),isOptional:!1},updatedAt:{type:e.DateTime(),isOptional:!1},scheduledAt:{type:e.DateTime(),isOptional:!0},startedAt:{type:e.DateTime(),isOptional:!0},completedAt:{type:e.DateTime(),isOptional:!0},lastError:{type:e.String_unsecure(),isOptional:!0}}}),o=t({name:`ScheduledJob`,description:`Represents a scheduled/recurring job`,fields:{id:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},description:{type:e.String_unsecure(),isOptional:!0},cronExpression:{type:e.String_unsecure(),isOptional:!1},timezone:{type:e.String_unsecure(),isOptional:!1},jobType:{type:e.String_unsecure(),isOptional:!1},enabled:{type:e.Boolean(),isOptional:!1},lastRunAt:{type:e.DateTime(),isOptional:!0},nextRunAt:{type:e.DateTime(),isOptional:!0},createdAt:{type:e.DateTime(),isOptional:!1}}}),s=t({name:`QueueStats`,description:`Job queue statistics`,fields:{pending:{type:e.Int_unsecure(),isOptional:!1},running:{type:e.Int_unsecure(),isOptional:!1},completed:{type:e.Int_unsecure(),isOptional:!1},failed:{type:e.Int_unsecure(),isOptional:!1},deadLetter:{type:e.Int_unsecure(),isOptional:!1}}}),c=t({name:`EnqueueJobInput`,description:`Input for enqueuing a new job`,fields:{type:{type:e.String_unsecure(),isOptional:!1},payload:{type:e.JSON(),isOptional:!1},delaySeconds:{type:e.Int_unsecure(),isOptional:!0},dedupeKey:{type:e.String_unsecure(),isOptional:!0},maxRetries:{type:e.Int_unsecure(),isOptional:!0},priority:{type:e.Int_unsecure(),isOptional:!0},timeoutMs:{type:e.Int_unsecure(),isOptional:!0}}}),l=t({name:`GetJobInput`,description:`Input for getting a job by ID`,fields:{jobId:{type:e.String_unsecure(),isOptional:!1}}}),u=t({name:`CancelJobInput`,description:`Input for cancelling a job`,fields:{jobId:{type:e.String_unsecure(),isOptional:!1}}}),d=t({name:`CancelJobOutput`,description:`Output for cancel job operation`,fields:{success:{type:e.Boolean(),isOptional:!1}}}),f=t({name:`CreateScheduledJobInput`,description:`Input for creating a scheduled job`,fields:{name:{type:e.String_unsecure(),isOptional:!1},description:{type:e.String_unsecure(),isOptional:!0},cronExpression:{type:e.String_unsecure(),isOptional:!1},timezone:{type:e.String_unsecure(),isOptional:!0},jobType:{type:e.String_unsecure(),isOptional:!1},payload:{type:e.JSON(),isOptional:!0},maxRetries:{type:e.Int_unsecure(),isOptional:!0},enabled:{type:e.Boolean(),isOptional:!0}}}),p=t({name:`ListScheduledJobsOutput`,description:`Output for listing scheduled jobs`,fields:{schedules:{type:o,isArray:!0,isOptional:!1}}}),m=t({name:`ToggleScheduledJobInput`,description:`Input for toggling a scheduled job`,fields:{name:{type:e.String_unsecure(),isOptional:!1},enabled:{type:e.Boolean(),isOptional:!1}}}),h=t({name:`JobEnqueuedPayload`,description:`Payload for job.enqueued event`,fields:{jobId:{type:e.String_unsecure(),isOptional:!1},type:{type:e.String_unsecure(),isOptional:!1},priority:{type:e.Int_unsecure(),isOptional:!1},scheduledAt:{type:e.DateTime(),isOptional:!0},tenantId:{type:e.String_unsecure(),isOptional:!0},enqueuedAt:{type:e.DateTime(),isOptional:!1}}}),g=t({name:`JobCancelledPayload`,description:`Payload for job.cancelled event`,fields:{jobId:{type:e.String_unsecure(),isOptional:!1}}}),_=r({meta:{name:`jobs.enqueue`,version:1,stability:`stable`,owners:[...i],tags:[`jobs`,`enqueue`],description:`Enqueue a background job for async processing.`,goal:`Allow services to offload work to background processing.`,context:`Called by any service that needs async processing.`},io:{input:c,output:a},policy:{auth:`user`},sideEffects:{emits:[{name:`job.enqueued`,version:1,when:`Job is enqueued`,payload:h}]}}),v=n({meta:{name:`jobs.get`,version:1,stability:`stable`,owners:[...i],tags:[`jobs`,`get`],description:`Get a job by ID.`,goal:`Check job status and result.`,context:`Called to poll job status or retrieve results.`},io:{input:l,output:a},policy:{auth:`user`}}),y=r({meta:{name:`jobs.cancel`,version:1,stability:`stable`,owners:[...i],tags:[`jobs`,`cancel`],description:`Cancel a pending job.`,goal:`Allow cancellation of jobs that are no longer needed.`,context:`Only pending jobs can be cancelled.`},io:{input:u,output:d,errors:{JOB_NOT_FOUND:{description:`Job does not exist`,http:404,gqlCode:`JOB_NOT_FOUND`,when:`Job ID is invalid`},JOB_NOT_PENDING:{description:`Job is not in pending state`,http:409,gqlCode:`JOB_NOT_PENDING`,when:`Job has already started or completed`}}},policy:{auth:`user`},sideEffects:{emits:[{name:`job.cancelled`,version:1,when:`Job is cancelled`,payload:g}]}}),b=n({meta:{name:`jobs.stats`,version:1,stability:`stable`,owners:[...i],tags:[`jobs`,`stats`,`admin`],description:`Get job queue statistics.`,goal:`Monitor queue health and backlog.`,context:`Admin dashboard monitoring.`},io:{input:null,output:s},policy:{auth:`admin`}}),x=r({meta:{name:`jobs.schedule.create`,version:1,stability:`stable`,owners:[...i],tags:[`jobs`,`schedule`,`create`],description:`Create a scheduled/recurring job.`,goal:`Set up recurring background tasks.`,context:`Admin configuration for periodic tasks.`},io:{input:f,output:o},policy:{auth:`admin`}}),S=n({meta:{name:`jobs.schedule.list`,version:1,stability:`stable`,owners:[...i],tags:[`jobs`,`schedule`,`list`],description:`List all scheduled jobs.`,goal:`View configured recurring tasks.`,context:`Admin dashboard.`},io:{input:null,output:p},policy:{auth:`admin`}}),C=r({meta:{name:`jobs.schedule.toggle`,version:1,stability:`stable`,owners:[...i],tags:[`jobs`,`schedule`,`toggle`],description:`Enable or disable a scheduled job.`,goal:`Control when recurring tasks run.`,context:`Admin control over scheduled tasks.`},io:{input:m,output:o},policy:{auth:`admin`}});export{y as CancelJobContract,x as CreateScheduledJobContract,_ as EnqueueJobContract,v as GetJobContract,b as GetQueueStatsContract,a as JobModel,S as ListScheduledJobsContract,s as QueueStatsModel,o as ScheduledJobModel,C as ToggleScheduledJobContract};
@@ -1,140 +1,140 @@
1
- import * as _lssm_lib_schema0 from "@lssm/lib.schema";
1
+ import * as _lssm_lib_schema95 from "@lssm/lib.schema";
2
2
  import { ModuleSchemaContribution } from "@lssm/lib.schema";
3
3
 
4
4
  //#region src/entities/index.d.ts
5
5
  /**
6
6
  * Job status enum.
7
7
  */
8
- declare const JobStatusEnum: _lssm_lib_schema0.EntityEnumDef;
8
+ declare const JobStatusEnum: _lssm_lib_schema95.EntityEnumDef;
9
9
  /**
10
10
  * Job entity - represents a single job execution.
11
11
  */
12
- declare const JobEntity: _lssm_lib_schema0.EntitySpec<{
13
- id: _lssm_lib_schema0.EntityScalarField;
14
- type: _lssm_lib_schema0.EntityScalarField;
15
- version: _lssm_lib_schema0.EntityScalarField;
16
- payload: _lssm_lib_schema0.EntityScalarField;
17
- status: _lssm_lib_schema0.EntityEnumField;
18
- priority: _lssm_lib_schema0.EntityScalarField;
19
- attempts: _lssm_lib_schema0.EntityScalarField;
20
- maxRetries: _lssm_lib_schema0.EntityScalarField;
21
- lastError: _lssm_lib_schema0.EntityScalarField;
22
- lastErrorStack: _lssm_lib_schema0.EntityScalarField;
23
- scheduledAt: _lssm_lib_schema0.EntityScalarField;
24
- startedAt: _lssm_lib_schema0.EntityScalarField;
25
- completedAt: _lssm_lib_schema0.EntityScalarField;
26
- timeoutAt: _lssm_lib_schema0.EntityScalarField;
27
- dedupeKey: _lssm_lib_schema0.EntityScalarField;
28
- tenantId: _lssm_lib_schema0.EntityScalarField;
29
- userId: _lssm_lib_schema0.EntityScalarField;
30
- traceId: _lssm_lib_schema0.EntityScalarField;
31
- metadata: _lssm_lib_schema0.EntityScalarField;
32
- result: _lssm_lib_schema0.EntityScalarField;
33
- createdAt: _lssm_lib_schema0.EntityScalarField;
34
- updatedAt: _lssm_lib_schema0.EntityScalarField;
35
- scheduledJob: _lssm_lib_schema0.EntityRelationField;
36
- scheduledJobId: _lssm_lib_schema0.EntityScalarField;
37
- executions: _lssm_lib_schema0.EntityRelationField;
12
+ declare const JobEntity: _lssm_lib_schema95.EntitySpec<{
13
+ id: _lssm_lib_schema95.EntityScalarField;
14
+ type: _lssm_lib_schema95.EntityScalarField;
15
+ version: _lssm_lib_schema95.EntityScalarField;
16
+ payload: _lssm_lib_schema95.EntityScalarField;
17
+ status: _lssm_lib_schema95.EntityEnumField;
18
+ priority: _lssm_lib_schema95.EntityScalarField;
19
+ attempts: _lssm_lib_schema95.EntityScalarField;
20
+ maxRetries: _lssm_lib_schema95.EntityScalarField;
21
+ lastError: _lssm_lib_schema95.EntityScalarField;
22
+ lastErrorStack: _lssm_lib_schema95.EntityScalarField;
23
+ scheduledAt: _lssm_lib_schema95.EntityScalarField;
24
+ startedAt: _lssm_lib_schema95.EntityScalarField;
25
+ completedAt: _lssm_lib_schema95.EntityScalarField;
26
+ timeoutAt: _lssm_lib_schema95.EntityScalarField;
27
+ dedupeKey: _lssm_lib_schema95.EntityScalarField;
28
+ tenantId: _lssm_lib_schema95.EntityScalarField;
29
+ userId: _lssm_lib_schema95.EntityScalarField;
30
+ traceId: _lssm_lib_schema95.EntityScalarField;
31
+ metadata: _lssm_lib_schema95.EntityScalarField;
32
+ result: _lssm_lib_schema95.EntityScalarField;
33
+ createdAt: _lssm_lib_schema95.EntityScalarField;
34
+ updatedAt: _lssm_lib_schema95.EntityScalarField;
35
+ scheduledJob: _lssm_lib_schema95.EntityRelationField;
36
+ scheduledJobId: _lssm_lib_schema95.EntityScalarField;
37
+ executions: _lssm_lib_schema95.EntityRelationField;
38
38
  }>;
39
39
  /**
40
40
  * ScheduledJob entity - recurring job definitions.
41
41
  */
42
- declare const ScheduledJobEntity: _lssm_lib_schema0.EntitySpec<{
43
- id: _lssm_lib_schema0.EntityScalarField;
44
- name: _lssm_lib_schema0.EntityScalarField;
45
- description: _lssm_lib_schema0.EntityScalarField;
46
- cronExpression: _lssm_lib_schema0.EntityScalarField;
47
- timezone: _lssm_lib_schema0.EntityScalarField;
48
- jobType: _lssm_lib_schema0.EntityScalarField;
49
- jobVersion: _lssm_lib_schema0.EntityScalarField;
50
- payload: _lssm_lib_schema0.EntityScalarField;
51
- maxRetries: _lssm_lib_schema0.EntityScalarField;
52
- timeoutMs: _lssm_lib_schema0.EntityScalarField;
53
- enabled: _lssm_lib_schema0.EntityScalarField;
54
- lastRunAt: _lssm_lib_schema0.EntityScalarField;
55
- nextRunAt: _lssm_lib_schema0.EntityScalarField;
56
- tenantId: _lssm_lib_schema0.EntityScalarField;
57
- createdAt: _lssm_lib_schema0.EntityScalarField;
58
- updatedAt: _lssm_lib_schema0.EntityScalarField;
59
- jobs: _lssm_lib_schema0.EntityRelationField;
42
+ declare const ScheduledJobEntity: _lssm_lib_schema95.EntitySpec<{
43
+ id: _lssm_lib_schema95.EntityScalarField;
44
+ name: _lssm_lib_schema95.EntityScalarField;
45
+ description: _lssm_lib_schema95.EntityScalarField;
46
+ cronExpression: _lssm_lib_schema95.EntityScalarField;
47
+ timezone: _lssm_lib_schema95.EntityScalarField;
48
+ jobType: _lssm_lib_schema95.EntityScalarField;
49
+ jobVersion: _lssm_lib_schema95.EntityScalarField;
50
+ payload: _lssm_lib_schema95.EntityScalarField;
51
+ maxRetries: _lssm_lib_schema95.EntityScalarField;
52
+ timeoutMs: _lssm_lib_schema95.EntityScalarField;
53
+ enabled: _lssm_lib_schema95.EntityScalarField;
54
+ lastRunAt: _lssm_lib_schema95.EntityScalarField;
55
+ nextRunAt: _lssm_lib_schema95.EntityScalarField;
56
+ tenantId: _lssm_lib_schema95.EntityScalarField;
57
+ createdAt: _lssm_lib_schema95.EntityScalarField;
58
+ updatedAt: _lssm_lib_schema95.EntityScalarField;
59
+ jobs: _lssm_lib_schema95.EntityRelationField;
60
60
  }>;
61
61
  /**
62
62
  * JobExecution entity - individual execution attempts.
63
63
  */
64
- declare const JobExecutionEntity: _lssm_lib_schema0.EntitySpec<{
65
- id: _lssm_lib_schema0.EntityScalarField;
66
- jobId: _lssm_lib_schema0.EntityScalarField;
67
- attemptNumber: _lssm_lib_schema0.EntityScalarField;
68
- startedAt: _lssm_lib_schema0.EntityScalarField;
69
- completedAt: _lssm_lib_schema0.EntityScalarField;
70
- durationMs: _lssm_lib_schema0.EntityScalarField;
71
- success: _lssm_lib_schema0.EntityScalarField;
72
- error: _lssm_lib_schema0.EntityScalarField;
73
- errorStack: _lssm_lib_schema0.EntityScalarField;
74
- result: _lssm_lib_schema0.EntityScalarField;
75
- workerId: _lssm_lib_schema0.EntityScalarField;
76
- job: _lssm_lib_schema0.EntityRelationField;
64
+ declare const JobExecutionEntity: _lssm_lib_schema95.EntitySpec<{
65
+ id: _lssm_lib_schema95.EntityScalarField;
66
+ jobId: _lssm_lib_schema95.EntityScalarField;
67
+ attemptNumber: _lssm_lib_schema95.EntityScalarField;
68
+ startedAt: _lssm_lib_schema95.EntityScalarField;
69
+ completedAt: _lssm_lib_schema95.EntityScalarField;
70
+ durationMs: _lssm_lib_schema95.EntityScalarField;
71
+ success: _lssm_lib_schema95.EntityScalarField;
72
+ error: _lssm_lib_schema95.EntityScalarField;
73
+ errorStack: _lssm_lib_schema95.EntityScalarField;
74
+ result: _lssm_lib_schema95.EntityScalarField;
75
+ workerId: _lssm_lib_schema95.EntityScalarField;
76
+ job: _lssm_lib_schema95.EntityRelationField;
77
77
  }>;
78
78
  /**
79
79
  * All job entities for schema composition.
80
80
  */
81
- declare const jobEntities: (_lssm_lib_schema0.EntitySpec<{
82
- id: _lssm_lib_schema0.EntityScalarField;
83
- type: _lssm_lib_schema0.EntityScalarField;
84
- version: _lssm_lib_schema0.EntityScalarField;
85
- payload: _lssm_lib_schema0.EntityScalarField;
86
- status: _lssm_lib_schema0.EntityEnumField;
87
- priority: _lssm_lib_schema0.EntityScalarField;
88
- attempts: _lssm_lib_schema0.EntityScalarField;
89
- maxRetries: _lssm_lib_schema0.EntityScalarField;
90
- lastError: _lssm_lib_schema0.EntityScalarField;
91
- lastErrorStack: _lssm_lib_schema0.EntityScalarField;
92
- scheduledAt: _lssm_lib_schema0.EntityScalarField;
93
- startedAt: _lssm_lib_schema0.EntityScalarField;
94
- completedAt: _lssm_lib_schema0.EntityScalarField;
95
- timeoutAt: _lssm_lib_schema0.EntityScalarField;
96
- dedupeKey: _lssm_lib_schema0.EntityScalarField;
97
- tenantId: _lssm_lib_schema0.EntityScalarField;
98
- userId: _lssm_lib_schema0.EntityScalarField;
99
- traceId: _lssm_lib_schema0.EntityScalarField;
100
- metadata: _lssm_lib_schema0.EntityScalarField;
101
- result: _lssm_lib_schema0.EntityScalarField;
102
- createdAt: _lssm_lib_schema0.EntityScalarField;
103
- updatedAt: _lssm_lib_schema0.EntityScalarField;
104
- scheduledJob: _lssm_lib_schema0.EntityRelationField;
105
- scheduledJobId: _lssm_lib_schema0.EntityScalarField;
106
- executions: _lssm_lib_schema0.EntityRelationField;
107
- }> | _lssm_lib_schema0.EntitySpec<{
108
- id: _lssm_lib_schema0.EntityScalarField;
109
- name: _lssm_lib_schema0.EntityScalarField;
110
- description: _lssm_lib_schema0.EntityScalarField;
111
- cronExpression: _lssm_lib_schema0.EntityScalarField;
112
- timezone: _lssm_lib_schema0.EntityScalarField;
113
- jobType: _lssm_lib_schema0.EntityScalarField;
114
- jobVersion: _lssm_lib_schema0.EntityScalarField;
115
- payload: _lssm_lib_schema0.EntityScalarField;
116
- maxRetries: _lssm_lib_schema0.EntityScalarField;
117
- timeoutMs: _lssm_lib_schema0.EntityScalarField;
118
- enabled: _lssm_lib_schema0.EntityScalarField;
119
- lastRunAt: _lssm_lib_schema0.EntityScalarField;
120
- nextRunAt: _lssm_lib_schema0.EntityScalarField;
121
- tenantId: _lssm_lib_schema0.EntityScalarField;
122
- createdAt: _lssm_lib_schema0.EntityScalarField;
123
- updatedAt: _lssm_lib_schema0.EntityScalarField;
124
- jobs: _lssm_lib_schema0.EntityRelationField;
125
- }> | _lssm_lib_schema0.EntitySpec<{
126
- id: _lssm_lib_schema0.EntityScalarField;
127
- jobId: _lssm_lib_schema0.EntityScalarField;
128
- attemptNumber: _lssm_lib_schema0.EntityScalarField;
129
- startedAt: _lssm_lib_schema0.EntityScalarField;
130
- completedAt: _lssm_lib_schema0.EntityScalarField;
131
- durationMs: _lssm_lib_schema0.EntityScalarField;
132
- success: _lssm_lib_schema0.EntityScalarField;
133
- error: _lssm_lib_schema0.EntityScalarField;
134
- errorStack: _lssm_lib_schema0.EntityScalarField;
135
- result: _lssm_lib_schema0.EntityScalarField;
136
- workerId: _lssm_lib_schema0.EntityScalarField;
137
- job: _lssm_lib_schema0.EntityRelationField;
81
+ declare const jobEntities: (_lssm_lib_schema95.EntitySpec<{
82
+ id: _lssm_lib_schema95.EntityScalarField;
83
+ type: _lssm_lib_schema95.EntityScalarField;
84
+ version: _lssm_lib_schema95.EntityScalarField;
85
+ payload: _lssm_lib_schema95.EntityScalarField;
86
+ status: _lssm_lib_schema95.EntityEnumField;
87
+ priority: _lssm_lib_schema95.EntityScalarField;
88
+ attempts: _lssm_lib_schema95.EntityScalarField;
89
+ maxRetries: _lssm_lib_schema95.EntityScalarField;
90
+ lastError: _lssm_lib_schema95.EntityScalarField;
91
+ lastErrorStack: _lssm_lib_schema95.EntityScalarField;
92
+ scheduledAt: _lssm_lib_schema95.EntityScalarField;
93
+ startedAt: _lssm_lib_schema95.EntityScalarField;
94
+ completedAt: _lssm_lib_schema95.EntityScalarField;
95
+ timeoutAt: _lssm_lib_schema95.EntityScalarField;
96
+ dedupeKey: _lssm_lib_schema95.EntityScalarField;
97
+ tenantId: _lssm_lib_schema95.EntityScalarField;
98
+ userId: _lssm_lib_schema95.EntityScalarField;
99
+ traceId: _lssm_lib_schema95.EntityScalarField;
100
+ metadata: _lssm_lib_schema95.EntityScalarField;
101
+ result: _lssm_lib_schema95.EntityScalarField;
102
+ createdAt: _lssm_lib_schema95.EntityScalarField;
103
+ updatedAt: _lssm_lib_schema95.EntityScalarField;
104
+ scheduledJob: _lssm_lib_schema95.EntityRelationField;
105
+ scheduledJobId: _lssm_lib_schema95.EntityScalarField;
106
+ executions: _lssm_lib_schema95.EntityRelationField;
107
+ }> | _lssm_lib_schema95.EntitySpec<{
108
+ id: _lssm_lib_schema95.EntityScalarField;
109
+ name: _lssm_lib_schema95.EntityScalarField;
110
+ description: _lssm_lib_schema95.EntityScalarField;
111
+ cronExpression: _lssm_lib_schema95.EntityScalarField;
112
+ timezone: _lssm_lib_schema95.EntityScalarField;
113
+ jobType: _lssm_lib_schema95.EntityScalarField;
114
+ jobVersion: _lssm_lib_schema95.EntityScalarField;
115
+ payload: _lssm_lib_schema95.EntityScalarField;
116
+ maxRetries: _lssm_lib_schema95.EntityScalarField;
117
+ timeoutMs: _lssm_lib_schema95.EntityScalarField;
118
+ enabled: _lssm_lib_schema95.EntityScalarField;
119
+ lastRunAt: _lssm_lib_schema95.EntityScalarField;
120
+ nextRunAt: _lssm_lib_schema95.EntityScalarField;
121
+ tenantId: _lssm_lib_schema95.EntityScalarField;
122
+ createdAt: _lssm_lib_schema95.EntityScalarField;
123
+ updatedAt: _lssm_lib_schema95.EntityScalarField;
124
+ jobs: _lssm_lib_schema95.EntityRelationField;
125
+ }> | _lssm_lib_schema95.EntitySpec<{
126
+ id: _lssm_lib_schema95.EntityScalarField;
127
+ jobId: _lssm_lib_schema95.EntityScalarField;
128
+ attemptNumber: _lssm_lib_schema95.EntityScalarField;
129
+ startedAt: _lssm_lib_schema95.EntityScalarField;
130
+ completedAt: _lssm_lib_schema95.EntityScalarField;
131
+ durationMs: _lssm_lib_schema95.EntityScalarField;
132
+ success: _lssm_lib_schema95.EntityScalarField;
133
+ error: _lssm_lib_schema95.EntityScalarField;
134
+ errorStack: _lssm_lib_schema95.EntityScalarField;
135
+ result: _lssm_lib_schema95.EntityScalarField;
136
+ workerId: _lssm_lib_schema95.EntityScalarField;
137
+ job: _lssm_lib_schema95.EntityRelationField;
138
138
  }>)[];
139
139
  /**
140
140
  * Module schema contribution for jobs.
@@ -1 +1 @@
1
- import{defineEntity as e,defineEntityEnum as t,field as n,index as r}from"@lssm/lib.schema";const i=t({name:`JobStatus`,values:[`PENDING`,`RUNNING`,`COMPLETED`,`FAILED`,`CANCELLED`,`DEAD_LETTER`],schema:`lssm_jobs`,description:`Status of a background job.`}),a=e({name:`Job`,description:`A background job for async processing.`,schema:`lssm_jobs`,map:`job`,fields:{id:n.id({description:`Unique job identifier`}),type:n.string({description:`Job type identifier`}),version:n.int({default:1,description:`Job type version`}),payload:n.json({description:`Job payload data`}),status:n.enum(`JobStatus`,{default:`PENDING`}),priority:n.int({default:0,description:`Higher = more urgent`}),attempts:n.int({default:0,description:`Number of execution attempts`}),maxRetries:n.int({default:3,description:`Maximum retry attempts`}),lastError:n.string({isOptional:!0,description:`Last error message`}),lastErrorStack:n.string({isOptional:!0,description:`Last error stack trace`}),scheduledAt:n.dateTime({isOptional:!0,description:`When job should be processed`}),startedAt:n.dateTime({isOptional:!0,description:`When processing started`}),completedAt:n.dateTime({isOptional:!0,description:`When processing completed`}),timeoutAt:n.dateTime({isOptional:!0,description:`Job timeout deadline`}),dedupeKey:n.string({isOptional:!0,description:`Key for deduplication`}),tenantId:n.string({isOptional:!0,description:`Tenant/org context`}),userId:n.string({isOptional:!0,description:`User who enqueued`}),traceId:n.string({isOptional:!0,description:`Distributed trace ID`}),metadata:n.json({isOptional:!0,description:`Additional metadata`}),result:n.json({isOptional:!0,description:`Job result data`}),createdAt:n.createdAt(),updatedAt:n.updatedAt(),scheduledJob:n.belongsTo(`ScheduledJob`,[`scheduledJobId`],[`id`]),scheduledJobId:n.string({isOptional:!0}),executions:n.hasMany(`JobExecution`)},indexes:[r.on([`status`,`scheduledAt`]),r.on([`type`,`status`]),r.on([`tenantId`,`status`]),r.unique([`dedupeKey`],{name:`job_dedupe_key_unique`})],enums:[i]}),o=e({name:`ScheduledJob`,description:`A scheduled/recurring job definition.`,schema:`lssm_jobs`,map:`scheduled_job`,fields:{id:n.id(),name:n.string({isUnique:!0,description:`Unique schedule name`}),description:n.string({isOptional:!0}),cronExpression:n.string({description:`Cron expression for scheduling`}),timezone:n.string({default:`"UTC"`,description:`Timezone for cron evaluation`}),jobType:n.string({description:`Job type to create`}),jobVersion:n.int({default:1}),payload:n.json({isOptional:!0,description:`Default payload for created jobs`}),maxRetries:n.int({default:3}),timeoutMs:n.int({isOptional:!0,description:`Job timeout in milliseconds`}),enabled:n.boolean({default:!0}),lastRunAt:n.dateTime({isOptional:!0}),nextRunAt:n.dateTime({isOptional:!0}),tenantId:n.string({isOptional:!0}),createdAt:n.createdAt(),updatedAt:n.updatedAt(),jobs:n.hasMany(`Job`)},indexes:[r.on([`enabled`,`nextRunAt`])]}),s=e({name:`JobExecution`,description:`A single execution attempt of a job.`,schema:`lssm_jobs`,map:`job_execution`,fields:{id:n.id(),jobId:n.foreignKey(),attemptNumber:n.int({description:`Which attempt this is`}),startedAt:n.dateTime(),completedAt:n.dateTime({isOptional:!0}),durationMs:n.int({isOptional:!0}),success:n.boolean({isOptional:!0}),error:n.string({isOptional:!0}),errorStack:n.string({isOptional:!0}),result:n.json({isOptional:!0}),workerId:n.string({isOptional:!0,description:`ID of worker that processed`}),job:n.belongsTo(`Job`,[`jobId`],[`id`],{onDelete:`Cascade`})},indexes:[r.on([`jobId`,`attemptNumber`])]}),c=[a,o,s],l={moduleId:`@lssm/lib.jobs`,entities:c,enums:[i]};export{a as JobEntity,s as JobExecutionEntity,i as JobStatusEnum,o as ScheduledJobEntity,c as jobEntities,l as jobsSchemaContribution};
1
+ import{i as e,n as t,r as n,t as r}from"../schema/dist/entity/defineEntity.js";import"../schema/dist/index.js";const i=t({name:`JobStatus`,values:[`PENDING`,`RUNNING`,`COMPLETED`,`FAILED`,`CANCELLED`,`DEAD_LETTER`],schema:`lssm_jobs`,description:`Status of a background job.`}),a=r({name:`Job`,description:`A background job for async processing.`,schema:`lssm_jobs`,map:`job`,fields:{id:n.id({description:`Unique job identifier`}),type:n.string({description:`Job type identifier`}),version:n.int({default:1,description:`Job type version`}),payload:n.json({description:`Job payload data`}),status:n.enum(`JobStatus`,{default:`PENDING`}),priority:n.int({default:0,description:`Higher = more urgent`}),attempts:n.int({default:0,description:`Number of execution attempts`}),maxRetries:n.int({default:3,description:`Maximum retry attempts`}),lastError:n.string({isOptional:!0,description:`Last error message`}),lastErrorStack:n.string({isOptional:!0,description:`Last error stack trace`}),scheduledAt:n.dateTime({isOptional:!0,description:`When job should be processed`}),startedAt:n.dateTime({isOptional:!0,description:`When processing started`}),completedAt:n.dateTime({isOptional:!0,description:`When processing completed`}),timeoutAt:n.dateTime({isOptional:!0,description:`Job timeout deadline`}),dedupeKey:n.string({isOptional:!0,description:`Key for deduplication`}),tenantId:n.string({isOptional:!0,description:`Tenant/org context`}),userId:n.string({isOptional:!0,description:`User who enqueued`}),traceId:n.string({isOptional:!0,description:`Distributed trace ID`}),metadata:n.json({isOptional:!0,description:`Additional metadata`}),result:n.json({isOptional:!0,description:`Job result data`}),createdAt:n.createdAt(),updatedAt:n.updatedAt(),scheduledJob:n.belongsTo(`ScheduledJob`,[`scheduledJobId`],[`id`]),scheduledJobId:n.string({isOptional:!0}),executions:n.hasMany(`JobExecution`)},indexes:[e.on([`status`,`scheduledAt`]),e.on([`type`,`status`]),e.on([`tenantId`,`status`]),e.unique([`dedupeKey`],{name:`job_dedupe_key_unique`})],enums:[i]}),o=r({name:`ScheduledJob`,description:`A scheduled/recurring job definition.`,schema:`lssm_jobs`,map:`scheduled_job`,fields:{id:n.id(),name:n.string({isUnique:!0,description:`Unique schedule name`}),description:n.string({isOptional:!0}),cronExpression:n.string({description:`Cron expression for scheduling`}),timezone:n.string({default:`"UTC"`,description:`Timezone for cron evaluation`}),jobType:n.string({description:`Job type to create`}),jobVersion:n.int({default:1}),payload:n.json({isOptional:!0,description:`Default payload for created jobs`}),maxRetries:n.int({default:3}),timeoutMs:n.int({isOptional:!0,description:`Job timeout in milliseconds`}),enabled:n.boolean({default:!0}),lastRunAt:n.dateTime({isOptional:!0}),nextRunAt:n.dateTime({isOptional:!0}),tenantId:n.string({isOptional:!0}),createdAt:n.createdAt(),updatedAt:n.updatedAt(),jobs:n.hasMany(`Job`)},indexes:[e.on([`enabled`,`nextRunAt`])]}),s=r({name:`JobExecution`,description:`A single execution attempt of a job.`,schema:`lssm_jobs`,map:`job_execution`,fields:{id:n.id(),jobId:n.foreignKey(),attemptNumber:n.int({description:`Which attempt this is`}),startedAt:n.dateTime(),completedAt:n.dateTime({isOptional:!0}),durationMs:n.int({isOptional:!0}),success:n.boolean({isOptional:!0}),error:n.string({isOptional:!0}),errorStack:n.string({isOptional:!0}),result:n.json({isOptional:!0}),workerId:n.string({isOptional:!0,description:`ID of worker that processed`}),job:n.belongsTo(`Job`,[`jobId`],[`id`],{onDelete:`Cascade`})},indexes:[e.on([`jobId`,`attemptNumber`])]}),c=[a,o,s],l={moduleId:`@lssm/lib.jobs`,entities:c,enums:[i]};export{a as JobEntity,s as JobExecutionEntity,i as JobStatusEnum,o as ScheduledJobEntity,c as jobEntities,l as jobsSchemaContribution};