@vibesdotdev/integrations-kafka 0.0.0-stage → 1.0.0-rc.1

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 (166) hide show
  1. package/AUDIT-CODE.md +40 -0
  2. package/AUDIT-SEAL.md +12 -0
  3. package/LICENSE +126 -0
  4. package/README.md +76 -2
  5. package/SEALED.md +13 -0
  6. package/dist/admin.d.ts +20 -0
  7. package/dist/admin.d.ts.map +1 -0
  8. package/dist/admin.js +51 -0
  9. package/dist/admin.js.map +1 -0
  10. package/dist/auth/sasl.node.impl.d.ts +18 -0
  11. package/dist/auth/sasl.node.impl.d.ts.map +1 -0
  12. package/dist/auth/sasl.node.impl.js +62 -0
  13. package/dist/auth/sasl.node.impl.js.map +1 -0
  14. package/dist/chat/realtime-transport/host.d.ts +14 -0
  15. package/dist/chat/realtime-transport/host.d.ts.map +1 -0
  16. package/dist/chat/realtime-transport/host.js +7 -0
  17. package/dist/chat/realtime-transport/host.js.map +1 -0
  18. package/dist/chat/realtime-transport/index.d.ts +15 -0
  19. package/dist/chat/realtime-transport/index.d.ts.map +1 -0
  20. package/dist/chat/realtime-transport/index.js +13 -0
  21. package/dist/chat/realtime-transport/index.js.map +1 -0
  22. package/dist/chat/realtime-transport/lifecycle.d.ts +30 -0
  23. package/dist/chat/realtime-transport/lifecycle.d.ts.map +1 -0
  24. package/dist/chat/realtime-transport/lifecycle.js +125 -0
  25. package/dist/chat/realtime-transport/lifecycle.js.map +1 -0
  26. package/dist/chat/realtime-transport/projection.d.ts +127 -0
  27. package/dist/chat/realtime-transport/projection.d.ts.map +1 -0
  28. package/dist/chat/realtime-transport/projection.js +156 -0
  29. package/dist/chat/realtime-transport/projection.js.map +1 -0
  30. package/dist/chat/realtime-transport/sse-kafka-bridge.d.ts +32 -0
  31. package/dist/chat/realtime-transport/sse-kafka-bridge.d.ts.map +1 -0
  32. package/dist/chat/realtime-transport/sse-kafka-bridge.js +58 -0
  33. package/dist/chat/realtime-transport/sse-kafka-bridge.js.map +1 -0
  34. package/dist/chat/realtime-transport/ws-kafka-bridge.d.ts +10 -0
  35. package/dist/chat/realtime-transport/ws-kafka-bridge.d.ts.map +1 -0
  36. package/dist/chat/realtime-transport/ws-kafka-bridge.js +13 -0
  37. package/dist/chat/realtime-transport/ws-kafka-bridge.js.map +1 -0
  38. package/dist/client.d.ts +16 -0
  39. package/dist/client.d.ts.map +1 -0
  40. package/dist/client.js +29 -0
  41. package/dist/client.js.map +1 -0
  42. package/dist/config/kafka.config.descriptor.d.ts +109 -0
  43. package/dist/config/kafka.config.descriptor.d.ts.map +1 -0
  44. package/dist/config/kafka.config.descriptor.js +60 -0
  45. package/dist/config/kafka.config.descriptor.js.map +1 -0
  46. package/dist/connections.d.ts +27 -0
  47. package/dist/connections.d.ts.map +1 -0
  48. package/dist/connections.js +20 -0
  49. package/dist/connections.js.map +1 -0
  50. package/dist/connections.node.impl.d.ts +34 -0
  51. package/dist/connections.node.impl.d.ts.map +1 -0
  52. package/dist/connections.node.impl.js +236 -0
  53. package/dist/connections.node.impl.js.map +1 -0
  54. package/dist/index.d.ts +22 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +24 -0
  57. package/dist/index.js.map +1 -0
  58. package/dist/kafka-client.node.impl.d.ts +9 -0
  59. package/dist/kafka-client.node.impl.d.ts.map +1 -0
  60. package/dist/kafka-client.node.impl.js +10 -0
  61. package/dist/kafka-client.node.impl.js.map +1 -0
  62. package/dist/kafka-connector.impl.d.ts +53 -0
  63. package/dist/kafka-connector.impl.d.ts.map +1 -0
  64. package/dist/kafka-connector.impl.js +97 -0
  65. package/dist/kafka-connector.impl.js.map +1 -0
  66. package/dist/kafka-event-adapter.descriptor.d.ts +11 -0
  67. package/dist/kafka-event-adapter.descriptor.d.ts.map +1 -0
  68. package/dist/kafka-event-adapter.descriptor.js +20 -0
  69. package/dist/kafka-event-adapter.descriptor.js.map +1 -0
  70. package/dist/kafka-event-adapter.impl.d.ts +22 -0
  71. package/dist/kafka-event-adapter.impl.d.ts.map +1 -0
  72. package/dist/kafka-event-adapter.impl.js +140 -0
  73. package/dist/kafka-event-adapter.impl.js.map +1 -0
  74. package/dist/kafka-substrate.descriptor.d.ts +4 -0
  75. package/dist/kafka-substrate.descriptor.d.ts.map +1 -0
  76. package/dist/kafka-substrate.descriptor.js +12 -0
  77. package/dist/kafka-substrate.descriptor.js.map +1 -0
  78. package/dist/kafka.d.ts +18 -0
  79. package/dist/kafka.d.ts.map +1 -0
  80. package/dist/kafka.js +23 -0
  81. package/dist/kafka.js.map +1 -0
  82. package/dist/kafka.node.plugin.d.ts +3 -0
  83. package/dist/kafka.node.plugin.d.ts.map +1 -0
  84. package/dist/kafka.node.plugin.js +66 -0
  85. package/dist/kafka.node.plugin.js.map +1 -0
  86. package/dist/kafka.plugin.d.ts +10 -0
  87. package/dist/kafka.plugin.d.ts.map +1 -0
  88. package/dist/kafka.plugin.js +28 -0
  89. package/dist/kafka.plugin.js.map +1 -0
  90. package/dist/logging/kafka.logger.descriptor.d.ts +7 -0
  91. package/dist/logging/kafka.logger.descriptor.d.ts.map +1 -0
  92. package/dist/logging/kafka.logger.descriptor.js +13 -0
  93. package/dist/logging/kafka.logger.descriptor.js.map +1 -0
  94. package/dist/message-schemas.d.ts +94 -0
  95. package/dist/message-schemas.d.ts.map +1 -0
  96. package/dist/message-schemas.js +68 -0
  97. package/dist/message-schemas.js.map +1 -0
  98. package/dist/request-queue-timeout-guard.d.ts +29 -0
  99. package/dist/request-queue-timeout-guard.d.ts.map +1 -0
  100. package/dist/request-queue-timeout-guard.js +245 -0
  101. package/dist/request-queue-timeout-guard.js.map +1 -0
  102. package/dist/schemas/contracts.d.ts +190 -0
  103. package/dist/schemas/contracts.d.ts.map +1 -0
  104. package/dist/schemas/contracts.js +85 -0
  105. package/dist/schemas/contracts.js.map +1 -0
  106. package/dist/schemas/kafka.d.ts +116 -0
  107. package/dist/schemas/kafka.d.ts.map +1 -0
  108. package/dist/schemas/kafka.js +13 -0
  109. package/dist/schemas/kafka.js.map +1 -0
  110. package/dist/schemas/realtime.d.ts +135 -0
  111. package/dist/schemas/realtime.d.ts.map +1 -0
  112. package/dist/schemas/realtime.js +44 -0
  113. package/dist/schemas/realtime.js.map +1 -0
  114. package/dist/schemas/worker-context.d.ts +14 -0
  115. package/dist/schemas/worker-context.d.ts.map +1 -0
  116. package/dist/schemas/worker-context.js +26 -0
  117. package/dist/schemas/worker-context.js.map +1 -0
  118. package/dist/topics.d.ts +85 -0
  119. package/dist/topics.d.ts.map +1 -0
  120. package/dist/topics.js +90 -0
  121. package/dist/topics.js.map +1 -0
  122. package/dist/workers/adapter/db-ops.d.ts +28 -0
  123. package/dist/workers/adapter/db-ops.d.ts.map +1 -0
  124. package/dist/workers/adapter/db-ops.js +14 -0
  125. package/dist/workers/adapter/db-ops.js.map +1 -0
  126. package/dist/workers/adapter/index.d.ts +16 -0
  127. package/dist/workers/adapter/index.d.ts.map +1 -0
  128. package/dist/workers/adapter/index.js +15 -0
  129. package/dist/workers/adapter/index.js.map +1 -0
  130. package/dist/workers/adapter/provider.d.ts +151 -0
  131. package/dist/workers/adapter/provider.d.ts.map +1 -0
  132. package/dist/workers/adapter/provider.js +654 -0
  133. package/dist/workers/adapter/provider.js.map +1 -0
  134. package/dist/workers/adapter/worker-adapter.kafka.descriptor.d.ts +36 -0
  135. package/dist/workers/adapter/worker-adapter.kafka.descriptor.d.ts.map +1 -0
  136. package/dist/workers/adapter/worker-adapter.kafka.descriptor.js +22 -0
  137. package/dist/workers/adapter/worker-adapter.kafka.descriptor.js.map +1 -0
  138. package/dist/workers/adapter/worker-adapter.kafka.impl.d.ts +36 -0
  139. package/dist/workers/adapter/worker-adapter.kafka.impl.d.ts.map +1 -0
  140. package/dist/workers/adapter/worker-adapter.kafka.impl.js +84 -0
  141. package/dist/workers/adapter/worker-adapter.kafka.impl.js.map +1 -0
  142. package/dist/workers/adapter/workers-kafka.db.context.d.ts +6 -0
  143. package/dist/workers/adapter/workers-kafka.db.context.d.ts.map +1 -0
  144. package/dist/workers/adapter/workers-kafka.db.context.descriptor.d.ts +43 -0
  145. package/dist/workers/adapter/workers-kafka.db.context.descriptor.d.ts.map +1 -0
  146. package/dist/workers/adapter/workers-kafka.db.context.descriptor.js +20 -0
  147. package/dist/workers/adapter/workers-kafka.db.context.descriptor.js.map +1 -0
  148. package/dist/workers/adapter/workers-kafka.db.context.js +5 -0
  149. package/dist/workers/adapter/workers-kafka.db.context.js.map +1 -0
  150. package/dist/workers/index.d.ts +8 -0
  151. package/dist/workers/index.d.ts.map +1 -0
  152. package/dist/workers/index.js +9 -0
  153. package/dist/workers/index.js.map +1 -0
  154. package/dist/workers/provider-jobs.sqlite-schema.d.ts +438 -0
  155. package/dist/workers/provider-jobs.sqlite-schema.d.ts.map +1 -0
  156. package/dist/workers/provider-jobs.sqlite-schema.js +37 -0
  157. package/dist/workers/provider-jobs.sqlite-schema.js.map +1 -0
  158. package/dist/workers/workers-kafka.consumer.plugin.d.ts +4 -0
  159. package/dist/workers/workers-kafka.consumer.plugin.d.ts.map +1 -0
  160. package/dist/workers/workers-kafka.consumer.plugin.js +11 -0
  161. package/dist/workers/workers-kafka.consumer.plugin.js.map +1 -0
  162. package/dist/workers/workers-kafka.plugin.d.ts +9 -0
  163. package/dist/workers/workers-kafka.plugin.d.ts.map +1 -0
  164. package/dist/workers/workers-kafka.plugin.js +27 -0
  165. package/dist/workers/workers-kafka.plugin.js.map +1 -0
  166. package/package.json +176 -4
