@ponraaj/dimple-sdk 0.0.0-alpha.12 → 0.0.0-alpha.14

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/dimple.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { Effect } from "effect";
2
+ import { type QueueStat } from "./internal/workflow/index.js";
2
3
  import type { QueryProfile } from "./internal/retriever/index.js";
3
4
  import type { CoreInterface } from "./internal/core/index.js";
4
5
  import type { CodeExtractor } from "./internal/extractor/index.js";
@@ -126,6 +127,18 @@ export interface ReloadResult {
126
127
  * Every method runs the underlying Effect at the boundary, remaps errors
127
128
  * onto the closed `DimpleError` hierarchy, and never leaks Effect types.
128
129
  */
130
+ /**
131
+ * `Dimple.health` — the topic-tree invariant sweep plus durable-queue drain
132
+ * state. `jobs` counts outstanding elements per job queue
133
+ * (`DurableQueue/<job name>`): offered and not yet finished — in-flight work
134
+ * included. The internal resume-signal queue is excluded (its rows outlive
135
+ * the work they point at), so an empty array genuinely means "everything
136
+ * drained". This is what answers "is the deferred index still embedding?"
137
+ * after `index({ deferEmbed: true })`.
138
+ */
139
+ export interface DimpleHealth extends TopicHealth {
140
+ readonly jobs: readonly QueueStat[];
141
+ }
129
142
  export interface Dimple {
130
143
  /** The config-default embedding model's key — what `dream`/`repair`/
131
144
  * `stats` use when no model is passed. */
@@ -179,10 +192,18 @@ export interface Dimple {
179
192
  readonly maxTotal?: number;
180
193
  readonly includePending?: boolean;
181
194
  }) => Promise<ExplainResult>;
182
- readonly health: (modelKey: string) => Promise<TopicHealth>;
195
+ /**
196
+ * Status report for one model's tree: the invariant sweep PLUS durable-queue
197
+ * drain state (`jobs`) — pending elements per queue, so callers can tell
198
+ * whether deferred work (index embeddings, splits, audit writes) is still in
199
+ * flight. `jobs: []` means every queue is empty.
200
+ */
201
+ readonly health: (modelKey: string) => Promise<DimpleHealth>;
183
202
  readonly graph: {
184
203
  readonly addEdge: (input: AddEdgeInput) => Promise<ArtifactEdge>;
185
- readonly candidates: () => Promise<GraphCandidatesResult>;
204
+ readonly candidates: (options?: {
205
+ readonly limit?: number;
206
+ }) => Promise<GraphCandidatesResult>;
186
207
  readonly coverage: (modelKey: string) => Promise<GraphCoverage>;
187
208
  /** Promote a pending edge to confirmed (for `memory_supersedes` the
188
209
  * old endpoint flips to superseded in the same transaction). */