@deftai/directive-core 0.94.0 → 0.95.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.
Files changed (61) hide show
  1. package/dist/authz/classify.js +485 -0
  2. package/dist/doctor/main.js +41 -9
  3. package/dist/doctor/types.d.ts +2 -2
  4. package/dist/freshness/bind.d.ts +67 -0
  5. package/dist/freshness/bind.js +201 -0
  6. package/dist/freshness/cli.d.ts +30 -0
  7. package/dist/freshness/cli.js +180 -0
  8. package/dist/freshness/compare.d.ts +14 -0
  9. package/dist/freshness/compare.js +134 -0
  10. package/dist/freshness/generation.d.ts +44 -0
  11. package/dist/freshness/generation.js +172 -0
  12. package/dist/freshness/index.d.ts +13 -0
  13. package/dist/freshness/index.js +13 -0
  14. package/dist/freshness/report.d.ts +43 -0
  15. package/dist/freshness/report.js +139 -0
  16. package/dist/freshness/types.d.ts +70 -0
  17. package/dist/freshness/types.js +30 -0
  18. package/dist/handoff-evidence/index.d.ts +8 -0
  19. package/dist/handoff-evidence/index.js +7 -0
  20. package/dist/handoff-evidence/validate.d.ts +105 -0
  21. package/dist/handoff-evidence/validate.js +423 -0
  22. package/dist/hooks/dispatcher.d.ts +3 -0
  23. package/dist/hooks/dispatcher.js +12 -3
  24. package/dist/index.d.ts +2 -0
  25. package/dist/index.js +2 -0
  26. package/dist/init-deposit/agent-hooks.d.ts +1 -1
  27. package/dist/init-deposit/agent-hooks.js +5 -2
  28. package/dist/init-deposit/init-deposit.d.ts +7 -1
  29. package/dist/init-deposit/init-deposit.js +24 -4
  30. package/dist/init-deposit/refresh.d.ts +9 -1
  31. package/dist/init-deposit/refresh.js +48 -5
  32. package/dist/policy/index.d.ts +3 -0
  33. package/dist/policy/index.js +35 -0
  34. package/dist/release-e2e/greenfield-python-free-smoke.js +7 -3
  35. package/dist/session/ritual-entrypoint.d.ts +6 -2
  36. package/dist/session/ritual-entrypoint.js +15 -2
  37. package/dist/session/session-ready.js +31 -14
  38. package/dist/session/session-start.d.ts +2 -1
  39. package/dist/session/session-start.js +66 -3
  40. package/dist/session/verify-session-ritual.d.ts +4 -2
  41. package/dist/session/verify-session-ritual.js +11 -11
  42. package/dist/slash/product-set.js +4 -1
  43. package/dist/swarm/verify-review-clean.d.ts +4 -3
  44. package/dist/swarm/verify-review-clean.js +28 -73
  45. package/dist/triage/classify/index.d.ts +9 -0
  46. package/dist/triage/classify/index.js +34 -2
  47. package/dist/triage/classify/label-mirror.d.ts +143 -0
  48. package/dist/triage/classify/label-mirror.js +684 -0
  49. package/dist/triage/help/registry-data.d.ts +7 -7
  50. package/dist/triage/help/registry-data.js +27 -7
  51. package/dist/triage/queue/show.d.ts +1 -1
  52. package/dist/triage/queue/show.js +4 -2
  53. package/dist/vbrief-validate/project-definition.js +1 -1
  54. package/dist/verify-env/agent-hook-readiness.d.ts +42 -0
  55. package/dist/verify-env/agent-hook-readiness.js +150 -0
  56. package/dist/verify-env/agent-hooks-live-probe.d.ts +16 -4
  57. package/dist/verify-env/agent-hooks-live-probe.js +120 -107
  58. package/dist/verify-env/agent-hooks.js +11 -3
  59. package/dist/verify-env/index.d.ts +1 -0
  60. package/dist/verify-env/index.js +1 -0
  61. package/package.json +7 -3
@@ -168,13 +168,13 @@ export declare const registryData: {
168
168
  };
