@hotmeshio/hotmesh 0.5.6 → 0.5.8

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 (87) hide show
  1. package/README.md +132 -258
  2. package/build/index.d.ts +1 -3
  3. package/build/index.js +1 -5
  4. package/build/modules/enums.d.ts +0 -5
  5. package/build/modules/enums.js +1 -6
  6. package/build/modules/utils.d.ts +1 -1
  7. package/build/modules/utils.js +2 -29
  8. package/build/package.json +5 -17
  9. package/build/services/activities/hook.js +1 -5
  10. package/build/services/compiler/index.d.ts +2 -2
  11. package/build/services/compiler/index.js +4 -4
  12. package/build/services/connector/factory.d.ts +1 -1
  13. package/build/services/connector/factory.js +1 -11
  14. package/build/services/exporter/index.d.ts +8 -8
  15. package/build/services/exporter/index.js +8 -8
  16. package/build/services/memflow/client.js +1 -8
  17. package/build/services/memflow/connection.d.ts +0 -2
  18. package/build/services/memflow/connection.js +0 -2
  19. package/build/services/memflow/exporter.d.ts +3 -3
  20. package/build/services/memflow/exporter.js +3 -3
  21. package/build/services/memflow/index.d.ts +1 -1
  22. package/build/services/memflow/index.js +1 -1
  23. package/build/services/memflow/schemas/factory.js +1 -1
  24. package/build/services/memflow/search.d.ts +11 -4
  25. package/build/services/memflow/search.js +98 -71
  26. package/build/services/memflow/worker.d.ts +1 -1
  27. package/build/services/memflow/worker.js +1 -1
  28. package/build/services/memflow/workflow/execHookBatch.d.ts +54 -0
  29. package/build/services/memflow/workflow/execHookBatch.js +77 -0
  30. package/build/services/memflow/workflow/index.d.ts +2 -0
  31. package/build/services/memflow/workflow/index.js +2 -0
  32. package/build/services/meshcall/index.d.ts +1 -1
  33. package/build/services/meshcall/index.js +1 -1
  34. package/build/services/reporter/index.d.ts +1 -1
  35. package/build/services/reporter/index.js +12 -12
  36. package/build/services/search/factory.js +0 -8
  37. package/build/services/search/providers/postgres/postgres.js +1 -1
  38. package/build/services/store/cache.d.ts +1 -1
  39. package/build/services/store/cache.js +1 -1
  40. package/build/services/store/factory.js +1 -9
  41. package/build/services/store/index.d.ts +1 -1
  42. package/build/services/store/providers/postgres/kvtables.js +23 -0
  43. package/build/services/store/providers/postgres/kvtypes/hash/index.js +57 -0
  44. package/build/services/store/providers/postgres/kvtypes/hash/udata.d.ts +10 -0
  45. package/build/services/store/providers/postgres/kvtypes/hash/udata.js +384 -0
  46. package/build/services/store/providers/postgres/postgres.js +2 -6
  47. package/build/services/stream/factory.js +0 -16
  48. package/build/services/sub/factory.js +0 -8
  49. package/build/services/sub/providers/nats/nats.js +0 -1
  50. package/build/services/sub/providers/postgres/postgres.d.ts +1 -0
  51. package/build/services/sub/providers/postgres/postgres.js +19 -11
  52. package/build/services/task/index.js +0 -1
  53. package/build/types/activity.d.ts +1 -5
  54. package/build/types/hotmesh.d.ts +0 -5
  55. package/build/types/index.d.ts +0 -1
  56. package/build/types/index.js +1 -4
  57. package/build/types/job.d.ts +1 -1
  58. package/build/types/memflow.d.ts +5 -4
  59. package/build/types/meshcall.d.ts +0 -25
  60. package/build/types/provider.d.ts +1 -1
  61. package/build/types/stream.d.ts +1 -6
  62. package/index.ts +0 -4
  63. package/package.json +5 -17
  64. package/build/services/connector/providers/ioredis.d.ts +0 -9
  65. package/build/services/connector/providers/ioredis.js +0 -26
  66. package/build/services/connector/providers/redis.d.ts +0 -9
  67. package/build/services/connector/providers/redis.js +0 -38
  68. package/build/services/search/providers/redis/ioredis.d.ts +0 -23
  69. package/build/services/search/providers/redis/ioredis.js +0 -134
  70. package/build/services/search/providers/redis/redis.d.ts +0 -23
  71. package/build/services/search/providers/redis/redis.js +0 -147
  72. package/build/services/store/providers/redis/_base.d.ts +0 -137
  73. package/build/services/store/providers/redis/_base.js +0 -980
  74. package/build/services/store/providers/redis/ioredis.d.ts +0 -20
  75. package/build/services/store/providers/redis/ioredis.js +0 -180
  76. package/build/services/store/providers/redis/redis.d.ts +0 -18
  77. package/build/services/store/providers/redis/redis.js +0 -199
  78. package/build/services/stream/providers/redis/ioredis.d.ts +0 -61
  79. package/build/services/stream/providers/redis/ioredis.js +0 -272
  80. package/build/services/stream/providers/redis/redis.d.ts +0 -61
  81. package/build/services/stream/providers/redis/redis.js +0 -305
  82. package/build/services/sub/providers/redis/ioredis.d.ts +0 -17
  83. package/build/services/sub/providers/redis/ioredis.js +0 -81
  84. package/build/services/sub/providers/redis/redis.d.ts +0 -17
  85. package/build/services/sub/providers/redis/redis.js +0 -72
  86. package/build/types/redis.d.ts +0 -258
  87. package/build/types/redis.js +0 -11
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hotmeshio/hotmesh",
3
- "version": "0.5.6",
3
+ "version": "0.5.8",
4
4
  "description": "Permanent-Memory Workflows & AI Agents",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",
