@dsh-enhanced/assistant-web-owner 0.1.65 → 0.1.67
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 +58 -9
- package/lib/autonomy.d.ts +35 -3
- package/lib/autonomy.d.ts.map +1 -1
- package/lib/autonomy.js +114 -12
- package/lib/autonomy.js.map +1 -1
- package/lib/doctor.d.ts +51 -3
- package/lib/doctor.d.ts.map +1 -1
- package/lib/doctor.js +386 -16
- package/lib/doctor.js.map +1 -1
- package/lib/goal-admission.d.ts.map +1 -1
- package/lib/goal-admission.js +7 -1
- package/lib/goal-admission.js.map +1 -1
- package/lib/setup.d.ts.map +1 -1
- package/lib/setup.js +66 -13
- package/lib/setup.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +19 -19
package/lib/doctor.js
CHANGED
|
@@ -5,7 +5,8 @@ import { homedir } from 'node:os';
|
|
|
5
5
|
import { isAbsolute, join, normalize } from 'node:path';
|
|
6
6
|
import { DatabaseSync } from 'node:sqlite';
|
|
7
7
|
import { isDeepStrictEqual, promisify } from 'node:util';
|
|
8
|
-
import { isMap, isScalar, isSeq, parseDocument } from 'yaml';
|
|
8
|
+
import { isMap, isScalar, isSeq, parseDocument, YAMLMap } from 'yaml';
|
|
9
|
+
import { literalAutonomyLinux, validateAutonomyLinuxPaths } from './autonomy.js';
|
|
9
10
|
function fail(message) { throw new Error(`autonomy doctor: ${message}`); }
|
|
10
11
|
function literal(node, label) {
|
|
11
12
|
if (isScalar(node) && (node.tag === undefined || node.tag === 'tag:yaml.org,2002:str'))
|
|
@@ -79,15 +80,25 @@ export function inspectAutonomyProfile(source, profile, dshHome) {
|
|
|
79
80
|
|| typeof grant.principalRecordId !== 'string' || grant.principalRecordId.length === 0
|
|
80
81
|
|| !['revision', 'principalVersion', 'expiresAt', 'maxRuns', 'maxTotalDurationMs'].every(key => Number.isSafeInteger(grant[key]) && grant[key] > 0))
|
|
81
82
|
fail('invalid managed grant or owner scope');
|
|
83
|
+
const stateRoot = path(isolation.get('stateRoot', true), 'Isolation stateRoot');
|
|
84
|
+
const common = { stateRoot,
|
|
85
|
+
databasePath: path(delivery.get('databasePath', true), 'Delivery databasePath', dshHome),
|
|
86
|
+
grant: { ...grant }, principal: { channel: 'web', account: profile, tenant: 'local', user: 'operator' } };
|
|
87
|
+
const backend = isolation.has('backend') ? literal(isolation.get('backend', true), 'Isolation backend') : 'docker';
|
|
88
|
+
if (backend === 'linux-native') {
|
|
89
|
+
if (isolation.has('image') || isolation.has('dockerPath') || isolation.has('socketPath'))
|
|
90
|
+
fail('mixed native and Docker configuration');
|
|
91
|
+
const linux = literalAutonomyLinux(isolation.get('linux', true));
|
|
92
|
+
validateAutonomyLinuxPaths(linux, stateRoot, dshHome);
|
|
93
|
+
return { ...common, backend, linux };
|
|
94
|
+
}
|
|
95
|
+
if (backend !== 'docker' || isolation.has('linux'))
|
|
96
|
+
fail('invalid isolation backend');
|
|
82
97
|
const image = literal(isolation.get('image', true), 'Isolation image');
|
|
83
98
|
if (typeof image !== 'string' || !/^sha256:[0-9a-f]{64}$/u.test(image))
|
|
84
99
|
fail('immutable local isolation image required');
|
|
85
|
-
return {
|
|
86
|
-
|
|
87
|
-
stateRoot: path(isolation.get('stateRoot', true), 'Isolation stateRoot'),
|
|
88
|
-
databasePath: path(delivery.get('databasePath', true), 'Delivery databasePath', dshHome),
|
|
89
|
-
grant: { ...grant }, principal: { channel: 'web', account: profile, tenant: 'local', user: 'operator' },
|
|
90
|
-
};
|
|
100
|
+
return { ...common, image, dockerPath: isolation.has('dockerPath') ? path(isolation.get('dockerPath', true), 'Docker path') : '/usr/bin/docker',
|
|
101
|
+
...(isolation.has('backend') ? { backend: 'docker' } : {}) };
|
|
91
102
|
}
|
|
92
103
|
/** A read-only snapshot, never pairing, migration, or an authorization for future execution. */
|
|
93
104
|
export function inspectAutonomyOwner(profile) {
|
|
@@ -99,11 +110,12 @@ export function inspectAutonomyOwner(profile) {
|
|
|
99
110
|
database.exec('PRAGMA query_only = ON; PRAGMA busy_timeout = 1000; BEGIN;');
|
|
100
111
|
// Deliberately pinned rather than imported: each Delivery schema must be
|
|
101
112
|
// reviewed before this self-contained read-only gate accepts it. v25 adds
|
|
102
|
-
// foreground completion sequencing, v26 restart fences
|
|
103
|
-
// handles
|
|
113
|
+
// foreground completion sequencing, v26 restart fences, v27 progress
|
|
114
|
+
// handles, v28 foreground termination, v29 report/reply sidecars, v30 owner feedback and v31 attention audit.
|
|
115
|
+
// Principal authority is unchanged from v24; reply state is not an owner receipt.
|
|
104
116
|
// Unknown versions fail closed.
|
|
105
117
|
const schemaVersion = database.prepare('PRAGMA user_version').get().user_version;
|
|
106
|
-
if (![24, 25, 26, 27].includes(schemaVersion))
|
|
118
|
+
if (![24, 25, 26, 27, 28, 29, 30, 31].includes(schemaVersion))
|
|
107
119
|
return { status: 'unavailable' };
|
|
108
120
|
const row = database.prepare('SELECT principal_json, role, status, version, linked_to_id FROM delivery_principals WHERE id = ?').get(profile.grant.principalRecordId);
|
|
109
121
|
if (!row || row.role !== 'owner' || row.status !== 'active' || row.version !== profile.grant.principalVersion || row.linked_to_id !== null
|
|
@@ -118,22 +130,353 @@ export function inspectAutonomyOwner(profile) {
|
|
|
118
130
|
database?.close();
|
|
119
131
|
}
|
|
120
132
|
}
|
|
133
|
+
/** Verify only the persisted backend descriptor; never fetch, prepare or renew. */
|
|
134
|
+
export async function probeAutonomyProfileRuntime(profile) {
|
|
135
|
+
if (profile.backend === 'linux-native') {
|
|
136
|
+
const { verifyLinuxRuntime } = await import('@dsh-enhanced/assistant-isolation');
|
|
137
|
+
const { probeLinuxIsolationRuntime } = await import('@dsh-enhanced/assistant-isolation/native-resources');
|
|
138
|
+
await verifyLinuxRuntime(profile.linux.runtime);
|
|
139
|
+
await probeLinuxIsolationRuntime(profile.linux);
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
const { probeIsolationRuntime } = await import('@dsh-enhanced/assistant-isolation');
|
|
143
|
+
await probeIsolationRuntime(profile.image, profile.dockerPath);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// ---------------------------------------------------------------------------
|
|
147
|
+
// Static autonomy readiness snapshot (ordinary-use learning assembly)
|
|
148
|
+
/** Installed bundles the ordinary-use learning assembly expects in one profile. */
|
|
149
|
+
const readinessBundleSlugs = [
|
|
150
|
+
'personal-assistant',
|
|
151
|
+
'assistant-work-items',
|
|
152
|
+
'assistant-delivery',
|
|
153
|
+
'assistant-evaluation',
|
|
154
|
+
'assistant-verifier',
|
|
155
|
+
'event-triggers',
|
|
156
|
+
'assistant-memory-learning',
|
|
157
|
+
'assistant-growth-driver',
|
|
158
|
+
'assistant-proactive',
|
|
159
|
+
'plugin-control-plane',
|
|
160
|
+
];
|
|
161
|
+
/** Work-item intake evaluation levels; mirrors the work-items INTAKE_EVALUATION_LEVELS enum. */
|
|
162
|
+
const intakeEvaluationCeilings = new Set(['ignore', 'digest', 'notify', 'accept']);
|
|
163
|
+
const intakeRuleIdPattern = /^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/u;
|
|
164
|
+
function readinessRows(source) {
|
|
165
|
+
try {
|
|
166
|
+
const document = parseDocument(source, { customTags: [{ tag: 'tag:yaml.org,2002:js', resolve: (value) => value }] });
|
|
167
|
+
return document.errors.length === 0 && isSeq(document.contents) ? document.contents : undefined;
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
return undefined;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
function readinessRow(rows, slug) {
|
|
174
|
+
const id = `dsh-enhanced-${slug}`;
|
|
175
|
+
const name = `@dsh-enhanced/${slug}`;
|
|
176
|
+
const matches = rows.items.filter(item => isMap(item) && (item.get('id') === id || item.get('name') === name));
|
|
177
|
+
return matches.length === 1 ? matches[0] : undefined;
|
|
178
|
+
}
|
|
179
|
+
function readinessLoaded(rows, slug) {
|
|
180
|
+
const row = readinessRow(rows, slug);
|
|
181
|
+
return row === undefined ? undefined : row.get('disabled') !== true;
|
|
182
|
+
}
|
|
183
|
+
function readinessConfig(rows, slug) {
|
|
184
|
+
const config = readinessRow(rows, slug)?.get('config', true);
|
|
185
|
+
if (config === undefined)
|
|
186
|
+
return new YAMLMap();
|
|
187
|
+
return isMap(config) ? config : undefined;
|
|
188
|
+
}
|
|
189
|
+
function readinessPlain(node) {
|
|
190
|
+
if (node === undefined)
|
|
191
|
+
return undefined;
|
|
192
|
+
if (isScalar(node))
|
|
193
|
+
return node.value;
|
|
194
|
+
if (isMap(node) || isSeq(node))
|
|
195
|
+
return node.toJSON();
|
|
196
|
+
return node;
|
|
197
|
+
}
|
|
198
|
+
/** Read one dotted config value without evaluating tagged expressions. */
|
|
199
|
+
function readinessValue(rows, slug, key) {
|
|
200
|
+
const config = readinessConfig(rows, slug);
|
|
201
|
+
if (config === undefined)
|
|
202
|
+
return undefined;
|
|
203
|
+
let node = config;
|
|
204
|
+
for (const segment of key.split('.')) {
|
|
205
|
+
if (!isMap(node))
|
|
206
|
+
return undefined;
|
|
207
|
+
node = node.get(segment, true);
|
|
208
|
+
}
|
|
209
|
+
return readinessPlain(node);
|
|
210
|
+
}
|
|
211
|
+
function validIntakeEvaluationRules(value) {
|
|
212
|
+
if (!Array.isArray(value) || value.length === 0 || value.length > 16)
|
|
213
|
+
return false;
|
|
214
|
+
const ids = new Set();
|
|
215
|
+
return value.every(rule => {
|
|
216
|
+
if (rule === null || typeof rule !== 'object' || Array.isArray(rule))
|
|
217
|
+
return false;
|
|
218
|
+
const record = rule;
|
|
219
|
+
if (Object.keys(record).sort().join(',') !== 'ceiling,ruleId')
|
|
220
|
+
return false;
|
|
221
|
+
const { ruleId, ceiling } = record;
|
|
222
|
+
if (typeof ruleId !== 'string' || !intakeRuleIdPattern.test(ruleId) || ids.has(ruleId))
|
|
223
|
+
return false;
|
|
224
|
+
ids.add(ruleId);
|
|
225
|
+
return typeof ceiling === 'string' && intakeEvaluationCeilings.has(ceiling);
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
function routeText(value) {
|
|
229
|
+
return typeof value === 'string' && value.length > 0 && value.length <= 200 ? value : null;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Inspect the composed profile without activating anything, calling a model or
|
|
233
|
+
* reading a database. Missing or mismatched configuration is reported as
|
|
234
|
+
* `not-ready` with a reason; this function never throws for an incomplete
|
|
235
|
+
* assembly, so a doctor run degrades into a snapshot instead of a crash.
|
|
236
|
+
*/
|
|
237
|
+
export function inspectAutonomyReadiness(source, profile) {
|
|
238
|
+
const runtime = { observed: false,
|
|
239
|
+
note: 'static composed profile only; runtime registration, model calls, external delivery and Policy readiness are not observed' };
|
|
240
|
+
const rows = readinessRows(source);
|
|
241
|
+
if (rows === undefined) {
|
|
242
|
+
const check = { id: 'profile-composition', required: true, status: 'not-ready',
|
|
243
|
+
summary: 'effective profile is not an unambiguous YAML sequence',
|
|
244
|
+
reasons: [{ code: 'profile-unreadable', message: 'the composed profile could not be parsed; doctor reports not-ready instead of crashing' }],
|
|
245
|
+
details: {} };
|
|
246
|
+
return { protocol: 'dsh-enhanced/autonomy-readiness/v1', profile, scope: 'ordinary-use-learning', ready: false, checks: [check], runtime };
|
|
247
|
+
}
|
|
248
|
+
const checks = [];
|
|
249
|
+
const missing = [];
|
|
250
|
+
const disabled = [];
|
|
251
|
+
for (const slug of readinessBundleSlugs) {
|
|
252
|
+
const loaded = readinessLoaded(rows, slug);
|
|
253
|
+
if (loaded === undefined)
|
|
254
|
+
missing.push(slug);
|
|
255
|
+
else if (!loaded)
|
|
256
|
+
disabled.push(slug);
|
|
257
|
+
}
|
|
258
|
+
checks.push({
|
|
259
|
+
id: 'bundles', required: true,
|
|
260
|
+
status: missing.length === 0 && disabled.length === 0 ? 'ready' : 'not-ready',
|
|
261
|
+
summary: `${readinessBundleSlugs.length - missing.length - disabled.length}/${readinessBundleSlugs.length} expected bundles loaded`,
|
|
262
|
+
reasons: [
|
|
263
|
+
...missing.map(slug => ({ code: `bundle-missing:${slug}`, message: `@dsh-enhanced/${slug} is not installed in this profile` })),
|
|
264
|
+
...disabled.map(slug => ({ code: `bundle-disabled:${slug}`, message: `@dsh-enhanced/${slug} is installed but its loader row is disabled` })),
|
|
265
|
+
],
|
|
266
|
+
details: { expected: readinessBundleSlugs.length, missing, disabled },
|
|
267
|
+
});
|
|
268
|
+
const workItemsLoaded = readinessLoaded(rows, 'assistant-work-items');
|
|
269
|
+
const workItemsEnabled = readinessValue(rows, 'assistant-work-items', 'enabled');
|
|
270
|
+
const workItemsMode = readinessValue(rows, 'assistant-work-items', 'mode');
|
|
271
|
+
const intakeLedger = readinessValue(rows, 'assistant-work-items', 'intakeLedger.enabled');
|
|
272
|
+
const workItemsReasons = [];
|
|
273
|
+
if (workItemsLoaded !== true) {
|
|
274
|
+
workItemsReasons.push({ code: 'work-items-unavailable', message: 'assistant-work-items is not installed and loaded, so no observe ledger can be written' });
|
|
275
|
+
}
|
|
276
|
+
else {
|
|
277
|
+
if (workItemsEnabled !== true)
|
|
278
|
+
workItemsReasons.push({ code: 'work-items-not-enabled', message: 'assistant-work-items.enabled is off; the ledger is inert' });
|
|
279
|
+
if (workItemsMode !== 'observe')
|
|
280
|
+
workItemsReasons.push({ code: 'work-items-not-observe', message: `assistant-work-items.mode is ${JSON.stringify(workItemsMode ?? null)}; the default assembly stays observe-only` });
|
|
281
|
+
if (intakeLedger !== true)
|
|
282
|
+
workItemsReasons.push({ code: 'work-items-intake-disabled', message: 'assistant-work-items.intakeLedger.enabled is off; inbound metadata is not recorded' });
|
|
283
|
+
}
|
|
284
|
+
checks.push({
|
|
285
|
+
id: 'work-items-observe-intake', required: true,
|
|
286
|
+
status: workItemsReasons.length === 0 ? 'ready' : 'not-ready',
|
|
287
|
+
summary: workItemsReasons.length === 0 ? 'observe ledger enabled with the deterministic intake ledger' : 'observe ledger / intake not assembled',
|
|
288
|
+
reasons: workItemsReasons,
|
|
289
|
+
details: { enabled: workItemsEnabled === true, mode: workItemsMode ?? null, intakeLedgerEnabled: intakeLedger === true },
|
|
290
|
+
});
|
|
291
|
+
const proactiveLoaded = readinessLoaded(rows, 'assistant-proactive');
|
|
292
|
+
const intakeEvaluationEnabled = readinessValue(rows, 'assistant-proactive', 'intakeEvaluation.enabled');
|
|
293
|
+
const intakeProvider = routeText(readinessValue(rows, 'assistant-proactive', 'intakeEvaluation.provider'));
|
|
294
|
+
const intakeModel = routeText(readinessValue(rows, 'assistant-proactive', 'intakeEvaluation.model'));
|
|
295
|
+
const intakeRules = readinessValue(rows, 'assistant-proactive', 'intakeEvaluation.rules');
|
|
296
|
+
const workItemsEvaluation = readinessValue(rows, 'assistant-work-items', 'intakeLedger.evaluation.enabled');
|
|
297
|
+
const evaluatorReasons = [];
|
|
298
|
+
if (workItemsLoaded !== true)
|
|
299
|
+
evaluatorReasons.push({ code: 'intake-evaluator-work-items-missing', message: 'assistant-work-items is unavailable, so an evaluator cannot register' });
|
|
300
|
+
else if (workItemsEvaluation !== true)
|
|
301
|
+
evaluatorReasons.push({ code: 'intake-evaluator-work-items-evaluation-off', message: 'assistant-work-items.intakeLedger.evaluation.enabled is off; the queue would refuse an evaluator registration' });
|
|
302
|
+
if (proactiveLoaded !== true)
|
|
303
|
+
evaluatorReasons.push({ code: 'intake-evaluator-producer-missing', message: 'assistant-proactive is not installed and loaded, so no production intake evaluator exists' });
|
|
304
|
+
else {
|
|
305
|
+
if (intakeEvaluationEnabled !== true)
|
|
306
|
+
evaluatorReasons.push({ code: 'intake-evaluator-disabled', message: 'assistant-proactive.intakeEvaluation.enabled is off; the preset only enables it after the owner declared rules and a model route' });
|
|
307
|
+
if (intakeProvider === null)
|
|
308
|
+
evaluatorReasons.push({ code: 'intake-evaluator-provider-missing', message: 'assistant-proactive.intakeEvaluation.provider is not configured' });
|
|
309
|
+
if (intakeModel === null)
|
|
310
|
+
evaluatorReasons.push({ code: 'intake-evaluator-model-missing', message: 'assistant-proactive.intakeEvaluation.model is not configured' });
|
|
311
|
+
if (!validIntakeEvaluationRules(intakeRules))
|
|
312
|
+
evaluatorReasons.push({ code: 'intake-evaluator-rules-invalid', message: 'assistant-proactive.intakeEvaluation.rules needs 1-16 entries with unique ruleId and ceiling in ignore|digest|notify|accept' });
|
|
313
|
+
}
|
|
314
|
+
checks.push({
|
|
315
|
+
id: 'intake-evaluator', required: true,
|
|
316
|
+
status: evaluatorReasons.length === 0 ? 'ready' : 'not-ready',
|
|
317
|
+
summary: evaluatorReasons.length === 0
|
|
318
|
+
? `configured with ${Array.isArray(intakeRules) ? intakeRules.length : 0} rules; runtime registration is not observable from a static dump`
|
|
319
|
+
: 'production intake evaluator not assembled',
|
|
320
|
+
reasons: evaluatorReasons,
|
|
321
|
+
details: { configured: evaluatorReasons.length === 0, runtimeRegistration: 'not-observed',
|
|
322
|
+
provider: intakeProvider, model: intakeModel,
|
|
323
|
+
rules: Array.isArray(intakeRules) ? intakeRules.length : 0,
|
|
324
|
+
workItemsEvaluationEnabled: workItemsEvaluation === true },
|
|
325
|
+
});
|
|
326
|
+
const deliveryLoaded = readinessLoaded(rows, 'assistant-delivery');
|
|
327
|
+
const ownerReportFeedback = readinessValue(rows, 'assistant-work-items', 'ownerReportFeedback') === true;
|
|
328
|
+
const ownerReplyContinuation = readinessValue(rows, 'assistant-work-items', 'ownerReplyContinuation') === true;
|
|
329
|
+
checks.push({
|
|
330
|
+
id: 'delivery-natural-feedback', required: true,
|
|
331
|
+
status: deliveryLoaded === true ? 'ready' : 'not-ready',
|
|
332
|
+
summary: deliveryLoaded === true
|
|
333
|
+
? `Delivery loaded; the natural feedback parser ships with the bundle (work-item report feedback: ${ownerReportFeedback ? 'on' : 'off'}, reply continuation: ${ownerReplyContinuation ? 'on' : 'off'})`
|
|
334
|
+
: 'assistant-delivery is not installed and loaded, so owner replies cannot become trusted feedback',
|
|
335
|
+
reasons: deliveryLoaded === true ? [] : [{ code: 'delivery-unavailable', message: 'assistant-delivery is not installed and loaded in this profile' }],
|
|
336
|
+
details: { installed: deliveryLoaded === true, ownerReportFeedback, ownerReplyContinuation },
|
|
337
|
+
});
|
|
338
|
+
const learningReasons = [];
|
|
339
|
+
const memoryLoaded = readinessLoaded(rows, 'assistant-memory-learning');
|
|
340
|
+
const memoryFlag = readinessValue(rows, 'assistant-memory-learning', 'workItemExperiences') === true;
|
|
341
|
+
const reviewFlag = readinessValue(rows, 'assistant-verifier', 'memoryReviews.workItemExperiences') === true;
|
|
342
|
+
const adoptionFlag = readinessValue(rows, 'personal-assistant', 'personalMemory.automaticLearning.workItemExperiences') === true;
|
|
343
|
+
if (memoryLoaded !== true)
|
|
344
|
+
learningReasons.push({ code: 'memory-learning-unavailable', message: 'assistant-memory-learning is not installed and loaded' });
|
|
345
|
+
else if (!memoryFlag)
|
|
346
|
+
learningReasons.push({ code: 'memory-work-item-experiences-off', message: 'assistant-memory-learning.workItemExperiences is off; the preset only turns it on after both signed grants already carry the same flag' });
|
|
347
|
+
else {
|
|
348
|
+
if (!reviewFlag)
|
|
349
|
+
learningReasons.push({ code: 'memory-review-grant-not-expanded', message: 'assistant-verifier.memoryReviews.workItemExperiences is off; a fresh review grant is required' });
|
|
350
|
+
if (!adoptionFlag)
|
|
351
|
+
learningReasons.push({ code: 'memory-adoption-grant-not-expanded', message: 'personal-assistant.personalMemory.automaticLearning.workItemExperiences is off; a fresh adoption grant is required' });
|
|
352
|
+
}
|
|
353
|
+
const growthLoaded = readinessLoaded(rows, 'assistant-growth-driver');
|
|
354
|
+
const growthEnabled = readinessValue(rows, 'assistant-growth-driver', 'enabled') === true;
|
|
355
|
+
const usageEnabled = readinessValue(rows, 'assistant-growth-driver', 'usageLearning.enabled') === true;
|
|
356
|
+
const workItemFailures = readinessValue(rows, 'assistant-growth-driver', 'usageLearning.workItemFailures') === true;
|
|
357
|
+
if (growthLoaded !== true)
|
|
358
|
+
learningReasons.push({ code: 'growth-driver-unavailable', message: 'assistant-growth-driver is not installed and loaded' });
|
|
359
|
+
else if (!growthEnabled || !usageEnabled)
|
|
360
|
+
learningReasons.push({ code: 'growth-usage-learning-off', message: 'assistant-growth-driver enabled / usageLearning.enabled is off; ordinary usage is not scanned' });
|
|
361
|
+
else if (!workItemFailures)
|
|
362
|
+
learningReasons.push({ code: 'growth-work-item-failures-not-authorized', message: 'usageLearning.workItemFailures is off; it needs signed workItemAuthorities pins that a preset never invents or extends' });
|
|
363
|
+
const evaluationLoaded = readinessLoaded(rows, 'assistant-evaluation');
|
|
364
|
+
const notificationOutcomes = readinessValue(rows, 'assistant-evaluation', 'notificationOutcomesEnabled') === true;
|
|
365
|
+
if (evaluationLoaded !== true)
|
|
366
|
+
learningReasons.push({ code: 'evaluation-unavailable', message: 'assistant-evaluation is not installed and loaded' });
|
|
367
|
+
else if (!notificationOutcomes)
|
|
368
|
+
learningReasons.push({ code: 'evaluation-notification-outcomes-off', message: 'assistant-evaluation.notificationOutcomesEnabled is off; notification results are not synced into the ledger' });
|
|
369
|
+
checks.push({
|
|
370
|
+
id: 'background-learning', required: true,
|
|
371
|
+
status: learningReasons.length === 0 ? 'ready' : 'not-ready',
|
|
372
|
+
summary: learningReasons.length === 0 ? 'ordinary-use learning switches are assembled' : `${learningReasons.length} background learning switch(es) not ready`,
|
|
373
|
+
reasons: learningReasons,
|
|
374
|
+
details: { memoryWorkItemExperiences: memoryFlag, memoryReviewGrant: reviewFlag, memoryAdoptionGrant: adoptionFlag,
|
|
375
|
+
growthEnabled, growthUsageLearning: usageEnabled, growthWorkItemFailures: workItemFailures, notificationOutcomesEnabled: notificationOutcomes },
|
|
376
|
+
});
|
|
377
|
+
const controlLoaded = readinessLoaded(rows, 'plugin-control-plane');
|
|
378
|
+
const revisionCapabilities = readinessValue(rows, 'plugin-control-plane', 'revisionCapabilities');
|
|
379
|
+
const creationCapabilities = readinessValue(rows, 'plugin-control-plane', 'creationCapabilities');
|
|
380
|
+
const revisionVerifications = readinessValue(rows, 'plugin-control-plane', 'revisionVerifications');
|
|
381
|
+
const sourceJobs = readinessValue(rows, 'plugin-control-plane', 'sourceJobs');
|
|
382
|
+
const sourceBuild = readinessValue(rows, 'plugin-control-plane', 'sourceBuild');
|
|
383
|
+
const revisionJobs = sourceJobs !== null && typeof sourceJobs === 'object' && !Array.isArray(sourceJobs)
|
|
384
|
+
? sourceJobs.revision : undefined;
|
|
385
|
+
const revisionConfigured = revisionCapabilities !== null && typeof revisionCapabilities === 'object' && !Array.isArray(revisionCapabilities)
|
|
386
|
+
&& typeof revisionCapabilities.authorityId === 'string'
|
|
387
|
+
&& typeof revisionCapabilities.keyId === 'string'
|
|
388
|
+
&& typeof revisionCapabilities.namePrefix === 'string'
|
|
389
|
+
&& typeof revisionCapabilities.expiresAt === 'number';
|
|
390
|
+
const revisionReasons = [];
|
|
391
|
+
if (controlLoaded !== true)
|
|
392
|
+
revisionReasons.push({ code: 'control-plane-unavailable', message: 'plugin-control-plane is not installed and loaded' });
|
|
393
|
+
else if (!revisionConfigured)
|
|
394
|
+
revisionReasons.push({ code: 'revision-capabilities-not-configured', message: 'revision adoption requires owner-generated ed25519 key material and explicit adoption/rollback grants; nothing is generated by a preset' });
|
|
395
|
+
else if (creationCapabilities === undefined || revisionVerifications === undefined || revisionJobs === undefined || sourceBuild === undefined) {
|
|
396
|
+
revisionReasons.push({ code: 'revision-prerequisites-missing', message: 'revisionCapabilities also needs creationCapabilities, revisionVerifications, sourceBuild and sourceJobs.revision; verify the owner setup' });
|
|
397
|
+
}
|
|
398
|
+
checks.push({
|
|
399
|
+
id: 'revision-adoption', required: true,
|
|
400
|
+
status: revisionReasons.length === 0 ? 'ready' : 'not-ready',
|
|
401
|
+
summary: revisionReasons.length === 0 ? 'verified revision adoption and exact parent rollback are configured' : 'revision adoption authorization is not configured',
|
|
402
|
+
reasons: revisionReasons,
|
|
403
|
+
details: { configured: revisionConfigured, prerequisites: { creationCapabilities: creationCapabilities !== undefined, revisionVerifications: revisionVerifications !== undefined, sourceBuild: sourceBuild !== undefined, revisionJobs: revisionJobs !== undefined } },
|
|
404
|
+
});
|
|
405
|
+
const triggersLoaded = readinessLoaded(rows, 'event-triggers');
|
|
406
|
+
const pollerEnabled = readinessValue(rows, 'event-triggers', 'pollerEnabled') === true;
|
|
407
|
+
const triggers = readinessValue(rows, 'event-triggers', 'triggers');
|
|
408
|
+
const triggerCount = Array.isArray(triggers) ? triggers.length : 0;
|
|
409
|
+
const pollerReasons = [];
|
|
410
|
+
if (triggersLoaded !== true)
|
|
411
|
+
pollerReasons.push({ code: 'event-triggers-unavailable', message: 'event-triggers is not installed and loaded' });
|
|
412
|
+
else if (!pollerEnabled)
|
|
413
|
+
pollerReasons.push({ code: 'event-poller-disabled', message: 'event-triggers.pollerEnabled is off; configured triggers never fire' });
|
|
414
|
+
checks.push({
|
|
415
|
+
id: 'event-poller', required: true,
|
|
416
|
+
status: pollerReasons.length === 0 ? 'ready' : 'not-ready',
|
|
417
|
+
summary: pollerReasons.length === 0
|
|
418
|
+
? `poller enabled with ${triggerCount} trigger definition(s)${triggerCount === 0 ? '; none configured, so nothing will fire yet' : ''}`
|
|
419
|
+
: 'event poller not ready',
|
|
420
|
+
reasons: pollerReasons,
|
|
421
|
+
details: { pollerEnabled, triggers: triggerCount },
|
|
422
|
+
});
|
|
423
|
+
// Optional ring (Lead request): PTC presentation is a configuration hint only.
|
|
424
|
+
const toolPresentation = readinessValue(rows, 'assistant-growth-driver', 'toolPresentation');
|
|
425
|
+
const ptcConfigured = toolPresentation === 'ptc';
|
|
426
|
+
checks.push({
|
|
427
|
+
id: 'ptc-presentation', required: false,
|
|
428
|
+
status: ptcConfigured ? 'not-verified' : 'ready',
|
|
429
|
+
summary: ptcConfigured
|
|
430
|
+
? 'toolPresentation=ptc; a live run still needs a mounted ctx.ptcRuntime, run_code that does not request human approval, and an exact Policy allow rule for the growth agent background run_code (this static doctor verifies none of the runtime conditions)'
|
|
431
|
+
: 'toolPresentation is native (PTC is an explicit owner opt-in)',
|
|
432
|
+
reasons: [],
|
|
433
|
+
details: { toolPresentation: typeof toolPresentation === 'string' ? toolPresentation : 'native' },
|
|
434
|
+
});
|
|
435
|
+
const ready = checks.filter(check => check.required).every(check => check.status === 'ready');
|
|
436
|
+
return { protocol: 'dsh-enhanced/autonomy-readiness/v1', profile, scope: 'ordinary-use-learning', ready, checks, runtime };
|
|
437
|
+
}
|
|
438
|
+
/** Deterministic human-readable form of the same snapshot the JSON line carries. */
|
|
439
|
+
export function formatAutonomyReadiness(report) {
|
|
440
|
+
const label = (status) => status === 'ready' ? 'ready ' : status === 'not-ready' ? 'not-ready ' : 'not-verified';
|
|
441
|
+
const lines = [`Autonomy readiness (static composed profile, no model, no writes): ${report.ready ? 'READY' : 'NOT READY'} (profile ${report.profile})`];
|
|
442
|
+
for (const check of report.checks) {
|
|
443
|
+
lines.push(` ${label(check.status)} ${check.id}: ${check.summary}`);
|
|
444
|
+
for (const reason of check.reasons)
|
|
445
|
+
lines.push(` - [${reason.code}] ${reason.message}`);
|
|
446
|
+
}
|
|
447
|
+
lines.push(` runtime: not observed (${report.runtime.note})`);
|
|
448
|
+
return `${lines.join('\n')}\n`;
|
|
449
|
+
}
|
|
121
450
|
export async function runAutonomyDoctor(argv = process.argv.slice(2)) {
|
|
451
|
+
const usage = [
|
|
452
|
+
'Usage: dsh-autonomy-doctor [--profile web] [--dsh-home <absolute-path>] [--readiness]',
|
|
453
|
+
'Default: checks the installed finite isolation grant, paired owner and a temporary backend-specific probe.',
|
|
454
|
+
'--readiness: prints the static ordinary-use-learning readiness snapshot (text plus one JSON line) and exits 1 when a mandatory ring is not ready.',
|
|
455
|
+
'The readiness snapshot reads only the composed profile: it never activates a Host, calls a model, writes state, renews grants or verifies runtime registration, Policy or external delivery.',
|
|
456
|
+
'',
|
|
457
|
+
].join('\n');
|
|
122
458
|
if (argv.includes('--help') || argv.includes('-h')) {
|
|
123
|
-
process.stdout.write(
|
|
459
|
+
process.stdout.write(usage);
|
|
124
460
|
return;
|
|
125
461
|
}
|
|
126
462
|
let profile = 'web';
|
|
127
463
|
let dshHome = process.env.DSH_HOME ?? join(homedir(), '.dsh');
|
|
128
|
-
|
|
464
|
+
let readinessOnly = false;
|
|
465
|
+
for (let index = 0; index < argv.length;) {
|
|
129
466
|
const option = argv[index];
|
|
130
|
-
|
|
131
|
-
|
|
467
|
+
if (option === '--readiness') {
|
|
468
|
+
readinessOnly = true;
|
|
469
|
+
index += 1;
|
|
470
|
+
continue;
|
|
471
|
+
}
|
|
472
|
+
const value = argv[index + 1];
|
|
473
|
+
if (!['--profile', '--dsh-home'].includes(option ?? '') || value === undefined || value.startsWith('--'))
|
|
132
474
|
fail('invalid arguments');
|
|
133
475
|
if (option === '--profile')
|
|
134
476
|
profile = value;
|
|
135
477
|
else
|
|
136
478
|
dshHome = value;
|
|
479
|
+
index += 2;
|
|
137
480
|
}
|
|
138
481
|
if (!/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/u.test(profile) || !isAbsolute(dshHome) || normalize(dshHome) !== dshHome || /[\p{Cc}*]/u.test(dshHome))
|
|
139
482
|
fail('invalid profile or home');
|
|
@@ -145,7 +488,34 @@ export async function runAutonomyDoctor(argv = process.argv.slice(2)) {
|
|
|
145
488
|
fail('could not compose profile; inspect installed bundles and configuration');
|
|
146
489
|
}
|
|
147
490
|
};
|
|
148
|
-
|
|
491
|
+
if (readinessOnly) {
|
|
492
|
+
let source;
|
|
493
|
+
try {
|
|
494
|
+
source = await dump();
|
|
495
|
+
}
|
|
496
|
+
catch (error) {
|
|
497
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
498
|
+
const report = { protocol: 'dsh-enhanced/autonomy-readiness/v1', profile, scope: 'ordinary-use-learning', ready: false,
|
|
499
|
+
checks: [{ id: 'profile-composition', required: true, status: 'not-ready', summary: 'the profile could not be composed',
|
|
500
|
+
reasons: [{ code: 'profile-composition-failed', message }], details: {} }],
|
|
501
|
+
runtime: { observed: false, note: 'static composed profile only; nothing was activated' } };
|
|
502
|
+
process.stdout.write(formatAutonomyReadiness(report));
|
|
503
|
+
process.stdout.write(`${JSON.stringify(report)}\n`);
|
|
504
|
+
process.exitCode = 1;
|
|
505
|
+
return;
|
|
506
|
+
}
|
|
507
|
+
const report = inspectAutonomyReadiness(source, profile);
|
|
508
|
+
process.stdout.write(formatAutonomyReadiness(report));
|
|
509
|
+
process.stdout.write(`${JSON.stringify(report)}\n`);
|
|
510
|
+
if (!report.ready)
|
|
511
|
+
process.exitCode = 1;
|
|
512
|
+
return;
|
|
513
|
+
}
|
|
514
|
+
const source = await dump();
|
|
515
|
+
// Finite-isolation mode keeps its existing output exactly: the ordinary-use
|
|
516
|
+
// readiness snapshot is an explicit `--readiness` opt-in so an autonomy
|
|
517
|
+
// profile's diagnostic run is unchanged.
|
|
518
|
+
const parsed = inspectAutonomyProfile(source, profile, dshHome);
|
|
149
519
|
const { inspectIsolationGrant, probeIsolationRuntime } = await import('@dsh-enhanced/assistant-isolation');
|
|
150
520
|
if (typeof inspectIsolationGrant !== 'function' || typeof probeIsolationRuntime !== 'function')
|
|
151
521
|
fail('install the matching assistant-isolation version with grant diagnostics; no state was changed');
|
|
@@ -155,7 +525,7 @@ export async function runAutonomyDoctor(argv = process.argv.slice(2)) {
|
|
|
155
525
|
process.stdout.write(`${JSON.stringify({ scope: 'finite-isolation', owner, grant, modelAndGoals: 'not-checked', externalActions: 'not-checked' })}\n`);
|
|
156
526
|
if (owner.status !== 'matched' || grant.status !== 'available')
|
|
157
527
|
fail('owner or persisted grant checks failed; no authority was renewed');
|
|
158
|
-
await
|
|
528
|
+
await probeAutonomyProfileRuntime(parsed);
|
|
159
529
|
if (!isDeepStrictEqual(inspectAutonomyProfile(await dump(), profile, dshHome), parsed)
|
|
160
530
|
|| inspectAutonomyOwner(parsed).status !== 'matched'
|
|
161
531
|
|| inspectIsolationGrant({ stateRoot: parsed.stateRoot, grant: parsed.grant }).status !== 'available')
|
package/lib/doctor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"goal-admission.d.ts","sourceRoot":"","sources":["../src/goal-admission.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"goal-admission.d.ts","sourceRoot":"","sources":["../src/goal-admission.ts"],"names":[],"mappings":"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"}
|
package/lib/goal-admission.js
CHANGED
|
@@ -312,6 +312,9 @@ export function prepareGoalAdmission(input, source, effectiveSource, taskSource,
|
|
|
312
312
|
const policy = map(personal.get('assistantPolicy', true));
|
|
313
313
|
const principalId = `web/${input.profile}/local/operator`;
|
|
314
314
|
const profile = inspectAutonomyProfile(target.document.toString(), input.profile, input.dshHome);
|
|
315
|
+
const nativeRoots = profile.backend === 'linux-native' ? profile.linux.cgroupRoots : undefined;
|
|
316
|
+
if (nativeRoots?.mode === 'v2')
|
|
317
|
+
fail('native Goal verification requires frozen cgroup v1 roots');
|
|
315
318
|
const { binding, owner } = snapshot;
|
|
316
319
|
if (profile.grant.workspace !== input.workspace || profile.grant.agentPreset !== input.preset || binding.workspace !== input.workspace || binding.agentPreset !== input.preset
|
|
317
320
|
|| !isDeepStrictEqual(binding.principal, profile.principal) || owner.id !== profile.grant.principalRecordId || owner.version !== profile.grant.principalVersion
|
|
@@ -384,7 +387,10 @@ export function prepareGoalAdmission(input, source, effectiveSource, taskSource,
|
|
|
384
387
|
}
|
|
385
388
|
};
|
|
386
389
|
const authority = { kind: 'isolated-runner', id: `${admissionId}-verify`, stateRoot: join(input.dshHome, 'assistant-goal-verification', input.profile, admissionId),
|
|
387
|
-
|
|
390
|
+
...(profile.backend === 'linux-native'
|
|
391
|
+
? { backend: 'linux-native', runtime: profile.linux.runtime, cgroupRoots: nativeRoots }
|
|
392
|
+
: { image: profile.image, dockerPath: profile.dockerPath }),
|
|
393
|
+
command: task.verification.command, expiresAt: profile.grant.expiresAt,
|
|
388
394
|
maxRuns: task.verification.maxRuns, maxTotalDurationMs: task.verification.maxTotalDurationMs, maxDurationMs: task.verification.maxDurationMs,
|
|
389
395
|
maxOutputBytes: task.verification.maxOutputBytes, testSets: [{ id: 'cases', cases: task.verification.cases }] };
|
|
390
396
|
const remoteAuthority = repository?.outcome === undefined ? undefined : repositoryOutcomeAuthority(repository.outcome, {
|