@ours.network/fleet 1.2.0-nightly.40 → 1.2.0-nightly.41
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/application/role-repository.js +2 -2
- package/dist/build-info.json +4 -4
- package/dist/config.d.ts +5 -0
- package/dist/config.js +9 -0
- package/dist/runner.js +3 -6
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { lstatSync, readFileSync, readdirSync, realpathSync } from 'node:fs';
|
|
2
2
|
import { join, relative } from 'node:path';
|
|
3
3
|
import { parse } from 'yaml';
|
|
4
|
-
import { loadConfig,
|
|
4
|
+
import { loadConfig, resolveSnapshotMonitor, resolvePermissions, ROLE_NAME_RE, } from '../config.js';
|
|
5
5
|
import { agentsRoot, tmpRoot } from '../paths.js';
|
|
6
6
|
import { readSpawnLineage } from '../web/topology.js';
|
|
7
7
|
const MAX_SNAPSHOT_BYTES = 256 * 1024;
|
|
@@ -54,7 +54,7 @@ function snapshot(path, name) {
|
|
|
54
54
|
session, identity: typeof raw.identity === 'string' ? raw.identity : name,
|
|
55
55
|
permissions: resolvePermissions(undefined, raw.permissions),
|
|
56
56
|
permissionsDeclared: raw.permissions !== undefined,
|
|
57
|
-
monitor:
|
|
57
|
+
monitor: resolveSnapshotMonitor(raw.monitor),
|
|
58
58
|
sourceFile: '(temp)',
|
|
59
59
|
},
|
|
60
60
|
};
|
package/dist/build-info.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.2.0-nightly.
|
|
3
|
-
"buildId": "
|
|
4
|
-
"commit": "
|
|
2
|
+
"version": "1.2.0-nightly.41",
|
|
3
|
+
"buildId": "aa7ed657a14a",
|
|
4
|
+
"commit": "bbdc34de495026f1119ce9df3442a787d8d02dc0",
|
|
5
5
|
"dirty": true,
|
|
6
|
-
"builtAt": "2026-10-
|
|
6
|
+
"builtAt": "2026-10-03T12:50:11.407Z",
|
|
7
7
|
"capabilities": [
|
|
8
8
|
"workspace.enroll.preserve-profile-v1",
|
|
9
9
|
"cowork.http-management-v1",
|
package/dist/config.d.ts
CHANGED
|
@@ -343,6 +343,11 @@ export declare function resolvePermissions(defaults: unknown, role: Partial<Comm
|
|
|
343
343
|
* without tool-boundary steering fall back to non-cancelling delivery.
|
|
344
344
|
*/
|
|
345
345
|
export declare function defaultMonitorInterrupt(harness: string | undefined): MonitorInterrupt;
|
|
346
|
+
/**
|
|
347
|
+
* Resolve a persisted temporary-role monitor. A snapshot written before
|
|
348
|
+
* monitor.interrupt existed keeps the non-interrupting delivery it ran with.
|
|
349
|
+
*/
|
|
350
|
+
export declare function resolveSnapshotMonitor(monitor: unknown): MonitorConfig;
|
|
346
351
|
export declare function resolveMonitorConfig(defMonitor: unknown, roleMonitor?: Partial<MonitorConfig>, labels?: {
|
|
347
352
|
base?: string;
|
|
348
353
|
file?: string;
|
package/dist/config.js
CHANGED
|
@@ -1150,6 +1150,15 @@ function resolveStartStaggerMs(raw, base) {
|
|
|
1150
1150
|
export function defaultMonitorInterrupt(harness) {
|
|
1151
1151
|
return harness === 'hermes' ? false : 'after_tool';
|
|
1152
1152
|
}
|
|
1153
|
+
/**
|
|
1154
|
+
* Resolve a persisted temporary-role monitor. A snapshot written before
|
|
1155
|
+
* monitor.interrupt existed keeps the non-interrupting delivery it ran with.
|
|
1156
|
+
*/
|
|
1157
|
+
export function resolveSnapshotMonitor(monitor) {
|
|
1158
|
+
if (!isPlainObject(monitor))
|
|
1159
|
+
return resolveMonitorConfig(undefined, monitor);
|
|
1160
|
+
return resolveMonitorConfig(undefined, { interrupt: false, ...monitor });
|
|
1161
|
+
}
|
|
1153
1162
|
export function resolveMonitorConfig(defMonitor, roleMonitor, labels = {}) {
|
|
1154
1163
|
const where = labels.file && labels.name ? `${labels.file}: role '${labels.name}' ` : '';
|
|
1155
1164
|
if (defMonitor !== undefined && !isPlainObject(defMonitor))
|
package/dist/runner.js
CHANGED
|
@@ -8,7 +8,7 @@ import { fileURLToPath } from 'node:url';
|
|
|
8
8
|
import { randomUUID } from 'node:crypto';
|
|
9
9
|
import { parse } from 'yaml';
|
|
10
10
|
import { agentDir, stateRoot } from './paths.js';
|
|
11
|
-
import { loadConfig, findRole, isolationContextFor,
|
|
11
|
+
import { loadConfig, findRole, isolationContextFor, resolveSnapshotMonitor, resolvePermissions, } from './config.js';
|
|
12
12
|
import { getAdapter } from './harness/registry.js';
|
|
13
13
|
import { createMonitor, probeIdentityPresence, } from './monitor.js';
|
|
14
14
|
import { DaemonGenerationObserver, RoleRecoveryController, probeDaemonGeneration, } from './daemon-recovery.js';
|
|
@@ -432,12 +432,9 @@ export function loadTempRole(name) {
|
|
|
432
432
|
throw new Error(`temp role '${name}' has no snapshot at ${p}`);
|
|
433
433
|
const role = parse(readFileSync(p, 'utf8'));
|
|
434
434
|
// Upgrade snapshots written before monitor.mode/interrupt existed. A snapshot
|
|
435
|
-
// with no monitor block keeps the historical native/no-supervisor behavior
|
|
436
|
-
// and one without interrupt keeps the non-interrupting delivery it ran with.
|
|
435
|
+
// with no monitor block keeps the historical native/no-supervisor behavior.
|
|
437
436
|
if (role.monitor)
|
|
438
|
-
role.monitor =
|
|
439
|
-
interrupt: false, ...role.monitor,
|
|
440
|
-
});
|
|
437
|
+
role.monitor = resolveSnapshotMonitor(role.monitor);
|
|
441
438
|
role.__temp = true;
|
|
442
439
|
return role;
|
|
443
440
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ours.network/fleet",
|
|
3
|
-
"version": "1.2.0-nightly.
|
|
3
|
+
"version": "1.2.0-nightly.41",
|
|
4
4
|
"description": "Harness-agnostic fleet of persistent, identity-bound AI agents. Declarative fleet.yaml, managed native/ACP sessions, supervision, and ours.network messaging.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "FSL-1.1-Apache-2.0",
|