@@ -23,9 +23,7 @@
23
23
  "test:await": "NODE_ENV=test jest ./tests/functional/awaiter/postgres.test.ts --detectOpenHandles --forceExit --verbose",
24
24
  "test:compile": "NODE_ENV=test jest ./tests/functional/compile/index.test.ts --detectOpenHandles --forceExit --verbose",
25
25
  "test:connect": "NODE_ENV=test jest ./tests/unit/services/connector/* --detectOpenHandles --forceExit --verbose",
26
- "test:connect:ioredis": "NODE_ENV=test jest ./tests/unit/services/connector/providers/ioredis.test.ts --detectOpenHandles --forceExit --verbose",
27
26
  "test:connect:postgres": "NODE_ENV=test jest ./tests/unit/services/connector/providers/postgres.test.ts --detectOpenHandles --forceExit --verbose",
28
- "test:connect:redis": "NODE_ENV=test jest ./tests/unit/services/connector/providers/redis.test.ts --detectOpenHandles --forceExit --verbose",
29
27
  "test:connect:nats": "NODE_ENV=test jest ./tests/unit/services/connector/providers/nats.test.ts --detectOpenHandles --forceExit --verbose",
30
28
  "test:memflow": "NODE_ENV=test jest ./tests/memflow/*/postgres.test.ts --detectOpenHandles --forceExit --verbose",
31
29
  "test:memflow:basic": "HMSH_LOGLEVEL=info NODE_ENV=test jest ./tests/memflow/basic/postgres.test.ts --detectOpenHandles --forceExit --verbose",
@@ -35,7 +33,7 @@
35
33
  "test:memflow:interceptor": "NODE_ENV=test HMSH_LOGLEVEL=debug jest ./tests/memflow/interceptor/postgres.test.ts --detectOpenHandles --forceExit --verbose",
36
34
  "test:memflow:entity": "NODE_ENV=test HMSH_LOGLEVEL=debug jest ./tests/memflow/entity/postgres.test.ts --detectOpenHandles --forceExit --verbose",
37
35
  "test:memflow:agent": "NODE_ENV=test HMSH_LOGLEVEL=debug jest ./tests/memflow/agent/postgres.test.ts --detectOpenHandles --forceExit --verbose",
38
- "test:memflow:hello": "HMSH_TELEMETRY=debug HMSH_LOGLEVEL=debug HMSH_IS_CLUSTER=true NODE_ENV=test jest ./tests/memflow/helloworld/postgres.test.ts --detectOpenHandles --forceExit --verbose",
36
+ "test:memflow:hello": "HMSH_TELEMETRY=debug HMSH_LOGLEVEL=debug NODE_ENV=test jest ./tests/memflow/helloworld/postgres.test.ts --detectOpenHandles --forceExit --verbose",
39
37
  "test:memflow:hook": "NODE_ENV=test jest ./tests/memflow/hook/postgres.test.ts --detectOpenHandles --forceExit --verbose",
