omp-conductor 0.17.0 → 0.18.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/REFERENCE.md +12 -8
- package/package.json +1 -1
- package/schema/config.schema.json +40 -1
- package/src/admission.ts +263 -44
- package/src/ask.ts +39 -3
- package/src/availability.ts +27 -1
- package/src/backups.ts +2 -2
- package/src/briefs/orchestrator.md +1 -0
- package/src/briefs/worker.md +38 -19
- package/src/command-help.ts +8 -1
- package/src/command-manifest.ts +5 -2
- package/src/commands/arm.ts +6 -3
- package/src/commands/message.ts +32 -4
- package/src/commands/watch.ts +62 -3
- package/src/config-schema.ts +53 -0
- package/src/config.ts +97 -1
- package/src/daemon.ts +1479 -1483
- package/src/decisions.ts +51 -6
- package/src/depends-on.ts +261 -1
- package/src/diff-flags.ts +350 -0
- package/src/digest-schedule.ts +37 -0
- package/src/doctor.ts +310 -22
- package/src/escalate.ts +560 -57
- package/src/failure-class.ts +71 -15
- package/src/fleet.ts +189 -34
- package/src/gitops.ts +103 -24
- package/src/graph-health.ts +20 -7
- package/src/graph.ts +313 -68
- package/src/lifecycle.ts +43 -7
- package/src/omp.ts +42 -0
- package/src/orchestrator-tick.ts +430 -162
- package/src/release-policy.ts +177 -5
- package/src/routing.ts +11 -3
- package/src/session-host.ts +16 -0
- package/src/settlement.ts +1728 -0
- package/src/setup-host.ts +193 -4
- package/src/setup-install.ts +91 -30
- package/src/setup-wizard.ts +1257 -78
- package/src/setup.ts +153 -6
- package/src/status-render.ts +36 -4
- package/src/store.ts +411 -17
- package/src/tracker/github.ts +607 -12
- package/src/types.ts +331 -5
- package/src/upgrade.ts +50 -19
- package/src/verbs/actions.ts +66 -18
- package/src/verbs/protocol.ts +45 -0
- package/src/verbs/server.ts +270 -13
- package/src/worker.ts +239 -6
- package/src/worktree.ts +115 -8
- package/systemd/omp-conductor-recover.sh +73 -0
- package/systemd/recover-unit-test.sh +61 -0
package/src/omp.ts
CHANGED
|
@@ -197,6 +197,24 @@ export async function createLocalSession(opts: {
|
|
|
197
197
|
* session has no route to a mutation to scope in the first place.
|
|
198
198
|
*/
|
|
199
199
|
readOnly?: boolean;
|
|
200
|
+
/**
|
|
201
|
+
* The structured-settlement contract (#540): a JSON Schema the session's
|
|
202
|
+
* `yield` tool validates its `data` payload against. The worker yields its
|
|
203
|
+
* settlement as structured output instead of writing prose for the caller to
|
|
204
|
+
* regex. A subagent-oriented harness option, forwarded as-is.
|
|
205
|
+
*/
|
|
206
|
+
outputSchema?: unknown;
|
|
207
|
+
/**
|
|
208
|
+
* Enforcement policy for {@link outputSchema}. The worker contract is
|
|
209
|
+
* `"permissive"`: a schema violation must still settle with whatever the
|
|
210
|
+
* worker produced, never discard the report.
|
|
211
|
+
*/
|
|
212
|
+
outputSchemaMode?: "permissive" | "strict";
|
|
213
|
+
/**
|
|
214
|
+
* Force the hidden `yield` tool into this session's toolset (#540). Without
|
|
215
|
+
* it the model has no sanctioned way to submit structured output.
|
|
216
|
+
*/
|
|
217
|
+
requireYieldTool?: boolean;
|
|
200
218
|
}): Promise<AgentSessionLike> {
|
|
201
219
|
let loaded: unknown;
|
|
202
220
|
try {
|
|
@@ -290,6 +308,13 @@ export async function createLocalSession(opts: {
|
|
|
290
308
|
// agentDir (~/.omp/agent/mcp.json) — without this, workers grep-only and
|
|
291
309
|
// burn the turns cap on discovery (#29).
|
|
292
310
|
enableMCP: true,
|
|
311
|
+
// The structured-settlement contract (#540): subagent-oriented options
|
|
312
|
+
// threaded to the harness so the worker can yield its report as a schema-
|
|
313
|
+
// validated object instead of prose. Absent for every other session kind —
|
|
314
|
+
// probes and orchestrator sessions never yield.
|
|
315
|
+
...(opts.outputSchema === undefined ? {} : { outputSchema: opts.outputSchema }),
|
|
316
|
+
...(opts.outputSchemaMode === undefined ? {} : { outputSchemaMode: opts.outputSchemaMode }),
|
|
317
|
+
...(opts.requireYieldTool === undefined ? {} : { requireYieldTool: opts.requireYieldTool }),
|
|
293
318
|
// Mechanical tool gates: confinement prevents structured worktree I/O from
|
|
294
319
|
// escaping cwd; release policy blocks release/deploy calls when configured.
|
|
295
320
|
...(extensions.length === 0 ? {} : { extensions }),
|
|
@@ -515,6 +540,20 @@ export interface CreateSessionOptions {
|
|
|
515
540
|
* gate — actually lives.
|
|
516
541
|
*/
|
|
517
542
|
readOnly?: boolean;
|
|
543
|
+
/**
|
|
544
|
+
* The structured-settlement contract (#540): a JSON Schema the session's
|
|
545
|
+
* `yield` tool validates its `data` payload against. Forwarded to the child
|
|
546
|
+
* through the host spec, exactly like {@link ompSettingsFile}.
|
|
547
|
+
*/
|
|
548
|
+
outputSchema?: unknown;
|
|
549
|
+
/**
|
|
550
|
+
* Enforcement policy for {@link outputSchema} — the worker contract is
|
|
551
|
+
* `"permissive"`, so a schema violation settles with whatever the worker
|
|
552
|
+
* produced instead of losing the report.
|
|
553
|
+
*/
|
|
554
|
+
outputSchemaMode?: "permissive" | "strict";
|
|
555
|
+
/** Force the hidden `yield` tool into this session's toolset (#540). */
|
|
556
|
+
requireYieldTool?: boolean;
|
|
518
557
|
}
|
|
519
558
|
|
|
520
559
|
/**
|
|
@@ -601,6 +640,9 @@ export async function createSession(opts: CreateSessionOptions): Promise<AgentSe
|
|
|
601
640
|
...(opts.verbSocketPath === undefined ? {} : { verbSocketPath: opts.verbSocketPath }),
|
|
602
641
|
...(opts.readOnly === undefined ? {} : { readOnly: opts.readOnly }),
|
|
603
642
|
...(opts.ompSettingsFile === undefined ? {} : { ompSettingsFile: opts.ompSettingsFile }),
|
|
643
|
+
...(opts.outputSchema === undefined ? {} : { outputSchema: opts.outputSchema }),
|
|
644
|
+
...(opts.outputSchemaMode === undefined ? {} : { outputSchemaMode: opts.outputSchemaMode }),
|
|
645
|
+
...(opts.requireYieldTool === undefined ? {} : { requireYieldTool: opts.requireYieldTool }),
|
|
604
646
|
};
|
|
605
647
|
|
|
606
648
|
const log = opts.onChildLog ?? ((line: string) => process.stderr.write(`${line}\n`));
|