@clemrig/flow 0.8.0 → 0.10.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/README.md CHANGED
@@ -45,15 +45,15 @@ console.log(state.status, state.data);
45
45
 
46
46
  A workflow may declare `steps`: ordered groups of its stages that show how far a run went, for instance `steps: [{ name: "greet", stages: ["greet"] }]`. `defineWorkflow` refuses steps unless they name each step once and hold each stage exactly once; the engine itself ignores them, and the factory's Kanban shows them.
47
47
 
48
- Before it creates the run, `startRun` checks, in this order, `dir` (an existing directory), the budget (`maxCostUsd`, in USD, replaces the workflow's; refused when an agent stage uses Codex, which announces no cost), the input against the workflow's `input` (an `InvalidInputError` lists every problem), the prompts (a non-empty text for each agent stage's prompt) and each runtime the workflow uses, its version and connection checked in `dir`; the first failing check rejects it with its reasons. It then returns the run, its end (`done`) and `stop(reason)`, which fails the run before its next stage. Runs are kept in `runsDir` when it is given. The engine never changes the process's current directory: stage code reaches the working directory through `dir`, and the run's own folder through `runDir`, where it can keep files that belong to the run. While child processes run (agents, commands), a SIGINT or SIGTERM to the program interrupts them, each agent with the signal on which it ends its own commands, so that none outlives it, and stops each run before its next stage, even if a stage catches the interruption. A program about to quit at once can call `killChildProcesses()`, which kills the child processes of every run, but not the commands Codex runs in their own process groups.
48
+ Before it creates the run, `startRun` checks, in this order, `dir` (an existing directory), the budget (`maxCostUsd`, in USD, replaces the workflow's; refused when an agent stage uses Codex, which announces no cost), the input against the workflow's `input` (an `InvalidInputError` lists every problem), the prompts (a non-empty text for each agent stage's prompt) and each runtime the workflow uses, its version and connection checked in `dir`; the first failing check rejects it with its reasons. It then records the launch (a `launch` event: flow's version, the `caller` labels given, such as a caller's version and where its prompts come from, each runtime as checked, the budget in force and whether it was given, the run's own or the workflow's, the machine, `dir`, and the names of the variables set that the runtimes read, never their values) and returns the run, its end (`done`) and `stop(reason)`, which fails the run before its next stage. Runs are kept in `runsDir` when it is given. The engine never changes the process's current directory: stage code reaches the working directory through `dir`, and the run's own folder through `runDir`, where it can keep files that belong to the run. While child processes run (agents, commands), a SIGINT or SIGTERM to the program interrupts them, each agent with the signal on which it ends its own commands, so that none outlives it, and stops each run before its next stage, even if a stage catches the interruption. A program about to quit at once can call `killChildProcesses()`, which kills the child processes of every run, but not the commands Codex runs in their own process groups.
49
49
 
50
- `resumeRun({ workflow, runId, maxCostUsd, data, prompts, dir, configDir, runsDir }, hooks)` resumes a failed run at the stage where it stopped, with the same ID, input, data, corrections, measures and agent conversations: that stage runs again, journals why the run had stopped (`Resumed after: …`) and passes it on to its agent, which is asked to continue rather than start over. It refuses, changing nothing, a run that did not fail (a run left `running` after its process was killed included), a run of another workflow, a stage the workflow no longer has, a run that already spent its budget, and whatever the workflow's optional `resumeProblem({ state, dir })` returns, for instance a working directory that is no longer as the stage left it; then it checks prompts and runtimes like `startRun`, takes the run over (two resumptions never both run it: the state is reloaded and marked `running` under a `run.lock` file created atomically in the run's folder) and returns the same handle. The budget is the `maxCostUsd` given, else the one the run was started or last resumed with (`state.maxCostUsd`), else the workflow's. The stage starts over: what it did before it failed must be safe to do again, or `resumeProblem` must refuse. `data` gives the run values decided by the operator, merged into its data before the stage runs again, seen by `resumeProblem` and named in the cause it journals. A run stopped by a retry edge past its maximum is allowed one more correction on that edge by each resumption (`state.allowances`; `exceededEdge(workflow, state)` names that edge, `<stage>.<outcome>`: `state.exceeded`, or for a run stopped before the engine kept it, the edge of its stage whose message its error is, if a single one is): the stage runs again and, if it asks for the correction again, takes it; the correction it could not take is kept in its failed stage event's `feedback`. Each finished stage event also carries its agent's answer (`output`) and the correction it sent back (`feedback`). Calls that announced no cost before the resumption (a call stopped by its timeout) no longer fail the budget; later ones do. The time a run spent stopped is not part of its duration (`state.pausedMs`, left out by `elapsedMs`).
50
+ `resumeRun({ workflow, runId, maxCostUsd, data, prompts, dir, configDir, runsDir, caller }, hooks)` resumes a failed run at the stage where it stopped, with the same ID, input, data, corrections, measures and agent conversations: that stage runs again, journals why the run had stopped (`Resumed after: …`) and passes it on to its agent, which is asked to continue rather than start over. It refuses, changing nothing, a run that did not fail (a run left `running` after its process was killed included), a run of another workflow, a stage the workflow no longer has, a run that already spent its budget, and whatever the workflow's optional `resumeProblem({ state, dir })` returns, for instance a working directory that is no longer as the stage left it; then it checks prompts and runtimes like `startRun`, takes the run over (two resumptions never both run it: the state is reloaded and marked `running` under a `run.lock` file created atomically in the run's folder), records the launch with the values given, and returns the same handle. The budget is the `maxCostUsd` given, else the one the run was started or last resumed with (`state.maxCostUsd`), else the workflow's. The stage starts over: what it did before it failed must be safe to do again, or `resumeProblem` must refuse. `data` gives the run values decided by the operator, merged into its data before the stage runs again, seen by `resumeProblem` and named in the cause it journals. A run stopped by a retry edge past its maximum is allowed one more correction on that edge by each resumption (`state.allowances`; `exceededEdge(workflow, state)` names that edge, `<stage>.<outcome>`: `state.exceeded`, or for a run stopped before the engine kept it, the edge of its stage whose message its error is, if a single one is): the stage runs again and, if it asks for the correction again, takes it; the correction it could not take is kept in its failed stage event's `feedback`. Each finished stage event also carries its agent's answer (`output`) and the correction it sent back (`feedback`). Calls that announced no cost before the resumption (a call stopped by its timeout) no longer fail the budget; later ones do. The time a run spent stopped is not part of its duration (`state.pausedMs`, left out by `elapsedMs`).
51
51
 
52
52
  The stages, gates, corrections, agent profiles, sessions and prompts are described in the "Write a workflow" section of [`@clemrig/factory`'s README](https://www.npmjs.com/package/@clemrig/factory); import them from `@clemrig/flow` here. What it says of `.factory/`, prompt files and `factory run` options belongs to the factory: with the engine alone, the program gives the input, the prompt texts and the directories to `startRun`.
53
53
 
54
54
  ## Runs
55
55
 
56
- Each run keeps `state.json`, `events.jsonl` and, for each agent call, a record in `calls/<n>.json` (the workflow's prompt, the request as the runtime read it, the command with the prompt and the MCP servers' configuration replaced by what names them, and the agent's final text) in its own folder of `runsDir`, by default `.flow/runs/` of `dir`. When the engine creates `.flow/`, it writes a `.gitignore` that ignores everything in it: runs hold inputs, agent outputs and the journal, and stay private. `listRuns(runsDir)`, `loadRun(runsDir, id)`, `loadRunEvents(runsDir, id)`, `loadAgentCall(runsDir, id, n)`, `summarizeRun(state)`, `summarizeCorrections(state, events)` (each retry edge taken, with the maximum its events recorded) and `presentResult(workflow, state)` (any object with a `presentResult` in place of the workflow; without one, the validated data as JSON) read them; `flow-ui` shows them.
56
+ Each run keeps `state.json`, `events.jsonl` and, for each agent call, a record in `calls/<n>.json` (the workflow's prompt, the request as the runtime read it, the command with the prompt and the MCP servers' configuration replaced by what names them, the configuration the session confirmed when its runtime announces one, the end of a successful call's error output, and the agent's final text) in its own folder of `runsDir`, by default `.flow/runs/` of `dir`. When the engine creates `.flow/`, it writes a `.gitignore` that ignores everything in it: runs hold inputs, agent outputs and the journal, and stay private. `listRuns(runsDir)`, `loadRun(runsDir, id)`, `loadRunEvents(runsDir, id)`, `loadAgentCall(runsDir, id, n)`, `summarizeRun(state)`, `summarizeCorrections(state, events)` (each retry edge taken, with the maximum its events recorded) and `presentResult(workflow, state)` (any object with a `presentResult` in place of the workflow; without one, the validated data as JSON) read them; `flow-ui` shows them.
57
57
 
58
58
  ## License
59
59
 
package/dist/app/run.d.ts CHANGED
@@ -15,6 +15,11 @@ export interface RunSetup {
15
15
  configDir: string;
16
16
  /** Where runs are kept, one directory per run; `.flow/runs/` of `dir` by default. */
17
17
  runsDir?: string;
18
+ /**
19
+ * What the caller runs the workflow with, recorded with each launch: its own
20
+ * version, where its prompts come from, as labels of its choice.
21
+ */
22
+ caller?: Record<string, string>;
18
23
  }
19
24
  /** What resuming a failed run needs: the run, and its workflow with its options, prompts and directories. */
20
25
  export interface ResumeSetup extends Omit<RunSetup, "input"> {
package/dist/app/run.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { budgetProblem, emptyMetrics, recordUsage } from "../engine/metrics.js";
2
2
  import { exceededEdge, executeWorkflow } from "../engine/runner.js";
3
3
  import { budgetRefusal, parseInput } from "../engine/workflow.js";
4
+ import { machineFacts } from "../system/launch.js";
4
5
  import { whenInterrupted } from "../system/process.js";
5
6
  import { AgentRuntime } from "../system/runtimes/agent-runtime.js";
6
7
  import { inspectRuntimes, } from "../system/runtimes/inspect.js";
@@ -36,14 +37,25 @@ async function prerequisites(workflow, setup) {
36
37
  function runtimeDetails(runtimes) {
37
38
  return Object.fromEntries(Object.entries(runtimes).map(([runtime, { detail }]) => [runtime, detail]));
38
39
  }
40
+ /** Where the budget in force comes from: given to this launch, the run's own, or the workflow's. */
41
+ function budgetFrom(usd, given, own) {
42
+ if (usd === undefined)
43
+ return undefined;
44
+ return {
45
+ usd,
46
+ from: given !== undefined ? "given" : own !== undefined ? "run" : "workflow",
47
+ };
48
+ }
39
49
  /**
40
- * Saves the run, then executes it from its current stage. The run fails once
41
- * its budget is exceeded, or once a call announced no cost; calls without a
42
- * cost recorded before it executes, by an earlier execution, do not count.
50
+ * Saves the run, records its launch, then executes it from its current stage.
51
+ * The run fails once its budget is exceeded, or once a call announced no cost;
52
+ * calls without a cost recorded before it executes, by an earlier execution,
53
+ * do not count.
43
54
  */
44
- async function execute(state, store, setup, checked, hooks, resumedAfter) {
55
+ async function execute(state, store, setup, checked, hooks, resumed) {
45
56
  const { workflow, dir, configDir } = setup;
46
57
  const { maxCostUsd } = checked;
58
+ const resumedAfter = resumed?.after;
47
59
  const agent = new AgentRuntime({
48
60
  dir,
49
61
  configDir,
@@ -57,6 +69,35 @@ async function execute(state, store, setup, checked, hooks, resumedAfter) {
57
69
  executables: checked.executables,
58
70
  });
59
71
  await store.save(state);
72
+ const used = [
73
+ ...new Set(Object.values(workflow.agents).map(({ profile }) => profile.runtime)),
74
+ ];
75
+ // Before the first stage: what the launch executes with, as this process finds it.
76
+ const launch = {
77
+ type: "launch",
78
+ runId: state.id,
79
+ stage: state.stage,
80
+ at: new Date().toISOString(),
81
+ ...machineFacts(dir, used),
82
+ ...(setup.caller ? { caller: setup.caller } : {}),
83
+ runtimes: runtimeDetails(checked.runtimes) ?? {},
84
+ ...(checked.budget ? { budget: checked.budget } : {}),
85
+ ...(resumed && Object.keys(resumed.given).length
86
+ ? { given: resumed.given }
87
+ : {}),
88
+ };
89
+ try {
90
+ await store.event(launch);
91
+ }
92
+ catch (error) {
93
+ // Unrecorded, the launch fails the run as a stage would: it stays resumable.
94
+ state.status = "failed";
95
+ state.error = `The launch could not be recorded: ${error instanceof Error ? error.message : String(error)}`;
96
+ state.updatedAt = new Date().toISOString();
97
+ await store.save(state);
98
+ throw error;
99
+ }
100
+ hooks.onEvent(launch);
60
101
  const accepted = state.metrics?.usage.missing ?? 0;
61
102
  const controller = new AbortController();
62
103
  /**
@@ -131,7 +172,11 @@ export async function startRun(setup, hooks) {
131
172
  else if ((await isDirectory(setup.runsDir)) === false)
132
173
  throw new Error(`runsDir is not a directory: ${setup.runsDir}`);
133
174
  const store = new FileRunStore(setup.runsDir ?? defaultRunsDir(dir), state.id);
134
- return execute(state, store, setup, { ...checked, maxCostUsd }, hooks);
175
+ return execute(state, store, setup, {
176
+ ...checked,
177
+ maxCostUsd,
178
+ budget: budgetFrom(maxCostUsd, setup.maxCostUsd, undefined),
179
+ }, hooks);
135
180
  }
136
181
  /**
137
182
  * Resumes a failed run at the stage where it stopped, with its input, data,
@@ -199,6 +244,10 @@ export async function resumeRun(setup, hooks) {
199
244
  await store.save(current);
200
245
  return current;
201
246
  });
202
- return execute(state, store, setup, { ...checked, maxCostUsd }, hooks, resumedAfter);
247
+ return execute(state, store, setup, {
248
+ ...checked,
249
+ maxCostUsd,
250
+ budget: budgetFrom(maxCostUsd, setup.maxCostUsd, found.maxCostUsd),
251
+ }, hooks, { after: resumedAfter, given });
203
252
  }
204
253
  //# sourceMappingURL=run.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/app/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/app/run.ts"],"names":[],"mappings":"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"}
@@ -57,7 +57,38 @@ export type AgentActivity = {
57
57
  } | {
58
58
  kind: "warning";
59
59
  message: string;
60
+ }
61
+ /**
62
+ * What the session confirmed it runs with differs from the profile in these
63
+ * respects; its whole configuration is in the call's record.
64
+ */
65
+ | {
66
+ kind: "effective";
67
+ differences: string[];
68
+ }
69
+ /** Something the runtime reported that explains the call without stopping it. */
70
+ | {
71
+ kind: "notice";
72
+ notice: NoticeKind;
73
+ message: string;
74
+ }
75
+ /**
76
+ * A hook of the runtime's configuration that ran: its outcome, its exit code
77
+ * and the start of what it printed, which the agent may receive.
78
+ */
79
+ | {
80
+ kind: "hook";
81
+ name: string;
82
+ outcome: string;
83
+ exitCode?: number;
84
+ output?: string;
60
85
  };
86
+ /**
87
+ * A subscription limit, tools the runtime refused, a request it sent again, a
88
+ * conversation it compacted, the models the call used, or what a successful
89
+ * call wrote on its error output.
90
+ */
91
+ export type NoticeKind = "limit" | "denied" | "retry" | "compaction" | "models" | "stderr";
61
92
  /**
62
93
  * What flow sent an agent in one call, and the agent's final text: kept beside
63
94
  * the journal, one file per call, so that the journal stays light.
@@ -82,6 +113,14 @@ export interface AgentCallRecord {
82
113
  };
83
114
  /** The agent's final text, before the engine reads it; absent from a call that ended without one. */
84
115
  answer?: string;
116
+ /**
117
+ * What the session confirmed it runs with, as the runtime announced it:
118
+ * version, model, tools, servers and their status… Absent from a runtime
119
+ * that announces nothing, Codex.
120
+ */
121
+ effective?: Record<string, unknown>;
122
+ /** The end of what a successful call wrote on its error output. */
123
+ stderr?: string;
85
124
  }
86
125
  /** Records an agent call's activity under the calling stage. */
87
126
  export type RecordActivity = (activity: AgentActivity) => void;
@@ -248,7 +287,46 @@ export interface AgentEvent extends EventBase {
248
287
  type: "agent";
249
288
  activity: AgentActivity;
250
289
  }
251
- export type RunEvent = StageEvent | LogEvent | AgentEvent;
290
+ /**
291
+ * Recorded by the engine before the first stage of each launch: the run's
292
+ * start, then each resumption. Where and with what the launch executes, since
293
+ * a resumption may run with other versions, another budget or on another
294
+ * machine.
295
+ */
296
+ export interface LaunchEvent {
297
+ type: "launch";
298
+ runId: string;
299
+ /** The stage the launch starts with. */
300
+ stage: string;
301
+ at: string;
302
+ /** flow's version. */
303
+ flow: string;
304
+ /** What the caller says it runs the workflow with, such as its own version and where its prompts come from. */
305
+ caller?: Record<string, string>;
306
+ /** Each runtime the run uses, as checked before the launch: version, executable and connection. */
307
+ runtimes: Partial<Record<Runtime, string>>;
308
+ /**
309
+ * The budget in force and where it comes from: given to this launch, the
310
+ * run's own from an earlier launch, or the workflow's.
311
+ */
312
+ budget?: {
313
+ usd: number;
314
+ from: "given" | "run" | "workflow";
315
+ };
316
+ /** The machine, and the directory the stages and agents work in. */
317
+ host: {
318
+ name: string;
319
+ platform: string;
320
+ arch: string;
321
+ node: string;
322
+ dir: string;
323
+ };
324
+ /** The variables the runtimes read that are set: their names, never their values. */
325
+ environment: string[];
326
+ /** Values the operator gave the resumption, merged into the run's data. */
327
+ given?: Record<string, unknown>;
328
+ }
329
+ export type RunEvent = StageEvent | LogEvent | AgentEvent | LaunchEvent;
252
330
  export interface RunStore {
253
331
  save(state: RunState): Promise<void>;
254
332
  event(event: RunEvent): Promise<void>;
package/dist/index.d.ts CHANGED
@@ -10,7 +10,7 @@ export { type AgentUsage, elapsedMs, type TokenCounts, } from "./engine/metrics.
10
10
  export { exceededEdge } from "./engine/runner.js";
11
11
  export { agent, type Check, code, END, gate, node, pick, retry, schemaGate, step, } from "./engine/primitives.js";
12
12
  export { type AgentProfile, type AgentSettings, profileProblems, type Runtime, runtimeLabels, } from "./engine/profiles.js";
13
- export type { AgentActivity, AgentCallRecord, AgentStage, Log, RunEvent, RunState, Stage, StageContext, StageEvent, StageResult, Workflow, WorkflowDefinition, WorkflowStep, } from "./engine/types.js";
13
+ export type { AgentActivity, AgentCallRecord, AgentStage, LaunchEvent, Log, RunEvent, RunState, Stage, StageContext, StageEvent, StageResult, Workflow, WorkflowDefinition, WorkflowStep, } from "./engine/types.js";
14
14
  export { defineWorkflow, type InputProblem, InvalidInputError, isWorkflow, parseInput, } from "./engine/workflow.js";
15
15
  export { killChildProcesses, ProcessInterruptedError, ProcessTimeoutError, runProcess, } from "./system/process.js";
16
16
  export { type AgentProblem, inspectNode, inspectRuntimes, type RuntimeStatus, } from "./system/runtimes/inspect.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAIL,SAAS,EAET,QAAQ,GACT,MAAM,cAAc,CAAC;AACtB,OAAO,EAEL,QAAQ,EACR,aAAa,EACb,OAAO,EACP,aAAa,EACb,aAAa,EAEb,oBAAoB,EACpB,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,SAAS,GAEV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,KAAK,EAEL,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,UAAU,EACV,IAAI,GACL,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAGL,eAAe,EAEf,aAAa,GACd,MAAM,sBAAsB,CAAC;AAgB9B,OAAO,EACL,cAAc,EAEd,iBAAiB,EACjB,UAAU,EACV,UAAU,GACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACnB,UAAU,GACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,WAAW,EACX,eAAe,GAEhB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAIL,SAAS,EAET,QAAQ,GACT,MAAM,cAAc,CAAC;AACtB,OAAO,EAEL,QAAQ,EACR,aAAa,EACb,OAAO,EACP,aAAa,EACb,aAAa,EAEb,oBAAoB,EACpB,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,SAAS,GAEV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,KAAK,EAEL,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,UAAU,EACV,IAAI,GACL,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAGL,eAAe,EAEf,aAAa,GACd,MAAM,sBAAsB,CAAC;AAiB9B,OAAO,EACL,cAAc,EAEd,iBAAiB,EACjB,UAAU,EACV,UAAU,GACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACnB,UAAU,GACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,WAAW,EACX,eAAe,GAEhB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Runtime } from "../engine/profiles.js";
2
+ import type { LaunchEvent } from "../engine/types.js";
3
+ /**
4
+ * What a launch executes with on this machine: flow's version, the machine,
5
+ * the directory agents work in, and the names of the variables set that the
6
+ * runtimes read.
7
+ */
8
+ export declare function machineFacts(dir: string, used: readonly Runtime[]): Pick<LaunchEvent, "flow" | "host" | "environment">;
@@ -0,0 +1,31 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { arch, hostname, platform } from "node:os";
3
+ import { resolve } from "node:path";
4
+ import { runtimes } from "./runtimes/registry.js";
5
+ /** Both `src/system/` and `dist/system/` sit two levels below the package root. */
6
+ const version = JSON.parse(readFileSync(new URL("../../package.json", import.meta.url), "utf8")).version;
7
+ /** Variables that change how any runtime reaches its provider. */
8
+ const network = /^(HTTPS?_PROXY|NO_PROXY|https?_proxy|no_proxy)$/;
9
+ /**
10
+ * What a launch executes with on this machine: flow's version, the machine,
11
+ * the directory agents work in, and the names of the variables set that the
12
+ * runtimes read.
13
+ */
14
+ export function machineFacts(dir, used) {
15
+ const patterns = [network, ...used.map((name) => runtimes[name].environment)];
16
+ return {
17
+ flow: version,
18
+ host: {
19
+ name: hostname(),
20
+ platform: platform(),
21
+ arch: arch(),
22
+ node: process.versions.node,
23
+ dir: resolve(dir),
24
+ },
25
+ environment: Object.keys(process.env)
26
+ .filter((name) => process.env[name] !== undefined &&
27
+ patterns.some((pattern) => pattern.test(name)))
28
+ .sort(),
29
+ };
30
+ }
31
+ //# sourceMappingURL=launch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/system/launch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,mFAAmF;AACnF,MAAM,OAAO,GAAW,IAAI,CAAC,KAAK,CAChC,YAAY,CAAC,IAAI,GAAG,CAAC,oBAAoB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CACrE,CAAC,OAAO,CAAC;AAEV,kEAAkE;AAClE,MAAM,OAAO,GAAG,iDAAiD,CAAC;AAElE;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,GAAW,EACX,IAAwB;IAExB,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;IAC9E,OAAO;QACL,IAAI,EAAE,OAAO;QACb,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ,EAAE;YAChB,QAAQ,EAAE,QAAQ,EAAE;YACpB,IAAI,EAAE,IAAI,EAAE;YACZ,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;YAC3B,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC;SAClB;QACD,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;aAClC,MAAM,CACL,CAAC,IAAI,EAAE,EAAE,CACP,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS;YAC/B,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CACjD;aACA,IAAI,EAAE;KACV,CAAC;AACJ,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { z } from "zod";
2
2
  import type { AgentUsage, TokenCounts } from "../../engine/metrics.js";
3
+ import type { NoticeKind } from "../../engine/types.js";
3
4
  import type { ProfileOf, Runtime } from "../../engine/profiles.js";
4
5
  export type { ProfileOf } from "../../engine/profiles.js";
5
6
  /** One agent call, as a runtime prepares it. */
@@ -41,6 +42,30 @@ export type RuntimeEvent = {
41
42
  type: "warning";
42
43
  message: string;
43
44
  }
45
+ /**
46
+ * What the session confirms it runs with, as the runtime announces it: its
47
+ * whole configuration for the call's record, how it differs from the
48
+ * profile for the journal.
49
+ */
50
+ | {
51
+ type: "effective";
52
+ config: Record<string, unknown>;
53
+ differences: string[];
54
+ }
55
+ /** Something the runtime reported that explains the call without stopping it. */
56
+ | {
57
+ type: "notice";
58
+ notice: NoticeKind;
59
+ message: string;
60
+ }
61
+ /** A hook of the runtime's configuration that ran. */
62
+ | {
63
+ type: "hook";
64
+ name: string;
65
+ outcome: string;
66
+ exitCode?: number;
67
+ output?: string;
68
+ }
44
69
  /** The runtime reported that the call failed: it stops there. */
45
70
  | {
46
71
  type: "failure";
@@ -91,6 +116,11 @@ export interface RuntimeAdapter<R extends Runtime> {
91
116
  minimumVersion: string;
92
117
  /** The signal on which the runtime stops cleanly, its commands included. */
93
118
  stopSignal: NodeJS.Signals;
119
+ /**
120
+ * The environment variables the runtime reads, as its documentation names
121
+ * them: a launch records which ones are set, never their values.
122
+ */
123
+ environment: RegExp;
94
124
  /**
95
125
  * How a profile's connection is known without a provider request: the command
96
126
  * that reports it and how to read its output, or the connection itself when the
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/system/runtimes/adapter.ts"],"names":[],"mappings":"AA2CA,6EAA6E;AAC7E,MAAM,CAAC,MAAM,WAAW,GAAG,mBAAmB,CAAC;AAqD/C;;;GAGG;AACH,MAAM,UAAU,UAAU,CACxB,KAAa,EACb,MAAoB,EACpB,KAAc;IAEd,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IACvC,MAAM,IAAI,GACR,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,MAAM,IAAI,KAAK;QACf,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC5B,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG;QAClB,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;SAC/B,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;SACtE,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,0BAA0B,IAAI,UAAU,MAAM,EAAE,CAAC,CAAC;AAC5E,CAAC"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/system/runtimes/adapter.ts"],"names":[],"mappings":"AAgEA,6EAA6E;AAC7E,MAAM,CAAC,MAAM,WAAW,GAAG,mBAAmB,CAAC;AA0D/C;;;GAGG;AACH,MAAM,UAAU,UAAU,CACxB,KAAa,EACb,MAAoB,EACpB,KAAc;IAEd,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IACvC,MAAM,IAAI,GACR,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,MAAM,IAAI,KAAK;QACf,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC5B,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG;QAClB,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;SAC/B,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;SACtE,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,0BAA0B,IAAI,UAAU,MAAM,EAAE,CAAC,CAAC;AAC5E,CAAC"}
@@ -146,6 +146,23 @@ export async function runCall(adapter, call, options) {
146
146
  case "warning":
147
147
  record?.({ kind: "warning", message: item.message });
148
148
  break;
149
+ case "effective":
150
+ if (kept)
151
+ kept.record.effective = item.config;
152
+ record?.({ kind: "effective", differences: item.differences });
153
+ break;
154
+ case "notice":
155
+ record?.({
156
+ kind: "notice",
157
+ notice: item.notice,
158
+ message: item.message,
159
+ });
160
+ break;
161
+ case "hook": {
162
+ const { type: _type, ...hook } = item;
163
+ record?.({ kind: "hook", ...hook });
164
+ break;
165
+ }
149
166
  case "failure":
150
167
  throw new Error(item.message);
151
168
  case "result":
@@ -157,6 +174,18 @@ export async function runCall(adapter, call, options) {
157
174
  throw new Error(`${label} exited with code ${exit.exitCode}: ${exit.stderr.trim() || "no error output"}`);
158
175
  if (text === undefined)
159
176
  throw new Error(`${label} completed without a final result`);
177
+ // What a successful call still wrote on its error output: its end.
178
+ const errors = exit.stderr.trim();
179
+ if (errors) {
180
+ const lines = errors.split("\n");
181
+ if (kept)
182
+ kept.record.stderr = lines.slice(-40).join("\n").slice(-4000);
183
+ record?.({
184
+ kind: "notice",
185
+ notice: "stderr",
186
+ message: `${label} wrote ${lines.length} line${lines.length === 1 ? "" : "s"} on its error output; the last: ${lines.at(-1)?.slice(0, 200)}`,
187
+ });
188
+ }
160
189
  succeeded = true;
161
190
  }
162
191
  catch (error) {
@@ -167,10 +196,16 @@ export async function runCall(adapter, call, options) {
167
196
  finally {
168
197
  // What the agent answered, even when the engine cannot read it, before the
169
198
  // call ends; a record that cannot take it changes neither its outcome nor its measures.
170
- if (kept && text !== undefined)
171
- await keep(kept.path, { ...kept.record, answer: text }).catch((error) => record?.({
199
+ if (kept &&
200
+ (text !== undefined ||
201
+ kept.record.effective !== undefined ||
202
+ kept.record.stderr !== undefined))
203
+ await keep(kept.path, {
204
+ ...kept.record,
205
+ ...(text === undefined ? {} : { answer: text }),
206
+ }).catch((error) => record?.({
172
207
  kind: "warning",
173
- message: `The call's record could not keep the agent's answer: ${error instanceof Error ? error.message : String(error)}`,
208
+ message: `The call's record could not keep ${text === undefined ? "what the runtime reported" : "the agent's answer"}: ${error instanceof Error ? error.message : String(error)}`,
174
209
  }));
175
210
  for (const report of reports)
176
211
  await onUsage?.(report);
@@ -1 +1 @@
1
- {"version":3,"file":"agent-runtime.js","sourceRoot":"","sources":["../../../src/system/runtimes/agent-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-runtime.js","sourceRoot":"","sources":["../../../src/system/runtimes/agent-runtime.ts"],"names":[],"mappings":"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"}