40
38
  "test:memflow:interrupt": "NODE_ENV=test jest ./tests/memflow/interrupt/postgres.test.ts --detectOpenHandles --forceExit --verbose",
41
39
  "test:memflow:loopactivity": "NODE_ENV=test jest ./tests/memflow/loopactivity/postgres.test.ts --detectOpenHandles --forceExit --verbose",
@@ -54,7 +52,7 @@
54
52
  "test:interrupt": "NODE_ENV=test jest ./tests/functional/interrupt/*.test.ts --detectOpenHandles --forceExit --verbose",
55
53
  "test:parallel": "NODE_ENV=test jest ./tests/functional/parallel/index.test.ts --detectOpenHandles --forceExit --verbose",
56
54
  "test:pipe": "NODE_ENV=test jest ./tests/unit/services/pipe/index.test.ts --detectOpenHandles --forceExit --verbose",
57
- "test:quorum": "HMSH_IS_CLUSTER=true NODE_ENV=test jest ./tests/functional/quorum/*.test.ts --detectOpenHandles --forceExit --verbose",
55
+ "test:quorum": "NODE_ENV=test jest ./tests/functional/quorum/*.test.ts --detectOpenHandles --forceExit --verbose",
58
56
  "test:reclaim": "NODE_ENV=test jest ./tests/functional/reclaim/*.test.ts --detectOpenHandles --forceExit --verbose",
59
57
  "test:redeploy": "NODE_ENV=test jest ./tests/functional/redeploy/*.test.ts --detectOpenHandles --forceExit --verbose",
60
58
  "test:reporter": "NODE_ENV=test jest ./tests/unit/services/reporter/index.test.ts --detectOpenHandles --forceExit --verbose",
@@ -64,15 +62,9 @@
64
62
  "test:signal": "NODE_ENV=test jest ./tests/functional/signal/*.test.ts --detectOpenHandles --forceExit --verbose",
65
63
  "test:status": "NODE_ENV=test jest ./tests/functional/status/index.test.ts --detectOpenHandles --forceExit --verbose",
66
64
  "test:providers": "NODE_ENV=test jest ./tests/functional/*/providers/*/*.test.ts --detectOpenHandles --forceExit --verbose",
67
- "test:store:ioredis": "NODE_ENV=test jest ./tests/functional/store/providers/redis/ioredis.test.ts --detectOpenHandles --forceExit --verbose",
68
- "test:store:redis": "NODE_ENV=test jest ./tests/functional/store/providers/redis/redis.test.ts --detectOpenHandles --forceExit --verbose",
69
65
  "test:store:postgres": "NODE_ENV=test jest ./tests/functional/store/providers/postgres/postgres.test.ts --detectOpenHandles --forceExit --verbose",
70
- "test:stream:ioredis": "NODE_ENV=test jest ./tests/functional/stream/providers/redis/ioredis.test.ts --detectOpenHandles --forceExit --verbose",
71
- "test:stream:redis": "NODE_ENV=test jest ./tests/functional/stream/providers/redis/redis.test.ts --detectOpenHandles --forceExit --verbose",
72
66
  "test:stream:postgres": "NODE_ENV=test jest ./tests/functional/stream/providers/postgres/postgres.test.ts --detectOpenHandles --forceExit --verbose",
73
67
  "test:stream:nats": "NODE_ENV=test jest ./tests/functional/stream/providers/nats/nats.test.ts --detectOpenHandles --forceExit --verbose",
74
- "test:sub:ioredis": "NODE_ENV=test jest ./tests/functional/sub/providers/redis/ioredis.test.ts --detectOpenHandles --forceExit --verbose",
75
- "test:sub:redis": "NODE_ENV=test jest ./tests/functional/sub/providers/redis/redis.test.ts --detectOpenHandles --forceExit --verbose",
76
68
  "test:sub:postgres": "NODE_ENV=test jest ./tests/functional/sub/providers/postgres/postgres.test.ts --detectOpenHandles --forceExit --verbose",
