instar 1.3.489 → 1.3.491

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 (175) hide show
  1. package/dashboard/index.html +30 -0
  2. package/dist/commands/server.d.ts.map +1 -1
  3. package/dist/commands/server.js +1124 -28
  4. package/dist/commands/server.js.map +1 -1
  5. package/dist/config/ConfigDefaults.d.ts.map +1 -1
  6. package/dist/config/ConfigDefaults.js +23 -0
  7. package/dist/config/ConfigDefaults.js.map +1 -1
  8. package/dist/core/CodexResumeMap.d.ts +95 -0
  9. package/dist/core/CodexResumeMap.d.ts.map +1 -0
  10. package/dist/core/CodexResumeMap.js +283 -0
  11. package/dist/core/CodexResumeMap.js.map +1 -0
  12. package/dist/core/GuardPostureStore.d.ts +38 -0
  13. package/dist/core/GuardPostureStore.d.ts.map +1 -0
  14. package/dist/core/GuardPostureStore.js +87 -0
  15. package/dist/core/GuardPostureStore.js.map +1 -0
  16. package/dist/core/MachinePoolRegistry.d.ts +16 -0
  17. package/dist/core/MachinePoolRegistry.d.ts.map +1 -1
  18. package/dist/core/MachinePoolRegistry.js +24 -1
  19. package/dist/core/MachinePoolRegistry.js.map +1 -1
  20. package/dist/core/MeshRpc.d.ts +3 -0
  21. package/dist/core/MeshRpc.d.ts.map +1 -1
  22. package/dist/core/MeshRpc.js +5 -0
  23. package/dist/core/MeshRpc.js.map +1 -1
  24. package/dist/core/ModelSwapService.d.ts +26 -11
  25. package/dist/core/ModelSwapService.d.ts.map +1 -1
  26. package/dist/core/ModelSwapService.js +59 -21
  27. package/dist/core/ModelSwapService.js.map +1 -1
  28. package/dist/core/PeerPresencePuller.d.ts +9 -0
  29. package/dist/core/PeerPresencePuller.d.ts.map +1 -1
  30. package/dist/core/PeerPresencePuller.js +1 -1
  31. package/dist/core/PeerPresencePuller.js.map +1 -1
  32. package/dist/core/PostUpdateMigrator.d.ts +16 -0
  33. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  34. package/dist/core/PostUpdateMigrator.js +92 -4
  35. package/dist/core/PostUpdateMigrator.js.map +1 -1
  36. package/dist/core/SessionManager.d.ts +4 -0
  37. package/dist/core/SessionManager.d.ts.map +1 -1
  38. package/dist/core/SessionManager.js +3 -0
  39. package/dist/core/SessionManager.js.map +1 -1
  40. package/dist/core/SessionRefresh.d.ts +36 -7
  41. package/dist/core/SessionRefresh.d.ts.map +1 -1
  42. package/dist/core/SessionRefresh.js +90 -29
  43. package/dist/core/SessionRefresh.js.map +1 -1
  44. package/dist/core/TopicProfileOrchestrator.d.ts +480 -0
  45. package/dist/core/TopicProfileOrchestrator.d.ts.map +1 -0
  46. package/dist/core/TopicProfileOrchestrator.js +1404 -0
  47. package/dist/core/TopicProfileOrchestrator.js.map +1 -0
  48. package/dist/core/TopicProfileResolver.d.ts +104 -0
  49. package/dist/core/TopicProfileResolver.d.ts.map +1 -0
  50. package/dist/core/TopicProfileResolver.js +231 -0
  51. package/dist/core/TopicProfileResolver.js.map +1 -0
  52. package/dist/core/TopicProfileStore.d.ts +308 -0
  53. package/dist/core/TopicProfileStore.d.ts.map +1 -0
  54. package/dist/core/TopicProfileStore.js +781 -0
  55. package/dist/core/TopicProfileStore.js.map +1 -0
  56. package/dist/core/TopicProfileTransferCarrier.d.ts +227 -0
  57. package/dist/core/TopicProfileTransferCarrier.d.ts.map +1 -0
  58. package/dist/core/TopicProfileTransferCarrier.js +533 -0
  59. package/dist/core/TopicProfileTransferCarrier.js.map +1 -0
  60. package/dist/core/TopicResumeMap.d.ts +67 -1
  61. package/dist/core/TopicResumeMap.d.ts.map +1 -1
  62. package/dist/core/TopicResumeMap.js +114 -1
  63. package/dist/core/TopicResumeMap.js.map +1 -1
  64. package/dist/core/classifyProfileChange.d.ts +83 -0
  65. package/dist/core/classifyProfileChange.d.ts.map +1 -0
  66. package/dist/core/classifyProfileChange.js +274 -0
  67. package/dist/core/classifyProfileChange.js.map +1 -0
  68. package/dist/core/devGatedFeatures.d.ts.map +1 -1
  69. package/dist/core/devGatedFeatures.js +6 -0
  70. package/dist/core/devGatedFeatures.js.map +1 -1
  71. package/dist/core/frameworkSessionLaunch.d.ts +26 -0
  72. package/dist/core/frameworkSessionLaunch.d.ts.map +1 -1
  73. package/dist/core/frameworkSessionLaunch.js +58 -0
  74. package/dist/core/frameworkSessionLaunch.js.map +1 -1
  75. package/dist/core/slackRefreshBinding.d.ts +83 -0
  76. package/dist/core/slackRefreshBinding.d.ts.map +1 -0
  77. package/dist/core/slackRefreshBinding.js +54 -0
  78. package/dist/core/slackRefreshBinding.js.map +1 -0
  79. package/dist/core/topicProfileIngress.d.ts +128 -0
  80. package/dist/core/topicProfileIngress.d.ts.map +1 -0
  81. package/dist/core/topicProfileIngress.js +249 -0
  82. package/dist/core/topicProfileIngress.js.map +1 -0
  83. package/dist/core/topicProfileValidation.d.ts +109 -0
  84. package/dist/core/topicProfileValidation.d.ts.map +1 -0
  85. package/dist/core/topicProfileValidation.js +247 -0
  86. package/dist/core/topicProfileValidation.js.map +1 -0
  87. package/dist/core/topicProfileWriteSurface.d.ts +222 -0
  88. package/dist/core/topicProfileWriteSurface.d.ts.map +1 -0
  89. package/dist/core/topicProfileWriteSurface.js +631 -0
  90. package/dist/core/topicProfileWriteSurface.js.map +1 -0
  91. package/dist/core/types.d.ts +66 -0
  92. package/dist/core/types.d.ts.map +1 -1
  93. package/dist/core/types.js.map +1 -1
  94. package/dist/lifeline/TelegramLifeline.d.ts.map +1 -1
  95. package/dist/lifeline/TelegramLifeline.js +6 -0
  96. package/dist/lifeline/TelegramLifeline.js.map +1 -1
  97. package/dist/messaging/TelegramAdapter.d.ts +10 -1
  98. package/dist/messaging/TelegramAdapter.d.ts.map +1 -1
  99. package/dist/messaging/TelegramAdapter.js +41 -1
  100. package/dist/messaging/TelegramAdapter.js.map +1 -1
  101. package/dist/monitoring/ActiveWorkSilenceSentinel.d.ts +8 -0
  102. package/dist/monitoring/ActiveWorkSilenceSentinel.d.ts.map +1 -1
  103. package/dist/monitoring/ActiveWorkSilenceSentinel.js +8 -0
  104. package/dist/monitoring/ActiveWorkSilenceSentinel.js.map +1 -1
  105. package/dist/monitoring/ContextWedgeSentinel.d.ts +8 -0
  106. package/dist/monitoring/ContextWedgeSentinel.d.ts.map +1 -1
  107. package/dist/monitoring/ContextWedgeSentinel.js +8 -0
  108. package/dist/monitoring/ContextWedgeSentinel.js.map +1 -1
  109. package/dist/monitoring/GuardPostureTripwire.d.ts +3 -27
  110. package/dist/monitoring/GuardPostureTripwire.d.ts.map +1 -1
  111. package/dist/monitoring/GuardPostureTripwire.js +8 -76
  112. package/dist/monitoring/GuardPostureTripwire.js.map +1 -1
  113. package/dist/monitoring/GuardRegistry.d.ts +48 -0
  114. package/dist/monitoring/GuardRegistry.d.ts.map +1 -0
  115. package/dist/monitoring/GuardRegistry.js +49 -0
  116. package/dist/monitoring/GuardRegistry.js.map +1 -0
  117. package/dist/monitoring/SessionReaper.d.ts +7 -0
  118. package/dist/monitoring/SessionReaper.d.ts.map +1 -1
  119. package/dist/monitoring/SessionReaper.js +9 -0
  120. package/dist/monitoring/SessionReaper.js.map +1 -1
  121. package/dist/monitoring/SessionWatchdog.d.ts +8 -0
  122. package/dist/monitoring/SessionWatchdog.d.ts.map +1 -1
  123. package/dist/monitoring/SessionWatchdog.js +8 -0
  124. package/dist/monitoring/SessionWatchdog.js.map +1 -1
  125. package/dist/monitoring/SocketDisconnectSentinel.d.ts +8 -0
  126. package/dist/monitoring/SocketDisconnectSentinel.d.ts.map +1 -1
  127. package/dist/monitoring/SocketDisconnectSentinel.js +8 -0
  128. package/dist/monitoring/SocketDisconnectSentinel.js.map +1 -1
  129. package/dist/monitoring/guardManifest.d.ts +67 -0
  130. package/dist/monitoring/guardManifest.d.ts.map +1 -0
  131. package/dist/monitoring/guardManifest.js +536 -0
  132. package/dist/monitoring/guardManifest.js.map +1 -0
  133. package/dist/monitoring/guardPosture.d.ts +77 -0
  134. package/dist/monitoring/guardPosture.d.ts.map +1 -0
  135. package/dist/monitoring/guardPosture.js +198 -0
  136. package/dist/monitoring/guardPosture.js.map +1 -0
  137. package/dist/monitoring/guardPostureView.d.ts +100 -0
  138. package/dist/monitoring/guardPostureView.d.ts.map +1 -0
  139. package/dist/monitoring/guardPostureView.js +294 -0
  140. package/dist/monitoring/guardPostureView.js.map +1 -0
  141. package/dist/monitoring/probes/GuardPostureProbe.d.ts +82 -0
  142. package/dist/monitoring/probes/GuardPostureProbe.d.ts.map +1 -0
  143. package/dist/monitoring/probes/GuardPostureProbe.js +384 -0
  144. package/dist/monitoring/probes/GuardPostureProbe.js.map +1 -0
  145. package/dist/scaffold/templates.d.ts.map +1 -1
  146. package/dist/scaffold/templates.js +18 -0
  147. package/dist/scaffold/templates.js.map +1 -1
  148. package/dist/scheduler/JobScheduler.d.ts +10 -0
  149. package/dist/scheduler/JobScheduler.d.ts.map +1 -1
  150. package/dist/scheduler/JobScheduler.js +12 -0
  151. package/dist/scheduler/JobScheduler.js.map +1 -1
  152. package/dist/server/AgentServer.d.ts +40 -0
  153. package/dist/server/AgentServer.d.ts.map +1 -1
  154. package/dist/server/AgentServer.js +54 -3
  155. package/dist/server/AgentServer.js.map +1 -1
  156. package/dist/server/CapabilityIndex.d.ts.map +1 -1
  157. package/dist/server/CapabilityIndex.js +12 -0
  158. package/dist/server/CapabilityIndex.js.map +1 -1
  159. package/dist/server/peerUrlGuard.d.ts +35 -0
  160. package/dist/server/peerUrlGuard.d.ts.map +1 -0
  161. package/dist/server/peerUrlGuard.js +93 -0
  162. package/dist/server/peerUrlGuard.js.map +1 -0
  163. package/dist/server/routes.d.ts +31 -0
  164. package/dist/server/routes.d.ts.map +1 -1
  165. package/dist/server/routes.js +407 -1
  166. package/dist/server/routes.js.map +1 -1
  167. package/package.json +3 -2
  168. package/scripts/lint-guard-manifest.js +264 -0
  169. package/src/data/builtin-manifest.json +67 -67
  170. package/src/data/state-coherence-registry.json +54 -18
  171. package/src/scaffold/templates.ts +18 -0
  172. package/upgrades/1.3.490.md +34 -0
  173. package/upgrades/1.3.491.md +37 -0
  174. package/upgrades/side-effects/guard-posture-endpoint.md +101 -0
  175. package/upgrades/side-effects/topic-profile.md +142 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigDefaults.d.ts","sourceRoot":"","sources":["../../src/config/ConfigDefaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA60BH,MAAM,MAAM,SAAS,GAAG,iBAAiB,GAAG,YAAY,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAO7E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIlF;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAuC5D"}
