next-observer 0.3.29 → 0.3.32
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/README.md +10 -2
- package/dist/agents/cards.js +10 -2
- package/dist/agents/cards.js.map +1 -1
- package/dist/agents/investigator.js +2 -2
- package/dist/agents/investigator.js.map +1 -1
- package/dist/agents/specialists.js +3 -1
- package/dist/agents/specialists.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +14 -2
- package/dist/cli.js.map +1 -1
- package/dist/collector/budget.d.ts +28 -0
- package/dist/collector/budget.js +41 -0
- package/dist/collector/budget.js.map +1 -0
- package/dist/collector/chat-history.d.ts +35 -0
- package/dist/collector/chat-history.js +44 -0
- package/dist/collector/chat-history.js.map +1 -0
- package/dist/collector/chat.d.ts +21 -0
- package/dist/collector/server.d.ts +3 -0
- package/dist/collector/server.js +29 -3
- package/dist/collector/server.js.map +1 -1
- package/dist/debug/queries.d.ts +23 -1
- package/dist/debug/queries.js +57 -4
- package/dist/debug/queries.js.map +1 -1
- package/dist/ui/assets/index-Clc8emDK.css +2 -0
- package/dist/ui/assets/index-t9GRyZmU.js +20 -0
- package/dist/ui/index.html +2 -2
- package/package.json +1 -1
- package/dist/ui/assets/index-Cr618y-I.js +0 -20
- package/dist/ui/assets/index-DFfjw5VD.css +0 -2
package/README.md
CHANGED
|
@@ -62,7 +62,8 @@ this call compares with the others of its kind.
|
|
|
62
62
|
|
|
63
63
|
A span can be fast, without an error, and still carry the wrong answer. When the app records its own verdict as a span
|
|
64
64
|
event — `integrity_check` with `ok`, `expected`, `actual` — the observer raises an anomaly on the first `ok: false` and the
|
|
65
|
-
trace says so
|
|
65
|
+
trace says so. The AI agents get those checks counted per deployed version (`compare_versions`), so they can name the
|
|
66
|
+
version that started returning wrong data and how often it happens:
|
|
66
67
|
|
|
67
68
|