77
69
  "test:sub:nats": "NODE_ENV=test jest ./tests/functional/sub/providers/nats/nats.test.ts --detectOpenHandles --forceExit --verbose",
78
70
  "test:trigger": "NODE_ENV=test jest ./tests/unit/services/activities/trigger.test.ts --detectOpenHandles --forceExit --verbose",
@@ -114,13 +106,11 @@
114
106
  "eslint-config-prettier": "^9.1.0",
115
107
  "eslint-plugin-import": "^2.29.1",
116
108
  "eslint-plugin-prettier": "^5.1.3",
117
- "ioredis": "^5.3.2",
118
- "javascript-obfuscator": "^4.1.1",
109
+ "javascript-obfuscator": "^0.6.2",
119
110
  "jest": "^29.5.0",
120
111
  "nats": "^2.28.0",
121
112
  "openai": "^5.9.0",
122
113
  "pg": "^8.10.0",
123
- "redis": "^4.6.13",
124
114
  "rimraf": "^4.4.1",
125
115
  "terser": "^5.37.0",
126
116
  "ts-jest": "^29.0.5",
@@ -130,9 +120,7 @@
130
120
  "typescript": "^5.0.4"
131
121
  },
132
122
  "peerDependencies": {
133
- "ioredis": "^4.0.0 || ^5.0.0",
134
123
  "nats": "^2.0.0",
135
- "pg": "^8.0.0",
136
- "redis": "^4.0.0"
124
+ "pg": "^8.0.0"
137
125
  }
138
126
  }
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Hook = void 0;
4
- const enums_1 = require("../../modules/enums");
5
4
  const errors_1 = require("../../modules/errors");
6
5
  const collator_1 = require("../collator");
7
6
  const pipe_1 = require("../pipe");
@@ -89,10 +88,7 @@ class Hook extends activity_1.Activity {
89
88
  }
