@ours.network/fleet 1.1.0-nightly.9 → 1.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/README.md +231 -46
- package/dist/application/capabilities.js +18 -6
- package/dist/application/fleet-query-service.js +7 -4
- package/dist/application/role-command-service.js +9 -0
- package/dist/application/role-creation-service.d.ts +4 -4
- package/dist/application/role-creation-service.js +8 -1
- package/dist/application/role-repository.d.ts +4 -2
- package/dist/application/role-repository.js +6 -3
- package/dist/application/session-control.d.ts +3 -1
- package/dist/application/session-control.js +4 -2
- package/dist/application/task-room-service.d.ts +92 -39
- package/dist/application/task-room-service.js +562 -289
- package/dist/briefing.js +79 -22
- package/dist/build-info.json +5 -5
- package/dist/canonical-json.d.ts +2 -0
- package/dist/canonical-json.js +10 -0
- package/dist/cli.js +129 -47
- package/dist/config.d.ts +38 -3
- package/dist/config.js +193 -28
- package/dist/creation.d.ts +1 -1
- package/dist/creation.js +7 -4
- package/dist/docs.d.ts +1 -1
- package/dist/docs.js +181 -41
- package/dist/doctor.d.ts +2 -0
- package/dist/doctor.js +40 -4
- package/dist/fleet-command-audit.d.ts +22 -1
- package/dist/fleet-command-audit.js +355 -50
- package/dist/fleet-proxy.d.ts +5 -2
- package/dist/harness/claude-code-session.js +2 -1
- package/dist/harness/codex-app-server-proxy.d.ts +40 -0
- package/dist/harness/codex-app-server-proxy.js +348 -14
- package/dist/harness/codex-session.d.ts +9 -2
- package/dist/harness/codex-session.js +18 -2
- package/dist/harness/codex.d.ts +5 -1
- package/dist/harness/codex.js +104 -10
- package/dist/harness/types.d.ts +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.js +3 -2
- package/dist/init-guidance.d.ts +1 -1
- package/dist/init-guidance.js +1 -1
- package/dist/init-wizard.d.ts +98 -0
- package/dist/init-wizard.js +631 -0
- package/dist/lifecycle-summary.d.ts +134 -0
- package/dist/lifecycle-summary.js +179 -0
- package/dist/loops/config.d.ts +10 -1
- package/dist/loops/config.js +38 -5
- package/dist/model-recovery.d.ts +1 -1
- package/dist/ops.js +2 -17
- package/dist/owner-channel/channel.d.ts +19 -3
- package/dist/owner-channel/channel.js +301 -120
- package/dist/owner-channel/commands.d.ts +28 -6
- package/dist/owner-channel/commands.js +109 -27
- package/dist/owner-channel/lifecycle-outbox.d.ts +24 -0
- package/dist/owner-channel/lifecycle-outbox.js +87 -0
- package/dist/owner-channel/ours-client.d.ts +19 -0
- package/dist/owner-channel/ours-client.js +3 -0
- package/dist/permissions.js +1 -1
- package/dist/preset-migration.d.ts +42 -0
- package/dist/preset-migration.js +450 -0
- package/dist/reports/artifact.d.ts +10 -0
- package/dist/reports/artifact.js +32 -0
- package/dist/reports/index.d.ts +5 -0
- package/dist/reports/index.js +5 -0
- package/dist/reports/render.d.ts +6 -0
- package/dist/reports/render.js +240 -0
- package/dist/reports/service.d.ts +42 -0
- package/dist/reports/service.js +57 -0
- package/dist/reports/tasks.d.ts +52 -0
- package/dist/reports/tasks.js +177 -0
- package/dist/reports/types.d.ts +315 -0
- package/dist/reports/types.js +6 -0
- package/dist/resolved-plan.js +13 -1
- package/dist/rooms-tasks/cli.d.ts +2 -0
- package/dist/rooms-tasks/cli.js +361 -285
- package/dist/rooms-tasks/close.d.ts +9 -1
- package/dist/rooms-tasks/close.js +23 -7
- package/dist/rooms-tasks/config.js +16 -25
- package/dist/rooms-tasks/cowork-adapter.d.ts +5 -0
- package/dist/rooms-tasks/cowork-adapter.js +13 -0
- package/dist/rooms-tasks/deletion.d.ts +51 -0
- package/dist/rooms-tasks/deletion.js +217 -0
- package/dist/rooms-tasks/external-worker.d.ts +8 -0
- package/dist/rooms-tasks/external-worker.js +38 -0
- package/dist/rooms-tasks/launch-snapshot.d.ts +19 -0
- package/dist/rooms-tasks/launch-snapshot.js +181 -0
- package/dist/rooms-tasks/member-overrides.d.ts +30 -0
- package/dist/rooms-tasks/member-overrides.js +204 -0
- package/dist/rooms-tasks/member-startup.d.ts +1 -0
- package/dist/rooms-tasks/member-startup.js +9 -2
- package/dist/rooms-tasks/provision.js +146 -83
- package/dist/rooms-tasks/room-state.d.ts +1 -0
- package/dist/rooms-tasks/room-state.js +12 -1
- package/dist/rooms-tasks/task-room-name.d.ts +12 -0
- package/dist/rooms-tasks/task-room-name.js +61 -0
- package/dist/rooms-tasks/task-state.d.ts +115 -3
- package/dist/rooms-tasks/task-state.js +361 -11
- package/dist/rooms-tasks/templates.d.ts +4 -1
- package/dist/rooms-tasks/templates.js +34 -3
- package/dist/rooms-tasks/terminal.d.ts +3 -0
- package/dist/rooms-tasks/terminal.js +10 -4
- package/dist/rooms-tasks/types.d.ts +92 -7
- package/dist/rooms-tasks/types.js +14 -1
- package/dist/runner.d.ts +3 -0
- package/dist/runner.js +91 -44
- package/dist/session/acp.d.ts +4 -1
- package/dist/session/acp.js +29 -13
- package/dist/session/arbiter.d.ts +2 -1
- package/dist/session/arbiter.js +2 -0
- package/dist/session/codex-app-server-transport.d.ts +53 -0
- package/dist/session/codex-app-server-transport.js +184 -0
- package/dist/session/codex-app-server.d.ts +122 -0
- package/dist/session/codex-app-server.js +1031 -0
- package/dist/session/control.d.ts +1 -1
- package/dist/session/control.js +17 -1
- package/dist/session/conversation-types.d.ts +4 -4
- package/dist/session/types.d.ts +24 -6
- package/dist/session/types.js +28 -0
- package/dist/spawn.d.ts +9 -0
- package/dist/spawn.js +77 -9
- package/dist/web/fleet-config-service.d.ts +1 -0
- package/dist/web/fleet-config-service.js +25 -7
- package/dist/web/runtime.js +11 -6
- package/dist/web/server.js +28 -1
- package/dist/web-app/assets/{index-BbTc5KtZ.js → index-C0h3ALvs.js} +8 -8
- package/dist/web-app/index.html +1 -1
- package/package.json +4 -4
- package/presets/brain-catalog.json +17 -0
- package/presets/fleet/{agents → agent_templates}/Critic.yaml +2 -0
- package/presets/fleet/{agents/Agent.yaml → agent_templates/Developer.yaml} +3 -1
- package/presets/fleet/agent_templates/LocalCoordinator.yaml +50 -0
- package/presets/fleet/agents/{Developer.yaml → FleetCoordinator.yaml} +1 -1
- package/presets/fleet/brains/claude-fable-5-high.yaml +5 -0
- package/presets/fleet/brains/claude-fable-5-low.yaml +5 -0
- package/presets/fleet/brains/claude-fable-5-max.yaml +5 -0
- package/presets/fleet/brains/claude-fable-5-medium.yaml +5 -0
- package/presets/fleet/brains/claude-fable-5-xhigh.yaml +5 -0
- package/presets/fleet/brains/claude-opus-5-high.yaml +5 -0
- package/presets/fleet/brains/claude-opus-5-low.yaml +5 -0
- package/presets/fleet/brains/claude-opus-5-max.yaml +5 -0
- package/presets/fleet/brains/claude-opus-5-medium.yaml +5 -0
- package/presets/fleet/brains/claude-opus-5-xhigh.yaml +5 -0
- package/presets/fleet/brains/claude-sonnet-5-high.yaml +5 -0
- package/presets/fleet/brains/claude-sonnet-5-low.yaml +5 -0
- package/presets/fleet/brains/claude-sonnet-5-max.yaml +5 -0
- package/presets/fleet/brains/claude-sonnet-5-medium.yaml +5 -0
- package/presets/fleet/brains/claude-sonnet-5-xhigh.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-3-codex-spark-high.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-3-codex-spark-low.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-3-codex-spark-medium.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-3-codex-spark-xhigh.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-4-high.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-4-low.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-4-medium.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-4-mini-high.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-4-mini-low.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-4-mini-medium.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-4-mini-xhigh.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-4-xhigh.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-5-high.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-5-low.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-5-medium.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-5-xhigh.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-6-luna-high.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-6-luna-low.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-6-luna-max.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-6-luna-medium.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-6-luna-xhigh.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-6-sol-high.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-6-sol-low.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-6-sol-max.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-6-sol-medium.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-6-sol-ultra.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-6-sol-xhigh.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-6-terra-high.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-6-terra-low.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-6-terra-max.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-6-terra-medium.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-6-terra-ultra.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-5-6-terra-xhigh.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-6-astra-high.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-6-astra-low.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-6-astra-max.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-6-astra-medium.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-6-astra-ultra.yaml +5 -0
- package/presets/fleet/brains/codex-gpt-6-astra-xhigh.yaml +5 -0
- package/presets/fleet/roles/Coordinator.yaml +37 -0
- package/presets/fleet/roles/Critic.yaml +23 -1
- package/presets/fleet/roles/Developer.yaml +27 -5
- package/presets/fleet/roles/LocalCoordinator.yaml +35 -0
- package/presets/fleet/room_templates/pair.yaml +9 -7
- package/presets/fleet/room_templates/single.yaml +5 -4
- package/presets/fleet/room_templates/team.yaml +12 -8
- package/presets/manifest.json +2 -1
- package/presets/fleet/agents/Architect.yaml +0 -3
- package/presets/fleet/agents/Secretary.yaml +0 -3
- package/presets/fleet/agents/Tester.yaml +0 -3
- package/presets/fleet/roles/Agent.yaml +0 -6
- package/presets/fleet/roles/Architect.yaml +0 -6
- package/presets/fleet/roles/Secretary.yaml +0 -6
- package/presets/fleet/roles/Tester.yaml +0 -6
package/dist/doctor.js
CHANGED
|
@@ -14,6 +14,7 @@ import { readScheduledLoops, storedLoopHealth } from './loops/state.js';
|
|
|
14
14
|
import { controlSocketPath } from './session/control.js';
|
|
15
15
|
import { analyzeInstalls, buildInfo, buildLabel, discoverInstalls, BIN_NAME, } from './provenance.js';
|
|
16
16
|
import { readDaemonRecoveryStatus } from './daemon-recovery.js';
|
|
17
|
+
import { codexModelCatalog } from './application/model-catalog.js';
|
|
17
18
|
/** Which cgroup-v2 controllers are delegated to this user manager (advisory). */
|
|
18
19
|
function cgroupDelegationDetail() {
|
|
19
20
|
try {
|
|
@@ -107,6 +108,22 @@ export async function doctor(opts = {}, exec = realExec, platform = process.plat
|
|
|
107
108
|
ok: true,
|
|
108
109
|
detail: `warning: ${diagnostic.message}`,
|
|
109
110
|
});
|
|
111
|
+
if (loaded.ok) {
|
|
112
|
+
const packaged = Object.entries(loaded.brainPresets ?? {}).flatMap(([id, brain]) => brain.harness === 'codex' && typeof brain.model === 'string' && typeof brain.effort === 'string'
|
|
113
|
+
? [{ id, model: brain.model, effort: brain.effort }] : [])
|
|
114
|
+
.sort((a, b) => a.id.localeCompare(b.id));
|
|
115
|
+
if (packaged.length) {
|
|
116
|
+
const runtime = codexModelCatalog(opts.codexCatalogPath);
|
|
117
|
+
const available = new Set(runtime.models.flatMap(model => model.reasoningEfforts.map(effort => `${model.id}\0${effort}`)));
|
|
118
|
+
const missing = packaged.filter(({ model, effort }) => !available.has(`${model}\0${effort}`));
|
|
119
|
+
checks.push({ name: 'brain catalog: Codex runtime drift', ok: true,
|
|
120
|
+
detail: runtime.models.length
|
|
121
|
+
? missing.length ? `warning: packaged Brain preset(s) absent from local Codex catalog: ${missing
|
|
122
|
+
.map(({ id, model, effort }) => `${id} (${model}/${effort})`).join(', ')}`
|
|
123
|
+
: `all ${packaged.length} packaged Codex model/effort pairs are present locally`
|
|
124
|
+
: runtime.warnings.join('; ') });
|
|
125
|
+
}
|
|
126
|
+
}
|
|
110
127
|
for (const role of roles) {
|
|
111
128
|
const recovery = readDaemonRecoveryStatus(agentDir(role.name));
|
|
112
129
|
if (!recovery)
|
|
@@ -160,16 +177,16 @@ export async function doctor(opts = {}, exec = realExec, platform = process.plat
|
|
|
160
177
|
const { listTemplates, resolveTemplate } = await import('./rooms-tasks/templates.js');
|
|
161
178
|
const customs = loaded.roomTemplates ?? {};
|
|
162
179
|
const templates = listTemplates(customs);
|
|
163
|
-
const
|
|
180
|
+
const agentTemplateNames = new Set(Object.keys(loaded.agentTemplates ?? {}));
|
|
164
181
|
for (const t of templates) {
|
|
165
182
|
const badRefs = t.members
|
|
166
|
-
.filter(m =>
|
|
167
|
-
.map(m =>
|
|
183
|
+
.filter(m => !agentTemplateNames.has(m.agent_template))
|
|
184
|
+
.map(m => m.agent_template);
|
|
168
185
|
if (badRefs.length) {
|
|
169
186
|
checks.push({
|
|
170
187
|
name: `template: ${t.name}@${t.version}`,
|
|
171
188
|
ok: true,
|
|
172
|
-
detail: `warning: Agent
|
|
189
|
+
detail: `warning: Agent Template(s) ${badRefs.join(', ')} not found`,
|
|
173
190
|
});
|
|
174
191
|
}
|
|
175
192
|
}
|
|
@@ -527,6 +544,23 @@ export async function doctor(opts = {}, exec = realExec, platform = process.plat
|
|
|
527
544
|
: `${command} not found or failed — install the ACP adapter or set session_options.acp.command`,
|
|
528
545
|
});
|
|
529
546
|
}
|
|
547
|
+
for (const role of roles.filter(role => role.session === 'codex-app-server')) {
|
|
548
|
+
const configured = role.session_options?.codex_app_server?.command;
|
|
549
|
+
const launcher = role.harness_options?.launcher;
|
|
550
|
+
const command = Array.isArray(configured)
|
|
551
|
+
? configured[0]
|
|
552
|
+
: typeof configured === 'string'
|
|
553
|
+
? configured.trim().split(/\s+/)[0]
|
|
554
|
+
: launcher === 'ours-codex' ? 'ours-codex' : 'codex';
|
|
555
|
+
const result = await exec('sh', ['-c', 'command -v "$1" >/dev/null 2>&1', 'sh', command]);
|
|
556
|
+
checks.push({
|
|
557
|
+
name: `codex-app-server: ${role.name}`,
|
|
558
|
+
ok: result.code === 0,
|
|
559
|
+
detail: result.code === 0
|
|
560
|
+
? `${command} available`
|
|
561
|
+
: `${command} not found — install Codex CLI or set session_options.codex_app_server.command`,
|
|
562
|
+
});
|
|
563
|
+
}
|
|
530
564
|
return { ok: checks.every(c => c.ok), checks };
|
|
531
565
|
}
|
|
532
566
|
function loadConfigResult(configPath, yamlMode) {
|
|
@@ -535,6 +569,8 @@ function loadConfigResult(configPath, yamlMode) {
|
|
|
535
569
|
return {
|
|
536
570
|
ok: true, roles: cfg.roles, files: cfg.files, diagnostics: cfg.diagnostics,
|
|
537
571
|
rooms: cfg.rooms, roomTemplates: cfg.roomTemplates, tasks: cfg.tasks,
|
|
572
|
+
agentTemplates: cfg.agentTemplates,
|
|
573
|
+
brainPresets: cfg.brainPresets,
|
|
538
574
|
ownerInviteFingerprint: cfg.ownerInviteFingerprint,
|
|
539
575
|
};
|
|
540
576
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { type AgentLaunchConfiguration } from './lifecycle-summary.js';
|
|
2
|
+
import type { SessionBackendId } from './config.js';
|
|
1
3
|
export type FleetCommandDecision = 'allow' | 'deny' | 'unsupported';
|
|
2
4
|
export type FleetCommandOutcomeClass = 'success' | 'validation' | 'denied' | 'runtime' | 'timeout' | 'proxy' | 'delivery';
|
|
3
5
|
export declare class FleetCliExit extends Error {
|
|
@@ -15,12 +17,13 @@ export type FleetAuditPresentation = {
|
|
|
15
17
|
brain: string;
|
|
16
18
|
role: string;
|
|
17
19
|
harness: string;
|
|
18
|
-
session:
|
|
20
|
+
session: SessionBackendId;
|
|
19
21
|
model?: string;
|
|
20
22
|
permissions?: string;
|
|
21
23
|
parent: string;
|
|
22
24
|
actionId: string;
|
|
23
25
|
inherited: string[];
|
|
26
|
+
configuration?: AgentLaunchConfiguration;
|
|
24
27
|
} | {
|
|
25
28
|
kind: 'task';
|
|
26
29
|
operation: 'create' | 'start' | 'work' | 'block' | 'unblock' | 'review' | 'done' | 'cancel' | 'finish' | 'delete' | 'settling';
|
|
@@ -31,6 +34,8 @@ export type FleetAuditPresentation = {
|
|
|
31
34
|
newState: string;
|
|
32
35
|
template?: string;
|
|
33
36
|
roomId?: string;
|
|
37
|
+
roomName?: string;
|
|
38
|
+
reason?: string;
|
|
34
39
|
revision?: string;
|
|
35
40
|
list?: string;
|
|
36
41
|
agents: Array<{
|
|
@@ -38,6 +43,7 @@ export type FleetAuditPresentation = {
|
|
|
38
43
|
brain?: string;
|
|
39
44
|
role: string;
|
|
40
45
|
permissions?: string;
|
|
46
|
+
configuration?: AgentLaunchConfiguration;
|
|
41
47
|
}>;
|
|
42
48
|
} | {
|
|
43
49
|
kind: 'room';
|
|
@@ -50,18 +56,23 @@ export type FleetAuditPresentation = {
|
|
|
50
56
|
name?: string;
|
|
51
57
|
template?: string;
|
|
52
58
|
taskId?: string;
|
|
59
|
+
anonymous?: boolean;
|
|
60
|
+
memberCount?: number;
|
|
61
|
+
ownerAttached?: boolean;
|
|
53
62
|
participants: Array<{
|
|
54
63
|
name: string;
|
|
55
64
|
id?: string;
|
|
56
65
|
brain?: string;
|
|
57
66
|
role: string;
|
|
58
67
|
permissions?: string;
|
|
68
|
+
configuration?: AgentLaunchConfiguration;
|
|
59
69
|
}>;
|
|
60
70
|
} | {
|
|
61
71
|
kind: 'lifecycle_failure';
|
|
62
72
|
eventId: string;
|
|
63
73
|
resource: 'Agent' | 'Task' | 'Room';
|
|
64
74
|
id: string;
|
|
75
|
+
label?: string;
|
|
65
76
|
state: string;
|
|
66
77
|
category: 'provision_failed' | 'provision_pending' | 'readiness_failed' | 'settlement_failed' | 'settlement_pending' | 'cleanup_failed' | 'cleanup_pending';
|
|
67
78
|
};
|
|
@@ -70,10 +81,19 @@ export declare const FLEET_LIFECYCLE_EVENT_KINDS: readonly ["agent_started", "ta
|
|
|
70
81
|
/** Stable semantic dedupe basis: resource kind + stable resource ID + transition/action ID. */
|
|
71
82
|
export declare function lifecycleEventDigestBasis(value: FleetAuditPresentation): string;
|
|
72
83
|
export declare function beginFleetAuditCollection(): void;
|
|
84
|
+
export declare function setFleetAuditLifecycleCheckpoint(checkpoint: ((presentations: FleetAuditPresentation[]) => Promise<void>) | undefined): void;
|
|
85
|
+
/**
|
|
86
|
+
* Deliver already-recorded lifecycle events while a managed command is still
|
|
87
|
+
* running. On a failed checkpoint the events remain in the final audit batch,
|
|
88
|
+
* so a temporary Owner-channel outage loses timing, never the notice itself.
|
|
89
|
+
*/
|
|
90
|
+
export declare function checkpointFleetAuditPresentations(): Promise<void>;
|
|
73
91
|
export declare function recordFleetAuditResource(kind: 'agent' | 'task' | 'room', id: string | undefined): void;
|
|
74
92
|
type FleetAuditPresentationInput = FleetAuditPresentation extends infer T ? T extends FleetAuditPresentation ? Omit<T, 'eventId'> & {
|
|
75
93
|
eventId?: string;
|
|
76
94
|
} : never : never;
|
|
95
|
+
/** Immutable, single-line human label captured before mutable Task/Room state can disappear. */
|
|
96
|
+
export declare function fleetPresentationLabel(value: unknown): string | undefined;
|
|
77
97
|
export declare function recordFleetAuditPresentation(value: FleetAuditPresentationInput): void;
|
|
78
98
|
export declare function recordFleetAuditFailure(failure: {
|
|
79
99
|
class: FleetCommandOutcomeClass;
|
|
@@ -155,6 +175,7 @@ export declare function validateFleetAuditFinish(value: unknown): asserts value
|
|
|
155
175
|
resourceIds?: Record<string, string>;
|
|
156
176
|
presentations?: FleetAuditPresentation[];
|
|
157
177
|
};
|
|
178
|
+
export declare function validateFleetAuditPresentations(value: unknown): asserts value is FleetAuditPresentation[];
|
|
158
179
|
/** Compact Owner presentation. It intentionally has no command, argv, environment, or correlation data. */
|
|
159
180
|
export declare function renderFleetLifecycleEvent(value: FleetAuditPresentation): string;
|
|
160
181
|
export {};
|