@adhdev/daemon-core 0.9.82-rc.415 → 0.9.82-rc.416

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/index.mjs CHANGED
@@ -384,10 +384,10 @@ function readInjected(value) {
384
384
  }
385
385
  function getDaemonBuildInfo() {
386
386
  if (cached) return cached;
387
- const commit = readInjected(true ? "eeb6bb4fcd32cf1844ed87bb4a7c2760e132e69d" : void 0) ?? "unknown";
388
- const commitShort = readInjected(true ? "eeb6bb4f" : void 0) ?? (commit !== "unknown" ? commit.slice(0, 7) : "unknown");
389
- const version = readInjected(true ? "0.9.82-rc.415" : void 0) ?? readInjected(typeof process !== "undefined" ? process.env?.ADHDEV_PKG_VERSION : void 0) ?? "unknown";
390
- const builtAt = readInjected(true ? "2026-06-28T13:43:23.868Z" : void 0);
387
+ const commit = readInjected(true ? "b1b80482f0ae678be7cd54c6861ec8134eb2ffd0" : void 0) ?? "unknown";
388
+ const commitShort = readInjected(true ? "b1b80482" : void 0) ?? (commit !== "unknown" ? commit.slice(0, 7) : "unknown");
389
+ const version = readInjected(true ? "0.9.82-rc.416" : void 0) ?? readInjected(typeof process !== "undefined" ? process.env?.ADHDEV_PKG_VERSION : void 0) ?? "unknown";
390
+ const builtAt = readInjected(true ? "2026-06-28T15:54:36.726Z" : void 0);
391
391
  cached = builtAt ? { commit, commitShort, version, builtAt } : { commit, commitShort, version };
392
392
  return cached;
393
393
  }
