{"version":3,"file":"index.mjs","names":["readHarnessState","readSharedHarnessState","getHarnessState","getSharedHarnessState","updateHarnessState","updateSharedHarnessState"],"sources":["../../../src/composition/harnessState/index.ts"],"sourcesContent":["import {\n  HARNESS_STATE_KEYS,\n  projectHarnessEnvironment,\n  readHarnessState as readSharedHarnessState,\n} from '@agimon-ai/doompi-config/harnessState';\nimport {\n  createHarnessSession,\n  getHarnessState as getSharedHarnessState,\n  HARNESS_STATE_POINTER,\n  harnessRoot,\n  loadHarnessState,\n  requireHarnessPaths,\n  requireHarnessRoot,\n  resetHarnessStore,\n  restoreHarnessStateSnapshot,\n  snapshotHarnessState,\n  updateHarnessState as updateSharedHarnessState,\n} from '@agimon-ai/doompi-config/harnessStore';\nimport type { HarnessState } from '@agimon-ai/doompi-config/types';\nimport { HARNESS_EVENT, type HarnessFailureReporter } from '@agimon-ai/doompi-core/runtime-log-sink-telemetry';\n\nexport type { HarnessStateTransactionSnapshot } from '@agimon-ai/doompi-config/harnessStore';\nexport type { DoomHarnessContext, HarnessState } from '@agimon-ai/doompi-config/types';\nexport {\n  createHarnessSession,\n  HARNESS_STATE_KEYS,\n  HARNESS_STATE_POINTER,\n  harnessRoot,\n  loadHarnessState,\n  projectHarnessEnvironment,\n  requireHarnessPaths,\n  requireHarnessRoot,\n  resetHarnessStore,\n  restoreHarnessStateSnapshot,\n  snapshotHarnessState,\n};\n\nfunction telemetryReporter(report?: HarnessFailureReporter): ((key: string, error: unknown) => void) | undefined {\n  if (!report) return undefined;\n  return (key, error) => {\n    report.warn(HARNESS_EVENT.harnessStateParseFailed, error, { 'harness.state.key': key });\n  };\n}\n\nexport function readHarnessState(\n  environment: NodeJS.ProcessEnv = process.env,\n  report?: HarnessFailureReporter,\n): HarnessState {\n  return readSharedHarnessState(environment, telemetryReporter(report));\n}\n\nexport function getHarnessState(report?: HarnessFailureReporter): HarnessState {\n  return getSharedHarnessState(telemetryReporter(report));\n}\n\n/**\n * Re-reads the state, dropping what this process had cached.\n *\n * The store caches for the life of a process because nothing else writes the\n * file it owns. A test suite and a Pi reload are the two places that outlive\n * that assumption, so both come through here.\n */\nexport function refreshHarnessState(report?: HarnessFailureReporter): HarnessState {\n  resetHarnessStore();\n  return getHarnessState(report);\n}\n\nexport function updateHarnessState(\n  patch: Partial<HarnessState>,\n  environment: NodeJS.ProcessEnv = process.env,\n): HarnessState {\n  return updateSharedHarnessState(patch, environment);\n}\n"],"mappings":";;;;AAqCA,SAAS,kBAAkB,QAAsF;CAC/G,IAAI,CAAC,QAAQ,OAAO,KAAA;CACpB,QAAQ,KAAK,UAAU;EACrB,OAAO,KAAK,cAAc,yBAAyB,OAAO,EAAE,qBAAqB,IAAI,CAAC;CACxF;AACF;AAEA,SAAgBA,mBACd,cAAiC,QAAQ,KACzC,QACc;CACd,OAAOC,iBAAuB,aAAa,kBAAkB,MAAM,CAAC;AACtE;AAEA,SAAgBC,kBAAgB,QAA+C;CAC7E,OAAOC,gBAAsB,kBAAkB,MAAM,CAAC;AACxD;;;;;;;;AASA,SAAgB,oBAAoB,QAA+C;CACjF,kBAAkB;CAClB,OAAOD,kBAAgB,MAAM;AAC/B;AAEA,SAAgBE,qBACd,OACA,cAAiC,QAAQ,KAC3B;CACd,OAAOC,mBAAyB,OAAO,WAAW;AACpD"}