LIVE
IDLEAwaiting updates…
LexDev

Two-Layer Cake

TypeScript SDK for multi-agent AI apps — DAG task decomposition, parallel agent execution, token budgets, and streaming

ShippedLexDev
Key metrics

Metrics being defined

Competitive Intel

0 entries

No competitive intel entries for this product yet.

Research Hub

0 types

No research documents for this product yet.

Roadmap

10 items
Planned10
**`create-signal.ts:9`** (adapter-claude + adapter-openai) — `setTimeout` timer leaks when request completes before timeout. Fix: use `AbortSignal.timeout(timeoutMs)` (Node 18+) or return a cleanup function.
**`dag-executor.ts:147`** — `contextFromPrevious` only injected when already truthy. If planner doesn't set it, upstream dependency results are silently dropped. Fix: always inject dependency results when `dependsOn` is non-empty.
**`dag-executor.ts:296`** — `runningPromises` Map declared but never populated. Dead code. Fix: remove.
**`error-handler.ts:54`** — Rule-based retry path requires `retryFn` parameter that is never passed by `DAGExecutor`. Entire retry tier is dead code. Fix: either remove `retryFn` requirement, or pass it from DAGExecutor.
**`event-bus.ts:87`** — `toAsyncIterable` completion handlers registered but never unregistered. Minor memory leak on repeated `stream()` calls. Fix: store handler refs and remove in `cleanup()`.
**`orchestrator.ts:243`** — `stream()` swallows errors via `.catch(() => {})`. If error occurs before event emission, consumers never learn. Fix: emit synthetic error event or terminate async iterable with error.
**`orchestrator.ts:36`** — `abortControllers` map entries never cleaned up on successful completion. Fix: delete in `finally` block.
**`planner.ts:15`** — Global mutable `planIdCounter` causes cross-test pollution and is unsafe in concurrent use. Fix: move to instance-level counter or use `crypto.randomUUID()`. Remove `resetPlanIdCounter`.
**`scoped-tool-registry.ts:49`** — `checkPermission` passes empty `{}` instead of actual tool params to `onConfirmation` callback. Fix: pass `validated` params.
**`token-budget.ts:14`** — `_childBudget` in orchestrator.ts:141 is created but never used. Sub-plan budget enforcement not wired up. Fix: wire forked tracker into sub-plan execution.

Timeline

9 events
March 2026
docs
docs: install workflow orchestration in CLAUDE.md
Mar 28static-
chore
chore: rename package from two-layer-cake-monorepo to two-layer-cake
Mar 28static-
docs
docs: add verified code review findings to roadmap
Mar 25static-
February 2026
commit
Release v1.0.0: version bump, examples, and release workflow hardening (Phase 6)
Feb 26static-
commit
Add test coverage for agent-runner, built-in agents, http-fetch, and expand orchestrator/DAG executor tests (Phase 5)
Feb 26static-
commit
Add adapter hardening with retry, timeouts, and error classification (Phase 4)
Feb 26static-
commit
Add code robustness hardening (Phase 3)
Feb 25static-
commit
Add project infrastructure, CI/CD, and release automation (Phases 1-2)
Feb 25static-
commit
Initial implementation of two-layer-cake SDK
Feb 10static-