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.
Files changed (205) hide show
  1. package/dist/commands/brain.d.ts.map +1 -1
  2. package/dist/commands/brain.js +91 -28
  3. package/dist/commands/brain.js.map +1 -1
  4. package/dist/commands/chat.d.ts.map +1 -1
  5. package/dist/commands/chat.js +6 -1
  6. package/dist/commands/chat.js.map +1 -1
  7. package/dist/commands/conversations.d.ts +5 -0
  8. package/dist/commands/conversations.d.ts.map +1 -0
  9. package/dist/commands/conversations.js +116 -0
  10. package/dist/commands/conversations.js.map +1 -0
  11. package/dist/commands/doctor.d.ts +1 -0
  12. package/dist/commands/doctor.d.ts.map +1 -1
  13. package/dist/commands/doctor.js +16 -1
  14. package/dist/commands/doctor.js.map +1 -1
  15. package/dist/commands/founder.d.ts +13 -0
  16. package/dist/commands/founder.d.ts.map +1 -0
  17. package/dist/commands/founder.js +189 -0
  18. package/dist/commands/founder.js.map +1 -0
  19. package/dist/commands/handoff.d.ts +5 -0
  20. package/dist/commands/handoff.d.ts.map +1 -0
  21. package/dist/commands/handoff.js +432 -0
  22. package/dist/commands/handoff.js.map +1 -0
  23. package/dist/commands/orchestrate.d.ts +15 -0
  24. package/dist/commands/orchestrate.d.ts.map +1 -1
  25. package/dist/commands/orchestrate.js +294 -0
  26. package/dist/commands/orchestrate.js.map +1 -1
  27. package/dist/commands/project.d.ts.map +1 -1
  28. package/dist/commands/project.js +8 -1
  29. package/dist/commands/project.js.map +1 -1
  30. package/dist/commands/reconcile.d.ts +15 -0
  31. package/dist/commands/reconcile.d.ts.map +1 -0
  32. package/dist/commands/reconcile.js +260 -0
  33. package/dist/commands/reconcile.js.map +1 -0
  34. package/dist/commands/session.d.ts +28 -0
  35. package/dist/commands/session.d.ts.map +1 -0
  36. package/dist/commands/session.js +895 -0
  37. package/dist/commands/session.js.map +1 -0
  38. package/dist/commands/stack.d.ts +2 -0
  39. package/dist/commands/stack.d.ts.map +1 -1
  40. package/dist/commands/stack.js +26 -0
  41. package/dist/commands/stack.js.map +1 -1
  42. package/dist/commands/sync.d.ts.map +1 -1
  43. package/dist/commands/sync.js +11 -0
  44. package/dist/commands/sync.js.map +1 -1
  45. package/dist/commands/tasks.d.ts +57 -0
  46. package/dist/commands/tasks.d.ts.map +1 -1
  47. package/dist/commands/tasks.js +236 -31
  48. package/dist/commands/tasks.js.map +1 -1
  49. package/dist/generated/capability-registry.d.ts +311 -71
  50. package/dist/generated/capability-registry.d.ts.map +1 -1
  51. package/dist/generated/capability-registry.js +346 -71
  52. package/dist/generated/capability-registry.js.map +1 -1
  53. package/dist/index.js +113 -2
  54. package/dist/index.js.map +1 -1
  55. package/dist/lib/api.d.ts +362 -1
  56. package/dist/lib/api.d.ts.map +1 -1
  57. package/dist/lib/api.js +171 -0
  58. package/dist/lib/api.js.map +1 -1
  59. package/dist/lib/brain/adapters.d.ts +20 -1
  60. package/dist/lib/brain/adapters.d.ts.map +1 -1
  61. package/dist/lib/brain/adapters.js +113 -2
  62. package/dist/lib/brain/adapters.js.map +1 -1
  63. package/dist/lib/brain/approval-key-trust.d.ts +29 -0
  64. package/dist/lib/brain/approval-key-trust.d.ts.map +1 -0
  65. package/dist/lib/brain/approval-key-trust.js +139 -0
  66. package/dist/lib/brain/approval-key-trust.js.map +1 -0
  67. package/dist/lib/brain/cache.d.ts +2 -2
  68. package/dist/lib/brain/cache.d.ts.map +1 -1
  69. package/dist/lib/brain/cache.js +4 -4
  70. package/dist/lib/brain/cache.js.map +1 -1
  71. package/dist/lib/brain/content.d.ts +56 -0
  72. package/dist/lib/brain/content.d.ts.map +1 -0
  73. package/dist/lib/brain/content.js +362 -0
  74. package/dist/lib/brain/content.js.map +1 -0
  75. package/dist/lib/brain/descriptor-validator.d.ts +11 -0
  76. package/dist/lib/brain/descriptor-validator.d.ts.map +1 -0
  77. package/dist/lib/brain/descriptor-validator.js +185 -0
  78. package/dist/lib/brain/descriptor-validator.js.map +1 -0
  79. package/dist/lib/brain/discovery.d.ts.map +1 -1
  80. package/dist/lib/brain/discovery.js +103 -60
  81. package/dist/lib/brain/discovery.js.map +1 -1
  82. package/dist/lib/brain/index.d.ts +2 -0
  83. package/dist/lib/brain/index.d.ts.map +1 -1
  84. package/dist/lib/brain/index.js +8 -2
  85. package/dist/lib/brain/index.js.map +1 -1
  86. package/dist/lib/brain/proposal.d.ts +53 -5
  87. package/dist/lib/brain/proposal.d.ts.map +1 -1
  88. package/dist/lib/brain/proposal.js +341 -64
  89. package/dist/lib/brain/proposal.js.map +1 -1
  90. package/dist/lib/brain/safe-file.d.ts +25 -1
  91. package/dist/lib/brain/safe-file.d.ts.map +1 -1
  92. package/dist/lib/brain/safe-file.js +250 -30
  93. package/dist/lib/brain/safe-file.js.map +1 -1
  94. package/dist/lib/brain/safe-open.d.ts +2 -0
  95. package/dist/lib/brain/safe-open.d.ts.map +1 -0
  96. package/dist/lib/brain/safe-open.js +77 -0
  97. package/dist/lib/brain/safe-open.js.map +1 -0
  98. package/dist/lib/brain/safety.d.ts.map +1 -1
  99. package/dist/lib/brain/safety.js +5 -0
  100. package/dist/lib/brain/safety.js.map +1 -1
  101. package/dist/lib/brain/staged-apply.d.ts +2 -1
  102. package/dist/lib/brain/staged-apply.d.ts.map +1 -1
  103. package/dist/lib/brain/staged-apply.js +6 -3
  104. package/dist/lib/brain/staged-apply.js.map +1 -1
  105. package/dist/lib/brain/store.d.ts +3 -0
  106. package/dist/lib/brain/store.d.ts.map +1 -1
  107. package/dist/lib/brain/store.js +68 -0
  108. package/dist/lib/brain/store.js.map +1 -1
  109. package/dist/lib/brain/sync.d.ts +87 -0
  110. package/dist/lib/brain/sync.d.ts.map +1 -0
  111. package/dist/lib/brain/sync.js +238 -0
  112. package/dist/lib/brain/sync.js.map +1 -0
  113. package/dist/lib/brain/types.d.ts +23 -0
  114. package/dist/lib/brain/types.d.ts.map +1 -1
  115. package/dist/lib/config.d.ts +7 -0
  116. package/dist/lib/config.d.ts.map +1 -1
  117. package/dist/lib/config.js +3 -0
  118. package/dist/lib/config.js.map +1 -1
  119. package/dist/lib/daemon.js +1 -1
  120. package/dist/lib/daemon.js.map +1 -1
  121. package/dist/lib/goalRegistryFile.d.ts +169 -0
  122. package/dist/lib/goalRegistryFile.d.ts.map +1 -0
  123. package/dist/lib/goalRegistryFile.js +518 -0
  124. package/dist/lib/goalRegistryFile.js.map +1 -0
  125. package/dist/lib/goalsFile.d.ts +101 -0
  126. package/dist/lib/goalsFile.d.ts.map +1 -0
  127. package/dist/lib/goalsFile.js +413 -0
  128. package/dist/lib/goalsFile.js.map +1 -0
  129. package/dist/lib/handoff.d.ts +170 -0
  130. package/dist/lib/handoff.d.ts.map +1 -0
  131. package/dist/lib/handoff.js +316 -0
  132. package/dist/lib/handoff.js.map +1 -0
  133. package/dist/lib/machine-identity.d.ts +2 -0
  134. package/dist/lib/machine-identity.d.ts.map +1 -1
  135. package/dist/lib/machine-identity.js +13 -6
  136. package/dist/lib/machine-identity.js.map +1 -1
  137. package/dist/lib/onboarding.d.ts +4 -1
  138. package/dist/lib/onboarding.d.ts.map +1 -1
  139. package/dist/lib/onboarding.js +11 -3
  140. package/dist/lib/onboarding.js.map +1 -1
  141. package/dist/lib/orchestrator/loop.d.ts +7 -0
  142. package/dist/lib/orchestrator/loop.d.ts.map +1 -1
  143. package/dist/lib/orchestrator/loop.js +53 -0
  144. package/dist/lib/orchestrator/loop.js.map +1 -1
  145. package/dist/lib/orchestrator/run-journal.d.ts +178 -0
  146. package/dist/lib/orchestrator/run-journal.d.ts.map +1 -0
  147. package/dist/lib/orchestrator/run-journal.js +912 -0
  148. package/dist/lib/orchestrator/run-journal.js.map +1 -0
  149. package/dist/lib/orchestrator/supervisor.d.ts +11 -0
  150. package/dist/lib/orchestrator/supervisor.d.ts.map +1 -1
  151. package/dist/lib/orchestrator/supervisor.js +304 -116
  152. package/dist/lib/orchestrator/supervisor.js.map +1 -1
  153. package/dist/lib/orchestrator/tools.d.ts +2 -0
  154. package/dist/lib/orchestrator/tools.d.ts.map +1 -1
  155. package/dist/lib/orchestrator/tools.js +214 -1
  156. package/dist/lib/orchestrator/tools.js.map +1 -1
  157. package/dist/lib/redact.d.ts.map +1 -1
  158. package/dist/lib/redact.js +31 -6
  159. package/dist/lib/redact.js.map +1 -1
  160. package/dist/lib/remote-agent-event.d.ts +19 -0
  161. package/dist/lib/remote-agent-event.d.ts.map +1 -0
  162. package/dist/lib/remote-agent-event.js +85 -0
  163. package/dist/lib/remote-agent-event.js.map +1 -0
  164. package/dist/lib/remote-command.d.ts.map +1 -1
  165. package/dist/lib/remote-command.js +19 -0
  166. package/dist/lib/remote-command.js.map +1 -1
  167. package/dist/lib/remote-executor.d.ts +7 -1
  168. package/dist/lib/remote-executor.d.ts.map +1 -1
  169. package/dist/lib/remote-executor.js +391 -0
  170. package/dist/lib/remote-executor.js.map +1 -1
  171. package/dist/lib/sessionCheckpoint.d.ts +104 -0
  172. package/dist/lib/sessionCheckpoint.d.ts.map +1 -0
  173. package/dist/lib/sessionCheckpoint.js +191 -0
  174. package/dist/lib/sessionCheckpoint.js.map +1 -0
  175. package/dist/lib/sessionHandoff.d.ts +47 -0
  176. package/dist/lib/sessionHandoff.d.ts.map +1 -0
  177. package/dist/lib/sessionHandoff.js +305 -0
  178. package/dist/lib/sessionHandoff.js.map +1 -0
  179. package/dist/lib/stream.d.ts +3 -1
  180. package/dist/lib/stream.d.ts.map +1 -1
  181. package/dist/lib/stream.js +8 -3
  182. package/dist/lib/stream.js.map +1 -1
  183. package/dist/lib/taskLedgerProposal.d.ts +102 -0
  184. package/dist/lib/taskLedgerProposal.d.ts.map +1 -0
  185. package/dist/lib/taskLedgerProposal.js +408 -0
  186. package/dist/lib/taskLedgerProposal.js.map +1 -0
  187. package/dist/lib/tasksFile.d.ts +23 -2
  188. package/dist/lib/tasksFile.d.ts.map +1 -1
  189. package/dist/lib/tasksFile.js +122 -10
  190. package/dist/lib/tasksFile.js.map +1 -1
  191. package/dist/mcp/registry.d.ts.map +1 -1
  192. package/dist/mcp/registry.js +110 -0
  193. package/dist/mcp/registry.js.map +1 -1
  194. package/native/prebuilds/darwin-universal/youmd_safe_open.node +0 -0
  195. package/native/safe-open/youmd_safe_open.c +224 -0
  196. package/package.json +11 -3
  197. package/scripts/build-safe-open.mjs +63 -0
  198. package/scripts/skillstack-sync/com.you.context-sync.plist +1 -1
  199. package/scripts/skillstack-sync/com.you.identity-sync.plist +1 -1
  200. package/scripts/skillstack-sync/com.you.orchestrator-watch.plist +1 -1
  201. package/scripts/skillstack-sync/com.you.realtime-sync.plist +7 -1
  202. package/scripts/skillstack-sync/com.you.skillstack-sync.plist +1 -1
  203. package/scripts/skillstack-sync/context-sync.sh +19 -7
  204. package/scripts/skillstack-sync/install-daemons-linux.sh +6 -0
  205. 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 assertApproval(proposal, approval, now, root) {
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
- if (!exact || !Number.isFinite(approvedAt) || !Number.isFinite(expiresAt) || approvedAt > now.getTime()
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 || proposal.proposalType !== "artifact_update" || proposal.patchFormat !== "unified_diff") {
361
- throw new BrainSafeFileError("PROJECT_BRAIN_APPLY_NOT_SUPPORTED", "safe apply accepts only valid unified-diff artifact_update proposals");
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 { artifactRef: artifact.artifactRef, targetPath: artifact.path, policy: "task_write" };
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
- const normalized = (0, proposal_1.validateProjectBrainUnifiedDiffPatch)(options.proposal.patch, options.proposal.proposalRef);
430
- if (!normalized.valid || !normalized.patch || normalized.patchDigest !== options.proposal.patchDigest) {
431
- throw new BrainSafeFileError("PROJECT_BRAIN_PATCH_MISMATCH", "unified diff is invalid or its digest changed");
432
- }
433
- const after = applyUnifiedDiff(before.content, normalized.patch);
434
- if (contentHash(after) !== options.proposal.diff.afterDigest)
435
- throw new BrainSafeFileError("PROJECT_BRAIN_PATCH_MISMATCH", "patched content does not match the approved result digest");
436
- if (grant.policy === "managed_write")
437
- assertMarkerBounded(before.content, after, grant.artifactRef);
438
- assertApproval(options.proposal, options.approval, options.now || new Date(), stateRoot);
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.content, device);
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
- const current = safeReadRegular(safe.target, 16 * 1024 * 1024);
499
- if (contentHash(current.content) === journal.afterHash)
500
- writeTarget(safe.target, before.content, before.mode);
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
- if (currentHash === journal.beforeHash) {
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 rollback = decryptRollback(readJsonSafe(paths.rollback), device);
541
- if (contentHash(rollback) !== journal.beforeHash)
542
- throw new Error("rollback does not match journal");
543
- writeTarget(safe.target, rollback, current.mode);
544
- const restored = safeReadRegular(safe.target, 16 * 1024 * 1024);
545
- if (contentHash(restored.content) !== journal.beforeHash)
546
- throw new Error("rollback verification failed");
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,2 @@
1
+ export declare function darwinVerifiedRead(root: string, relative: string, maxBytes: number): Buffer;
2
+ //# sourceMappingURL=safe-open.d.ts.map
@@ -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;AAeD,gFAAgF;AAChF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,GAAE,MAAM,EAAO,GAAG,MAAM,CAQ9F"}
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"}