169
169
  readonly "task triage:classify": {
170
170
  readonly name: "task triage:classify";
171
- readonly summary: "Inspect / validate auto-classification surface";
172
- readonly refs: "(D10 / #1129)";
173
- readonly description: "Inspect or validate the auto-classification rule set. --list renders effective rules (framework universal first, consumer overrides next). --validate exits non-zero on a malformed plan.policy.triageAutoClassify.";
174
- readonly usage: "task triage:classify -- [--list | --validate]";
175
- readonly flags: readonly [readonly ["--list", "(default)", "Print effective rules + hold markers."], readonly ["--validate", "(off)", "Validate plan.policy.triageAutoClassify."]];
176
- readonly examples: readonly ["task triage:classify -- --list", "task triage:classify -- --validate"];
177
- readonly see_also: readonly ["task triage:bootstrap", "task triage:queue", "#1119 / D10"];
171
+ readonly summary: "Inspect / validate auto-classification surface; Tier-1 SCM label mirror";
172
+ readonly refs: "(D10 / #1129, #1423 Wave 1)";
173
+ readonly description: "Inspect or validate the auto-classification rule set. --list renders effective rules (framework universal first, consumer overrides next). --validate exits non-zero on a malformed plan.policy.triageAutoClassify or triageLabelMirror. --mirror runs the Tier-1 deterministic SCM label mirror over the github-issue cache (dry-run default; --apply writes via SCM boundary). Never calls triage:accept / never writes proposed/ xBRIEFs.";
174
+ readonly usage: "task triage:classify -- [--list | --validate | --mirror [--apply] [--repo owner/name] [--json] [--allow-cross-repo]]";
175
+ readonly flags: readonly [readonly ["--list", "(default)", "Print effective rules + hold markers."], readonly ["--validate", "(off)", "Validate plan.policy.triageAutoClassify + triageLabelMirror."], readonly ["--mirror", "(off)", "Tier-1 label mirror: classify cache → planned/applied labels (dry-run default)."], readonly ["--apply", "(off)", "With --mirror: write labels via SCM (requires github SCM boundary)."], readonly ["--repo owner/name", "(all cached)", "Limit mirror to one repo."], readonly ["--json", "(off)", "With --mirror: structured JSON outcome."], readonly ["--allow-cross-repo", "(off)", "With --mirror --apply: allow non-project repos (#2601)."]];
176
+ readonly examples: readonly ["task triage:classify -- --list", "task triage:classify -- --validate", "task triage:classify -- --mirror", "task triage:classify -- --mirror --apply --repo owner/name"];
177
+ readonly see_also: readonly ["task triage:bootstrap", "task triage:queue", "task vbrief:reconcile:labels", "#1119 / D10", "#1423"];
178
178
  readonly placeholder: false;
179
179
  };
