@pikku/redis 0.12.6 → 0.12.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,80 @@
1
+ ## 0.12.8
2
+
3
+ ### Patch Changes
4
+
5
+ - 92cd5b1: feat(workflow): workflow-owned step retries + stable invocationId
6
+
7
+ The workflow — not the queue — now owns step retry policy, and each step
8
+ invocation gets a stable idempotency key.
9
+ - **Default `retries: 5` with exponential backoff.** A step with no `retries`
10
+ previously inherited the queue's bare default (e.g. pg-boss `retry_limit 2`,
11
+ no backoff) so retries fired instantly and couldn't outlast a transient
12
+ outage. Retries now default to 5 with backoff, resolved at the workflow layer.
13
+ - **`retries: 0` is honored.** Dispatch previously passed `undefined` options
14
+ for `retries: 0`, letting the queue re-run a non-idempotent step up to its own
15
+ default. The resolved policy now always sets `attempts` (`retries: 0` →
16
+ `attempts: 1`), so the queue never second-guesses the workflow. The persisted
17
+ step retries and the dispatched `attempts` are resolved together so
18
+ "retries exhausted" and "no more redeliveries" are the same event.
19
+ - **`workflowStep.invocationId`** — a deterministic, dependency-free
20
+ `uuidv5(runId:stepName)` handed to every step. Unlike `stepId` (minted per
21
+ attempt), it is identical across retries, so a step can dedupe on it
22
+ (`ON CONFLICT (invocationId)`, Stripe idempotency keys, etc.).
23
+ - **queue-bullmq**: `mapPikkuJobToBull` now maps `backoff` (previously dropped,
24
+ so a step's backoff silently never applied on Redis), and `registerQueues`
25
+ throws a clear error when no logger is available (matching queue-pg-boss).
26
+ - **Dispatch failures are recoverable, not fatal.** A step is now marked
27
+ `scheduled` only _after_ it is successfully handed to its transport (queue or
28
+ scheduler) — a failed hand-off leaves it `pending` so a replay re-dispatches
29
+ it, instead of stranding it in `scheduled` (replay would pause forever on a
30
+ job that was never enqueued). A transport outage (e.g. pg-boss momentarily
31
+ down) is surfaced as a new `WorkflowDispatchException`, which the orchestrator
32
+ treats as transient: the run is left running and the orchestrator job is
33
+ rethrown for redelivery (it replays idempotently from the snapshot) rather
34
+ than the whole run being marked `failed`. The orchestrator job now also
35
+ carries its own retry policy, so this holds even when the orchestrator queue
36
+ is configured `retry_limit 0`. A genuine step error still fails the run.
37
+ - **Same step name can be invoked multiple times in one run.** Step rows are now
38
+ keyed per _invocation_: the Nth reach of a step name in a replay resolves to a
39
+ physical key (`name` for the first, `name#N` for repeats), so a literal
40
+ duplicate name no longer clobbers the earlier step's state. The first reach
41
+ keeps the bare name, so existing rows, graph-node matching and `invocationId`s
42
+ are unchanged. Ordinals are derived deterministically from DSL execution order
43
+ and reset each replay.
44
+ - **Step provenance (`fromStepName`) + graph cycles.** Every step now records
45
+ the predecessor it was scheduled from (`fromStepName`; entry steps have none),
46
+ persisted on the step row across all stores (in-memory, kysely, redis,
47
+ mongodb, cloudflare DO) and carried in the queued payload. The DSL wire
48
+ exposes the derived `fromInvocationId` (`uuidv5(runId:fromStepName)`) so
49
+ consumers get the stable predecessor key without a second persisted id —
50
+ `fromStepName` is the source of truth (it is replay-deterministic; `stepId`,
51
+ minted per row, is not). This makes the walked path reconstructable even when
52
+ a node is reached more than once: in `a → b → a → c` the second `a` is a
53
+ distinct ordinal instance (`a#1`) whose `fromStepName` is `b`.
54
+ The graph runner now supports **cycles**: a forward edge into an
55
+ already-started node still collapses to a single run (joins/diamonds are
56
+ unchanged), but a _back-edge_ — one whose target can reach its source — fires
57
+ a fresh ordinal instance, so a node can loop back to itself. Termination is
58
+ the graph's responsibility (branch routing must converge); the engine enforces
59
+ no visit cap.
60
+
61
+ - Updated dependencies [92cd5b1]
62
+ - @pikku/core@0.12.38
63
+
64
+ ## 0.12.7
65
+
66
+ ### Patch Changes
67
+
68
+ - 4b5c75b: feat(auth-js): wire OIDC config (issuer/tenantId) as variables, expand provider registry
69
+ - Move `issuer` and `tenantId` out of the secret blob for OIDC providers (auth0, okta, azure-ad, keycloak, cognito, microsoft-entra-id) — they are public config URLs, not secrets. Now registered via `wireVariable` and loaded at runtime via `services.variables.get()`.
70
+ - Expand provider registry from 13 to 31 providers: reddit, notion, instagram, zoom, figma, tiktok, threads, patreon, dropbox, bitbucket, hubspot, salesforce, atlassian, strava, keycloak, cognito, microsoft-entra-id added.
71
+ - `serialize-auth-gen` emits `wireVariable({...})` declarations and `services.variables.get()` calls in the generated factory for OIDC providers.
72
+ - Integration verifier exercises real `/auth/providers` endpoint with `LocalSecretService` + `LocalVariablesService`, including a spy test proving `services.variables.get('AUTH0_ISSUER')` is called at request time.
73
+
74
+ - Updated dependencies [4b5c75b]
75
+ - Updated dependencies [4b5c75b]
76
+ - @pikku/core@0.12.27
77
+
1
78
  ## 0.12.6
2
79
 
3
80
  ### Patch Changes
@@ -12,6 +12,7 @@ export declare class RedisAgentRunService implements AgentRunService {
12
12
  private agentThreadsKey;
13
13
  listThreads(options?: {
14
14
  agentName?: string;
15
+ resourceId?: string;
15
16
  limit?: number;
16
17
  offset?: number;
17
18
  }): Promise<AIThread[]>;
@@ -24,7 +24,7 @@ export class RedisAgentRunService {
24
24
  return `${this.keyPrefix}:agent-threads:${agentName}`;
25
25
  }
26
26
  async listThreads(options) {
27
- const { agentName, limit = 50, offset = 0 } = options ?? {};
27
+ const { agentName, resourceId, limit = 50, offset = 0 } = options ?? {};
28
28
  let threadIds;
29
29
  if (agentName) {
30
30
  const allIds = await this.redis.smembers(this.agentThreadsKey(agentName));
@@ -45,8 +45,11 @@ export class RedisAgentRunService {
45
45
  const threads = [];
46
46
  for (const id of paged) {
47
47
  const thread = await this.getThread(id);
48
- if (thread)
49
- threads.push(thread);
48
+ if (!thread)
49
+ continue;
50
+ if (resourceId && thread.resourceId !== resourceId)
51
+ continue;
52
+ threads.push(thread);
50
53
  }
51
54
  return threads;
52
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"redis-agent-run-service.js","sourceRoot":"","sources":["../../src/redis-agent-run-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redis-agent-run-service.js","sourceRoot":"","sources":["../../src/redis-agent-run-service.ts"],"names":[],"mappings":"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"}
@@ -14,5 +14,8 @@ export declare class RedisChannelStore extends ChannelStore {
14
14
  getChannel(channelId: string): Promise<Channel & {
15
15
  pikkuUserId?: string;
16
16
  }>;
17
+ setState(channelId: string, state: unknown): Promise<void>;
18
+ getState(channelId: string): Promise<unknown | undefined>;
19
+ clearState(channelId: string): Promise<void>;
17
20
  close(): Promise<void>;
18
21
  }
@@ -64,6 +64,27 @@ export class RedisChannelStore extends ChannelStore {
64
64
  pikkuUserId: data.pikkuUserId || undefined,
65
65
  };
66
66
  }
67
+ async setState(channelId, state) {
68
+ const key = this.channelKey(channelId);
69
+ await this.redis.hset(key, 'state', JSON.stringify(state ?? null));
70
+ }
71
+ async getState(channelId) {
72
+ const key = this.channelKey(channelId);
73
+ const raw = await this.redis.hget(key, 'state');
74
+ if (!raw)
75
+ return undefined;
76
+ try {
77
+ const parsed = JSON.parse(raw);
78
+ return parsed ?? undefined;
79
+ }
80
+ catch {
81
+ return undefined;
82
+ }
83
+ }
84
+ async clearState(channelId) {
85
+ const key = this.channelKey(channelId);
86
+ await this.redis.hdel(key, 'state');
87
+ }
67
88
  async close() {
68
89
  if (this.ownsConnection) {
69
90
  await this.redis.quit();
@@ -1 +1 @@
1
- {"version":3,"file":"redis-channel-store.js","sourceRoot":"","sources":["../../src/redis-channel-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redis-channel-store.js","sourceRoot":"","sources":["../../src/redis-channel-store.ts"],"names":[],"mappings":"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"}
@@ -16,11 +16,11 @@ export declare class RedisSecretService implements SecretService {
16
16
  constructor(connectionOrConfig: Redis | RedisOptions | string, config: RedisSecretServiceConfig);
17
17
  private secretKey;
18
18
  private getKEK;
19
- getSecret(key: string): Promise<string>;
20
- getSecretJSON<R = {}>(key: string): Promise<R>;
19
+ getSecret<T = string>(key: string): Promise<T>;
21
20
  hasSecret(key: string): Promise<boolean>;
22
- setSecretJSON(key: string, value: unknown): Promise<void>;
21
+ setSecret(key: string, value: unknown): Promise<void>;
23
22
  deleteSecret(key: string): Promise<void>;
23
+ getSecrets<T extends Record<string, unknown> = Record<string, unknown>>(keys: (keyof T & string)[]): Promise<T>;
24
24
  rotateKEK(): Promise<number>;
25
25
  close(): Promise<void>;
26
26
  }
@@ -44,17 +44,12 @@ export class RedisSecretService {
44
44
  const kek = this.getKEK(Number(data.key_version));
45
45
  return envelopeDecrypt(kek, data.ciphertext, data.wrapped_dek);
46
46
  }
47
- async getSecretJSON(key) {
48
- const raw = await this.getSecret(key);
49
- return JSON.parse(raw);
50
- }
51
47
  async hasSecret(key) {
52
48
  const exists = await this.redis.exists(this.secretKey(key));
53
49
  return exists === 1;
54
50
  }
55
- async setSecretJSON(key, value) {
56
- const plaintext = JSON.stringify(value);
57
- const { ciphertext, wrappedDEK } = await envelopeEncrypt(this.key, plaintext);
51
+ async setSecret(key, value) {
52
+ const { ciphertext, wrappedDEK } = await envelopeEncrypt(this.key, value);
58
53
  await this.redis.hset(this.secretKey(key), {
59
54
  ciphertext,
60
55
  wrapped_dek: wrappedDEK,
@@ -64,6 +59,16 @@ export class RedisSecretService {
64
59
  async deleteSecret(key) {
65
60
  await this.redis.del(this.secretKey(key));
66
61
  }
62
+ async getSecrets(keys) {
63
+ const results = await Promise.allSettled(keys.map((k) => this.getSecret(k)));
64
+ const out = {};
65
+ keys.forEach((key, i) => {
66
+ const result = results[i];
67
+ if (result?.status === 'fulfilled')
68
+ out[key] = result.value;
69
+ });
70
+ return out;
71
+ }
67
72
  async rotateKEK() {
68
73
  if (!this.previousKey) {
69
74
  throw new Error('No previousKey configured — nothing to rotate from');
@@ -1 +1 @@
1
- {"version":3,"file":"redis-secret-service.js","sourceRoot":"","sources":["../../src/redis-secret-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redis-secret-service.js","sourceRoot":"","sources":["../../src/redis-secret-service.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { SerializedError } from '@pikku/core';
2
- import { PikkuWorkflowService, type WorkflowPlannedStep, type WorkflowRun, type WorkflowRunWire, type StepState, type WorkflowStatus, type WorkflowVersionStatus } from '@pikku/core/workflow';
2
+ import { PikkuWorkflowService, type WorkflowPlannedStep, type WorkflowRun, type WorkflowRunWire, type StepState, type StepStatus, type WorkflowStatus, type WorkflowVersionStatus } from '@pikku/core/workflow';
3
3
  import { Redis, type RedisOptions } from 'ioredis';
4
4
  export declare class RedisWorkflowService extends PikkuWorkflowService {
5
5
  private redis;
@@ -15,42 +15,47 @@ export declare class RedisWorkflowService extends PikkuWorkflowService {
15
15
  private stepLockKey;
16
16
  private saveStepHistory;
17
17
  private updateCurrentHistoryRecord;
18
- createRun(workflowName: string, input: any, inline: boolean, graphHash: string, wire: WorkflowRunWire, options?: {
18
+ protected createRunImpl(workflowName: string, input: any, inline: boolean, graphHash: string, wire: WorkflowRunWire, options?: {
19
19
  deterministic?: boolean;
20
20
  plannedSteps?: WorkflowPlannedStep[];
21
21
  }): Promise<string>;
22
22
  getRun(id: string): Promise<WorkflowRun | null>;
23
- updateRunStatus(id: string, status: WorkflowStatus, output?: any, error?: SerializedError): Promise<void>;
24
- insertStepState(runId: string, stepName: string, rpcName: string, data: any, stepOptions?: {
23
+ protected updateRunStatusImpl(id: string, status: WorkflowStatus, output?: any, error?: SerializedError): Promise<void>;
24
+ protected insertStepStateImpl(runId: string, stepName: string, rpcName: string, data: any, stepOptions?: {
25
25
  retries?: number;
26
26
  retryDelay?: string | number;
27
- }): Promise<StepState>;
27
+ }, fromStepName?: string): Promise<StepState>;
28
28
  getStepState(runId: string, stepName: string): Promise<StepState>;
29
29
  getRunHistory(runId: string): Promise<Array<StepState & {
30
30
  stepName: string;
31
31
  }>>;
32
- setStepRunning(stepId: string): Promise<void>;
33
- setStepScheduled(stepId: string): Promise<void>;
34
- setStepChildRunId(stepId: string, childRunId: string): Promise<void>;
35
- setStepResult(stepId: string, result: any): Promise<void>;
36
- setStepError(stepId: string, error: Error): Promise<void>;
32
+ protected setStepRunningImpl(stepId: string): Promise<void>;
33
+ protected setStepScheduledImpl(stepId: string): Promise<void>;
34
+ protected setStepChildRunIdImpl(stepId: string, childRunId: string): Promise<void>;
35
+ protected setStepResultImpl(stepId: string, result: any): Promise<void>;
36
+ protected setStepErrorImpl(stepId: string, error: Error): Promise<void>;
37
37
  private withLock;
38
38
  withRunLock<T>(id: string, fn: () => Promise<T>): Promise<T>;
39
39
  withStepLock<T>(runId: string, stepName: string, fn: () => Promise<T>): Promise<T>;
40
- createRetryAttempt(stepId: string, status: 'pending' | 'running'): Promise<StepState>;
40
+ protected createRetryAttemptImpl(stepId: string, status: 'pending' | 'running'): Promise<StepState>;
41
41
  getCompletedGraphState(runId: string): Promise<{
42
42
  completedNodeIds: string[];
43
43
  failedNodeIds: string[];
44
44
  branchKeys: Record<string, string>;
45
45
  }>;
46
46
  getNodesWithoutSteps(runId: string, nodeIds: string[]): Promise<string[]>;
47
+ getStepInstances(runId: string): Promise<Array<{
48
+ stepName: string;
49
+ status: StepStatus;
50
+ fromStepName?: string;
51
+ }>>;
47
52
  getNodeResults(runId: string, nodeIds: string[]): Promise<Record<string, any>>;
48
- setBranchTaken(stepId: string, branchKey: string): Promise<void>;
49
- updateRunState(runId: string, name: string, value: unknown): Promise<void>;
53
+ protected setBranchTakenImpl(stepId: string, branchKey: string): Promise<void>;
54
+ protected updateRunStateImpl(runId: string, name: string, value: unknown): Promise<void>;
50
55
  getRunState(runId: string): Promise<Record<string, unknown>>;
51
56
  private versionKey;
52
- upsertWorkflowVersion(name: string, graphHash: string, graph: any, source: string, status?: WorkflowVersionStatus): Promise<void>;
53
- updateWorkflowVersionStatus(name: string, graphHash: string, status: WorkflowVersionStatus): Promise<void>;
57
+ protected upsertWorkflowVersionImpl(name: string, graphHash: string, graph: any, source: string, status?: WorkflowVersionStatus): Promise<void>;
58
+ protected updateWorkflowVersionStatusImpl(name: string, graphHash: string, status: WorkflowVersionStatus): Promise<void>;
54
59
  getWorkflowVersion(name: string, graphHash: string): Promise<{
55
60
  graph: any;
56
61
  source: string;
@@ -99,7 +99,7 @@ export class RedisWorkflowService extends PikkuWorkflowService {
99
99
  await this.redis.zremrangebyscore(historyKey, attemptCount, attemptCount);
100
100
  await this.redis.zadd(historyKey, attemptCount, JSON.stringify(updatedEntry));
101
101
  }
102
- async createRun(workflowName, input, inline, graphHash, wire, options) {
102
+ async createRunImpl(workflowName, input, inline, graphHash, wire, options) {
103
103
  const id = randomUUID();
104
104
  const now = Date.now();
105
105
  const key = this.runKey(id);
@@ -130,7 +130,7 @@ export class RedisWorkflowService extends PikkuWorkflowService {
130
130
  updatedAt: new Date(Number(data.updatedAt)),
131
131
  };
132
132
  }
133
- async updateRunStatus(id, status, output, error) {
133
+ async updateRunStatusImpl(id, status, output, error) {
134
134
  const now = Date.now();
135
135
  const key = this.runKey(id);
136
136
  const fields = {
@@ -145,7 +145,7 @@ export class RedisWorkflowService extends PikkuWorkflowService {
145
145
  }
146
146
  await this.redis.hmset(key, fields);
147
147
  }
148
- async insertStepState(runId, stepName, rpcName, data, stepOptions) {
148
+ async insertStepStateImpl(runId, stepName, rpcName, data, stepOptions, fromStepName) {
149
149
  const now = Date.now();
150
150
  const stepId = `${runId}:${stepName}:${now}`;
151
151
  const key = this.stepKey(runId, stepName);
@@ -164,6 +164,9 @@ export class RedisWorkflowService extends PikkuWorkflowService {
164
164
  if (stepOptions?.retryDelay !== undefined) {
165
165
  fields.retryDelay = stepOptions.retryDelay.toString();
166
166
  }
167
+ if (fromStepName !== undefined) {
168
+ fields.fromStepName = fromStepName;
169
+ }
167
170
  await this.redis.hmset(key, fields);
168
171
  await this.saveStepHistory(stepId, stepName, 1, 'pending', undefined, undefined, stepOptions?.retries, stepOptions?.retryDelay?.toString());
169
172
  return {
@@ -174,6 +177,7 @@ export class RedisWorkflowService extends PikkuWorkflowService {
174
177
  retryDelay: stepOptions?.retryDelay !== undefined
175
178
  ? stepOptions.retryDelay.toString()
176
179
  : undefined,
180
+ fromStepName,
177
181
  createdAt: new Date(now),
178
182
  updatedAt: new Date(now),
179
183
  };
@@ -192,6 +196,7 @@ export class RedisWorkflowService extends PikkuWorkflowService {
192
196
  attemptCount: Number(data.attemptCount || 1),
193
197
  retries: data.retries ? Number(data.retries) : undefined,
194
198
  retryDelay: data.retryDelay,
199
+ fromStepName: data.fromStepName || undefined,
195
200
  createdAt: new Date(Number(data.createdAt)),
196
201
  updatedAt: new Date(Number(data.updatedAt)),
197
202
  };
@@ -239,7 +244,7 @@ export class RedisWorkflowService extends PikkuWorkflowService {
239
244
  }
240
245
  return allHistoryEntries.sort((a, b) => a.createdAt.getTime() - b.createdAt.getTime());
241
246
  }
242
- async setStepRunning(stepId) {
247
+ async setStepRunningImpl(stepId) {
243
248
  const parts = stepId.split(':');
244
249
  const runId = parts[0];
245
250
  const stepName = parts.slice(1, -1).join(':');
@@ -252,7 +257,7 @@ export class RedisWorkflowService extends PikkuWorkflowService {
252
257
  await this.redis.hmset(key, 'status', 'running', 'updatedAt', now.toString());
253
258
  await this.updateCurrentHistoryRecord(stepId, stepName, attemptCount, 'running', undefined, undefined, retries, retryDelay);
254
259
  }
255
- async setStepScheduled(stepId) {
260
+ async setStepScheduledImpl(stepId) {
256
261
  const parts = stepId.split(':');
257
262
  const runId = parts[0];
258
263
  const stepName = parts.slice(1, -1).join(':');
@@ -265,14 +270,14 @@ export class RedisWorkflowService extends PikkuWorkflowService {
265
270
  await this.redis.hmset(key, 'status', 'scheduled', 'updatedAt', now.toString());
266
271
  await this.updateCurrentHistoryRecord(stepId, stepName, attemptCount, 'scheduled', undefined, undefined, retries, retryDelay);
267
272
  }
268
- async setStepChildRunId(stepId, childRunId) {
273
+ async setStepChildRunIdImpl(stepId, childRunId) {
269
274
  const parts = stepId.split(':');
270
275
  const runId = parts[0];
271
276
  const stepName = parts.slice(1, -1).join(':');
272
277
  const key = this.stepKey(runId, stepName);
273
278
  await this.redis.hmset(key, 'childRunId', childRunId, 'updatedAt', Date.now().toString());
274
279
  }
275
- async setStepResult(stepId, result) {
280
+ async setStepResultImpl(stepId, result) {
276
281
  const parts = stepId.split(':');
277
282
  const runId = parts[0];
278
283
  const stepName = parts.slice(1, -1).join(':');
@@ -286,7 +291,7 @@ export class RedisWorkflowService extends PikkuWorkflowService {
286
291
  await this.redis.hdel(key, 'error');
287
292
  await this.updateCurrentHistoryRecord(stepId, stepName, attemptCount, 'succeeded', result, undefined, retries, retryDelay);
288
293
  }
289
- async setStepError(stepId, error) {
294
+ async setStepErrorImpl(stepId, error) {
290
295
  const parts = stepId.split(':');
291
296
  const runId = parts[0];
292
297
  const stepName = parts.slice(1, -1).join(':');
@@ -329,7 +334,7 @@ export class RedisWorkflowService extends PikkuWorkflowService {
329
334
  async withStepLock(runId, stepName, fn) {
330
335
  return this.withLock(this.stepLockKey(runId, stepName), `Failed to acquire step lock for run ${runId}, step ${stepName}`, fn);
331
336
  }
332
- async createRetryAttempt(stepId, status) {
337
+ async createRetryAttemptImpl(stepId, status) {
333
338
  const parts = stepId.split(':');
334
339
  const runId = parts[0];
335
340
  const stepName = parts.slice(1, -1).join(':');
@@ -350,6 +355,7 @@ export class RedisWorkflowService extends PikkuWorkflowService {
350
355
  attemptCount: newAttemptCount,
351
356
  retries: retries,
352
357
  retryDelay: retryDelay,
358
+ fromStepName: data.fromStepName || undefined,
353
359
  createdAt: new Date(Number(data.createdAt)),
354
360
  updatedAt: new Date(now),
355
361
  };
@@ -403,6 +409,28 @@ export class RedisWorkflowService extends PikkuWorkflowService {
403
409
  }
404
410
  return result;
405
411
  }
412
+ async getStepInstances(runId) {
413
+ const instances = [];
414
+ const pattern = `${this.keyPrefix}:step:${runId}:*`;
415
+ let cursor = '0';
416
+ do {
417
+ const [newCursor, foundKeys] = await this.redis.scan(cursor, 'MATCH', pattern, 'COUNT', 100);
418
+ cursor = newCursor;
419
+ for (const key of foundKeys) {
420
+ const [status, fromStepName] = await this.redis.hmget(key, 'status', 'fromStepName');
421
+ const parts = key.split(':');
422
+ const stepIndex = parts.lastIndexOf('step');
423
+ if (stepIndex === -1 || parts[stepIndex + 1] !== runId)
424
+ continue;
425
+ instances.push({
426
+ stepName: parts.slice(stepIndex + 2).join(':'),
427
+ status: status,
428
+ fromStepName: fromStepName || undefined,
429
+ });
430
+ }
431
+ } while (cursor !== '0');
432
+ return instances;
433
+ }
406
434
  async getNodeResults(runId, nodeIds) {
407
435
  if (nodeIds.length === 0)
408
436
  return {};
@@ -417,7 +445,7 @@ export class RedisWorkflowService extends PikkuWorkflowService {
417
445
  }
418
446
  return results;
419
447
  }
420
- async setBranchTaken(stepId, branchKey) {
448
+ async setBranchTakenImpl(stepId, branchKey) {
421
449
  const parts = stepId.split(':');
422
450
  const runId = parts[0];
423
451
  const stepName = parts.slice(1, -1).join(':');
@@ -425,7 +453,7 @@ export class RedisWorkflowService extends PikkuWorkflowService {
425
453
  const key = this.stepKey(runId, stepName);
426
454
  await this.redis.hmset(key, 'branchTaken', branchKey, 'updatedAt', now.toString());
427
455
  }
428
- async updateRunState(runId, name, value) {
456
+ async updateRunStateImpl(runId, name, value) {
429
457
  const key = this.runKey(runId);
430
458
  const now = Date.now();
431
459
  const existingState = await this.redis.hget(key, 'state');
@@ -444,14 +472,14 @@ export class RedisWorkflowService extends PikkuWorkflowService {
444
472
  versionKey(name, graphHash) {
445
473
  return `${this.keyPrefix}:version:${name}:${graphHash}`;
446
474
  }
447
- async upsertWorkflowVersion(name, graphHash, graph, source, status) {
475
+ async upsertWorkflowVersionImpl(name, graphHash, graph, source, status) {
448
476
  const key = this.versionKey(name, graphHash);
449
477
  const exists = await this.redis.exists(key);
450
478
  if (!exists) {
451
479
  await this.redis.hmset(key, 'workflowName', name, 'graphHash', graphHash, 'graph', JSON.stringify(graph), 'source', source, 'status', status ?? 'active', 'createdAt', Date.now().toString());
452
480
  }
453
481
  }
454
- async updateWorkflowVersionStatus(name, graphHash, status) {
482
+ async updateWorkflowVersionStatusImpl(name, graphHash, status) {
455
483
  const key = this.versionKey(name, graphHash);
456
484
  await this.redis.hset(key, 'status', status);
457
485
  }
@@ -1 +1 @@
1
- {"version":3,"file":"redis-workflow-service.js","sourceRoot":"","sources":["../../src/redis-workflow-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redis-workflow-service.js","sourceRoot":"","sources":["../../src/redis-workflow-service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pikku/redis",
3
- "version": "0.12.6",
3
+ "version": "0.12.8",
4
4
  "author": "yasser.fadl@gmail.com",
5
5
  "license": "MIT",
6
6
  "module": "dist/src/index.js",
@@ -17,7 +17,7 @@
17
17
  "prepublishOnly": "yarn build"
18
18
  },
19
19
  "peerDependencies": {
20
- "@pikku/core": "^0.12.19"
20
+ "@pikku/core": "^0.12.38"
21
21
  },
22
22
  "dependencies": {
23
23
  "ioredis": "^5.10.0"
@@ -26,5 +26,8 @@
26
26
  "@types/ioredis-mock": "^8",
27
27
  "ioredis-mock": "^8.13.1",
28
28
  "typescript": "^5.9"
29
+ },
30
+ "exports": {
31
+ ".": "./dist/src/index.js"
29
32
  }
30
33
  }
@@ -38,10 +38,11 @@ export class RedisAgentRunService implements AgentRunService {
38
38
 
39
39
  async listThreads(options?: {
40
40
  agentName?: string
41
+ resourceId?: string
41
42
  limit?: number
42
43
  offset?: number
43
44
  }): Promise<AIThread[]> {
44
- const { agentName, limit = 50, offset = 0 } = options ?? {}
45
+ const { agentName, resourceId, limit = 50, offset = 0 } = options ?? {}
45
46
 
46
47
  let threadIds: string[]
47
48
 
@@ -65,7 +66,9 @@ export class RedisAgentRunService implements AgentRunService {
65
66
  const threads: AIThread[] = []
66
67
  for (const id of paged) {
67
68
  const thread = await this.getThread(id)
68
- if (thread) threads.push(thread)
69
+ if (!thread) continue
70
+ if (resourceId && thread.resourceId !== resourceId) continue
71
+ threads.push(thread)
69
72
  }
70
73
 
71
74
  return threads
@@ -125,6 +125,28 @@ export class RedisChannelStore extends ChannelStore {
125
125
  }
126
126
  }
127
127
 
128
+ public async setState(channelId: string, state: unknown): Promise<void> {
129
+ const key = this.channelKey(channelId)
130
+ await this.redis.hset(key, 'state', JSON.stringify(state ?? null))
131
+ }
132
+
133
+ public async getState(channelId: string): Promise<unknown | undefined> {
134
+ const key = this.channelKey(channelId)
135
+ const raw = await this.redis.hget(key, 'state')
136
+ if (!raw) return undefined
137
+ try {
138
+ const parsed = JSON.parse(raw)
139
+ return parsed ?? undefined
140
+ } catch {
141
+ return undefined
142
+ }
143
+ }
144
+
145
+ public async clearState(channelId: string): Promise<void> {
146
+ const key = this.channelKey(channelId)
147
+ await this.redis.hdel(key, 'state')
148
+ }
149
+
128
150
  /**
129
151
  * Close the Redis connection if owned by this store
130
152
  */
@@ -35,11 +35,11 @@ describe('RedisSecretService', () => {
35
35
  keyPrefix: 'app2',
36
36
  })
37
37
 
38
- await s1.setSecretJSON('shared-name', { from: 'app1' })
39
- await s2.setSecretJSON('shared-name', { from: 'app2' })
38
+ await s1.setSecret('shared-name', { from: 'app1' })
39
+ await s2.setSecret('shared-name', { from: 'app2' })
40
40
 
41
- const r1 = await s1.getSecretJSON<{ from: string }>('shared-name')
42
- const r2 = await s2.getSecretJSON<{ from: string }>('shared-name')
41
+ const r1 = await s1.getSecret<{ from: string }>('shared-name')
42
+ const r2 = await s2.getSecret<{ from: string }>('shared-name')
43
43
 
44
44
  assert.deepEqual(r1, { from: 'app1' })
45
45
  assert.deepEqual(r2, { from: 'app2' })
@@ -56,17 +56,12 @@ export class RedisSecretService implements SecretService {
56
56
  throw new Error(`No KEK available for key_version ${version}`)
57
57
  }
58
58
 
59
- async getSecret(key: string): Promise<string> {
59
+ async getSecret<T = string>(key: string): Promise<T> {
60
60
  const data = await this.redis.hgetall(this.secretKey(key))
61
61
  if (!data.ciphertext) throw new Error('Requested secret not found')
62
62
 
63
63
  const kek = this.getKEK(Number(data.key_version))
64
- return envelopeDecrypt<string>(kek, data.ciphertext!, data.wrapped_dek!)
65
- }
66
-
67
- async getSecretJSON<R = {}>(key: string): Promise<R> {
68
- const raw = await this.getSecret(key)
69
- return JSON.parse(raw) as R
64
+ return envelopeDecrypt<T>(kek, data.ciphertext!, data.wrapped_dek!)
70
65
  }
71
66
 
72
67
  async hasSecret(key: string): Promise<boolean> {
@@ -74,12 +69,8 @@ export class RedisSecretService implements SecretService {
74
69
  return exists === 1
75
70
  }
76
71
 
77
- async setSecretJSON(key: string, value: unknown): Promise<void> {
78
- const plaintext = JSON.stringify(value)
79
- const { ciphertext, wrappedDEK } = await envelopeEncrypt(
80
- this.key,
81
- plaintext
82
- )
72
+ async setSecret(key: string, value: unknown): Promise<void> {
73
+ const { ciphertext, wrappedDEK } = await envelopeEncrypt(this.key, value)
83
74
 
84
75
  await this.redis.hset(this.secretKey(key), {
85
76
  ciphertext,
@@ -92,6 +83,18 @@ export class RedisSecretService implements SecretService {
92
83
  await this.redis.del(this.secretKey(key))
93
84
  }
94
85
 
86
+ async getSecrets<
87
+ T extends Record<string, unknown> = Record<string, unknown>,
88
+ >(keys: (keyof T & string)[]): Promise<T> {
89
+ const results = await Promise.allSettled(keys.map((k) => this.getSecret(k)))
90
+ const out: Record<string, unknown> = {}
91
+ keys.forEach((key, i) => {
92
+ const result = results[i]
93
+ if (result?.status === 'fulfilled') out[key] = result.value
94
+ })
95
+ return out as T
96
+ }
97
+
95
98
  async rotateKEK(): Promise<number> {
96
99
  if (!this.previousKey) {
97
100
  throw new Error('No previousKey configured — nothing to rotate from')
@@ -5,6 +5,7 @@ import {
5
5
  type WorkflowRun,
6
6
  type WorkflowRunWire,
7
7
  type StepState,
8
+ type StepStatus,
8
9
  type WorkflowStatus,
9
10
  type WorkflowVersionStatus,
10
11
  } from '@pikku/core/workflow'
@@ -204,7 +205,7 @@ export class RedisWorkflowService extends PikkuWorkflowService {
204
205
  )
205
206
  }
206
207
 
207
- async createRun(
208
+ protected async createRunImpl(
208
209
  workflowName: string,
209
210
  input: any,
210
211
  inline: boolean,
@@ -276,7 +277,7 @@ export class RedisWorkflowService extends PikkuWorkflowService {
276
277
  }
277
278
  }
278
279
 
279
- async updateRunStatus(
280
+ protected async updateRunStatusImpl(
280
281
  id: string,
281
282
  status: WorkflowStatus,
282
283
  output?: any,
@@ -301,12 +302,13 @@ export class RedisWorkflowService extends PikkuWorkflowService {
301
302
  await this.redis.hmset(key, fields)
302
303
  }
303
304
 
304
- async insertStepState(
305
+ protected async insertStepStateImpl(
305
306
  runId: string,
306
307
  stepName: string,
307
308
  rpcName: string,
308
309
  data: any,
309
- stepOptions?: { retries?: number; retryDelay?: string | number }
310
+ stepOptions?: { retries?: number; retryDelay?: string | number },
311
+ fromStepName?: string
310
312
  ): Promise<StepState> {
311
313
  const now = Date.now()
312
314
  const stepId = `${runId}:${stepName}:${now}`
@@ -330,6 +332,10 @@ export class RedisWorkflowService extends PikkuWorkflowService {
330
332
  fields.retryDelay = stepOptions.retryDelay.toString()
331
333
  }
332
334
 
335
+ if (fromStepName !== undefined) {
336
+ fields.fromStepName = fromStepName
337
+ }
338
+
333
339
  await this.redis.hmset(key, fields)
334
340
 
335
341
  // Save initial history entry
@@ -353,6 +359,7 @@ export class RedisWorkflowService extends PikkuWorkflowService {
353
359
  stepOptions?.retryDelay !== undefined
354
360
  ? stepOptions.retryDelay.toString()
355
361
  : undefined,
362
+ fromStepName,
356
363
  createdAt: new Date(now),
357
364
  updatedAt: new Date(now),
358
365
  }
@@ -376,6 +383,7 @@ export class RedisWorkflowService extends PikkuWorkflowService {
376
383
  attemptCount: Number(data.attemptCount || 1),
377
384
  retries: data.retries ? Number(data.retries) : undefined,
378
385
  retryDelay: data.retryDelay,
386
+ fromStepName: data.fromStepName || undefined,
379
387
  createdAt: new Date(Number(data.createdAt!)),
380
388
  updatedAt: new Date(Number(data.updatedAt!)),
381
389
  }
@@ -447,7 +455,7 @@ export class RedisWorkflowService extends PikkuWorkflowService {
447
455
  )
448
456
  }
449
457
 
450
- async setStepRunning(stepId: string): Promise<void> {
458
+ protected async setStepRunningImpl(stepId: string): Promise<void> {
451
459
  // Extract runId and stepName from stepId (format: runId:stepName:timestamp)
452
460
  const parts = stepId.split(':')
453
461
  const runId = parts[0]!
@@ -483,7 +491,7 @@ export class RedisWorkflowService extends PikkuWorkflowService {
483
491
  )
484
492
  }
485
493
 
486
- async setStepScheduled(stepId: string): Promise<void> {
494
+ protected async setStepScheduledImpl(stepId: string): Promise<void> {
487
495
  // Extract runId and stepName from stepId (format: runId:stepName:timestamp)
488
496
  const parts = stepId.split(':')
489
497
  const runId = parts[0]!
@@ -519,7 +527,10 @@ export class RedisWorkflowService extends PikkuWorkflowService {
519
527
  )
520
528
  }
521
529
 
522
- async setStepChildRunId(stepId: string, childRunId: string): Promise<void> {
530
+ protected async setStepChildRunIdImpl(
531
+ stepId: string,
532
+ childRunId: string
533
+ ): Promise<void> {
523
534
  const parts = stepId.split(':')
524
535
  const runId = parts[0]!
525
536
  const stepName = parts.slice(1, -1).join(':')
@@ -533,7 +544,10 @@ export class RedisWorkflowService extends PikkuWorkflowService {
533
544
  )
534
545
  }
535
546
 
536
- async setStepResult(stepId: string, result: any): Promise<void> {
547
+ protected async setStepResultImpl(
548
+ stepId: string,
549
+ result: any
550
+ ): Promise<void> {
537
551
  // Extract runId and stepName from stepId (format: runId:stepName:timestamp)
538
552
  const parts = stepId.split(':')
539
553
  const runId = parts[0]!
@@ -574,7 +588,10 @@ export class RedisWorkflowService extends PikkuWorkflowService {
574
588
  )
575
589
  }
576
590
 
577
- async setStepError(stepId: string, error: Error): Promise<void> {
591
+ protected async setStepErrorImpl(
592
+ stepId: string,
593
+ error: Error
594
+ ): Promise<void> {
578
595
  // Extract runId and stepName from stepId (format: runId:stepName:timestamp)
579
596
  const parts = stepId.split(':')
580
597
  const runId = parts[0]!
@@ -682,7 +699,7 @@ export class RedisWorkflowService extends PikkuWorkflowService {
682
699
  )
683
700
  }
684
701
 
685
- async createRetryAttempt(
702
+ protected async createRetryAttemptImpl(
686
703
  stepId: string,
687
704
  status: 'pending' | 'running'
688
705
  ): Promise<StepState> {
@@ -734,6 +751,7 @@ export class RedisWorkflowService extends PikkuWorkflowService {
734
751
  attemptCount: newAttemptCount,
735
752
  retries: retries,
736
753
  retryDelay: retryDelay,
754
+ fromStepName: data.fromStepName || undefined,
737
755
  createdAt: new Date(Number(data.createdAt!)),
738
756
  updatedAt: new Date(now),
739
757
  }
@@ -818,6 +836,44 @@ export class RedisWorkflowService extends PikkuWorkflowService {
818
836
  return result
819
837
  }
820
838
 
839
+ async getStepInstances(runId: string): Promise<
840
+ Array<{ stepName: string; status: StepStatus; fromStepName?: string }>
841
+ > {
842
+ const instances: Array<{
843
+ stepName: string
844
+ status: StepStatus
845
+ fromStepName?: string
846
+ }> = []
847
+ const pattern = `${this.keyPrefix}:step:${runId}:*`
848
+ let cursor = '0'
849
+ do {
850
+ const [newCursor, foundKeys] = await this.redis.scan(
851
+ cursor,
852
+ 'MATCH',
853
+ pattern,
854
+ 'COUNT',
855
+ 100
856
+ )
857
+ cursor = newCursor
858
+ for (const key of foundKeys) {
859
+ const [status, fromStepName] = await this.redis.hmget(
860
+ key,
861
+ 'status',
862
+ 'fromStepName'
863
+ )
864
+ const parts = key.split(':')
865
+ const stepIndex = parts.lastIndexOf('step')
866
+ if (stepIndex === -1 || parts[stepIndex + 1] !== runId) continue
867
+ instances.push({
868
+ stepName: parts.slice(stepIndex + 2).join(':'),
869
+ status: status as StepStatus,
870
+ fromStepName: fromStepName || undefined,
871
+ })
872
+ }
873
+ } while (cursor !== '0')
874
+ return instances
875
+ }
876
+
821
877
  async getNodeResults(
822
878
  runId: string,
823
879
  nodeIds: string[]
@@ -839,7 +895,10 @@ export class RedisWorkflowService extends PikkuWorkflowService {
839
895
  return results
840
896
  }
841
897
 
842
- async setBranchTaken(stepId: string, branchKey: string): Promise<void> {
898
+ protected async setBranchTakenImpl(
899
+ stepId: string,
900
+ branchKey: string
901
+ ): Promise<void> {
843
902
  // Extract runId and stepName from stepId (format: runId:stepName:timestamp)
844
903
  const parts = stepId.split(':')
845
904
  const runId = parts[0]!
@@ -857,7 +916,7 @@ export class RedisWorkflowService extends PikkuWorkflowService {
857
916
  )
858
917
  }
859
918
 
860
- async updateRunState(
919
+ protected async updateRunStateImpl(
861
920
  runId: string,
862
921
  name: string,
863
922
  value: unknown
@@ -894,7 +953,7 @@ export class RedisWorkflowService extends PikkuWorkflowService {
894
953
  return `${this.keyPrefix}:version:${name}:${graphHash}`
895
954
  }
896
955
 
897
- async upsertWorkflowVersion(
956
+ protected async upsertWorkflowVersionImpl(
898
957
  name: string,
899
958
  graphHash: string,
900
959
  graph: any,
@@ -922,7 +981,7 @@ export class RedisWorkflowService extends PikkuWorkflowService {
922
981
  }
923
982
  }
924
983
 
925
- async updateWorkflowVersionStatus(
984
+ protected async updateWorkflowVersionStatusImpl(
926
985
  name: string,
927
986
  graphHash: string,
928
987
  status: WorkflowVersionStatus