@mmnto/cli 1.115.0 → 1.116.0
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/dist/commands/doctor-compliance.test.js +17 -0
- package/dist/commands/doctor-compliance.test.js.map +1 -1
- package/dist/commands/doctor-seat-identity.d.ts +18 -2
- package/dist/commands/doctor-seat-identity.d.ts.map +1 -1
- package/dist/commands/doctor-seat-identity.js +77 -2
- package/dist/commands/doctor-seat-identity.js.map +1 -1
- package/dist/commands/doctor-seat-identity.test.js +180 -20
- package/dist/commands/doctor-seat-identity.test.js.map +1 -1
- package/dist/commands/gemini-sessionstart-contract.test.js +15 -0
- package/dist/commands/gemini-sessionstart-contract.test.js.map +1 -1
- package/dist/commands/init-templates.d.ts +4 -4
- package/dist/commands/init-templates.d.ts.map +1 -1
- package/dist/commands/init-templates.js +12 -1
- package/dist/commands/init-templates.js.map +1 -1
- package/dist/commands/retrospect.d.ts.map +1 -1
- package/dist/commands/retrospect.js +7 -3
- package/dist/commands/retrospect.js.map +1 -1
- package/dist/commands/sessionstart-manifest-contract.test.js +10 -0
- package/dist/commands/sessionstart-manifest-contract.test.js.map +1 -1
- package/dist/commands/triage-pr.d.ts.map +1 -1
- package/dist/commands/triage-pr.js +2 -0
- package/dist/commands/triage-pr.js.map +1 -1
- package/dist/parsers/bot-review-parser.d.ts +8 -1
- package/dist/parsers/bot-review-parser.d.ts.map +1 -1
- package/dist/parsers/bot-review-parser.js +21 -1
- package/dist/parsers/bot-review-parser.js.map +1 -1
- package/dist/parsers/bot-review-parser.test.js +23 -0
- package/dist/parsers/bot-review-parser.test.js.map +1 -1
- package/dist/parsers/triage-severity-mapper.d.ts.map +1 -1
- package/dist/parsers/triage-severity-mapper.js +32 -1
- package/dist/parsers/triage-severity-mapper.js.map +1 -1
- package/dist/parsers/triage-severity-mapper.test.js +57 -0
- package/dist/parsers/triage-severity-mapper.test.js.map +1 -1
- package/package.json +2 -2
|
@@ -37,6 +37,23 @@ describe('parseSearchLog', () => {
|
|
|
37
37
|
expect(result.entries[0].agent_source).toBe('claude');
|
|
38
38
|
expect(result.malformedCount).toBe(0);
|
|
39
39
|
});
|
|
40
|
+
it('tolerates the #2629 provenance/conflict fields on a row — invariant 5, compliance-parser half', () => {
|
|
41
|
+
const sensorRow = JSON.stringify({
|
|
42
|
+
timestamp: iso(BASE),
|
|
43
|
+
agent_source: 'totem-claude',
|
|
44
|
+
agent_source_provenance: 'env',
|
|
45
|
+
attribution_conflict: {
|
|
46
|
+
env_seat: 'totem-gemini',
|
|
47
|
+
minting_seat: 'totem-claude',
|
|
48
|
+
pointer_session_id: '550e8400-e29b-41d4-a716-446655440000',
|
|
49
|
+
},
|
|
50
|
+
attribution_probe_error: 'probe failed',
|
|
51
|
+
});
|
|
52
|
+
const result = parseSearchLog(sensorRow);
|
|
53
|
+
expect(result.malformedCount).toBe(0);
|
|
54
|
+
expect(result.entries).toHaveLength(1);
|
|
55
|
+
expect(result.entries[0].agent_source).toBe('totem-claude');
|
|
56
|
+
});
|
|
40
57
|
it('skips a corrupt JSONL line with a warn count, still parses the rest', () => {
|
|
41
58
|
const good1 = JSON.stringify({ timestamp: iso(BASE), agent_source: 'claude' });
|
|
42
59
|
const good2 = JSON.stringify({ timestamp: iso(BASE + H), agent_source: 'gemini' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-compliance.test.js","sourceRoot":"","sources":["../../src/commands/doctor-compliance.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor-compliance.test.js","sourceRoot":"","sources":["../../src/commands/doctor-compliance.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* exemption is a property of the row (`doctor.ts` DiagnosticResult), not of the
|
|
7
7
|
* tier a later change might widen.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
9
|
+
* Four post-hoc contradiction arms are sensed:
|
|
10
10
|
*
|
|
11
11
|
* (a) `from-mismatch` — an outbox dispatch whose frontmatter `from:` names a
|
|
12
12
|
* DIFFERENT seat than the directory it sits in. The dir is the
|
|
@@ -18,6 +18,13 @@
|
|
|
18
18
|
* observed behaviour.
|
|
19
19
|
* (c) `env-names-excluded-seat` / `env-names-unknown-seat` — `TOTEM_SELF_AGENT`
|
|
20
20
|
* naming a non-active seat, or naming no seat directory in this repo.
|
|
21
|
+
* (d) `env-ambient-scope` (win32 only; mmnto-ai/totem#2629) —
|
|
22
|
+
* `TOTEM_SELF_AGENT` present at a PERSISTENT registry scope (user or
|
|
23
|
+
* machine). A per-SEAT identity at either scope is inherited by every
|
|
24
|
+
* seat's processes on the machine — the #2629 cross-seat fallthrough
|
|
25
|
+
* root cause. Doctor-time only, never the stamp hot path; the stamp-seam
|
|
26
|
+
* counterpart (provenance + fail-closed conflict) lives in core's
|
|
27
|
+
* `senseAgentAttribution`.
|
|
21
28
|
*
|
|
22
29
|
* A corrupt marker degrades to `active` by core's contract
|
|
23
30
|
* (`seat-lifecycle.ts` — fail open on visibility), so (b) is NEVER evaluated
|
|
@@ -51,7 +58,7 @@ export declare const OUTBOX_SCAN_LIMIT = 200;
|
|
|
51
58
|
*/
|
|
52
59
|
export declare const SEAT_IDENTITY_HONEST_LIMIT = "honest limit: a CONSISTENT fake \u2014 writing from the wrong seat dir with a matching forged `from:`, the agy shape \u2014 is NOT detectable post-hoc, which is why full write-time binding was judged infeasible for v1 and this doctor tier is the chartered fallback; this check does not discharge the 2026-06-18 seat-identity precondition.";
|
|
53
60
|
/** The contradiction classes this row can report. */
|
|
54
|
-
export type SeatIdentityFindingClass = 'from-mismatch' | 'writing-while-excluded' | 'env-names-excluded-seat' | 'env-names-unknown-seat' | 'unreadable-marker' | 'outbox-unreadable';
|
|
61
|
+
export type SeatIdentityFindingClass = 'from-mismatch' | 'writing-while-excluded' | 'env-names-excluded-seat' | 'env-names-unknown-seat' | 'env-ambient-scope' | 'registry-scope-unreadable' | 'unreadable-marker' | 'outbox-unreadable';
|
|
55
62
|
export interface SeatIdentitySeams {
|
|
56
63
|
/**
|
|
57
64
|
* Test seam — production reads `process.env`. Injected so the env arm is
|
|
@@ -61,6 +68,15 @@ export interface SeatIdentitySeams {
|
|
|
61
68
|
env?: Record<string, string | undefined>;
|
|
62
69
|
/** Test seam — overrides {@link OUTBOX_SCAN_LIMIT} so truncation is testable. */
|
|
63
70
|
outboxScanLimit?: number;
|
|
71
|
+
/** Test seam — production reads `process.platform`. Arm (d) is win32-only. */
|
|
72
|
+
platform?: NodeJS.Platform;
|
|
73
|
+
/**
|
|
74
|
+
* Test seam — production spawns `reg query <hive> /v TOTEM_SELF_AGENT` via
|
|
75
|
+
* core's `safeExec`. Implementations keep the `reg` contract this arm reads
|
|
76
|
+
* through: return stdout on a hit; throw with `.status === 1` when the value
|
|
77
|
+
* is absent at that hive (the healthy state).
|
|
78
|
+
*/
|
|
79
|
+
regQuery?: (hive: string) => string;
|
|
64
80
|
}
|
|
65
81
|
/**
|
|
66
82
|
* Sense seat-identity binding across every registered seat dir. Report-only:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-seat-identity.d.ts","sourceRoot":"","sources":["../../src/commands/doctor-seat-identity.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"doctor-seat-identity.d.ts","sourceRoot":"","sources":["../../src/commands/doctor-seat-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAOH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,yDAAyD;AACzD,eAAO,MAAM,wBAAwB,kBAAkB,CAAC;AAExD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,uVACqS,CAAC;AAwC7U,qDAAqD;AACrD,MAAM,MAAM,wBAAwB,GAChC,eAAe,GACf,wBAAwB,GACxB,yBAAyB,GACzB,wBAAwB,GACxB,mBAAmB,GACnB,2BAA2B,GAC3B,mBAAmB,GACnB,mBAAmB,CAAC;AAqBxB,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACrC;AAqHD;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,KAAK,GAAE,iBAAsB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAiP3B"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* exemption is a property of the row (`doctor.ts` DiagnosticResult), not of the
|
|
7
7
|
* tier a later change might widen.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
9
|
+
* Four post-hoc contradiction arms are sensed:
|
|
10
10
|
*
|
|
11
11
|
* (a) `from-mismatch` — an outbox dispatch whose frontmatter `from:` names a
|
|
12
12
|
* DIFFERENT seat than the directory it sits in. The dir is the
|
|
@@ -18,6 +18,13 @@
|
|
|
18
18
|
* observed behaviour.
|
|
19
19
|
* (c) `env-names-excluded-seat` / `env-names-unknown-seat` — `TOTEM_SELF_AGENT`
|
|
20
20
|
* naming a non-active seat, or naming no seat directory in this repo.
|
|
21
|
+
* (d) `env-ambient-scope` (win32 only; mmnto-ai/totem#2629) —
|
|
22
|
+
* `TOTEM_SELF_AGENT` present at a PERSISTENT registry scope (user or
|
|
23
|
+
* machine). A per-SEAT identity at either scope is inherited by every
|
|
24
|
+
* seat's processes on the machine — the #2629 cross-seat fallthrough
|
|
25
|
+
* root cause. Doctor-time only, never the stamp hot path; the stamp-seam
|
|
26
|
+
* counterpart (provenance + fail-closed conflict) lives in core's
|
|
27
|
+
* `senseAgentAttribution`.
|
|
21
28
|
*
|
|
22
29
|
* A corrupt marker degrades to `active` by core's contract
|
|
23
30
|
* (`seat-lifecycle.ts` — fail open on visibility), so (b) is NEVER evaluated
|
|
@@ -80,6 +87,18 @@ const CLOSING_DELIMITER = /\r?\n---[ \t]*(?:\r?\n|$)/;
|
|
|
80
87
|
const FROM_FIELD = /^from:\s*(.+)$/im;
|
|
81
88
|
/** The stamped-dispatch basename prefix: `YYYY-MM-DDTHHMMZ-`. */
|
|
82
89
|
const STAMPED_BASENAME = /^(\d{4})-(\d{2})-(\d{2})T(\d{2})(\d{2})Z-/;
|
|
90
|
+
/**
|
|
91
|
+
* The two persistent Windows env scopes arm (d) probes (mmnto-ai/totem#2629).
|
|
92
|
+
* Launch-shell env is NOT in the registry, so a hit at either hive is ambient
|
|
93
|
+
* by definition — no value comparison needed to make it a finding.
|
|
94
|
+
*/
|
|
95
|
+
const REGISTRY_SCOPES = [
|
|
96
|
+
{ scope: 'user', hive: 'HKCU\\Environment' },
|
|
97
|
+
{
|
|
98
|
+
scope: 'machine',
|
|
99
|
+
hive: 'HKLM\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment',
|
|
100
|
+
},
|
|
101
|
+
];
|
|
83
102
|
/** One-line, ANSI-stripped, length-capped rendering of an off-the-wire token. */
|
|
84
103
|
function capToken(value) {
|
|
85
104
|
return value.length > MAX_TOKEN_CHARS ? `${value.slice(0, MAX_TOKEN_CHARS)}…` : value;
|
|
@@ -202,7 +221,7 @@ export async function checkSeatIdentity(cwd, seams = {}) {
|
|
|
202
221
|
.trim();
|
|
203
222
|
// totem-context: a scan failure is reported as a warn row — the seat-identity sensor must never take `totem doctor` down with it (report-only, Tenet 13; the checkEstate precedent).
|
|
204
223
|
try {
|
|
205
|
-
const { deriveSeatStatuses, resolveTotemRepoRootSync, sanitizeForTerminal } = await import('@mmnto/totem');
|
|
224
|
+
const { deriveSeatStatuses, resolveTotemRepoRootSync, safeExec, sanitizeForTerminal } = await import('@mmnto/totem');
|
|
206
225
|
sanitize = sanitizeForTerminal;
|
|
207
226
|
// The shared walk-start-is-not-the-root contract (`pollMail` / `eclGc` /
|
|
208
227
|
// `eclCompact`, mmnto-ai/totem#2312): a doctor run from a subdirectory must
|
|
@@ -316,6 +335,62 @@ export async function checkSeatIdentity(cwd, seams = {}) {
|
|
|
316
335
|
}
|
|
317
336
|
}
|
|
318
337
|
}
|
|
338
|
+
// Arm (d) — the win32 registry scope-sense (mmnto-ai/totem#2629).
|
|
339
|
+
// Doctor-time only: two `reg query` spawns per explicit doctor run, never
|
|
340
|
+
// the stamp hot path. A NON-BLANK value at either persistent scope is the
|
|
341
|
+
// finding — user/machine scope turns a per-seat identity into a
|
|
342
|
+
// per-machine stamp inherited by every seat's processes. A key whose value
|
|
343
|
+
// is BLANK is the post-remediation live shape (`reg` still exits 0 when a
|
|
344
|
+
// clear left the key behind); a blank stamps nothing downstream
|
|
345
|
+
// (resolveQbdAgentSource normalizes '' to undefined), so it is inert — no
|
|
346
|
+
// contradiction, no finding.
|
|
347
|
+
const platform = seams.platform ?? process.platform;
|
|
348
|
+
if (platform === 'win32') {
|
|
349
|
+
const regQuery = seams.regQuery ??
|
|
350
|
+
((hive) => safeExec('reg', ['query', hive, '/v', 'TOTEM_SELF_AGENT']));
|
|
351
|
+
for (const { scope, hive } of REGISTRY_SCOPES) {
|
|
352
|
+
let output;
|
|
353
|
+
// totem-context: intentional degradation — `reg query` exits 1 when the value is absent at that hive (the healthy state, silent by contract); any OTHER failure is a scan hole this row DISCLOSES as a registry-scope-unreadable finding rather than a clean line it never verified.
|
|
354
|
+
try {
|
|
355
|
+
output = regQuery(hive);
|
|
356
|
+
// totem-context: intentional degradation — see directive above the try; dual placement so the rule fires on either the catch-keyword line or the catch-body line.
|
|
357
|
+
}
|
|
358
|
+
catch (err) {
|
|
359
|
+
const status = err.status;
|
|
360
|
+
if (status !== 1) {
|
|
361
|
+
findings.push({
|
|
362
|
+
seat: `${scope}-scope`,
|
|
363
|
+
cls: 'registry-scope-unreadable',
|
|
364
|
+
evidence: render(`${hive} probe failed: ${messageOf(err)}`),
|
|
365
|
+
});
|
|
366
|
+
}
|
|
367
|
+
continue;
|
|
368
|
+
}
|
|
369
|
+
// Rest-of-line capture, deliberately possibly-empty: the blank-value
|
|
370
|
+
// shape must parse (and be skipped as inert) rather than degrade to
|
|
371
|
+
// "unparsed". An exit-0 output whose shape resists this parse entirely
|
|
372
|
+
// stays a finding — present but unprovably inert: disclose, not guess.
|
|
373
|
+
const valueMatch = /TOTEM_SELF_AGENT\s+REG_\w+[ \t]*(.*)/i.exec(output);
|
|
374
|
+
if (valueMatch !== null && valueMatch[1].trim().length === 0) {
|
|
375
|
+
// Inert ONLY when nothing follows the match either: a value whose
|
|
376
|
+
// data begins past a line break (programmatically-set CR/LF-leading
|
|
377
|
+
// values) captures '' here yet still stamps downstream — that shape
|
|
378
|
+
// must stay a finding, not vanish into the blank-skip (fold re-arm
|
|
379
|
+
// leg catch on this PR).
|
|
380
|
+
const rest = output.slice(valueMatch.index + valueMatch[0].length);
|
|
381
|
+
if (rest.trim().length === 0)
|
|
382
|
+
continue;
|
|
383
|
+
}
|
|
384
|
+
const value = valueMatch === null || valueMatch[1].trim().length === 0
|
|
385
|
+
? '(value present, unparsed)'
|
|
386
|
+
: valueMatch[1];
|
|
387
|
+
findings.push({
|
|
388
|
+
seat: capToken(render(value)),
|
|
389
|
+
cls: 'env-ambient-scope',
|
|
390
|
+
evidence: `TOTEM_SELF_AGENT is set at ${scope} scope (${hive}) — a per-seat identity must be launch-shell-scoped, never user/machine scope (mmnto-ai/totem#2629)`,
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
}
|
|
319
394
|
const parts = [`seats sensed: ${statuses.length}`];
|
|
320
395
|
parts.push(findings.length === 0
|
|
321
396
|
? 'no identity contradictions sensed'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-seat-identity.js","sourceRoot":"","sources":["../../src/commands/doctor-seat-identity.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor-seat-identity.js","sourceRoot":"","sources":["../../src/commands/doctor-seat-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAMlC,yDAAyD;AACzD,MAAM,CAAC,MAAM,wBAAwB,GAAG,eAAe,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAErC;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GACrC,0UAA0U,CAAC;AAE7U;;;;;GAKG;AACH,MAAM,eAAe,GAAG,MAAM,CAAC;AAE/B,gFAAgF;AAChF,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B,oFAAoF;AACpF,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,oEAAoE;AACpE,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAEjF,MAAM,SAAS,GAAG,QAAQ,CAAC;AAC3B,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC;AAE5B,iEAAiE;AACjE,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAEjC;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,2BAA2B,CAAC;AAEtD,sFAAsF;AACtF,MAAM,UAAU,GAAG,kBAAkB,CAAC;AAEtC,iEAAiE;AACjE,MAAM,gBAAgB,GAAG,2CAA2C,CAAC;AAarE;;;;GAIG;AACH,MAAM,eAAe,GAAG;IACtB,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE;IAC5C;QACE,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,wEAAwE;KAC/E;CACO,CAAC;AA4BX,iFAAiF;AACjF,SAAS,QAAQ,CAAC,KAAa;IAC7B,OAAO,KAAK,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AACxF,CAAC;AAED,mEAAmE;AACnE,SAAS,SAAS,CAAC,GAAY;IAC7B,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,iDAAiD;AACjD,SAAS,OAAO,CAAC,GAAY;IAC3B,OAAO,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,IAAI,GAAG;QAC7D,CAAC,CAAE,GAA6B,CAAC,IAAI;QACrC,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,KAAa;IAClC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACvE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,OAAe;IACtC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAAE,OAAO,IAAI,CAAC;IACzD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,QAAgB;IACxC,MAAM,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACtC,CAAC;AAYD,SAAS,UAAU,CAAC,SAAiB,EAAE,KAAa;IAClD,IAAI,OAAoB,CAAC;IACzB,iUAAiU;IACjU,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,kKAAkK;IACpK,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,IAAI,KAAK,SAAS,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzD,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACjC,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9D,CAAC;IAED,MAAM,GAAG,GAAG,OAAO;SAChB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC/D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;SAC1B,IAAI,EAAE,CAAC;IACV,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;AAChG,CAAC;AAED,8DAA8D;AAC9D,SAAS,QAAQ,CAAC,QAAgB;IAChC,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;QAC9D,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;IAC7C,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;AACH,CAAC;AAED,qFAAqF;AACrF,SAAS,YAAY,CAAC,KAAe;IACnC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnF,OAAO,GAAG,KAAK,CAAC,MAAM,aAAa,MAAM,EAAE,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAW,EACX,QAA2B,EAAE;IAE7B,MAAM,IAAI,GAAG,wBAAwB,CAAC;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,eAAe,IAAI,iBAAiB,CAAC;IACzD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IAErC,4EAA4E;IAC5E,qEAAqE;IACrE,8EAA8E;IAC9E,8EAA8E;IAC9E,4EAA4E;IAC5E,6EAA6E;IAC7E,IAAI,QAAQ,GAA6B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;IACxD,MAAM,MAAM,GAAG,CAAC,IAAY,EAAU,EAAE,CACtC,QAAQ,CAAC,IAAI,CAAC;SACX,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC;SAC1B,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,IAAI,EAAE,CAAC;IAEZ,qLAAqL;IACrL,IAAI,CAAC;QACH,MAAM,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,GACnF,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QAC/B,QAAQ,GAAG,mBAAmB,CAAC;QAE/B,yEAAyE;QACzE,4EAA4E;QAC5E,mEAAmE;QACnE,iCAAiC;QACjC,MAAM,QAAQ,GAAG,wBAAwB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAiB,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAqB,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAE5F,MAAM,QAAQ,GAAc,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,yEAAyE;YACzE,0EAA0E;YAC1E,uEAAuE;YACvE,oBAAoB;YACpB,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACjC,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,GAAG,EAAE,mBAAmB;oBACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;iBACjC,CAAC,CAAC;YACL,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC7F,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC7C,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACtC,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,GAAG,EAAE,mBAAmB;oBACxB,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;iBACtC,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,IAAI,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACzC,WAAW,CAAC,IAAI,CACd,GAAG,MAAM,CAAC,IAAI,YAAY,OAAO,CAAC,KAAK,CAAC,MAAM,OAAO,OAAO,CAAC,KAAK,yBAAyB,CAC5F,CAAC;YACJ,CAAC;YAED,yEAAyE;YACzE,0EAA0E;YAC1E,sDAAsD;YACtD,MAAM,QAAQ,GACZ,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,WAAW,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;YAC7F,MAAM,OAAO,GACX,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YAEjF,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,MAAM,SAAS,GAAa,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAa,EAAE,CAAC;YAEhC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC3B,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBACvC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,GAAG,OAAO,EAAE,CAAC;wBAC1C,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC/B,CAAC;gBACH,CAAC;gBAED,IAAI,IAAY,CAAC;gBACjB,qQAAqQ;gBACrQ,IAAI,CAAC;oBACH,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;oBAC5C,kKAAkK;gBACpK,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC/D,SAAS;gBACX,CAAC;gBAED,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;oBAClD,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC;YAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,GAAG,EAAE,eAAe;oBACpB,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC;iBACnC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,GAAG,EAAE,wBAAwB;oBAC7B,QAAQ,EAAE,GAAG,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC,MAAM,YAAY,CAAC,SAAS,CAAC,mBAAmB;iBACrH,CAAC,CAAC;YACL,CAAC;YACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,GAAG,EAAE,mBAAmB;oBACxB,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC;iBACnC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,4EAA4E;QAC5E,wEAAwE;QACxE,wBAAwB;QACxB,MAAM,MAAM,GAAG,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACvC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3D,KAAK,MAAM,KAAK,IAAI,MAAM;iBACvB,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;iBAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACjC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAC7B,GAAG,EAAE,wBAAwB;wBAC7B,QAAQ,EAAE,yDAAyD,SAAS,IAAI,iBAAiB,gBAAgB;qBAClH,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACnE,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,GAAG,EAAE,yBAAyB;wBAC9B,QAAQ,EAAE,4BAA4B,MAAM,CAAC,KAAK,gBAAgB,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC,GAAG;qBACvG,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,kEAAkE;QAClE,0EAA0E;QAC1E,0EAA0E;QAC1E,gEAAgE;QAChE,2EAA2E;QAC3E,0EAA0E;QAC1E,gEAAgE;QAChE,0EAA0E;QAC1E,6BAA6B;QAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;QACpD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,MAAM,QAAQ,GACZ,KAAK,CAAC,QAAQ;gBACd,CAAC,CAAC,IAAY,EAAU,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACzF,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,eAAe,EAAE,CAAC;gBAC9C,IAAI,MAAc,CAAC;gBACnB,qRAAqR;gBACrR,IAAI,CAAC;oBACH,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACxB,kKAAkK;gBACpK,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,MAAM,GAAI,GAA0C,CAAC,MAAM,CAAC;oBAClE,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;wBACjB,QAAQ,CAAC,IAAI,CAAC;4BACZ,IAAI,EAAE,GAAG,KAAK,QAAQ;4BACtB,GAAG,EAAE,2BAA2B;4BAChC,QAAQ,EAAE,MAAM,CAAC,GAAG,IAAI,kBAAkB,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;yBAC5D,CAAC,CAAC;oBACL,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,qEAAqE;gBACrE,oEAAoE;gBACpE,uEAAuE;gBACvE,uEAAuE;gBACvE,MAAM,UAAU,GAAG,uCAAuC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACxE,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC7D,kEAAkE;oBAClE,oEAAoE;oBACpE,oEAAoE;oBACpE,mEAAmE;oBACnE,yBAAyB;oBACzB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;oBACnE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;wBAAE,SAAS;gBACzC,CAAC;gBACD,MAAM,KAAK,GACT,UAAU,KAAK,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;oBACtD,CAAC,CAAC,2BAA2B;oBAC7B,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACpB,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC7B,GAAG,EAAE,mBAAmB;oBACxB,QAAQ,EAAE,8BAA8B,KAAK,WAAW,IAAI,qGAAqG;iBAClK,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,iBAAiB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACnD,KAAK,CAAC,IAAI,CACR,QAAQ,CAAC,MAAM,KAAK,CAAC;YACnB,CAAC,CAAC,mCAAmC;YACrC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,gBAAgB,QAAQ;iBACvC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;iBAChD,IAAI,CAAC,KAAK,CAAC,EAAE,CACrB,CAAC;QACF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,mBAAmB,KAAK,aAAa,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAEvC,OAAO;YACL,IAAI;YACJ,MAAM,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YAC/C,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1B,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;gBACrB,CAAC,CAAC;oBACE,WAAW,EACT,uFAAuF;iBAC1F;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,UAAU,EAAE,IAAI;SACjB,CAAC;QACF,kKAAkK;IACpK,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,IAAI;YACJ,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,8BAA8B,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,0BAA0B,EAAE;YAC/F,WAAW,EAAE,sEAAsE;YACnF,UAAU,EAAE,IAAI;SACjB,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -17,6 +17,13 @@ import { cleanTmpDir } from '../test-utils.js';
|
|
|
17
17
|
import { checkSeatIdentity, OUTBOX_SCAN_LIMIT, SEAT_IDENTITY_CHECK_NAME, SEAT_IDENTITY_HONEST_LIMIT, } from './doctor-seat-identity.js';
|
|
18
18
|
/** No env by default: arm (c) must stay silent unless a test names a seat. */
|
|
19
19
|
const NO_ENV = {};
|
|
20
|
+
/**
|
|
21
|
+
* Every pre-arm-(d) test pins a non-win32 platform so the suite is hermetic:
|
|
22
|
+
* without the pin, a win32 dev host would spawn REAL `reg query` probes and a
|
|
23
|
+
* machine with a user-scope TOTEM_SELF_AGENT would fail unrelated assertions —
|
|
24
|
+
* exactly the un-isolated-test-environment trap arm (d) itself senses for.
|
|
25
|
+
*/
|
|
26
|
+
const LINUX = 'linux';
|
|
20
27
|
let root;
|
|
21
28
|
beforeEach(() => {
|
|
22
29
|
// `realpathSync` folds the win32 8.3 short name so path comparisons and the
|
|
@@ -62,7 +69,7 @@ describe('checkSeatIdentity — verdict shape', () => {
|
|
|
62
69
|
it('is gateExempt, never fail, and always states the honest limit (clean tree)', async () => {
|
|
63
70
|
seatDir('totem-claude');
|
|
64
71
|
dispatch('totem-claude', '2026-08-01T1200Z-totem-codex-note.md', 'totem-claude');
|
|
65
|
-
const result = await checkSeatIdentity(root, { env: NO_ENV });
|
|
72
|
+
const result = await checkSeatIdentity(root, { env: NO_ENV, platform: LINUX });
|
|
66
73
|
expect(result.name).toBe(SEAT_IDENTITY_CHECK_NAME);
|
|
67
74
|
expect(result.status).toBe('pass');
|
|
68
75
|
expect(result.gateExempt).toBe(true);
|
|
@@ -71,14 +78,14 @@ describe('checkSeatIdentity — verdict shape', () => {
|
|
|
71
78
|
expect(result.message).toContain(SEAT_IDENTITY_HONEST_LIMIT);
|
|
72
79
|
});
|
|
73
80
|
it('senses zero seats without failing when no seat has registered', async () => {
|
|
74
|
-
const result = await checkSeatIdentity(root, { env: NO_ENV });
|
|
81
|
+
const result = await checkSeatIdentity(root, { env: NO_ENV, platform: LINUX });
|
|
75
82
|
expect(result.status).toBe('pass');
|
|
76
83
|
expect(result.gateExempt).toBe(true);
|
|
77
84
|
expect(result.message).toContain('seats sensed: 0');
|
|
78
85
|
});
|
|
79
86
|
it('does not flag a dispatch that declares no from: (the dir IS the binding)', async () => {
|
|
80
87
|
dispatch('totem-claude', '2026-08-01T1200Z-totem-codex-note.md', null);
|
|
81
|
-
const result = await checkSeatIdentity(root, { env: NO_ENV });
|
|
88
|
+
const result = await checkSeatIdentity(root, { env: NO_ENV, platform: LINUX });
|
|
82
89
|
expect(result.status).toBe('pass');
|
|
83
90
|
expect(result.message).not.toContain('from-mismatch');
|
|
84
91
|
});
|
|
@@ -87,7 +94,7 @@ describe('checkSeatIdentity — (a) from ≠ owning dir', () => {
|
|
|
87
94
|
it('flags the mismatch and names the offending filename', async () => {
|
|
88
95
|
dispatch('totem-claude', '2026-08-01T1200Z-totem-codex-ok.md', 'totem-claude');
|
|
89
96
|
dispatch('totem-claude', '2026-08-02T0900Z-totem-codex-forged.md', 'totem-agy');
|
|
90
|
-
const result = await checkSeatIdentity(root, { env: NO_ENV });
|
|
97
|
+
const result = await checkSeatIdentity(root, { env: NO_ENV, platform: LINUX });
|
|
91
98
|
expect(result.status).toBe('warn');
|
|
92
99
|
expect(result.gateExempt).toBe(true);
|
|
93
100
|
expect(result.message).toContain('totem-claude [from-mismatch]');
|
|
@@ -98,14 +105,14 @@ describe('checkSeatIdentity — (a) from ≠ owning dir', () => {
|
|
|
98
105
|
});
|
|
99
106
|
it('reads a quoted from: as the same seat (yamlScalar quotes when it must)', async () => {
|
|
100
107
|
dispatch('totem-claude', '2026-08-01T1200Z-totem-codex-quoted.md', '"totem-claude"');
|
|
101
|
-
const result = await checkSeatIdentity(root, { env: NO_ENV });
|
|
108
|
+
const result = await checkSeatIdentity(root, { env: NO_ENV, platform: LINUX });
|
|
102
109
|
expect(result.status).toBe('pass');
|
|
103
110
|
});
|
|
104
111
|
it('ignores a body line that mimics from: outside the frontmatter', async () => {
|
|
105
112
|
const outbox = path.join(seatDir('totem-claude'), 'outbox');
|
|
106
113
|
fs.mkdirSync(outbox, { recursive: true });
|
|
107
114
|
fs.writeFileSync(path.join(outbox, '2026-08-01T1200Z-totem-codex-body.md'), ['---', 'to: totem-codex', '---', '', 'from: totem-agy', ''].join('\n'));
|
|
108
|
-
const result = await checkSeatIdentity(root, { env: NO_ENV });
|
|
115
|
+
const result = await checkSeatIdentity(root, { env: NO_ENV, platform: LINUX });
|
|
109
116
|
expect(result.status).toBe('pass');
|
|
110
117
|
});
|
|
111
118
|
});
|
|
@@ -114,7 +121,7 @@ describe('checkSeatIdentity — (b) writing while excluded', () => {
|
|
|
114
121
|
dispatch('totem-agy', '2026-07-01T1000Z-totem-claude-before.md', 'totem-agy');
|
|
115
122
|
dispatch('totem-agy', '2026-08-05T1000Z-totem-claude-after.md', 'totem-agy');
|
|
116
123
|
marker('totem-agy', validMarker('suspended', '2026-08-01T00:00:00.000Z'));
|
|
117
|
-
const result = await checkSeatIdentity(root, { env: NO_ENV });
|
|
124
|
+
const result = await checkSeatIdentity(root, { env: NO_ENV, platform: LINUX });
|
|
118
125
|
expect(result.status).toBe('warn');
|
|
119
126
|
expect(result.gateExempt).toBe(true);
|
|
120
127
|
expect(result.message).toContain('totem-agy [writing-while-excluded]');
|
|
@@ -125,20 +132,20 @@ describe('checkSeatIdentity — (b) writing while excluded', () => {
|
|
|
125
132
|
it('flags a retired seat the same way', async () => {
|
|
126
133
|
dispatch('totem-agy', '2026-08-05T1000Z-totem-claude-after.md', 'totem-agy');
|
|
127
134
|
marker('totem-agy', validMarker('retired', '2026-08-01T00:00:00.000Z'));
|
|
128
|
-
const result = await checkSeatIdentity(root, { env: NO_ENV });
|
|
135
|
+
const result = await checkSeatIdentity(root, { env: NO_ENV, platform: LINUX });
|
|
129
136
|
expect(result.message).toContain('totem-agy [writing-while-excluded]');
|
|
130
137
|
expect(result.status).toBe('warn');
|
|
131
138
|
});
|
|
132
139
|
it('leaves an ACTIVE seat alone however recent its writes', async () => {
|
|
133
140
|
dispatch('totem-agy', '2026-08-05T1000Z-totem-claude-after.md', 'totem-agy');
|
|
134
141
|
marker('totem-agy', validMarker('active', '2026-08-01T00:00:00.000Z'));
|
|
135
|
-
const result = await checkSeatIdentity(root, { env: NO_ENV });
|
|
142
|
+
const result = await checkSeatIdentity(root, { env: NO_ENV, platform: LINUX });
|
|
136
143
|
expect(result.status).toBe('pass');
|
|
137
144
|
});
|
|
138
145
|
it('never flags (b) on a CORRUPT marker, but relays the core warning naming it', async () => {
|
|
139
146
|
dispatch('totem-agy', '2026-08-05T1000Z-totem-claude-after.md', 'totem-agy');
|
|
140
147
|
marker('totem-agy', '{ not json');
|
|
141
|
-
const result = await checkSeatIdentity(root, { env: NO_ENV });
|
|
148
|
+
const result = await checkSeatIdentity(root, { env: NO_ENV, platform: LINUX });
|
|
142
149
|
expect(result.status).toBe('warn');
|
|
143
150
|
expect(result.gateExempt).toBe(true);
|
|
144
151
|
// The blind spot is disclosed...
|
|
@@ -150,7 +157,7 @@ describe('checkSeatIdentity — (b) writing while excluded', () => {
|
|
|
150
157
|
it('never flags (b) on a marker carrying session-state vocabulary (strict schema)', async () => {
|
|
151
158
|
dispatch('totem-agy', '2026-08-05T1000Z-totem-claude-after.md', 'totem-agy');
|
|
152
159
|
marker('totem-agy', validMarker('FAULTED', '2026-08-01T00:00:00.000Z'));
|
|
153
|
-
const result = await checkSeatIdentity(root, { env: NO_ENV });
|
|
160
|
+
const result = await checkSeatIdentity(root, { env: NO_ENV, platform: LINUX });
|
|
154
161
|
expect(result.message).toContain('totem-agy [unreadable-marker]');
|
|
155
162
|
expect(result.message).not.toContain('writing-while-excluded');
|
|
156
163
|
expect(result.status).toBe('warn');
|
|
@@ -160,7 +167,10 @@ describe('checkSeatIdentity — (c) TOTEM_SELF_AGENT vs lifecycle', () => {
|
|
|
160
167
|
it('flags an env var naming a suspended seat', async () => {
|
|
161
168
|
seatDir('totem-agy');
|
|
162
169
|
marker('totem-agy', validMarker('suspended', '2026-08-01T00:00:00.000Z'));
|
|
163
|
-
const result = await checkSeatIdentity(root, {
|
|
170
|
+
const result = await checkSeatIdentity(root, {
|
|
171
|
+
env: { TOTEM_SELF_AGENT: 'totem-agy' },
|
|
172
|
+
platform: LINUX,
|
|
173
|
+
});
|
|
164
174
|
expect(result.status).toBe('warn');
|
|
165
175
|
expect(result.gateExempt).toBe(true);
|
|
166
176
|
expect(result.message).toContain('totem-agy [env-names-excluded-seat]');
|
|
@@ -168,15 +178,24 @@ describe('checkSeatIdentity — (c) TOTEM_SELF_AGENT vs lifecycle', () => {
|
|
|
168
178
|
});
|
|
169
179
|
it('flags an env var naming no seat directory in this repo', async () => {
|
|
170
180
|
seatDir('totem-claude');
|
|
171
|
-
const result = await checkSeatIdentity(root, {
|
|
181
|
+
const result = await checkSeatIdentity(root, {
|
|
182
|
+
env: { TOTEM_SELF_AGENT: 'totem-ghost' },
|
|
183
|
+
platform: LINUX,
|
|
184
|
+
});
|
|
172
185
|
expect(result.status).toBe('warn');
|
|
173
186
|
expect(result.message).toContain('totem-ghost [env-names-unknown-seat]');
|
|
174
187
|
});
|
|
175
188
|
it('stays silent for an active seat and for an unset / blank env var', async () => {
|
|
176
189
|
seatDir('totem-claude');
|
|
177
|
-
const active = await checkSeatIdentity(root, {
|
|
178
|
-
|
|
179
|
-
|
|
190
|
+
const active = await checkSeatIdentity(root, {
|
|
191
|
+
env: { TOTEM_SELF_AGENT: 'totem-claude' },
|
|
192
|
+
platform: LINUX,
|
|
193
|
+
});
|
|
194
|
+
const unset = await checkSeatIdentity(root, { env: NO_ENV, platform: LINUX });
|
|
195
|
+
const blank = await checkSeatIdentity(root, {
|
|
196
|
+
env: { TOTEM_SELF_AGENT: ' ' },
|
|
197
|
+
platform: LINUX,
|
|
198
|
+
});
|
|
180
199
|
for (const result of [active, unset, blank]) {
|
|
181
200
|
expect(result.status).toBe('pass');
|
|
182
201
|
expect(result.message).not.toContain('env-names');
|
|
@@ -188,13 +207,17 @@ describe('checkSeatIdentity — (c) TOTEM_SELF_AGENT vs lifecycle', () => {
|
|
|
188
207
|
marker('totem-agy', validMarker('retired', '2026-08-01T00:00:00.000Z'));
|
|
189
208
|
const result = await checkSeatIdentity(root, {
|
|
190
209
|
env: { TOTEM_SELF_AGENT: 'totem-claude, totem-agy' },
|
|
210
|
+
platform: LINUX,
|
|
191
211
|
});
|
|
192
212
|
expect(result.message).toContain('totem-agy [env-names-excluded-seat]');
|
|
193
213
|
expect(result.message).toContain('names a retired seat');
|
|
194
214
|
});
|
|
195
215
|
it('does not flag (c) on a corrupt marker — the seat reads active by core contract', async () => {
|
|
196
216
|
marker('totem-agy', '{ not json');
|
|
197
|
-
const result = await checkSeatIdentity(root, {
|
|
217
|
+
const result = await checkSeatIdentity(root, {
|
|
218
|
+
env: { TOTEM_SELF_AGENT: 'totem-agy' },
|
|
219
|
+
platform: LINUX,
|
|
220
|
+
});
|
|
198
221
|
expect(result.message).toContain('unreadable-marker');
|
|
199
222
|
expect(result.message).not.toContain('env-names-excluded-seat');
|
|
200
223
|
});
|
|
@@ -204,7 +227,11 @@ describe('checkSeatIdentity — scan bound', () => {
|
|
|
204
227
|
for (let i = 0; i < 4; i++) {
|
|
205
228
|
dispatch('totem-claude', `2026-08-0${i + 1}T1200Z-totem-codex-n${i}.md`, 'totem-claude');
|
|
206
229
|
}
|
|
207
|
-
const bounded = await checkSeatIdentity(root, {
|
|
230
|
+
const bounded = await checkSeatIdentity(root, {
|
|
231
|
+
env: NO_ENV,
|
|
232
|
+
outboxScanLimit: 2,
|
|
233
|
+
platform: LINUX,
|
|
234
|
+
});
|
|
208
235
|
expect(bounded.message).toContain('scan bounded at 2/outbox');
|
|
209
236
|
expect(bounded.message).toContain('totem-claude: newest 2 of 4 outbox file(s) scanned');
|
|
210
237
|
expect(bounded.gateExempt).toBe(true);
|
|
@@ -214,7 +241,7 @@ describe('checkSeatIdentity — scan bound', () => {
|
|
|
214
241
|
});
|
|
215
242
|
it('says nothing about the bound when the whole outbox fits inside it', async () => {
|
|
216
243
|
dispatch('totem-claude', '2026-08-01T1200Z-totem-codex-n0.md', 'totem-claude');
|
|
217
|
-
const result = await checkSeatIdentity(root, { env: NO_ENV });
|
|
244
|
+
const result = await checkSeatIdentity(root, { env: NO_ENV, platform: LINUX });
|
|
218
245
|
expect(result.message).not.toContain('scan bounded');
|
|
219
246
|
// Exact default, not a weak range check (CR on #2627).
|
|
220
247
|
expect(OUTBOX_SCAN_LIMIT).toBe(200);
|
|
@@ -222,9 +249,142 @@ describe('checkSeatIdentity — scan bound', () => {
|
|
|
222
249
|
it('keeps the NEWEST files when the bound bites (lexical tail = newest tail)', async () => {
|
|
223
250
|
dispatch('totem-claude', '2026-07-01T1200Z-totem-codex-old.md', 'totem-agy');
|
|
224
251
|
dispatch('totem-claude', '2026-08-09T1200Z-totem-codex-new.md', 'totem-agy');
|
|
225
|
-
const result = await checkSeatIdentity(root, {
|
|
252
|
+
const result = await checkSeatIdentity(root, {
|
|
253
|
+
env: NO_ENV,
|
|
254
|
+
outboxScanLimit: 1,
|
|
255
|
+
platform: LINUX,
|
|
256
|
+
});
|
|
226
257
|
expect(result.message).toContain('2026-08-09T1200Z-totem-codex-new.md');
|
|
227
258
|
expect(result.message).not.toContain('2026-07-01T1200Z-totem-codex-old.md');
|
|
228
259
|
});
|
|
229
260
|
});
|
|
261
|
+
describe('checkSeatIdentity — (d) registry scope-sense (win32, mmnto-ai/totem#2629)', () => {
|
|
262
|
+
/** Real `reg query` hit shape, CRLF line endings and all. */
|
|
263
|
+
const REG_HIT_STDOUT = [
|
|
264
|
+
'HKEY_CURRENT_USER\\Environment',
|
|
265
|
+
' TOTEM_SELF_AGENT REG_SZ totem-claude',
|
|
266
|
+
'',
|
|
267
|
+
].join('\r\n');
|
|
268
|
+
/** The healthy state: `reg query` exits 1 when the value is absent. */
|
|
269
|
+
function regAbsent() {
|
|
270
|
+
const err = new Error('reg exited 1');
|
|
271
|
+
err.status = 1;
|
|
272
|
+
throw err;
|
|
273
|
+
}
|
|
274
|
+
it('never probes the registry off win32', async () => {
|
|
275
|
+
let calls = 0;
|
|
276
|
+
const result = await checkSeatIdentity(root, {
|
|
277
|
+
env: NO_ENV,
|
|
278
|
+
platform: LINUX,
|
|
279
|
+
regQuery: () => {
|
|
280
|
+
calls++;
|
|
281
|
+
return REG_HIT_STDOUT;
|
|
282
|
+
},
|
|
283
|
+
});
|
|
284
|
+
expect(calls).toBe(0);
|
|
285
|
+
expect(result.message).not.toContain('env-ambient-scope');
|
|
286
|
+
});
|
|
287
|
+
it('flags a user-scope TOTEM_SELF_AGENT with the value, scope, and issue named', async () => {
|
|
288
|
+
const result = await checkSeatIdentity(root, {
|
|
289
|
+
env: NO_ENV,
|
|
290
|
+
platform: 'win32',
|
|
291
|
+
regQuery: (hive) => (hive === 'HKCU\\Environment' ? REG_HIT_STDOUT : regAbsent()),
|
|
292
|
+
});
|
|
293
|
+
expect(result.status).toBe('warn');
|
|
294
|
+
expect(result.gateExempt).toBe(true);
|
|
295
|
+
expect(result.message).toContain('totem-claude [env-ambient-scope]');
|
|
296
|
+
expect(result.message).toContain('user scope');
|
|
297
|
+
expect(result.message).toContain('mmnto-ai/totem#2629');
|
|
298
|
+
});
|
|
299
|
+
it('a machine-scope hit names the machine scope', async () => {
|
|
300
|
+
const result = await checkSeatIdentity(root, {
|
|
301
|
+
env: NO_ENV,
|
|
302
|
+
platform: 'win32',
|
|
303
|
+
regQuery: (hive) => (hive.startsWith('HKLM') ? REG_HIT_STDOUT : regAbsent()),
|
|
304
|
+
});
|
|
305
|
+
expect(result.status).toBe('warn');
|
|
306
|
+
expect(result.message).toContain('[env-ambient-scope]');
|
|
307
|
+
expect(result.message).toContain('machine scope');
|
|
308
|
+
});
|
|
309
|
+
it('both hives absent (reg exit 1) is the healthy silent state', async () => {
|
|
310
|
+
const result = await checkSeatIdentity(root, {
|
|
311
|
+
env: NO_ENV,
|
|
312
|
+
platform: 'win32',
|
|
313
|
+
regQuery: regAbsent,
|
|
314
|
+
});
|
|
315
|
+
expect(result.status).toBe('pass');
|
|
316
|
+
expect(result.message).not.toContain('env-ambient-scope');
|
|
317
|
+
expect(result.message).not.toContain('registry-scope-unreadable');
|
|
318
|
+
});
|
|
319
|
+
it('a real probe failure is DISCLOSED as registry-scope-unreadable, never silent or fabricated', async () => {
|
|
320
|
+
const result = await checkSeatIdentity(root, {
|
|
321
|
+
env: NO_ENV,
|
|
322
|
+
platform: 'win32',
|
|
323
|
+
regQuery: () => {
|
|
324
|
+
throw new Error('spawn reg ENOENT');
|
|
325
|
+
},
|
|
326
|
+
});
|
|
327
|
+
expect(result.status).toBe('warn');
|
|
328
|
+
expect(result.gateExempt).toBe(true);
|
|
329
|
+
expect(result.message).toContain('[registry-scope-unreadable]');
|
|
330
|
+
expect(result.message).toContain('ENOENT');
|
|
331
|
+
expect(result.message).not.toContain('env-ambient-scope');
|
|
332
|
+
});
|
|
333
|
+
it('a BLANK-valued key (the post-remediation live shape: value cleared, key kept) is inert — no finding', async () => {
|
|
334
|
+
// Verbatim `reg query` output for a blank REG_SZ value after safeExec's
|
|
335
|
+
// whole-output trim: `reg` exits 0, the key exists, the value stamps
|
|
336
|
+
// nothing (resolveQbdAgentSource normalizes '' to undefined).
|
|
337
|
+
const blank = 'HKEY_CURRENT_USER\\Environment\r\n TOTEM_SELF_AGENT REG_SZ';
|
|
338
|
+
const result = await checkSeatIdentity(root, {
|
|
339
|
+
env: NO_ENV,
|
|
340
|
+
platform: 'win32',
|
|
341
|
+
regQuery: (hive) => (hive === 'HKCU\\Environment' ? blank : regAbsent()),
|
|
342
|
+
});
|
|
343
|
+
expect(result.status).toBe('pass');
|
|
344
|
+
expect(result.message).not.toContain('env-ambient-scope');
|
|
345
|
+
expect(result.message).not.toContain('registry-scope-unreadable');
|
|
346
|
+
});
|
|
347
|
+
it('a blank value with trailing padding (untrimmed stdout variant) is equally inert', async () => {
|
|
348
|
+
const blank = '\r\nHKEY_CURRENT_USER\\Environment\r\n TOTEM_SELF_AGENT REG_SZ \r\n\r\n';
|
|
349
|
+
const result = await checkSeatIdentity(root, {
|
|
350
|
+
env: NO_ENV,
|
|
351
|
+
platform: 'win32',
|
|
352
|
+
regQuery: (hive) => (hive === 'HKCU\\Environment' ? blank : regAbsent()),
|
|
353
|
+
});
|
|
354
|
+
expect(result.status).toBe('pass');
|
|
355
|
+
expect(result.message).not.toContain('env-ambient-scope');
|
|
356
|
+
});
|
|
357
|
+
it('a blank HKCU does NOT mask a real machine-scope hit — the loop probes both hives', async () => {
|
|
358
|
+
const blank = 'HKEY_CURRENT_USER\\Environment\r\n TOTEM_SELF_AGENT REG_SZ';
|
|
359
|
+
const result = await checkSeatIdentity(root, {
|
|
360
|
+
env: NO_ENV,
|
|
361
|
+
platform: 'win32',
|
|
362
|
+
regQuery: (hive) => (hive === 'HKCU\\Environment' ? blank : REG_HIT_STDOUT),
|
|
363
|
+
});
|
|
364
|
+
expect(result.status).toBe('warn');
|
|
365
|
+
expect(result.message).toContain('[env-ambient-scope]');
|
|
366
|
+
expect(result.message).toContain('machine scope');
|
|
367
|
+
});
|
|
368
|
+
it('a CR/LF-leading value is NOT the inert blank shape — it still stamps downstream, so it stays a finding', async () => {
|
|
369
|
+
// Programmatically-settable only (never via setx/GUI), but such a value
|
|
370
|
+
// survives resolveQbdAgentSource's trim-split and contaminates rows.
|
|
371
|
+
const crlfValue = 'HKEY_CURRENT_USER\\Environment\r\n TOTEM_SELF_AGENT REG_SZ \r\nrogue-seat';
|
|
372
|
+
const result = await checkSeatIdentity(root, {
|
|
373
|
+
env: NO_ENV,
|
|
374
|
+
platform: 'win32',
|
|
375
|
+
regQuery: (hive) => (hive === 'HKCU\\Environment' ? crlfValue : regAbsent()),
|
|
376
|
+
});
|
|
377
|
+
expect(result.status).toBe('warn');
|
|
378
|
+
expect(result.message).toContain('(value present, unparsed) [env-ambient-scope]');
|
|
379
|
+
});
|
|
380
|
+
it('a hit whose value line resists parsing is still a finding — presence IS the contradiction', async () => {
|
|
381
|
+
const result = await checkSeatIdentity(root, {
|
|
382
|
+
env: NO_ENV,
|
|
383
|
+
platform: 'win32',
|
|
384
|
+
regQuery: (hive) => (hive === 'HKCU\\Environment' ? 'unexpected output shape' : regAbsent()),
|
|
385
|
+
});
|
|
386
|
+
expect(result.status).toBe('warn');
|
|
387
|
+
expect(result.message).toContain('(value present, unparsed) [env-ambient-scope]');
|
|
388
|
+
});
|
|
389
|
+
});
|
|
230
390
|
//# sourceMappingURL=doctor-seat-identity.test.js.map
|