90
89
  async doHook(telemetry) {
91
90
  const transaction = this.store.transact();
92
- //call registerHook separately if in cluster mode
93
- //(ok to run this command multiple times if it fails),
94
- //but the commands that follow must exec as a transaction
95
- await this.registerHook(enums_1.HMSH_IS_CLUSTER ? undefined : transaction);
91
+ await this.registerHook(transaction);
96
92
  this.mapOutputData();
97
93
  this.mapJobData();
98
94
  await this.setState(transaction);
@@ -12,13 +12,13 @@ declare class CompilerService {
12
12
  logger: ILogger;
13
13
  constructor(store: StoreService<ProviderClient, ProviderTransaction>, stream: StreamService<ProviderClient, ProviderTransaction>, logger: ILogger);
14
14
  /**
15
- * verifies and plans the deployment of an app to Redis; the app is not deployed yet
15
+ * verifies and plans the deployment of an app to the DB; the app is not deployed yet
16
16
  * @param path
17
17
  */
18
18
  plan(mySchemaOrPath: string): Promise<HotMeshManifest>;
19
19
  isPath(input: string): boolean;
20
20
  /**
21
- * deploys an app to Redis but does NOT activate it.
21
+ * deploys an app to the DB but does NOT activate it.
22
22
  */
23
23
  deploy(mySchemaOrPath: string): Promise<HotMeshManifest>;
24
24
  /**
@@ -43,7 +43,7 @@ class CompilerService {
43
43
  this.logger = logger;
44
44
  }
45
45
  /**
46
- * verifies and plans the deployment of an app to Redis; the app is not deployed yet
46
+ * verifies and plans the deployment of an app to the DB; the app is not deployed yet
47
47
  * @param path
48
48
  */
49
49
  async plan(mySchemaOrPath) {
@@ -69,7 +69,7 @@ class CompilerService {
69
69
  return !input.trim().startsWith('app:');
70
70
  }
71
71
  /**
72
- * deploys an app to Redis but does NOT activate it.
72
+ * deploys an app to the DB but does NOT activate it.
73
73
  */
74
74
  async deploy(mySchemaOrPath) {
75
75
  try {
@@ -84,10 +84,10 @@ class CompilerService {
84
84
  // 2) validate the manifest file (synchronous operation...no callbacks)
85
85
  const validator = new validator_1.Validator(schema);
86
86
  validator.validate(this.store);
87
- // 3) deploy the schema (segment, optimize, etc; save to Redis)
87
+ // 3) deploy the schema (segment, optimize, etc; save to the DB)
88
88
  const deployer = new deployer_1.Deployer(schema);
89
89
  await deployer.deploy(this.store, this.stream);
90
- // 4) save the app version to Redis (so it can be activated later)
90
+ // 4) save the app version to the DB (so it can be activated later)
91
91
  await this.store.setApp(schema.app.id, schema.app.version);
92
92
  return schema;
93
93
  }
@@ -3,7 +3,7 @@ import { ProviderConfig, ProviderNativeClient } from '../../types/provider';
3
3
  export declare class ConnectorService {
4
4
  static disconnectAll(): Promise<void>;
5
5
  /**
6
- * Connect to a provider (redis, nats, postgres) and return the native
6
+ * Connect to a provider (postgres, nats) and return the native
7
7
  * client. Connections are handled by the engine and worker routers at
8
8
  * initialization, but the factory method provided here is useful
9
9
  * for testing provider configurations.
@@ -2,19 +2,15 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConnectorService = void 0;
4
4
  const utils_1 = require("../../modules/utils");
5
- const ioredis_1 = require("./providers/ioredis");
6
5
  const nats_1 = require("./providers/nats");
7
6
  const postgres_1 = require("./providers/postgres");
8
- const redis_1 = require("./providers/redis");
9
7
  class ConnectorService {
10
8
  static async disconnectAll() {
11
- await redis_1.RedisConnection.disconnectAll();
12
- await ioredis_1.RedisConnection.disconnectAll();
13
9
  await postgres_1.PostgresConnection.disconnectAll();
14
10
  await nats_1.NatsConnection.disconnectAll();
15
11
  }
16
12
  /**
17
- * Connect to a provider (redis, nats, postgres) and return the native
13
+ * Connect to a provider (postgres, nats) and return the native
18
14
  * client. Connections are handled by the engine and worker routers at
19
15
  * initialization, but the factory method provided here is useful
20
16
  * for testing provider configurations.
@@ -77,12 +73,6 @@ class ConnectorService {
77
73
  let clientInstance;
78
74
  const id = (0, utils_1.guid)();
79
75
  switch (providerType) {
80
- case 'redis':
81
- clientInstance = await redis_1.RedisConnection.connect(id, providerClass, options, { provider: providerName });
82
- break;
83
- case 'ioredis':
84
- clientInstance = await ioredis_1.RedisConnection.connect(id, providerClass, options, { provider: providerName });
85
- break;
86
76
  case 'nats':
87
77
  clientInstance = await nats_1.NatsConnection.connect(id, providerClass, options, { provider: providerName });
88
78
  break;
@@ -4,8 +4,8 @@ import { DependencyExport, ExportOptions, JobActionExport, JobExport } from '../
4
4
  import { ProviderClient, ProviderTransaction } from '../../types/provider';
5
5
  import { StringStringType, Symbols } from '../../types/serializer';
6
6
  /**
7
- * Downloads job data from Redis (hscan, hmget, hgetall)
8
- * Expands process data and includes dependency list
7
+ * Downloads job data and expands process data and
8
+ * includes dependency list
9
9
  */
10
10
  declare class ExporterService {
11
11
  appId: string;
@@ -20,23 +20,23 @@ declare class ExporterService {
20
20
  */
21
21
  export(jobId: string, options?: ExportOptions): Promise<JobExport>;
22
22
  /**
23
- * Inflates the key from Redis, 3-character symbol
23
+ * Inflates the key
24
24
  * into a human-readable JSON path, reflecting the
25
25
  * tree-like structure of the unidimensional Hash
26
26
  */
27
27
  inflateKey(key: string): string;
28
28
  /**
29
- * Inflates the job data from Redis into a JobExport object
30
- * @param jobHash - the job data from Redis
29
+ * Inflates the job data into a JobExport object
30
+ * @param jobHash - the job data
31
31
  * @param dependencyList - the list of dependencies for the job
32
32
  * @returns - the inflated job data
33
33
  */
34
34
  inflate(jobHash: StringStringType, dependencyList: string[]): JobExport;
35
35
  /**
36
- * Inflates the dependency data from Redis into a JobExport object by
37
- * organizing the dimensional isolate in sch a way asto interleave
36
+ * Inflates the dependency data into a JobExport object by
37
+ * organizing the dimensional isolate in such a way as to interleave
38
38
  * into a story
39
- * @param data - the dependency data from Redis
39
+ * @param data - the dependency data
40
40
  * @returns - the organized dependency data
41
41
  */
42
42
  inflateDependencyData(data: string[], actions: JobActionExport): DependencyExport[];
@@ -5,8 +5,8 @@ const key_1 = require("../../modules/key");
5
5
  const utils_1 = require("../../modules/utils");
6
6
  const serializer_1 = require("../serializer");
7
7
  /**
8
- * Downloads job data from Redis (hscan, hmget, hgetall)
9
- * Expands process data and includes dependency list
8
+ * Downloads job data and expands process data and
9
+ * includes dependency list
10
10
  */
11
11
  class ExporterService {
12
12
  constructor(appId, store, logger) {
@@ -30,7 +30,7 @@ class ExporterService {
30
30
  return jobExport;
31
31
  }
32
32
  /**
33
- * Inflates the key from Redis, 3-character symbol
33
+ * Inflates the key
34
34
  * into a human-readable JSON path, reflecting the
35
35
  * tree-like structure of the unidimensional Hash
36
36
  */
@@ -38,8 +38,8 @@ class ExporterService {
38
38
  return key in this.symbols ? this.symbols[key] : key;
39
39
  }
40
40
  /**
41
- * Inflates the job data from Redis into a JobExport object
42
- * @param jobHash - the job data from Redis
41
+ * Inflates the job data into a JobExport object
42
+ * @param jobHash - the job data
43
43
  * @param dependencyList - the list of dependencies for the job
44
44
  * @returns - the inflated job data
45
45
  */
@@ -77,10 +77,10 @@ class ExporterService {
77
77
  };
78
78
  }
79
79
  /**
80
- * Inflates the dependency data from Redis into a JobExport object by
81
- * organizing the dimensional isolate in sch a way asto interleave
80
+ * Inflates the dependency data into a JobExport object by
81
+ * organizing the dimensional isolate in such a way as to interleave
82
82
  * into a story
83
- * @param data - the dependency data from Redis
83
+ * @param data - the dependency data
84
84
  * @returns - the organized dependency data
85
85
  */
86
86
  inflateDependencyData(data, actions) {
@@ -230,14 +230,7 @@ class ClientService {
230
230
  return new handle_1.WorkflowHandleService(hotMeshClient, workflowTopic, workflowId);
231
231
  },
232
232
  /**
233
- * Provides direct access to the SEARCH backend when making
234
- * queries. Taskqueues and workflow names are
235
- * used to identify the point of presence to use. `...args` is
236
- * the tokenized query. When querying Redis/FTSEARCH, the trailing
237
- * ...args might be `'@_custom1:memflow'`. For postgres,
238
- * the trailing ...args would be: `'_custom', 'memflow'`. In each case,
239
- * the query looks for all job data where the field `_custom` is
240
- * equal to `memflow`.
233
+ * Provides direct access to the SEARCH backend
241
234
  *
242
235
  * @example
243
236
  * ```typescript
@@ -8,8 +8,6 @@ import { ProviderConfig, ProvidersConfig } from '../../types/provider';
8
8
  *
9
9
  * The config options optionall support a multi-connection setup
10
10
  * where the `store` connection explicitly defined along with `stream`, `sub`, etc.
11
- * For example, Postgres can be used for stream and store while
12
- * Redis is used for sub.
13
11
  */
14
12
  export declare class ConnectionService {
15
13
  /**
@@ -9,8 +9,6 @@ exports.ConnectionService = void 0;
9
9
  *
10
10
  * The config options optionall support a multi-connection setup
11
11
  * where the `store` connection explicitly defined along with `stream`, `sub`, etc.
12
- * For example, Postgres can be used for stream and store while
13
- * Redis is used for sub.
14
12
  */
15
13
  class ConnectionService {
16
14
  /**
@@ -16,15 +16,15 @@ declare class ExporterService {
16
16
  */
17
17
  export(jobId: string, options?: ExportOptions): Promise<MemFlowJobExport>;
18
18
  /**
19
- * Inflates the job data from Redis into a MemFlowJobExport object
20
- * @param jobHash - the job data from Redis
19
+ * Inflates the job data into a MemFlowJobExport object
20
+ * @param jobHash - the job data
21
21
  * @param dependencyList - the list of dependencies for the job
22
22
  * @returns - the inflated job data
23
23
  */
24
24
  inflate(jobHash: StringStringType, options: ExportOptions): MemFlowJobExport;
25
25
  resolveValue(raw: string, withValues: boolean): Record<string, any> | string | number | null;
26
26
  /**
27
- * Inflates the key from Redis, 3-character symbol
27
+ * Inflates the key
28
28
  * into a human-readable JSON path, reflecting the
29
29
  * tree-like structure of the unidimensional Hash
30
30
  * @private
@@ -23,8 +23,8 @@ class ExporterService {
23
23
  return jobExport;
24
24
  }
25
25
  /**
26
- * Inflates the job data from Redis into a MemFlowJobExport object
27
- * @param jobHash - the job data from Redis
26
+ * Inflates the job data into a MemFlowJobExport object
27
+ * @param jobHash - the job data
28
28
  * @param dependencyList - the list of dependencies for the job
29
29
  * @returns - the inflated job data
30
30
  */
@@ -82,7 +82,7 @@ class ExporterService {
82
82
  return resolved;
83
83
  }
84
84
  /**
85
- * Inflates the key from Redis, 3-character symbol
85
+ * Inflates the key
86
86
  * into a human-readable JSON path, reflecting the
87
87
  * tree-like structure of the unidimensional Hash
88
88
  * @private
@@ -9,7 +9,7 @@ import { WorkflowHandleService } from './handle';
9
9
  import { didInterrupt } from './workflow/interruption';
10
10
  /**
11
11
  * The MemFlow service provides a Temporal-compatible workflow framework backed by
12
- * Postgres or Redis/ValKey. It offers durable execution, entity-based memory management,
12
+ * Postgres. It offers durable execution, entity-based memory management,
13
13
  * and composable workflows.
14
14
  *
15
15
  * ## Core Features
@@ -13,7 +13,7 @@ const interruption_1 = require("./workflow/interruption");
13
13
  const interceptor_1 = require("./interceptor");
14
14
  /**
15
15
  * The MemFlow service provides a Temporal-compatible workflow framework backed by
16
- * Postgres or Redis/ValKey. It offers durable execution, entity-based memory management,
16
+ * Postgres. It offers durable execution, entity-based memory management,
17
17
  * and composable workflows.
18
18
  *
19
19
  * ## Core Features
@@ -66,7 +66,7 @@ const getWorkflowYAML = (app, version) => {
66
66
  description: the arguments to pass to the flow
67
67
  type: array
68
68
  workflowTopic:
69
- description: the Redis stream topic the worker is listening on
69
+ description: the stream topic the worker is listening on
70
70
  type: string
71
71
  backoffCoefficient:
72
72
  description: the time multiple in seconds to backoff before retrying
@@ -43,10 +43,6 @@ export declare class Search {
43
43
  * @private
44
44
  */
45
45
  search: SearchService<any> | null;
46
- /**
47
- * @private
48
- */
49
- cachedFields: Record<string, string>;
50
46
  /**
51
47
  * @private
52
48
  */
@@ -75,6 +71,17 @@ export declare class Search {
75
71
  * await Search.configureSearchIndex(hotMeshClient, search);
76
72
  */
77
73
  static configureSearchIndex(hotMeshClient: HotMesh, search?: WorkflowSearchOptions): Promise<void>;
74
+ /**
75
+ * Returns all user-defined attributes (udata) for a workflow.
76
+ * These are fields that start with underscore (_) and have type='udata'.
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * const allUserData = await Search.findAllUserData('job123', hotMeshClient);
81
+ * // Returns: { _status: "active", _counter: "42", _name: "test" }
82
+ * ```
83
+ */
84
+ static findAllUserData(jobId: string, hotMeshClient: HotMesh): Promise<Record<string, string>>;
78
85
  /**
79
86
  * Returns an array of search indexes ids
80
87
  *