@semiont/jobs 0.5.2 → 0.5.4

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 (35) hide show
  1. package/dist/fs-job-queue.d.ts +79 -0
  2. package/dist/fs-job-queue.d.ts.map +1 -0
  3. package/dist/index.d.ts +20 -623
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +74 -218
  6. package/dist/index.js.map +1 -1
  7. package/dist/job-claim-adapter.d.ts +76 -0
  8. package/dist/job-claim-adapter.d.ts.map +1 -0
  9. package/dist/job-queue-interface.d.ts +19 -0
  10. package/dist/job-queue-interface.d.ts.map +1 -0
  11. package/dist/job-queue-state-unit.d.ts +26 -0
  12. package/dist/job-queue-state-unit.d.ts.map +1 -0
  13. package/dist/job-worker.d.ts +67 -0
  14. package/dist/job-worker.d.ts.map +1 -0
  15. package/dist/processors.d.ts +41 -0
  16. package/dist/processors.d.ts.map +1 -0
  17. package/dist/types.d.ts +319 -0
  18. package/dist/types.d.ts.map +1 -0
  19. package/dist/worker-main.d.ts +22 -2
  20. package/dist/worker-main.d.ts.map +1 -0
  21. package/dist/worker-main.js +175 -276
  22. package/dist/worker-main.js.map +1 -1
  23. package/dist/worker-process.d.ts +47 -0
  24. package/dist/worker-process.d.ts.map +1 -0
  25. package/dist/workers/annotation-detection.d.ts +61 -0
  26. package/dist/workers/annotation-detection.d.ts.map +1 -0
  27. package/dist/workers/detection/entity-extractor.d.ts +42 -0
  28. package/dist/workers/detection/entity-extractor.d.ts.map +1 -0
  29. package/dist/workers/detection/motivation-parsers.d.ts +116 -0
  30. package/dist/workers/detection/motivation-parsers.d.ts.map +1 -0
  31. package/dist/workers/detection/motivation-prompts.d.ts +57 -0
  32. package/dist/workers/detection/motivation-prompts.d.ts.map +1 -0
  33. package/dist/workers/generation/resource-generation.d.ts +23 -0
  34. package/dist/workers/generation/resource-generation.d.ts.map +1 -0
  35. package/package.json +3 -3
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Job Queue Manager
3
+ *
4
+ * Filesystem-based job queue with atomic operations.
5
+ * Jobs are stored in directories by status for easy polling.
6
+ */
7
+ import type { AnyJob, JobStatus, JobQueryFilters } from './types';
8
+ import type { SemiontProject } from '@semiont/core/node';
9
+ import type { JobId, Logger, EventBus } from '@semiont/core';
10
+ import type { JobQueue } from './job-queue-interface';
11
+ export declare class FsJobQueue implements JobQueue {
12
+ private eventBus?;
13
+ private jobsDir;
14
+ private logger;
15
+ private pendingQueue;
16
+ private watcher;
17
+ private loadDebounceTimer;
18
+ constructor(project: SemiontProject, logger: Logger, eventBus?: EventBus | undefined);
19
+ /**
20
+ * Initialize job queue directories, load pending jobs, and start fs.watch
21
+ */
22
+ initialize(): Promise<void>;
23
+ /**
24
+ * Clean up watcher
25
+ */
26
+ destroy(): void;
27
+ /**
28
+ * Load pending jobs from disk into in-memory queue
29
+ */
30
+ private loadPendingJobs;
31
+ /**
32
+ * Debounced version of loadPendingJobs — fs.watch can fire rapidly
33
+ */
34
+ private debouncedLoadPendingJobs;
35
+ /**
36
+ * Create a new job
37
+ */
38
+ createJob(job: AnyJob): Promise<void>;
39
+ /**
40
+ * Get a job by ID (searches all status directories)
41
+ */
42
+ getJob(jobId: JobId): Promise<AnyJob | null>;
43
+ /**
44
+ * Update a job (atomic: delete old, write new)
45
+ */
46
+ updateJob(job: AnyJob, oldStatus?: JobStatus): Promise<void>;
47
+ /**
48
+ * Poll for next pending job (FIFO) from in-memory queue.
49
+ * If a predicate is provided, returns the first matching job (skipping non-matching ones).
50
+ */
51
+ pollNextPendingJob(predicate?: (job: AnyJob) => boolean): Promise<AnyJob | null>;
52
+ /**
53
+ * List jobs with filters
54
+ */
55
+ listJobs(filters?: JobQueryFilters): Promise<AnyJob[]>;
56
+ /**
57
+ * Cancel a job
58
+ */
59
+ cancelJob(jobId: JobId): Promise<boolean>;
60
+ /**
61
+ * Clean up old completed/failed jobs (older than retention period)
62
+ */
63
+ cleanupOldJobs(retentionHours?: number): Promise<number>;
64
+ /**
65
+ * Get job file path
66
+ */
67
+ private getJobPath;
68
+ /**
69
+ * Get statistics about the queue
70
+ */
71
+ getStats(): Promise<{
72
+ pending: number;
73
+ running: number;
74
+ complete: number;
75
+ failed: number;
76
+ cancelled: number;
77
+ }>;
78
+ }
79
+ //# sourceMappingURL=fs-job-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs-job-queue.d.ts","sourceRoot":"","sources":["../src/fs-job-queue.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAgB,MAAM,SAAS,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,qBAAa,UAAW,YAAW,QAAQ;IAWvC,OAAO,CAAC,QAAQ,CAAC;IAVnB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,iBAAiB,CAA8C;gBAGrE,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,MAAM,EACN,QAAQ,CAAC,EAAE,QAAQ,YAAA;IAM7B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BjC;;OAEG;IACH,OAAO,IAAI,IAAI;IAWf;;OAEG;YACW,eAAe;IAsB7B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAQhC;;OAEG;IACG,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB3C;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAiBlD;;OAEG;IACG,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAkClE;;;OAGG;IACG,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUtF;;OAEG;IACG,QAAQ,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAyChE;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;IA2B/C;;OAEG;IACG,cAAc,CAAC,cAAc,GAAE,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAsClE;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CAyBH"}