1
+ {"version":3,"file":"ConfigDefaults.d.ts","sourceRoot":"","sources":["../../src/config/ConfigDefaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAo2BH,MAAM,MAAM,SAAS,GAAG,iBAAiB,GAAG,YAAY,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAO7E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIlF;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAuC5D"}
@@ -762,6 +762,29 @@ const SHARED_DEFAULTS = {
762
762
  },
763
763
  },
764
764
  },
765
+ // Topic Profile (TOPIC-PROFILE-SPEC §12.5) — per-topic model/thinking/framework
766
+ // pins. `enabled` is deliberately OMITTED so the runtime resolves it through the
767
+ // standard developmentAgent dark-feature gate (`enabled ?? !!developmentAgent`,
768
+ // standard_development_agent_dark_feature_gate): LIVE on a dev agent (Echo, the
769
+ // dogfooding ground), DARK fleet-wide. Registered in DEV_GATED_FEATURES
770
+ // (src/core/devGatedFeatures.ts); the live-fleet flip is registering
771
+ // `enabled: true` here. A literal `enabled: false` would force-dark dev agents
772
+ // too — the exact PR #1001 failure the §12.5 lint refuses. An operator's
773
+ // EXPLICIT `enabled` in .instar/config.json remains the documented
774
+ // force-dark / fleet-flip override. dryRun:true is the §14 shadow-field canary
775
+ // (logs intended respawns, performs none). applyDefaults is add-missing-only
776
+ // deep-merge, so existing agents backfill these on update (Migration Parity)
777
+ // and an operator's existing values are NEVER overwritten; `defaults` is an
778
+ // operator-owned map and is left alone whenever present.
779
+ topicProfiles: {
780
+ dryRun: true, // §14 — shadow-field dry-run
781
+ respawnDebounceMs: 7000, // same-framework trailing-edge window (§8)
782
+ frameworkSwitchDebounceMs: 45000, // heavier framework-switch window (§8)
783
+ maxConcurrentProfileRespawns: 2, // global stagger cap K (§8)
784
+ spawnFailureBreakerThreshold: 3, // §10.4 N (attributable failures)
785
+ switchNowConfirmTtlMs: 300000, // §8 'switch now' validity window
786
+ defaults: {}, // per-topic config-default profiles (§5.2)
787
+ },
765
788
  };