package/dist/topics.js ADDED
@@ -0,0 +1,90 @@
1
+ import * as z from 'zod/v4';
2
+ // Topic names as const for type safety
3
+ export const KAFKA_TOPICS = {
4
+ // Chat topics
5
+ CHAT_MESSAGES: 'chat.messages',
6
+ CHAT_TYPING: 'chat.typing',
7
+ CHAT_PRESENCE: 'chat.presence',
8
+ CHAT_ROOMS: 'chat.rooms',
9
+ // Worker topics
10
+ WORKER_JOBS: 'worker.jobs',
11
+ WORKER_HEALTH: 'worker.health',
12
+ // Text generation bubble events
13
+ TEXT_GENERATION_BUBBLES: 'text-generation.bubbles',
14
+ TEXT_GENERATION_JOBS: 'text-generation.jobs',
15
+ // Benchmark topics
16
+ BENCHMARK_EVENTS: 'benchmark.events',
17
+ // Analytics topics
18
+ ANALYTICS_EVENTS: 'analytics.events',
19
+ ANALYTICS_METRICS: 'analytics.metrics'
20
+ };
21
+ // Topic configuration
22
+ export const topicConfigurationsSchema = z.object({
23
+ [KAFKA_TOPICS.CHAT_MESSAGES]: z.object({
24
+ partitions: z.number().default(3),
25
+ replicationFactor: z.number().default(2),
26
+ retentionMs: z.number().default(7 * 24 * 60 * 60 * 1000), // 7 days
27
+ segmentMs: z.number().default(6 * 60 * 60 * 1000) // 6 hours
28
+ }).prefault({}),
29
+ [KAFKA_TOPICS.CHAT_TYPING]: z.object({
30
+ partitions: z.number().default(1),
31
+ replicationFactor: z.number().default(1),
32
+ retentionMs: z.number().default(60 * 1000), // 1 minute
33
+ segmentMs: z.number().default(60 * 1000) // 1 minute
34
+ }).prefault({}),
35
+ [KAFKA_TOPICS.CHAT_PRESENCE]: z.object({
36
+ partitions: z.number().default(1),
37
+ replicationFactor: z.number().default(1),
38
+ retentionMs: z.number().default(60 * 60 * 1000), // 1 hour
39
+ segmentMs: z.number().default(10 * 60 * 1000) // 10 minutes
40
+ }).prefault({}),
41
+ [KAFKA_TOPICS.CHAT_ROOMS]: z.object({
42
+ partitions: z.number().default(2),
43
+ replicationFactor: z.number().default(2),
44
+ retentionMs: z.number().default(30 * 24 * 60 * 60 * 1000), // 30 days
45
+ segmentMs: z.number().default(24 * 60 * 60 * 1000) // 1 day
46
+ }).prefault({}),
47
+ [KAFKA_TOPICS.WORKER_JOBS]: z.object({
48
+ partitions: z.number().default(5),
49
+ replicationFactor: z.number().default(2),
50
+ retentionMs: z.number().default(3 * 24 * 60 * 60 * 1000), // 3 days
51
+ segmentMs: z.number().default(6 * 60 * 60 * 1000) // 6 hours
52
+ }).prefault({}),
53
+ [KAFKA_TOPICS.WORKER_HEALTH]: z.object({
54
+ partitions: z.number().default(1),
55
+ replicationFactor: z.number().default(1),
56
+ retentionMs: z.number().default(24 * 60 * 60 * 1000), // 1 day
57
+ segmentMs: z.number().default(60 * 60 * 1000) // 1 hour
58
+ }).prefault({}),
59
+ [KAFKA_TOPICS.TEXT_GENERATION_BUBBLES]: z.object({
60
+ partitions: z.number().default(3),
61
+ replicationFactor: z.number().default(2),
62
+ retentionMs: z.number().default(3 * 24 * 60 * 60 * 1000), // 3 days
63
+ segmentMs: z.number().default(6 * 60 * 60 * 1000) // 6 hours
64
+ }).prefault({}),
65
+ [KAFKA_TOPICS.TEXT_GENERATION_JOBS]: z.object({
66
+ partitions: z.number().default(5),
67
+ replicationFactor: z.number().default(2),
68
+ retentionMs: z.number().default(7 * 24 * 60 * 60 * 1000), // 7 days
69
+ segmentMs: z.number().default(12 * 60 * 60 * 1000) // 12 hours
70
+ }).prefault({}),
71
+ [KAFKA_TOPICS.BENCHMARK_EVENTS]: z.object({
72
+ partitions: z.number().default(2),
73
+ replicationFactor: z.number().default(2),
74
+ retentionMs: z.number().default(7 * 24 * 60 * 60 * 1000), // 7 days
75
+ segmentMs: z.number().default(6 * 60 * 60 * 1000) // 6 hours
76
+ }).prefault({}),
77
+ [KAFKA_TOPICS.ANALYTICS_EVENTS]: z.object({
78
+ partitions: z.number().default(5),
79
+ replicationFactor: z.number().default(2),
80
+ retentionMs: z.number().default(90 * 24 * 60 * 60 * 1000), // 90 days
81
+ segmentMs: z.number().default(24 * 60 * 60 * 1000) // 1 day
82
+ }).prefault({}),
83
+ [KAFKA_TOPICS.ANALYTICS_METRICS]: z.object({
84
+ partitions: z.number().default(3),
85
+ replicationFactor: z.number().default(2),
86
+ retentionMs: z.number().default(365 * 24 * 60 * 60 * 1000), // 1 year
87
+ segmentMs: z.number().default(7 * 24 * 60 * 60 * 1000) // 7 days
88
+ }).prefault({})
89
+ });
90
+ //# sourceMappingURL=topics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"topics.js","sourceRoot":"","sources":["../src/topics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * DB Operations Interface
3
+ *
4
+ * The Drizzle ORM operators the Kafka adapter uses to build queries against
5
+ * the injected `providerJobs` table. Every host passes Drizzle's own
6
+ * `{ eq, and, asc, desc, sql }`, so the contract is their declared types,
7
+ * imported type-only from the `drizzle-orm` peer.
8
+ *
9
+ * The selected database host supplies its native SQL operators through
10
+ * `workers-kafka/db`. The adapter owns queue admission; the application
11
+ * owns the connection and physical migration.
12
+ */
13
+ import type { SQL, and, asc, desc, eq, sql } from 'drizzle-orm';
14
+ /** A WHERE condition built from the host's operators; `and` of no conditions is `undefined`. */
15
+ export type DbCondition = SQL | undefined;
16
+ export interface DbOps {
17
+ /** Equality comparison operator (drizzle-orm `eq`) */
18
+ eq: typeof eq;
19
+ /** Logical AND operator (drizzle-orm `and`) */
20
+ and: typeof and;
21
+ /** Ascending sort operator (drizzle-orm `asc`) */
22
+ asc: typeof asc;
23
+ /** Descending sort operator (drizzle-orm `desc`) */
24
+ desc: typeof desc;
25
+ /** SQL template literal (drizzle-orm `sql`) */
26
+ sql: typeof sql;
27
+ }
28
+ //# sourceMappingURL=db-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-ops.d.ts","sourceRoot":"","sources":["../../../src/workers/adapter/db-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEhE,gGAAgG;AAChG,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,SAAS,CAAC;AAE1C,MAAM,WAAW,KAAK;IACrB,sDAAsD;IACtD,EAAE,EAAE,OAAO,EAAE,CAAC;IACd,+CAA+C;IAC/C,GAAG,EAAE,OAAO,GAAG,CAAC;IAChB,kDAAkD;IAClD,GAAG,EAAE,OAAO,GAAG,CAAC;IAChB,oDAAoD;IACpD,IAAI,EAAE,OAAO,IAAI,CAAC;IAClB,+CAA+C;IAC/C,GAAG,EAAE,OAAO,GAAG,CAAC;CAChB"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * DB Operations Interface
3
+ *
4
+ * The Drizzle ORM operators the Kafka adapter uses to build queries against
5
+ * the injected `providerJobs` table. Every host passes Drizzle's own
6
+ * `{ eq, and, asc, desc, sql }`, so the contract is their declared types,
7
+ * imported type-only from the `drizzle-orm` peer.
8
+ *
9
+ * The selected database host supplies its native SQL operators through
10
+ * `workers-kafka/db`. The adapter owns queue admission; the application
11
+ * owns the connection and physical migration.
12
+ */
13
+ export {};
14
+ //# sourceMappingURL=db-ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-ops.js","sourceRoot":"","sources":["../../../src/workers/adapter/db-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Workers Kafka Adapters.
3
+ *
4
+ * - `KafkaAdapter` — full DB-backed implementation of `QueueAdapter`
5
+ * (enqueue, dequeue with SKIP LOCKED, getJob, updateJob with DB
6
+ * writeback). This is what `KafkaWorkerAdapter` returns when a
7
+ * `workers-kafka/db` runtime context is registered.
8
+ * - `KafkaWorkerAdapter` — `workers/adapter` impl for cloud scope.
9
+ * Resolves the required runtime DB context and returns persistent
10
+ * `KafkaAdapter` instances per queue.
11
+ */
12
+ export { KafkaWorkerAdapter } from './worker-adapter.kafka.impl.ts';
13
+ export { KafkaAdapter } from './provider.ts';
14
+ export type { DbOps } from './db-ops.ts';
15
+ export { WORKERS_KAFKA_DB_CONTEXT_ID, workersKafkaDbContextDescriptor, type WorkersKafkaDbContext } from './workers-kafka.db.context.ts';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/workers/adapter/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,YAAY,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACN,2BAA2B,EAC3B,+BAA+B,EAC/B,KAAK,qBAAqB,EAC1B,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Workers Kafka Adapters.
3
+ *
4
+ * - `KafkaAdapter` — full DB-backed implementation of `QueueAdapter`
5
+ * (enqueue, dequeue with SKIP LOCKED, getJob, updateJob with DB
6
+ * writeback). This is what `KafkaWorkerAdapter` returns when a
7
+ * `workers-kafka/db` runtime context is registered.
8
+ * - `KafkaWorkerAdapter` — `workers/adapter` impl for cloud scope.
9
+ * Resolves the required runtime DB context and returns persistent
10
+ * `KafkaAdapter` instances per queue.
11
+ */
12
+ export { KafkaWorkerAdapter } from "./worker-adapter.kafka.impl.js";
13
+ export { KafkaAdapter } from "./provider.js";
14
+ export { WORKERS_KAFKA_DB_CONTEXT_ID, workersKafkaDbContextDescriptor } from "./workers-kafka.db.context.js";
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/workers/adapter/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EACN,2BAA2B,EAC3B,+BAA+B,EAE/B,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * Kafka Provider
3
+ *
4
+ * Kafka-based provider for distributed job processing.
5
+ * Uses existing Kafka infrastructure with worker topics.
6
+ */
7
+ import { type QueueAdapter, type Job, type JobStatus, type JobState, type JobUpdate, type QueueMetrics, type EnqueueOptions, type DequeueOptions, type JobEvent, type JobListOptions, BaseQueueAdapter, type JobExecutionClaim, type JobWriteGuard, type JobRetryOptions, type JobMutationStamp, type JobExecutionRecord } from '@vibesdotdev/workers/core/queue-adapter';
8
+ import { type KernelDiagnostics } from '@vibesdotdev/kernel';
9
+ import { type JobProgressValue } from '@vibesdotdev/workers/core/schemas';
10
+ import { type Cancellation } from '@vibesdotdev/workers/schemas';
11
+ import { type JsonObject, type JsonValue } from '@vibesdotdev/kernel/schemas/json';
12
+ import type { AnyColumn, SQL, Table } from 'drizzle-orm';
13
+ import type { DbCondition, DbOps } from './db-ops.ts';
14
+ import type { WorkerJobEventPayload as WorkerJobEvent } from '@vibesdotdev/workers/core/worker-job-event';
15
+ export interface KafkaEventBridge {
16
+ /** Resolve the selected transport and join its pending subscription setup. */
17
+ prepare: () => Promise<void>;
18
+ sendJobEvent: (event: WorkerJobEvent) => Promise<void>;
19
+ /** Register synchronously so cleanup authority exists before preparation awaits. */
20
+ onMessage: (topic: string, handler: (message: WorkerJobEvent) => void | Promise<void>) => () => void | Promise<void>;
21
+ }
22
+ /** The provider_jobs columns the adapter reads, fences and orders by. */
23
+ type KafkaJobColumn = 'id' | 'queueName' | 'provider' | 'status' | 'data' | 'metadata' | 'cancellation' | 'createdAt' | 'startedAt' | 'completedAt' | 'generation' | 'revision' | 'executionState' | 'claimToken' | 'claimAttempt' | 'claimOwner' | 'claimHeartbeatAt' | 'retiredAt' | 'priority' | 'attemptsMade' | 'progress' | 'result' | 'error';
24
+ /** The host's Drizzle `provider_jobs` table (see `createProviderJobsSqliteSchema`). */
25
+ export type KafkaJobsTable = Table & Record<KafkaJobColumn, AnyColumn>;
26
+ /** The backing store a host declares for its `provider_jobs` table. */
27
+ export type KafkaJobsDialect = 'postgres' | 'sqlite';
28
+ /** One provider_jobs row as the host's JSON-mode columns read it. */
29
+ type KafkaJobRow = JobExecutionRecord & {
30
+ id: string;
31
+ queueName: string;
32
+ provider: string;
33
+ data: JsonValue;
34
+ /** NULL means application-owned metadata migration remains required; the adapter refuses to guess. */
35
+ metadata?: JsonObject | null;
36
+ /** NULL means no cancellation provenance, including migrated historical rows. */
37
+ cancellation?: JsonValue | null;
38
+ status: string;
39
+ progress?: JobProgressValue | null;
40
+ result?: JsonValue | null;
41
+ error?: string | null;
42
+ attemptsMade?: number;
43
+ createdAt: Date;
44
+ startedAt?: Date | null;
45
+ completedAt?: Date | null;
46
+ priority?: number;
47
+ };
48
+ /** One write to a provider_jobs row: the admitted payload or the SQL JSON null literal, and caller progress/result. */
49
+ type KafkaJobPatch<TData = JsonValue> = Partial<Omit<KafkaJobRow, 'data' | 'progress' | 'result' | 'cancellation'>> & {
50
+ data?: TData | SQL;
51
+ progress?: Job['progress'] | null;
52
+ result?: JobUpdate['result'] | null;
53
+ cancellation?: Cancellation | null;
54
+ maxAttempts?: number;
55
+ };
56
+ interface KafkaJobStatusCountFields {
57
+ status: AnyColumn;
58
+ count: SQL<number>;
59
+ }
60
+ interface KafkaJobStatusCount {
61
+ status: string;
62
+ count: number | string;
63
+ }
64
+ /** The host's Drizzle builder chain; each step returns the chain, which resolves to its rows. */
65
+ interface KafkaQuery<Row = KafkaJobRow> extends PromiseLike<Row[]> {
66
+ returning: () => KafkaQuery;
67
+ groupBy: (...columns: AnyColumn[]) => KafkaQuery<Row>;
68
+ from: (table: KafkaJobsTable) => KafkaQuery<Row>;
69
+ where: (condition: DbCondition) => KafkaQuery<Row>;
70
+ orderBy: (...order: SQL[]) => KafkaQuery<Row>;
71
+ limit: (n: number) => KafkaQuery<Row>;
72
+ offset: (n: number) => KafkaQuery<Row>;
73
+ /** PostgreSQL row lock; SQLite hosts are never asked for it. */
74
+ for: (mode: 'update', opts: {
75
+ skipLocked: boolean;
76
+ }) => KafkaQuery<Row>;
77
+ set: <TData>(values: KafkaJobPatch<TData>) => KafkaQuery<Row>;
78
+ values: <TData>(row: KafkaJobPatch<TData>) => KafkaQuery<Row>;
79
+ onConflictDoNothing: (args: {
80
+ target: AnyColumn;
81
+ }) => KafkaQuery<Row>;
82
+ }
83
+ export interface KafkaJobsDb {
84
+ transaction: <T>(fn: (tx: KafkaJobsDb) => Promise<T>) => Promise<T>;
85
+ select: {
86
+ (): KafkaQuery;
87
+ (fields: KafkaJobStatusCountFields): KafkaQuery<KafkaJobStatusCount>;
88
+ };
89
+ insert: (table: KafkaJobsTable) => KafkaQuery;
90
+ update: (table: KafkaJobsTable) => KafkaQuery;
91
+ delete: (table: KafkaJobsTable) => KafkaQuery;
92
+ }
93
+ export declare class KafkaAdapter<TJob = unknown, TResult = unknown> extends BaseQueueAdapter<TJob, TResult> implements QueueAdapter<TJob, TResult> {
94
+ private db;
95
+ private providerJobs;
96
+ private ops;
97
+ private eventHandlers;
98
+ private unsubscribeEvents?;
99
+ private eventBridgeConnected;
100
+ private eventBridgeSetup?;
101
+ private eventBridgeCleanup?;
102
+ private eventBridgeClosing;
103
+ private eventBridge;
104
+ private readonly diagnostics;
105
+ private readonly dialect;
106
+ constructor(db: KafkaJobsDb, queueName: string, options: {
107
+ providerJobs: KafkaJobsTable;
108
+ ops: DbOps;
109
+ dialect: KafkaJobsDialect;
110
+ eventBridge: KafkaEventBridge;
111
+ diagnostics: KernelDiagnostics;
112
+ });
113
+ connect(): Promise<void>;
114
+ disconnect(): Promise<void>;
115
+ private rowFence;
116
+ private readRow;
117
+ private requireRow;
118
+ private writeRow;
119
+ /** `updateJob` never admits a cancellation; `cancelJob` is the only provenance owner. */
120
+ private rejectProvenancelessCancellation;
121
+ /** A row already cancelled holds its admitted provenance; a historical row keeps none. */
122
+ private assertAlreadyCancelled;
123
+ private revisionConflict;
124
+ /** A bounded native revision retry; assert always holds the caller's original intent. */
125
+ private mutate;
126
+ private toJob;
127
+ private publish;
128
+ enqueue(data: TJob, options?: EnqueueOptions): Promise<string>;
129
+ /** Both backing dialects use the same native admission fence; PostgreSQL also locks candidate rows. */
130
+ private dequeueNative;
131
+ dequeue(options?: DequeueOptions): Promise<Job<TJob> | null>;
132
+ getJob(jobId: string): Promise<Job<TJob> | null>;
133
+ updateJob(jobId: string, update: JobUpdate, guard: JobWriteGuard): Promise<JobMutationStamp>;
134
+ renewExecution(jobId: string, claim: JobExecutionClaim): Promise<void>;
135
+ releaseExecution(jobId: string, claim: JobExecutionClaim): Promise<void>;
136
+ cancelJob(jobId: string, cancellation: Cancellation): Promise<boolean>;
137
+ retryJob(jobId: string, options: JobRetryOptions): Promise<string>;
138
+ getStatus(jobId: string): Promise<JobStatus>;
139
+ listJobs(state?: JobState, options?: JobListOptions): Promise<Job<TJob>[]>;
140
+ /** One condition per field: the stored data's top-level field is a JSON string equal to the value. */
141
+ private dataEquals;
142
+ getMetrics(): Promise<QueueMetrics>;
143
+ subscribeToEvents(jobId: string, handler: (event: JobEvent) => void): () => void;
144
+ broadcastEvent(jobId: string, event: string, guard: JobWriteGuard, data?: JobEvent['data']): Promise<void>;
145
+ private ensureEventBridge;
146
+ private emitEvent;
147
+ /** A failing subscriber is reported; the committed admission and its sibling subscribers stand. */
148
+ private notifyEventHandler;
149
+ }
150
+ export {};
151
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/workers/adapter/provider.ts"],"names":[],"mappings":"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"}