@kb-labs/core-state-daemon 1.9.0 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin.cjs +6996 -6184
- package/dist/bin.cjs.map +1 -1
- package/dist/bin.d.cts +2 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +22 -22
package/dist/bin.d.cts
ADDED
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server.ts","../src/bootstrap.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import Fastify, { type FastifyInstance } from 'fastify';\nimport { InMemoryStateBroker } from '@kb-labs/core-state-broker';\nimport type { ILogger } from '@kb-labs/core-platform';\nimport {\n createCorrelatedLogger,\n HttpObservabilityCollector,\n createServiceReadyResponse,\n metricLine,\n registerOpenAPI,\n} from '@kb-labs/shared-http';\nimport type { ObservabilityCheck, ServiceHealthStatus } from '@kb-labs/core-contracts';\nimport { randomUUID } from 'node:crypto';\n\nexport interface StateDaemonConfig {\n port?: number;\n host?: string;\n logger?: ILogger;\n}\n\nfunction createFallbackLogger(): ILogger {\n const bindings: Record<string, unknown> = {};\n\n const formatMeta = (meta?: Record<string, unknown>) => {\n const combined = { ...bindings, ...(meta ?? {}) };\n return Object.keys(combined).length > 0 ? ` ${JSON.stringify(combined)}` : '';\n };\n\n return {\n info(message: string, meta?: Record<string, unknown>) {\n console.log(`[INFO] ${message}${formatMeta(meta)}`);\n },\n warn(message: string, meta?: Record<string, unknown>) {\n console.warn(`[WARN] ${message}${formatMeta(meta)}`);\n },\n error(message: string, error?: Error, meta?: Record<string, unknown>) {\n const merged = error\n ? { ...(meta ?? {}), error: { message: error.message, stack: error.stack } }\n : meta;\n console.error(`[ERROR] ${message}${formatMeta(merged)}`);\n },\n fatal(message: string, error?: Error, meta?: Record<string, unknown>) {\n const merged = error\n ? { ...(meta ?? {}), error: { message: error.message, stack: error.stack } }\n : meta;\n console.error(`[FATAL] ${message}${formatMeta(merged)}`);\n },\n debug(message: string, meta?: Record<string, unknown>) {\n console.debug(`[DEBUG] ${message}${formatMeta(meta)}`);\n },\n trace(message: string, meta?: Record<string, unknown>) {\n console.debug(`[TRACE] ${message}${formatMeta(meta)}`);\n },\n child(childBindings: Record<string, unknown>) {\n const childLogger = createFallbackLogger();\n return {\n ...childLogger,\n info(message: string, meta?: Record<string, unknown>) {\n console.log(`[INFO] ${message}${formatMeta({ ...childBindings, ...(meta ?? {}) })}`);\n },\n warn(message: string, meta?: Record<string, unknown>) {\n console.warn(`[WARN] ${message}${formatMeta({ ...childBindings, ...(meta ?? {}) })}`);\n },\n error(message: string, error?: Error, meta?: Record<string, unknown>) {\n const merged = error\n ? { ...childBindings, ...(meta ?? {}), error: { message: error.message, stack: error.stack } }\n : { ...childBindings, ...(meta ?? {}) };\n console.error(`[ERROR] ${message}${formatMeta(merged)}`);\n },\n fatal(message: string, error?: Error, meta?: Record<string, unknown>) {\n const merged = error\n ? { ...childBindings, ...(meta ?? {}), error: { message: error.message, stack: error.stack } }\n : { ...childBindings, ...(meta ?? {}) };\n console.error(`[FATAL] ${message}${formatMeta(merged)}`);\n },\n debug(message: string, meta?: Record<string, unknown>) {\n console.debug(`[DEBUG] ${message}${formatMeta({ ...childBindings, ...(meta ?? {}) })}`);\n },\n trace(message: string, meta?: Record<string, unknown>) {\n console.debug(`[TRACE] ${message}${formatMeta({ ...childBindings, ...(meta ?? {}) })}`);\n },\n };\n },\n };\n}\n\nexport class StateDaemonServer {\n private readonly broker = new InMemoryStateBroker();\n private readonly observability = new HttpObservabilityCollector({\n serviceId: 'state-daemon',\n serviceType: 'state-daemon',\n version: '1.2.0',\n logsSource: 'state-daemon',\n });\n private readonly logger: ILogger;\n private server: FastifyInstance | null = null;\n private isShuttingDown = false;\n\n constructor(private readonly config: StateDaemonConfig = {}) {\n this.logger = config.logger ?? createFallbackLogger();\n }\n\n async start(): Promise<void> {\n const port = this.config.port ?? 7777;\n const host = this.config.host ?? 'localhost';\n\n const server = Fastify({\n logger: false,\n bodyLimit: 1048576,\n });\n\n server.addHook('onRequest', async (request, reply) => {\n const requestId = (request.headers['x-request-id'] as string | undefined) || randomUUID();\n const traceId = (request.headers['x-trace-id'] as string | undefined) || randomUUID();\n\n request.id = requestId;\n reply.header('X-Request-Id', requestId);\n reply.header('X-Trace-Id', traceId);\n\n (request as any).kbLogger = createCorrelatedLogger(this.logger, {\n serviceId: 'state-daemon',\n logsSource: 'state-daemon',\n layer: 'state-daemon',\n service: 'request',\n requestId,\n traceId,\n method: request.method,\n url: request.url,\n operation: 'http.request',\n });\n (request as any).kbLogger.info(`→ ${request.method.toUpperCase()} ${request.url}`);\n\n if (request.method === 'OPTIONS') {\n reply.code(204).send();\n }\n });\n server.addHook('onResponse', async (request, reply) => {\n const logger = (request as any).kbLogger as { info: (message: string, meta?: Record<string, unknown>) => void } | undefined;\n if (!logger) {\n return;\n }\n\n logger.info(`✓ ${request.method.toUpperCase()} ${request.url} ${reply.statusCode}`, {\n statusCode: reply.statusCode,\n });\n });\n server.addHook('onSend', async (_request, reply, payload) => {\n reply.header('Access-Control-Allow-Origin', '*');\n reply.header('Access-Control-Allow-Methods', 'GET, PUT, DELETE, POST, OPTIONS');\n reply.header('Access-Control-Allow-Headers', 'Content-Type');\n return payload;\n });\n\n await registerOpenAPI(server, {\n title: 'KB Labs State Daemon',\n description: 'State broker service for persistent cross-invocation state',\n version: '1.2.0',\n servers: [{ url: `http://${host}:${port}`, description: 'Local dev' }],\n ui: false,\n });\n\n this.observability.register(server);\n this.registerRoutes(server);\n this.observability.recordOperation('state.bootstrap', 0, 'ok');\n this.server = server;\n\n process.on('SIGTERM', () => void this.shutdown());\n process.on('SIGINT', () => void this.shutdown());\n\n await server.listen({ port, host });\n }\n\n async stop(): Promise<void> {\n await this.broker.stop();\n if (this.server) {\n await this.server.close();\n this.server = null;\n }\n }\n\n private async shutdown(): Promise<void> {\n if (this.isShuttingDown) {\n return;\n }\n this.isShuttingDown = true;\n this.logger.info('Shutting down state daemon...');\n await this.stop();\n process.exit(0);\n }\n\n private getBrokerHealth() {\n return this.observability.observeOperation('state.health', () => this.broker.getHealth());\n }\n\n private getBrokerStats() {\n return this.observability.observeOperation('state.stats', () => this.broker.getStats());\n }\n\n private registerRoutes(server: FastifyInstance): void {\n server.get('/health', async () => this.getBrokerHealth());\n\n server.get('/ready', async () => {\n const health = await this.getBrokerHealth();\n const degraded = health.status !== 'ok';\n return createServiceReadyResponse({\n ready: health.status === 'ok',\n status: degraded ? 'degraded' : 'ready',\n reason: degraded ? `state_broker_${health.status}` : 'ready',\n components: {\n stateBroker: {\n ready: health.status === 'ok',\n status: health.status,\n },\n },\n });\n });\n\n server.get('/stats', async () => this.getBrokerStats());\n\n server.get('/metrics', async (_request, reply) => {\n const health = await this.getBrokerHealth();\n const stats = await this.getBrokerStats();\n reply.header('Content-Type', 'text/plain; version=0.0.4; charset=utf-8');\n return this.observability.renderPrometheusMetrics(\n mapBrokerHealthStatus(health.status),\n buildBrokerMetricLines(stats),\n );\n });\n\n server.get('/observability/describe', async () => this.observability.buildDescribe());\n\n server.get('/observability/health', async () => {\n const health = await this.getBrokerHealth();\n const stats = await this.getBrokerStats();\n\n return this.observability.buildHealth({\n status: mapBrokerHealthStatus(health.status),\n checks: buildBrokerChecks(health),\n meta: {\n serviceHealthEndpoint: '/health',\n statsEndpoint: '/stats',\n totalEntries: stats.totalEntries,\n totalSize: stats.totalSize,\n hitRate: stats.hitRate,\n missRate: stats.missRate,\n evictions: stats.evictions,\n },\n });\n });\n\n server.get('/state/:key', async (request, reply) => {\n const { key } = request.params as { key: string };\n const value = await this.observability.observeOperation('state.get', () => this.broker.get(key));\n\n if (value === null) {\n reply.code(404);\n return null;\n }\n\n reply.type('application/json');\n return JSON.stringify(value);\n });\n\n server.put('/state/:key', async (request, reply) => {\n const { key } = request.params as { key: string };\n const { value, ttl } = request.body as { value: unknown; ttl?: number };\n await this.observability.observeOperation('state.set', () => this.broker.set(key, value, ttl));\n reply.code(204);\n return null;\n });\n\n server.delete('/state/:key', async (request, reply) => {\n const { key } = request.params as { key: string };\n await this.observability.observeOperation('state.delete', () => this.broker.delete(key));\n reply.code(204);\n return null;\n });\n\n server.post('/state/clear', async (request, reply) => {\n const pattern = (request.query as { pattern?: string }).pattern;\n await this.observability.observeOperation('state.clear', () => this.broker.clear(pattern));\n reply.code(204);\n return null;\n });\n }\n}\n\nfunction mapBrokerHealthStatus(status: 'ok' | 'degraded' | 'shutting_down'): ServiceHealthStatus {\n if (status === 'ok') {\n return 'healthy';\n }\n if (status === 'degraded') {\n return 'degraded';\n }\n return 'unhealthy';\n}\n\nfunction buildBrokerChecks(health: Awaited<ReturnType<InMemoryStateBroker['getHealth']>>): ObservabilityCheck[] {\n return [\n {\n id: 'state-broker',\n status: health.status === 'ok' ? 'ok' : health.status === 'degraded' ? 'warn' : 'error',\n message: `Broker status is ${health.status}`,\n },\n ];\n}\n\nfunction buildBrokerMetricLines(stats: Awaited<ReturnType<InMemoryStateBroker['getStats']>>): string[] {\n return [\n '# HELP state_broker_entries_total Total entries stored by the state broker',\n '# TYPE state_broker_entries_total gauge',\n metricLine('state_broker_entries_total', stats.totalEntries),\n '# HELP state_broker_size_bytes Estimated total size of state broker entries',\n '# TYPE state_broker_size_bytes gauge',\n metricLine('state_broker_size_bytes', stats.totalSize),\n '# HELP state_broker_evictions_total Number of evicted state broker entries',\n '# TYPE state_broker_evictions_total gauge',\n metricLine('state_broker_evictions_total', stats.evictions),\n ];\n}\n","import { createServiceBootstrap, platform } from '@kb-labs/core-runtime';\nimport { findRepoRoot } from '@kb-labs/core-sys';\nimport { StateDaemonServer } from './server.js';\n\nexport async function bootstrap(cwd: string = process.cwd()): Promise<void> {\n const repoRoot = await findRepoRoot(cwd);\n await createServiceBootstrap({ appId: 'state-daemon', repoRoot });\n\n const port = process.env.KB_STATE_DAEMON_PORT\n ? parseInt(process.env.KB_STATE_DAEMON_PORT, 10)\n : 7777;\n const host = process.env.KB_STATE_DAEMON_HOST ?? 'localhost';\n\n const server = new StateDaemonServer({\n port,\n host,\n logger: platform.logger,\n });\n\n await server.start();\n}\n\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/server.ts","../src/bootstrap.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import Fastify, { type FastifyInstance } from 'fastify';\nimport { InMemoryStateBroker } from '@kb-labs/core-state-broker';\nimport type { ILogger } from '@kb-labs/core-platform';\nimport {\n createCorrelatedLogger,\n HttpObservabilityCollector,\n createServiceReadyResponse,\n metricLine,\n registerOpenAPI,\n} from '@kb-labs/shared-http';\nimport type { ObservabilityCheck, ServiceHealthStatus } from '@kb-labs/core-contracts';\nimport { randomUUID } from 'node:crypto';\n\nexport interface StateDaemonConfig {\n port?: number;\n host?: string;\n logger?: ILogger;\n}\n\nfunction createFallbackLogger(): ILogger {\n const bindings: Record<string, unknown> = {};\n\n const formatMeta = (meta?: Record<string, unknown>) => {\n const combined = { ...bindings, ...(meta ?? {}) };\n return Object.keys(combined).length > 0 ? ` ${JSON.stringify(combined)}` : '';\n };\n\n return {\n info(message: string, meta?: Record<string, unknown>) {\n console.log(`[INFO] ${message}${formatMeta(meta)}`);\n },\n warn(message: string, meta?: Record<string, unknown>) {\n console.warn(`[WARN] ${message}${formatMeta(meta)}`);\n },\n error(message: string, error?: Error, meta?: Record<string, unknown>) {\n const merged = error\n ? { ...(meta ?? {}), error: { message: error.message, stack: error.stack } }\n : meta;\n console.error(`[ERROR] ${message}${formatMeta(merged)}`);\n },\n fatal(message: string, error?: Error, meta?: Record<string, unknown>) {\n const merged = error\n ? { ...(meta ?? {}), error: { message: error.message, stack: error.stack } }\n : meta;\n console.error(`[FATAL] ${message}${formatMeta(merged)}`);\n },\n debug(message: string, meta?: Record<string, unknown>) {\n console.debug(`[DEBUG] ${message}${formatMeta(meta)}`);\n },\n trace(message: string, meta?: Record<string, unknown>) {\n console.debug(`[TRACE] ${message}${formatMeta(meta)}`);\n },\n child(childBindings: Record<string, unknown>) {\n const childLogger = createFallbackLogger();\n return {\n ...childLogger,\n info(message: string, meta?: Record<string, unknown>) {\n console.log(`[INFO] ${message}${formatMeta({ ...childBindings, ...(meta ?? {}) })}`);\n },\n warn(message: string, meta?: Record<string, unknown>) {\n console.warn(`[WARN] ${message}${formatMeta({ ...childBindings, ...(meta ?? {}) })}`);\n },\n error(message: string, error?: Error, meta?: Record<string, unknown>) {\n const merged = error\n ? { ...childBindings, ...(meta ?? {}), error: { message: error.message, stack: error.stack } }\n : { ...childBindings, ...(meta ?? {}) };\n console.error(`[ERROR] ${message}${formatMeta(merged)}`);\n },\n fatal(message: string, error?: Error, meta?: Record<string, unknown>) {\n const merged = error\n ? { ...childBindings, ...(meta ?? {}), error: { message: error.message, stack: error.stack } }\n : { ...childBindings, ...(meta ?? {}) };\n console.error(`[FATAL] ${message}${formatMeta(merged)}`);\n },\n debug(message: string, meta?: Record<string, unknown>) {\n console.debug(`[DEBUG] ${message}${formatMeta({ ...childBindings, ...(meta ?? {}) })}`);\n },\n trace(message: string, meta?: Record<string, unknown>) {\n console.debug(`[TRACE] ${message}${formatMeta({ ...childBindings, ...(meta ?? {}) })}`);\n },\n };\n },\n };\n}\n\nexport class StateDaemonServer {\n private readonly broker = new InMemoryStateBroker();\n private readonly observability = new HttpObservabilityCollector({\n serviceId: 'state-daemon',\n serviceType: 'state-daemon',\n version: '1.2.0',\n logsSource: 'state-daemon',\n });\n private readonly logger: ILogger;\n private server: FastifyInstance | null = null;\n private isShuttingDown = false;\n\n constructor(private readonly config: StateDaemonConfig = {}) {\n this.logger = config.logger ?? createFallbackLogger();\n }\n\n async start(): Promise<void> {\n const port = this.config.port ?? 7777;\n const host = this.config.host ?? 'localhost';\n\n const server = Fastify({\n logger: false,\n bodyLimit: 1048576,\n });\n\n server.addHook('onRequest', async (request, reply) => {\n const requestId = (request.headers['x-request-id'] as string | undefined) || randomUUID();\n const traceId = (request.headers['x-trace-id'] as string | undefined) || randomUUID();\n\n request.id = requestId;\n reply.header('X-Request-Id', requestId);\n reply.header('X-Trace-Id', traceId);\n\n (request as any).kbLogger = createCorrelatedLogger(this.logger, {\n serviceId: 'state-daemon',\n logsSource: 'state-daemon',\n layer: 'state-daemon',\n service: 'request',\n requestId,\n traceId,\n method: request.method,\n url: request.url,\n operation: 'http.request',\n });\n (request as any).kbLogger.info(`→ ${request.method.toUpperCase()} ${request.url}`);\n\n if (request.method === 'OPTIONS') {\n reply.code(204).send();\n }\n });\n server.addHook('onResponse', async (request, reply) => {\n const logger = (request as any).kbLogger as { info: (message: string, meta?: Record<string, unknown>) => void } | undefined;\n if (!logger) {\n return;\n }\n\n logger.info(`✓ ${request.method.toUpperCase()} ${request.url} ${reply.statusCode}`, {\n statusCode: reply.statusCode,\n });\n });\n server.addHook('onSend', async (_request, reply, payload) => {\n reply.header('Access-Control-Allow-Origin', '*');\n reply.header('Access-Control-Allow-Methods', 'GET, PUT, DELETE, POST, OPTIONS');\n reply.header('Access-Control-Allow-Headers', 'Content-Type');\n return payload;\n });\n\n await registerOpenAPI(server, {\n title: 'KB Labs State Daemon',\n description: 'State broker service for persistent cross-invocation state',\n version: '1.2.0',\n servers: [{ url: `http://${host}:${port}`, description: 'Local dev' }],\n ui: false,\n });\n\n this.observability.register(server);\n this.registerRoutes(server);\n this.observability.recordOperation('state.bootstrap', 0, 'ok');\n this.server = server;\n\n process.on('SIGTERM', () => void this.shutdown());\n process.on('SIGINT', () => void this.shutdown());\n\n await server.listen({ port, host });\n }\n\n async stop(): Promise<void> {\n await this.broker.stop();\n if (this.server) {\n await this.server.close();\n this.server = null;\n }\n }\n\n private async shutdown(): Promise<void> {\n if (this.isShuttingDown) {\n return;\n }\n this.isShuttingDown = true;\n this.logger.info('Shutting down state daemon...');\n await this.stop();\n process.exit(0);\n }\n\n private getBrokerHealth() {\n return this.observability.observeOperation('state.health', () => this.broker.getHealth());\n }\n\n private getBrokerStats() {\n return this.observability.observeOperation('state.stats', () => this.broker.getStats());\n }\n\n private registerRoutes(server: FastifyInstance): void {\n server.get('/health', async () => this.getBrokerHealth());\n\n server.get('/ready', async () => {\n const health = await this.getBrokerHealth();\n const degraded = health.status !== 'ok';\n return createServiceReadyResponse({\n ready: health.status === 'ok',\n status: degraded ? 'degraded' : 'ready',\n reason: degraded ? `state_broker_${health.status}` : 'ready',\n components: {\n stateBroker: {\n ready: health.status === 'ok',\n status: health.status,\n },\n },\n });\n });\n\n server.get('/stats', async () => this.getBrokerStats());\n\n server.get('/metrics', async (_request, reply) => {\n const health = await this.getBrokerHealth();\n const stats = await this.getBrokerStats();\n reply.header('Content-Type', 'text/plain; version=0.0.4; charset=utf-8');\n return this.observability.renderPrometheusMetrics(\n mapBrokerHealthStatus(health.status),\n buildBrokerMetricLines(stats),\n );\n });\n\n server.get('/observability/describe', async () => this.observability.buildDescribe());\n\n server.get('/observability/health', async () => {\n const health = await this.getBrokerHealth();\n const stats = await this.getBrokerStats();\n\n return this.observability.buildHealth({\n status: mapBrokerHealthStatus(health.status),\n checks: buildBrokerChecks(health),\n meta: {\n serviceHealthEndpoint: '/health',\n statsEndpoint: '/stats',\n totalEntries: stats.totalEntries,\n totalSize: stats.totalSize,\n hitRate: stats.hitRate,\n missRate: stats.missRate,\n evictions: stats.evictions,\n },\n });\n });\n\n server.get('/state/:key', async (request, reply) => {\n const { key } = request.params as { key: string };\n const value = await this.observability.observeOperation('state.get', () => this.broker.get(key));\n\n if (value === null) {\n reply.code(404);\n return null;\n }\n\n reply.type('application/json');\n return JSON.stringify(value);\n });\n\n server.put('/state/:key', async (request, reply) => {\n const { key } = request.params as { key: string };\n const { value, ttl } = request.body as { value: unknown; ttl?: number };\n await this.observability.observeOperation('state.set', () => this.broker.set(key, value, ttl));\n reply.code(204);\n return null;\n });\n\n server.delete('/state/:key', async (request, reply) => {\n const { key } = request.params as { key: string };\n await this.observability.observeOperation('state.delete', () => this.broker.delete(key));\n reply.code(204);\n return null;\n });\n\n server.post('/state/clear', async (request, reply) => {\n const pattern = (request.query as { pattern?: string }).pattern;\n await this.observability.observeOperation('state.clear', () => this.broker.clear(pattern));\n reply.code(204);\n return null;\n });\n }\n}\n\nfunction mapBrokerHealthStatus(status: 'ok' | 'degraded' | 'shutting_down'): ServiceHealthStatus {\n if (status === 'ok') {\n return 'healthy';\n }\n if (status === 'degraded') {\n return 'degraded';\n }\n return 'unhealthy';\n}\n\nfunction buildBrokerChecks(health: Awaited<ReturnType<InMemoryStateBroker['getHealth']>>): ObservabilityCheck[] {\n return [\n {\n id: 'state-broker',\n status: health.status === 'ok' ? 'ok' : health.status === 'degraded' ? 'warn' : 'error',\n message: `Broker status is ${health.status}`,\n },\n ];\n}\n\nfunction buildBrokerMetricLines(stats: Awaited<ReturnType<InMemoryStateBroker['getStats']>>): string[] {\n return [\n '# HELP state_broker_entries_total Total entries stored by the state broker',\n '# TYPE state_broker_entries_total gauge',\n metricLine('state_broker_entries_total', stats.totalEntries),\n '# HELP state_broker_size_bytes Estimated total size of state broker entries',\n '# TYPE state_broker_size_bytes gauge',\n metricLine('state_broker_size_bytes', stats.totalSize),\n '# HELP state_broker_evictions_total Number of evicted state broker entries',\n '# TYPE state_broker_evictions_total gauge',\n metricLine('state_broker_evictions_total', stats.evictions),\n ];\n}\n","import { createServiceBootstrap, platform } from '@kb-labs/core-runtime';\nimport { findRepoRoot } from '@kb-labs/core-sys';\nimport { StateDaemonServer } from './server.js';\n\nexport async function bootstrap(cwd: string = process.cwd()): Promise<void> {\n const repoRoot = await findRepoRoot(cwd);\n await createServiceBootstrap({ appId: 'state-daemon', repoRoot });\n\n const port = process.env.KB_STATE_DAEMON_PORT\n ? parseInt(process.env.KB_STATE_DAEMON_PORT, 10)\n : 7777;\n const host = process.env.KB_STATE_DAEMON_HOST ?? 'localhost';\n\n const server = new StateDaemonServer({\n port,\n host,\n logger: platform.logger,\n });\n\n await server.start();\n}\n\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kb-labs/core-state-daemon",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.7.0",
|
|
4
4
|
"description": "State daemon server for persistent cross-invocation state",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -19,36 +19,26 @@
|
|
|
19
19
|
"dist"
|
|
20
20
|
],
|
|
21
21
|
"sideEffects": false,
|
|
22
|
-
"scripts": {
|
|
23
|
-
"clean": "rimraf dist",
|
|
24
|
-
"build": "pnpm clean && tsup --config tsup.bin.config.ts && tsup --config tsup.lib.config.ts",
|
|
25
|
-
"dev": "tsup --config tsup.config.ts --watch",
|
|
26
|
-
"type-check": "tsc --noEmit",
|
|
27
|
-
"test": "vitest run --passWithNoTests",
|
|
28
|
-
"test:watch": "vitest",
|
|
29
|
-
"lint": "eslint src --ext .ts",
|
|
30
|
-
"lint:fix": "eslint . --fix"
|
|
31
|
-
},
|
|
32
22
|
"dependencies": {
|
|
33
23
|
"@fastify/swagger": ">=9.5.1",
|
|
34
24
|
"@fastify/swagger-ui": "^5.2.0",
|
|
35
|
-
"@kb-labs/core-contracts": "^1.9.0",
|
|
36
|
-
"@kb-labs/core-platform": "^1.9.0",
|
|
37
|
-
"@kb-labs/core-runtime": "^1.9.0",
|
|
38
|
-
"@kb-labs/core-state-broker": "^1.9.0",
|
|
39
|
-
"@kb-labs/core-sys": "^1.9.0",
|
|
40
|
-
"@kb-labs/plugin-contracts": "^1.4.0",
|
|
41
|
-
"@kb-labs/shared-http": "^1.4.0",
|
|
42
25
|
"fastify": "^5.2.0",
|
|
43
|
-
"fastify-type-provider-zod": "^6.0.0"
|
|
26
|
+
"fastify-type-provider-zod": "^6.0.0",
|
|
27
|
+
"@kb-labs/core-sys": "2.6.0",
|
|
28
|
+
"@kb-labs/core-runtime": "2.6.0",
|
|
29
|
+
"@kb-labs/core-platform": "2.6.0",
|
|
30
|
+
"@kb-labs/core-state-broker": "2.6.0",
|
|
31
|
+
"@kb-labs/core-contracts": "2.6.0",
|
|
32
|
+
"@kb-labs/shared-http": "2.6.0",
|
|
33
|
+
"@kb-labs/plugin-contracts": "2.6.0"
|
|
44
34
|
},
|
|
45
35
|
"devDependencies": {
|
|
46
|
-
"@kb-labs/devkit": "link:../../../../infra/kb-labs-devkit",
|
|
47
36
|
"@types/node": "^24.3.3",
|
|
48
37
|
"rimraf": "^6.0.1",
|
|
49
38
|
"tsup": "^8.5.0",
|
|
50
39
|
"typescript": "^5.6.3",
|
|
51
|
-
"vitest": "^3.2.4"
|
|
40
|
+
"vitest": "^3.2.4",
|
|
41
|
+
"@kb-labs/devkit": "2.6.0"
|
|
52
42
|
},
|
|
53
43
|
"engines": {
|
|
54
44
|
"node": ">=20.0.0",
|
|
@@ -59,5 +49,15 @@
|
|
|
59
49
|
},
|
|
60
50
|
"kb": {
|
|
61
51
|
"manifest": "./dist/manifest.js"
|
|
52
|
+
},
|
|
53
|
+
"scripts": {
|
|
54
|
+
"clean": "rimraf dist",
|
|
55
|
+
"build": "pnpm clean && tsup --config tsup.bin.config.ts && tsup --config tsup.lib.config.ts",
|
|
56
|
+
"dev": "tsup --config tsup.config.ts --watch",
|
|
57
|
+
"type-check": "tsc --noEmit",
|
|
58
|
+
"test": "vitest run --passWithNoTests",
|
|
59
|
+
"test:watch": "vitest",
|
|
60
|
+
"lint": "eslint src --ext .ts",
|
|
61
|
+
"lint:fix": "eslint . --fix"
|
|
62
62
|
}
|
|
63
|
-
}
|
|
63
|
+
}
|