180
180
  readonly "task triage:bootstrap": {
@@ -264,16 +264,36 @@ export const registryData = {
264
264
  },
265
265
  "task triage:classify": {
266
266
  name: "task triage:classify",
267
- summary: "Inspect / validate auto-classification surface",
268
- refs: "(D10 / #1129)",
269
- description: "Inspect or validate the auto-classification rule set. --list renders effective rules (framework universal first, consumer overrides next). --validate exits non-zero on a malformed plan.policy.triageAutoClassify.",
270
- usage: "task triage:classify -- [--list | --validate]",
267
+ summary: "Inspect / validate auto-classification surface; Tier-1 SCM label mirror",
268
+ refs: "(D10 / #1129, #1423 Wave 1)",
269
+ description: "Inspect or validate the auto-classification rule set. --list renders effective rules (framework universal first, consumer overrides next). --validate exits non-zero on a malformed plan.policy.triageAutoClassify or triageLabelMirror. --mirror runs the Tier-1 deterministic SCM label mirror over the github-issue cache (dry-run default; --apply writes via SCM boundary). Never calls triage:accept / never writes proposed/ xBRIEFs.",
270
+ usage: "task triage:classify -- [--list | --validate | --mirror [--apply] [--repo owner/name] [--json] [--allow-cross-repo]]",
271
271
  flags: [
272
272
  ["--list", "(default)", "Print effective rules + hold markers."],
273
- ["--validate", "(off)", "Validate plan.policy.triageAutoClassify."],
273
+ ["--validate", "(off)", "Validate plan.policy.triageAutoClassify + triageLabelMirror."],
274
+ [
275
+ "--mirror",
276
+ "(off)",
277
+ "Tier-1 label mirror: classify cache → planned/applied labels (dry-run default).",
278
+ ],
279
+ ["--apply", "(off)", "With --mirror: write labels via SCM (requires github SCM boundary)."],
280
+ ["--repo owner/name", "(all cached)", "Limit mirror to one repo."],
281
+ ["--json", "(off)", "With --mirror: structured JSON outcome."],
282
+ ["--allow-cross-repo", "(off)", "With --mirror --apply: allow non-project repos (#2601)."],
283
+ ],
284
+ examples: [
285
+ "task triage:classify -- --list",
286
+ "task triage:classify -- --validate",
287
+ "task triage:classify -- --mirror",
288
+ "task triage:classify -- --mirror --apply --repo owner/name",
289
+ ],
290
+ see_also: [
291
+ "task triage:bootstrap",
292
+ "task triage:queue",
293
+ "task vbrief:reconcile:labels",
294
+ "#1119 / D10",
295
+ "#1423",
274
296
  ],
275
- examples: ["task triage:classify -- --list", "task triage:classify -- --validate"],
276
- see_also: ["task triage:bootstrap", "task triage:queue", "#1119 / D10"],
277
297
  placeholder: false,
278
298
  },
279
299
  "task triage:bootstrap": {
@@ -58,7 +58,7 @@ export declare function extractBodySummary(body: string, maxLines?: number): str
58
58
  * Looks for AC / Acceptance headings and checkbox / bullet lists under them.
59
59
  */
60
60
  export declare function extractAcceptanceCriteria(body: string): readonly string[];
61
- /** Operator-facing pasteable brief backbone for Phase 3 decisions (#2890). */
61
+ /** Operator-facing pasteable brief backbone for Phase 3 decisions (#2890 / #3116). */
62
62
  export declare function renderOperatorBrief(options: {
63
63
  readonly issue: CachedIssueDetail | null;
64
64
  readonly repo: string;
@@ -245,7 +245,7 @@ export function extractAcceptanceCriteria(body) {
245
245
  }
246
246
  return bullets.slice(0, 12);
247
247
  }
248
- /** Operator-facing pasteable brief backbone for Phase 3 decisions (#2890). */
248
+ /** Operator-facing pasteable brief backbone for Phase 3 decisions (#2890 / #3116). */
249
249
  export function renderOperatorBrief(options) {
250
250
  const lines = [];
251
251
  lines.push(`triage:show --format=operator -- ${options.repo}#${options.number}`);
@@ -258,9 +258,11 @@ export function renderOperatorBrief(options) {
258
258
  const issue = options.issue;
259
259
  const link = issue.htmlUrl ?? resolveIssueHtmlUrl(options.repo, options.number);
260
260
  const labels = issue.labels.length > 0 ? issue.labels.map(oneLine).join(", ") : "<none>";
261
+ // URL-first lead line (#3116): canonical issue URL before title/body fields.
262
+ lines.push(oneLine(link));
261
263
  lines.push(`#${options.number} ${oneLine(issue.title)}`);
262
- lines.push(`link: ${oneLine(link)}`);
263
264
  lines.push(`labels: ${labels}`);
265
+ lines.push("validity: (agent-owned — still-open | partial | likely-shipped | needs-re-scope + evidence)");
264
266
  lines.push("");
265
267
  lines.push("summary:");
266
268
  for (const line of extractBodySummary(issue.body).split("\n")) {
@@ -78,7 +78,7 @@ export function validateProjectDefinition(filepath, data, vbriefDir) {
78
78
  }
79
79
  const uriRaw = ref.uri;
80
80
  const uri = typeof uriRaw === "string" ? uriRaw : "";
81
- if (uri && uri.startsWith("file://")) {
81
+ if (uri.startsWith("file://")) {
82
82
  const refPath = uri.replace("file://", "");
83
83
  const fullPath = resolve(vbriefDir, refPath);
84
84
  if (!isRelativeTo(fullPath, resolvedRoot)) {
@@ -0,0 +1,42 @@
1
+ import type { HookHost } from "../hooks/dispatcher.js";
2
+ import type { AgentHookInspection } from "../init-deposit/agent-hooks.js";
3
+ import type { HostHooksPolicy } from "../policy/host-hooks.js";
4
+ import { type AgentHookHealthResult } from "./agent-hooks.js";
5
+ import { type AgentHookLiveProbeResult, type AgentHookLiveProbeSeams } from "./agent-hooks-live-probe.js";
6
+ import type { OutputStream } from "./verify-hooks-installed.js";
7
+ export type AgentHookReadinessRegistration = "registered" | "disabled" | "missing" | "drifted" | "not-applicable";
8
+ export type AgentHookReadinessFunctionality = "functional" | "non-functional" | "unavailable" | "not-run" | "disabled" | "not-applicable";
9
+ export type AgentHookReadinessTrust = "manual-review-required" | "not-applicable" | "disabled";
10
+ export type AgentHookReadinessInterception = "not-directly-verified" | "not-applicable" | "disabled";
11
+ export type AgentHookReadinessLiveStatus = "functional" | "non-functional" | "unavailable" | "not-run" | "disabled" | "skipped";
12
+ export interface AgentHookReadinessHostResult {
13
+ readonly host: HookHost;
14
+ readonly registration: AgentHookReadinessRegistration;
15
+ readonly functionality: AgentHookReadinessFunctionality;
16
+ readonly trust: AgentHookReadinessTrust;
17
+ readonly interception: AgentHookReadinessInterception;
18
+ }
19
+ export interface AgentHookReadinessResult {
20
+ readonly code: 0 | 1 | 2;
21
+ readonly message: string;
22
+ readonly stream: OutputStream;
23
+ readonly skipped: boolean;
24
+ readonly liveStatus: AgentHookReadinessLiveStatus;
25
+ readonly hosts: readonly AgentHookReadinessHostResult[];
26
+ readonly registrations: readonly AgentHookInspection[];
27
+ readonly liveProbe: AgentHookLiveProbeResult | null;
28
+ }
29
+ export interface AgentHookReadinessOptions {
30
+ readonly hostHooksPolicy?: HostHooksPolicy;
31
+ readonly consumerContext?: (projectRoot: string) => boolean;
32
+ readonly evaluateStructural?: (projectRoot: string, policy: HostHooksPolicy) => AgentHookHealthResult;
33
+ readonly probeLive?: (projectRoot: string, seams?: AgentHookLiveProbeSeams) => AgentHookLiveProbeResult;
34
+ readonly liveProbeSeams?: Omit<AgentHookLiveProbeSeams, "hosts">;
35
+ }
36
+ /** Stable CLI JSON projection; keep the four readiness dimensions orthogonal. */
37
+ export declare function agentHookReadinessJson(result: AgentHookReadinessResult): Record<string, unknown>;
38
+ /** Preserve fail-closed readiness semantics when an unexpected evaluator dependency throws. */
39
+ export declare function evaluateAgentHookReadinessSafely(projectRoot: string, evaluate?: (projectRoot: string) => AgentHookReadinessResult): AgentHookReadinessResult;
40
+ /** Fail-closed consumer readiness: structural registration first, installed-shim live probe second. */
41
+ export declare function evaluateAgentHookReadiness(projectRoot: string, options?: AgentHookReadinessOptions): AgentHookReadinessResult;
42
+ //# sourceMappingURL=agent-hook-readiness.d.ts.map
@@ -0,0 +1,150 @@
1
+ import { resolve } from "node:path";
2
+ import { resolveFrameworkRootForProject } from "../doctor/paths.js";
3
+ import { loadHostHooksPolicyFromProject } from "../policy/host-hooks.js";
4
+ import { evaluateAgentHooks } from "./agent-hooks.js";
5
+ import { probeAgentHooksLive, } from "./agent-hooks-live-probe.js";
6
+ /** Stable CLI JSON projection; keep the four readiness dimensions orthogonal. */
7
+ export function agentHookReadinessJson(result) {
8
+ return {
9
+ ready: result.code === 0,
10
+ exit_code: result.code,
11
+ skipped: result.skipped,
12
+ live_status: result.liveStatus,
13
+ hosts: result.hosts.map((entry) => ({ ...entry })),
14
+ message: result.message,
15
+ };
16
+ }
17
+ /** Preserve fail-closed readiness semantics when an unexpected evaluator dependency throws. */
18
+ export function evaluateAgentHookReadinessSafely(projectRoot, evaluate = evaluateAgentHookReadiness) {
19
+ try {
20
+ return evaluate(projectRoot);
21
+ }
22
+ catch (cause) {
23
+ const detail = cause instanceof Error ? cause.message : String(cause);
24
+ return {
25
+ code: 2,
26
+ message: `❌ deft agent hook readiness unavailable: ${detail}`,
27
+ stream: "stderr",
28
+ skipped: false,
29
+ liveStatus: "unavailable",
30
+ hosts: [],
31
+ registrations: [],
32
+ liveProbe: null,
33
+ };
34
+ }
35
+ }
36
+ function isConsumerContext(projectRoot) {
37
+ return resolve(projectRoot) !== resolve(resolveFrameworkRootForProject(projectRoot));
38
+ }
39
+ function registrationState(entry) {
40
+ if (entry.status === "healthy")
41
+ return "registered";
42
+ return entry.status;
43
+ }
44
+ function renderHosts(hosts) {
45
+ return hosts
46
+ .map((entry) => ` - ${entry.host}: registration=${entry.registration}; functionality=${entry.functionality}; ` +
47
+ `trust=${entry.trust}; interception=${entry.interception}`)
48
+ .join("\n");
49
+ }
50
+ function baseHostResult(entry, policy) {
51
+ if (!policy[entry.host]) {
52
+ return {
53
+ host: entry.host,
54
+ registration: "disabled",
55
+ functionality: "disabled",
56
+ trust: "disabled",
57
+ interception: "disabled",
58
+ };
59
+ }
60
+ return {
61
+ host: entry.host,
62
+ registration: registrationState(entry),
63
+ functionality: "not-run",
64
+ trust: entry.host === "codex" ? "manual-review-required" : "not-applicable",
65
+ interception: "not-directly-verified",
66
+ };
67
+ }
68
+ /** Fail-closed consumer readiness: structural registration first, installed-shim live probe second. */
69
+ export function evaluateAgentHookReadiness(projectRoot, options = {}) {
70
+ const root = resolve(projectRoot);
71
+ const consumerContext = options.consumerContext ?? isConsumerContext;
72
+ if (!consumerContext(root)) {
73
+ return {
74
+ code: 0,
75
+ message: "✓ deft agent hook readiness skipped: maintainer source checkout; consumer hook deposit is not applicable.",
76
+ stream: "stdout",
77
+ skipped: true,
78
+ liveStatus: "skipped",
79
+ hosts: [],
80
+ registrations: [],
81
+ liveProbe: null,
82
+ };
83
+ }
84
+ const policy = options.hostHooksPolicy ?? loadHostHooksPolicyFromProject(root);
85
+ const structural = (options.evaluateStructural ?? evaluateAgentHooks)(root, policy);
86
+ const hosts = structural.registrations.map((entry) => baseHostResult(entry, policy));
87
+ if (structural.code !== 0) {
88
+ return {
89
+ code: structural.code,
90
+ message: `${structural.message}\n${renderHosts(hosts)}`,
91
+ stream: "stderr",
92
+ skipped: false,
93
+ liveStatus: "not-run",
94
+ hosts,
95
+ registrations: structural.registrations,
96
+ liveProbe: null,
97
+ };
98
+ }
99
+ const enabledHosts = structural.registrations
100
+ .filter((entry) => policy[entry.host])
101
+ .map((entry) => entry.host);
102
+ const liveProbe = (options.probeLive ?? probeAgentHooksLive)(root, {
103
+ ...options.liveProbeSeams,
104
+ hosts: enabledHosts,
105
+ });
106
+ const liveByHost = new Map(liveProbe.hosts.map((entry) => [entry.host, entry.status]));
107
+ const evaluatedHosts = hosts.map((entry) => {
108
+ if (entry.functionality === "disabled")
109
+ return entry;
110
+ const liveStatus = liveByHost.get(entry.host);
111
+ return {
112
+ ...entry,
113
+ functionality: liveStatus === "functional"
114
+ ? "functional"
115
+ : liveStatus === "unavailable"
116
+ ? "unavailable"
117
+ : liveStatus === "non-functional"
118
+ ? "non-functional"
119
+ : "not-run",
120
+ };
121
+ });
122
+ const allDisabled = enabledHosts.length === 0;
123
+ const liveStatus = allDisabled
124
+ ? "disabled"
125
+ : liveProbe.code === 0
126
+ ? "functional"
127
+ : liveProbe.code === 2
128
+ ? "unavailable"
129
+ : "non-functional";
130
+ const trustReview = policy.codex
131
+ ? "\n Codex trust: manual-review-required. Open `/hooks` and approve the exact project hook commands. " +
132
+ "The live probe validates the shim and codec, not host interception."
133
+ : "";
134
+ return {
135
+ code: liveProbe.code,
136
+ message: `${liveProbe.code === 0 ? "✓" : "❌"} deft agent hook readiness: ${liveProbe.message}\n` +
137
+ renderHosts(evaluatedHosts) +
138
+ trustReview +
139
+ (liveProbe.code === 0
140
+ ? ""
141
+ : "\n If an affected host is unused, inspect `deft policy:show --field=hostHooks`, set `plan.policy.hostHooks.<host> = false`, and run `deft update`."),
142
+ stream: liveProbe.code === 0 ? "stdout" : "stderr",
143
+ skipped: false,
144
+ liveStatus,
145
+ hosts: evaluatedHosts,
146
+ registrations: structural.registrations,
147
+ liveProbe,
148
+ };
149
+ }
150
+ //# sourceMappingURL=agent-hook-readiness.js.map
@@ -1,5 +1,6 @@
1
- import type { HookEvent, HookHost } from "../hooks/dispatcher.js";
2
- export type AgentHookLiveProbeIssue = "hook-command-missing" | "spawn-failed" | "empty-stdout" | "unparseable-json" | "missing-allow" | "missing-deny";
1
+ import { type HookEvent, type HookHost } from "../hooks/dispatcher.js";
2
+ export declare const LIVE_PROBE_CASE_TIMEOUT_MS = 1500;
3
+ export type AgentHookLiveProbeIssue = "hook-command-missing" | "spawn-failed" | "timed-out" | "empty-stdout" | "unparseable-json" | "missing-allow" | "missing-deny";
3
4
  export interface AgentHookLiveProbeCase {
4
5
  readonly host: HookHost;
5
6
  readonly event: HookEvent;
@@ -7,26 +8,37 @@ export interface AgentHookLiveProbeCase {
7
8
  readonly issue: AgentHookLiveProbeIssue;
8
9
  readonly detail: string;
9
10
  }
11
+ export type AgentHookLiveProbeHostStatus = "functional" | "non-functional" | "unavailable";
12
+ export interface AgentHookLiveProbeHostResult {
13
+ readonly host: HookHost;
14
+ readonly status: AgentHookLiveProbeHostStatus;
15
+ }
10
16
  export interface AgentHookLiveProbeResult {
11
17
  readonly code: 0 | 1 | 2;
12
18
  readonly message: string;
13
19
  readonly cases: readonly AgentHookLiveProbeCase[];
20
+ readonly hosts: readonly AgentHookLiveProbeHostResult[];
21
+ readonly durationMs: number;
14
22
  }
15
23
  export interface AgentHookLiveProbeSeams {
24
+ /** Enabled hosts to probe. Defaults to every deposited host. */
25
+ readonly hosts?: readonly HookHost[];
16
26
  readonly resolveCommand?: (name: string) => string | null;
17
27
  readonly spawnHook?: (input: {
18
28
  readonly command: string;
19
29
  readonly args: readonly string[];
20
30
  readonly stdin: string;
21
31
  readonly cwd: string;
22
- readonly env?: NodeJS.ProcessEnv;
32
+ readonly env: NodeJS.ProcessEnv;
23
33
  }) => {
24
34
  readonly status: number;
25
35
  readonly stdout: string;
26
36
  readonly stderr: string;
37
+ readonly timedOut?: boolean;
27
38
  };
28
39
  }
40
+ /** Quote one Windows cmd.exe argument used by the installed hook shim. */
29
41
  export declare function quoteWindowsCmdArg(value: string): string;
30
- /** Spawn the configured hook command and assert Cursor tool.before allow/deny behavior. */
42
+ /** Invoke the installed deft-hook shim and validate enabled host allow/deny codecs. */
31
43
  export declare function probeAgentHooksLive(projectRoot: string, seams?: AgentHookLiveProbeSeams): AgentHookLiveProbeResult;
32
44
  //# sourceMappingURL=agent-hooks-live-probe.d.ts.map