766
789
  /**
767
790
  * Fields that differ between agent types at INIT time.
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigDefaults.js","sourceRoot":"","sources":["../../src/config/ConfigDefaults.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConfigDefaults.js","sourceRoot":"","sources":["../../src/config/ConfigDefaults.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * CodexResumeMap — per-topic Codex rollout-id capture-at-kill,
3
+ * TOPIC-PROFILE-SPEC §7 (prerequisite sub-task).
4
+ *
5
+ * `TopicResumeMap` + the `beforeSessionKill` listener capture only Claude
6
+ * JSONL UUIDs; nothing captured Codex's rollout id from ~/.codex/sessions —
7
+ * so the "Codex resume = none-loss" swap row would be a lie without this
8
+ * (round-1 adversarial, CRITICAL). Scope: the per-topic sessionId
9
+ * capture-at-kill only — `FrameworkSessionStore` already resolves a rollout
10
+ * path GIVEN a sessionId, and `codex resume <id>` launch support exists.
11
+ *
12
+ * Capture is TIME-FENCED DISCOVERY scoped to the spawned session (Codex has
13
+ * no hook, and a naive newest-rollout mtime scan is the wrong-conversation
14
+ * class §8 brands worse than disclosed loss):
15
+ * - record the spawn timestamp + pane cwd at launch;
16
+ * - accept only a rollout file created after spawn whose recorded session
17
+ * cwd matches the topic's session;
18
+ * - THE FENCE IS ZERO-OR-ONE: if more than one candidate passes, capture
19
+ * NOTHING — the swap row degrades to recent-only, disclosed (round-5).
20
+ * - ambiguity-discards are counted separately from fence-validation
21
+ * failures (only genuine validation failures feed the L5 drift signal —
22
+ * round-6: ambient same-dir ambiguity must not fire false "codex CLI
23
+ * format drifted" signals or mask real drift).
24
+ *
25
+ * Entries are framework-tagged + provenance-tagged ('fence'), and support
26
+ * PARKING (§8 — a fresh respawn parks rather than deletes, so the §10.4
27
+ * breaker revert / §10.3 undo can un-park and resume the surviving
28
+ * transcript). Read/write discipline per §5.1: in-memory authoritative,
29
+ * atomic tmp+rename flush.
30
+ */
31
+ import { codexHomeFromConfig } from '../providers/adapters/openai-codex/observability/sessionPaths.js';
32
+ export interface CodexResumeEntry {
33
+ rolloutId: string;
34
+ savedAt: string;
35
+ sessionName: string;
36
+ framework: 'codex-cli';
37
+ provenance: 'fence';
38
+ /** §8 — parked entries are ignored by resolution but recoverable. */
39
+ parked: string | null;
40
+ }
41
+ export interface CodexSpawnFence {
42
+ /** Epoch ms the codex session was spawned. */
43
+ spawnedAt: number;
44
+ /** The pane cwd recorded at launch. */
45
+ cwd: string;
46
+ }
47
+ export interface FenceCaptureResult {
48
+ outcome: 'captured' | 'ambiguous' | 'none' | 'validation-failed';
49
+ rolloutId?: string;
50
+ candidateCount: number;
51
+ }
52
+ export declare class CodexResumeMap {
53
+ private readonly filePath;
54
+ private readonly codexHome?;
55
+ private entries;
56
+ /** Per-(machine,framework) consecutive fence-validation failures (§7 L5 drift). */
57
+ private consecutiveValidationFailures;
58
+ /** Distinct non-drift metric: multi-candidate discards (§7 round-6). */
59
+ private ambiguityDiscards;
60
+ constructor(stateDir: string, codexHome?: string);
61
+ /**
62
+ * Capture the rollout id for a topic's codex session at kill time, against
63
+ * the spawn fence. Zero-or-one: multiple passing candidates capture
64
+ * nothing. Returns the structured outcome so the §8 kill path can disclose
65
+ * the real loss class and the drift counters stay honest.
66
+ */
67
+ captureAtKill(topicKey: number | string, sessionName: string, fence: CodexSpawnFence): Promise<FenceCaptureResult>;
68
+ /** Persist a fence-validated mapping. */
69
+ save(topicKey: number | string, rolloutId: string, sessionName: string): void;
70
+ /**
71
+ * Resume id for a topic — null when absent, parked, expired, or the
72
+ * rollout file no longer exists on THIS machine (§5.3 transcript locality).
73
+ */
74
+ get(topicKey: number | string): string | null;
75
+ /** Raw entry (parked included) for §8 park/un-park machinery. */
76
+ getEntry(topicKey: number | string): CodexResumeEntry | null;
77
+ /** §8 — "remove" means PARK, not delete (deletion destroys the cheap recovery). */
78
+ park(topicKey: number | string, reason: string): void;
79
+ /** §10.4 revert / §10.3 undo — un-park the matching-framework entry. */
80
+ unpark(topicKey: number | string): boolean;
81
+ /** Hard removal (successful resume consumption / stale-id clear). */
82
+ remove(topicKey: number | string): void;
83
+ /** §7 drift signal inputs — read by the L5 canary plumbing. */
84
+ driftCounters(): {
85
+ consecutiveValidationFailures: number;
86
+ ambiguityDiscards: number;
87
+ };
88
+ private prune;
89
+ private load;
90
+ private persist;
91
+ }
92
+ /** Extract the rollout UUID from `rollout-<ts>-<uuid>.jsonl`. */
93
+ export declare function rolloutIdFromFilename(rolloutPath: string): string | null;
94
+ export { codexHomeFromConfig };
95
+ //# sourceMappingURL=CodexResumeMap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodexResumeMap.d.ts","sourceRoot":"","sources":["../../src/core/CodexResumeMap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAIH,OAAO,EACL,mBAAmB,EAGpB,MAAM,kEAAkE,CAAC;AAE1E,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,WAAW,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,qEAAqE;IACrE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;CACb;AAQD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,GAAG,mBAAmB,CAAC;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IACpC,OAAO,CAAC,OAAO,CAAwC;IAEvD,mFAAmF;IACnF,OAAO,CAAC,6BAA6B,CAAK;IAC1C,wEAAwE;IACxE,OAAO,CAAC,iBAAiB,CAAK;gBAElB,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAMhD;;;;;OAKG;IACG,aAAa,CACjB,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,kBAAkB,CAAC;IAoD9B,yCAAyC;IACzC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAa7E;;;OAGG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI;IAQ7C,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAI5D,mFAAmF;IACnF,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAQrD,wEAAwE;IACxE,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAU1C,qEAAqE;IACrE,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAOvC,+DAA+D;IAC/D,aAAa,IAAI;QAAE,6BAA6B,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE;IAOrF,OAAO,CAAC,KAAK;IASb,OAAO,CAAC,IAAI;IAuBZ,OAAO,CAAC,OAAO;CAWhB;AAED,iEAAiE;AACjE,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIxE;AAyDD,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -0,0 +1,283 @@
1
+ /**
2
+ * CodexResumeMap — per-topic Codex rollout-id capture-at-kill,
3
+ * TOPIC-PROFILE-SPEC §7 (prerequisite sub-task).
4
+ *
5
+ * `TopicResumeMap` + the `beforeSessionKill` listener capture only Claude
6
+ * JSONL UUIDs; nothing captured Codex's rollout id from ~/.codex/sessions —
7
+ * so the "Codex resume = none-loss" swap row would be a lie without this
8
+ * (round-1 adversarial, CRITICAL). Scope: the per-topic sessionId
9
+ * capture-at-kill only — `FrameworkSessionStore` already resolves a rollout
10
+ * path GIVEN a sessionId, and `codex resume <id>` launch support exists.
11
+ *
12
+ * Capture is TIME-FENCED DISCOVERY scoped to the spawned session (Codex has
13
+ * no hook, and a naive newest-rollout mtime scan is the wrong-conversation
14
+ * class §8 brands worse than disclosed loss):
15
+ * - record the spawn timestamp + pane cwd at launch;
16
+ * - accept only a rollout file created after spawn whose recorded session
17
+ * cwd matches the topic's session;
18
+ * - THE FENCE IS ZERO-OR-ONE: if more than one candidate passes, capture
19
+ * NOTHING — the swap row degrades to recent-only, disclosed (round-5).
20
+ * - ambiguity-discards are counted separately from fence-validation
21
+ * failures (only genuine validation failures feed the L5 drift signal —
22
+ * round-6: ambient same-dir ambiguity must not fire false "codex CLI
23
+ * format drifted" signals or mask real drift).
24
+ *
25
+ * Entries are framework-tagged + provenance-tagged ('fence'), and support
26
+ * PARKING (§8 — a fresh respawn parks rather than deletes, so the §10.4
27
+ * breaker revert / §10.3 undo can un-park and resume the surviving
28
+ * transcript). Read/write discipline per §5.1: in-memory authoritative,
29
+ * atomic tmp+rename flush.
30
+ */
31
+ import fs from 'node:fs';
32
+ import path from 'node:path';
33
+ import { codexHomeFromConfig, findRolloutFileSync, listAllRollouts, } from '../providers/adapters/openai-codex/observability/sessionPaths.js';
34
+ /** Entries older than 24 hours are pruned (mirrors TopicResumeMap). */
35
+ const MAX_AGE_MS = 24 * 60 * 60 * 1000;
36
+ /** How many newest rollouts to inspect for fence candidates. */
37
+ const FENCE_SCAN_LIMIT = 24;
38
+ export class CodexResumeMap {
39
+ filePath;
40
+ codexHome;
41
+ entries = {};
42
+ /** Per-(machine,framework) consecutive fence-validation failures (§7 L5 drift). */
43
+ consecutiveValidationFailures = 0;
44
+ /** Distinct non-drift metric: multi-candidate discards (§7 round-6). */
45
+ ambiguityDiscards = 0;
46
+ constructor(stateDir, codexHome) {
47
+ this.filePath = path.join(stateDir, 'codex-resume-map.json');
48
+ this.codexHome = codexHome;
49
+ this.load();
50
+ }
51
+ /**
52
+ * Capture the rollout id for a topic's codex session at kill time, against
53
+ * the spawn fence. Zero-or-one: multiple passing candidates capture
54
+ * nothing. Returns the structured outcome so the §8 kill path can disclose
55
+ * the real loss class and the drift counters stay honest.
56
+ */
57
+ async captureAtKill(topicKey, sessionName, fence) {
58
+ let candidates;
59
+ try {
60
+ const all = await listAllRollouts(this.codexHome, FENCE_SCAN_LIMIT);
61
+ candidates = all.filter((r) => r.mtime >= fence.spawnedAt);
62
+ }
63
+ catch {
64
+ this.consecutiveValidationFailures += 1;
65
+ return { outcome: 'validation-failed', candidateCount: 0 };
66
+ }
67
+ // Validate each post-spawn rollout against the fence: created after
68
+ // spawn (creation ≈ the timestamp embedded in the filename ordering —
69
+ // mtime is the upper bound we filtered on) AND the recorded session cwd
70
+ // matches.
71
+ const passing = [];
72
+ let sawParseFailure = false;
73
+ for (const candidate of candidates) {
74
+ const meta = readRolloutMeta(candidate.path);
75
+ if (meta === 'unreadable') {
76
+ sawParseFailure = true;
77
+ continue;
78
+ }
79
+ if (meta === null)
80
+ continue; // readable but not a session-meta rollout — not ours
81
+ if (!cwdMatches(meta.cwd, fence.cwd))
82
+ continue;
83
+ if (meta.createdAtMs !== null && meta.createdAtMs < fence.spawnedAt)
84
+ continue;
85
+ const rolloutId = rolloutIdFromFilename(candidate.path);
86
+ if (!rolloutId) {
87
+ sawParseFailure = true;
88
+ continue;
89
+ }
90
+ passing.push({ rolloutId });
91
+ }
92
+ if (passing.length === 1) {
93
+ this.consecutiveValidationFailures = 0;
94
+ this.save(topicKey, passing[0].rolloutId, sessionName);
95
+ return { outcome: 'captured', rolloutId: passing[0].rolloutId, candidateCount: 1 };
96
+ }
97
+ if (passing.length > 1) {
98
+ // Zero-or-one rule — counted SEPARATELY from validation failures.
99
+ this.ambiguityDiscards += 1;
100
+ return { outcome: 'ambiguous', candidateCount: passing.length };
101
+ }
102
+ if (sawParseFailure) {
103
+ // Genuine validation failure (format/location mismatch) — feeds drift.
104
+ this.consecutiveValidationFailures += 1;
105
+ return { outcome: 'validation-failed', candidateCount: 0 };
106
+ }
107
+ // No candidates at all (e.g. session never wrote a rollout). Not drift.
108
+ return { outcome: 'none', candidateCount: 0 };
109
+ }
110
+ /** Persist a fence-validated mapping. */
111
+ save(topicKey, rolloutId, sessionName) {
112
+ this.entries[String(topicKey)] = {
113
+ rolloutId,
114
+ savedAt: new Date().toISOString(),
115
+ sessionName,
116
+ framework: 'codex-cli',
117
+ provenance: 'fence',
118
+ parked: null,
119
+ };
120
+ this.prune();
121
+ this.persist();
122
+ }
123
+ /**
124
+ * Resume id for a topic — null when absent, parked, expired, or the
125
+ * rollout file no longer exists on THIS machine (§5.3 transcript locality).
126
+ */
127
+ get(topicKey) {
128
+ const entry = this.entries[String(topicKey)];
129
+ if (!entry || entry.parked)
130
+ return null;
131
+ if (Date.now() - new Date(entry.savedAt).getTime() > MAX_AGE_MS)
132
+ return null;
133
+ if (findRolloutFileSync(entry.rolloutId, this.codexHome) === null)
134
+ return null;
135
+ return entry.rolloutId;
136
+ }
137
+ /** Raw entry (parked included) for §8 park/un-park machinery. */
138
+ getEntry(topicKey) {
139
+ return this.entries[String(topicKey)] ?? null;
140
+ }
141
+ /** §8 — "remove" means PARK, not delete (deletion destroys the cheap recovery). */
142
+ park(topicKey, reason) {
143
+ const entry = this.entries[String(topicKey)];
144
+ if (entry && !entry.parked) {
145
+ entry.parked = reason;
146
+ this.persist();
147
+ }
148
+ }
149
+ /** §10.4 revert / §10.3 undo — un-park the matching-framework entry. */
150
+ unpark(topicKey) {
151
+ const entry = this.entries[String(topicKey)];
152
+ if (entry?.parked) {
153
+ entry.parked = null;
154
+ this.persist();
155
+ return true;
156
+ }
157
+ return false;
158
+ }
159
+ /** Hard removal (successful resume consumption / stale-id clear). */
160
+ remove(topicKey) {
161
+ if (this.entries[String(topicKey)]) {
162
+ delete this.entries[String(topicKey)];
163
+ this.persist();
164
+ }
165
+ }
166
+ /** §7 drift signal inputs — read by the L5 canary plumbing. */
167
+ driftCounters() {
168
+ return {
169
+ consecutiveValidationFailures: this.consecutiveValidationFailures,
170
+ ambiguityDiscards: this.ambiguityDiscards,
171
+ };
172
+ }
173
+ prune() {
174
+ const now = Date.now();
175
+ for (const key of Object.keys(this.entries)) {
176
+ if (now - new Date(this.entries[key].savedAt).getTime() > MAX_AGE_MS) {
177
+ delete this.entries[key];
178
+ }
179
+ }
180
+ }
181
+ load() {
182
+ try {
183
+ if (!fs.existsSync(this.filePath))
184
+ return;
185
+ const parsed = JSON.parse(fs.readFileSync(this.filePath, 'utf-8'));
186
+ if (parsed && typeof parsed === 'object') {
187
+ for (const [key, value] of Object.entries(parsed)) {
188
+ if (value && typeof value.rolloutId === 'string' && typeof value.savedAt === 'string') {
189
+ this.entries[key] = {
190
+ rolloutId: value.rolloutId,
191
+ savedAt: value.savedAt,
192
+ sessionName: typeof value.sessionName === 'string' ? value.sessionName : '',
193
+ framework: 'codex-cli',
194
+ provenance: 'fence',
195
+ parked: typeof value.parked === 'string' ? value.parked : null,
196
+ };
197
+ }
198
+ }
199
+ }
200
+ }
201
+ catch (err) {
202
+ console.warn(`[CodexResumeMap] Failed to load ${this.filePath}: ${err}`);
203
+ }
204
+ }
205
+ persist() {
206
+ try {
207
+ const dir = path.dirname(this.filePath);
208
+ if (!fs.existsSync(dir))
209
+ fs.mkdirSync(dir, { recursive: true });
210
+ const tmp = `${this.filePath}.${process.pid}.tmp`;
211
+ fs.writeFileSync(tmp, JSON.stringify(this.entries, null, 2), 'utf-8');
212
+ fs.renameSync(tmp, this.filePath);
213
+ }
214
+ catch (err) {
215
+ console.error(`[CodexResumeMap] Failed to persist: ${err}`);
216
+ }
217
+ }
218
+ }
219
+ /** Extract the rollout UUID from `rollout-<ts>-<uuid>.jsonl`. */
220
+ export function rolloutIdFromFilename(rolloutPath) {
221
+ const base = path.basename(rolloutPath, '.jsonl');
222
+ const m = /([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$/i.exec(base);
223
+ return m ? m[1] : null;
224
+ }
225
+ /**
226
+ * Read the session metadata (cwd + creation time) from a rollout file's
227
+ * first line. Codex writes a `session_meta` record first, carrying the
228
+ * session's cwd. Returns:
229
+ * - the meta when parsed,
230
+ * - null when the file parses but carries no session meta (not a session
231
+ * rollout we can attribute — skip silently),
232
+ * - 'unreadable' on read/parse failure (feeds the drift counter).
233
+ */
234
+ function readRolloutMeta(rolloutPath) {
235
+ let firstLine;
236
+ try {
237
+ // Rollout first lines are small; read a bounded prefix.
238
+ const fd = fs.openSync(rolloutPath, 'r');
239
+ try {
240
+ const buf = Buffer.alloc(8192);
241
+ const bytes = fs.readSync(fd, buf, 0, buf.length, 0);
242
+ const text = buf.subarray(0, bytes).toString('utf-8');
243
+ const nl = text.indexOf('\n');
244
+ firstLine = nl === -1 ? text : text.slice(0, nl);
245
+ }
246
+ finally {
247
+ fs.closeSync(fd);
248
+ }
249
+ }
250
+ catch {
251
+ // @silent-fallback-ok: returns the 'unreadable' SENTINEL, not a default —
252
+ // the fence-capture caller COUNTS unreadable rollouts and degrades to the
253
+ // zero-or-one rule (refuse the capture) instead of blind-capturing.
254
+ return 'unreadable';
255
+ }
256
+ if (!firstLine.trim())
257
+ return 'unreadable';
258
+ try {
259
+ const parsed = JSON.parse(firstLine);
260
+ // Layouts seen across codex versions: { type:'session_meta', payload:{ cwd, timestamp } }
261
+ // or a flat { cwd, timestamp }-bearing meta record.
262
+ const payload = (parsed.payload && typeof parsed.payload === 'object' ? parsed.payload : parsed);
263
+ const cwd = typeof payload.cwd === 'string' ? payload.cwd : null;
264
+ const ts = typeof payload.timestamp === 'string' ? Date.parse(payload.timestamp) : NaN;
265
+ if (cwd === null && Number.isNaN(ts))
266
+ return null;
267
+ return { cwd, createdAtMs: Number.isNaN(ts) ? null : ts };
268
+ }
269
+ catch {
270
+ // @silent-fallback-ok: a malformed first rollout line yields the same
271
+ // 'unreadable' SENTINEL as a read failure — counted by the fence-capture
272
+ // caller, which refuses the capture under the zero-or-one rule rather
273
+ // than guessing a session id from a corrupt meta record.
274
+ return 'unreadable';
275
+ }
276
+ }
277
+ function cwdMatches(recorded, fenceCwd) {
278
+ if (recorded === null)
279
+ return false;
280
+ return path.resolve(recorded) === path.resolve(fenceCwd);
281
+ }
282
+ export { codexHomeFromConfig };
283
+ //# sourceMappingURL=CodexResumeMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodexResumeMap.js","sourceRoot":"","sources":["../../src/core/CodexResumeMap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * GuardPostureStore — durable last-known guard posture per machine
3
+ * (GUARD-POSTURE-ENDPOINT-SPEC §2.3(c)).
4
+ *
5
+ * The in-memory pool registry is rebuilt from heartbeats, so last-known
6
+ * posture would evaporate on a local server restart — defeating dark-peer
7
+ * honesty in exactly the GAP-001 topology (a week-dark Mini + the laptop's
8
+ * routine update restarts). This store persists each machine's most recent
9
+ * posture block alongside the RECEIVER-side receipt time, reloads at boot,
10
+ * and lets the pool view render "as of <age> ago" for a peer that has been
11
+ * dark for days.
12
+ *
13
+ * Identity rule: callers key records on the REGISTRY's machine identity
14
+ * (the heartbeat ingestion chokepoint already does) — a body-claimed
15
+ * machineId never reaches this store.
16
+ */
17
+ import type { GuardPostureSummary } from './types.js';
18
+ export interface StoredGuardPosture {
19
+ posture: GuardPostureSummary;
20
+ /** Receiver-side receipt epoch-ms (the router's clock at heartbeat arrival). */
21
+ receivedAtMs: number;
22
+ }
23
+ /** Field-wise posture equality EXCLUDING generatedAt (which changes every
24
+ * beat by construction and must not defeat write-on-change). */
25
+ export declare function postureSemanticsEqual(a: GuardPostureSummary, b: GuardPostureSummary): boolean;
26
+ export declare class GuardPostureStore {
27
+ private readonly filePath;
28
+ private machines;
29
+ constructor(stateDir: string);
30
+ private load;
31
+ /** Persist a machine's posture (write-on-change: a SEMANTICALLY unchanged
32
+ * posture refreshes nothing on disk, so the 30s heartbeat loop doesn't
33
+ * churn fs — `generatedAt` is always fresh and deliberately excluded from
34
+ * the comparison; perf review 2026-06-12 finding #2). */
35
+ record(machineId: string, posture: GuardPostureSummary, receivedAtMs: number): void;
36
+ get(machineId: string): StoredGuardPosture | null;
37
+ }
38
+ //# sourceMappingURL=GuardPostureStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GuardPostureStore.d.ts","sourceRoot":"","sources":["../../src/core/GuardPostureStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,gFAAgF;IAChF,YAAY,EAAE,MAAM,CAAC;CACtB;AAQD;iEACiE;AACjE,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAgB7F;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAA0C;gBAE9C,QAAQ,EAAE,MAAM;IAK5B,OAAO,CAAC,IAAI;IAoBZ;;;8DAG0D;IAC1D,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAoBnF,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;CAGlD"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * GuardPostureStore — durable last-known guard posture per machine
3
+ * (GUARD-POSTURE-ENDPOINT-SPEC §2.3(c)).
4
+ *
5
+ * The in-memory pool registry is rebuilt from heartbeats, so last-known
6
+ * posture would evaporate on a local server restart — defeating dark-peer
7
+ * honesty in exactly the GAP-001 topology (a week-dark Mini + the laptop's
8
+ * routine update restarts). This store persists each machine's most recent
9
+ * posture block alongside the RECEIVER-side receipt time, reloads at boot,
10
+ * and lets the pool view render "as of <age> ago" for a peer that has been
11
+ * dark for days.
12
+ *
13
+ * Identity rule: callers key records on the REGISTRY's machine identity
14
+ * (the heartbeat ingestion chokepoint already does) — a body-claimed
15
+ * machineId never reaches this store.
16
+ */
17
+ import fs from 'node:fs';
18
+ import path from 'node:path';
19
+ /** Field-wise posture equality EXCLUDING generatedAt (which changes every
20
+ * beat by construction and must not defeat write-on-change). */
21
+ export function postureSemanticsEqual(a, b) {
22
+ return (a.onConfirmed === b.onConfirmed &&
23
+ a.onUnverified === b.onUnverified &&
24
+ a.onStale === b.onStale &&
25
+ a.onDryRun === b.onDryRun &&
26
+ a.offDeviant === b.offDeviant &&
27
+ a.offRuntimeDivergent === b.offRuntimeDivergent &&
28
+ a.divergedPendingRestart === b.divergedPendingRestart &&
29
+ a.errored === b.errored &&
30
+ a.missing === b.missing &&
31
+ a.offDeviantKeys.length === b.offDeviantKeys.length &&
32
+ a.offDeviantKeys.every((k, i) => k === b.offDeviantKeys[i]) &&
33
+ a.offRuntimeDivergentKeys.length === b.offRuntimeDivergentKeys.length &&
34
+ a.offRuntimeDivergentKeys.every((k, i) => k === b.offRuntimeDivergentKeys[i]));
35
+ }
36
+ export class GuardPostureStore {
37
+ filePath;
38
+ machines = {};
39
+ constructor(stateDir) {
40
+ this.filePath = path.join(stateDir, 'state', 'guard-posture-peers.json');
41
+ this.load();
42
+ }
43
+ load() {
44
+ try {
45
+ const parsed = JSON.parse(fs.readFileSync(this.filePath, 'utf-8'));
46
+ if (parsed && typeof parsed === 'object' && parsed.machines && typeof parsed.machines === 'object') {
47
+ // Retention bound: a peer dark beyond 90 days drops to "unknown"
48
+ // rather than rendering a quarter-year-old posture forever (and the
49
+ // file stays bounded across pool churn).
50
+ const cutoff = Date.now() - 90 * 24 * 60 * 60 * 1000;
51
+ this.machines = Object.fromEntries(Object.entries(parsed.machines).filter(([, v]) => (v?.receivedAtMs ?? 0) >= cutoff));
52
+ }
53
+ }
54
+ catch {
55
+ // @silent-fallback-ok — absent/corrupt store starts empty; the next
56
+ // heartbeat repopulates it. Posture honesty degrades to "unknown",
57
+ // never to invented data.
58
+ this.machines = {};
59
+ }
60
+ }
61
+ /** Persist a machine's posture (write-on-change: a SEMANTICALLY unchanged
62
+ * posture refreshes nothing on disk, so the 30s heartbeat loop doesn't
63
+ * churn fs — `generatedAt` is always fresh and deliberately excluded from
64
+ * the comparison; perf review 2026-06-12 finding #2). */
65
+ record(machineId, posture, receivedAtMs) {
66
+ const prev = this.machines[machineId];
67
+ this.machines[machineId] = { posture, receivedAtMs };
68
+ if (prev && postureSemanticsEqual(prev.posture, posture))
69
+ return;
70
+ try {
71
+ fs.mkdirSync(path.dirname(this.filePath), { recursive: true });
72
+ const tmp = `${this.filePath}.tmp`;
73
+ /* state-registry: guard-posture-peers */
74
+ fs.writeFileSync(tmp, JSON.stringify({ version: 1, machines: this.machines }, null, 2));
75
+ fs.renameSync(tmp, this.filePath);
76
+ }
77
+ catch {
78
+ // @silent-fallback-ok — a failed persist keeps the in-memory copy
79
+ // serving; durability degrades for this beat only and the next changed
80
+ // beat retries.
81
+ }
82
+ }
83
+ get(machineId) {
84
+ return this.machines[machineId] ?? null;
85
+ }
86
+ }
87
+ //# sourceMappingURL=GuardPostureStore.js.map