@llm4ts/runner 2.8.0 → 2.9.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/dist/Connectors.d.ts +2 -0
- package/dist/Connectors.d.ts.map +1 -1
- package/dist/Connectors.js +26 -24
- package/dist/Connectors.js.map +1 -1
- package/dist/ExecutorRoster.d.ts +54 -0
- package/dist/ExecutorRoster.d.ts.map +1 -0
- package/dist/ExecutorRoster.js +206 -0
- package/dist/ExecutorRoster.js.map +1 -0
- package/dist/FlowRunner.d.ts +14 -4
- package/dist/FlowRunner.d.ts.map +1 -1
- package/dist/FlowRunner.js +183 -6
- package/dist/FlowRunner.js.map +1 -1
- package/package.json +4 -3
- package/src/Connectors.ts +27 -24
- package/src/ExecutorRoster.ts +318 -0
- package/src/FlowRunner.ts +269 -7
package/dist/Connectors.d.ts
CHANGED
|
@@ -25,6 +25,8 @@ export declare const asToolless: (config: CliConnectorConfig) => CliConnectorCon
|
|
|
25
25
|
export declare const withTimeoutSeconds: (config: ApiConnectorConfig, seconds: number) => ApiConnectorConfig;
|
|
26
26
|
export declare const enrichApiConnector: (config: ApiConnectorConfig, environment?: Readonly<Record<string, string | undefined>>) => ApiConnectorConfig;
|
|
27
27
|
export declare const prepareConnector: (config: ConnectorConfig, workDir: string, environment?: Readonly<Record<string, string | undefined>>) => ConnectorConfig;
|
|
28
|
+
/** The API provider a name stands for (`LLM4TS_PROVIDER`, a roster executor's `harness`). */
|
|
29
|
+
export declare const apiPresetFor: (name: string) => ApiConnectorConfig | undefined;
|
|
28
30
|
export declare const apiConnectorFromEnvironment: (environment?: Readonly<Record<string, string | undefined>> | undefined) => Effect.Effect<ApiConnectorConfig, ScriptUsage, never>;
|
|
29
31
|
export declare const coderIds: ReadonlyArray<string>;
|
|
30
32
|
export declare const coderFor: (name: string) => CliConnectorConfig | undefined;
|
package/dist/Connectors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Connectors.d.ts","sourceRoot":"","sources":["../src/Connectors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,eAAe,EACrB,MAAM,8BAA8B,CAAA;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,eAAO,MAAM,MAAM,oBAKjB,CAAA;AAEF,eAAO,MAAM,KAAK,oBAKhB,CAAA;AAEF,eAAO,MAAM,MAAM,oBAEjB,CAAA;AAEF,eAAO,MAAM,EAAE,oBAEb,CAAA;AAEF,eAAO,MAAM,WAAW,oBAKtB,CAAA;AAEF,eAAO,MAAM,IAAI,oBAEf,CAAA;AAEF,eAAO,MAAM,MAAM,oBAEjB,CAAA;AAEF,eAAO,MAAM,QAAQ,oBAEnB,CAAA;AAEF,eAAO,MAAM,QAAQ,oBAGnB,CAAA;AAEF,eAAO,MAAM,KAAK,oBAGhB,CAAA;AAEF,eAAO,MAAM,MAAM,oBAEjB,CAAA;AAEF,eAAO,MAAM,SAAS,oBAEpB,CAAA;AAEF,eAAO,MAAM,SAAS,oBAEpB,CAAA;AAEF,eAAO,MAAM,MAAM,oBAEjB,CAAA;AAEF,eAAO,MAAM,IAAI,oBAGf,CAAA;AAEF,wBAAgB,SAAS,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAAA;AACxF,wBAAgB,SAAS,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAAA;AAUxF,eAAO,MAAM,aAAa,GAAI,QAAQ,kBAAkB,EAAE,WAAW,MAAM,KAAG,kBAI1E,CAAA;AAEJ,eAAO,MAAM,eAAe,GAC1B,QAAQ,kBAAkB,EAC1B,aAAa,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAC5C,kBAOC,CAAA;AAEJ,eAAO,MAAM,UAAU,GAAI,QAAQ,kBAAkB,KAAG,kBACA,CAAA;AAMxD,eAAO,MAAM,UAAU,GAAI,QAAQ,kBAAkB,KAAG,kBACe,CAAA;AAEvE,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,kBAAkB,EAC1B,SAAS,MAAM,KACd,kBAIC,CAAA;AAkBJ,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,kBAAkB,EAC1B,cAAa,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAe,KACtE,kBAYF,CAAA;AAED,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,eAAe,EACvB,SAAS,MAAM,EACf,cAAa,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAe,KACtE,eAG8D,CAAA;AAEjE,eAAO,MAAM,2BAA2B,
|
|
1
|
+
{"version":3,"file":"Connectors.d.ts","sourceRoot":"","sources":["../src/Connectors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,eAAe,EACrB,MAAM,8BAA8B,CAAA;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,eAAO,MAAM,MAAM,oBAKjB,CAAA;AAEF,eAAO,MAAM,KAAK,oBAKhB,CAAA;AAEF,eAAO,MAAM,MAAM,oBAEjB,CAAA;AAEF,eAAO,MAAM,EAAE,oBAEb,CAAA;AAEF,eAAO,MAAM,WAAW,oBAKtB,CAAA;AAEF,eAAO,MAAM,IAAI,oBAEf,CAAA;AAEF,eAAO,MAAM,MAAM,oBAEjB,CAAA;AAEF,eAAO,MAAM,QAAQ,oBAEnB,CAAA;AAEF,eAAO,MAAM,QAAQ,oBAGnB,CAAA;AAEF,eAAO,MAAM,KAAK,oBAGhB,CAAA;AAEF,eAAO,MAAM,MAAM,oBAEjB,CAAA;AAEF,eAAO,MAAM,SAAS,oBAEpB,CAAA;AAEF,eAAO,MAAM,SAAS,oBAEpB,CAAA;AAEF,eAAO,MAAM,MAAM,oBAEjB,CAAA;AAEF,eAAO,MAAM,IAAI,oBAGf,CAAA;AAEF,wBAAgB,SAAS,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAAA;AACxF,wBAAgB,SAAS,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAAA;AAUxF,eAAO,MAAM,aAAa,GAAI,QAAQ,kBAAkB,EAAE,WAAW,MAAM,KAAG,kBAI1E,CAAA;AAEJ,eAAO,MAAM,eAAe,GAC1B,QAAQ,kBAAkB,EAC1B,aAAa,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAC5C,kBAOC,CAAA;AAEJ,eAAO,MAAM,UAAU,GAAI,QAAQ,kBAAkB,KAAG,kBACA,CAAA;AAMxD,eAAO,MAAM,UAAU,GAAI,QAAQ,kBAAkB,KAAG,kBACe,CAAA;AAEvE,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,kBAAkB,EAC1B,SAAS,MAAM,KACd,kBAIC,CAAA;AAkBJ,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,kBAAkB,EAC1B,cAAa,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAe,KACtE,kBAYF,CAAA;AAED,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,eAAe,EACvB,SAAS,MAAM,EACf,cAAa,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAe,KACtE,eAG8D,CAAA;AAEjE,6FAA6F;AAC7F,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,kBAAkB,GAAG,SAuBhE,CAAA;AAED,eAAO,MAAM,2BAA2B,mIAqBtC,CAAA;AAwBF,eAAO,MAAM,QAAQ,EAAE,aAAa,CAAC,MAAM,CAA4C,CAAA;AAEvF,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,KAAG,kBAAkB,GAAG,SACtB,CAAA;AAKvC,eAAO,MAAM,YAAY,GACvB,MAAK,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAe,KAC9D,kBAGF,CAAA;AAKD,eAAO,MAAM,oBAAoB,mIAehC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,+IAc3C,CAAA"}
|
package/dist/Connectors.js
CHANGED
|
@@ -115,32 +115,34 @@ export const enrichApiConnector = (config, environment = process.env) => {
|
|
|
115
115
|
export const prepareConnector = (config, workDir, environment = process.env) => config instanceof ApiConnectorConfig
|
|
116
116
|
? enrichApiConnector(config, environment)
|
|
117
117
|
: CliConnectorConfig.make({ ...config, workingDir: workDir });
|
|
118
|
+
/** The API provider a name stands for (`LLM4TS_PROVIDER`, a roster executor's `harness`). */
|
|
119
|
+
export const apiPresetFor = (name) => {
|
|
120
|
+
switch (name.trim().toLowerCase()) {
|
|
121
|
+
case "mock":
|
|
122
|
+
return mock;
|
|
123
|
+
case "openai":
|
|
124
|
+
return openAI;
|
|
125
|
+
case "anthropic":
|
|
126
|
+
return anthropic;
|
|
127
|
+
case "gemini":
|
|
128
|
+
case "gemini-api":
|
|
129
|
+
return geminiApi;
|
|
130
|
+
case "lm-studio":
|
|
131
|
+
case "lmstudio":
|
|
132
|
+
return lmStudio;
|
|
133
|
+
case "ollama":
|
|
134
|
+
return ollama;
|
|
135
|
+
case "mlx-lm":
|
|
136
|
+
case "mlxlm":
|
|
137
|
+
case "mlx":
|
|
138
|
+
return mlxLm;
|
|
139
|
+
default:
|
|
140
|
+
return undefined;
|
|
141
|
+
}
|
|
142
|
+
};
|
|
118
143
|
export const apiConnectorFromEnvironment = Effect.fn("@llm4ts/runner/Connectors.apiConnectorFromEnvironment")(function* (environment = process.env) {
|
|
119
144
|
const provider = environment.LLM4TS_PROVIDER?.trim().toLowerCase() ?? "mock";
|
|
120
|
-
const preset = (
|
|
121
|
-
switch (provider) {
|
|
122
|
-
case "mock":
|
|
123
|
-
return mock;
|
|
124
|
-
case "openai":
|
|
125
|
-
return openAI;
|
|
126
|
-
case "anthropic":
|
|
127
|
-
return anthropic;
|
|
128
|
-
case "gemini":
|
|
129
|
-
case "gemini-api":
|
|
130
|
-
return geminiApi;
|
|
131
|
-
case "lm-studio":
|
|
132
|
-
case "lmstudio":
|
|
133
|
-
return lmStudio;
|
|
134
|
-
case "ollama":
|
|
135
|
-
return ollama;
|
|
136
|
-
case "mlx-lm":
|
|
137
|
-
case "mlxlm":
|
|
138
|
-
case "mlx":
|
|
139
|
-
return mlxLm;
|
|
140
|
-
default:
|
|
141
|
-
return undefined;
|
|
142
|
-
}
|
|
143
|
-
})();
|
|
145
|
+
const preset = apiPresetFor(provider);
|
|
144
146
|
if (preset === undefined) {
|
|
145
147
|
return yield* ScriptUsage.make({
|
|
146
148
|
message: `unknown LLM4TS_PROVIDER '${provider}'; expected ` +
|
package/dist/Connectors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Connectors.js","sourceRoot":"","sources":["../src/Connectors.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Connectors.js","sourceRoot":"","sources":["../src/Connectors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import { type ConnectorConfig } from "@llm4ts/core/ConnectorConfig";
|
|
3
|
+
import { RosterInvalid } from "@llm4ts/flow/FlowError";
|
|
4
|
+
import type { PlainFileStoreShape } from "@llm4ts/flow/Persistence";
|
|
5
|
+
import { Exclusion, RosterDocument, type ExecutorSpec } from "@llm4ts/flow/Roster";
|
|
6
|
+
type Environment = Readonly<Record<string, string | undefined>>;
|
|
7
|
+
/** `${XDG_CONFIG_HOME:-~/.config}/llm4ts/roster.json`. */
|
|
8
|
+
export declare const userRosterPath: (environment: Environment) => string;
|
|
9
|
+
/** `<repo>/.llm4ts/roster.json`: overrides the user's entries by id. */
|
|
10
|
+
export declare const repoRosterPath: (workDir: string) => string;
|
|
11
|
+
/** `${XDG_STATE_HOME:-~/.local/state}/llm4ts/roster-state.json`: exclusions that outlive a run. */
|
|
12
|
+
export declare const rosterStatePath: (environment: Environment) => string;
|
|
13
|
+
/** `${VAR}` references resolved from the environment; the names of missing ones. */
|
|
14
|
+
export declare const substituteEnvironment: (values: Readonly<Record<string, string>>, environment: Environment) => {
|
|
15
|
+
readonly values: Readonly<Record<string, string>>;
|
|
16
|
+
readonly missing: ReadonlyArray<string>;
|
|
17
|
+
};
|
|
18
|
+
/** Whether a harness name is an API provider (reasoning roles only). */
|
|
19
|
+
export declare const isApiHarness: (harness: string) => boolean;
|
|
20
|
+
/**
|
|
21
|
+
* The connector config an executor runs with: its harness preset, model,
|
|
22
|
+
* flags, endpoint and environment, read-only for a reasoning role.
|
|
23
|
+
*/
|
|
24
|
+
export declare const executorConfig: (spec: ExecutorSpec, readOnly: boolean, environment: Environment) => ConnectorConfig | undefined;
|
|
25
|
+
/** The flow-level violations plus what needs the harness table and the environment. */
|
|
26
|
+
export declare const rosterLoadViolations: (document: RosterDocument, environment: Environment) => ReadonlyArray<string>;
|
|
27
|
+
export interface RosterSource {
|
|
28
|
+
readonly files: PlainFileStoreShape;
|
|
29
|
+
readonly environment: Environment;
|
|
30
|
+
readonly workDir: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The roster in force for a run, or `undefined` for today's one executor per
|
|
34
|
+
* seat: `LLM4TS_ROSTER=none` ignores rosters, `LLM4TS_ROSTER=<path>` uses that
|
|
35
|
+
* file alone, otherwise the user's file with the repository's over it.
|
|
36
|
+
* `LLM4TS_EXECUTORS=a,b` narrows the result to those ids.
|
|
37
|
+
*/
|
|
38
|
+
export declare const loadRosterDocument: (source: RosterSource) => Effect.Effect<RosterDocument | undefined, import("@llm4ts/flow/FlowError").PersistenceError | import("@llm4ts/flow/FlowError").PlanParseError | import("@llm4ts/flow/FlowError").UnsupportedSchemaVersion | import("@llm4ts/flow/FlowError").WorkspacePathError | import("@llm4ts/flow/FlowError").WorkspaceLimitError | import("@llm4ts/flow/FlowError").WorkspaceIoError | import("@llm4ts/flow/FlowError").FlowAborted | import("@llm4ts/flow/FlowError").ProcessError | import("@llm4ts/flow/FlowError").FlowLlmError | import("@llm4ts/flow/FlowError").FlowCapabilityDenied | import("@llm4ts/flow/FlowError").ColumnNotFound | import("@llm4ts/flow/FlowError").BudgetExceeded | import("@llm4ts/flow/FlowError").StoryPlanInvalid | import("@llm4ts/flow/FlowError").PerimeterViolation | import("@llm4ts/flow/FlowError").MissingDependency | import("@llm4ts/flow/FlowError").MergeConflict | import("@llm4ts/flow/FlowError").EpicCheckoutDirty | import("@llm4ts/flow/FlowError").RosterExhausted | RosterInvalid | import("@llm4ts/flow/FlowError").StoryFailed | import("@llm4ts/flow/FlowError").DecisionsInvalid | import("@llm4ts/flow/FlowError").OpenPointsPending | import("@llm4ts/flow/FlowError").ContractConflict, never>;
|
|
39
|
+
/** Whether `url` answers 2xx within five seconds: a roster executor's health check. */
|
|
40
|
+
export declare const httpProbe: (url: string) => Effect.Effect<boolean>;
|
|
41
|
+
export interface RosterReport {
|
|
42
|
+
readonly document: RosterDocument | undefined;
|
|
43
|
+
readonly exclusions: ReadonlyArray<Exclusion>;
|
|
44
|
+
readonly statePath: string;
|
|
45
|
+
}
|
|
46
|
+
/** The roster in force here and the exclusions persisted for it. */
|
|
47
|
+
export declare const rosterReport: (source: RosterSource) => Effect.Effect<RosterReport, import("@llm4ts/flow/FlowError").PersistenceError | import("@llm4ts/flow/FlowError").PlanParseError | import("@llm4ts/flow/FlowError").UnsupportedSchemaVersion | import("@llm4ts/flow/FlowError").WorkspacePathError | import("@llm4ts/flow/FlowError").WorkspaceLimitError | import("@llm4ts/flow/FlowError").WorkspaceIoError | import("@llm4ts/flow/FlowError").FlowAborted | import("@llm4ts/flow/FlowError").ProcessError | import("@llm4ts/flow/FlowError").FlowLlmError | import("@llm4ts/flow/FlowError").FlowCapabilityDenied | import("@llm4ts/flow/FlowError").ColumnNotFound | import("@llm4ts/flow/FlowError").BudgetExceeded | import("@llm4ts/flow/FlowError").StoryPlanInvalid | import("@llm4ts/flow/FlowError").PerimeterViolation | import("@llm4ts/flow/FlowError").MissingDependency | import("@llm4ts/flow/FlowError").MergeConflict | import("@llm4ts/flow/FlowError").EpicCheckoutDirty | import("@llm4ts/flow/FlowError").RosterExhausted | RosterInvalid | import("@llm4ts/flow/FlowError").StoryFailed | import("@llm4ts/flow/FlowError").DecisionsInvalid | import("@llm4ts/flow/FlowError").OpenPointsPending | import("@llm4ts/flow/FlowError").ContractConflict, never>;
|
|
48
|
+
export declare const renderRosterReport: (report: RosterReport) => string;
|
|
49
|
+
/** Takes an executor out of every run's pick-up round, for a while or until resumed. */
|
|
50
|
+
export declare const pauseExecutor: (source: RosterSource, id: string, duration: string | undefined) => Effect.Effect<Exclusion, import("@llm4ts/flow/FlowError").PersistenceError | import("@llm4ts/flow/FlowError").PlanParseError | import("@llm4ts/flow/FlowError").UnsupportedSchemaVersion | import("@llm4ts/flow/FlowError").WorkspacePathError | import("@llm4ts/flow/FlowError").WorkspaceLimitError | import("@llm4ts/flow/FlowError").WorkspaceIoError | import("@llm4ts/flow/FlowError").FlowAborted | import("@llm4ts/flow/FlowError").ProcessError | import("@llm4ts/flow/FlowError").FlowLlmError | import("@llm4ts/flow/FlowError").FlowCapabilityDenied | import("@llm4ts/flow/FlowError").ColumnNotFound | import("@llm4ts/flow/FlowError").BudgetExceeded | import("@llm4ts/flow/FlowError").StoryPlanInvalid | import("@llm4ts/flow/FlowError").PerimeterViolation | import("@llm4ts/flow/FlowError").MissingDependency | import("@llm4ts/flow/FlowError").MergeConflict | import("@llm4ts/flow/FlowError").EpicCheckoutDirty | import("@llm4ts/flow/FlowError").RosterExhausted | RosterInvalid | import("@llm4ts/flow/FlowError").StoryFailed | import("@llm4ts/flow/FlowError").DecisionsInvalid | import("@llm4ts/flow/FlowError").OpenPointsPending | import("@llm4ts/flow/FlowError").ContractConflict, never>;
|
|
51
|
+
/** Puts an executor back in the round, whatever took it out. */
|
|
52
|
+
export declare const resumeExecutor: (source: RosterSource, id: string) => Effect.Effect<void, import("@llm4ts/flow/FlowError").PersistenceError | import("@llm4ts/flow/FlowError").PlanParseError | import("@llm4ts/flow/FlowError").UnsupportedSchemaVersion | import("@llm4ts/flow/FlowError").WorkspacePathError | import("@llm4ts/flow/FlowError").WorkspaceLimitError | import("@llm4ts/flow/FlowError").WorkspaceIoError | import("@llm4ts/flow/FlowError").FlowAborted | import("@llm4ts/flow/FlowError").ProcessError | import("@llm4ts/flow/FlowError").FlowLlmError | import("@llm4ts/flow/FlowError").FlowCapabilityDenied | import("@llm4ts/flow/FlowError").ColumnNotFound | import("@llm4ts/flow/FlowError").BudgetExceeded | import("@llm4ts/flow/FlowError").StoryPlanInvalid | import("@llm4ts/flow/FlowError").PerimeterViolation | import("@llm4ts/flow/FlowError").MissingDependency | import("@llm4ts/flow/FlowError").MergeConflict | import("@llm4ts/flow/FlowError").EpicCheckoutDirty | import("@llm4ts/flow/FlowError").RosterExhausted | RosterInvalid | import("@llm4ts/flow/FlowError").StoryFailed | import("@llm4ts/flow/FlowError").DecisionsInvalid | import("@llm4ts/flow/FlowError").OpenPointsPending | import("@llm4ts/flow/FlowError").ContractConflict, never>;
|
|
53
|
+
export {};
|
|
54
|
+
//# sourceMappingURL=ExecutorRoster.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExecutorRoster.d.ts","sourceRoot":"","sources":["../src/ExecutorRoster.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,aAAa,EAAkB,MAAM,wBAAwB,CAAA;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,EACL,SAAS,EACT,cAAc,EAWd,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAA;AAG5B,KAAK,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;AAI/D,0DAA0D;AAC1D,eAAO,MAAM,cAAc,GAAI,aAAa,WAAW,KAAG,MACwC,CAAA;AAElG,wEAAwE;AACxE,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,KAAG,MAAiD,CAAA;AAElG,mGAAmG;AACnG,eAAO,MAAM,eAAe,GAAI,aAAa,WAAW,KAAG,MAKxD,CAAA;AAIH,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,GAChC,QAAQ,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACxC,aAAa,WAAW,KACvB;IACD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACjD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAexC,CAAA;AAED,wEAAwE;AACxE,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,KAAG,OACyB,CAAA;AAExE;;;GAGG;AACH,eAAO,MAAM,cAAc,GACzB,MAAM,YAAY,EAClB,UAAU,OAAO,EACjB,aAAa,WAAW,KACvB,eAAe,GAAG,SAsBpB,CAAA;AAED,uFAAuF;AACvF,eAAO,MAAM,oBAAoB,GAC/B,UAAU,cAAc,EACxB,aAAa,WAAW,KACvB,aAAa,CAAC,MAAM,CAiBtB,CAAA;AA0BD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAA;IACnC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,6sCAgD7B,CAAA;AAEF,uFAAuF;AACvF,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAI1D,CAAA;AAIH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED,oEAAoE;AACpE,eAAO,MAAM,YAAY,+rCAOvB,CAAA;AAeF,eAAO,MAAM,kBAAkB,GAAI,QAAQ,YAAY,KAAG,MAmBzD,CAAA;AAED,wFAAwF;AACxF,eAAO,MAAM,aAAa,suCAyBxB,CAAA;AAEF,gEAAgE;AAChE,eAAO,MAAM,cAAc,msCAKzB,CAAA"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
// Loading the executor roster (ADR 0019): the user's file, the repository's
|
|
2
|
+
// override, the per-run choice (`LLM4TS_ROSTER`, `LLM4TS_EXECUTORS`), and the
|
|
3
|
+
// mapping from an executor to the connector config the registry resolves.
|
|
4
|
+
// Harness knowledge lives here, beside the connector presets; the roster
|
|
5
|
+
// itself (`@llm4ts/flow/Roster`) knows only ids, roles and slots.
|
|
6
|
+
import { homedir } from "node:os";
|
|
7
|
+
import { join } from "node:path";
|
|
8
|
+
import * as Clock from "effect/Clock";
|
|
9
|
+
import * as Duration from "effect/Duration";
|
|
10
|
+
import * as Effect from "effect/Effect";
|
|
11
|
+
import * as Schema from "effect/Schema";
|
|
12
|
+
import { ApiConnectorConfig, CliConnectorConfig } from "@llm4ts/core/ConnectorConfig";
|
|
13
|
+
import { RosterInvalid } from "@llm4ts/flow/FlowError";
|
|
14
|
+
import { Exclusion, RosterDocument, coderSlotsOf, describeExclusion, hasRole, makeRosterStateStore, mergeRosterDocuments, narrowRoster, parseDuration, rolesOf, rosterViolations, slotsOf } from "@llm4ts/flow/Roster";
|
|
15
|
+
import { apiPresetFor, asReadOnly, coderFor, withEnvironment, withModel } from "./Connectors.js";
|
|
16
|
+
const home = (environment) => environment.HOME ?? homedir();
|
|
17
|
+
/** `${XDG_CONFIG_HOME:-~/.config}/llm4ts/roster.json`. */
|
|
18
|
+
export const userRosterPath = (environment) => join(environment.XDG_CONFIG_HOME ?? join(home(environment), ".config"), "llm4ts", "roster.json");
|
|
19
|
+
/** `<repo>/.llm4ts/roster.json`: overrides the user's entries by id. */
|
|
20
|
+
export const repoRosterPath = (workDir) => join(workDir, ".llm4ts", "roster.json");
|
|
21
|
+
/** `${XDG_STATE_HOME:-~/.local/state}/llm4ts/roster-state.json`: exclusions that outlive a run. */
|
|
22
|
+
export const rosterStatePath = (environment) => join(environment.XDG_STATE_HOME ?? join(home(environment), ".local", "state"), "llm4ts", "roster-state.json");
|
|
23
|
+
const reference = /\$\{([A-Za-z_][A-Za-z0-9_]*)\}/g;
|
|
24
|
+
/** `${VAR}` references resolved from the environment; the names of missing ones. */
|
|
25
|
+
export const substituteEnvironment = (values, environment) => {
|
|
26
|
+
const missing = [];
|
|
27
|
+
const resolved = {};
|
|
28
|
+
for (const [key, value] of Object.entries(values)) {
|
|
29
|
+
resolved[key] = value.replace(reference, (_match, name) => {
|
|
30
|
+
const found = environment[name];
|
|
31
|
+
if (found === undefined) {
|
|
32
|
+
missing.push(name);
|
|
33
|
+
return "";
|
|
34
|
+
}
|
|
35
|
+
return found;
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
return { values: resolved, missing: [...new Set(missing)] };
|
|
39
|
+
};
|
|
40
|
+
/** Whether a harness name is an API provider (reasoning roles only). */
|
|
41
|
+
export const isApiHarness = (harness) => coderFor(harness) === undefined && apiPresetFor(harness) !== undefined;
|
|
42
|
+
/**
|
|
43
|
+
* The connector config an executor runs with: its harness preset, model,
|
|
44
|
+
* flags, endpoint and environment, read-only for a reasoning role.
|
|
45
|
+
*/
|
|
46
|
+
export const executorConfig = (spec, readOnly, environment) => {
|
|
47
|
+
const cli = coderFor(spec.harness);
|
|
48
|
+
if (cli !== undefined) {
|
|
49
|
+
const modelled = spec.model === undefined ? cli : withModel(cli, spec.model);
|
|
50
|
+
const flagged = spec.flags === undefined
|
|
51
|
+
? modelled
|
|
52
|
+
: CliConnectorConfig.make({ ...modelled, flags: { ...modelled.flags, ...spec.flags } });
|
|
53
|
+
const withEnv = spec.env === undefined
|
|
54
|
+
? flagged
|
|
55
|
+
: withEnvironment(flagged, substituteEnvironment(spec.env, environment).values);
|
|
56
|
+
return readOnly ? asReadOnly(withEnv) : withEnv;
|
|
57
|
+
}
|
|
58
|
+
const api = apiPresetFor(spec.harness);
|
|
59
|
+
if (api === undefined) {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
const modelled = spec.model === undefined ? api : withModel(api, spec.model);
|
|
63
|
+
return spec.baseUrl === undefined
|
|
64
|
+
? modelled
|
|
65
|
+
: ApiConnectorConfig.make({ ...modelled, baseUrl: spec.baseUrl });
|
|
66
|
+
};
|
|
67
|
+
/** The flow-level violations plus what needs the harness table and the environment. */
|
|
68
|
+
export const rosterLoadViolations = (document, environment) => {
|
|
69
|
+
const violations = [...rosterViolations(document)];
|
|
70
|
+
for (const spec of document.executors) {
|
|
71
|
+
const where = `executor '${spec.id}'`;
|
|
72
|
+
if (coderFor(spec.harness) === undefined && apiPresetFor(spec.harness) === undefined) {
|
|
73
|
+
violations.push(`${where} has an unknown harness '${spec.harness}'`);
|
|
74
|
+
}
|
|
75
|
+
else if (isApiHarness(spec.harness) && hasRole(spec, "coder")) {
|
|
76
|
+
violations.push(`${where} is an API provider ('${spec.harness}'): it may reason, but coding needs a CLI harness`);
|
|
77
|
+
}
|
|
78
|
+
const missing = substituteEnvironment(spec.env ?? {}, environment).missing;
|
|
79
|
+
if (missing.length > 0) {
|
|
80
|
+
violations.push(`${where} references unset variable(s) ${missing.join(", ")}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return violations;
|
|
84
|
+
};
|
|
85
|
+
const parseRoster = (path, text) => Effect.try({
|
|
86
|
+
try: () => JSON.parse(text),
|
|
87
|
+
catch: (error) => RosterInvalid.make({
|
|
88
|
+
path,
|
|
89
|
+
violations: [`not JSON: ${error instanceof Error ? error.message : String(error)}`]
|
|
90
|
+
})
|
|
91
|
+
}).pipe(Effect.flatMap((json) => Schema.decodeUnknownEffect(RosterDocument)(json).pipe(Effect.mapError((error) => RosterInvalid.make({ path, violations: [error.message] })))));
|
|
92
|
+
const readRoster = (files, path) => Effect.flatMap(files.read(path), (text) => text === undefined ? Effect.succeed(undefined) : parseRoster(path, text));
|
|
93
|
+
/**
|
|
94
|
+
* The roster in force for a run, or `undefined` for today's one executor per
|
|
95
|
+
* seat: `LLM4TS_ROSTER=none` ignores rosters, `LLM4TS_ROSTER=<path>` uses that
|
|
96
|
+
* file alone, otherwise the user's file with the repository's over it.
|
|
97
|
+
* `LLM4TS_EXECUTORS=a,b` narrows the result to those ids.
|
|
98
|
+
*/
|
|
99
|
+
export const loadRosterDocument = Effect.fn("@llm4ts/runner/ExecutorRoster.load")(function* (source) {
|
|
100
|
+
const chosen = source.environment.LLM4TS_ROSTER?.trim();
|
|
101
|
+
if (chosen === "none") {
|
|
102
|
+
return undefined;
|
|
103
|
+
}
|
|
104
|
+
const loaded = yield* chosen !== undefined && chosen.length > 0
|
|
105
|
+
? Effect.flatMap(readRoster(source.files, chosen), (document) => document === undefined
|
|
106
|
+
? Effect.fail(RosterInvalid.make({ path: chosen, violations: ["no roster file there"] }))
|
|
107
|
+
: Effect.succeed({ document, where: chosen }))
|
|
108
|
+
: Effect.gen(function* () {
|
|
109
|
+
const user = userRosterPath(source.environment);
|
|
110
|
+
const repo = repoRosterPath(source.workDir);
|
|
111
|
+
const userDocument = yield* readRoster(source.files, user);
|
|
112
|
+
const repoDocument = yield* readRoster(source.files, repo);
|
|
113
|
+
if (userDocument === undefined && repoDocument === undefined) {
|
|
114
|
+
return undefined;
|
|
115
|
+
}
|
|
116
|
+
const where = [
|
|
117
|
+
userDocument === undefined ? undefined : user,
|
|
118
|
+
repoDocument === undefined ? undefined : repo
|
|
119
|
+
]
|
|
120
|
+
.filter((path) => path !== undefined)
|
|
121
|
+
.join(" + ");
|
|
122
|
+
return { document: mergeRosterDocuments(userDocument, repoDocument), where };
|
|
123
|
+
});
|
|
124
|
+
if (loaded === undefined) {
|
|
125
|
+
return undefined;
|
|
126
|
+
}
|
|
127
|
+
const { document, where } = loaded;
|
|
128
|
+
const ids = (source.environment.LLM4TS_EXECUTORS ?? "")
|
|
129
|
+
.split(",")
|
|
130
|
+
.map((id) => id.trim())
|
|
131
|
+
.filter((id) => id.length > 0);
|
|
132
|
+
const unknown = ids.filter((id) => !document.executors.some((spec) => spec.id === id));
|
|
133
|
+
const narrowed = narrowRoster(document, ids);
|
|
134
|
+
const violations = [
|
|
135
|
+
...rosterLoadViolations(narrowed, source.environment),
|
|
136
|
+
...unknown.map((id) => `LLM4TS_EXECUTORS names '${id}', which the roster does not have`),
|
|
137
|
+
...(narrowed.executors.length === 0 ? ["no executor left to run with"] : [])
|
|
138
|
+
];
|
|
139
|
+
if (violations.length > 0) {
|
|
140
|
+
return yield* RosterInvalid.make({ path: where, violations });
|
|
141
|
+
}
|
|
142
|
+
return narrowed;
|
|
143
|
+
});
|
|
144
|
+
/** Whether `url` answers 2xx within five seconds: a roster executor's health check. */
|
|
145
|
+
export const httpProbe = (url) => Effect.tryPromise(() => fetch(url, { signal: AbortSignal.timeout(5_000) })).pipe(Effect.map((response) => response.ok), Effect.catch(() => Effect.succeed(false)));
|
|
146
|
+
/** The roster in force here and the exclusions persisted for it. */
|
|
147
|
+
export const rosterReport = Effect.fn("@llm4ts/runner/ExecutorRoster.report")(function* (source) {
|
|
148
|
+
const document = yield* loadRosterDocument(source);
|
|
149
|
+
const statePath = rosterStatePath(source.environment);
|
|
150
|
+
const exclusions = yield* makeRosterStateStore(source.files, statePath).load;
|
|
151
|
+
return { document, exclusions, statePath };
|
|
152
|
+
});
|
|
153
|
+
const priorityText = (spec) => {
|
|
154
|
+
const priority = spec.priority;
|
|
155
|
+
if (priority === undefined) {
|
|
156
|
+
return "priority 1";
|
|
157
|
+
}
|
|
158
|
+
if (typeof priority === "number") {
|
|
159
|
+
return `priority ${priority}`;
|
|
160
|
+
}
|
|
161
|
+
return `priority ${Object.entries(priority)
|
|
162
|
+
.map(([role, value]) => `${role} ${value}`)
|
|
163
|
+
.join(", ")}`;
|
|
164
|
+
};
|
|
165
|
+
export const renderRosterReport = (report) => {
|
|
166
|
+
if (report.document === undefined) {
|
|
167
|
+
return [
|
|
168
|
+
"no roster: every run uses one executor per seat (LLM4TS_CODER and the flow's defaults).",
|
|
169
|
+
"Write ~/.config/llm4ts/roster.json (or <repo>/.llm4ts/roster.json) to pool executors."
|
|
170
|
+
].join("\n");
|
|
171
|
+
}
|
|
172
|
+
const lines = [`executors (${report.document.executors.length}):`];
|
|
173
|
+
for (const spec of report.document.executors) {
|
|
174
|
+
const exclusion = report.exclusions.find((candidate) => candidate.id === spec.id);
|
|
175
|
+
const slots = slotsOf(spec);
|
|
176
|
+
const coders = hasRole(spec, "coder") ? `, ${coderSlotsOf(spec)} for coding` : "";
|
|
177
|
+
lines.push(`- ${spec.id}: ${spec.harness}${spec.model === undefined ? "" : ` ${spec.model}`} · ${rolesOf(spec).join(", ")} · ${slots} slot(s)${coders} · ${priorityText(spec)}`, ` ${exclusion === undefined ? "in the round" : `out ${describeExclusion(exclusion)}`}`);
|
|
178
|
+
}
|
|
179
|
+
lines.push(`state: ${report.statePath}`);
|
|
180
|
+
return lines.join("\n");
|
|
181
|
+
};
|
|
182
|
+
/** Takes an executor out of every run's pick-up round, for a while or until resumed. */
|
|
183
|
+
export const pauseExecutor = Effect.fn("@llm4ts/runner/ExecutorRoster.pause")(function* (source, id, duration) {
|
|
184
|
+
const document = yield* loadRosterDocument(source);
|
|
185
|
+
if (document === undefined || !document.executors.some((spec) => spec.id === id)) {
|
|
186
|
+
return yield* RosterInvalid.make({ violations: [`no executor '${id}' in the roster`] });
|
|
187
|
+
}
|
|
188
|
+
const span = duration === undefined ? undefined : parseDuration(duration);
|
|
189
|
+
if (duration !== undefined && span === undefined) {
|
|
190
|
+
return yield* RosterInvalid.make({ violations: [`cannot read the duration '${duration}'`] });
|
|
191
|
+
}
|
|
192
|
+
const now = yield* Clock.currentTimeMillis;
|
|
193
|
+
const exclusion = Exclusion.make({
|
|
194
|
+
id,
|
|
195
|
+
kind: "manual",
|
|
196
|
+
reason: "paused by the operator",
|
|
197
|
+
...(span === undefined ? {} : { until: now + Duration.toMillis(span) })
|
|
198
|
+
});
|
|
199
|
+
yield* makeRosterStateStore(source.files, rosterStatePath(source.environment)).save([id], [exclusion]);
|
|
200
|
+
return exclusion;
|
|
201
|
+
});
|
|
202
|
+
/** Puts an executor back in the round, whatever took it out. */
|
|
203
|
+
export const resumeExecutor = Effect.fn("@llm4ts/runner/ExecutorRoster.resume")(function* (source, id) {
|
|
204
|
+
yield* makeRosterStateStore(source.files, rosterStatePath(source.environment)).save([id], []);
|
|
205
|
+
});
|
|
206
|
+
//# sourceMappingURL=ExecutorRoster.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExecutorRoster.js","sourceRoot":"","sources":["../src/ExecutorRoster.ts"],"names":[],"mappings":"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"}
|
package/dist/FlowRunner.d.ts
CHANGED
|
@@ -9,11 +9,12 @@ import type { TemporaryFilesShape } from "@llm4ts/core/TemporaryFiles";
|
|
|
9
9
|
import type { GeminiCliExecutorShape } from "@llm4ts/core/providers/GeminiCliProvider";
|
|
10
10
|
import { type CostTracker } from "@llm4ts/flow/CostTracker";
|
|
11
11
|
import { type CostBudget } from "@llm4ts/flow/CostLedger";
|
|
12
|
-
import { FlowLlmError, type FlowError } from "@llm4ts/flow/FlowError";
|
|
12
|
+
import { FlowLlmError, RosterInvalid, type FlowError } from "@llm4ts/flow/FlowError";
|
|
13
13
|
import { type FlowEventHub } from "@llm4ts/flow/FlowEvents";
|
|
14
14
|
import { type FlowContextShape } from "@llm4ts/flow/FlowContext";
|
|
15
15
|
import { type JudgmentLogShape } from "@llm4ts/flow/JudgmentLog";
|
|
16
16
|
import type { PlainFileStoreShape } from "@llm4ts/flow/Persistence";
|
|
17
|
+
import { type RosterDocument } from "@llm4ts/flow/Roster";
|
|
17
18
|
import { type TerminalSurface, type Verbosity } from "./Terminal.ts";
|
|
18
19
|
export interface FlowRunnerDependencies {
|
|
19
20
|
readonly registry: ConnectorRegistryShape;
|
|
@@ -88,18 +89,27 @@ export interface FlowRunnerOptions {
|
|
|
88
89
|
* nothing (see the connector capability matrix).
|
|
89
90
|
*/
|
|
90
91
|
readonly budget?: CostBudget;
|
|
92
|
+
/**
|
|
93
|
+
* The executor roster (ADR 0019): every seat is then served from it and
|
|
94
|
+
* the coder/reasoning/reviewer configs above are ignored. Omitted, the
|
|
95
|
+
* runner loads one (`LLM4TS_ROSTER`, the user's and the repository's
|
|
96
|
+
* roster files); `"none"` runs with one executor per seat.
|
|
97
|
+
*/
|
|
98
|
+
readonly roster?: RosterDocument | "none";
|
|
91
99
|
}
|
|
92
100
|
export interface FlowRunnerBundle {
|
|
93
101
|
readonly context: FlowContextShape;
|
|
102
|
+
/** The executor roster in force (ADR 0019), when the run has one. */
|
|
103
|
+
readonly roster?: RosterDocument;
|
|
94
104
|
readonly events: FlowEventHub;
|
|
95
105
|
/** The run's cost tracker, already subscribed to `events`. */
|
|
96
106
|
readonly tracker: CostTracker;
|
|
97
107
|
readonly runId: string;
|
|
98
108
|
readonly judgmentLog?: JudgmentLogShape;
|
|
99
109
|
}
|
|
100
|
-
export declare const makeFlowRunnerContext: (options: FlowRunnerOptions, dependencies: FlowRunnerDependencies) => Effect.Effect<FlowRunnerBundle, import("@llm4ts/flow/FlowError").PersistenceError | import("@llm4ts/flow/FlowError").PlanParseError | import("@llm4ts/flow/FlowError").UnsupportedSchemaVersion | import("@llm4ts/flow/FlowError").WorkspacePathError | import("@llm4ts/flow/FlowError").WorkspaceLimitError | import("@llm4ts/flow/FlowError").WorkspaceIoError | import("@llm4ts/flow/FlowError").FlowAborted | import("@llm4ts/flow/FlowError").ProcessError | FlowLlmError | import("@llm4ts/flow/FlowError").FlowCapabilityDenied | import("@llm4ts/flow/FlowError").ColumnNotFound | import("@llm4ts/flow/FlowError").BudgetExceeded | import("@llm4ts/flow/FlowError").StoryPlanInvalid | import("@llm4ts/flow/FlowError").PerimeterViolation | import("@llm4ts/flow/FlowError").MissingDependency | import("@llm4ts/flow/FlowError").MergeConflict | import("@llm4ts/flow/FlowError").EpicCheckoutDirty | import("@llm4ts/flow/FlowError").StoryFailed | import("@llm4ts/flow/FlowError").DecisionsInvalid | import("@llm4ts/flow/FlowError").OpenPointsPending | import("@llm4ts/flow/FlowError").ContractConflict, Scope.Scope>;
|
|
101
|
-
export declare const runWithBundle: <A, E, R>(bundle: FlowRunnerBundle, options: FlowRunnerOptions, body: (context: FlowContextShape) => Effect.Effect<A, E, R>, dependencies?: FlowRunnerDependencies | undefined) => Effect.Effect<A, import("@llm4ts/flow/FlowError").PersistenceError | import("@llm4ts/flow/FlowError").PlanParseError | import("@llm4ts/flow/FlowError").UnsupportedSchemaVersion | import("@llm4ts/flow/FlowError").WorkspacePathError | import("@llm4ts/flow/FlowError").WorkspaceLimitError | import("@llm4ts/flow/FlowError").WorkspaceIoError | import("@llm4ts/flow/FlowError").FlowAborted | import("@llm4ts/flow/FlowError").ProcessError | FlowLlmError | import("@llm4ts/flow/FlowError").FlowCapabilityDenied | import("@llm4ts/flow/FlowError").ColumnNotFound | import("@llm4ts/flow/FlowError").BudgetExceeded | import("@llm4ts/flow/FlowError").StoryPlanInvalid | import("@llm4ts/flow/FlowError").PerimeterViolation | import("@llm4ts/flow/FlowError").MissingDependency | import("@llm4ts/flow/FlowError").MergeConflict | import("@llm4ts/flow/FlowError").EpicCheckoutDirty | import("@llm4ts/flow/FlowError").StoryFailed | import("@llm4ts/flow/FlowError").DecisionsInvalid | import("@llm4ts/flow/FlowError").OpenPointsPending | import("@llm4ts/flow/FlowError").ContractConflict | E, Scope.Scope | R>;
|
|
102
|
-
export declare const runEmbedded: <A, E, R>(options: FlowRunnerOptions, body: (context: FlowContextShape) => Effect.Effect<A, E, R>, dependencies?: FlowRunnerDependencies | undefined) => Effect.Effect<A, import("@llm4ts/flow/FlowError").PersistenceError | import("@llm4ts/flow/FlowError").PlanParseError | import("@llm4ts/flow/FlowError").UnsupportedSchemaVersion | import("@llm4ts/flow/FlowError").WorkspacePathError | import("@llm4ts/flow/FlowError").WorkspaceLimitError | import("@llm4ts/flow/FlowError").WorkspaceIoError | import("@llm4ts/flow/FlowError").FlowAborted | import("@llm4ts/flow/FlowError").ProcessError | FlowLlmError | import("@llm4ts/flow/FlowError").FlowCapabilityDenied | import("@llm4ts/flow/FlowError").ColumnNotFound | import("@llm4ts/flow/FlowError").BudgetExceeded | import("@llm4ts/flow/FlowError").StoryPlanInvalid | import("@llm4ts/flow/FlowError").PerimeterViolation | import("@llm4ts/flow/FlowError").MissingDependency | import("@llm4ts/flow/FlowError").MergeConflict | import("@llm4ts/flow/FlowError").EpicCheckoutDirty | import("@llm4ts/flow/FlowError").StoryFailed | import("@llm4ts/flow/FlowError").DecisionsInvalid | import("@llm4ts/flow/FlowError").OpenPointsPending | import("@llm4ts/flow/FlowError").ContractConflict | E, Scope.Scope | R>;
|
|
110
|
+
export declare const makeFlowRunnerContext: (options: FlowRunnerOptions, dependencies: FlowRunnerDependencies) => Effect.Effect<FlowRunnerBundle, import("@llm4ts/flow/FlowError").PersistenceError | import("@llm4ts/flow/FlowError").PlanParseError | import("@llm4ts/flow/FlowError").UnsupportedSchemaVersion | import("@llm4ts/flow/FlowError").WorkspacePathError | import("@llm4ts/flow/FlowError").WorkspaceLimitError | import("@llm4ts/flow/FlowError").WorkspaceIoError | import("@llm4ts/flow/FlowError").FlowAborted | import("@llm4ts/flow/FlowError").ProcessError | FlowLlmError | import("@llm4ts/flow/FlowError").FlowCapabilityDenied | import("@llm4ts/flow/FlowError").ColumnNotFound | import("@llm4ts/flow/FlowError").BudgetExceeded | import("@llm4ts/flow/FlowError").StoryPlanInvalid | import("@llm4ts/flow/FlowError").PerimeterViolation | import("@llm4ts/flow/FlowError").MissingDependency | import("@llm4ts/flow/FlowError").MergeConflict | import("@llm4ts/flow/FlowError").EpicCheckoutDirty | import("@llm4ts/flow/FlowError").RosterExhausted | RosterInvalid | import("@llm4ts/flow/FlowError").StoryFailed | import("@llm4ts/flow/FlowError").DecisionsInvalid | import("@llm4ts/flow/FlowError").OpenPointsPending | import("@llm4ts/flow/FlowError").ContractConflict, Scope.Scope>;
|
|
111
|
+
export declare const runWithBundle: <A, E, R>(bundle: FlowRunnerBundle, options: FlowRunnerOptions, body: (context: FlowContextShape) => Effect.Effect<A, E, R>, dependencies?: FlowRunnerDependencies | undefined) => Effect.Effect<A, import("@llm4ts/flow/FlowError").PersistenceError | import("@llm4ts/flow/FlowError").PlanParseError | import("@llm4ts/flow/FlowError").UnsupportedSchemaVersion | import("@llm4ts/flow/FlowError").WorkspacePathError | import("@llm4ts/flow/FlowError").WorkspaceLimitError | import("@llm4ts/flow/FlowError").WorkspaceIoError | import("@llm4ts/flow/FlowError").FlowAborted | import("@llm4ts/flow/FlowError").ProcessError | FlowLlmError | import("@llm4ts/flow/FlowError").FlowCapabilityDenied | import("@llm4ts/flow/FlowError").ColumnNotFound | import("@llm4ts/flow/FlowError").BudgetExceeded | import("@llm4ts/flow/FlowError").StoryPlanInvalid | import("@llm4ts/flow/FlowError").PerimeterViolation | import("@llm4ts/flow/FlowError").MissingDependency | import("@llm4ts/flow/FlowError").MergeConflict | import("@llm4ts/flow/FlowError").EpicCheckoutDirty | import("@llm4ts/flow/FlowError").RosterExhausted | RosterInvalid | import("@llm4ts/flow/FlowError").StoryFailed | import("@llm4ts/flow/FlowError").DecisionsInvalid | import("@llm4ts/flow/FlowError").OpenPointsPending | import("@llm4ts/flow/FlowError").ContractConflict | E, Scope.Scope | R>;
|
|
112
|
+
export declare const runEmbedded: <A, E, R>(options: FlowRunnerOptions, body: (context: FlowContextShape) => Effect.Effect<A, E, R>, dependencies?: FlowRunnerDependencies | undefined) => Effect.Effect<A, import("@llm4ts/flow/FlowError").PersistenceError | import("@llm4ts/flow/FlowError").PlanParseError | import("@llm4ts/flow/FlowError").UnsupportedSchemaVersion | import("@llm4ts/flow/FlowError").WorkspacePathError | import("@llm4ts/flow/FlowError").WorkspaceLimitError | import("@llm4ts/flow/FlowError").WorkspaceIoError | import("@llm4ts/flow/FlowError").FlowAborted | import("@llm4ts/flow/FlowError").ProcessError | FlowLlmError | import("@llm4ts/flow/FlowError").FlowCapabilityDenied | import("@llm4ts/flow/FlowError").ColumnNotFound | import("@llm4ts/flow/FlowError").BudgetExceeded | import("@llm4ts/flow/FlowError").StoryPlanInvalid | import("@llm4ts/flow/FlowError").PerimeterViolation | import("@llm4ts/flow/FlowError").MissingDependency | import("@llm4ts/flow/FlowError").MergeConflict | import("@llm4ts/flow/FlowError").EpicCheckoutDirty | import("@llm4ts/flow/FlowError").RosterExhausted | RosterInvalid | import("@llm4ts/flow/FlowError").StoryFailed | import("@llm4ts/flow/FlowError").DecisionsInvalid | import("@llm4ts/flow/FlowError").OpenPointsPending | import("@llm4ts/flow/FlowError").ContractConflict | E, Scope.Scope | R>;
|
|
103
113
|
export declare const runNode: <A, E, R>(options: FlowRunnerOptions, body: (context: FlowContextShape) => Effect.Effect<A, E, R>) => Effect.Effect<A, E | FlowError, R>;
|
|
104
114
|
export declare const runFlowMain: <E>(program: Effect.Effect<void, E>) => void;
|
|
105
115
|
//# sourceMappingURL=FlowRunner.d.ts.map
|
package/dist/FlowRunner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowRunner.d.ts","sourceRoot":"","sources":["../src/FlowRunner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAEnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"FlowRunner.d.ts","sourceRoot":"","sources":["../src/FlowRunner.ts"],"names":[],"mappings":"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"}
|