@llm4ts/flow 0.1.0
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/LICENSE +21 -0
- package/README.md +41 -0
- package/dist/AzureDevOpsTool.d.ts +60 -0
- package/dist/AzureDevOpsTool.d.ts.map +1 -0
- package/dist/AzureDevOpsTool.js +163 -0
- package/dist/AzureDevOpsTool.js.map +1 -0
- package/dist/Bench.d.ts +133 -0
- package/dist/Bench.d.ts.map +1 -0
- package/dist/Bench.js +272 -0
- package/dist/Bench.js.map +1 -0
- package/dist/BenchReport.d.ts +9 -0
- package/dist/BenchReport.d.ts.map +1 -0
- package/dist/BenchReport.js +360 -0
- package/dist/BenchReport.js.map +1 -0
- package/dist/CapabilityGuard.d.ts +6 -0
- package/dist/CapabilityGuard.d.ts.map +1 -0
- package/dist/CapabilityGuard.js +25 -0
- package/dist/CapabilityGuard.js.map +1 -0
- package/dist/Chat.d.ts +15 -0
- package/dist/Chat.d.ts.map +1 -0
- package/dist/Chat.js +36 -0
- package/dist/Chat.js.map +1 -0
- package/dist/Classified.d.ts +14 -0
- package/dist/Classified.d.ts.map +1 -0
- package/dist/Classified.js +48 -0
- package/dist/Classified.js.map +1 -0
- package/dist/CostLedger.d.ts +55 -0
- package/dist/CostLedger.d.ts.map +1 -0
- package/dist/CostLedger.js +126 -0
- package/dist/CostLedger.js.map +1 -0
- package/dist/CostTracker.d.ts +13 -0
- package/dist/CostTracker.d.ts.map +1 -0
- package/dist/CostTracker.js +116 -0
- package/dist/CostTracker.js.map +1 -0
- package/dist/Equiv.d.ts +163 -0
- package/dist/Equiv.d.ts.map +1 -0
- package/dist/Equiv.js +256 -0
- package/dist/Equiv.js.map +1 -0
- package/dist/EquivReport.d.ts +16 -0
- package/dist/EquivReport.d.ts.map +1 -0
- package/dist/EquivReport.js +77 -0
- package/dist/EquivReport.js.map +1 -0
- package/dist/Flow.d.ts +25 -0
- package/dist/Flow.d.ts.map +1 -0
- package/dist/Flow.js +39 -0
- package/dist/Flow.js.map +1 -0
- package/dist/FlowContext.d.ts +23 -0
- package/dist/FlowContext.d.ts.map +1 -0
- package/dist/FlowContext.js +4 -0
- package/dist/FlowContext.js.map +1 -0
- package/dist/FlowError.d.ts +80 -0
- package/dist/FlowError.d.ts.map +1 -0
- package/dist/FlowError.js +92 -0
- package/dist/FlowError.js.map +1 -0
- package/dist/FlowEvents.d.ts +101 -0
- package/dist/FlowEvents.d.ts.map +1 -0
- package/dist/FlowEvents.js +103 -0
- package/dist/FlowEvents.js.map +1 -0
- package/dist/FlowRecorder.d.ts +26 -0
- package/dist/FlowRecorder.d.ts.map +1 -0
- package/dist/FlowRecorder.js +74 -0
- package/dist/FlowRecorder.js.map +1 -0
- package/dist/GitHubTool.d.ts +53 -0
- package/dist/GitHubTool.d.ts.map +1 -0
- package/dist/GitHubTool.js +191 -0
- package/dist/GitHubTool.js.map +1 -0
- package/dist/GitTool.d.ts +46 -0
- package/dist/GitTool.d.ts.map +1 -0
- package/dist/GitTool.js +97 -0
- package/dist/GitTool.js.map +1 -0
- package/dist/Interaction.d.ts +21 -0
- package/dist/Interaction.d.ts.map +1 -0
- package/dist/Interaction.js +9 -0
- package/dist/Interaction.js.map +1 -0
- package/dist/McpServer.d.ts +18 -0
- package/dist/McpServer.d.ts.map +1 -0
- package/dist/McpServer.js +122 -0
- package/dist/McpServer.js.map +1 -0
- package/dist/Mermaid.d.ts +7 -0
- package/dist/Mermaid.d.ts.map +1 -0
- package/dist/Mermaid.js +98 -0
- package/dist/Mermaid.js.map +1 -0
- package/dist/Pack.d.ts +40 -0
- package/dist/Pack.d.ts.map +1 -0
- package/dist/Pack.js +141 -0
- package/dist/Pack.js.map +1 -0
- package/dist/Package.d.ts +2 -0
- package/dist/Package.d.ts.map +1 -0
- package/dist/Package.js +2 -0
- package/dist/Package.js.map +1 -0
- package/dist/Persistence.d.ts +32 -0
- package/dist/Persistence.d.ts.map +1 -0
- package/dist/Persistence.js +85 -0
- package/dist/Persistence.js.map +1 -0
- package/dist/Plan.d.ts +26 -0
- package/dist/Plan.d.ts.map +1 -0
- package/dist/Plan.js +101 -0
- package/dist/Plan.js.map +1 -0
- package/dist/PlanExecution.d.ts +7 -0
- package/dist/PlanExecution.d.ts.map +1 -0
- package/dist/PlanExecution.js +19 -0
- package/dist/PlanExecution.js.map +1 -0
- package/dist/Planner.d.ts +32 -0
- package/dist/Planner.d.ts.map +1 -0
- package/dist/Planner.js +97 -0
- package/dist/Planner.js.map +1 -0
- package/dist/PrSummary.d.ts +15 -0
- package/dist/PrSummary.d.ts.map +1 -0
- package/dist/PrSummary.js +29 -0
- package/dist/PrSummary.js.map +1 -0
- package/dist/PriceList.d.ts +11 -0
- package/dist/PriceList.d.ts.map +1 -0
- package/dist/PriceList.js +79 -0
- package/dist/PriceList.js.map +1 -0
- package/dist/Provenance.d.ts +27 -0
- package/dist/Provenance.d.ts.map +1 -0
- package/dist/Provenance.js +38 -0
- package/dist/Provenance.js.map +1 -0
- package/dist/Replay.d.ts +29 -0
- package/dist/Replay.d.ts.map +1 -0
- package/dist/Replay.js +181 -0
- package/dist/Replay.js.map +1 -0
- package/dist/Review.d.ts +71 -0
- package/dist/Review.d.ts.map +1 -0
- package/dist/Review.js +204 -0
- package/dist/Review.js.map +1 -0
- package/dist/ReviewCache.d.ts +6 -0
- package/dist/ReviewCache.d.ts.map +1 -0
- package/dist/ReviewCache.js +28 -0
- package/dist/ReviewCache.js.map +1 -0
- package/dist/Reviewer.d.ts +12 -0
- package/dist/Reviewer.d.ts.map +1 -0
- package/dist/Reviewer.js +30 -0
- package/dist/Reviewer.js.map +1 -0
- package/dist/SpecChecks.d.ts +17 -0
- package/dist/SpecChecks.d.ts.map +1 -0
- package/dist/SpecChecks.js +107 -0
- package/dist/SpecChecks.js.map +1 -0
- package/dist/Survey.d.ts +32 -0
- package/dist/Survey.d.ts.map +1 -0
- package/dist/Survey.js +119 -0
- package/dist/Survey.js.map +1 -0
- package/dist/TransientRetry.d.ts +16 -0
- package/dist/TransientRetry.d.ts.map +1 -0
- package/dist/TransientRetry.js +102 -0
- package/dist/TransientRetry.js.map +1 -0
- package/dist/Workspace.d.ts +39 -0
- package/dist/Workspace.d.ts.map +1 -0
- package/dist/Workspace.js +192 -0
- package/dist/Workspace.js.map +1 -0
- package/dist/WorkspaceLayout.d.ts +3 -0
- package/dist/WorkspaceLayout.d.ts.map +1 -0
- package/dist/WorkspaceLayout.js +19 -0
- package/dist/WorkspaceLayout.js.map +1 -0
- package/dist/WorkspaceTools.d.ts +4 -0
- package/dist/WorkspaceTools.d.ts.map +1 -0
- package/dist/WorkspaceTools.js +130 -0
- package/dist/WorkspaceTools.js.map +1 -0
- package/package.json +91 -0
- package/src/AzureDevOpsTool.ts +291 -0
- package/src/Bench.ts +340 -0
- package/src/BenchReport.ts +447 -0
- package/src/CapabilityGuard.ts +43 -0
- package/src/Chat.ts +60 -0
- package/src/Classified.ts +67 -0
- package/src/CostLedger.ts +171 -0
- package/src/CostTracker.ts +170 -0
- package/src/Equiv.ts +378 -0
- package/src/EquivReport.ts +92 -0
- package/src/Flow.ts +72 -0
- package/src/FlowContext.ts +23 -0
- package/src/FlowError.ts +112 -0
- package/src/FlowEvents.ts +147 -0
- package/src/FlowRecorder.ts +116 -0
- package/src/GitHubTool.ts +315 -0
- package/src/GitTool.ts +214 -0
- package/src/Interaction.ts +23 -0
- package/src/McpServer.ts +168 -0
- package/src/Mermaid.ts +112 -0
- package/src/Pack.ts +213 -0
- package/src/Package.ts +1 -0
- package/src/Persistence.ts +198 -0
- package/src/Plan.ts +119 -0
- package/src/PlanExecution.ts +46 -0
- package/src/Planner.ts +134 -0
- package/src/PrSummary.ts +37 -0
- package/src/PriceList.ts +91 -0
- package/src/Provenance.ts +85 -0
- package/src/Replay.ts +265 -0
- package/src/Review.ts +337 -0
- package/src/ReviewCache.ts +45 -0
- package/src/Reviewer.ts +31 -0
- package/src/SpecChecks.ts +143 -0
- package/src/Survey.ts +144 -0
- package/src/TransientRetry.ts +238 -0
- package/src/Workspace.ts +255 -0
- package/src/WorkspaceLayout.ts +22 -0
- package/src/WorkspaceTools.ts +188 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as Context from "effect/Context";
|
|
2
|
+
import type { ConnectorCapabilities } from "@llm4ts/core/Models";
|
|
3
|
+
import type { LlmServiceShape } from "@llm4ts/core/LlmService";
|
|
4
|
+
import type { FlowEventsShape } from "./FlowEvents.ts";
|
|
5
|
+
import type { GitToolShape } from "./GitTool.ts";
|
|
6
|
+
import type { GitHubToolShape } from "./GitHubTool.ts";
|
|
7
|
+
export interface FlowContextShape {
|
|
8
|
+
readonly reasoning: LlmServiceShape;
|
|
9
|
+
readonly coder: LlmServiceShape;
|
|
10
|
+
readonly git: GitToolShape;
|
|
11
|
+
readonly hosting: GitHubToolShape;
|
|
12
|
+
readonly events: FlowEventsShape;
|
|
13
|
+
readonly reviewers: ReadonlyArray<LlmServiceShape>;
|
|
14
|
+
readonly coderCapabilities: ConnectorCapabilities;
|
|
15
|
+
readonly userPrompt: string;
|
|
16
|
+
readonly workDir: string;
|
|
17
|
+
readonly workspace: string;
|
|
18
|
+
}
|
|
19
|
+
declare const FlowContext_base: Context.ServiceClass<FlowContext, "@llm4ts/flow/FlowContext", FlowContextShape>;
|
|
20
|
+
export declare class FlowContext extends FlowContext_base {
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=FlowContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowContext.d.ts","sourceRoot":"","sources":["../src/FlowContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAA;IACnC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;IACjC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,eAAe,CAAC,CAAA;IAClD,QAAQ,CAAC,iBAAiB,EAAE,qBAAqB,CAAA;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;;AAED,qBAAa,WAAY,SAAQ,gBAEhC;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowContext.js","sourceRoot":"","sources":["../src/FlowContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAoBzC,MAAM,OAAO,WAAY,SAAQ,OAAO,CAAC,OAAO,EAAiC,CAC/E,0BAA0B,CAC3B;CAAG"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import * as Schema from "effect/Schema";
|
|
2
|
+
import { LlmError } from "@llm4ts/core/Errors";
|
|
3
|
+
declare const PersistenceError_base: Schema.Class<PersistenceError, Schema.TaggedStruct<"Persistence", {
|
|
4
|
+
readonly message: Schema.String;
|
|
5
|
+
readonly cause: Schema.optionalKey<Schema.Defect>;
|
|
6
|
+
}>, import("effect/Cause").YieldableError>;
|
|
7
|
+
export declare class PersistenceError extends PersistenceError_base {
|
|
8
|
+
}
|
|
9
|
+
declare const PlanParseError_base: Schema.Class<PlanParseError, Schema.TaggedStruct<"PlanParse", {
|
|
10
|
+
readonly message: Schema.String;
|
|
11
|
+
}>, import("effect/Cause").YieldableError>;
|
|
12
|
+
export declare class PlanParseError extends PlanParseError_base {
|
|
13
|
+
}
|
|
14
|
+
declare const UnsupportedSchemaVersion_base: Schema.Class<UnsupportedSchemaVersion, Schema.TaggedStruct<"UnsupportedSchemaVersion", {
|
|
15
|
+
readonly path: Schema.String;
|
|
16
|
+
readonly expected: Schema.Int;
|
|
17
|
+
readonly actual: Schema.Int;
|
|
18
|
+
}>, import("effect/Cause").YieldableError>;
|
|
19
|
+
export declare class UnsupportedSchemaVersion extends UnsupportedSchemaVersion_base {
|
|
20
|
+
get message(): string;
|
|
21
|
+
}
|
|
22
|
+
declare const WorkspacePathError_base: Schema.Class<WorkspacePathError, Schema.TaggedStruct<"WorkspacePath", {
|
|
23
|
+
readonly path: Schema.String;
|
|
24
|
+
readonly message: Schema.String;
|
|
25
|
+
}>, import("effect/Cause").YieldableError>;
|
|
26
|
+
export declare class WorkspacePathError extends WorkspacePathError_base {
|
|
27
|
+
}
|
|
28
|
+
declare const WorkspaceLimitError_base: Schema.Class<WorkspaceLimitError, Schema.TaggedStruct<"WorkspaceLimit", {
|
|
29
|
+
readonly operation: Schema.String;
|
|
30
|
+
readonly limit: Schema.Int;
|
|
31
|
+
readonly actual: Schema.Int;
|
|
32
|
+
}>, import("effect/Cause").YieldableError>;
|
|
33
|
+
export declare class WorkspaceLimitError extends WorkspaceLimitError_base {
|
|
34
|
+
get message(): string;
|
|
35
|
+
}
|
|
36
|
+
declare const WorkspaceIoError_base: Schema.Class<WorkspaceIoError, Schema.TaggedStruct<"WorkspaceIo", {
|
|
37
|
+
readonly operation: Schema.String;
|
|
38
|
+
readonly path: Schema.String;
|
|
39
|
+
readonly message: Schema.String;
|
|
40
|
+
readonly cause: Schema.optionalKey<Schema.Defect>;
|
|
41
|
+
}>, import("effect/Cause").YieldableError>;
|
|
42
|
+
export declare class WorkspaceIoError extends WorkspaceIoError_base {
|
|
43
|
+
}
|
|
44
|
+
declare const FlowAborted_base: Schema.Class<FlowAborted, Schema.TaggedStruct<"Aborted", {
|
|
45
|
+
readonly message: Schema.String;
|
|
46
|
+
}>, import("effect/Cause").YieldableError>;
|
|
47
|
+
export declare class FlowAborted extends FlowAborted_base {
|
|
48
|
+
}
|
|
49
|
+
declare const ProcessError_base: Schema.Class<ProcessError, Schema.TaggedStruct<"Process", {
|
|
50
|
+
readonly message: Schema.String;
|
|
51
|
+
readonly detail: Schema.String;
|
|
52
|
+
}>, import("effect/Cause").YieldableError>;
|
|
53
|
+
export declare class ProcessError extends ProcessError_base {
|
|
54
|
+
}
|
|
55
|
+
declare const FlowLlmError_base: Schema.Class<FlowLlmError, Schema.TaggedStruct<"Llm", {
|
|
56
|
+
readonly message: Schema.String;
|
|
57
|
+
readonly cause: Schema.optionalKey<Schema.Union<readonly [typeof import("@llm4ts/core/Errors").ProviderError, typeof import("@llm4ts/core/Errors").UsageLimitError, typeof import("@llm4ts/core/Errors").AuthenticationError, typeof import("@llm4ts/core/Errors").InvalidRequestError, typeof import("@llm4ts/core/Errors").ParseError, typeof import("@llm4ts/core/Errors").ToolError, typeof import("@llm4ts/core/Errors").ConfigError, typeof import("@llm4ts/core/Errors").RateLimitError, typeof import("@llm4ts/core/Errors").TimeoutError, typeof import("@llm4ts/core/Errors").TurnLimitError]>>;
|
|
58
|
+
}>, import("effect/Cause").YieldableError>;
|
|
59
|
+
export declare class FlowLlmError extends FlowLlmError_base {
|
|
60
|
+
static readonly from: (cause?: typeof LlmError.Type) => FlowLlmError;
|
|
61
|
+
}
|
|
62
|
+
declare const FlowCapabilityDenied_base: Schema.Class<FlowCapabilityDenied, Schema.TaggedStruct<"CapabilityDenied", {
|
|
63
|
+
readonly capability: Schema.Union<readonly [typeof import("@llm4ts/core/Capability").GitRead, typeof import("@llm4ts/core/Capability").GitWrite, typeof import("@llm4ts/core/Capability").GitPush, typeof import("@llm4ts/core/Capability").GhRead, typeof import("@llm4ts/core/Capability").GhWrite, typeof import("@llm4ts/core/Capability").AdoRead, typeof import("@llm4ts/core/Capability").AdoWrite, typeof import("@llm4ts/core/Capability").Exec, typeof import("@llm4ts/core/Capability").UseCoder, typeof import("@llm4ts/core/Capability").UseReasoning, typeof import("@llm4ts/core/Capability").Declassify]>;
|
|
64
|
+
readonly operation: Schema.String;
|
|
65
|
+
}>, import("effect/Cause").YieldableError>;
|
|
66
|
+
export declare class FlowCapabilityDenied extends FlowCapabilityDenied_base {
|
|
67
|
+
get message(): string;
|
|
68
|
+
}
|
|
69
|
+
declare const BudgetExceeded_base: Schema.Class<BudgetExceeded, Schema.TaggedStruct<"BudgetExceeded", {
|
|
70
|
+
readonly metric: Schema.Literals<readonly ["tokens", "costUsd"]>;
|
|
71
|
+
readonly limit: Schema.Number;
|
|
72
|
+
readonly actual: Schema.Number;
|
|
73
|
+
}>, import("effect/Cause").YieldableError>;
|
|
74
|
+
export declare class BudgetExceeded extends BudgetExceeded_base {
|
|
75
|
+
get message(): string;
|
|
76
|
+
}
|
|
77
|
+
export declare const FlowError: Schema.Union<readonly [typeof PersistenceError, typeof PlanParseError, typeof UnsupportedSchemaVersion, typeof WorkspacePathError, typeof WorkspaceLimitError, typeof WorkspaceIoError, typeof FlowAborted, typeof ProcessError, typeof FlowLlmError, typeof FlowCapabilityDenied, typeof BudgetExceeded]>;
|
|
78
|
+
export type FlowError = typeof FlowError.Type;
|
|
79
|
+
export {};
|
|
80
|
+
//# sourceMappingURL=FlowError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowError.d.ts","sourceRoot":"","sources":["../src/FlowError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;;;;;AAE9C,qBAAa,gBAAiB,SAAQ,qBAGpC;CAAG;;;;AAEL,qBAAa,cAAe,SAAQ,mBAElC;CAAG;;;;;;AAEL,qBAAa,wBAAyB,SAAQ,6BAO7C;IACC,IAAI,OAAO,IAAI,MAAM,CAEpB;CACF;;;;;AAED,qBAAa,kBAAmB,SAAQ,uBAMvC;CAAG;;;;;;AAEJ,qBAAa,mBAAoB,SAAQ,wBAOxC;IACC,IAAI,OAAO,IAAI,MAAM,CAEpB;CACF;;;;;;;AAED,qBAAa,gBAAiB,SAAQ,qBAKpC;CAAG;;;;AAEL,qBAAa,WAAY,SAAQ,gBAE/B;CAAG;;;;;AAEL,qBAAa,YAAa,SAAQ,iBAGhC;CAAG;;;;;AAEL,qBAAa,YAAa,SAAQ,iBAGhC;IACA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAI,QAAQ,OAAO,QAAQ,CAAC,IAAI,KAAG,YAAY,CAI/D;CACL;;;;;AAED,qBAAa,oBAAqB,SAAQ,yBAMzC;IACC,IAAI,OAAO,IAAI,MAAM,CAIpB;CACF;;;;;;AAED,qBAAa,cAAe,SAAQ,mBAIlC;IACA,IAAI,OAAO,IAAI,MAAM,CAEpB;CACF;AAED,eAAO,MAAM,SAAS,4SAYpB,CAAA;AACF,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import * as Schema from "effect/Schema";
|
|
2
|
+
import { Capability } from "@llm4ts/core/Capability";
|
|
3
|
+
import { LlmError } from "@llm4ts/core/Errors";
|
|
4
|
+
export class PersistenceError extends Schema.TaggedErrorClass()("Persistence", {
|
|
5
|
+
message: Schema.String,
|
|
6
|
+
cause: Schema.optionalKey(Schema.Defect())
|
|
7
|
+
}) {
|
|
8
|
+
}
|
|
9
|
+
export class PlanParseError extends Schema.TaggedErrorClass()("PlanParse", {
|
|
10
|
+
message: Schema.String
|
|
11
|
+
}) {
|
|
12
|
+
}
|
|
13
|
+
export class UnsupportedSchemaVersion extends Schema.TaggedErrorClass()("UnsupportedSchemaVersion", {
|
|
14
|
+
path: Schema.String,
|
|
15
|
+
expected: Schema.Int,
|
|
16
|
+
actual: Schema.Int
|
|
17
|
+
}) {
|
|
18
|
+
get message() {
|
|
19
|
+
return `unsupported schema version in ${this.path}: expected ${this.expected}, received ${this.actual}`;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export class WorkspacePathError extends Schema.TaggedErrorClass()("WorkspacePath", {
|
|
23
|
+
path: Schema.String,
|
|
24
|
+
message: Schema.String
|
|
25
|
+
}) {
|
|
26
|
+
}
|
|
27
|
+
export class WorkspaceLimitError extends Schema.TaggedErrorClass()("WorkspaceLimit", {
|
|
28
|
+
operation: Schema.String,
|
|
29
|
+
limit: Schema.Int,
|
|
30
|
+
actual: Schema.Int
|
|
31
|
+
}) {
|
|
32
|
+
get message() {
|
|
33
|
+
return `${this.operation} exceeded limit ${this.limit}; received ${this.actual}`;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export class WorkspaceIoError extends Schema.TaggedErrorClass()("WorkspaceIo", {
|
|
37
|
+
operation: Schema.String,
|
|
38
|
+
path: Schema.String,
|
|
39
|
+
message: Schema.String,
|
|
40
|
+
cause: Schema.optionalKey(Schema.Defect())
|
|
41
|
+
}) {
|
|
42
|
+
}
|
|
43
|
+
export class FlowAborted extends Schema.TaggedErrorClass()("Aborted", {
|
|
44
|
+
message: Schema.String
|
|
45
|
+
}) {
|
|
46
|
+
}
|
|
47
|
+
export class ProcessError extends Schema.TaggedErrorClass()("Process", {
|
|
48
|
+
message: Schema.String,
|
|
49
|
+
detail: Schema.String
|
|
50
|
+
}) {
|
|
51
|
+
}
|
|
52
|
+
export class FlowLlmError extends Schema.TaggedErrorClass()("Llm", {
|
|
53
|
+
message: Schema.String,
|
|
54
|
+
cause: Schema.optionalKey(LlmError)
|
|
55
|
+
}) {
|
|
56
|
+
static from = (cause) => FlowLlmError.make({
|
|
57
|
+
message: cause?.message ?? "LLM request failed",
|
|
58
|
+
...(cause === undefined ? {} : { cause })
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
export class FlowCapabilityDenied extends Schema.TaggedErrorClass()("CapabilityDenied", {
|
|
62
|
+
capability: Capability,
|
|
63
|
+
operation: Schema.String
|
|
64
|
+
}) {
|
|
65
|
+
get message() {
|
|
66
|
+
const capability = this.capability._tag === "Exec" ? `Exec(${this.capability.command})` : this.capability._tag;
|
|
67
|
+
return `capability ${capability} denied for ${this.operation}`;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
export class BudgetExceeded extends Schema.TaggedErrorClass()("BudgetExceeded", {
|
|
71
|
+
metric: Schema.Literals(["tokens", "costUsd"]),
|
|
72
|
+
limit: Schema.Number,
|
|
73
|
+
actual: Schema.Number
|
|
74
|
+
}) {
|
|
75
|
+
get message() {
|
|
76
|
+
return `${this.metric} budget exceeded: limit ${this.limit}, actual ${this.actual}`;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
export const FlowError = Schema.Union([
|
|
80
|
+
PersistenceError,
|
|
81
|
+
PlanParseError,
|
|
82
|
+
UnsupportedSchemaVersion,
|
|
83
|
+
WorkspacePathError,
|
|
84
|
+
WorkspaceLimitError,
|
|
85
|
+
WorkspaceIoError,
|
|
86
|
+
FlowAborted,
|
|
87
|
+
ProcessError,
|
|
88
|
+
FlowLlmError,
|
|
89
|
+
FlowCapabilityDenied,
|
|
90
|
+
BudgetExceeded
|
|
91
|
+
]);
|
|
92
|
+
//# sourceMappingURL=FlowError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowError.js","sourceRoot":"","sources":["../src/FlowError.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import * as Context from "effect/Context";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Layer from "effect/Layer";
|
|
4
|
+
import * as PubSub from "effect/PubSub";
|
|
5
|
+
import * as Schema from "effect/Schema";
|
|
6
|
+
import type * as Scope from "effect/Scope";
|
|
7
|
+
import * as Stream from "effect/Stream";
|
|
8
|
+
import { TokenUsage } from "@llm4ts/core/Models";
|
|
9
|
+
declare const StageStarted_base: Schema.Class<StageStarted, Schema.TaggedStruct<"StageStarted", {
|
|
10
|
+
readonly stage: Schema.String;
|
|
11
|
+
}>, {}>;
|
|
12
|
+
export declare class StageStarted extends StageStarted_base {
|
|
13
|
+
}
|
|
14
|
+
declare const StageCompleted_base: Schema.Class<StageCompleted, Schema.TaggedStruct<"StageCompleted", {
|
|
15
|
+
readonly stage: Schema.String;
|
|
16
|
+
}>, {}>;
|
|
17
|
+
export declare class StageCompleted extends StageCompleted_base {
|
|
18
|
+
}
|
|
19
|
+
declare const StageFailed_base: Schema.Class<StageFailed, Schema.TaggedStruct<"StageFailed", {
|
|
20
|
+
readonly stage: Schema.String;
|
|
21
|
+
readonly message: Schema.String;
|
|
22
|
+
}>, {}>;
|
|
23
|
+
export declare class StageFailed extends StageFailed_base {
|
|
24
|
+
}
|
|
25
|
+
declare const Aborted_base: Schema.Class<Aborted, Schema.TaggedStruct<"Aborted", {
|
|
26
|
+
readonly message: Schema.String;
|
|
27
|
+
}>, {}>;
|
|
28
|
+
export declare class Aborted extends Aborted_base {
|
|
29
|
+
}
|
|
30
|
+
declare const Info_base: Schema.Class<Info, Schema.TaggedStruct<"Info", {
|
|
31
|
+
readonly message: Schema.String;
|
|
32
|
+
}>, {}>;
|
|
33
|
+
export declare class Info extends Info_base {
|
|
34
|
+
}
|
|
35
|
+
declare const ToolUse_base: Schema.Class<ToolUse, Schema.TaggedStruct<"ToolUse", {
|
|
36
|
+
readonly tool: Schema.String;
|
|
37
|
+
readonly args: Schema.String;
|
|
38
|
+
}>, {}>;
|
|
39
|
+
export declare class ToolUse extends ToolUse_base {
|
|
40
|
+
}
|
|
41
|
+
declare const AssistantMessage_base: Schema.Class<AssistantMessage, Schema.TaggedStruct<"AssistantMessage", {
|
|
42
|
+
readonly text: Schema.String;
|
|
43
|
+
}>, {}>;
|
|
44
|
+
export declare class AssistantMessage extends AssistantMessage_base {
|
|
45
|
+
}
|
|
46
|
+
declare const TokensUsed_base: Schema.Class<TokensUsed, Schema.TaggedStruct<"TokensUsed", {
|
|
47
|
+
readonly agent: Schema.String;
|
|
48
|
+
readonly model: Schema.optionalKey<Schema.String>;
|
|
49
|
+
readonly usage: typeof TokenUsage;
|
|
50
|
+
}>, {}>;
|
|
51
|
+
export declare class TokensUsed extends TokensUsed_base {
|
|
52
|
+
}
|
|
53
|
+
declare const CapabilityUsedEvent_base: Schema.Class<CapabilityUsedEvent, Schema.TaggedStruct<"CapabilityUsed", {
|
|
54
|
+
readonly capability: Schema.String;
|
|
55
|
+
readonly operation: Schema.String;
|
|
56
|
+
}>, {}>;
|
|
57
|
+
export declare class CapabilityUsedEvent extends CapabilityUsedEvent_base {
|
|
58
|
+
}
|
|
59
|
+
declare const CapabilityDeniedEvent_base: Schema.Class<CapabilityDeniedEvent, Schema.TaggedStruct<"CapabilityDenied", {
|
|
60
|
+
readonly capability: Schema.String;
|
|
61
|
+
readonly operation: Schema.String;
|
|
62
|
+
}>, {}>;
|
|
63
|
+
export declare class CapabilityDeniedEvent extends CapabilityDeniedEvent_base {
|
|
64
|
+
}
|
|
65
|
+
declare const CapabilityUnenforceable_base: Schema.Class<CapabilityUnenforceable, Schema.TaggedStruct<"CapabilityUnenforceable", {
|
|
66
|
+
readonly detail: Schema.String;
|
|
67
|
+
}>, {}>;
|
|
68
|
+
export declare class CapabilityUnenforceable extends CapabilityUnenforceable_base {
|
|
69
|
+
}
|
|
70
|
+
declare const Declassified_base: Schema.Class<Declassified, Schema.TaggedStruct<"Declassified", {
|
|
71
|
+
readonly label: Schema.String;
|
|
72
|
+
}>, {}>;
|
|
73
|
+
export declare class Declassified extends Declassified_base {
|
|
74
|
+
}
|
|
75
|
+
export declare const FlowEvent: Schema.Union<readonly [typeof StageStarted, typeof StageCompleted, typeof StageFailed, typeof Aborted, typeof Info, typeof ToolUse, typeof AssistantMessage, typeof TokensUsed, typeof CapabilityUsedEvent, typeof CapabilityDeniedEvent, typeof CapabilityUnenforceable, typeof Declassified]>;
|
|
76
|
+
export type FlowEvent = typeof FlowEvent.Type;
|
|
77
|
+
export declare const FlowEventsValues: Readonly<{
|
|
78
|
+
CapabilityUsed: (capability: string, operation: string) => CapabilityUsedEvent;
|
|
79
|
+
CapabilityDenied: (capability: string, operation: string) => CapabilityDeniedEvent;
|
|
80
|
+
CapabilityUnenforceable: (detail: string) => CapabilityUnenforceable;
|
|
81
|
+
Declassified: (label: string) => Declassified;
|
|
82
|
+
}>;
|
|
83
|
+
export interface FlowEventsShape {
|
|
84
|
+
readonly publish: (event: FlowEvent) => Effect.Effect<void>;
|
|
85
|
+
}
|
|
86
|
+
declare const FlowEvents_base: Context.ServiceClass<FlowEvents, "@llm4ts/flow/FlowEvents", FlowEventsShape>;
|
|
87
|
+
export declare class FlowEvents extends FlowEvents_base {
|
|
88
|
+
}
|
|
89
|
+
export declare const FlowEventsNoop: Layer.Layer<FlowEvents, never, never>;
|
|
90
|
+
export interface CollectingFlowEvents extends FlowEventsShape {
|
|
91
|
+
readonly recorded: Effect.Effect<ReadonlyArray<FlowEvent>>;
|
|
92
|
+
}
|
|
93
|
+
export declare const makeCollectingFlowEvents: Effect.Effect<CollectingFlowEvents>;
|
|
94
|
+
export interface FlowEventHub extends FlowEventsShape {
|
|
95
|
+
readonly subscribe: Effect.Effect<PubSub.Subscription<FlowEvent>, never, Scope.Scope>;
|
|
96
|
+
readonly stream: Stream.Stream<FlowEvent>;
|
|
97
|
+
readonly publishedCount: Effect.Effect<number>;
|
|
98
|
+
}
|
|
99
|
+
export declare const makeFlowEventHub: (capacity?: any) => Effect.Effect<FlowEventHub, never, never>;
|
|
100
|
+
export {};
|
|
101
|
+
//# sourceMappingURL=FlowEvents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowEvents.d.ts","sourceRoot":"","sources":["../src/FlowEvents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;;;;AAEhD,qBAAa,YAAa,SAAQ,iBAEhC;CAAG;;;;AAEL,qBAAa,cAAe,SAAQ,mBAElC;CAAG;;;;;AAEL,qBAAa,WAAY,SAAQ,gBAG/B;CAAG;;;;AAEL,qBAAa,OAAQ,SAAQ,YAE3B;CAAG;;;;AAEL,qBAAa,IAAK,SAAQ,SAExB;CAAG;;;;;AAEL,qBAAa,OAAQ,SAAQ,YAG3B;CAAG;;;;AAEL,qBAAa,gBAAiB,SAAQ,qBAEpC;CAAG;;;;;;AAEL,qBAAa,UAAW,SAAQ,eAI9B;CAAG;;;;;AAEL,qBAAa,mBAAoB,SAAQ,wBAMxC;CAAG;;;;;AAEJ,qBAAa,qBAAsB,SAAQ,0BAM1C;CAAG;;;;AAEJ,qBAAa,uBAAwB,SAAQ,4BAK5C;CAAG;;;;AAEJ,qBAAa,YAAa,SAAQ,iBAEhC;CAAG;AAEL,eAAO,MAAM,SAAS,iSAapB,CAAA;AACF,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAE7C,eAAO,MAAM,gBAAgB;iCACE,MAAM,aAAa,MAAM,KAAG,mBAAmB;mCAE7C,MAAM,aAAa,MAAM,KAAG,qBAAqB;sCAE9C,MAAM,KAAG,uBAAuB;0BAE5C,MAAM,KAAG,YAAY;EAC3C,CAAA;AAEF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CAC5D;;AAED,qBAAa,UAAW,SAAQ,eAE/B;CAAG;AAMJ,eAAO,MAAM,cAAc,uCAA4C,CAAA;AAEvE,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAA;CAC3D;AAED,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAMxE,CAAA;AAED,MAAM,WAAW,YAAa,SAAQ,eAAe;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IACrF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACzC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;CAC/C;AAED,eAAO,MAAM,gBAAgB,+DAe3B,CAAA"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import * as Context from "effect/Context";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Layer from "effect/Layer";
|
|
4
|
+
import * as PubSub from "effect/PubSub";
|
|
5
|
+
import * as Ref from "effect/Ref";
|
|
6
|
+
import * as Schema from "effect/Schema";
|
|
7
|
+
import * as Stream from "effect/Stream";
|
|
8
|
+
import { TokenUsage } from "@llm4ts/core/Models";
|
|
9
|
+
export class StageStarted extends Schema.TaggedClass()("StageStarted", {
|
|
10
|
+
stage: Schema.String
|
|
11
|
+
}) {
|
|
12
|
+
}
|
|
13
|
+
export class StageCompleted extends Schema.TaggedClass()("StageCompleted", {
|
|
14
|
+
stage: Schema.String
|
|
15
|
+
}) {
|
|
16
|
+
}
|
|
17
|
+
export class StageFailed extends Schema.TaggedClass()("StageFailed", {
|
|
18
|
+
stage: Schema.String,
|
|
19
|
+
message: Schema.String
|
|
20
|
+
}) {
|
|
21
|
+
}
|
|
22
|
+
export class Aborted extends Schema.TaggedClass()("Aborted", {
|
|
23
|
+
message: Schema.String
|
|
24
|
+
}) {
|
|
25
|
+
}
|
|
26
|
+
export class Info extends Schema.TaggedClass()("Info", {
|
|
27
|
+
message: Schema.String
|
|
28
|
+
}) {
|
|
29
|
+
}
|
|
30
|
+
export class ToolUse extends Schema.TaggedClass()("ToolUse", {
|
|
31
|
+
tool: Schema.String,
|
|
32
|
+
args: Schema.String
|
|
33
|
+
}) {
|
|
34
|
+
}
|
|
35
|
+
export class AssistantMessage extends Schema.TaggedClass()("AssistantMessage", {
|
|
36
|
+
text: Schema.String
|
|
37
|
+
}) {
|
|
38
|
+
}
|
|
39
|
+
export class TokensUsed extends Schema.TaggedClass()("TokensUsed", {
|
|
40
|
+
agent: Schema.String,
|
|
41
|
+
model: Schema.optionalKey(Schema.String),
|
|
42
|
+
usage: TokenUsage
|
|
43
|
+
}) {
|
|
44
|
+
}
|
|
45
|
+
export class CapabilityUsedEvent extends Schema.TaggedClass()("CapabilityUsed", {
|
|
46
|
+
capability: Schema.String,
|
|
47
|
+
operation: Schema.String
|
|
48
|
+
}) {
|
|
49
|
+
}
|
|
50
|
+
export class CapabilityDeniedEvent extends Schema.TaggedClass()("CapabilityDenied", {
|
|
51
|
+
capability: Schema.String,
|
|
52
|
+
operation: Schema.String
|
|
53
|
+
}) {
|
|
54
|
+
}
|
|
55
|
+
export class CapabilityUnenforceable extends Schema.TaggedClass()("CapabilityUnenforceable", {
|
|
56
|
+
detail: Schema.String
|
|
57
|
+
}) {
|
|
58
|
+
}
|
|
59
|
+
export class Declassified extends Schema.TaggedClass()("Declassified", {
|
|
60
|
+
label: Schema.String
|
|
61
|
+
}) {
|
|
62
|
+
}
|
|
63
|
+
export const FlowEvent = Schema.Union([
|
|
64
|
+
StageStarted,
|
|
65
|
+
StageCompleted,
|
|
66
|
+
StageFailed,
|
|
67
|
+
Aborted,
|
|
68
|
+
Info,
|
|
69
|
+
ToolUse,
|
|
70
|
+
AssistantMessage,
|
|
71
|
+
TokensUsed,
|
|
72
|
+
CapabilityUsedEvent,
|
|
73
|
+
CapabilityDeniedEvent,
|
|
74
|
+
CapabilityUnenforceable,
|
|
75
|
+
Declassified
|
|
76
|
+
]);
|
|
77
|
+
export const FlowEventsValues = Object.freeze({
|
|
78
|
+
CapabilityUsed: (capability, operation) => new CapabilityUsedEvent({ capability, operation }),
|
|
79
|
+
CapabilityDenied: (capability, operation) => new CapabilityDeniedEvent({ capability, operation }),
|
|
80
|
+
CapabilityUnenforceable: (detail) => new CapabilityUnenforceable({ detail }),
|
|
81
|
+
Declassified: (label) => new Declassified({ label })
|
|
82
|
+
});
|
|
83
|
+
export class FlowEvents extends Context.Service()("@llm4ts/flow/FlowEvents") {
|
|
84
|
+
}
|
|
85
|
+
const noopFlowEvents = FlowEvents.of({
|
|
86
|
+
publish: (_event) => Effect.void
|
|
87
|
+
});
|
|
88
|
+
export const FlowEventsNoop = Layer.succeed(FlowEvents)(noopFlowEvents);
|
|
89
|
+
export const makeCollectingFlowEvents = Effect.map(Ref.make([]), (events) => ({
|
|
90
|
+
publish: (event) => Ref.update(events, (recorded) => [...recorded, event]),
|
|
91
|
+
recorded: Ref.get(events)
|
|
92
|
+
}));
|
|
93
|
+
export const makeFlowEventHub = Effect.fn("@llm4ts/flow/FlowEvents.makeHub")(function* (capacity = 64) {
|
|
94
|
+
const events = yield* PubSub.bounded(capacity);
|
|
95
|
+
const published = yield* Ref.make(0);
|
|
96
|
+
return {
|
|
97
|
+
publish: (event) => Ref.update(published, (count) => count + 1).pipe(Effect.andThen(PubSub.publish(events, event)), Effect.asVoid),
|
|
98
|
+
subscribe: PubSub.subscribe(events),
|
|
99
|
+
stream: Stream.fromPubSub(events),
|
|
100
|
+
publishedCount: Ref.get(published)
|
|
101
|
+
};
|
|
102
|
+
});
|
|
103
|
+
//# sourceMappingURL=FlowEvents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowEvents.js","sourceRoot":"","sources":["../src/FlowEvents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Schema from "effect/Schema";
|
|
3
|
+
import type * as Scope from "effect/Scope";
|
|
4
|
+
import type { StreamRecorder } from "@llm4ts/core/observability/StreamRecorder";
|
|
5
|
+
import type { FlowEvent, FlowEventHub } from "./FlowEvents.ts";
|
|
6
|
+
import type { PlainFileStoreShape } from "./Persistence.ts";
|
|
7
|
+
declare const TraceLine_base: Schema.Class<TraceLine, Schema.Struct<{
|
|
8
|
+
readonly schemaVersion: Schema.optionalKey<Schema.Int>;
|
|
9
|
+
readonly seq: Schema.Int;
|
|
10
|
+
readonly timestamp: Schema.Number;
|
|
11
|
+
readonly runId: Schema.String;
|
|
12
|
+
readonly kind: Schema.String;
|
|
13
|
+
readonly fields: Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>;
|
|
14
|
+
}>, {}>;
|
|
15
|
+
export declare class TraceLine extends TraceLine_base {
|
|
16
|
+
}
|
|
17
|
+
export interface FlowRecorderShape extends StreamRecorder {
|
|
18
|
+
readonly runId: string;
|
|
19
|
+
readonly tracePath: string;
|
|
20
|
+
readonly record: (event: FlowEvent) => Effect.Effect<void>;
|
|
21
|
+
readonly consume: (hub: FlowEventHub) => Effect.Effect<void, never, Scope.Scope>;
|
|
22
|
+
readonly awaitDrained: (hub: FlowEventHub) => Effect.Effect<void>;
|
|
23
|
+
}
|
|
24
|
+
export declare const makeFlowRecorder: (files: PlainFileStoreShape, tracePath: string, runId: string) => Effect.Effect<FlowRecorderShape, never, never>;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=FlowRecorder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowRecorder.d.ts","sourceRoot":"","sources":["../src/FlowRecorder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAA;AAE/E,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;;;;;;;;;AAE3D,qBAAa,SAAU,SAAQ,cAO7B;CAAG;AAEL,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC1D,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IAChF,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CAClE;AAYD,eAAO,MAAM,gBAAgB,kHA4E3B,CAAA"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import * as Clock from "effect/Clock";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Ref from "effect/Ref";
|
|
4
|
+
import * as Schema from "effect/Schema";
|
|
5
|
+
import * as Semaphore from "effect/Semaphore";
|
|
6
|
+
import * as Stream from "effect/Stream";
|
|
7
|
+
export class TraceLine extends Schema.Class("TraceLine")({
|
|
8
|
+
schemaVersion: Schema.optionalKey(Schema.Int),
|
|
9
|
+
seq: Schema.Int,
|
|
10
|
+
timestamp: Schema.Number,
|
|
11
|
+
runId: Schema.String,
|
|
12
|
+
kind: Schema.String,
|
|
13
|
+
fields: Schema.Record(Schema.String, Schema.Json)
|
|
14
|
+
}) {
|
|
15
|
+
}
|
|
16
|
+
const encode = (line) => JSON.stringify({
|
|
17
|
+
schemaVersion: line.schemaVersion,
|
|
18
|
+
seq: line.seq,
|
|
19
|
+
timestamp: line.timestamp,
|
|
20
|
+
runId: line.runId,
|
|
21
|
+
kind: line.kind,
|
|
22
|
+
fields: line.fields
|
|
23
|
+
});
|
|
24
|
+
export const makeFlowRecorder = Effect.fn("@llm4ts/flow/FlowRecorder.make")(function* (files, tracePath, runId) {
|
|
25
|
+
const sequence = yield* Ref.make(0);
|
|
26
|
+
const consumed = yield* Ref.make(0);
|
|
27
|
+
const lock = yield* Semaphore.make(1);
|
|
28
|
+
const degraded = yield* Ref.make(false);
|
|
29
|
+
const append = (kind, fields) => lock.withPermit(Effect.gen(function* () {
|
|
30
|
+
if (yield* Ref.get(degraded)) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const seq = yield* Ref.getAndUpdate(sequence, (current) => current + 1);
|
|
34
|
+
const timestamp = yield* Clock.currentTimeMillis;
|
|
35
|
+
const line = TraceLine.make({
|
|
36
|
+
schemaVersion: 1,
|
|
37
|
+
seq,
|
|
38
|
+
timestamp,
|
|
39
|
+
runId,
|
|
40
|
+
kind,
|
|
41
|
+
fields
|
|
42
|
+
});
|
|
43
|
+
yield* files
|
|
44
|
+
.append(tracePath, `${encode(line)}\n`)
|
|
45
|
+
.pipe(Effect.catch(() => Ref.set(degraded, true)));
|
|
46
|
+
}));
|
|
47
|
+
const record = (event) => append(event._tag, { event: JSON.stringify(event) });
|
|
48
|
+
const recorder = {
|
|
49
|
+
runId,
|
|
50
|
+
tracePath,
|
|
51
|
+
record,
|
|
52
|
+
rawLine: (provider, model, line) => append("RawLine", {
|
|
53
|
+
provider,
|
|
54
|
+
...(model === undefined ? {} : { model }),
|
|
55
|
+
line
|
|
56
|
+
}),
|
|
57
|
+
streamError: (provider, model, message) => append("StreamError", {
|
|
58
|
+
provider,
|
|
59
|
+
...(model === undefined ? {} : { model }),
|
|
60
|
+
message
|
|
61
|
+
}),
|
|
62
|
+
consume: (hub) => Effect.gen(function* () {
|
|
63
|
+
const subscription = yield* hub.subscribe;
|
|
64
|
+
yield* Stream.fromSubscription(subscription).pipe(Stream.runForEach((event) => record(event).pipe(Effect.andThen(Ref.update(consumed, (count) => count + 1)))), Effect.forkScoped, Effect.asVoid);
|
|
65
|
+
}),
|
|
66
|
+
awaitDrained: (hub) => Effect.gen(function* () {
|
|
67
|
+
const target = yield* hub.publishedCount;
|
|
68
|
+
const drain = Effect.suspend(() => Ref.get(consumed).pipe(Effect.flatMap((count) => count >= target ? Effect.void : Effect.yieldNow.pipe(Effect.andThen(drain)))));
|
|
69
|
+
yield* drain;
|
|
70
|
+
})
|
|
71
|
+
};
|
|
72
|
+
return recorder;
|
|
73
|
+
});
|
|
74
|
+
//# sourceMappingURL=FlowRecorder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowRecorder.js","sourceRoot":"","sources":["../src/FlowRecorder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Schema from "effect/Schema";
|
|
3
|
+
import type { ProcessExecutorShape } from "@llm4ts/core/ProcessExecutor";
|
|
4
|
+
import { ProcessError, type FlowError } from "./FlowError.ts";
|
|
5
|
+
import type { FlowEventsShape } from "./FlowEvents.ts";
|
|
6
|
+
declare const IssueRef_base: Schema.Class<IssueRef, Schema.Struct<{
|
|
7
|
+
readonly owner: Schema.String;
|
|
8
|
+
readonly repo: Schema.String;
|
|
9
|
+
readonly number: Schema.Int;
|
|
10
|
+
}>, {}>;
|
|
11
|
+
export declare class IssueRef extends IssueRef_base {
|
|
12
|
+
get shortRef(): string;
|
|
13
|
+
}
|
|
14
|
+
export declare const parseIssueRef: (input: string) => IssueRef | undefined;
|
|
15
|
+
declare const Issue_base: Schema.Class<Issue, Schema.Struct<{
|
|
16
|
+
readonly title: Schema.String;
|
|
17
|
+
readonly body: Schema.String;
|
|
18
|
+
readonly author: Schema.String;
|
|
19
|
+
}>, {}>;
|
|
20
|
+
export declare class Issue extends Issue_base {
|
|
21
|
+
}
|
|
22
|
+
declare const PullRequest_base: Schema.Class<PullRequest, Schema.Struct<{
|
|
23
|
+
readonly owner: Schema.String;
|
|
24
|
+
readonly repo: Schema.String;
|
|
25
|
+
readonly number: Schema.Int;
|
|
26
|
+
readonly url: Schema.String;
|
|
27
|
+
}>, {}>;
|
|
28
|
+
export declare class PullRequest extends PullRequest_base {
|
|
29
|
+
get shortRef(): string;
|
|
30
|
+
}
|
|
31
|
+
export declare const BuildOutcome: Schema.Literals<readonly ["Success", "Failure", "Pending", "TimedOut"]>;
|
|
32
|
+
export type BuildOutcome = typeof BuildOutcome.Type;
|
|
33
|
+
export declare const parsePullRequestUrl: (url: string) => PullRequest | undefined;
|
|
34
|
+
export declare const prViewArgs: string[];
|
|
35
|
+
export declare const prCreateArgs: (title: string, body: string, base: string | undefined, draft: boolean) => ReadonlyArray<string>;
|
|
36
|
+
export declare const issueViewArgs: (ref: IssueRef) => ReadonlyArray<string>;
|
|
37
|
+
export declare const issueCommentArgs: (ref: IssueRef, body: string) => ReadonlyArray<string>;
|
|
38
|
+
export declare const prCommentArgs: (pr: PullRequest, body: string) => ReadonlyArray<string>;
|
|
39
|
+
export declare const prPatchArgs: (pr: PullRequest, title: string, body: string) => ReadonlyArray<string>;
|
|
40
|
+
export declare const prChecksArgs: (pr: PullRequest) => ReadonlyArray<string>;
|
|
41
|
+
export declare const parseIssue: (json: string) => Effect.Effect<Issue, ProcessError>;
|
|
42
|
+
export declare const outcomeFromChecksJson: (json: string) => Effect.Effect<BuildOutcome, ProcessError>;
|
|
43
|
+
export interface GitHubToolShape {
|
|
44
|
+
readonly createPr: (title: string, body: string, base?: string, draft?: boolean) => Effect.Effect<PullRequest, FlowError>;
|
|
45
|
+
readonly readIssue: (ref: IssueRef) => Effect.Effect<Issue, FlowError>;
|
|
46
|
+
readonly writeIssueComment: (ref: IssueRef, body: string) => Effect.Effect<void, FlowError>;
|
|
47
|
+
readonly writePrComment: (pr: PullRequest, body: string) => Effect.Effect<void, FlowError>;
|
|
48
|
+
readonly updatePr: (pr: PullRequest, title: string, body: string) => Effect.Effect<void, FlowError>;
|
|
49
|
+
readonly prChecks: (pr: PullRequest) => Effect.Effect<BuildOutcome, FlowError>;
|
|
50
|
+
}
|
|
51
|
+
export declare const makeGitHubTool: (process: ProcessExecutorShape, workDir: string, events: FlowEventsShape) => GitHubToolShape;
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=GitHubTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitHubTool.d.ts","sourceRoot":"","sources":["../src/GitHubTool.ts"],"names":[],"mappings":"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"}
|