holistic 0.4.2 → 0.5.1

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.
@@ -65,11 +65,14 @@ export function getRuntimePaths(rootDir) {
65
65
  rootCopilotInstructionsDoc ? relativeToRoot(rootDir, rootCopilotInstructionsDoc) : null,
66
66
  relativeToRoot(rootDir, holisticDir),
67
67
  ].filter((value, index, list) => Boolean(value) && list.indexOf(value) === index);
68
+ const sessionsDir = path.join(holisticDir, "sessions");
69
+ const archiveSessionsDir = path.join(sessionsDir, "archive");
68
70
  return {
69
71
  rootDir,
70
72
  holisticDir,
71
73
  stateFile: path.join(holisticDir, "state.json"),
72
- sessionsDir: path.join(holisticDir, "sessions"),
74
+ sessionsDir,
75
+ archiveSessionsDir,
73
76
  contextDir,
74
77
  adaptersDir: path.join(contextDir, "adapters"),
75
78
  masterDoc,
@@ -228,6 +231,7 @@ export function createInitialState(rootDir) {
228
231
  function ensureDirs(paths) {
229
232
  fs.mkdirSync(paths.holisticDir, { recursive: true });
230
233
  fs.mkdirSync(paths.sessionsDir, { recursive: true });
234
+ fs.mkdirSync(paths.archiveSessionsDir, { recursive: true });
231
235
  fs.mkdirSync(paths.contextDir, { recursive: true });
232
236
  fs.mkdirSync(paths.adaptersDir, { recursive: true });
233
237
  }
@@ -345,6 +349,7 @@ function createSession(agent, goal, title, plan) {
345
349
  references: [],
346
350
  impactNotes: [],
347
351
  regressionRisks: [],
352
+ completionSignal: null,
348
353
  changedFiles: [],
349
354
  checkpointCount: 0,
350
355
  lastCheckpointReason: "session-start",
@@ -368,22 +373,121 @@ function recentFirstMerge(current, incoming) {
368
373
  const remaining = current.filter((item) => !incomingUnique.includes(item));
369
374
  return [...incomingUnique, ...remaining];
370
375
  }
371
- export function readArchivedSessions(paths) {
372
- if (!fs.existsSync(paths.sessionsDir)) {
376
+ function readSessionsFromDir(directory) {
377
+ if (!fs.existsSync(directory)) {
373
378
  return [];
374
379
  }
375
380
  const sessions = [];
376
- for (const file of fs.readdirSync(paths.sessionsDir)) {
381
+ for (const file of fs.readdirSync(directory)) {
377
382
  if (!file.endsWith(".json")) {
378
383
  continue;
379
384
  }
380
385
  try {
381
- sessions.push(JSON.parse(fs.readFileSync(path.join(paths.sessionsDir, file), "utf8")));
386
+ sessions.push(JSON.parse(fs.readFileSync(path.join(directory, file), "utf8")));
382
387
  }
383
388
  catch {
384
389
  }
385
390
  }
386
- return sessions.sort((left, right) => (right.endedAt || right.updatedAt).localeCompare(left.endedAt || left.updatedAt));
391
+ return sessions;
392
+ }
393
+ function sortSessionsNewestFirst(sessions) {
394
+ return [...sessions].sort((left, right) => {
395
+ const rightKey = right.endedAt || right.updatedAt || "";
396
+ const leftKey = left.endedAt || left.updatedAt || "";
397
+ return rightKey.localeCompare(leftKey);
398
+ });
399
+ }
400
+ export function readActiveSessions(paths) {
401
+ return sortSessionsNewestFirst(readSessionsFromDir(paths.sessionsDir));
402
+ }
403
+ export function readArchivedSessions(paths) {
404
+ return sortSessionsNewestFirst(readSessionsFromDir(paths.archiveSessionsDir));
405
+ }
406
+ export function readAllSessions(paths) {
407
+ return sortSessionsNewestFirst([...readActiveSessions(paths), ...readArchivedSessions(paths)]);
408
+ }
409
+ const STALE_SESSION_AGE_MS = 30 * 24 * 60 * 60 * 1000;
410
+ function referencedSessionIds(state, paths) {
411
+ const ids = new Set();
412
+ if (state.activeSession) {
413
+ ids.add(state.activeSession.id);
414
+ }
415
+ if (state.lastHandoff) {
416
+ ids.add(state.lastHandoff.sessionId);
417
+ }
418
+ for (const item of state.pendingWork) {
419
+ if (item.carriedFromSession) {
420
+ ids.add(item.carriedFromSession);
421
+ }
422
+ }
423
+ for (const session of readSessionsFromDir(paths.sessionsDir)) {
424
+ if (session.relatedSessions) {
425
+ for (const related of session.relatedSessions) {
426
+ ids.add(related);
427
+ }
428
+ }
429
+ }
430
+ return ids;
431
+ }
432
+ export function findArchiveCandidates(paths, state, currentTimeMs = Date.now()) {
433
+ const referenced = referencedSessionIds(state, paths);
434
+ const cutoffMs = currentTimeMs - STALE_SESSION_AGE_MS;
435
+ const candidates = [];
436
+ for (const session of readSessionsFromDir(paths.sessionsDir)) {
437
+ if (!session.endedAt) {
438
+ continue;
439
+ }
440
+ const endedMs = new Date(session.endedAt).getTime();
441
+ if (Number.isNaN(endedMs)) {
442
+ continue;
443
+ }
444
+ if (endedMs > cutoffMs) {
445
+ continue;
446
+ }
447
+ if (referenced.has(session.id)) {
448
+ continue;
449
+ }
450
+ candidates.push(session);
451
+ }
452
+ return candidates;
453
+ }
454
+ export function runSessionHygiene(paths, state, currentTimeMs = Date.now()) {
455
+ const candidates = findArchiveCandidates(paths, state, currentTimeMs);
456
+ const archived = [];
457
+ for (const session of candidates) {
458
+ const activePath = path.join(paths.sessionsDir, `${session.id}.json`);
459
+ const archivePath = path.join(paths.archiveSessionsDir, `${session.id}.json`);
460
+ try {
461
+ fs.writeFileSync(archivePath, JSON.stringify(session, null, 2) + "\n", "utf8");
462
+ fs.unlinkSync(activePath);
463
+ archived.push(session.id);
464
+ }
465
+ catch {
466
+ }
467
+ }
468
+ return archived;
469
+ }
470
+ export function reactivateArchivedSession(paths, sessionId) {
471
+ const archivePath = path.join(paths.archiveSessionsDir, `${sessionId}.json`);
472
+ if (!fs.existsSync(archivePath)) {
473
+ return null;
474
+ }
475
+ let session;
476
+ try {
477
+ session = JSON.parse(fs.readFileSync(archivePath, "utf8"));
478
+ }
479
+ catch {
480
+ return null;
481
+ }
482
+ const activePath = path.join(paths.sessionsDir, `${sessionId}.json`);
483
+ try {
484
+ fs.writeFileSync(activePath, JSON.stringify(session, null, 2) + "\n", "utf8");
485
+ fs.unlinkSync(archivePath);
486
+ }
487
+ catch {
488
+ return null;
489
+ }
490
+ return session;
387
491
  }
388
492
  function buildResumeRecap(state) {
389
493
  const lines = [];
@@ -449,27 +553,40 @@ export function getResumePayload(state, agent) {
449
553
  }
450
554
  export function buildStartupGreeting(state, agent) {
451
555
  const payload = getResumePayload(state, agent);
452
- if (payload.status === "empty") {
556
+ const diagnostics = evaluateHealthDiagnostics(state);
557
+ const hasCarryover = payload.status !== "empty";
558
+ if (!hasCarryover && diagnostics.warnings.length === 0) {
453
559
  return null;
454
560
  }
455
561
  const lines = [];
456
562
  lines.push("Holistic resume");
457
563
  lines.push("");
458
- lines.push(...payload.recap.map((line) => `- ${line}`));
459
- lines.push("");
460
- lines.push(`Choices: ${payload.choices.join(", ")}`);
461
- lines.push(`Adapter doc: ${payload.adapterDoc}`);
462
- lines.push(`Recommended command: ${payload.recommendedCommand}`);
463
- lines.push(`Long-term history: ${state.docIndex.historyDoc}`);
464
- lines.push(`Regression watch: ${state.docIndex.regressionDoc}`);
465
- lines.push(`Zero-touch architecture: ${state.docIndex.zeroTouchDoc}`);
564
+ if (hasCarryover) {
565
+ lines.push(...payload.recap.map((line) => `- ${line}`));
566
+ lines.push("");
567
+ lines.push(`Choices: ${payload.choices.join(", ")}`);
568
+ lines.push(`Adapter doc: ${payload.adapterDoc}`);
569
+ lines.push(`Recommended command: ${payload.recommendedCommand}`);
570
+ lines.push(`Long-term history: ${state.docIndex.historyDoc}`);
571
+ lines.push(`Regression watch: ${state.docIndex.regressionDoc}`);
572
+ lines.push(`Zero-touch architecture: ${state.docIndex.zeroTouchDoc}`);
573
+ }
574
+ if (diagnostics.warnings.length > 0) {
575
+ if (hasCarryover) {
576
+ lines.push("");
577
+ }
578
+ lines.push("System health warnings:");
579
+ for (const warning of diagnostics.warnings) {
580
+ lines.push(`- ${warning.message} [${warning.code}]`);
581
+ }
582
+ }
466
583
  return lines.join("\n");
467
584
  }
468
585
  export function loadSessionById(state, paths, sessionId) {
469
586
  if (state.activeSession?.id === sessionId) {
470
587
  return state.activeSession;
471
588
  }
472
- for (const session of readArchivedSessions(paths)) {
589
+ for (const session of readAllSessions(paths)) {
473
590
  if (session.id === sessionId) {
474
591
  return session;
475
592
  }
@@ -542,6 +659,36 @@ function syncActiveSession(state, goal, status, title, plan) {
542
659
  activeSession: session,
543
660
  };
544
661
  }
662
+ const COMPLETION_SIGNAL_KINDS = [
663
+ "natural-breakpoint",
664
+ "task-complete",
665
+ "slice-complete",
666
+ "milestone-complete",
667
+ ];
668
+ const COMPLETION_SIGNAL_SOURCES = ["agent", "system"];
669
+ export function normalizeCompletionSignalMetadata(input) {
670
+ if (typeof input.kind !== "string" || typeof input.source !== "string") {
671
+ return null;
672
+ }
673
+ if (!COMPLETION_SIGNAL_KINDS.includes(input.kind)) {
674
+ return null;
675
+ }
676
+ if (!COMPLETION_SIGNAL_SOURCES.includes(input.source)) {
677
+ return null;
678
+ }
679
+ const recordedAt = typeof input.recordedAt === "string" && input.recordedAt.trim().length > 0
680
+ ? input.recordedAt
681
+ : now();
682
+ const recordedAtMs = new Date(recordedAt).getTime();
683
+ if (Number.isNaN(recordedAtMs)) {
684
+ return null;
685
+ }
686
+ return {
687
+ kind: input.kind,
688
+ source: input.source,
689
+ recordedAt,
690
+ };
691
+ }
545
692
  export function checkpointState(rootDir, state, input) {
546
693
  const agent = input.agent ?? state.activeSession?.agent ?? "unknown";
547
694
  const baseSession = state.activeSession
@@ -589,6 +736,7 @@ export function checkpointState(rootDir, state, input) {
589
736
  if (input.severity) {
590
737
  session.severity = input.severity;
591
738
  }
739
+ session.completionSignal = input.completionSignal ?? null;
592
740
  session.lastCheckpointReason = sanitizeText(input.reason || "manual");
593
741
  session.checkpointCount += 1;
594
742
  session.resumeRecap = buildResumeRecap({
@@ -614,10 +762,11 @@ function toPendingWork(session) {
614
762
  };
615
763
  }
616
764
  function writeArchivedSession(paths, session) {
617
- const filePath = path.join(paths.sessionsDir, `${session.id}.json`);
765
+ const filePath = path.join(paths.archiveSessionsDir, `${session.id}.json`);
618
766
  fs.writeFileSync(filePath, JSON.stringify(session, null, 2) + "\n", "utf8");
619
767
  }
620
768
  export function startNewSession(rootDir, state, agent, goal, plan, title) {
769
+ runSessionHygiene(getRuntimePaths(rootDir), state);
621
770
  const nextState = { ...state, pendingWork: [...state.pendingWork], pendingCommit: null };
622
771
  if (nextState.activeSession) {
623
772
  const refreshed = refreshSessionFromRepo(rootDir, nextState, nextState.activeSession);
@@ -638,6 +787,7 @@ export function startNewSession(rootDir, state, agent, goal, plan, title) {
638
787
  return nextState;
639
788
  }
640
789
  export function continueFromLatest(rootDir, state, agent) {
790
+ runSessionHygiene(getRuntimePaths(rootDir), state);
641
791
  if (state.activeSession) {
642
792
  const refreshed = refreshSessionFromRepo(rootDir, state, {
643
793
  ...state.activeSession,
@@ -668,15 +818,114 @@ export function continueFromLatest(rootDir, state, agent) {
668
818
  pendingCommit: null,
669
819
  };
670
820
  }
671
- export function shouldAutoDraftHandoff(session, currentTimeMs = Date.now()) {
821
+ const PASSIVE_CHECKPOINT_ELAPSED_MS = 2 * 60 * 60 * 1000;
822
+ const PASSIVE_CHECKPOINT_PENDING_FILE_THRESHOLD = 5;
823
+ const HEALTH_WARNING_STALE_CHECKPOINT_MS = 3 * 24 * 60 * 60 * 1000;
824
+ const HEALTH_WARNING_UNUSUAL_FILES_THRESHOLD = 50;
825
+ const AUTO_DRAFT_IDLE_MINUTES = 30;
826
+ const AUTO_DRAFT_WORK_MILESTONE_HOURS = 2;
827
+ const AUTO_DRAFT_WORK_MILESTONE_CHECKPOINTS = 5;
828
+ export function shouldCheckpointForElapsedTime(lastCheckpointAt, currentTimeMs = Date.now()) {
829
+ if (!lastCheckpointAt) {
830
+ return false;
831
+ }
832
+ const lastCheckpointMs = new Date(lastCheckpointAt).getTime();
833
+ if (Number.isNaN(lastCheckpointMs)) {
834
+ return false;
835
+ }
836
+ return currentTimeMs - lastCheckpointMs >= PASSIVE_CHECKPOINT_ELAPSED_MS;
837
+ }
838
+ export function shouldCheckpointForPendingFiles(pendingFiles) {
839
+ if (!pendingFiles || pendingFiles.length === 0) {
840
+ return false;
841
+ }
842
+ return pendingFiles.length >= PASSIVE_CHECKPOINT_PENDING_FILE_THRESHOLD;
843
+ }
844
+ function latestCheckpointTimestamp(state) {
845
+ const candidates = [state.lastAutoCheckpoint, state.passiveCapture?.lastCheckpointAt].filter((value) => Boolean(value));
846
+ if (candidates.length === 0) {
847
+ return null;
848
+ }
849
+ const ranked = candidates
850
+ .map((value) => ({ value, ms: new Date(value).getTime() }))
851
+ .filter((item) => !Number.isNaN(item.ms))
852
+ .sort((left, right) => right.ms - left.ms);
853
+ return ranked[0]?.value ?? null;
854
+ }
855
+ export function evaluateHealthDiagnostics(state, currentTimeMs = Date.now()) {
856
+ const warnings = [];
857
+ const observedAt = new Date(currentTimeMs).toISOString();
858
+ const lastCheckpointAt = latestCheckpointTimestamp(state);
859
+ if (lastCheckpointAt) {
860
+ const lastCheckpointMs = new Date(lastCheckpointAt).getTime();
861
+ if (!Number.isNaN(lastCheckpointMs)) {
862
+ const elapsedMs = currentTimeMs - lastCheckpointMs;
863
+ if (elapsedMs >= HEALTH_WARNING_STALE_CHECKPOINT_MS) {
864
+ const daysSinceCheckpoint = Math.floor(elapsedMs / (24 * 60 * 60 * 1000));
865
+ warnings.push({
866
+ code: "daemon-stale-checkpoint",
867
+ message: "Daemon may not be checkpointing — no checkpoint has been recorded for 3+ days.",
868
+ observedAt,
869
+ inputs: {
870
+ lastCheckpointAt,
871
+ staleThresholdDays: 3,
872
+ daysSinceCheckpoint,
873
+ },
874
+ });
875
+ }
876
+ }
877
+ }
878
+ const changedFileCount = Math.max(state.activeSession?.changedFiles.length ?? 0, state.passiveCapture?.pendingFiles.length ?? 0);
879
+ const hasCheckpointEvidence = Boolean(lastCheckpointAt || (state.activeSession?.checkpointCount ?? 0) > 0);
880
+ if (changedFileCount >= HEALTH_WARNING_UNUSUAL_FILES_THRESHOLD && !hasCheckpointEvidence) {
881
+ warnings.push({
882
+ code: "unusual-files-without-checkpoint",
883
+ message: "Unusual repo activity detected: 50+ changed files with no checkpoint evidence.",
884
+ observedAt,
885
+ inputs: {
886
+ lastCheckpointAt,
887
+ changedFileCount,
888
+ changedFilesThreshold: HEALTH_WARNING_UNUSUAL_FILES_THRESHOLD,
889
+ hasCheckpointEvidence,
890
+ },
891
+ });
892
+ }
893
+ return { warnings };
894
+ }
895
+ export function shouldDraftCompletionSignalHandoff(input) {
896
+ if (!input.completionSignal || !input.sessionId || !input.sessionUpdatedAt) {
897
+ return { should: false, reason: "" };
898
+ }
899
+ const existingDraft = input.existingDraft;
900
+ if (existingDraft
901
+ && existingDraft.sourceSessionId === input.sessionId
902
+ && existingDraft.sourceSessionUpdatedAt === input.sessionUpdatedAt
903
+ && existingDraft.reason === "completion-signal") {
904
+ return { should: false, reason: "" };
905
+ }
906
+ return { should: true, reason: "completion-signal" };
907
+ }
908
+ export function shouldAutoDraftHandoff(session, currentTimeMs = Date.now(), existingDraft = null) {
909
+ const completionSignalDecision = shouldDraftCompletionSignalHandoff({
910
+ sessionId: session.id,
911
+ sessionUpdatedAt: session.updatedAt,
912
+ completionSignal: session.completionSignal ?? null,
913
+ existingDraft,
914
+ });
915
+ if (completionSignalDecision.should) {
916
+ return completionSignalDecision;
917
+ }
672
918
  const updatedAtMs = new Date(session.updatedAt).getTime();
673
919
  const startedAtMs = new Date(session.startedAt).getTime();
920
+ if (Number.isNaN(updatedAtMs) || Number.isNaN(startedAtMs)) {
921
+ return { should: false, reason: "" };
922
+ }
674
923
  const idleMinutes = (currentTimeMs - updatedAtMs) / 60000;
675
- if (idleMinutes >= 30) {
924
+ if (idleMinutes >= AUTO_DRAFT_IDLE_MINUTES) {
676
925
  return { should: true, reason: "idle-30min" };
677
926
  }
678
927
  const sessionHours = (currentTimeMs - startedAtMs) / 3600000;
679
- if (session.checkpointCount >= 5 && sessionHours >= 2) {
928
+ if (session.checkpointCount >= AUTO_DRAFT_WORK_MILESTONE_CHECKPOINTS && sessionHours >= AUTO_DRAFT_WORK_MILESTONE_HOURS) {
680
929
  return { should: true, reason: "work-milestone" };
681
930
  }
682
931
  return { should: false, reason: "" };
@@ -705,6 +954,30 @@ export function buildAutoDraftHandoff(state, reason) {
705
954
  },
706
955
  };
707
956
  }
957
+ export function isSameDraftHandoff(left, right) {
958
+ if (!left || !right) {
959
+ return false;
960
+ }
961
+ return left.sourceSessionId === right.sourceSessionId
962
+ && left.sourceSessionUpdatedAt === right.sourceSessionUpdatedAt
963
+ && left.reason === right.reason;
964
+ }
965
+ export function maybeWriteAutoDraftHandoff(paths, state, currentTimeMs = Date.now()) {
966
+ if (!state.activeSession) {
967
+ return { changed: false, reason: "", draft: null };
968
+ }
969
+ const existingDraft = readDraftHandoff(paths);
970
+ const decision = shouldAutoDraftHandoff(state.activeSession, currentTimeMs, existingDraft);
971
+ if (!decision.should) {
972
+ return { changed: false, reason: "", draft: existingDraft };
973
+ }
974
+ const nextDraft = buildAutoDraftHandoff(state, decision.reason);
975
+ if (!nextDraft || isSameDraftHandoff(existingDraft, nextDraft)) {
976
+ return { changed: false, reason: decision.reason, draft: existingDraft };
977
+ }
978
+ writeDraftHandoff(paths, nextDraft);
979
+ return { changed: true, reason: decision.reason, draft: nextDraft };
980
+ }
708
981
  export function applyHandoff(rootDir, state, input) {
709
982
  if (!state.activeSession) {
710
983
  return state;
@@ -752,6 +1025,13 @@ export function applyHandoff(rootDir, state, input) {
752
1025
  }
753
1026
  writeArchivedSession(getRuntimePaths(rootDir), session);
754
1027
  const paths = getRuntimePaths(rootDir);
1028
+ if (input.relatedSessions) {
1029
+ for (const relatedId of input.relatedSessions) {
1030
+ if (relatedId && relatedId.startsWith("session-")) {
1031
+ reactivateArchivedSession(paths, relatedId);
1032
+ }
1033
+ }
1034
+ }
755
1035
  return {
756
1036
  ...refreshed.state,
757
1037
  activeSession: null,
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/core/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/core/state.ts"],"names":[],"mappings":"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"}