|
|
68
69
|
|
|
@@ -127,7 +128,8 @@ few requests per minute, so an investigation may pause for that minute; a key wi
|
|
|
127
128
|
model name is explained in the chat in plain words.
|
|
128
129
|
|
|
129
130
|
The chat keeps a list of investigations — your questions and the ones the observer started on its own — with their
|
|
130
|
-
state; pick one to read it again.
|
|
131
|
+
state; pick one to read it again. The observer keeps them (the last 100, in memory), so a reload or another browser
|
|
132
|
+
shows the same list; a restart of the observer starts clean.
|
|
131
133
|
|
|
132
134
|
An investigation can be stopped — the **Stop** button next to "working…" in the chat, for a question you asked and for
|
|
133
135
|
one the observer started on its own. What was found until then stays on the page. A model behind an API drops the call
|
|
@@ -209,12 +211,18 @@ traffic: it appears in the chat, and the investigation starts from the trace of
|
|
|
209
211
|
- after an anomaly the same check — and, when nothing accepted the connection, the same address — is quiet for
|
|
210
212
|
5 minutes, whatever happens meanwhile; `OBSERVE_DETECTOR=off` switches this off too.
|
|
211
213
|
|
|
214
|
+
**The agents start at most 5 investigations on their own per 60 minutes** (`OBSERVE_AUTO_INVESTIGATIONS`), and at most
|
|
215
|
+
2 wait behind the running one: an investigation an hour after its anomaly is no use, and a real model left running
|
|
216
|
+
overnight must not spend a subscription. An anomaly over the budget still appears in the chat, marked as not
|
|
217
|
+
investigated. Questions you ask are not counted. `GET /api/chat` shows how much is used, per incident type.
|
|
218
|
+
|
|
212
219
|
## Configuration
|
|
213
220
|
|
|
214
221
|
| Variable | Default | |
|
|
215
222
|
|---|---|---|
|
|
216
223
|
| `OBSERVE_AI` | `mock` | `mock` \| `real` |
|
|
217
224
|
| `OBSERVE_DETECTOR` | on | `off` disables the anomaly detector |
|
|
225
|
+
| `OBSERVE_AUTO_INVESTIGATIONS` | `5/60m` | investigations the agents start on their own per period: `5`, `5/30m`, `5/2h`; `0` = only when asked |
|
|
218
226
|
| `OBSERVE_APP_URL` | `http://localhost:3000` | where the checks from `observe.checks.ts` are sent |
|
|
219
227
|
| `OBSERVE_MODEL_TIMEOUT_MS` | `90000` | how long one model call may take before it is started again |
|
|
220
228
|
| `OBSERVE_API_KEY` | — | require `x-api-key` on ingest (`/v1/traces`) |
|
package/dist/agents/cards.js
CHANGED
|
@@ -19,11 +19,17 @@ function describeFilters(args) {
|
|
|
19
19
|
export function cardsFromResult(tool, args, result) {
|
|
20
20
|
switch (tool) {
|
|
21
21
|
case 'compare_versions': {
|
|
22
|
-
const { changes } = result;
|
|
23
|
-
|
|
22
|
+
const { changes, integrity } = result;
|
|
23
|
+
const regressions = changes
|
|
24
24
|
.filter((c) => ((c.p95Ratio ?? 0) >= THRESHOLDS.regressionRatio && c.to.p95Ms - c.from.p95Ms >= THRESHOLDS.regressionMinMs) ||
|
|
25
25
|
(c.errorRateDelta >= THRESHOLDS.regressionErrorDelta && c.errorRateChangeSignificant))
|
|
26
26
|
.map((c) => ({ kind: 'regression', service: c.service, operation: c.operation, from: c.from, to: c.to, p95Ratio: c.p95Ratio, errorRateDelta: c.errorRateDelta }));
|
|
27
|
+
// One wrong answer is worth a card — there is no acceptable share of them. In the version running now, that is:
|
|
28
|
+
// wrong data an earlier version returned and the next one fixed is history, not evidence.
|
|
29
|
+
const wrong = (integrity ?? [])
|
|
30
|
+
.filter((i) => (i.versions.at(-1)?.failed ?? 0) > 0)
|
|
31
|
+
.map((i) => ({ kind: 'wrong-data', service: i.service, operation: i.operation, versions: i.versions }));
|
|
32
|
+
return [...wrong, ...regressions];
|
|
27
33
|
}
|
|
28
34
|
case 'get_errors': {
|
|
29
35
|
const { errors } = result;
|
|
@@ -79,6 +85,8 @@ export function cardKey(card) {
|
|
|
79
85
|
return `${card.kind}:${card.parent}:${card.operation}`;
|
|
80
86
|
case 'hotspot':
|
|
81
87
|
return `${card.kind}:${card.operation}:${card.codeFile}`;
|
|
88
|
+
case 'wrong-data':
|
|
89
|
+
return `${card.kind}:${card.service}:${card.operation}`;
|
|
82
90
|
case 'silent':
|
|
83
91
|
return `${card.kind}:${card.service}`;
|
|
84
92
|
case 'traces':
|
package/dist/agents/cards.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cards.js","sourceRoot":"","sources":["../../src/agents/cards.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,qCAAqC;IACrC,eAAe,EAAE,GAAG;IACpB,0GAA0G;IAC1G,eAAe,EAAE,EAAE;IACnB,oGAAoG;IACpG,oBAAoB,EAAE,GAAG;IACzB,SAAS,EAAE,IAAI;IACf,0DAA0D;IAC1D,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;CACnB,CAAA;AAID,SAAS,eAAe,CAAC,IAA6B;IACpD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC;SAC9C,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACvC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAA;AACxE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,IAA6B,EAAE,MAAe;IAC1F,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,kBAAkB,EAAE,CAAC;YACxB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAmC,CAAA;
|
|
1
|
+
{"version":3,"file":"cards.js","sourceRoot":"","sources":["../../src/agents/cards.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,9 +62,9 @@ export function createInvestigator(options) {
|
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
64
|
const tools = (agent) => ({
|
|
65
|
-
get_services: tool(agent, 'get_services', 'Services,
|
|
65
|
+
get_services: tool(agent, 'get_services', 'Services, every version of them seen so far (in deploy order) and seconds since their last span. `versionLastSpanSecondsAgo` says which versions are still sending: one that has been quiet for minutes was replaced by the next, it is not running alongside it.', z.object({}), () => q.getServices()),
|
|
66
66
|
get_operation_stats: tool(agent, 'get_operation_stats', 'Slowest operations by p95 with p50/p99 and error rate.', z.object({ service, operation, sinceMinutes: since }), (a) => q.getOperationStats(a)),
|
|
67
|
-
compare_versions: tool(agent, 'compare_versions', 'Latest deployed version vs the previous one per operation: p95 ratio and error-rate delta. `errorRateChangeSignificant: false` means the error-rate difference is within random noise for that many requests. Use it to name the deployment that caused a regression.', z.object({ service, operation, sinceMinutes: since }), (a) => q.compareVersions(a)),
|
|
67
|
+
compare_versions: tool(agent, 'compare_versions', 'Latest deployed version vs the previous one per operation: p95 ratio and error-rate delta. `errorRateChangeSignificant: false` means the error-rate difference is within random noise for that many requests. Use it to name the deployment that caused a regression. `integrity` (present when the app checks its own answers) counts those checks per version over the whole history: `failed` > 0 in one version and 0 in the one before names the deployment that started returning wrong data, and failed/checked says how often.', z.object({ service, operation, sinceMinutes: since }), (a) => q.compareVersions(a)),
|
|
68
68
|
get_errors: tool(agent, 'get_errors', 'Failing operations: error rate, top exception messages (each with when it was first seen and in which versions), example trace ids.', z.object({ service, operation, sinceMinutes: since }), (a) => q.getErrors(a)),
|
|
69
69
|
search_traces: tool(agent, 'search_traces', 'Recent traces matching filters, to get example trace ids.', z.object({ service, operation, minDurationMs: z.number().optional(), hasError: z.boolean().optional(), sinceMinutes: since }), (a) => q.searchTraces(a)),
|
|
70
70
|
get_trace: tool(agent, 'get_trace', 'One trace as a tree with self time, errors and code file paths; `repeated` lists ≥3 identical sibling calls (N+1); `nextInternalMs` is time inside Next.js itself (routing, rendering, dev compilation), not the app code; `integrityCheck` on a span means it returned successfully, quickly, and still the wrong data — the span has no error and may not even be slow, so check this field specifically rather than assuming a clean-looking span is fine.', z.object({ traceId: z.string().describe('32-char hex trace id from search_traces, or from an anomaly question') }), (a) => q.getTrace(a)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"investigator.js","sourceRoot":"","sources":["../../src/agents/investigator.ts"],"names":[],"mappings":"AAAA,uGAAuG;AACvG,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,EAAgB,MAAM,aAAa,CAAA;AAC7G,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,kBAAkB,EAAqB,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,qBAAqB,EAAsC,MAAM,kBAAkB,CAAA;AAyB3I,wHAAwH;AACxH,sHAAsH;AACtH,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC,CAAA;AAC3G,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAA;AACpE,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC,CAAA;AAErG;;;;GAIG;AACH,gGAAgG;AAChG,SAAS,aAAa,CAAC,OAAe;IACpC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAyB,CAAA;QAC1D,OAAO,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,CAAA;IAChI,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,8CAA8C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAClE,CAAC;AAED,MAAM,QAAQ,GAAG,cAAc,CAAA;AAC/B,MAAM,OAAO,GAAG,cAAc,CAAA;AAE9B,MAAM,UAAU,kBAAkB,CAAC,OAA4B;IAC7D,MAAM,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IACnE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,oBAAoB,CAAA;IAC/D,mHAAmH;IACnH,uHAAuH;IACvH,4CAA4C;IAC5C,MAAM,QAAQ,GAAG,IAAI,sBAAsB,EAAE,CAAA;IAE7C,qHAAqH;IACrH,KAAK,UAAU,YAAY,CAAC,SAAkB;QAC5C,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;YAC7F,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC,EAAE,CAAA;QAClC,CAAC;QACD,OAAO,CAAC,MAAM,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7F,CAAC;IAED,4GAA4G;IAC5G,SAAS,iBAAiB,CAAC,MAAyC,EAAE,YAAgE;QACpI,qFAAqF;QACrF,SAAS,IAAI,CAAwB,KAAa,EAAE,IAAY,EAAE,WAAmB,EAAE,UAAa,EAAE,GAA2C;YAC/I,OAAO,IAAI,YAAY,CAAC;gBACtB,IAAI;gBACJ,WAAW;gBACX,UAAU;gBACV,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;oBACtB,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAA+B,EAAE,CAAA;oBACzE,MAAM,CAAC,IAAI,CAAC,CAAA;oBACZ,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAkB,CAAC,CAAA;oBAC5C,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;oBAC1B,OAAO,MAAM,CAAA;gBACf,CAAC;aACF,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,KAAa,EAAkC,EAAE,CAAC,CAAC;YAChE,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"investigator.js","sourceRoot":"","sources":["../../src/agents/investigator.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,7 +42,9 @@ tells whether the error rate changed with the latest deployment (errorRateChange
|
|
|
42
42
|
A trace can look completely clean — no error, not slow — and still be wrong: get_trace's \`integrityCheck\` field on a
|
|
43
43
|
span means that span's response did not match what was requested. get_errors will not find these (their status is not
|
|
44
44
|
"error"); you only see them by opening the trace. Report this as a data-integrity problem, distinct from an exception,
|
|
45
|
-
and name what the mismatched spans share (same operation? same deployment version?).
|
|
45
|
+
and name what the mismatched spans share (same operation? same deployment version?). compare_versions' \`integrity\`
|
|
46
|
+
counts those checks per version: say which version started failing them and how often (failed of checked). Quote the
|
|
47
|
+
expected/actual pairs as they are — two or three pairs are not a pattern, do not read one into them. Max 4 sentences.`,
|
|
46
48
|
tools: ['get_errors', 'compare_versions', 'search_traces', 'get_trace'],
|
|
47
49
|
},
|
|
48
50
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specialists.js","sourceRoot":"","sources":["../../src/agents/specialists.ts"],"names":[],"mappings":"AAAA,qHAAqH;AACrH,2HAA2H;AAE3H,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,cAAc,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,CAAU,CAAA;AAa1I,MAAM,IAAI,GAAG,wBAAwB,CAAA;AAErC,wGAAwG;AACxG,MAAM,UAAU,gBAAgB,CAAC,IAAoB;IACnD,MAAM,KAAK,GAAG,OAAO,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,YAAY,CAAA;IACzF,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IAChG,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,0DAA0D,CAAC,CAAA;IAC/I,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,8BAA8B,CAAC,CAAA;IACzF,KAAK,MAAM,KAAK,IAAI,CAAC,aAAa,EAAE,aAAa,CAAU,EAAE,CAAC;QAC5D,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,KAAK,6BAA6B,CAAC,CAAA;IAC9H,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,qCAAqC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChJ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAE,UAAgC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IACxF,IAAI,OAAO,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,mBAAmB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC1H,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAA;AACzI,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAqB;IACpD;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,wGAAwG;QACrH,WAAW,EAAE;;;uEAGsD;QACnE,KAAK,EAAE,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,eAAe,EAAE,WAAW,CAAC;KACjF;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,qQAAqQ;QAClR,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"specialists.js","sourceRoot":"","sources":["../../src/agents/specialists.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ChildProcess, SpawnOptions } from 'node:child_process';
|
|
2
2
|
import { init } from './init.js';
|
|
3
3
|
type AgentsModule = typeof import('./agents/index.js');
|
|
4
|
-
export declare const HELP = "Usage:\n next-observer init [--root <dir>] [--proxy]\n Connect a Next.js app to next-observe: install it, wrap next.config in withObserve(), add instrumentation.ts and\n instrumentation-client.ts, and an \"observe\" script. Safe to run again. --proxy also adds the runtime proxy route.\n\n next-observer dev [--root <dir>] [--port <n>] [-- <next dev args>]\n Start the collector and `next dev` for the app in <dir> (default: current directory).\n Example: next-observer dev --root apps/web -- -p 3100\n\n next-observer collector [--host <host>] [--port <n>] [--api-key <key>] [--ui-password <password>] [--demo]\n Start only the collector (e.g. on a server). Reads OBSERVE_HOST, OBSERVE_PORT, OBSERVE_API_KEY, OBSERVE_UI_PASSWORD.\n --api-key protects ingest (x-api-key); --ui-password protects the UI, API and chat (browser login).\n --demo preloads the workshop \"shop\" scenario (a regression in v2, 30% inventory errors, an N+1, an error new in v2).\n\nEnvironment: OBSERVE_ROOT, OBSERVE_PORT (default 4318), OBSERVE_HOST (default 127.0.0.1), OBSERVE_API_KEY,\n OBSERVE_AI (mock | real), OBSERVE_DETECTOR (off to disable the anomaly detector),\n OBSERVE_APP_URL (where the checks from observe.checks.ts are sent; default http://localhost:3000),\n OBSERVE_MODEL_TIMEOUT_MS (one model call; default 90000, a call that hangs is started again once)";
|
|
4
|
+
export declare const HELP = "Usage:\n next-observer init [--root <dir>] [--proxy]\n Connect a Next.js app to next-observe: install it, wrap next.config in withObserve(), add instrumentation.ts and\n instrumentation-client.ts, and an \"observe\" script. Safe to run again. --proxy also adds the runtime proxy route.\n\n next-observer dev [--root <dir>] [--port <n>] [-- <next dev args>]\n Start the collector and `next dev` for the app in <dir> (default: current directory).\n Example: next-observer dev --root apps/web -- -p 3100\n\n next-observer collector [--host <host>] [--port <n>] [--api-key <key>] [--ui-password <password>] [--demo]\n Start only the collector (e.g. on a server). Reads OBSERVE_HOST, OBSERVE_PORT, OBSERVE_API_KEY, OBSERVE_UI_PASSWORD.\n --api-key protects ingest (x-api-key); --ui-password protects the UI, API and chat (browser login).\n --demo preloads the workshop \"shop\" scenario (a regression in v2, 30% inventory errors, an N+1, an error new in v2).\n\nEnvironment: OBSERVE_ROOT, OBSERVE_PORT (default 4318), OBSERVE_HOST (default 127.0.0.1), OBSERVE_API_KEY,\n OBSERVE_AI (mock | real), OBSERVE_DETECTOR (off to disable the anomaly detector),\n OBSERVE_APP_URL (where the checks from observe.checks.ts are sent; default http://localhost:3000),\n OBSERVE_MODEL_TIMEOUT_MS (one model call; default 90000, a call that hangs is started again once),\n OBSERVE_AUTO_INVESTIGATIONS (investigations the agents start on their own: 5, 5/30m or 5/2h; default 5 per\n 60 min, 0 = only when asked)";
|
|
5
5
|
export declare class CliError extends Error {
|
|
6
6
|
}
|
|
7
7
|
export type Env = Record<string, string | undefined>;
|
package/dist/cli.js
CHANGED
|
@@ -10,6 +10,7 @@ import { CheckRunner } from './checks/runner.js';
|
|
|
10
10
|
import { CheckWatch } from './checks/watch.js';
|
|
11
11
|
import { validateChecks } from './checks/spec.js';
|
|
12
12
|
import { AnomalyDetector } from './debug/detector.js';
|
|
13
|
+
import { InvestigationBudget, parseBudget } from './collector/budget.js';
|
|
13
14
|
export const HELP = `Usage:
|
|
14
15
|
next-observer init [--root <dir>] [--proxy]
|
|
15
16
|
Connect a Next.js app to next-observe: install it, wrap next.config in withObserve(), add instrumentation.ts and
|
|
@@ -27,7 +28,9 @@ export const HELP = `Usage:
|
|
|
27
28
|
Environment: OBSERVE_ROOT, OBSERVE_PORT (default 4318), OBSERVE_HOST (default 127.0.0.1), OBSERVE_API_KEY,
|
|
28
29
|
OBSERVE_AI (mock | real), OBSERVE_DETECTOR (off to disable the anomaly detector),
|
|
29
30
|
OBSERVE_APP_URL (where the checks from observe.checks.ts are sent; default http://localhost:3000),
|
|
30
|
-
OBSERVE_MODEL_TIMEOUT_MS (one model call; default 90000, a call that hangs is started again once)
|
|
31
|
+
OBSERVE_MODEL_TIMEOUT_MS (one model call; default 90000, a call that hangs is started again once),
|
|
32
|
+
OBSERVE_AUTO_INVESTIGATIONS (investigations the agents start on their own: 5, 5/30m or 5/2h; default 5 per
|
|
33
|
+
60 min, 0 = only when asked)`;
|
|
31
34
|
export class CliError extends Error {
|
|
32
35
|
}
|
|
33
36
|
export function parseCliArgs(argv, env, cwd) {
|
|
@@ -233,6 +236,15 @@ async function start(args, deps) {
|
|
|
233
236
|
}
|
|
234
237
|
else
|
|
235
238
|
lines.push(' detector off (OBSERVE_DETECTOR=off)');
|
|
239
|
+
let budget;
|
|
240
|
+
try {
|
|
241
|
+
budget = new InvestigationBudget(parseBudget(deps.env.OBSERVE_AUTO_INVESTIGATIONS));
|
|
242
|
+
}
|
|
243
|
+
catch (error) {
|
|
244
|
+
throw new CliError(error.message);
|
|
245
|
+
}
|
|
246
|
+
const { limit, periodMs } = budget.options;
|
|
247
|
+
lines.push(limit === 0 ? ' budget 0 — agents investigate only when asked (OBSERVE_AUTO_INVESTIGATIONS=0)' : ` budget ${limit} investigation${limit === 1 ? '' : 's'} on their own per ${periodMs / 60_000} min (OBSERVE_AUTO_INVESTIGATIONS)`);
|
|
236
248
|
const { runner: checks, watch, line: checksLine } = await loadChecks(args.root, deps.env, args.nextArgs, detector !== undefined);
|
|
237
249
|
if (checksLine)
|
|
238
250
|
lines.push(checksLine);
|
|
@@ -240,7 +252,7 @@ async function start(args, deps) {
|
|
|
240
252
|
lines.push(' demo "shop" scenario: v1 → v2 regression, inventory errors, catalog N+1, an error new in v2 — live v2 traffic every 2 s');
|
|
241
253
|
const line = lines.join('\n');
|
|
242
254
|
try {
|
|
243
|
-
const collector = await startCollector({ port: args.port, host: args.host, apiKey: args.apiKey, uiPassword: args.uiPassword, storage, chat, detector, checks: checks && { list: () => checks.list(), isCheckTrace: (traceId) => checks.isCheckTrace(traceId), ...(watch ? { anomalies: () => watch.take(), rule: watch.rule } : {}) } });
|
|
255
|
+
const collector = await startCollector({ port: args.port, host: args.host, apiKey: args.apiKey, uiPassword: args.uiPassword, storage, chat, detector, budget, checks: checks && { list: () => checks.list(), isCheckTrace: (traceId) => checks.isCheckTrace(traceId), ...(watch ? { anomalies: () => watch.take(), rule: watch.rule } : {}) } });
|
|
244
256
|
checks?.start();
|
|
245
257
|
const stopDemo = args.demo ? startLiveDemo({ storage, detector }) : undefined;
|
|
246
258
|
return {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Anomaly } from '../debug/detector.js';
|
|
2
|
+
export interface BudgetLimit {
|
|
3
|
+
/** Investigations per period; 0 = the observer never starts one on its own. */
|
|
4
|
+
limit: number;
|
|
5
|
+
periodMs: number;
|
|
6
|
+
}
|
|
7
|
+
export declare const DEFAULT_BUDGET: BudgetLimit;
|
|
8
|
+
/** Investigations waiting behind the running one; more would be stale by the time their turn comes. */
|
|
9
|
+
export declare const MAX_WAITING = 2;
|
|
10
|
+
export interface BudgetState extends BudgetLimit {
|
|
11
|
+
/** Started within the last period. */
|
|
12
|
+
used: number;
|
|
13
|
+
/** When the next one may start, if all are used now; null while there is room (or with a limit of 0: never). */
|
|
14
|
+
nextAtMs: number | null;
|
|
15
|
+
/** `used`, per incident type. */
|
|
16
|
+
byType: Partial<Record<Anomaly['type'], number>>;
|
|
17
|
+
}
|
|
18
|
+
export declare class InvestigationBudget {
|
|
19
|
+
private starts;
|
|
20
|
+
readonly options: BudgetLimit;
|
|
21
|
+
constructor(options?: BudgetLimit);
|
|
22
|
+
/** Takes one for an anomaly of this type; false when the period's budget is spent. */
|
|
23
|
+
take(type: Anomaly['type'], nowMs: number): boolean;
|
|
24
|
+
state(nowMs: number): BudgetState;
|
|
25
|
+
private prune;
|
|
26
|
+
}
|
|
27
|
+
/** OBSERVE_AUTO_INVESTIGATIONS: `5` (per 60 min), `5/30m`, `5/2h`, `0` (off). Unset → the default. */
|
|
28
|
+
export declare function parseBudget(value: string | undefined): BudgetLimit;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export const DEFAULT_BUDGET = { limit: 5, periodMs: 60 * 60_000 };
|
|
2
|
+
/** Investigations waiting behind the running one; more would be stale by the time their turn comes. */
|
|
3
|
+
export const MAX_WAITING = 2;
|
|
4
|
+
export class InvestigationBudget {
|
|
5
|
+
starts = [];
|
|
6
|
+
options;
|
|
7
|
+
constructor(options = DEFAULT_BUDGET) {
|
|
8
|
+
this.options = options;
|
|
9
|
+
}
|
|
10
|
+
/** Takes one for an anomaly of this type; false when the period's budget is spent. */
|
|
11
|
+
take(type, nowMs) {
|
|
12
|
+
this.prune(nowMs);
|
|
13
|
+
if (this.starts.length >= this.options.limit)
|
|
14
|
+
return false;
|
|
15
|
+
this.starts.push({ atMs: nowMs, type });
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
state(nowMs) {
|
|
19
|
+
this.prune(nowMs);
|
|
20
|
+
const byType = {};
|
|
21
|
+
for (const s of this.starts)
|
|
22
|
+
byType[s.type] = (byType[s.type] ?? 0) + 1;
|
|
23
|
+
const full = this.starts.length > 0 && this.starts.length >= this.options.limit;
|
|
24
|
+
return { ...this.options, used: this.starts.length, nextAtMs: full ? Math.min(...this.starts.map((s) => s.atMs)) + this.options.periodMs : null, byType };
|
|
25
|
+
}
|
|
26
|
+
// A clock set back (NTP, a laptop waking up) must not keep a slot taken for longer: a negative age frees it.
|
|
27
|
+
prune(nowMs) {
|
|
28
|
+
this.starts = this.starts.filter((s) => nowMs >= s.atMs && nowMs - s.atMs < this.options.periodMs);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/** OBSERVE_AUTO_INVESTIGATIONS: `5` (per 60 min), `5/30m`, `5/2h`, `0` (off). Unset → the default. */
|
|
32
|
+
export function parseBudget(value) {
|
|
33
|
+
if (value === undefined || value.trim() === '')
|
|
34
|
+
return DEFAULT_BUDGET;
|
|
35
|
+
const match = /^(\d+)(?:\/(\d+)(m|h))?$/.exec(value.trim());
|
|
36
|
+
const periodMs = match?.[2] === undefined ? DEFAULT_BUDGET.periodMs : Number(match[2]) * (match[3] === 'h' ? 3_600_000 : 60_000);
|
|
37
|
+
if (!match || periodMs === 0)
|
|
38
|
+
throw new Error(`OBSERVE_AUTO_INVESTIGATIONS="${value}": expected a number per period, e.g. 5, 5/30m or 5/2h (0 turns them off)`);
|
|
39
|
+
return { limit: Number(match[1]), periodMs };
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=budget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"budget.js","sourceRoot":"","sources":["../../src/collector/budget.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ChatEvent } from './chat.js';
|
|
2
|
+
export interface StoredTurn {
|
|
3
|
+
id: string;
|
|
4
|
+
/** The question asked; absent for a turn the observer started — its first event is the anomaly. */
|
|
5
|
+
question?: string;
|
|
6
|
+
proactive: boolean;
|
|
7
|
+
startedAtMs: number;
|
|
8
|
+
events: ChatEvent[];
|
|
9
|
+
/** False once it ended — with a report, an error, a stop, or simply because nobody was left to answer. */
|
|
10
|
+
running: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface ChatHistoryOptions {
|
|
13
|
+
/** Turns kept; the oldest go first. Default 100. */
|
|
14
|
+
maxTurns?: number;
|
|
15
|
+
/** Events kept per turn (steps of a long investigation). Default 500. */
|
|
16
|
+
maxEvents?: number;
|
|
17
|
+
}
|
|
18
|
+
export declare class ChatHistory {
|
|
19
|
+
private readonly turns;
|
|
20
|
+
private readonly maxTurns;
|
|
21
|
+
private readonly maxEvents;
|
|
22
|
+
constructor(options?: ChatHistoryOptions);
|
|
23
|
+
/** Begins a turn. An id already known is left as it is: the same question is not recorded twice. */
|
|
24
|
+
start(turn: Pick<StoredTurn, 'id' | 'proactive' | 'startedAtMs'> & {
|
|
25
|
+
question?: string;
|
|
26
|
+
running?: boolean;
|
|
27
|
+
}): void;
|
|
28
|
+
/** Adds an event to a turn; one that ends the turn stops it. An unknown (already dropped) turn is ignored. */
|
|
29
|
+
add(id: string, event: ChatEvent): void;
|
|
30
|
+
/** The turn is over, whatever its last event was (the asker's connection closed, the handler returned). */
|
|
31
|
+
end(id: string): void;
|
|
32
|
+
has(id: string): boolean;
|
|
33
|
+
/** Oldest first. Copies: what the caller does with them does not reach the history. */
|
|
34
|
+
list(): StoredTurn[];
|
|
35
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
const isEnd = (event) => event.type === 'report' || event.type === 'error' || event.type === 'stopped' || event.type === 'noted';
|
|
2
|
+
export class ChatHistory {
|
|
3
|
+
turns = new Map();
|
|
4
|
+
maxTurns;
|
|
5
|
+
maxEvents;
|
|
6
|
+
constructor(options = {}) {
|
|
7
|
+
this.maxTurns = Math.max(1, options.maxTurns ?? 100);
|
|
8
|
+
this.maxEvents = Math.max(1, options.maxEvents ?? 500);
|
|
9
|
+
}
|
|
10
|
+
/** Begins a turn. An id already known is left as it is: the same question is not recorded twice. */
|
|
11
|
+
start(turn) {
|
|
12
|
+
if (this.turns.has(turn.id))
|
|
13
|
+
return;
|
|
14
|
+
this.turns.set(turn.id, { id: turn.id, ...(turn.question === undefined ? {} : { question: turn.question }), proactive: turn.proactive, startedAtMs: turn.startedAtMs, events: [], running: turn.running ?? true });
|
|
15
|
+
while (this.turns.size > this.maxTurns)
|
|
16
|
+
this.turns.delete(this.turns.keys().next().value);
|
|
17
|
+
}
|
|
18
|
+
/** Adds an event to a turn; one that ends the turn stops it. An unknown (already dropped) turn is ignored. */
|
|
19
|
+
add(id, event) {
|
|
20
|
+
const turn = this.turns.get(id);
|
|
21
|
+
if (!turn)
|
|
22
|
+
return;
|
|
23
|
+
// The end of a turn is never the event to drop: a long investigation loses its middle steps, not its report.
|
|
24
|
+
if (turn.events.length >= this.maxEvents && !isEnd(event))
|
|
25
|
+
return;
|
|
26
|
+
turn.events.push(event);
|
|
27
|
+
if (isEnd(event))
|
|
28
|
+
turn.running = false;
|
|
29
|
+
}
|
|
30
|
+
/** The turn is over, whatever its last event was (the asker's connection closed, the handler returned). */
|
|
31
|
+
end(id) {
|
|
32
|
+
const turn = this.turns.get(id);
|
|
33
|
+
if (turn)
|
|
34
|
+
turn.running = false;
|
|
35
|
+
}
|
|
36
|
+
has(id) {
|
|
37
|
+
return this.turns.has(id);
|
|
38
|
+
}
|
|
39
|
+
/** Oldest first. Copies: what the caller does with them does not reach the history. */
|
|
40
|
+
list() {
|
|
41
|
+
return [...this.turns.values()].map((turn) => ({ ...turn, events: [...turn.events] }));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=chat-history.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-history.js","sourceRoot":"","sources":["../../src/collector/chat-history.ts"],"names":[],"mappings":"AAuBA,MAAM,KAAK,GAAG,CAAC,KAAgB,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,CAAA;AAE3I,MAAM,OAAO,WAAW;IACL,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAA;IACrC,QAAQ,CAAQ;IAChB,SAAS,CAAQ;IAElC,YAAY,OAAO,GAAuB,EAAE;QAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAA;QACpD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,IAAI,GAAG,CAAC,CAAA;IACxD,CAAC;IAED,oGAAoG;IACpG,KAAK,CAAC,IAAqG;QACzG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,OAAM;QACnC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC,CAAA;QAClN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAe,CAAC,CAAA;IACrG,CAAC;IAED,8GAA8G;IAC9G,GAAG,CAAC,EAAU,EAAE,KAAgB;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC/B,IAAI,CAAC,IAAI;YAAE,OAAM;QACjB,6GAA6G;QAC7G,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,OAAM;QACjE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACvB,IAAI,KAAK,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;IACxC,CAAC;IAED,2GAA2G;IAC3G,GAAG,CAAC,EAAU;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC/B,IAAI,IAAI;YAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;IAChC,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC3B,CAAC;IAED,uFAAuF;IACvF,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;IACxF,CAAC;CACF"}
|
package/dist/collector/chat.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Anomaly } from '../debug/detector.js';
|
|
2
|
+
import type { BudgetState } from './budget.js';
|
|
2
3
|
export interface VersionStats {
|
|
3
4
|
version: string;
|
|
4
5
|
count: number;
|
|
@@ -44,6 +45,17 @@ export type EvidenceCard = {
|
|
|
44
45
|
kind: 'silent';
|
|
45
46
|
service: string;
|
|
46
47
|
lastSpanSecondsAgo: number;
|
|
48
|
+
}
|
|
49
|
+
/** The app's own checks of its answers, per deployed version: where wrong data started and how often it happens. */
|
|
50
|
+
| {
|
|
51
|
+
kind: 'wrong-data';
|
|
52
|
+
service: string;
|
|
53
|
+
operation: string;
|
|
54
|
+
versions: {
|
|
55
|
+
version: string;
|
|
56
|
+
checked: number;
|
|
57
|
+
failed: number;
|
|
58
|
+
}[];
|
|
47
59
|
} | {
|
|
48
60
|
kind: 'traces';
|
|
49
61
|
label: string;
|
|
@@ -87,6 +99,15 @@ export type ChatEvent = {
|
|
|
87
99
|
type: 'error';
|
|
88
100
|
message: string;
|
|
89
101
|
closed?: true;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* The observer did not investigate this anomaly on its own: its budget for the period is spent (`budget`), or enough
|
|
105
|
+
* investigations are already waiting (`queue`). Ends the turn; somebody can still ask about it.
|
|
106
|
+
*/
|
|
107
|
+
| {
|
|
108
|
+
type: 'noted';
|
|
109
|
+
reason: 'budget' | 'queue';
|
|
110
|
+
budget: BudgetState;
|
|
90
111
|
};
|
|
91
112
|
export interface ChatRequest {
|
|
92
113
|
question: string;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type Anomaly, type AnomalyDetector } from '../debug/detector.js';
|
|
2
2
|
import type { ChatHandler } from './chat.js';
|
|
3
|
+
import { InvestigationBudget } from './budget.js';
|
|
3
4
|
import type { CheckRunner } from '../checks/runner.js';
|
|
4
5
|
import { type CheckRule } from '../checks/types.js';
|
|
5
6
|
import type { StorageAdapter } from './types.js';
|
|
@@ -28,6 +29,8 @@ export interface CollectorOptions {
|
|
|
28
29
|
detector?: Pick<AnomalyDetector, 'observe' | 'check'>;
|
|
29
30
|
/** How often the detector window is checked. Default 5 s. */
|
|
30
31
|
detectorIntervalMs?: number;
|
|
32
|
+
/** How many investigations the observer starts on its own per period. Default 5 per 60 min. */
|
|
33
|
+
budget?: InvestigationBudget;
|
|
31
34
|
/** Scheduled checks (observe.checks.ts) whose results /api/checks reports; absent → none configured. */
|
|
32
35
|
checks?: Pick<CheckRunner, 'list'> & Partial<Pick<CheckRunner, 'isCheckTrace'>> & {
|
|
33
36
|
anomalies?: () => Anomaly[]; /** The thresholds behind `anomalies`, for the Checks page. */
|