instar 1.3.1332 → 1.3.1334

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 (134) hide show
  1. package/dashboard/feedback-triage.js +144 -0
  2. package/dashboard/glance.js +1 -0
  3. package/dashboard/index.html +45 -0
  4. package/dist/commands/server.d.ts.map +1 -1
  5. package/dist/commands/server.js +1 -0
  6. package/dist/commands/server.js.map +1 -1
  7. package/dist/config/ConfigDefaults.d.ts.map +1 -1
  8. package/dist/config/ConfigDefaults.js +10 -0
  9. package/dist/config/ConfigDefaults.js.map +1 -1
  10. package/dist/core/InitiativeTracker.d.ts +1 -1
  11. package/dist/core/InitiativeTracker.d.ts.map +1 -1
  12. package/dist/core/InitiativeTracker.js +21 -0
  13. package/dist/core/InitiativeTracker.js.map +1 -1
  14. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  15. package/dist/core/PostUpdateMigrator.js +15 -0
  16. package/dist/core/PostUpdateMigrator.js.map +1 -1
  17. package/dist/core/WriteDomainRegistry.d.ts.map +1 -1
  18. package/dist/core/WriteDomainRegistry.js +3 -0
  19. package/dist/core/WriteDomainRegistry.js.map +1 -1
  20. package/dist/core/canonicalPipelineRegistry.d.ts +13 -0
  21. package/dist/core/canonicalPipelineRegistry.d.ts.map +1 -1
  22. package/dist/core/canonicalPipelineRegistry.js +15 -0
  23. package/dist/core/canonicalPipelineRegistry.js.map +1 -1
  24. package/dist/core/componentCategories.d.ts.map +1 -1
  25. package/dist/core/componentCategories.js +2 -0
  26. package/dist/core/componentCategories.js.map +1 -1
  27. package/dist/core/decisionGradingPass.d.ts.map +1 -1
  28. package/dist/core/decisionGradingPass.js +3 -1
  29. package/dist/core/decisionGradingPass.js.map +1 -1
  30. package/dist/core/devGatedFeatures.d.ts.map +1 -1
  31. package/dist/core/devGatedFeatures.js +6 -0
  32. package/dist/core/devGatedFeatures.js.map +1 -1
  33. package/dist/core/types.d.ts +27 -0
  34. package/dist/core/types.d.ts.map +1 -1
  35. package/dist/core/types.js.map +1 -1
  36. package/dist/data/llmBenchCoverage.d.ts.map +1 -1
  37. package/dist/data/llmBenchCoverage.js +10 -0
  38. package/dist/data/llmBenchCoverage.js.map +1 -1
  39. package/dist/data/provenanceCoverage.d.ts +2 -0
  40. package/dist/data/provenanceCoverage.d.ts.map +1 -1
  41. package/dist/data/provenanceCoverage.js +22 -0
  42. package/dist/data/provenanceCoverage.js.map +1 -1
  43. package/dist/data/standards-guard-index.json +1 -1
  44. package/dist/data/standards-guard-index.meta.json +2 -2
  45. package/dist/data/standards-registry.meta.json +1 -1
  46. package/dist/feedback-factory/drain/FeedbackDrainService.d.ts.map +1 -1
  47. package/dist/feedback-factory/drain/FeedbackDrainService.js +4 -22
  48. package/dist/feedback-factory/drain/FeedbackDrainService.js.map +1 -1
  49. package/dist/feedback-factory/drain/FeedbackDrainStore.d.ts +14 -0
  50. package/dist/feedback-factory/drain/FeedbackDrainStore.d.ts.map +1 -1
  51. package/dist/feedback-factory/drain/FeedbackDrainStore.js +36 -0
  52. package/dist/feedback-factory/drain/FeedbackDrainStore.js.map +1 -1
  53. package/dist/feedback-factory/drain/stageBudget.d.ts +18 -0
  54. package/dist/feedback-factory/drain/stageBudget.d.ts.map +1 -0
  55. package/dist/feedback-factory/drain/stageBudget.js +40 -0
  56. package/dist/feedback-factory/drain/stageBudget.js.map +1 -0
  57. package/dist/feedback-factory/processing/FeedbackProcessingService.d.ts +3 -1
  58. package/dist/feedback-factory/processing/FeedbackProcessingService.d.ts.map +1 -1
  59. package/dist/feedback-factory/processing/FeedbackProcessingService.js +5 -0
  60. package/dist/feedback-factory/processing/FeedbackProcessingService.js.map +1 -1
  61. package/dist/feedback-factory/store/JsonlFeedbackStore.d.ts +2 -0
  62. package/dist/feedback-factory/store/JsonlFeedbackStore.d.ts.map +1 -1
  63. package/dist/feedback-factory/store/JsonlFeedbackStore.js +15 -0
  64. package/dist/feedback-factory/store/JsonlFeedbackStore.js.map +1 -1
  65. package/dist/feedback-factory/triage/FeedbackTriageArbiter.d.ts +45 -0
  66. package/dist/feedback-factory/triage/FeedbackTriageArbiter.d.ts.map +1 -0
  67. package/dist/feedback-factory/triage/FeedbackTriageArbiter.js +147 -0
  68. package/dist/feedback-factory/triage/FeedbackTriageArbiter.js.map +1 -0
  69. package/dist/feedback-factory/triage/FeedbackTriageAuditLog.d.ts +19 -0
  70. package/dist/feedback-factory/triage/FeedbackTriageAuditLog.d.ts.map +1 -0
  71. package/dist/feedback-factory/triage/FeedbackTriageAuditLog.js +141 -0
  72. package/dist/feedback-factory/triage/FeedbackTriageAuditLog.js.map +1 -0
  73. package/dist/feedback-factory/triage/FeedbackTriageService.d.ts +163 -0
  74. package/dist/feedback-factory/triage/FeedbackTriageService.d.ts.map +1 -0
  75. package/dist/feedback-factory/triage/FeedbackTriageService.js +881 -0
  76. package/dist/feedback-factory/triage/FeedbackTriageService.js.map +1 -0
  77. package/dist/feedback-factory/triage/FeedbackTriageStore.d.ts +219 -0
  78. package/dist/feedback-factory/triage/FeedbackTriageStore.d.ts.map +1 -0
  79. package/dist/feedback-factory/triage/FeedbackTriageStore.js +367 -0
  80. package/dist/feedback-factory/triage/FeedbackTriageStore.js.map +1 -0
  81. package/dist/feedback-factory/triage/buildFeedbackTriage.d.ts +62 -0
  82. package/dist/feedback-factory/triage/buildFeedbackTriage.d.ts.map +1 -0
  83. package/dist/feedback-factory/triage/buildFeedbackTriage.js +160 -0
  84. package/dist/feedback-factory/triage/buildFeedbackTriage.js.map +1 -0
  85. package/dist/feedback-factory/triage/triageAuthorityProposal.d.ts +63 -0
  86. package/dist/feedback-factory/triage/triageAuthorityProposal.d.ts.map +1 -0
  87. package/dist/feedback-factory/triage/triageAuthorityProposal.js +74 -0
  88. package/dist/feedback-factory/triage/triageAuthorityProposal.js.map +1 -0
  89. package/dist/feedback-factory/triage/triageFloors.d.ts +146 -0
  90. package/dist/feedback-factory/triage/triageFloors.d.ts.map +1 -0
  91. package/dist/feedback-factory/triage/triageFloors.js +271 -0
  92. package/dist/feedback-factory/triage/triageFloors.js.map +1 -0
  93. package/dist/feedback-factory/triage/triagePacket.d.ts +74 -0
  94. package/dist/feedback-factory/triage/triagePacket.d.ts.map +1 -0
  95. package/dist/feedback-factory/triage/triagePacket.js +122 -0
  96. package/dist/feedback-factory/triage/triagePacket.js.map +1 -0
  97. package/dist/monitoring/SessionWatchdog.d.ts +38 -2
  98. package/dist/monitoring/SessionWatchdog.d.ts.map +1 -1
  99. package/dist/monitoring/SessionWatchdog.js +144 -6
  100. package/dist/monitoring/SessionWatchdog.js.map +1 -1
  101. package/dist/scaffold/templates.d.ts.map +1 -1
  102. package/dist/scaffold/templates.js +6 -0
  103. package/dist/scaffold/templates.js.map +1 -1
  104. package/dist/server/AgentServer.d.ts +4 -0
  105. package/dist/server/AgentServer.d.ts.map +1 -1
  106. package/dist/server/AgentServer.js +40 -0
  107. package/dist/server/AgentServer.js.map +1 -1
  108. package/dist/server/CapabilityIndex.d.ts.map +1 -1
  109. package/dist/server/CapabilityIndex.js +16 -0
  110. package/dist/server/CapabilityIndex.js.map +1 -1
  111. package/dist/server/routes.d.ts +2 -0
  112. package/dist/server/routes.d.ts.map +1 -1
  113. package/dist/server/routes.js +212 -1
  114. package/dist/server/routes.js.map +1 -1
  115. package/dist/testing/selfActionRegistry.d.ts.map +1 -1
  116. package/dist/testing/selfActionRegistry.js +131 -0
  117. package/dist/testing/selfActionRegistry.js.map +1 -1
  118. package/package.json +1 -1
  119. package/src/data/builtin-manifest.json +64 -64
  120. package/src/data/llmBenchCoverage.ts +10 -0
  121. package/src/data/provenanceCoverage.ts +25 -0
  122. package/src/data/standards-guard-index.json +1 -1
  123. package/src/data/standards-guard-index.meta.json +2 -2
  124. package/src/data/standards-registry.meta.json +1 -1
  125. package/src/data/state-coherence-registry.json +20 -0
  126. package/src/scaffold/templates/jobs/instar/feedback-factory-action-list.md +60 -0
  127. package/src/scaffold/templates/jobs/instar/feedback-factory-triage.md +107 -0
  128. package/src/scaffold/templates/jobs/instar/initiative-digest-review.md +1 -1
  129. package/src/scaffold/templates.ts +6 -0
  130. package/upgrades/1.3.1333.md +31 -0
  131. package/upgrades/1.3.1334.md +37 -0
  132. package/upgrades/feedback-triage-phase1.eli16.md +9 -0
  133. package/upgrades/side-effects/feedback-triage-phase1.md +104 -0
  134. package/upgrades/side-effects/watchdog-test-runner-floor.md +84 -0
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Feedback Drain tab — Triage section (docs/specs/feedback-triage-and-execution.md §3, §5, §7).
3
+ *
4
+ * Renders, in plain language: the triage authority approval card (one PIN tap; the server
5
+ * computes every technical field), the summary, the ranked work queue, and the PIN-bound
6
+ * "turn ignores live" plan/commit buttons. Every dynamic value is written with textContent,
7
+ * never innerHTML. Mirrors feedback-readiness-authority.js.
8
+ */
9
+
10
+ function el(doc, tag, cls, text) {
11
+ const n = doc.createElement(tag);
12
+ if (cls) n.className = cls;
13
+ if (text !== undefined && text !== null) n.textContent = String(text);
14
+ return n;
15
+ }
16
+
17
+ /** Where the triage authority stands, in the operator's words. */
18
+ export function triageStatusLine(p) {
19
+ const s = (p && p.status) || 'none';
20
+ const cur = (p && p.current) || null;
21
+ if (s === 'none') return 'Not set up yet — feedback work items are not being sorted until you approve the sorting model.';
22
+ if (s === 'revoked') return `Revoked (version ${cur ? cur.generation : '?'}). Triage is not sorting anything.`;
23
+ if (s === 'proposal-only') return `Paused (version ${cur ? cur.generation : '?'}) — ${(p && p.pausedBecause) || 'a safety brake fired.'} Approve again to resume.`;
24
+ if (cur && cur.matchesProposal === false) return `Active (version ${cur.generation}), but out of date for this machine — approve to update it.`;
25
+ return `Active (version ${cur ? cur.generation : '?'}): up to ${cur ? cur.maxBatch : '?'} items per batch.`;
26
+ }
27
+
28
+ /** The POST body for an approve (create/replace/restore) or revoke of the triage authority. */
29
+ export function triageAuthorityRequest(action, pin, operatorDecisionRef) {
30
+ const body = { action, pin, operatorDecisionRef };
31
+ if (action === 'create' || action === 'replace') body.useProposal = true;
32
+ return body;
33
+ }
34
+
35
+ export function newTriageDecisionRef(now = new Date(), rand = Math.random) {
36
+ const suffix = Math.floor(rand() * 0xffffffff).toString(16).padStart(8, '0');
37
+ return `dashboard-triage:${now.toISOString().replace(/[^0-9A-Za-z]/g, '')}:${suffix}`;
38
+ }
39
+
40
+ export function triageResultNote(ok, data) {
41
+ if (ok) return data && data.revoked ? 'Revoked. Triage stops at its next run.' : `Approved (version ${data ? data.generation : '?'}). The next triage run starts sorting.`;
42
+ const m = String((data && data.error) || '');
43
+ if (/incorrect pin|pin required/i.test(m)) return 'That PIN was not accepted. Nothing has changed.';
44
+ if (/too many/i.test(m)) return 'Too many PIN attempts — wait a few minutes. Nothing has changed.';
45
+ return `Not applied: ${m || 'the server refused'}. Nothing has changed.`;
46
+ }
47
+
48
+ const AUTHORITY_WORDS = {
49
+ 'awaiting-approval': 'waiting for your approval',
50
+ active: 'sorting',
51
+ paused: 'paused by a safety brake',
52
+ 'self-healing': 'retrying on its own after unusable answers',
53
+ exhausted: 'stopped after its automatic retries — approve again to restart',
54
+ 'binding-stale': 'needs a fresh approval for this machine',
55
+ };
56
+
57
+ /** One plain paragraph for the summary. */
58
+ export function summaryText(summary) {
59
+ if (!summary) return 'Triage status is unavailable.';
60
+ const c = summary.counts || {};
61
+ const parts = [
62
+ `Triage is ${AUTHORITY_WORDS[summary.authority] || summary.authority}.`,
63
+ `${c.work || 0} to work on, ${c.hold || 0} held, ${c.ignored || 0} set aside, ${(c.untriaged || 0) + (c.queued || 0)} waiting to be sorted.`,
64
+ `Model calls today: ${summary.callsUsedToday || 0} of ${summary.maxCallsPerDay || 0}.`,
65
+ ];
66
+ if (summary.quotaPause && summary.quotaPause.at) parts.push('Paused for now: the account serving triage is near its usage limit.');
67
+ if (summary.ignoreBrake && summary.ignoreBrake.engaged) parts.push('Ignores are braked: the ignore rate rose sharply, so new ignores are being held.');
68
+ parts.push(summary.ignoreLive ? 'Ignores are live.' : 'Ignores are in practice mode (parked as holds).');
69
+ if (summary.ignoreLiveRecommended && !summary.ignoreLive) parts.push('The evidence says ignores are ready to go live — see the button below.');
70
+ return parts.join(' ');
71
+ }
72
+
73
+ export function queueRowText(item) {
74
+ const sev = item.severity || 'unrated';
75
+ const title = String(item.title || item.clusterId || 'A feedback item').slice(0, 140);
76
+ return `${item.rank}. [${sev}] ${title}${item.summary ? ` — ${String(item.summary).slice(0, 200)}` : ''}`;
77
+ }
78
+
79
+ /**
80
+ * Render the Triage section into `target`.
81
+ * handlers: submitAuthority(action, pin) → note; planIgnoreLive(enabled) → plan|null; commitPlan(plan, pin) → note.
82
+ */
83
+ export function renderTriageSection(doc, target, data, handlers = {}) {
84
+ if (!target) return;
85
+ target.replaceChildren();
86
+ target.appendChild(el(doc, 'h3', 'ph-h', 'Triage — what to work on, hold or set aside'));
87
+ if (!data || !data.summary) { target.appendChild(el(doc, 'div', 'ph-detail-body', 'Triage is not live on this machine.')); return; }
88
+ target.appendChild(el(doc, 'div', 'ph-detail-body', summaryText(data.summary)));
89
+
90
+ // Authority card.
91
+ const p = data.proposal;
92
+ const card = el(doc, 'div', 'spend-arm-plan');
93
+ card.appendChild(el(doc, 'div', 'spend-arm-plan-label', 'Who sorts feedback work items'));
94
+ card.appendChild(el(doc, 'div', 'ph-detail-body', triageStatusLine(p)));
95
+ if (p && p.summary) card.appendChild(el(doc, 'div', 'spend-arm-plan-text', p.summary));
96
+ for (const b of (p && p.blockers) || []) card.appendChild(el(doc, 'div', 'spend-arm-note', b));
97
+ const pin = el(doc, 'input', 'spend-arm-pin');
98
+ pin.type = 'password'; pin.inputMode = 'numeric'; pin.id = 'ftPin'; pin.placeholder = 'Dashboard PIN'; pin.autocomplete = 'off';
99
+ card.appendChild(pin);
100
+ const note = el(doc, 'div', 'spend-arm-status');
101
+ note.id = 'ftNote';
102
+ note.setAttribute('aria-live', 'polite');
103
+ const btns = el(doc, 'div', 'spend-arm-btns');
104
+ const add = (label, run, cls) => {
105
+ const b = el(doc, 'button', `spend-arm-btn ${cls || ''}`.trim(), label);
106
+ b.addEventListener('click', async () => { note.textContent = 'Working…'; note.textContent = await run((pin.value || '').trim()); });
107
+ btns.appendChild(b);
108
+ return b;
109
+ };
110
+ if (p && p.approveAction && typeof handlers.submitAuthority === 'function') {
111
+ add(p.approveAction === 'restore' ? 'Approve (restore)' : 'Approve', (v) => handlers.submitAuthority(p.approveAction, v), 'spend-arm-btn-commit').setAttribute('data-ft-action', p.approveAction);
112
+ }
113
+ if (p && (p.status === 'active' || p.status === 'proposal-only') && typeof handlers.submitAuthority === 'function') {
114
+ add('Revoke', (v) => handlers.submitAuthority('revoke', v)).setAttribute('data-ft-action', 'revoke');
115
+ }
116
+ // Live-ignore plan/commit: render the server's exact wording, then commit with the PIN.
117
+ if (typeof handlers.planIgnoreLive === 'function' && typeof handlers.commitPlan === 'function') {
118
+ const enabled = !data.summary.ignoreLive;
119
+ const planBox = el(doc, 'div', 'spend-arm-plan-text');
120
+ add(enabled ? 'Turn ignores live…' : 'Turn ignores back to practice mode…', async () => {
121
+ const plan = await handlers.planIgnoreLive(enabled);
122
+ if (!plan || !plan.planId) return 'Could not prepare that change. Nothing has changed.';
123
+ planBox.textContent = plan.renderedText;
124
+ card.insertBefore(planBox, btns);
125
+ const confirm = el(doc, 'button', 'spend-arm-btn spend-arm-btn-commit', 'Confirm with PIN');
126
+ confirm.setAttribute('data-ft-action', 'commit-ignore-live');
127
+ confirm.addEventListener('click', async () => { note.textContent = 'Working…'; note.textContent = await handlers.commitPlan(plan, (pin.value || '').trim()); });
128
+ btns.appendChild(confirm);
129
+ return 'Read the change above, enter your PIN, then confirm.';
130
+ }).setAttribute('data-ft-action', 'plan-ignore-live');
131
+ }
132
+ card.appendChild(btns);
133
+ card.appendChild(note);
134
+ target.appendChild(card);
135
+
136
+ // Ranked queue.
137
+ const items = (data.queue && Array.isArray(data.queue.items)) ? data.queue.items : [];
138
+ const list = el(doc, 'div', 'ph-detail-body');
139
+ if (items.length === 0) list.textContent = 'No feedback items are queued to work on yet.';
140
+ for (const item of items.slice(0, 25)) list.appendChild(el(doc, 'div', null, queueRowText(item)));
141
+ if (items.length > 25) list.appendChild(el(doc, 'div', 'spend-arm-note', `…and ${items.length - 25} more.`));
142
+ target.appendChild(el(doc, 'div', 'spend-arm-plan-label', 'Work queue (highest first)'));
143
+ target.appendChild(list);
144
+ }
@@ -1794,6 +1794,7 @@ const INITIATIVE_STATUS_WORD = {
1794
1794
  const SIGNAL_REASON_WORD = {
1795
1795
  'needs-user': 'Waiting on you', 'next-check-due': 'Time for a check-in',
1796
1796
  'ready-to-advance': 'Ready to move forward', 'stale': "Hasn't moved in a while",
1797
+ 'feedback-summary': 'Feedback work items (see the triage queue)',
1797
1798
  };
1798
1799
 
1799
1800
  /** The single population for the list tile: the (already server-filtered) items. */
@@ -3801,6 +3801,7 @@
3801
3801
  <section class="ph-section"><h3 class="ph-h">Progress</h3><div id="fdProgress" class="ph-detail-body"></div></section>
3802
3802
  <section class="ph-section"><h3 class="ph-h">Source integrity</h3><div id="fdSource" class="ph-detail-body"></div></section>
3803
3803
  <section id="fdAuthority" class="ph-section spend-arm-root"></section>
3804
+ <section id="fdTriage" class="ph-section spend-arm-root"></section>
3804
3805
  </div>
3805
3806
 
3806
3807
  <!-- subscriptions tab (Subscription & Auth Standard P2.2 — live quota + pending logins) -->
@@ -10544,9 +10545,53 @@
10544
10545
  },
