youmd 0.10.2 → 0.12.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/dist/commands/brain.d.ts.map +1 -1
- package/dist/commands/brain.js +91 -28
- package/dist/commands/brain.js.map +1 -1
- package/dist/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +6 -1
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/conversations.d.ts +5 -0
- package/dist/commands/conversations.d.ts.map +1 -0
- package/dist/commands/conversations.js +116 -0
- package/dist/commands/conversations.js.map +1 -0
- package/dist/commands/doctor.d.ts +1 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +16 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/founder.d.ts +13 -0
- package/dist/commands/founder.d.ts.map +1 -0
- package/dist/commands/founder.js +189 -0
- package/dist/commands/founder.js.map +1 -0
- package/dist/commands/handoff.d.ts +5 -0
- package/dist/commands/handoff.d.ts.map +1 -0
- package/dist/commands/handoff.js +432 -0
- package/dist/commands/handoff.js.map +1 -0
- package/dist/commands/orchestrate.d.ts +15 -0
- package/dist/commands/orchestrate.d.ts.map +1 -1
- package/dist/commands/orchestrate.js +294 -0
- package/dist/commands/orchestrate.js.map +1 -1
- package/dist/commands/project.d.ts.map +1 -1
- package/dist/commands/project.js +8 -1
- package/dist/commands/project.js.map +1 -1
- package/dist/commands/reconcile.d.ts +15 -0
- package/dist/commands/reconcile.d.ts.map +1 -0
- package/dist/commands/reconcile.js +260 -0
- package/dist/commands/reconcile.js.map +1 -0
- package/dist/commands/session.d.ts +28 -0
- package/dist/commands/session.d.ts.map +1 -0
- package/dist/commands/session.js +895 -0
- package/dist/commands/session.js.map +1 -0
- package/dist/commands/stack.d.ts +2 -0
- package/dist/commands/stack.d.ts.map +1 -1
- package/dist/commands/stack.js +26 -0
- package/dist/commands/stack.js.map +1 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +11 -0
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/tasks.d.ts +57 -0
- package/dist/commands/tasks.d.ts.map +1 -1
- package/dist/commands/tasks.js +236 -31
- package/dist/commands/tasks.js.map +1 -1
- package/dist/generated/capability-registry.d.ts +311 -71
- package/dist/generated/capability-registry.d.ts.map +1 -1
- package/dist/generated/capability-registry.js +346 -71
- package/dist/generated/capability-registry.js.map +1 -1
- package/dist/index.js +113 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/api.d.ts +362 -1
- package/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/api.js +171 -0
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/brain/adapters.d.ts +20 -1
- package/dist/lib/brain/adapters.d.ts.map +1 -1
- package/dist/lib/brain/adapters.js +113 -2
- package/dist/lib/brain/adapters.js.map +1 -1
- package/dist/lib/brain/approval-key-trust.d.ts +29 -0
- package/dist/lib/brain/approval-key-trust.d.ts.map +1 -0
- package/dist/lib/brain/approval-key-trust.js +139 -0
- package/dist/lib/brain/approval-key-trust.js.map +1 -0
- package/dist/lib/brain/cache.d.ts +2 -2
- package/dist/lib/brain/cache.d.ts.map +1 -1
- package/dist/lib/brain/cache.js +4 -4
- package/dist/lib/brain/cache.js.map +1 -1
- package/dist/lib/brain/content.d.ts +56 -0
- package/dist/lib/brain/content.d.ts.map +1 -0
- package/dist/lib/brain/content.js +362 -0
- package/dist/lib/brain/content.js.map +1 -0
- package/dist/lib/brain/descriptor-validator.d.ts +11 -0
- package/dist/lib/brain/descriptor-validator.d.ts.map +1 -0
- package/dist/lib/brain/descriptor-validator.js +185 -0
- package/dist/lib/brain/descriptor-validator.js.map +1 -0
- package/dist/lib/brain/discovery.d.ts.map +1 -1
- package/dist/lib/brain/discovery.js +103 -60
- package/dist/lib/brain/discovery.js.map +1 -1
- package/dist/lib/brain/index.d.ts +2 -0
- package/dist/lib/brain/index.d.ts.map +1 -1
- package/dist/lib/brain/index.js +8 -2
- package/dist/lib/brain/index.js.map +1 -1
- package/dist/lib/brain/proposal.d.ts +53 -5
- package/dist/lib/brain/proposal.d.ts.map +1 -1
- package/dist/lib/brain/proposal.js +341 -64
- package/dist/lib/brain/proposal.js.map +1 -1
- package/dist/lib/brain/safe-file.d.ts +25 -1
- package/dist/lib/brain/safe-file.d.ts.map +1 -1
- package/dist/lib/brain/safe-file.js +250 -30
- package/dist/lib/brain/safe-file.js.map +1 -1
- package/dist/lib/brain/safe-open.d.ts +2 -0
- package/dist/lib/brain/safe-open.d.ts.map +1 -0
- package/dist/lib/brain/safe-open.js +77 -0
- package/dist/lib/brain/safe-open.js.map +1 -0
- package/dist/lib/brain/safety.d.ts.map +1 -1
- package/dist/lib/brain/safety.js +5 -0
- package/dist/lib/brain/safety.js.map +1 -1
- package/dist/lib/brain/staged-apply.d.ts +2 -1
- package/dist/lib/brain/staged-apply.d.ts.map +1 -1
- package/dist/lib/brain/staged-apply.js +6 -3
- package/dist/lib/brain/staged-apply.js.map +1 -1
- package/dist/lib/brain/store.d.ts +3 -0
- package/dist/lib/brain/store.d.ts.map +1 -1
- package/dist/lib/brain/store.js +68 -0
- package/dist/lib/brain/store.js.map +1 -1
- package/dist/lib/brain/sync.d.ts +87 -0
- package/dist/lib/brain/sync.d.ts.map +1 -0
- package/dist/lib/brain/sync.js +238 -0
- package/dist/lib/brain/sync.js.map +1 -0
- package/dist/lib/brain/types.d.ts +23 -0
- package/dist/lib/brain/types.d.ts.map +1 -1
- package/dist/lib/config.d.ts +7 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +3 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/daemon.js +1 -1
- package/dist/lib/daemon.js.map +1 -1
- package/dist/lib/goalRegistryFile.d.ts +169 -0
- package/dist/lib/goalRegistryFile.d.ts.map +1 -0
- package/dist/lib/goalRegistryFile.js +518 -0
- package/dist/lib/goalRegistryFile.js.map +1 -0
- package/dist/lib/goalsFile.d.ts +101 -0
- package/dist/lib/goalsFile.d.ts.map +1 -0
- package/dist/lib/goalsFile.js +413 -0
- package/dist/lib/goalsFile.js.map +1 -0
- package/dist/lib/handoff.d.ts +170 -0
- package/dist/lib/handoff.d.ts.map +1 -0
- package/dist/lib/handoff.js +316 -0
- package/dist/lib/handoff.js.map +1 -0
- package/dist/lib/machine-identity.d.ts +2 -0
- package/dist/lib/machine-identity.d.ts.map +1 -1
- package/dist/lib/machine-identity.js +13 -6
- package/dist/lib/machine-identity.js.map +1 -1
- package/dist/lib/onboarding.d.ts +4 -1
- package/dist/lib/onboarding.d.ts.map +1 -1
- package/dist/lib/onboarding.js +11 -3
- package/dist/lib/onboarding.js.map +1 -1
- package/dist/lib/orchestrator/loop.d.ts +7 -0
- package/dist/lib/orchestrator/loop.d.ts.map +1 -1
- package/dist/lib/orchestrator/loop.js +53 -0
- package/dist/lib/orchestrator/loop.js.map +1 -1
- package/dist/lib/orchestrator/run-journal.d.ts +178 -0
- package/dist/lib/orchestrator/run-journal.d.ts.map +1 -0
- package/dist/lib/orchestrator/run-journal.js +912 -0
- package/dist/lib/orchestrator/run-journal.js.map +1 -0
- package/dist/lib/orchestrator/supervisor.d.ts +11 -0
- package/dist/lib/orchestrator/supervisor.d.ts.map +1 -1
- package/dist/lib/orchestrator/supervisor.js +304 -116
- package/dist/lib/orchestrator/supervisor.js.map +1 -1
- package/dist/lib/orchestrator/tools.d.ts +2 -0
- package/dist/lib/orchestrator/tools.d.ts.map +1 -1
- package/dist/lib/orchestrator/tools.js +214 -1
- package/dist/lib/orchestrator/tools.js.map +1 -1
- package/dist/lib/redact.d.ts.map +1 -1
- package/dist/lib/redact.js +31 -6
- package/dist/lib/redact.js.map +1 -1
- package/dist/lib/remote-agent-event.d.ts +19 -0
- package/dist/lib/remote-agent-event.d.ts.map +1 -0
- package/dist/lib/remote-agent-event.js +85 -0
- package/dist/lib/remote-agent-event.js.map +1 -0
- package/dist/lib/remote-command.d.ts.map +1 -1
- package/dist/lib/remote-command.js +19 -0
- package/dist/lib/remote-command.js.map +1 -1
- package/dist/lib/remote-executor.d.ts +7 -1
- package/dist/lib/remote-executor.d.ts.map +1 -1
- package/dist/lib/remote-executor.js +391 -0
- package/dist/lib/remote-executor.js.map +1 -1
- package/dist/lib/sessionCheckpoint.d.ts +104 -0
- package/dist/lib/sessionCheckpoint.d.ts.map +1 -0
- package/dist/lib/sessionCheckpoint.js +191 -0
- package/dist/lib/sessionCheckpoint.js.map +1 -0
- package/dist/lib/sessionHandoff.d.ts +47 -0
- package/dist/lib/sessionHandoff.d.ts.map +1 -0
- package/dist/lib/sessionHandoff.js +305 -0
- package/dist/lib/sessionHandoff.js.map +1 -0
- package/dist/lib/stream.d.ts +3 -1
- package/dist/lib/stream.d.ts.map +1 -1
- package/dist/lib/stream.js +8 -3
- package/dist/lib/stream.js.map +1 -1
- package/dist/lib/taskLedgerProposal.d.ts +102 -0
- package/dist/lib/taskLedgerProposal.d.ts.map +1 -0
- package/dist/lib/taskLedgerProposal.js +408 -0
- package/dist/lib/taskLedgerProposal.js.map +1 -0
- package/dist/lib/tasksFile.d.ts +23 -2
- package/dist/lib/tasksFile.d.ts.map +1 -1
- package/dist/lib/tasksFile.js +122 -10
- package/dist/lib/tasksFile.js.map +1 -1
- package/dist/mcp/registry.d.ts.map +1 -1
- package/dist/mcp/registry.js +110 -0
- package/dist/mcp/registry.js.map +1 -1
- package/native/prebuilds/darwin-universal/youmd_safe_open.node +0 -0
- package/native/safe-open/youmd_safe_open.c +224 -0
- package/package.json +11 -3
- package/scripts/build-safe-open.mjs +63 -0
- package/scripts/skillstack-sync/com.you.context-sync.plist +1 -1
- package/scripts/skillstack-sync/com.you.identity-sync.plist +1 -1
- package/scripts/skillstack-sync/com.you.orchestrator-watch.plist +1 -1
- package/scripts/skillstack-sync/com.you.realtime-sync.plist +7 -1
- package/scripts/skillstack-sync/com.you.skillstack-sync.plist +1 -1
- package/scripts/skillstack-sync/context-sync.sh +19 -7
- package/scripts/skillstack-sync/install-daemons-linux.sh +6 -0
- package/scripts/smoke-safe-open-node.cjs +50 -0
|
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.BrainApplyInterruptedError = exports.BrainSafeFileError = exports.PROJECT_BRAIN_APPLY_JOURNAL_VERSION = exports.PROJECT_BRAIN_APPROVAL_VERSION = void 0;
|
|
37
37
|
exports.readProjectBrainTrustedDeviceIdentity = readProjectBrainTrustedDeviceIdentity;
|
|
38
38
|
exports.deriveProjectBrainApplyCredential = deriveProjectBrainApplyCredential;
|
|
39
|
+
exports.verifyProjectBrainApprovalSignature = verifyProjectBrainApprovalSignature;
|
|
39
40
|
exports.applyProjectBrainSafeFile = applyProjectBrainSafeFile;
|
|
40
41
|
exports.recoverProjectBrainSafeFile = recoverProjectBrainSafeFile;
|
|
41
42
|
exports.projectBrainApplyJournalPath = projectBrainApplyJournalPath;
|
|
@@ -48,6 +49,7 @@ const canonical_1 = require("./canonical");
|
|
|
48
49
|
const discovery_1 = require("./discovery");
|
|
49
50
|
const proposal_1 = require("./proposal");
|
|
50
51
|
const types_1 = require("./types");
|
|
52
|
+
const tasksFile_1 = require("../tasksFile");
|
|
51
53
|
exports.PROJECT_BRAIN_APPROVAL_VERSION = "you-md/project-brain-approval/v1";
|
|
52
54
|
exports.PROJECT_BRAIN_APPLY_JOURNAL_VERSION = "you-md/project-brain-apply-journal/v1";
|
|
53
55
|
class BrainSafeFileError extends Error {
|
|
@@ -323,7 +325,41 @@ function journalPaths(root, proposalRef, artifactRef) {
|
|
|
323
325
|
function readJsonSafe(file, maxBytes = 1024 * 1024) {
|
|
324
326
|
return JSON.parse(safeReadRegular(file, maxBytes).content);
|
|
325
327
|
}
|
|
326
|
-
function
|
|
328
|
+
function verifyProjectBrainApprovalSignature(approval, verificationKeys = []) {
|
|
329
|
+
const signed = approval.signedRecord;
|
|
330
|
+
if (!signed || signed.algorithm !== "RS256" || !signed.signingKeyRef.startsWith("jwks:"))
|
|
331
|
+
return false;
|
|
332
|
+
const kid = signed.signingKeyRef.slice("jwks:".length);
|
|
333
|
+
const key = verificationKeys.find((candidate) => candidate.kid === kid && candidate.kty === "RSA"
|
|
334
|
+
&& candidate.alg === "RS256" && candidate.use === "sig");
|
|
335
|
+
if (!key || !/^[A-Za-z0-9._-]{8,96}$/.test(kid)
|
|
336
|
+
|| !/^[A-Za-z0-9_-]{342,1024}$/.test(key.n) || key.e !== "AQAB")
|
|
337
|
+
return false;
|
|
338
|
+
const { signedRecord: _signedRecord, ...unsignedApproval } = approval;
|
|
339
|
+
void _signedRecord;
|
|
340
|
+
const canonical = (0, canonical_1.canonicalize)({
|
|
341
|
+
schemaVersion: "you-md/project-brain-approval-signature-payload/v1",
|
|
342
|
+
approval: unsignedApproval,
|
|
343
|
+
});
|
|
344
|
+
const expectedDigest = `sha256:${(0, canonical_1.sha256)(canonical)}`;
|
|
345
|
+
let signatureValid = false;
|
|
346
|
+
try {
|
|
347
|
+
const publicKey = crypto.createPublicKey({ key: key, format: "jwk" });
|
|
348
|
+
signatureValid = /^[A-Za-z0-9_-]{342,684}$/.test(signed.signature)
|
|
349
|
+
&& crypto.verify("RSA-SHA256", Buffer.from(canonical, "utf8"), publicKey, Buffer.from(signed.signature, "base64url"));
|
|
350
|
+
}
|
|
351
|
+
catch {
|
|
352
|
+
return false;
|
|
353
|
+
}
|
|
354
|
+
return approval.decisionNonceHash === nonceHash(approval.nonce || "")
|
|
355
|
+
&& signed?.schemaVersion === "you-md/project-brain-proposal-signature/v1"
|
|
356
|
+
&& signed.algorithm === "RS256"
|
|
357
|
+
&& signed.signingKeyRef === `jwks:${key.kid}`
|
|
358
|
+
&& signed.payloadDigest === expectedDigest
|
|
359
|
+
&& signatureValid
|
|
360
|
+
&& signed.signedAt === Date.parse(approval.approvedAt || "");
|
|
361
|
+
}
|
|
362
|
+
function assertApproval(proposal, approval, now, root, verificationKeys) {
|
|
327
363
|
const exact = approval?.schemaVersion === exports.PROJECT_BRAIN_APPROVAL_VERSION && approval.kind === "project-brain-approval"
|
|
328
364
|
&& approval.proposalRef === proposal.proposalRef && approval.decision === "approved" && approval.revoked === false
|
|
329
365
|
&& approval.bindings?.projectRef === proposal.projectRef && approval.bindings.machineRef === proposal.machineRef
|
|
@@ -334,7 +370,9 @@ function assertApproval(proposal, approval, now, root) {
|
|
|
334
370
|
&& /^[A-Za-z0-9_-]{24,160}$/.test(approval.nonce || "");
|
|
335
371
|
const approvedAt = Date.parse(approval?.approvedAt || "");
|
|
336
372
|
const expiresAt = Date.parse(approval?.expiresAt || "");
|
|
337
|
-
|
|
373
|
+
const descriptorSignatureValid = proposal.proposalType !== "descriptor_adoption"
|
|
374
|
+
|| verifyProjectBrainApprovalSignature(approval, verificationKeys);
|
|
375
|
+
if (!exact || !descriptorSignatureValid || !Number.isFinite(approvedAt) || !Number.isFinite(expiresAt) || approvedAt > now.getTime()
|
|
338
376
|
|| expiresAt < now.getTime() || expiresAt - approvedAt > 900000) {
|
|
339
377
|
throw new BrainSafeFileError("PROJECT_BRAIN_APPROVAL_INVALID", "fresh exact approval is missing, expired, revoked, or mismatched");
|
|
340
378
|
}
|
|
@@ -354,17 +392,60 @@ function assertApproval(proposal, approval, now, root) {
|
|
|
354
392
|
throw error;
|
|
355
393
|
}
|
|
356
394
|
}
|
|
395
|
+
function descriptorAdoptionSourceIsCurrent(project, proposal) {
|
|
396
|
+
if (proposal.source.sourceRef !== project.provenance.sourceRef)
|
|
397
|
+
return false;
|
|
398
|
+
if (proposal.source.kind === "legacy_marker") {
|
|
399
|
+
return project.management === "legacy-adopted"
|
|
400
|
+
&& project.legacyMarkerPath === ".youmd-project"
|
|
401
|
+
&& proposal.source.path === ".youmd-project"
|
|
402
|
+
&& proposal.source.sourceRevision === project.provenance.sourceRevision;
|
|
403
|
+
}
|
|
404
|
+
if (proposal.source.kind === "heuristic_scan") {
|
|
405
|
+
return project.management === "heuristic-unmanaged"
|
|
406
|
+
&& project.legacyMarkerPath === null
|
|
407
|
+
&& proposal.source.path === undefined
|
|
408
|
+
&& proposal.source.sourceRevision === proposal.baseRevision;
|
|
409
|
+
}
|
|
410
|
+
return false;
|
|
411
|
+
}
|
|
357
412
|
function validateGrant(options) {
|
|
358
413
|
const { proposal, scan } = options;
|
|
359
414
|
const validation = (0, proposal_1.validateProjectBrainProposal)(proposal);
|
|
360
|
-
if (!validation.valid
|
|
361
|
-
throw new BrainSafeFileError("PROJECT_BRAIN_APPLY_NOT_SUPPORTED", "safe apply
|
|
362
|
-
}
|
|
415
|
+
if (!validation.valid)
|
|
416
|
+
throw new BrainSafeFileError("PROJECT_BRAIN_APPLY_NOT_SUPPORTED", "safe apply requires a valid exact proposal");
|
|
363
417
|
if (proposal.machineRef !== scan.workspaceIdentity.machineRef || proposal.workspaceRef !== scan.workspaceRef
|
|
364
418
|
|| proposal.baseRevision !== scan.revision.digest)
|
|
365
419
|
throw new BrainSafeFileError("PROJECT_BRAIN_STALE_BASE", "proposal is not bound to this exact machine, worktree, branch, and scan revision");
|
|
366
420
|
const project = scan.projects.find((candidate) => candidate.projectRef === proposal.projectRef);
|
|
367
421
|
const artifact = project?.artifacts.find((candidate) => candidate.artifactRef === proposal.target.artifactRef);
|
|
422
|
+
if (proposal.proposalType === "descriptor_adoption") {
|
|
423
|
+
const descriptorArtifact = project?.artifacts.find((candidate) => candidate.path === ".you-project");
|
|
424
|
+
const operation = proposal.patchFormat === "rfc6902" && Array.isArray(proposal.patch) ? proposal.patch[0] : undefined;
|
|
425
|
+
const descriptor = operation && "value" in operation
|
|
426
|
+
? (0, proposal_1.validateProjectBrainAdoptionDescriptor)(operation.value, proposal.projectRef)
|
|
427
|
+
: null;
|
|
428
|
+
const descriptorDiff = proposal.diff.format === "rfc6902" ? proposal.diff : null;
|
|
429
|
+
const diffOperation = descriptorDiff?.operations[0];
|
|
430
|
+
const exactDiff = descriptorDiff?.beforeDigest === proposal.target.baseContentHash
|
|
431
|
+
&& descriptorDiff.operations.length === 1 && diffOperation?.index === 0 && diffOperation.op === "replace" && diffOperation.path === ""
|
|
432
|
+
&& Object.keys(diffOperation.before).length === 1 && diffOperation.before.present === true
|
|
433
|
+
&& Object.keys(diffOperation.after).sort().join(",") === "present,value" && diffOperation.after.present === true
|
|
434
|
+
&& (0, canonical_1.canonicalize)(diffOperation.after.value) === (0, canonical_1.canonicalize)(descriptor);
|
|
435
|
+
if (!project || project.management === "declared" || project.descriptorPath !== null
|
|
436
|
+
|| proposal.patchFormat !== "rfc6902" || proposal.target.path !== ".you-project"
|
|
437
|
+
|| proposal.target.exists !== true || operation?.op !== "replace" || operation.path !== ""
|
|
438
|
+
|| !descriptor || !exactDiff || proposal.diff.afterDigest !== `sha256:${(0, canonical_1.sha256)((0, canonical_1.canonicalize)(descriptor))}`
|
|
439
|
+
|| !descriptorArtifact || descriptorArtifact.owner !== "repository"
|
|
440
|
+
|| descriptorArtifact.authority !== "canonical" || descriptorArtifact.provenance.sourceRevision !== proposal.target.baseContentHash
|
|
441
|
+
|| !descriptorAdoptionSourceIsCurrent(project, proposal)) {
|
|
442
|
+
throw new BrainSafeFileError("PROJECT_BRAIN_UNGRANTED_CAPABILITY", "descriptor replacement is not bound to exact unmanaged descriptor evidence");
|
|
443
|
+
}
|
|
444
|
+
return { artifactRef: proposal.target.artifactRef, targetPath: ".you-project", policy: "descriptor_adopt" };
|
|
445
|
+
}
|
|
446
|
+
if (proposal.proposalType !== "artifact_update" || proposal.patchFormat !== "unified_diff") {
|
|
447
|
+
throw new BrainSafeFileError("PROJECT_BRAIN_APPLY_NOT_SUPPORTED", "safe apply accepts descriptor adoption or declared artifact updates only");
|
|
448
|
+
}
|
|
368
449
|
if (!project || project.management !== "declared" || !artifact || artifact.path !== proposal.target.path
|
|
369
450
|
|| artifact.owner !== proposal.target.owner || artifact.authority !== proposal.target.authority
|
|
370
451
|
|| artifact.provenance.sourceRevision !== proposal.source.sourceRevision) {
|
|
@@ -376,8 +457,13 @@ function validateGrant(options) {
|
|
|
376
457
|
if (artifact.writePolicy === "managed_write")
|
|
377
458
|
return { artifactRef: artifact.artifactRef, targetPath: artifact.path, policy: "managed_write" };
|
|
378
459
|
if (artifact.writePolicy === "task_write" && artifact.kind === "tasks" && artifact.path === `${project.contextRoot}/tasks.json`
|
|
379
|
-
&& project.taskWrite.enabled && project.taskWrite.artifactRef === artifact.artifactRef) {
|
|
380
|
-
return {
|
|
460
|
+
&& project.taskWrite.enabled && project.taskWrite.artifactRef === artifact.artifactRef && proposal.taskMutation) {
|
|
461
|
+
return {
|
|
462
|
+
artifactRef: artifact.artifactRef,
|
|
463
|
+
targetPath: artifact.path,
|
|
464
|
+
policy: "task_write",
|
|
465
|
+
projectName: proposal.projectRef.replace(/^project:/, ""),
|
|
466
|
+
};
|
|
381
467
|
}
|
|
382
468
|
throw new BrainSafeFileError("PROJECT_BRAIN_UNGRANTED_CAPABILITY", "artifact lacks managed_write or exact task_write authority");
|
|
383
469
|
}
|
|
@@ -398,6 +484,79 @@ function writeTarget(target, content, mode) {
|
|
|
398
484
|
void current;
|
|
399
485
|
atomicWrite(target, content, mode || 0o600, false);
|
|
400
486
|
}
|
|
487
|
+
function taskLedgerCompanion(options, grant, beforeJson, afterJson) {
|
|
488
|
+
if (grant.policy !== "task_write")
|
|
489
|
+
return undefined;
|
|
490
|
+
if (!options.proposal.taskMutation || !grant.projectName || !grant.targetPath.endsWith("/tasks.json")) {
|
|
491
|
+
throw new BrainSafeFileError("PROJECT_BRAIN_UNGRANTED_CAPABILITY", "task_write requires an exact validated task mutation targeting canonical tasks.json");
|
|
492
|
+
}
|
|
493
|
+
const targetPath = `${grant.targetPath.slice(0, -"tasks.json".length)}tasks.md`;
|
|
494
|
+
let safe;
|
|
495
|
+
let before;
|
|
496
|
+
try {
|
|
497
|
+
safe = assertSafeRootAndTarget(options.root, targetPath);
|
|
498
|
+
before = safeReadRegular(safe.target, 16 * 1024 * 1024);
|
|
499
|
+
}
|
|
500
|
+
catch (error) {
|
|
501
|
+
if (error instanceof BrainSafeFileError)
|
|
502
|
+
throw error;
|
|
503
|
+
throw new BrainSafeFileError("PROJECT_BRAIN_SAFE_OPEN_FAILED", "generated tasks.md is missing or unsafe");
|
|
504
|
+
}
|
|
505
|
+
try {
|
|
506
|
+
const currentDoc = (0, tasksFile_1.parseTasksJson)(beforeJson, grant.projectName);
|
|
507
|
+
if (before.content !== (0, tasksFile_1.renderTasksMd)(currentDoc)) {
|
|
508
|
+
throw new BrainSafeFileError("PROJECT_BRAIN_TASKS_MD_DRIFT", "generated tasks.md does not match the exact tasks.json base");
|
|
509
|
+
}
|
|
510
|
+
return {
|
|
511
|
+
safe,
|
|
512
|
+
before,
|
|
513
|
+
after: (0, tasksFile_1.renderTasksMd)((0, tasksFile_1.parseTasksJson)(afterJson, grant.projectName)),
|
|
514
|
+
targetPath,
|
|
515
|
+
};
|
|
516
|
+
}
|
|
517
|
+
catch (error) {
|
|
518
|
+
if (error instanceof BrainSafeFileError)
|
|
519
|
+
throw error;
|
|
520
|
+
throw new BrainSafeFileError("PROJECT_BRAIN_TASK_LEDGER_INVALID", "task mutation result is not a valid canonical task ledger");
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
function taskRollbackPlaintext(before, companion) {
|
|
524
|
+
if (!companion)
|
|
525
|
+
return before.content;
|
|
526
|
+
const bundle = {
|
|
527
|
+
schemaVersion: "you-md/project-brain-task-ledger-rollback/v1",
|
|
528
|
+
tasksJson: { content: before.content, mode: before.mode },
|
|
529
|
+
tasksMd: { content: companion.before.content, mode: companion.before.mode },
|
|
530
|
+
};
|
|
531
|
+
return JSON.stringify(bundle);
|
|
532
|
+
}
|
|
533
|
+
function parseTaskRollbackBundle(value) {
|
|
534
|
+
let bundle;
|
|
535
|
+
try {
|
|
536
|
+
bundle = JSON.parse(value);
|
|
537
|
+
}
|
|
538
|
+
catch {
|
|
539
|
+
throw new BrainSafeFileError("PROJECT_BRAIN_ROLLBACK_FAILED", "task-ledger rollback bundle is invalid");
|
|
540
|
+
}
|
|
541
|
+
if (bundle.schemaVersion !== "you-md/project-brain-task-ledger-rollback/v1"
|
|
542
|
+
|| typeof bundle.tasksJson?.content !== "string" || typeof bundle.tasksMd?.content !== "string"
|
|
543
|
+
|| !Number.isInteger(bundle.tasksJson.mode) || !Number.isInteger(bundle.tasksMd.mode)) {
|
|
544
|
+
throw new BrainSafeFileError("PROJECT_BRAIN_ROLLBACK_FAILED", "task-ledger rollback bundle is incomplete");
|
|
545
|
+
}
|
|
546
|
+
return bundle;
|
|
547
|
+
}
|
|
548
|
+
function restoreExactTarget(target, beforeContent, beforeHash, afterHash, mode) {
|
|
549
|
+
const current = safeReadRegular(target, 16 * 1024 * 1024);
|
|
550
|
+
const currentHash = contentHash(current.content);
|
|
551
|
+
if (currentHash === beforeHash)
|
|
552
|
+
return;
|
|
553
|
+
if (currentHash !== afterHash)
|
|
554
|
+
throw new BrainSafeFileError("PROJECT_BRAIN_ROLLBACK_FAILED", "target is neither the approved before nor after state");
|
|
555
|
+
writeTarget(target, beforeContent, mode);
|
|
556
|
+
if (contentHash(safeReadRegular(target, 16 * 1024 * 1024).content) !== beforeHash) {
|
|
557
|
+
throw new BrainSafeFileError("PROJECT_BRAIN_ROLLBACK_FAILED", "rollback verification failed");
|
|
558
|
+
}
|
|
559
|
+
}
|
|
401
560
|
function freeze(paths, journal) {
|
|
402
561
|
const updated = {
|
|
403
562
|
...journal, state: "rollback_failed", manualRecoveryRequired: true,
|
|
@@ -426,18 +585,33 @@ async function applyProjectBrainSafeFile(options) {
|
|
|
426
585
|
const before = safeReadRegular(safe.target, 16 * 1024 * 1024);
|
|
427
586
|
if (contentHash(before.content) !== options.proposal.target.baseContentHash)
|
|
428
587
|
throw new BrainSafeFileError("PROJECT_BRAIN_BASE_CONTENT_MISMATCH", "target content no longer matches the exact proposal base");
|
|
429
|
-
|
|
430
|
-
if (
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
588
|
+
let after;
|
|
589
|
+
if (grant.policy === "descriptor_adopt") {
|
|
590
|
+
const operation = options.proposal.patchFormat === "rfc6902" ? options.proposal.patch[0] : undefined;
|
|
591
|
+
const descriptor = operation && "value" in operation
|
|
592
|
+
? (0, proposal_1.validateProjectBrainAdoptionDescriptor)(operation.value, options.proposal.projectRef)
|
|
593
|
+
: null;
|
|
594
|
+
if (!descriptor || operation?.op !== "replace" || operation.path !== ""
|
|
595
|
+
|| `sha256:${(0, canonical_1.sha256)((0, canonical_1.canonicalize)(descriptor))}` !== options.proposal.diff.afterDigest) {
|
|
596
|
+
throw new BrainSafeFileError("PROJECT_BRAIN_PATCH_MISMATCH", "descriptor replacement does not match the approved canonical result");
|
|
597
|
+
}
|
|
598
|
+
after = `${JSON.stringify(descriptor, null, 2)}\n`;
|
|
599
|
+
}
|
|
600
|
+
else {
|
|
601
|
+
const normalized = (0, proposal_1.validateProjectBrainUnifiedDiffPatch)(options.proposal.patch, options.proposal.proposalRef);
|
|
602
|
+
if (!normalized.valid || !normalized.patch || normalized.patchDigest !== options.proposal.patchDigest) {
|
|
603
|
+
throw new BrainSafeFileError("PROJECT_BRAIN_PATCH_MISMATCH", "unified diff is invalid or its digest changed");
|
|
604
|
+
}
|
|
605
|
+
after = applyUnifiedDiff(before.content, normalized.patch);
|
|
606
|
+
if (contentHash(after) !== options.proposal.diff.afterDigest)
|
|
607
|
+
throw new BrainSafeFileError("PROJECT_BRAIN_PATCH_MISMATCH", "patched content does not match the approved result digest");
|
|
608
|
+
if (grant.policy === "managed_write")
|
|
609
|
+
assertMarkerBounded(before.content, after, grant.artifactRef);
|
|
610
|
+
}
|
|
611
|
+
const companion = taskLedgerCompanion(options, grant, before.content, after);
|
|
612
|
+
assertApproval(options.proposal, options.approval, options.now || new Date(), stateRoot, options.approvalVerificationKeys);
|
|
439
613
|
const device = loadTrustedDeviceKey();
|
|
440
|
-
const rollback = encryptRollback(before
|
|
614
|
+
const rollback = encryptRollback(taskRollbackPlaintext(before, companion), device);
|
|
441
615
|
const rollbackCiphertextHash = `sha256:${(0, canonical_1.sha256)(Buffer.from(rollback.ciphertextBase64, "base64"))}`;
|
|
442
616
|
const now = (options.now || new Date()).toISOString();
|
|
443
617
|
const journal = {
|
|
@@ -459,6 +633,13 @@ async function applyProjectBrainSafeFile(options) {
|
|
|
459
633
|
nonceHash: nonceHash(options.approval.nonce),
|
|
460
634
|
rollbackFile: path.basename(paths.rollback),
|
|
461
635
|
rollbackCiphertextHash,
|
|
636
|
+
...(companion ? {
|
|
637
|
+
companion: {
|
|
638
|
+
targetPath: companion.targetPath,
|
|
639
|
+
beforeHash: contentHash(companion.before.content),
|
|
640
|
+
afterHash: contentHash(companion.after),
|
|
641
|
+
},
|
|
642
|
+
} : {}),
|
|
462
643
|
state: "prepared",
|
|
463
644
|
preparedAt: now,
|
|
464
645
|
updatedAt: now,
|
|
@@ -480,9 +661,19 @@ async function applyProjectBrainSafeFile(options) {
|
|
|
480
661
|
const recheck = safeReadRegular(safe.target, 16 * 1024 * 1024);
|
|
481
662
|
if (contentHash(recheck.content) !== journal.beforeHash)
|
|
482
663
|
throw new BrainSafeFileError("PROJECT_BRAIN_BASE_CONTENT_MISMATCH", "target changed after journal preparation");
|
|
664
|
+
if (companion) {
|
|
665
|
+
const companionRecheck = safeReadRegular(companion.safe.target, 16 * 1024 * 1024);
|
|
666
|
+
if (contentHash(companionRecheck.content) !== journal.companion?.beforeHash) {
|
|
667
|
+
throw new BrainSafeFileError("PROJECT_BRAIN_BASE_CONTENT_MISMATCH", "generated tasks.md changed after journal preparation");
|
|
668
|
+
}
|
|
669
|
+
}
|
|
483
670
|
writeTarget(safe.target, after, before.mode);
|
|
484
671
|
if (options.faultInjection === "crash_after_target")
|
|
485
672
|
throw new BrainApplyInterruptedError("after_target");
|
|
673
|
+
if (options.faultInjection === "task_companion_write_failure" && companion)
|
|
674
|
+
throw new Error("injected task companion write failure");
|
|
675
|
+
if (companion)
|
|
676
|
+
writeTarget(companion.safe.target, companion.after, companion.before.mode);
|
|
486
677
|
if (options.faultInjection === "rollback_failure")
|
|
487
678
|
throw new Error("fault after target");
|
|
488
679
|
const applied = { ...journal, state: "applied", updatedAt: new Date().toISOString() };
|
|
@@ -495,9 +686,10 @@ async function applyProjectBrainSafeFile(options) {
|
|
|
495
686
|
try {
|
|
496
687
|
if (options.faultInjection === "rollback_failure")
|
|
497
688
|
throw new Error("injected rollback failure");
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
689
|
+
if (companion && journal.companion) {
|
|
690
|
+
restoreExactTarget(companion.safe.target, companion.before.content, journal.companion.beforeHash, journal.companion.afterHash, companion.before.mode);
|
|
691
|
+
}
|
|
692
|
+
restoreExactTarget(safe.target, before.content, journal.beforeHash, journal.afterHash, before.mode);
|
|
501
693
|
}
|
|
502
694
|
catch {
|
|
503
695
|
freeze(paths, journal);
|
|
@@ -522,7 +714,25 @@ function recoverProjectBrainSafeFile(options) {
|
|
|
522
714
|
try {
|
|
523
715
|
const current = safeReadRegular(safe.target, 16 * 1024 * 1024);
|
|
524
716
|
const currentHash = contentHash(current.content);
|
|
525
|
-
|
|
717
|
+
let companionSafe;
|
|
718
|
+
let companionCurrent;
|
|
719
|
+
let companionCurrentHash;
|
|
720
|
+
if (journal.companion) {
|
|
721
|
+
const expectedCompanion = journal.targetPath.endsWith("/tasks.json")
|
|
722
|
+
? `${journal.targetPath.slice(0, -"tasks.json".length)}tasks.md`
|
|
723
|
+
: "";
|
|
724
|
+
if (!expectedCompanion || journal.companion.targetPath !== expectedCompanion) {
|
|
725
|
+
throw new Error("task-ledger companion path is not derived from canonical tasks.json");
|
|
726
|
+
}
|
|
727
|
+
companionSafe = assertSafeRootAndTarget(options.root, journal.companion.targetPath);
|
|
728
|
+
companionCurrent = safeReadRegular(companionSafe.target, 16 * 1024 * 1024);
|
|
729
|
+
companionCurrentHash = contentHash(companionCurrent.content);
|
|
730
|
+
if (companionCurrentHash !== journal.companion.beforeHash && companionCurrentHash !== journal.companion.afterHash) {
|
|
731
|
+
throw new Error("task-ledger companion is neither approved before nor generated after state");
|
|
732
|
+
}
|
|
733
|
+
}
|
|
734
|
+
if (currentHash === journal.beforeHash
|
|
735
|
+
&& (!journal.companion || companionCurrentHash === journal.companion.beforeHash)) {
|
|
526
736
|
const recovered = { ...journal, state: "recovered_noop", manualRecoveryRequired: false, errorCode: undefined, updatedAt: new Date().toISOString() };
|
|
527
737
|
atomicJson(paths.journal, recovered);
|
|
528
738
|
if (paths.freeze)
|
|
@@ -532,18 +742,28 @@ function recoverProjectBrainSafeFile(options) {
|
|
|
532
742
|
catch { /* absent */ }
|
|
533
743
|
return result(recovered);
|
|
534
744
|
}
|
|
535
|
-
if (currentHash !== journal.afterHash)
|
|
745
|
+
if (currentHash !== journal.beforeHash && currentHash !== journal.afterHash)
|
|
536
746
|
throw new Error("target is neither approved before nor after state");
|
|
537
747
|
if (options.faultInjection === "rollback_failure")
|
|
538
748
|
throw new Error("injected rollback failure");
|
|
539
749
|
const device = loadTrustedDeviceKey();
|
|
540
|
-
const
|
|
541
|
-
if (
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
750
|
+
const rollbackPlaintext = decryptRollback(readJsonSafe(paths.rollback), device);
|
|
751
|
+
if (journal.companion) {
|
|
752
|
+
if (!companionSafe || !companionCurrent)
|
|
753
|
+
throw new Error("task-ledger companion recovery state is unavailable");
|
|
754
|
+
const bundle = parseTaskRollbackBundle(rollbackPlaintext);
|
|
755
|
+
if (contentHash(bundle.tasksJson.content) !== journal.beforeHash
|
|
756
|
+
|| contentHash(bundle.tasksMd.content) !== journal.companion.beforeHash) {
|
|
757
|
+
throw new Error("task-ledger rollback bundle does not match journal");
|
|
758
|
+
}
|
|
759
|
+
restoreExactTarget(companionSafe.target, bundle.tasksMd.content, journal.companion.beforeHash, journal.companion.afterHash, bundle.tasksMd.mode);
|
|
760
|
+
restoreExactTarget(safe.target, bundle.tasksJson.content, journal.beforeHash, journal.afterHash, bundle.tasksJson.mode);
|
|
761
|
+
}
|
|
762
|
+
else {
|
|
763
|
+
if (contentHash(rollbackPlaintext) !== journal.beforeHash)
|
|
764
|
+
throw new Error("rollback does not match journal");
|
|
765
|
+
restoreExactTarget(safe.target, rollbackPlaintext, journal.beforeHash, journal.afterHash, current.mode);
|
|
766
|
+
}
|
|
547
767
|
const recovered = { ...journal, state: "rolled_back", manualRecoveryRequired: false, errorCode: undefined, updatedAt: new Date().toISOString() };
|
|
548
768
|
atomicJson(paths.journal, recovered);
|
|
549
769
|
if (paths.freeze)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe-file.js","sourceRoot":"","sources":["../../../src/lib/brain/safe-file.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"safe-file.js","sourceRoot":"","sources":["../../../src/lib/brain/safe-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-open.d.ts","sourceRoot":"","sources":["../../../src/lib/brain/safe-open.ts"],"names":[],"mappings":"AAgCA,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,MAAM,CAeR"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.darwinVerifiedRead = darwinVerifiedRead;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
let cachedAddon;
|
|
40
|
+
function loadDarwinAddon() {
|
|
41
|
+
if (cachedAddon !== undefined)
|
|
42
|
+
return cachedAddon;
|
|
43
|
+
try {
|
|
44
|
+
// src/lib/brain and dist/lib/brain have the same depth from the package root.
|
|
45
|
+
const addonPath = path.resolve(__dirname, "../../../native/prebuilds/darwin-universal/youmd_safe_open.node");
|
|
46
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
47
|
+
const candidate = require(addonPath);
|
|
48
|
+
cachedAddon = candidate.napiVersion === 8 && typeof candidate.safeRead === "function"
|
|
49
|
+
? candidate
|
|
50
|
+
: null;
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
cachedAddon = null;
|
|
54
|
+
}
|
|
55
|
+
return cachedAddon;
|
|
56
|
+
}
|
|
57
|
+
function darwinVerifiedRead(root, relative, maxBytes) {
|
|
58
|
+
if (process.platform !== "darwin")
|
|
59
|
+
throw new Error("metadata_only");
|
|
60
|
+
const addon = loadDarwinAddon();
|
|
61
|
+
if (!addon)
|
|
62
|
+
throw new Error("metadata_only");
|
|
63
|
+
const rootStat = fs.lstatSync(root, { bigint: true });
|
|
64
|
+
if (!rootStat.isDirectory() || rootStat.isSymbolicLink())
|
|
65
|
+
throw new Error("unsafe_path");
|
|
66
|
+
try {
|
|
67
|
+
return addon.safeRead(root, relative, maxBytes, rootStat.dev.toString(), rootStat.ino.toString());
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
const code = error instanceof Error ? error.message : "unreadable";
|
|
71
|
+
if (["unsafe_path", "symlink_rejected", "budget_exceeded", "stale_claim", "unreadable"].includes(code)) {
|
|
72
|
+
throw new Error(code);
|
|
73
|
+
}
|
|
74
|
+
throw new Error("unreadable");
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=safe-open.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-open.js","sourceRoot":"","sources":["../../../src/lib/brain/safe-open.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,gDAmBC;AAnDD,uCAAyB;AACzB,2CAA6B;AAa7B,IAAI,WAAmD,CAAC;AAExD,SAAS,eAAe;IACtB,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC;IAClD,IAAI,CAAC;QACH,8EAA8E;QAC9E,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,iEAAiE,CAAC,CAAC;QAC7G,iEAAiE;QACjE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAiC,CAAC;QACrE,WAAW,GAAG,SAAS,CAAC,WAAW,KAAK,CAAC,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,UAAU;YACnF,CAAC,CAAC,SAAgC;YAClC,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAAC,MAAM,CAAC;QACP,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAgB,kBAAkB,CAChC,IAAY,EACZ,QAAgB,EAChB,QAAgB;IAEhB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,QAAQ,CAAC,cAAc,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IACzF,IAAI,CAAC;QACH,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC;QACnE,IAAI,CAAC,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACvG,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safety.d.ts","sourceRoot":"","sources":["../../../src/lib/brain/safety.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,IAAI,8BAA8B;gBAC/B,OAAO,EAAE,MAAM;CAC5B;
|
|
1
|
+
{"version":3,"file":"safety.d.ts","sourceRoot":"","sources":["../../../src/lib/brain/safety.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,QAAQ,CAAC,IAAI,8BAA8B;gBAC/B,OAAO,EAAE,MAAM;CAC5B;AAmBD,gFAAgF;AAChF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,GAAE,MAAM,EAAO,GAAG,MAAM,CAQ9F"}
|