@@ -2562,6 +2562,7 @@ __export(mesh_config_exports, {
2562
2562
  listMagiPanels: () => listMagiPanels,
2563
2563
  listMeshes: () => listMeshes,
2564
2564
  markMeshHostPairingJoined: () => markMeshHostPairingJoined,
2565
+ normalizeMagiPanel: () => normalizeMagiPanel,
2565
2566
  normalizeRepoIdentity: () => normalizeRepoIdentity,
2566
2567
  removeMagiPanel: () => removeMagiPanel,
2567
2568
  removeNode: () => removeNode,
@@ -10268,7 +10269,7 @@ var init_mesh_scheduling_runtime = __esm({
10268
10269
  function readNonEmptyString2(value) {
10269
10270
  return typeof value === "string" && value.trim() ? value.trim() : "";
10270
10271
  }
10271
- function readRecord4(value) {
10272
+ function readRecord5(value) {
10272
10273
  return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
10273
10274
  }
10274
10275
  function buildMeshWorkerRelayStamp(currentSettings, meshContext) {
@@ -10296,17 +10297,17 @@ function resolveEventSessionId(event, fallback) {
10296
10297
  return readNonEmptyString2(event.targetSessionId) || readNonEmptyString2(event.sessionId) || readNonEmptyString2(event.instanceId) || readNonEmptyString2(fallback);
10297
10298
  }
10298
10299
  function readRefineJobId(event) {
10299
- const metadata = readRecord4(event.metadataEvent) || event;
10300
- const result = readRecord4(metadata.result);
10301
- const refineJob = readRecord4(result?.refineJob);
10300
+ const metadata = readRecord5(event.metadataEvent) || event;
10301
+ const result = readRecord5(metadata.result);
10302
+ const refineJob = readRecord5(result?.refineJob);
10302
10303
  return readNonEmptyString2(metadata.jobId) || readNonEmptyString2(refineJob?.jobId);
10303
10304
  }
10304
10305
  function readWorkerResultMetadata(event) {
10305
- return readRecord4(event.workerResult) || readRecord4(event.meshWorkerResult) || readRecord4(event.structuredResult);
10306
+ return readRecord5(event.workerResult) || readRecord5(event.meshWorkerResult) || readRecord5(event.structuredResult);
10306
10307
  }
10307
10308
  function readMeshCompletionSummary(metadataEvent) {
10308
10309
  const workerResult = readWorkerResultMetadata(metadataEvent);
10309
- const resultRecord = readRecord4(metadataEvent.result);
10310
+ const resultRecord = readRecord5(metadataEvent.result);
10310
10311
  return readNonEmptyString2(metadataEvent.finalSummary) || readNonEmptyString2(workerResult?.summary) || readNonEmptyString2(workerResult?.finalSummary) || readNonEmptyString2(resultRecord?.summary) || readNonEmptyString2(resultRecord?.finalSummary);
10311
10312
  }
10312
10313
  function truncateSurfacedPreview(text) {
@@ -10344,7 +10345,7 @@ function readEventTimestampValue(value) {
10344
10345
  return 0;
10345
10346
  }
10346
10347
  function isMissingFinalAssistantDiagnostic(record) {
10347
- const diag = readRecord4(record?.completionDiagnostic);
10348
+ const diag = readRecord5(record?.completionDiagnostic);
10348
10349
  return diag?.finalAssistantPresent === false || diag?.blockReason === "missing_final_assistant";
10349
10350
  }
10350
10351
  function isFalseIdleCompletion(record) {
@@ -10453,10 +10454,10 @@ Do NOT retry on this node. Consider reassigning to a different node or asking th
10453
10454
  }
10454
10455
  if (args.event === "refine:completed") {
10455
10456
  const jobId = readRefineJobId({ metadataEvent: args.metadataEvent });
10456
- const result = readRecord4(args.metadataEvent.result);
10457
- const validationSummary = readRecord4(result?.validationSummary);
10458
- const patchEquivalence = readRecord4(result?.patchEquivalence);
10459
- const finalConvergence = readRecord4(result?.finalBranchConvergenceState);
10457
+ const result = readRecord5(args.metadataEvent.result);
10458
+ const validationSummary = readRecord5(result?.validationSummary);
10459
+ const patchEquivalence = readRecord5(result?.patchEquivalence);
10460
+ const finalConvergence = readRecord5(result?.finalBranchConvergenceState);
10460
10461
  const validationStatus = readNonEmptyString2(validationSummary?.status);
10461
10462
  const patchStatus = readNonEmptyString2(patchEquivalence?.status) || (patchEquivalence?.equivalent === true ? "passed" : "");
10462
10463
  const into = readNonEmptyString2(result?.into);
@@ -10477,10 +10478,10 @@ Next step: ${nextStep}`;
10477
10478
  }
10478
10479
  if (args.event === "refine:failed") {
10479
10480
  const jobId = readRefineJobId({ metadataEvent: args.metadataEvent });
10480
- const result = readRecord4(args.metadataEvent.result);
10481
- const validationSummary = readRecord4(result?.validationSummary);
10482
- const patchEquivalence = readRecord4(result?.patchEquivalence);
10483
- const finalConvergence = readRecord4(result?.finalBranchConvergenceState);
10481
+ const result = readRecord5(args.metadataEvent.result);
10482
+ const validationSummary = readRecord5(result?.validationSummary);
10483
+ const patchEquivalence = readRecord5(result?.patchEquivalence);
10484
+ const finalConvergence = readRecord5(result?.finalBranchConvergenceState);
10484
10485
  const code = readNonEmptyString2(result?.code);
10485
10486
  const error = readNonEmptyString2(result?.error);
10486
10487
  const validationStatus = readNonEmptyString2(validationSummary?.status);
@@ -10523,9 +10524,9 @@ function normalizeCoordinatorDaemonIds(coordinatorDaemonId) {
10523
10524
  return expandDaemonIdForms(coordinatorDaemonId);
10524
10525
  }
10525
10526
  function readRefineJobId2(event) {
10526
- const metadata = readRecord4(event.metadataEvent) || event;
10527
- const result = readRecord4(metadata.result);
10528
- const refineJob = readRecord4(result?.refineJob);
10527
+ const metadata = readRecord5(event.metadataEvent) || event;
10528
+ const result = readRecord5(metadata.result);
10529
+ const refineJob = readRecord5(result?.refineJob);
10529
10530
  return readNonEmptyString2(metadata.jobId) || readNonEmptyString2(refineJob?.jobId);
10530
10531
  }
10531
10532
  function hasPendingRefineTerminalEventDuplicate(event) {
@@ -10537,12 +10538,12 @@ function hasPendingRefineTerminalEventDuplicate(event) {
10537
10538
  );
10538
10539
  }
10539
10540
  function buildPendingEventFingerprint(event) {
10540
- const metadata = readRecord4(event.metadataEvent) || {};
10541
+ const metadata = readRecord5(event.metadataEvent) || {};
10541
10542
  if (event.event === "worktree_bootstrap_complete" || event.event === "worktree_bootstrap_failed") {
10542
10543
  return [event.meshId, event.event, event.nodeId || ""].join("::");
10543
10544
  }
10544
10545
  if (TERMINAL_COMPLETION_EVENTS.has(event.event)) {
10545
- const terminalTaskId = readNonEmptyString2(metadata.taskId) || readNonEmptyString2(readRecord4(metadata.payload)?.taskId);
10546
+ const terminalTaskId = readNonEmptyString2(metadata.taskId) || readNonEmptyString2(readRecord5(metadata.payload)?.taskId);
10546
10547
  if (terminalTaskId) {
10547
10548
  return [
10548
10549
  event.meshId,
@@ -10552,14 +10553,14 @@ function buildPendingEventFingerprint(event) {
10552
10553
  ].join("::");
10553
10554
  }
10554
10555
  }
10555
- const consensusGroupId = readNonEmptyString2(metadata.consensusGroupId) || readNonEmptyString2(readRecord4(metadata.payload)?.consensusGroupId);
10556
+ const consensusGroupId = readNonEmptyString2(metadata.consensusGroupId) || readNonEmptyString2(readRecord5(metadata.payload)?.consensusGroupId);
10556
10557
  if (consensusGroupId) {
10557
- const groupTaskId = readNonEmptyString2(metadata.taskId) || readNonEmptyString2(readRecord4(metadata.payload)?.taskId);
10558
+ const groupTaskId = readNonEmptyString2(metadata.taskId) || readNonEmptyString2(readRecord5(metadata.payload)?.taskId);
10558
10559
  return [event.meshId, event.event, groupTaskId || "", consensusGroupId, "group"].join("::");
10559
10560
  }
10560
10561
  const sessionId = resolveEventSessionId(metadata);
10561
10562
  const providerSessionId = readNonEmptyString2(metadata.providerSessionId);
10562
- const taskId = readNonEmptyString2(metadata.taskId) || readNonEmptyString2(readRecord4(metadata.payload)?.taskId);
10563
+ const taskId = readNonEmptyString2(metadata.taskId) || readNonEmptyString2(readRecord5(metadata.payload)?.taskId);
10563
10564
  const jobId = readRefineJobId2(event);
10564
10565
  const timestamp = metadata.timestamp !== void 0 && metadata.timestamp !== null ? String(metadata.timestamp) : "";
10565
10566
  return [
@@ -10627,15 +10628,15 @@ function refineTerminalEventFromLedger(meshId, pending) {
10627
10628
  for (let i = entries.length - 1; i >= 0; i--) {
10628
10629
  const entry = entries[i];
10629
10630
  if (entry.kind !== "task_completed" && entry.kind !== "task_failed") continue;
10630
- const payload = readRecord4(entry.payload);
10631
+ const payload = readRecord5(entry.payload);
10631
10632
  if (payload?.source !== "refine_mesh_node_async_job") continue;
10632
- const refineJob = readRecord4(payload.refineJob);
10633
+ const refineJob = readRecord5(payload.refineJob);
10633
10634
  const jobId = readNonEmptyString2(refineJob?.jobId);
10634
10635
  if (!jobId || !acceptedJobIds.has(jobId)) continue;
10635
10636
  const eventName = entry.kind === "task_completed" ? "refine:completed" : "refine:failed";
10636
10637
  if (existingTerminalJobIds.has(`${eventName}:${jobId}`)) continue;
10637
10638
  existingTerminalJobIds.add(`${eventName}:${jobId}`);
10638
- const result = readRecord4(payload.result);
10639
+ const result = readRecord5(payload.result);
10639
10640
  const metadataEvent = {
10640
10641
  source: "refine_mesh_node_async_job",
10641
10642
  jobId,
@@ -11140,7 +11141,7 @@ function buildNoProgressCompletionReconciliation(args) {
11140
11141
  const providerType = readNonEmptyString2(args.metadataEvent.providerType);
11141
11142
  const providerSessionId = readNonEmptyString2(args.metadataEvent.providerSessionId);
11142
11143
  const workerResult = readWorkerResultMetadata(args.metadataEvent);
11143
- const completionDiagnostic = readRecord4(args.metadataEvent.completionDiagnostic);
11144
+ const completionDiagnostic = readRecord5(args.metadataEvent.completionDiagnostic);
11144
11145
  const finalSummary = readNonEmptyString2(args.metadataEvent.finalSummary);
11145
11146
  const status = readNonEmptyString2(args.metadataEvent.status).toLowerCase();
11146
11147
  const explicitCompletionEvidence = Boolean(
@@ -24438,6 +24439,124 @@ function buildMeshLedgerReconciliationEvidence(meshId, replicas) {
24438
24439
  init_mesh_work_queue();
24439
24440
  init_mesh_active_work();
24440
24441
  init_mesh_refine_status();
24442
+
24443
+ // src/mesh/mesh-magi-status.ts
24444
+ function readString7(value) {
24445
+ return typeof value === "string" && value.trim() ? value.trim() : void 0;
24446
+ }
24447
+ function readRecord4(value) {
24448
+ return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
24449
+ }
24450
+ function readNumber2(value) {
24451
+ return typeof value === "number" && Number.isFinite(value) ? value : void 0;
24452
+ }
24453
+ var MAGI_NEEDS_VERIFICATION_PREVIEW_CAP = 8;
24454
+ function summarizeNeedsVerification(synthesis) {
24455
+ const list = Array.isArray(synthesis?.needsVerification) ? synthesis.needsVerification : void 0;
24456
+ if (!list) return void 0;
24457
+ const items = [];
24458
+ for (const raw of list.slice(0, MAGI_NEEDS_VERIFICATION_PREVIEW_CAP)) {
24459
+ const r = readRecord4(raw);
24460
+ const claim = readString7(r?.claim);
24461
+ if (!claim) continue;
24462
+ items.push({ claim, category: readString7(r?.category) || "needs_verification" });
24463
+ }
24464
+ return items;
24465
+ }
24466
+ function mergeGroup(groups, patch) {
24467
+ const consensusGroupId = readString7(patch.consensusGroupId);
24468
+ if (!consensusGroupId) return;
24469
+ const previous = groups.get(consensusGroupId);
24470
+ const status = patch.status === "synthesized" || previous?.status === "synthesized" ? "synthesized" : "running";
24471
+ const definedPatch = Object.fromEntries(
24472
+ Object.entries(patch).filter(([, v]) => v !== void 0)
24473
+ );
24474
+ groups.set(consensusGroupId, { ...previous, ...definedPatch, consensusGroupId, status });
24475
+ }
24476
+ function buildMeshMagiActivity(args) {
24477
+ const groups = /* @__PURE__ */ new Map();
24478
+ for (const entry of args.ledgerEntries || []) {
24479
+ const payload = readRecord4(entry.payload);
24480
+ if (payload?.source !== "magi") continue;
24481
+ const consensusGroupId = readString7(payload.consensusGroupId);
24482
+ if (!consensusGroupId) continue;
24483
+ if (entry.kind === "magi_synthesis") {
24484
+ const synthesis = readRecord4(payload.synthesis);
24485
+ mergeGroup(groups, {
24486
+ consensusGroupId,
24487
+ status: "synthesized",
24488
+ missionId: readString7(payload.missionId),
24489
+ panel: readString7(payload.panel),
24490
+ question: readString7(payload.question),
24491
+ replicaCount: readNumber2(synthesis?.replicasExpected) ?? readNumber2(payload.replicaCount),
24492
+ answered: readNumber2(synthesis?.replicasAnswered),
24493
+ missing: readNumber2(synthesis?.replicasMissing),
24494
+ staleReplicas: readNumber2(payload.staleReplicas) ?? readNumber2(synthesis?.staleReplicas),
24495
+ needsVerificationCount: Array.isArray(synthesis?.needsVerification) ? synthesis.needsVerification.length : void 0,
24496
+ agreedCount: Array.isArray(synthesis?.agreed) ? synthesis.agreed.length : void 0,
24497
+ independenceBanner: synthesis && "independenceBanner" in synthesis ? synthesis.independenceBanner : void 0,
24498
+ gitSkew: readRecord4(synthesis?.gitSkew),
24499
+ needsVerification: summarizeNeedsVerification(synthesis),
24500
+ openQuestions: Array.isArray(synthesis?.openQuestions) ? synthesis.openQuestions.slice(0, 10) : void 0,
24501
+ lastLedgerKind: entry.kind,
24502
+ lastUpdatedAt: entry.timestamp
24503
+ });
24504
+ } else if (entry.kind === "magi_dispatched") {
24505
+ mergeGroup(groups, {
24506
+ consensusGroupId,
24507
+ status: "running",
24508
+ missionId: readString7(payload.missionId),
24509
+ panel: readString7(payload.panel),
24510
+ question: readString7(payload.question),
24511
+ replicaCount: readNumber2(payload.replicaCount),
24512
+ lastLedgerKind: entry.kind,
24513
+ lastUpdatedAt: entry.timestamp
24514
+ });
24515
+ }
24516
+ }
24517
+ return Array.from(groups.values()).sort((a, b) => {
24518
+ const at = new Date(a.lastUpdatedAt || "").getTime();
24519
+ const bt = new Date(b.lastUpdatedAt || "").getTime();
24520
+ return (Number.isFinite(bt) ? bt : 0) - (Number.isFinite(at) ? at : 0);
24521
+ });
24522
+ }
24523
+ var STALE_MAGI_WINDOW_MS = 6 * 60 * 60 * 1e3;
24524
+ var RECENT_MAGI_CAP = 6;
24525
+ function activityTime(g) {
24526
+ const t = new Date(g.lastUpdatedAt || "").getTime();
24527
+ return Number.isFinite(t) ? t : 0;
24528
+ }
24529
+ function summarizeMeshMagiActivity(activity) {
24530
+ const running = [];
24531
+ const synthesized = [];
24532
+ for (const g of activity) {
24533
+ if (g.status === "synthesized") synthesized.push(g);
24534
+ else running.push(g);
24535
+ }
24536
+ let newest = 0;
24537
+ for (const g of activity) newest = Math.max(newest, activityTime(g));
24538
+ const cutoff = newest - STALE_MAGI_WINDOW_MS;
24539
+ const synthesizedByRecency = [...synthesized].sort((a, b) => activityTime(b) - activityTime(a));
24540
+ const freshSynthesized = synthesizedByRecency.filter((g) => activityTime(g) >= cutoff).slice(0, RECENT_MAGI_CAP);
24541
+ const byStatus = {};
24542
+ for (const g of [...running, ...freshSynthesized]) {
24543
+ byStatus[g.status] = (byStatus[g.status] ?? 0) + 1;
24544
+ }
24545
+ const runningByRecency = [...running].sort((a, b) => activityTime(b) - activityTime(a));
24546
+ return {
24547
+ total: running.length + freshSynthesized.length,
24548
+ byStatus,
24549
+ staleSynthesized: synthesized.length - freshSynthesized.length,
24550
+ groups: [...runningByRecency, ...freshSynthesized]
24551
+ };
24552
+ }
24553
+ function getMeshMagiActivityByGroup(ledgerEntries, consensusGroupId) {
24554
+ const key2 = readString7(consensusGroupId);
24555
+ if (!key2) return void 0;
24556
+ return buildMeshMagiActivity({ ledgerEntries }).find((g) => g.consensusGroupId === key2);
24557
+ }
24558
+
24559
+ // src/index.ts
24441
24560
  init_mesh_scheduling_runtime();
24442
24561
  init_mesh_host_ownership();
24443
24562
  init_mesh_events();
@@ -50350,7 +50469,7 @@ function runGit2(repoRoot, args) {
50350
50469
  return "";
50351
50470
  }
50352
50471
  }
50353
- function readRecord5(repoRoot) {
50472
+ function readRecord6(repoRoot) {
50354
50473
  const path43 = resolve19(repoRoot, PREVIEW_DEPLOY_RECORD);
50355
50474
  if (!existsSync40(path43)) return null;
50356
50475
  try {
@@ -50390,7 +50509,7 @@ function readCurrentMainCommit(repoRoot) {
50390
50509
  }
50391
50510
  function buildPreviewFreshness(repoRoot) {
50392
50511
  const current = readCurrentMainCommit(repoRoot);
50393
- const record = readRecord5(repoRoot);
50512
+ const record = readRecord6(repoRoot);
50394
50513
  const lastPreviewCommit = normalizeCommit(record?.lastPreviewCommit);
50395
50514
  const targets = readTargetFreshness(record, current.currentMainCommit);
50396
50515
  let status = "unknown";
@@ -64251,6 +64370,7 @@ export {
64251
64370
  IdeProviderInstance,
64252
64371
  InMemoryGitSnapshotStore,
64253
64372
  LOG,
64373
+ MAGI_NEEDS_VERIFICATION_PREVIEW_CAP,
64254
64374
  MAX_LEDGER_SLICE_LIMIT,
64255
64375
  MESH_CONVERGE_FAST_FORWARD_TAG,
64256
64376
  MESH_CONVERGE_REFINE_TAG,
@@ -64272,8 +64392,10 @@ export {
64272
64392
  ProviderCliAdapter,
64273
64393
  ProviderInstanceManager,
64274
64394
  ProviderLoader,
64395
+ RECENT_MAGI_CAP,
64275
64396
  RECENT_TERMINAL_REFINE_CAP,
64276
64397
  RawTerminalAttachment,
64398
+ STALE_MAGI_WINDOW_MS,
64277
64399
  STALE_TERMINAL_REFINE_WINDOW_MS,
64278
64400
  STANDALONE_CDP_SCAN_INTERVAL_MS,
64279
64401
  SessionHostPtyTransportFactory,
@@ -64303,6 +64425,7 @@ export {
64303
64425
  buildMeshHostRequiredFailure,
64304
64426
  buildMeshLedgerReconciliationEvidence,
64305
64427
  buildMeshLedgerReplicaEvidence,
64428
+ buildMeshMagiActivity,
64306
64429
  buildMeshNodeCapabilityTags,
64307
64430
  buildMeshNodeDataFreshness,
64308
64431
  buildMeshNodeProbeFreshness,
@@ -64392,6 +64515,7 @@ export {
64392
64515
  getMagiPanel,
64393
64516
  getMesh,
64394
64517
  getMeshByRepo,
64518
+ getMeshMagiActivityByGroup,
64395
64519
  getMeshMission,
64396
64520
  getMeshMissions,
64397
64521
  getMeshQueueRevision,
@@ -64476,6 +64600,7 @@ export {
64476
64600
  normalizeInputEnvelope,
64477
64601
  normalizeInteractivePrompt,
64478
64602
  normalizeInteractivePromptResponse,
64603
+ normalizeMagiPanel,
64479
64604
  normalizeManagedStatus,
64480
64605
  normalizeMeshCapabilityTags,
64481
64606
  normalizeMeshDaemonRole,
@@ -64557,6 +64682,7 @@ export {
64557
64682
  suggestMeshRefineConfig,
64558
64683
  summarizeGitStatus,
64559
64684
  summarizeMeshAsyncRefineJobs,
64685
+ summarizeMeshMagiActivity,
64560
64686
  summarizeMeshMission,
64561
64687
  summarizeMissionTasks,
64562
64688
  triggerMeshQueue,