10545
10546
  });
10546
10547
  }
10548
+ // Triage section (feedback-triage-and-execution): queue, summary, authority card, PIN buttons.
10549
+ // Rendered on tab open and after each action — not on the poll, which would wipe a PIN.
10550
+ let __ftModule = null;
10551
+ async function loadFeedbackTriage(noteText) {
10552
+ const root = document.getElementById('fdTriage');
10553
+ if (!root) return;
10554
+ if (!__ftModule) {
10555
+ try { __ftModule = await import('/dashboard/feedback-triage.js'); }
10556
+ catch (e) { console.error('[feedback-triage] module load failed', e); root.textContent = 'Loading the triage section failed — refresh to retry.'; return; }
10557
+ }
10558
+ const M = __ftModule;
10559
+ const get = async (url) => { try { return await apiFetch(url); } catch { return null; } };
10560
+ const [summary, queue, proposal] = await Promise.all([
10561
+ get('/feedback-factory/triage/summary'), get('/feedback-factory/triage/queue'), get('/feedback-factory/triage/authority/proposal'),
10562
+ ]);
10563
+ const post = async (url, body) => {
10564
+ const response = await fetch(url, {
10565
+ method: 'POST',
10566
+ headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json', 'X-Instar-Request': '1' },
10567
+ body: JSON.stringify(body),
10568
+ });
10569
+ return { ok: response.ok, data: await response.json().catch(() => ({})) };
10570
+ };
10571
+ M.renderTriageSection(document, root, { summary, queue, proposal }, {
10572
+ submitAuthority: async (action, pin) => {
10573
+ const r = await post('/feedback-factory/triage/authority', M.triageAuthorityRequest(action, pin, M.newTriageDecisionRef()));
10574
+ const note = M.triageResultNote(r.ok, r.data);
10575
+ if (r.ok) await loadFeedbackTriage(note);
10576
+ return note;
10577
+ },
10578
+ planIgnoreLive: async (enabled) => {
10579
+ const r = await post('/feedback-factory/triage/plan', { action: 'ignore-live', enabled });
10580
+ return r.ok ? r.data : null;
10581
+ },
10582
+ commitPlan: async (plan, pin) => {
10583
+ const r = await post('/feedback-factory/triage/commit', { pin, planId: plan.planId, nonce: plan.nonce });
10584
+ const note = r.ok ? (r.data.ignoreLive ? 'Done: ignores are live.' : 'Done: ignores are back in practice mode.') : M.triageResultNote(false, r.data);
10585
+ if (r.ok) await loadFeedbackTriage(note);
10586
+ return note;
10587
+ },
10588
+ });
10589
+ if (noteText) { const n = document.getElementById('ftNote'); if (n) n.textContent = noteText; }
10590
+ }
10547
10591
  function startFeedbackDrain() {
10548
10592
  stopFeedbackDrain();
10549
10593
  void loadFeedbackAuthority();
10594
+ void loadFeedbackTriage();
10550
10595
  void loadFeedbackDrain();
10551
10596
  __fdTimer = setInterval(() => { void loadFeedbackDrain(); }, 15000);
10552
10597
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/commands/server.ts"],"names":[],"mappings":"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"}
@@ -11000,6 +11000,7 @@ export async function startServer(options) {
11000
11000
  if (config.monitoring.watchdog?.enabled) {
11001
11001
  watchdog = new SessionWatchdog(config, sessionManager, state, {
11002
11002
  onProvenanceCanaryAlert: (message) => notify('IMMEDIATE', 'codex-provenance-canary', message),
11003
+ readLiveWatchdogConfig: () => liveConfig.get('monitoring.watchdog', undefined),
11003
11004
  });
11004
11005
  watchdog.intelligence = sharedIntelligence ?? null;
11005
11006
  guardRegistry.register('monitoring.watchdog.enabled', () => watchdog.guardStatus());