indusagi-coding-agent 0.1.42 → 0.1.43
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 +13 -2
- package/README.md +3 -0
- package/dist/command-line/args.js +1 -1
- package/dist/command-line/args.js.map +1 -1
- package/dist/command-line/login-handler.d.ts.map +1 -1
- package/dist/command-line/login-handler.js +7 -0
- package/dist/command-line/login-handler.js.map +1 -1
- package/dist/dev/observe-deep.d.ts +2 -0
- package/dist/dev/observe-deep.d.ts.map +1 -0
- package/dist/dev/observe-deep.js +333 -0
- package/dist/dev/observe-deep.js.map +1 -0
- package/dist/dev/observe-smoke.d.ts +2 -0
- package/dist/dev/observe-smoke.d.ts.map +1 -0
- package/dist/dev/observe-smoke.js +264 -0
- package/dist/dev/observe-smoke.js.map +1 -0
- package/dist/interfaces/terminal-ui/components/oauth-selector.d.ts.map +1 -1
- package/dist/interfaces/terminal-ui/components/oauth-selector.js +1 -0
- package/dist/interfaces/terminal-ui/components/oauth-selector.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +40 -18
- package/dist/main.js.map +1 -1
- package/dist/observe.d.ts +2 -0
- package/dist/observe.d.ts.map +1 -0
- package/dist/observe.js +2 -0
- package/dist/observe.js.map +1 -0
- package/dist/runtime/agent-session.d.ts +11 -0
- package/dist/runtime/agent-session.d.ts.map +1 -1
- package/dist/runtime/agent-session.js +391 -201
- package/dist/runtime/agent-session.js.map +1 -1
- package/dist/runtime/model-resolver.d.ts.map +1 -1
- package/dist/runtime/model-resolver.js +1 -0
- package/dist/runtime/model-resolver.js.map +1 -1
- package/dist/runtime/observe.d.ts +50 -0
- package/dist/runtime/observe.d.ts.map +1 -0
- package/dist/runtime/observe.js +233 -0
- package/dist/runtime/observe.js.map +1 -0
- package/dist/runtime/sdk.d.ts +2 -0
- package/dist/runtime/sdk.d.ts.map +1 -1
- package/dist/runtime/sdk.js +19 -6
- package/dist/runtime/sdk.js.map +1 -1
- package/dist/vendor/observe/adapters/agent-event-adapter.d.ts +28 -0
- package/dist/vendor/observe/adapters/agent-event-adapter.d.ts.map +1 -0
- package/dist/vendor/observe/adapters/agent-event-adapter.js +136 -0
- package/dist/vendor/observe/adapters/agent-event-adapter.js.map +1 -0
- package/dist/vendor/observe/adapters/ai-stream-adapter.d.ts +24 -0
- package/dist/vendor/observe/adapters/ai-stream-adapter.d.ts.map +1 -0
- package/dist/vendor/observe/adapters/ai-stream-adapter.js +118 -0
- package/dist/vendor/observe/adapters/ai-stream-adapter.js.map +1 -0
- package/dist/vendor/observe/artifacts/content-store.d.ts +12 -0
- package/dist/vendor/observe/artifacts/content-store.d.ts.map +1 -0
- package/dist/vendor/observe/artifacts/content-store.js +2 -0
- package/dist/vendor/observe/artifacts/content-store.js.map +1 -0
- package/dist/vendor/observe/artifacts/file-content-store.d.ts +16 -0
- package/dist/vendor/observe/artifacts/file-content-store.d.ts.map +1 -0
- package/dist/vendor/observe/artifacts/file-content-store.js +43 -0
- package/dist/vendor/observe/artifacts/file-content-store.js.map +1 -0
- package/dist/vendor/observe/batcher.d.ts +27 -0
- package/dist/vendor/observe/batcher.d.ts.map +1 -0
- package/dist/vendor/observe/batcher.js +66 -0
- package/dist/vendor/observe/batcher.js.map +1 -0
- package/dist/vendor/observe/client/artifacts-manager.d.ts +29 -0
- package/dist/vendor/observe/client/artifacts-manager.d.ts.map +1 -0
- package/dist/vendor/observe/client/artifacts-manager.js +120 -0
- package/dist/vendor/observe/client/artifacts-manager.js.map +1 -0
- package/dist/vendor/observe/client/datasets-manager.d.ts +16 -0
- package/dist/vendor/observe/client/datasets-manager.d.ts.map +1 -0
- package/dist/vendor/observe/client/datasets-manager.js +27 -0
- package/dist/vendor/observe/client/datasets-manager.js.map +1 -0
- package/dist/vendor/observe/client/experiments-manager.d.ts +61 -0
- package/dist/vendor/observe/client/experiments-manager.d.ts.map +1 -0
- package/dist/vendor/observe/client/experiments-manager.js +132 -0
- package/dist/vendor/observe/client/experiments-manager.js.map +1 -0
- package/dist/vendor/observe/client/index.d.ts +9 -0
- package/dist/vendor/observe/client/index.d.ts.map +1 -0
- package/dist/vendor/observe/client/index.js +9 -0
- package/dist/vendor/observe/client/index.js.map +1 -0
- package/dist/vendor/observe/client/observe-client.d.ts +30 -0
- package/dist/vendor/observe/client/observe-client.d.ts.map +1 -0
- package/dist/vendor/observe/client/observe-client.js +22 -0
- package/dist/vendor/observe/client/observe-client.js.map +1 -0
- package/dist/vendor/observe/client/prompts-manager.d.ts +17 -0
- package/dist/vendor/observe/client/prompts-manager.d.ts.map +1 -0
- package/dist/vendor/observe/client/prompts-manager.js +38 -0
- package/dist/vendor/observe/client/prompts-manager.js.map +1 -0
- package/dist/vendor/observe/client/scores-manager.d.ts +10 -0
- package/dist/vendor/observe/client/scores-manager.d.ts.map +1 -0
- package/dist/vendor/observe/client/scores-manager.js +15 -0
- package/dist/vendor/observe/client/scores-manager.js.map +1 -0
- package/dist/vendor/observe/client/sessions-manager.d.ts +15 -0
- package/dist/vendor/observe/client/sessions-manager.d.ts.map +1 -0
- package/dist/vendor/observe/client/sessions-manager.js +24 -0
- package/dist/vendor/observe/client/sessions-manager.js.map +1 -0
- package/dist/vendor/observe/client/traces-manager.d.ts +23 -0
- package/dist/vendor/observe/client/traces-manager.d.ts.map +1 -0
- package/dist/vendor/observe/client/traces-manager.js +39 -0
- package/dist/vendor/observe/client/traces-manager.js.map +1 -0
- package/dist/vendor/observe/console-exporter.d.ts +11 -0
- package/dist/vendor/observe/console-exporter.d.ts.map +1 -0
- package/dist/vendor/observe/console-exporter.js +18 -0
- package/dist/vendor/observe/console-exporter.js.map +1 -0
- package/dist/vendor/observe/context.d.ts +4 -0
- package/dist/vendor/observe/context.d.ts.map +1 -0
- package/dist/vendor/observe/context.js +9 -0
- package/dist/vendor/observe/context.js.map +1 -0
- package/dist/vendor/observe/entities/artifacts.d.ts +46 -0
- package/dist/vendor/observe/entities/artifacts.d.ts.map +1 -0
- package/dist/vendor/observe/entities/artifacts.js +2 -0
- package/dist/vendor/observe/entities/artifacts.js.map +1 -0
- package/dist/vendor/observe/entities/datasets.d.ts +37 -0
- package/dist/vendor/observe/entities/datasets.d.ts.map +1 -0
- package/dist/vendor/observe/entities/datasets.js +2 -0
- package/dist/vendor/observe/entities/datasets.js.map +1 -0
- package/dist/vendor/observe/entities/experiments.d.ts +66 -0
- package/dist/vendor/observe/entities/experiments.d.ts.map +1 -0
- package/dist/vendor/observe/entities/experiments.js +2 -0
- package/dist/vendor/observe/entities/experiments.js.map +1 -0
- package/dist/vendor/observe/entities/index.d.ts +9 -0
- package/dist/vendor/observe/entities/index.d.ts.map +1 -0
- package/dist/vendor/observe/entities/index.js +9 -0
- package/dist/vendor/observe/entities/index.js.map +1 -0
- package/dist/vendor/observe/entities/prompts.d.ts +25 -0
- package/dist/vendor/observe/entities/prompts.d.ts.map +1 -0
- package/dist/vendor/observe/entities/prompts.js +2 -0
- package/dist/vendor/observe/entities/prompts.js.map +1 -0
- package/dist/vendor/observe/entities/scores.d.ts +28 -0
- package/dist/vendor/observe/entities/scores.d.ts.map +1 -0
- package/dist/vendor/observe/entities/scores.js +2 -0
- package/dist/vendor/observe/entities/scores.js.map +1 -0
- package/dist/vendor/observe/entities/sessions.d.ts +36 -0
- package/dist/vendor/observe/entities/sessions.d.ts.map +1 -0
- package/dist/vendor/observe/entities/sessions.js +2 -0
- package/dist/vendor/observe/entities/sessions.js.map +1 -0
- package/dist/vendor/observe/entities/shared.d.ts +26 -0
- package/dist/vendor/observe/entities/shared.d.ts.map +1 -0
- package/dist/vendor/observe/entities/shared.js +2 -0
- package/dist/vendor/observe/entities/shared.js.map +1 -0
- package/dist/vendor/observe/entities/traces.d.ts +59 -0
- package/dist/vendor/observe/entities/traces.d.ts.map +1 -0
- package/dist/vendor/observe/entities/traces.js +2 -0
- package/dist/vendor/observe/entities/traces.js.map +1 -0
- package/dist/vendor/observe/exporter.d.ts +2 -0
- package/dist/vendor/observe/exporter.d.ts.map +1 -0
- package/dist/vendor/observe/exporter.js +2 -0
- package/dist/vendor/observe/exporter.js.map +1 -0
- package/dist/vendor/observe/file-exporter.d.ts +16 -0
- package/dist/vendor/observe/file-exporter.d.ts.map +1 -0
- package/dist/vendor/observe/file-exporter.js +39 -0
- package/dist/vendor/observe/file-exporter.js.map +1 -0
- package/dist/vendor/observe/global.d.ts +6 -0
- package/dist/vendor/observe/global.d.ts.map +1 -0
- package/dist/vendor/observe/global.js +17 -0
- package/dist/vendor/observe/global.js.map +1 -0
- package/dist/vendor/observe/index.d.ts +24 -0
- package/dist/vendor/observe/index.d.ts.map +1 -0
- package/dist/vendor/observe/index.js +24 -0
- package/dist/vendor/observe/index.js.map +1 -0
- package/dist/vendor/observe/noop.d.ts +17 -0
- package/dist/vendor/observe/noop.d.ts.map +1 -0
- package/dist/vendor/observe/noop.js +80 -0
- package/dist/vendor/observe/noop.js.map +1 -0
- package/dist/vendor/observe/privacy.d.ts +18 -0
- package/dist/vendor/observe/privacy.d.ts.map +1 -0
- package/dist/vendor/observe/privacy.js +160 -0
- package/dist/vendor/observe/privacy.js.map +1 -0
- package/dist/vendor/observe/query/simple-query-client.d.ts +11 -0
- package/dist/vendor/observe/query/simple-query-client.d.ts.map +1 -0
- package/dist/vendor/observe/query/simple-query-client.js +31 -0
- package/dist/vendor/observe/query/simple-query-client.js.map +1 -0
- package/dist/vendor/observe/replay/session-replay.d.ts +20 -0
- package/dist/vendor/observe/replay/session-replay.d.ts.map +1 -0
- package/dist/vendor/observe/replay/session-replay.js +180 -0
- package/dist/vendor/observe/replay/session-replay.js.map +1 -0
- package/dist/vendor/observe/runtime.d.ts +27 -0
- package/dist/vendor/observe/runtime.d.ts.map +1 -0
- package/dist/vendor/observe/runtime.js +177 -0
- package/dist/vendor/observe/runtime.js.map +1 -0
- package/dist/vendor/observe/server/dashboard-html.d.ts +6 -0
- package/dist/vendor/observe/server/dashboard-html.d.ts.map +1 -0
- package/dist/vendor/observe/server/dashboard-html.js +305 -0
- package/dist/vendor/observe/server/dashboard-html.js.map +1 -0
- package/dist/vendor/observe/server/http-observe-server.d.ts +62 -0
- package/dist/vendor/observe/server/http-observe-server.d.ts.map +1 -0
- package/dist/vendor/observe/server/http-observe-server.js +418 -0
- package/dist/vendor/observe/server/http-observe-server.js.map +1 -0
- package/dist/vendor/observe/server/in-memory-observe-server.d.ts +20 -0
- package/dist/vendor/observe/server/in-memory-observe-server.d.ts.map +1 -0
- package/dist/vendor/observe/server/in-memory-observe-server.js +76 -0
- package/dist/vendor/observe/server/in-memory-observe-server.js.map +1 -0
- package/dist/vendor/observe/span.d.ts +45 -0
- package/dist/vendor/observe/span.d.ts.map +1 -0
- package/dist/vendor/observe/span.js +110 -0
- package/dist/vendor/observe/span.js.map +1 -0
- package/dist/vendor/observe/store/contracts.d.ts +59 -0
- package/dist/vendor/observe/store/contracts.d.ts.map +1 -0
- package/dist/vendor/observe/store/contracts.js +2 -0
- package/dist/vendor/observe/store/contracts.js.map +1 -0
- package/dist/vendor/observe/store/file-control-plane-store.d.ts +33 -0
- package/dist/vendor/observe/store/file-control-plane-store.d.ts.map +1 -0
- package/dist/vendor/observe/store/file-control-plane-store.js +146 -0
- package/dist/vendor/observe/store/file-control-plane-store.js.map +1 -0
- package/dist/vendor/observe/store/in-memory-control-plane-store.d.ts +84 -0
- package/dist/vendor/observe/store/in-memory-control-plane-store.d.ts.map +1 -0
- package/dist/vendor/observe/store/in-memory-control-plane-store.js +447 -0
- package/dist/vendor/observe/store/in-memory-control-plane-store.js.map +1 -0
- package/dist/vendor/observe/store/index.d.ts +4 -0
- package/dist/vendor/observe/store/index.d.ts.map +1 -0
- package/dist/vendor/observe/store/index.js +4 -0
- package/dist/vendor/observe/store/index.js.map +1 -0
- package/dist/vendor/observe/types.d.ts +246 -0
- package/dist/vendor/observe/types.d.ts.map +1 -0
- package/dist/vendor/observe/types.js +152 -0
- package/dist/vendor/observe/types.js.map +1 -0
- package/dist/vendor/observe/worker/in-memory-observe-worker.d.ts +25 -0
- package/dist/vendor/observe/worker/in-memory-observe-worker.d.ts.map +1 -0
- package/dist/vendor/observe/worker/in-memory-observe-worker.js +82 -0
- package/dist/vendor/observe/worker/in-memory-observe-worker.js.map +1 -0
- package/guides/INDUSVX_OBSERVE_FULL_INTEGRATION_REPORT.md +543 -0
- package/guides/OBSERVE_DEEP_VALIDATION.md +252 -0
- package/guides/OBSERVE_LOCAL_TESTING.md +183 -0
- package/package.json +11 -4
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { normalizeObserveAttributes, normalizeObserveData } from "./types.js";
|
|
2
|
+
function normalizeError(error) {
|
|
3
|
+
if (error instanceof Error) {
|
|
4
|
+
return {
|
|
5
|
+
name: error.name,
|
|
6
|
+
message: error.message,
|
|
7
|
+
stack: error.stack ?? null,
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
return normalizeObserveData(error) ?? "Unknown error";
|
|
11
|
+
}
|
|
12
|
+
export class ObserveSpanImpl {
|
|
13
|
+
constructor(init, hooks) {
|
|
14
|
+
this.status = "ok";
|
|
15
|
+
this.ended = false;
|
|
16
|
+
this.name = init.name;
|
|
17
|
+
this.kind = init.kind;
|
|
18
|
+
this.context = init.context;
|
|
19
|
+
this.isRoot = init.isRoot;
|
|
20
|
+
this.input = init.input;
|
|
21
|
+
this.attributes = normalizeObserveAttributes(init.attributes);
|
|
22
|
+
this.startTime = init.startTime;
|
|
23
|
+
this.hooks = hooks;
|
|
24
|
+
this.emitTraceRecord = init.emitTraceRecord;
|
|
25
|
+
this.traceMetadata = normalizeObserveAttributes(init.traceMetadata);
|
|
26
|
+
this.traceTags = init.traceTags?.slice();
|
|
27
|
+
}
|
|
28
|
+
get isEnded() {
|
|
29
|
+
return this.ended;
|
|
30
|
+
}
|
|
31
|
+
addEvent(options) {
|
|
32
|
+
const time = options.time ?? this.hooks.now();
|
|
33
|
+
const record = {
|
|
34
|
+
id: this.context.traceId + ":" + this.context.spanId + ":event:" + String(time) + ":" + options.name,
|
|
35
|
+
recordType: "event",
|
|
36
|
+
ts: time,
|
|
37
|
+
traceId: this.context.traceId,
|
|
38
|
+
spanId: this.context.spanId,
|
|
39
|
+
parentSpanId: this.context.parentSpanId,
|
|
40
|
+
name: options.name,
|
|
41
|
+
kind: options.kind ?? "custom",
|
|
42
|
+
source: "runtime",
|
|
43
|
+
time,
|
|
44
|
+
attributes: normalizeObserveAttributes(options.attributes),
|
|
45
|
+
data: normalizeObserveData(options.data),
|
|
46
|
+
};
|
|
47
|
+
this.hooks.emitEvent(record);
|
|
48
|
+
return record;
|
|
49
|
+
}
|
|
50
|
+
setAttribute(key, value) {
|
|
51
|
+
if (this.ended)
|
|
52
|
+
return;
|
|
53
|
+
const normalized = normalizeObserveData(value);
|
|
54
|
+
if (normalized === undefined)
|
|
55
|
+
return;
|
|
56
|
+
this.attributes = this.attributes ?? {};
|
|
57
|
+
this.attributes[key] = normalized;
|
|
58
|
+
}
|
|
59
|
+
createChild(options) {
|
|
60
|
+
return this.hooks.startChild({ ...options, parent: this });
|
|
61
|
+
}
|
|
62
|
+
end(options) {
|
|
63
|
+
if (this.ended) {
|
|
64
|
+
return this.createRecord(options?.endTime ?? this.hooks.now());
|
|
65
|
+
}
|
|
66
|
+
this.ended = true;
|
|
67
|
+
this.status = options?.status ?? (options?.error ? "error" : this.status);
|
|
68
|
+
const attrs = normalizeObserveAttributes(options?.attributes);
|
|
69
|
+
if (attrs) {
|
|
70
|
+
this.attributes = { ...(this.attributes ?? {}), ...attrs };
|
|
71
|
+
}
|
|
72
|
+
this.output = options?.output !== undefined ? normalizeObserveData(options.output) : this.output;
|
|
73
|
+
this.error = options?.error !== undefined ? normalizeObserveData(options.error) : this.error;
|
|
74
|
+
if (this.error !== undefined && this.status === "ok") {
|
|
75
|
+
this.status = "error";
|
|
76
|
+
}
|
|
77
|
+
const record = this.createRecord(options?.endTime ?? this.hooks.now());
|
|
78
|
+
this.hooks.emitEnd(this, record);
|
|
79
|
+
return record;
|
|
80
|
+
}
|
|
81
|
+
fail(error, options) {
|
|
82
|
+
return this.end({
|
|
83
|
+
...options,
|
|
84
|
+
status: "error",
|
|
85
|
+
error: normalizeError(error),
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
createRecord(endTime) {
|
|
89
|
+
return {
|
|
90
|
+
id: this.context.spanId,
|
|
91
|
+
recordType: "span",
|
|
92
|
+
ts: endTime,
|
|
93
|
+
traceId: this.context.traceId,
|
|
94
|
+
spanId: this.context.spanId,
|
|
95
|
+
parentSpanId: this.context.parentSpanId,
|
|
96
|
+
name: this.name,
|
|
97
|
+
kind: this.kind,
|
|
98
|
+
source: "runtime",
|
|
99
|
+
status: this.status,
|
|
100
|
+
startTime: this.startTime,
|
|
101
|
+
endTime,
|
|
102
|
+
durationMs: Math.max(0, endTime - this.startTime),
|
|
103
|
+
attributes: normalizeObserveAttributes(this.attributes),
|
|
104
|
+
input: this.input,
|
|
105
|
+
output: this.output,
|
|
106
|
+
error: this.error,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=span.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"span.js","sourceRoot":"","sources":["../../../app/vendor/observe/span.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { CreateObserveArtifactInput, CreateObserveDatasetInput, CreateObserveDatasetItemInput, CreateObserveExperimentInput, CreateObserveScoreInput, CreateObserveSessionInput, CreateObserveTraceInput, IngestObserveTraceRecordInput, ObserveArtifact, ObserveArtifactFilter, ObserveDataset, ObserveDatasetFilter, ObserveDatasetItem, ObserveDatasetItemFilter, ObserveExperiment, ObserveExperimentFilter, ObserveExperimentRun, ObserveExperimentRunFilter, ObservePrompt, ObservePromptFilter, ObserveScore, ObserveScoreFilter, ObserveSession, ObserveSessionFilter, ObserveTrace, ObserveTraceFilter, PublishObservePromptInput, StartObserveExperimentRunInput, UpdateObserveExperimentInput, UpdateObserveExperimentRunInput, UpdateObserveSessionInput, UpdateObserveTraceInput } from "../entities/index.js";
|
|
2
|
+
export interface ObserveSessionsStore {
|
|
3
|
+
create(input: CreateObserveSessionInput): Promise<ObserveSession>;
|
|
4
|
+
get(id: string): Promise<ObserveSession | undefined>;
|
|
5
|
+
list(filter?: ObserveSessionFilter): Promise<ObserveSession[]>;
|
|
6
|
+
update(id: string, patch: UpdateObserveSessionInput): Promise<ObserveSession>;
|
|
7
|
+
}
|
|
8
|
+
export interface ObserveTracesStore {
|
|
9
|
+
create(input: CreateObserveTraceInput): Promise<ObserveTrace>;
|
|
10
|
+
ingest(input: IngestObserveTraceRecordInput): Promise<ObserveTrace>;
|
|
11
|
+
get(id: string): Promise<ObserveTrace | undefined>;
|
|
12
|
+
list(filter?: ObserveTraceFilter): Promise<ObserveTrace[]>;
|
|
13
|
+
update(id: string, patch: UpdateObserveTraceInput): Promise<ObserveTrace>;
|
|
14
|
+
}
|
|
15
|
+
export interface ObserveArtifactsStore {
|
|
16
|
+
create(input: CreateObserveArtifactInput): Promise<ObserveArtifact>;
|
|
17
|
+
get(id: string): Promise<ObserveArtifact | undefined>;
|
|
18
|
+
list(filter?: ObserveArtifactFilter): Promise<ObserveArtifact[]>;
|
|
19
|
+
}
|
|
20
|
+
export interface ObservePromptsStore {
|
|
21
|
+
publish(input: PublishObservePromptInput): Promise<ObservePrompt>;
|
|
22
|
+
get(id: string): Promise<ObservePrompt | undefined>;
|
|
23
|
+
list(filter?: ObservePromptFilter): Promise<ObservePrompt[]>;
|
|
24
|
+
resolve(name: string, ref?: {
|
|
25
|
+
version?: string;
|
|
26
|
+
label?: string;
|
|
27
|
+
}): Promise<ObservePrompt | undefined>;
|
|
28
|
+
}
|
|
29
|
+
export interface ObserveDatasetsStore {
|
|
30
|
+
create(input: CreateObserveDatasetInput): Promise<ObserveDataset>;
|
|
31
|
+
get(id: string): Promise<ObserveDataset | undefined>;
|
|
32
|
+
list(filter?: ObserveDatasetFilter): Promise<ObserveDataset[]>;
|
|
33
|
+
createItems(datasetId: string, items: CreateObserveDatasetItemInput[]): Promise<ObserveDatasetItem[]>;
|
|
34
|
+
listItems(filter?: ObserveDatasetItemFilter): Promise<ObserveDatasetItem[]>;
|
|
35
|
+
}
|
|
36
|
+
export interface ObserveExperimentsStore {
|
|
37
|
+
create(input: CreateObserveExperimentInput): Promise<ObserveExperiment>;
|
|
38
|
+
get(id: string): Promise<ObserveExperiment | undefined>;
|
|
39
|
+
list(filter?: ObserveExperimentFilter): Promise<ObserveExperiment[]>;
|
|
40
|
+
update(id: string, patch: UpdateObserveExperimentInput): Promise<ObserveExperiment>;
|
|
41
|
+
startRun(input: StartObserveExperimentRunInput): Promise<ObserveExperimentRun>;
|
|
42
|
+
updateRun(id: string, patch: UpdateObserveExperimentRunInput): Promise<ObserveExperimentRun>;
|
|
43
|
+
listRuns(filter?: ObserveExperimentRunFilter): Promise<ObserveExperimentRun[]>;
|
|
44
|
+
}
|
|
45
|
+
export interface ObserveScoresStore {
|
|
46
|
+
create(input: CreateObserveScoreInput): Promise<ObserveScore>;
|
|
47
|
+
get(id: string): Promise<ObserveScore | undefined>;
|
|
48
|
+
list(filter?: ObserveScoreFilter): Promise<ObserveScore[]>;
|
|
49
|
+
}
|
|
50
|
+
export interface ObserveControlPlaneStore {
|
|
51
|
+
sessions: ObserveSessionsStore;
|
|
52
|
+
traces: ObserveTracesStore;
|
|
53
|
+
artifacts: ObserveArtifactsStore;
|
|
54
|
+
prompts: ObservePromptsStore;
|
|
55
|
+
datasets: ObserveDatasetsStore;
|
|
56
|
+
experiments: ObserveExperimentsStore;
|
|
57
|
+
scores: ObserveScoresStore;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../../app/vendor/observe/store/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,6BAA6B,EAC7B,4BAA4B,EAC5B,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,6BAA6B,EAC7B,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAC1B,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAClB,yBAAyB,EACzB,8BAA8B,EAC9B,4BAA4B,EAC5B,+BAA+B,EAC/B,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAClE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/D,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CAC/E;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9D,MAAM,CAAC,KAAK,EAAE,6BAA6B,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACpE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;IACnD,IAAI,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC3D,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAC3E;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACpE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;CAClE;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAClE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC7D,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;CACvG;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAClE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/D,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,6BAA6B,EAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACtG,SAAS,CAAC,MAAM,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;CAC7E;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,KAAK,EAAE,4BAA4B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACxE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACrE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,4BAA4B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACpF,QAAQ,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC/E,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,+BAA+B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC7F,QAAQ,CAAC,MAAM,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;CAChF;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9D,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;IACnD,IAAI,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,qBAAqB,CAAC;IACjC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,WAAW,EAAE,uBAAuB,CAAC;IACrC,MAAM,EAAE,kBAAkB,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../../app/vendor/observe/store/contracts.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ObserveArtifactsStore, ObserveControlPlaneStore, ObserveDatasetsStore, ObserveExperimentsStore, ObservePromptsStore, ObserveScoresStore, ObserveSessionsStore, ObserveTracesStore } from "./contracts.js";
|
|
2
|
+
import { type InMemoryObserveControlPlaneStoreOptions, type ObserveControlPlaneSnapshot } from "./in-memory-control-plane-store.js";
|
|
3
|
+
export interface FileObserveControlPlaneStoreOptions extends Omit<InMemoryObserveControlPlaneStoreOptions, "snapshot"> {
|
|
4
|
+
path: string;
|
|
5
|
+
}
|
|
6
|
+
export declare class FileObserveControlPlaneStore implements ObserveControlPlaneStore {
|
|
7
|
+
readonly path: string;
|
|
8
|
+
private readonly options;
|
|
9
|
+
private store?;
|
|
10
|
+
private readonly initPromise;
|
|
11
|
+
private writeQueue;
|
|
12
|
+
constructor(options: FileObserveControlPlaneStoreOptions);
|
|
13
|
+
readonly sessions: ObserveSessionsStore;
|
|
14
|
+
readonly traces: ObserveTracesStore;
|
|
15
|
+
readonly artifacts: ObserveArtifactsStore;
|
|
16
|
+
readonly prompts: ObservePromptsStore;
|
|
17
|
+
readonly datasets: ObserveDatasetsStore;
|
|
18
|
+
readonly experiments: ObserveExperimentsStore;
|
|
19
|
+
readonly scores: ObserveScoresStore;
|
|
20
|
+
flush(): Promise<void>;
|
|
21
|
+
snapshot(): Promise<ObserveControlPlaneSnapshot>;
|
|
22
|
+
private withStore;
|
|
23
|
+
private mutate;
|
|
24
|
+
private load;
|
|
25
|
+
private getStore;
|
|
26
|
+
private enqueuePersist;
|
|
27
|
+
private persist;
|
|
28
|
+
private readSnapshot;
|
|
29
|
+
private isEnvelope;
|
|
30
|
+
private isSnapshot;
|
|
31
|
+
private isMissingFileError;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=file-control-plane-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-control-plane-store.d.ts","sourceRoot":"","sources":["../../../../app/vendor/observe/store/file-control-plane-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,KAAK,uCAAuC,EAC5C,KAAK,2BAA2B,EACjC,MAAM,oCAAoC,CAAC;AAO5C,MAAM,WAAW,mCACf,SAAQ,IAAI,CAAC,uCAAuC,EAAE,UAAU,CAAC;IACjE,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,4BAA6B,YAAW,wBAAwB;IAC3E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoD;IAC5E,OAAO,CAAC,KAAK,CAAC,CAAmC;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;IAC5C,OAAO,CAAC,UAAU,CAAoC;gBAE1C,OAAO,EAAE,mCAAmC;IASxD,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAKrC;IAEF,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAMjC;IAEF,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAIvC;IAEF,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAKnC;IAEF,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAMrC;IAEF,QAAQ,CAAC,WAAW,EAAE,uBAAuB,CAQ3C;IAEF,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAIjC;IAEI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,QAAQ,IAAI,OAAO,CAAC,2BAA2B,CAAC;YAIxC,SAAS;YAKT,MAAM;YAON,IAAI;IAQlB,OAAO,CAAC,QAAQ;YAOF,cAAc;YAKd,OAAO;YAWP,YAAY;IAmB1B,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,kBAAkB;CAG3B"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { mkdir, readFile, rename, writeFile } from "node:fs/promises";
|
|
2
|
+
import { dirname } from "node:path";
|
|
3
|
+
import { InMemoryObserveControlPlaneStore, } from "./in-memory-control-plane-store.js";
|
|
4
|
+
export class FileObserveControlPlaneStore {
|
|
5
|
+
constructor(options) {
|
|
6
|
+
this.writeQueue = Promise.resolve();
|
|
7
|
+
this.sessions = {
|
|
8
|
+
create: async (input) => this.mutate((store) => store.sessions.create(input)),
|
|
9
|
+
get: async (id) => this.withStore((store) => store.sessions.get(id)),
|
|
10
|
+
list: async (filter) => this.withStore((store) => store.sessions.list(filter)),
|
|
11
|
+
update: async (id, patch) => this.mutate((store) => store.sessions.update(id, patch)),
|
|
12
|
+
};
|
|
13
|
+
this.traces = {
|
|
14
|
+
create: async (input) => this.mutate((store) => store.traces.create(input)),
|
|
15
|
+
ingest: async (input) => this.mutate((store) => store.traces.ingest(input)),
|
|
16
|
+
get: async (id) => this.withStore((store) => store.traces.get(id)),
|
|
17
|
+
list: async (filter) => this.withStore((store) => store.traces.list(filter)),
|
|
18
|
+
update: async (id, patch) => this.mutate((store) => store.traces.update(id, patch)),
|
|
19
|
+
};
|
|
20
|
+
this.artifacts = {
|
|
21
|
+
create: async (input) => this.mutate((store) => store.artifacts.create(input)),
|
|
22
|
+
get: async (id) => this.withStore((store) => store.artifacts.get(id)),
|
|
23
|
+
list: async (filter) => this.withStore((store) => store.artifacts.list(filter)),
|
|
24
|
+
};
|
|
25
|
+
this.prompts = {
|
|
26
|
+
publish: async (input) => this.mutate((store) => store.prompts.publish(input)),
|
|
27
|
+
get: async (id) => this.withStore((store) => store.prompts.get(id)),
|
|
28
|
+
list: async (filter) => this.withStore((store) => store.prompts.list(filter)),
|
|
29
|
+
resolve: async (name, ref) => this.withStore((store) => store.prompts.resolve(name, ref)),
|
|
30
|
+
};
|
|
31
|
+
this.datasets = {
|
|
32
|
+
create: async (input) => this.mutate((store) => store.datasets.create(input)),
|
|
33
|
+
get: async (id) => this.withStore((store) => store.datasets.get(id)),
|
|
34
|
+
list: async (filter) => this.withStore((store) => store.datasets.list(filter)),
|
|
35
|
+
createItems: async (datasetId, items) => this.mutate((store) => store.datasets.createItems(datasetId, items)),
|
|
36
|
+
listItems: async (filter) => this.withStore((store) => store.datasets.listItems(filter)),
|
|
37
|
+
};
|
|
38
|
+
this.experiments = {
|
|
39
|
+
create: async (input) => this.mutate((store) => store.experiments.create(input)),
|
|
40
|
+
get: async (id) => this.withStore((store) => store.experiments.get(id)),
|
|
41
|
+
list: async (filter) => this.withStore((store) => store.experiments.list(filter)),
|
|
42
|
+
update: async (id, patch) => this.mutate((store) => store.experiments.update(id, patch)),
|
|
43
|
+
startRun: async (input) => this.mutate((store) => store.experiments.startRun(input)),
|
|
44
|
+
updateRun: async (id, patch) => this.mutate((store) => store.experiments.updateRun(id, patch)),
|
|
45
|
+
listRuns: async (filter) => this.withStore((store) => store.experiments.listRuns(filter)),
|
|
46
|
+
};
|
|
47
|
+
this.scores = {
|
|
48
|
+
create: async (input) => this.mutate((store) => store.scores.create(input)),
|
|
49
|
+
get: async (id) => this.withStore((store) => store.scores.get(id)),
|
|
50
|
+
list: async (filter) => this.withStore((store) => store.scores.list(filter)),
|
|
51
|
+
};
|
|
52
|
+
this.path = options.path;
|
|
53
|
+
this.options = {
|
|
54
|
+
now: options.now,
|
|
55
|
+
idGenerator: options.idGenerator,
|
|
56
|
+
};
|
|
57
|
+
this.initPromise = this.load();
|
|
58
|
+
}
|
|
59
|
+
async flush() {
|
|
60
|
+
await this.initPromise;
|
|
61
|
+
await this.writeQueue;
|
|
62
|
+
}
|
|
63
|
+
async snapshot() {
|
|
64
|
+
return this.withStore((store) => store.snapshot());
|
|
65
|
+
}
|
|
66
|
+
async withStore(fn) {
|
|
67
|
+
await this.initPromise;
|
|
68
|
+
return fn(this.getStore());
|
|
69
|
+
}
|
|
70
|
+
async mutate(fn) {
|
|
71
|
+
await this.initPromise;
|
|
72
|
+
const result = await fn(this.getStore());
|
|
73
|
+
await this.enqueuePersist();
|
|
74
|
+
return result;
|
|
75
|
+
}
|
|
76
|
+
async load() {
|
|
77
|
+
const snapshot = await this.readSnapshot();
|
|
78
|
+
this.store = new InMemoryObserveControlPlaneStore({
|
|
79
|
+
...this.options,
|
|
80
|
+
snapshot,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
getStore() {
|
|
84
|
+
if (!this.store) {
|
|
85
|
+
throw new Error("Observe file store not initialized");
|
|
86
|
+
}
|
|
87
|
+
return this.store;
|
|
88
|
+
}
|
|
89
|
+
async enqueuePersist() {
|
|
90
|
+
this.writeQueue = this.writeQueue.then(() => this.persist());
|
|
91
|
+
await this.writeQueue;
|
|
92
|
+
}
|
|
93
|
+
async persist() {
|
|
94
|
+
const envelope = {
|
|
95
|
+
version: 1,
|
|
96
|
+
snapshot: this.getStore().snapshot(),
|
|
97
|
+
};
|
|
98
|
+
const tempPath = `${this.path}.tmp`;
|
|
99
|
+
await mkdir(dirname(this.path), { recursive: true });
|
|
100
|
+
await writeFile(tempPath, JSON.stringify(envelope, null, 2), "utf8");
|
|
101
|
+
await rename(tempPath, this.path);
|
|
102
|
+
}
|
|
103
|
+
async readSnapshot() {
|
|
104
|
+
try {
|
|
105
|
+
const raw = await readFile(this.path, "utf8");
|
|
106
|
+
const parsed = JSON.parse(raw);
|
|
107
|
+
if (this.isEnvelope(parsed)) {
|
|
108
|
+
return parsed.snapshot;
|
|
109
|
+
}
|
|
110
|
+
if (this.isSnapshot(parsed)) {
|
|
111
|
+
return parsed;
|
|
112
|
+
}
|
|
113
|
+
throw new Error(`Invalid Observe control-plane store file: ${this.path}`);
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
if (this.isMissingFileError(error)) {
|
|
117
|
+
return undefined;
|
|
118
|
+
}
|
|
119
|
+
throw error;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
isEnvelope(value) {
|
|
123
|
+
if (!value || typeof value !== "object")
|
|
124
|
+
return false;
|
|
125
|
+
const candidate = value;
|
|
126
|
+
return candidate.version === 1 && this.isSnapshot(candidate.snapshot);
|
|
127
|
+
}
|
|
128
|
+
isSnapshot(value) {
|
|
129
|
+
if (!value || typeof value !== "object")
|
|
130
|
+
return false;
|
|
131
|
+
const candidate = value;
|
|
132
|
+
return (Array.isArray(candidate.sessions) &&
|
|
133
|
+
Array.isArray(candidate.traces) &&
|
|
134
|
+
Array.isArray(candidate.artifacts) &&
|
|
135
|
+
Array.isArray(candidate.prompts) &&
|
|
136
|
+
Array.isArray(candidate.datasets) &&
|
|
137
|
+
Array.isArray(candidate.datasetItems) &&
|
|
138
|
+
Array.isArray(candidate.experiments) &&
|
|
139
|
+
Array.isArray(candidate.experimentRuns) &&
|
|
140
|
+
Array.isArray(candidate.scores));
|
|
141
|
+
}
|
|
142
|
+
isMissingFileError(error) {
|
|
143
|
+
return !!error && typeof error === "object" && "code" in error && error.code === "ENOENT";
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=file-control-plane-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-control-plane-store.js","sourceRoot":"","sources":["../../../../app/vendor/observe/store/file-control-plane-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { ObserveControlPlaneStore } from "./contracts.js";
|
|
2
|
+
import type { CreateObserveArtifactInput, CreateObserveDatasetInput, CreateObserveDatasetItemInput, CreateObserveExperimentInput, CreateObserveScoreInput, CreateObserveSessionInput, CreateObserveTraceInput, IngestObserveTraceRecordInput, ObserveArtifact, ObserveArtifactFilter, ObserveDataset, ObserveDatasetFilter, ObserveDatasetItem, ObserveDatasetItemFilter, ObserveExperiment, ObserveExperimentFilter, ObserveExperimentRun, ObserveExperimentRunFilter, ObservePrompt, ObservePromptFilter, ObserveScore, ObserveScoreFilter, ObserveSession, ObserveSessionFilter, ObserveTrace, ObserveTraceFilter, PublishObservePromptInput, StartObserveExperimentRunInput, UpdateObserveExperimentInput, UpdateObserveExperimentRunInput, UpdateObserveSessionInput, UpdateObserveTraceInput } from "../entities/index.js";
|
|
3
|
+
export interface ObserveControlPlaneSnapshot {
|
|
4
|
+
sessions: ObserveSession[];
|
|
5
|
+
traces: ObserveTrace[];
|
|
6
|
+
artifacts: ObserveArtifact[];
|
|
7
|
+
prompts: ObservePrompt[];
|
|
8
|
+
datasets: ObserveDataset[];
|
|
9
|
+
datasetItems: ObserveDatasetItem[];
|
|
10
|
+
experiments: ObserveExperiment[];
|
|
11
|
+
experimentRuns: ObserveExperimentRun[];
|
|
12
|
+
scores: ObserveScore[];
|
|
13
|
+
}
|
|
14
|
+
export interface InMemoryObserveControlPlaneStoreOptions {
|
|
15
|
+
now?: () => number;
|
|
16
|
+
idGenerator?: () => string;
|
|
17
|
+
snapshot?: Partial<ObserveControlPlaneSnapshot>;
|
|
18
|
+
}
|
|
19
|
+
export declare class InMemoryObserveControlPlaneStore implements ObserveControlPlaneStore {
|
|
20
|
+
private readonly now;
|
|
21
|
+
private readonly idGenerator;
|
|
22
|
+
private readonly sessionsById;
|
|
23
|
+
private readonly tracesById;
|
|
24
|
+
private readonly artifactsById;
|
|
25
|
+
private readonly promptsById;
|
|
26
|
+
private readonly datasetsById;
|
|
27
|
+
private readonly datasetItemsById;
|
|
28
|
+
private readonly experimentsById;
|
|
29
|
+
private readonly experimentRunsById;
|
|
30
|
+
private readonly scoresById;
|
|
31
|
+
constructor(options?: InMemoryObserveControlPlaneStoreOptions);
|
|
32
|
+
snapshot(): ObserveControlPlaneSnapshot;
|
|
33
|
+
readonly sessions: {
|
|
34
|
+
create: (input: CreateObserveSessionInput) => Promise<ObserveSession>;
|
|
35
|
+
get: (id: string) => Promise<ObserveSession | undefined>;
|
|
36
|
+
list: (filter?: ObserveSessionFilter) => Promise<ObserveSession[]>;
|
|
37
|
+
update: (id: string, patch: UpdateObserveSessionInput) => Promise<ObserveSession>;
|
|
38
|
+
};
|
|
39
|
+
readonly traces: {
|
|
40
|
+
create: (input: CreateObserveTraceInput) => Promise<ObserveTrace>;
|
|
41
|
+
ingest: (input: IngestObserveTraceRecordInput) => Promise<ObserveTrace>;
|
|
42
|
+
get: (id: string) => Promise<ObserveTrace | undefined>;
|
|
43
|
+
list: (filter?: ObserveTraceFilter) => Promise<ObserveTrace[]>;
|
|
44
|
+
update: (id: string, patch: UpdateObserveTraceInput) => Promise<ObserveTrace>;
|
|
45
|
+
};
|
|
46
|
+
readonly artifacts: {
|
|
47
|
+
create: (input: CreateObserveArtifactInput) => Promise<ObserveArtifact>;
|
|
48
|
+
get: (id: string) => Promise<ObserveArtifact | undefined>;
|
|
49
|
+
list: (filter?: ObserveArtifactFilter) => Promise<ObserveArtifact[]>;
|
|
50
|
+
};
|
|
51
|
+
readonly prompts: {
|
|
52
|
+
publish: (input: PublishObservePromptInput) => Promise<ObservePrompt>;
|
|
53
|
+
get: (id: string) => Promise<ObservePrompt | undefined>;
|
|
54
|
+
list: (filter?: ObservePromptFilter) => Promise<ObservePrompt[]>;
|
|
55
|
+
resolve: (name: string, ref?: {
|
|
56
|
+
version?: string;
|
|
57
|
+
label?: string;
|
|
58
|
+
}) => Promise<ObservePrompt | undefined>;
|
|
59
|
+
};
|
|
60
|
+
readonly datasets: {
|
|
61
|
+
create: (input: CreateObserveDatasetInput) => Promise<ObserveDataset>;
|
|
62
|
+
get: (id: string) => Promise<ObserveDataset | undefined>;
|
|
63
|
+
list: (filter?: ObserveDatasetFilter) => Promise<ObserveDataset[]>;
|
|
64
|
+
createItems: (datasetId: string, items: CreateObserveDatasetItemInput[]) => Promise<ObserveDatasetItem[]>;
|
|
65
|
+
listItems: (filter?: ObserveDatasetItemFilter) => Promise<ObserveDatasetItem[]>;
|
|
66
|
+
};
|
|
67
|
+
readonly experiments: {
|
|
68
|
+
create: (input: CreateObserveExperimentInput) => Promise<ObserveExperiment>;
|
|
69
|
+
get: (id: string) => Promise<ObserveExperiment | undefined>;
|
|
70
|
+
list: (filter?: ObserveExperimentFilter) => Promise<ObserveExperiment[]>;
|
|
71
|
+
update: (id: string, patch: UpdateObserveExperimentInput) => Promise<ObserveExperiment>;
|
|
72
|
+
startRun: (input: StartObserveExperimentRunInput) => Promise<ObserveExperimentRun>;
|
|
73
|
+
updateRun: (id: string, patch: UpdateObserveExperimentRunInput) => Promise<ObserveExperimentRun>;
|
|
74
|
+
listRuns: (filter?: ObserveExperimentRunFilter) => Promise<ObserveExperimentRun[]>;
|
|
75
|
+
};
|
|
76
|
+
readonly scores: {
|
|
77
|
+
create: (input: CreateObserveScoreInput) => Promise<ObserveScore>;
|
|
78
|
+
get: (id: string) => Promise<ObserveScore | undefined>;
|
|
79
|
+
list: (filter?: ObserveScoreFilter) => Promise<ObserveScore[]>;
|
|
80
|
+
};
|
|
81
|
+
private filterValues;
|
|
82
|
+
private requireEntity;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=in-memory-control-plane-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-memory-control-plane-store.d.ts","sourceRoot":"","sources":["../../../../app/vendor/observe/store/in-memory-control-plane-store.ts"],"names":[],"mappings":"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"}
|