@descryy/mcp 0.2.0 → 0.4.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 (160) hide show
  1. package/dist/bin/descry-mcp.js +6 -1
  2. package/dist/bin/descry-mcp.js.map +1 -1
  3. package/dist/browser/driver.d.ts +236 -0
  4. package/dist/browser/driver.d.ts.map +1 -0
  5. package/dist/browser/driver.js +70 -0
  6. package/dist/browser/driver.js.map +1 -0
  7. package/dist/browser/evidence.d.ts +47 -0
  8. package/dist/browser/evidence.d.ts.map +1 -0
  9. package/dist/browser/evidence.js +55 -0
  10. package/dist/browser/evidence.js.map +1 -0
  11. package/dist/browser/fake-driver.d.ts +58 -0
  12. package/dist/browser/fake-driver.d.ts.map +1 -0
  13. package/dist/browser/fake-driver.js +161 -0
  14. package/dist/browser/fake-driver.js.map +1 -0
  15. package/dist/browser/graph-write.d.ts +86 -0
  16. package/dist/browser/graph-write.d.ts.map +1 -0
  17. package/dist/browser/graph-write.js +135 -0
  18. package/dist/browser/graph-write.js.map +1 -0
  19. package/dist/browser/playwright-driver.d.ts +65 -0
  20. package/dist/browser/playwright-driver.d.ts.map +1 -0
  21. package/dist/browser/playwright-driver.js +359 -0
  22. package/dist/browser/playwright-driver.js.map +1 -0
  23. package/dist/browser/provider.d.ts +49 -0
  24. package/dist/browser/provider.d.ts.map +1 -0
  25. package/dist/browser/provider.js +28 -0
  26. package/dist/browser/provider.js.map +1 -0
  27. package/dist/browser/registry.d.ts +182 -0
  28. package/dist/browser/registry.d.ts.map +1 -0
  29. package/dist/browser/registry.js +215 -0
  30. package/dist/browser/registry.js.map +1 -0
  31. package/dist/browser/scenario-resolve.d.ts +62 -0
  32. package/dist/browser/scenario-resolve.d.ts.map +1 -0
  33. package/dist/browser/scenario-resolve.js +127 -0
  34. package/dist/browser/scenario-resolve.js.map +1 -0
  35. package/dist/browser/scenario-runner.d.ts +113 -0
  36. package/dist/browser/scenario-runner.d.ts.map +1 -0
  37. package/dist/browser/scenario-runner.js +315 -0
  38. package/dist/browser/scenario-runner.js.map +1 -0
  39. package/dist/browser/stack-parser.d.ts +43 -0
  40. package/dist/browser/stack-parser.d.ts.map +1 -0
  41. package/dist/browser/stack-parser.js +112 -0
  42. package/dist/browser/stack-parser.js.map +1 -0
  43. package/dist/browser/tool-support.d.ts +113 -0
  44. package/dist/browser/tool-support.d.ts.map +1 -0
  45. package/dist/browser/tool-support.js +181 -0
  46. package/dist/browser/tool-support.js.map +1 -0
  47. package/dist/index.d.ts +11 -0
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +10 -0
  50. package/dist/index.js.map +1 -1
  51. package/dist/render.d.ts +112 -10
  52. package/dist/render.d.ts.map +1 -1
  53. package/dist/render.js +79 -13
  54. package/dist/render.js.map +1 -1
  55. package/dist/scenarios/index.d.ts +4 -0
  56. package/dist/scenarios/index.d.ts.map +1 -0
  57. package/dist/scenarios/index.js +4 -0
  58. package/dist/scenarios/index.js.map +1 -0
  59. package/dist/scenarios/parse.d.ts +32 -0
  60. package/dist/scenarios/parse.d.ts.map +1 -0
  61. package/dist/scenarios/parse.js +199 -0
  62. package/dist/scenarios/parse.js.map +1 -0
  63. package/dist/scenarios/scenario.d.ts +115 -0
  64. package/dist/scenarios/scenario.d.ts.map +1 -0
  65. package/dist/scenarios/scenario.js +41 -0
  66. package/dist/scenarios/scenario.js.map +1 -0
  67. package/dist/scenarios/storage.d.ts +51 -0
  68. package/dist/scenarios/storage.d.ts.map +1 -0
  69. package/dist/scenarios/storage.js +93 -0
  70. package/dist/scenarios/storage.js.map +1 -0
  71. package/dist/server.d.ts.map +1 -1
  72. package/dist/server.js +6 -3
  73. package/dist/server.js.map +1 -1
  74. package/dist/session.d.ts +68 -0
  75. package/dist/session.d.ts.map +1 -1
  76. package/dist/session.js +89 -0
  77. package/dist/session.js.map +1 -1
  78. package/dist/tools/analyze.d.ts +41 -1
  79. package/dist/tools/analyze.d.ts.map +1 -1
  80. package/dist/tools/analyze.js +81 -8
  81. package/dist/tools/analyze.js.map +1 -1
  82. package/dist/tools/browser-click.d.ts +36 -0
  83. package/dist/tools/browser-click.d.ts.map +1 -0
  84. package/dist/tools/browser-click.js +117 -0
  85. package/dist/tools/browser-click.js.map +1 -0
  86. package/dist/tools/browser-close-session.d.ts +24 -0
  87. package/dist/tools/browser-close-session.d.ts.map +1 -0
  88. package/dist/tools/browser-close-session.js +63 -0
  89. package/dist/tools/browser-close-session.js.map +1 -0
  90. package/dist/tools/browser-fill.d.ts +49 -0
  91. package/dist/tools/browser-fill.d.ts.map +1 -0
  92. package/dist/tools/browser-fill.js +138 -0
  93. package/dist/tools/browser-fill.js.map +1 -0
  94. package/dist/tools/browser-navigate.d.ts +32 -0
  95. package/dist/tools/browser-navigate.d.ts.map +1 -0
  96. package/dist/tools/browser-navigate.js +103 -0
  97. package/dist/tools/browser-navigate.js.map +1 -0
  98. package/dist/tools/browser-run-scenario.d.ts +54 -0
  99. package/dist/tools/browser-run-scenario.d.ts.map +1 -0
  100. package/dist/tools/browser-run-scenario.js +228 -0
  101. package/dist/tools/browser-run-scenario.js.map +1 -0
  102. package/dist/tools/browser-save-scenario.d.ts +44 -0
  103. package/dist/tools/browser-save-scenario.d.ts.map +1 -0
  104. package/dist/tools/browser-save-scenario.js +298 -0
  105. package/dist/tools/browser-save-scenario.js.map +1 -0
  106. package/dist/tools/browser-snapshot.d.ts +60 -0
  107. package/dist/tools/browser-snapshot.d.ts.map +1 -0
  108. package/dist/tools/browser-snapshot.js +139 -0
  109. package/dist/tools/browser-snapshot.js.map +1 -0
  110. package/dist/tools/browser-start-session.d.ts +43 -0
  111. package/dist/tools/browser-start-session.d.ts.map +1 -0
  112. package/dist/tools/browser-start-session.js +272 -0
  113. package/dist/tools/browser-start-session.js.map +1 -0
  114. package/dist/tools/browser-type.d.ts +48 -0
  115. package/dist/tools/browser-type.d.ts.map +1 -0
  116. package/dist/tools/browser-type.js +136 -0
  117. package/dist/tools/browser-type.js.map +1 -0
  118. package/dist/tools/contracts.d.ts +15 -0
  119. package/dist/tools/contracts.d.ts.map +1 -1
  120. package/dist/tools/contracts.js +14 -3
  121. package/dist/tools/contracts.js.map +1 -1
  122. package/dist/tools/git-diff.d.ts.map +1 -1
  123. package/dist/tools/git-diff.js +85 -6
  124. package/dist/tools/git-diff.js.map +1 -1
  125. package/dist/tools/impact.d.ts +9 -0
  126. package/dist/tools/impact.d.ts.map +1 -1
  127. package/dist/tools/impact.js +3 -3
  128. package/dist/tools/impact.js.map +1 -1
  129. package/dist/tools/index.d.ts +9 -0
  130. package/dist/tools/index.d.ts.map +1 -1
  131. package/dist/tools/index.js +27 -0
  132. package/dist/tools/index.js.map +1 -1
  133. package/dist/tools/kit.d.ts +10 -1
  134. package/dist/tools/kit.d.ts.map +1 -1
  135. package/dist/tools/kit.js +2 -0
  136. package/dist/tools/kit.js.map +1 -1
  137. package/dist/tools/observe-runtime.d.ts +113 -19
  138. package/dist/tools/observe-runtime.d.ts.map +1 -1
  139. package/dist/tools/observe-runtime.js +324 -53
  140. package/dist/tools/observe-runtime.js.map +1 -1
  141. package/dist/tools/observe-tests.d.ts +125 -0
  142. package/dist/tools/observe-tests.d.ts.map +1 -0
  143. package/dist/tools/observe-tests.js +313 -0
  144. package/dist/tools/observe-tests.js.map +1 -0
  145. package/dist/tools/pr-analysis.d.ts +11 -0
  146. package/dist/tools/pr-analysis.d.ts.map +1 -1
  147. package/dist/tools/pr-analysis.js +3 -3
  148. package/dist/tools/pr-analysis.js.map +1 -1
  149. package/dist/tools/pre-push.d.ts +77 -0
  150. package/dist/tools/pre-push.d.ts.map +1 -0
  151. package/dist/tools/pre-push.js +250 -0
  152. package/dist/tools/pre-push.js.map +1 -0
  153. package/dist/tools/questions.d.ts.map +1 -1
  154. package/dist/tools/questions.js +41 -16
  155. package/dist/tools/questions.js.map +1 -1
  156. package/dist/tools/verification-status.d.ts +22 -0
  157. package/dist/tools/verification-status.d.ts.map +1 -1
  158. package/dist/tools/verification-status.js +51 -5
  159. package/dist/tools/verification-status.js.map +1 -1
  160. package/package.json +14 -13
@@ -52,26 +52,41 @@
52
52
  *
53
53
  * ## What this closure can actually witness today — measured, not assumed
54
54
  *
55
- * The wire is complete and the arrow it carries is narrow, and the second half
56
- * of that sentence is worth stating plainly because a reader would otherwise
57
- * infer it from a zero. HTTP evidence carrying a call-site stack is emitted by
58
- * exactly one collector in `descry-runtime`: the browser network collector,
59
- * via its `fetch()` initiator capture. Checked across every collector in this
60
- * server's dependency closure — `InboundProxy` emits `{method, path, status}`
61
- * and no stack; `ExternalRequestCollector` sets `stackTrace: null` outright,
62
- * because it parses a log line the application printed and a printed line
63
- * carries no stack; `LogCollector` (the only thing the TypeScript runtime
64
- * adapter builds) attaches a stack to log and error lines, which resolve a
65
- * FUNCTION and name no endpoint.
66
- *
67
- * So a backend-only run resolves both kinds of node and writes no edge. The
68
- * composition is right, the gate is real, and the arrow is currently reachable
69
- * only from a browser-driven run — which `runInstrumentedExecution`'s own
70
- * contract explicitly does not do ("does not drive a browser"), and which is
71
- * therefore a different orchestration rather than a missing argument here.
72
- * `STANDING_NOTES` says this on every call, whatever the counts come back as,
55
+ * The wire is complete, and what it can carry changed when the runtime packages
56
+ * were published at 0.1.0 and pinned here — so this paragraph is the record of
57
+ * a limit that was real and is now lifted, kept rather than deleted because the
58
+ * shape of it recurs.
59
+ *
60
+ * **It used to be that no producer of the required pair — HTTP evidence
61
+ * carrying a call-site stack — was in this server's closure.** The browser
62
+ * network collector never has been. The outbound-fetch instrumentation in
63
+ * `@descryy/runtime-external-service-observation` existed, was proven in
64
+ * `descry-runtime`, and was not installed here at all. So a run resolved both
65
+ * kinds of node and wrote no edge, and `STANDING_NOTES` said so on every call
73
66
  * because "no edge was written" and "nothing here could have written one" are
74
- * different statements and only the second one is a fact about Descry.
67
+ * different statements.
68
+ *
69
+ * **That second producer is now in the closure**, transitively through
70
+ * `@descryy/runtime-orchestrator`, which applies the adapter's
71
+ * `outboundHttpLaunch()` between the interpreter and the script so the client
72
+ * is patched before any application code can capture an unpatched one. Measured
73
+ * end to end in `observe-runtime-outbound.conformance.test.ts`: two real
74
+ * processes, 17 `EXTERNAL_REQUEST` items alongside 18 `BACKEND_LOG`, one
75
+ * `USES_API` edge minted at R4, and the first `strongly supported` reply this
76
+ * server has produced.
77
+ *
78
+ * **Two limits remain, and they are stated rather than inferred from a zero.**
79
+ * An *attached* service is not launched by Descry, so the instrumentation
80
+ * cannot be installed into it and its outbound calls carry no stack. And
81
+ * browser-side traffic still needs `@descryy/runtime-browser`, which is not
82
+ * here. Both are in `STANDING_NOTES`.
83
+ *
84
+ * The rule that outlives all of it: a disclosure about the closure is a fact
85
+ * about *this build*, not about what `descry-runtime` can do. The two came
86
+ * apart once already, when the cross-boundary lane landed and this file still
87
+ * claimed the capability was absent. Re-check it against the installed tree
88
+ * when the pins move, not against the source repository.
89
+ * Descry.
75
90
  *
76
91
  * ## Why no denial is ever emitted
77
92
  *
@@ -109,6 +124,7 @@
109
124
  */
110
125
  import { mkdir } from "node:fs/promises";
111
126
  import { dirname, isAbsolute, join } from "node:path";
127
+ import { independentSignalTypes } from "@descryy/ir";
112
128
  import { buildGraph, counts, createConfirmedIncidentSource, persistGraph, } from "@descryy/core";
113
129
  import { evaluateAction, validateProfile } from "@descryy/runtime-environment-profile";
114
130
  import { correlateExecution } from "@descryy/runtime-evidence-correlation";
@@ -163,13 +179,25 @@ const SCHEMA = {
163
179
  command: { type: "string", description: "How to start it. Omit when using \"attach\"." },
164
180
  cwd: {
165
181
  type: "string",
166
- description: "Working directory. Relative paths resolve against the repository root.",
182
+ description: "The directory this service is started in. Relative paths resolve against the " +
183
+ "repository root. REQUIRED with \"command\". With \"attach\" it is required only " +
184
+ "for a \"command\" readiness check, which is an executable Descry runs in it; for " +
185
+ "an \"http\" or \"tcp-port\" check it is not needed at all, because nothing is " +
186
+ "started and Descry never executes code in a process it did not spawn.",
167
187
  },
188
+ // The description below is the fix for the single most expensive
189
+ // ergonomic gap this tool has: three failed runs in one real
190
+ // investigation, all the same root cause wearing different clothes,
191
+ // and the explanation both times living in a source comment.
168
192
  port: {
169
193
  type: "integer",
170
- description: "Explicit opt-in only. Omit to get an ephemeral port. An attached service should set " +
171
- "this when you already know what the running target bound — nothing here can allocate " +
172
- "one on its behalf.",
194
+ description: "The port readiness checks against, and the two modes need opposite things from you. " +
195
+ "With \"attach\": REQUIRED whenever readiness is \"http\" or \"tcp-port\" — the target " +
196
+ "chose its port before Descry saw it, and nothing in a pid or a log path reveals which, " +
197
+ "so this is refused up front rather than guessed. With \"command\": omit to get an " +
198
+ "ephemeral port, which is passed to your command as PORT; set it only if your command " +
199
+ "hardcodes a port, and then it must be THAT port — a readiness check against a port " +
200
+ "your command did not bind fails while the service is perfectly healthy.",
173
201
  },
174
202
  dependsOn: {
175
203
  type: "array",
@@ -213,7 +241,7 @@ const SCHEMA = {
213
241
  additionalProperties: false,
214
242
  },
215
243
  },
216
- required: ["cwd", "readiness"],
244
+ required: ["readiness"],
217
245
  additionalProperties: false,
218
246
  },
219
247
  },
@@ -356,10 +384,39 @@ function readServices(args, repoPath) {
356
384
  if (command !== undefined && typeof command !== "string") {
357
385
  throw new ToolInputError(`"services.${name}.command" must be a string`);
358
386
  }
359
- const cwd = entry["cwd"];
360
- if (typeof cwd !== "string" || cwd === "") {
361
- throw new ToolInputError(`"services.${name}.cwd" is required and must be a non-empty string`);
387
+ // Read once, here, because two separate rules below need it: whether a
388
+ // `cwd` is required at all, and whether an attached service must state its
389
+ // port.
390
+ const readinessRaw = entry["readiness"];
391
+ const readinessKind = typeof readinessRaw === "object" && readinessRaw !== null && !Array.isArray(readinessRaw)
392
+ ? readinessRaw["kind"]
393
+ : undefined;
394
+ // `cwd` is required exactly where something will be executed in it, and
395
+ // nowhere else. Descry spawns nothing for an attached service and never
396
+ // executes code in a process it did not spawn, so for an attached service
397
+ // with an `http` or `tcp-port` check the value is inert — demanding it
398
+ // makes the caller invent a path that changes nothing. A `command` check
399
+ // *is* executed, in this directory, so it still needs one.
400
+ //
401
+ // The runtime contract's `ServiceConfiguration.cwd` is non-optional, so
402
+ // something must be supplied downstream either way; the repository root is
403
+ // the inert choice, and it is inert precisely because nothing runs there
404
+ // on this path.
405
+ // (`DEC-388`.)
406
+ const cwdRaw = entry["cwd"];
407
+ if (cwdRaw !== undefined && (typeof cwdRaw !== "string" || cwdRaw === "")) {
408
+ throw new ToolInputError(`"services.${name}.cwd" must be a non-empty string`);
409
+ }
410
+ if (cwdRaw === undefined && attachRaw === undefined) {
411
+ throw new ToolInputError(`"services.${name}.cwd" is required and must be a non-empty string: it is the directory ` +
412
+ `"${name}" is started in.`);
362
413
  }
414
+ if (cwdRaw === undefined && attachRaw !== undefined && readinessKind === "command") {
415
+ throw new ToolInputError(`"services.${name}.cwd" is required when "${name}" uses "attach" with a "command" ` +
416
+ "readiness check: the check is an executable Descry runs, and it runs in this " +
417
+ "directory. Attaching needs no cwd otherwise — nothing is started.");
418
+ }
419
+ const cwd = cwdRaw ?? repoPath;
363
420
  const port = entry["port"];
364
421
  if (port !== undefined && (typeof port !== "number" || !Number.isInteger(port) || port < 0)) {
365
422
  throw new ToolInputError(`"services.${name}.port" must be a non-negative integer`);
@@ -390,6 +447,25 @@ function readServices(args, repoPath) {
390
447
  throw new ToolInputError(`"services.${name}.attach.logFilePath" is required`);
391
448
  }
392
449
  attach = { pid, logFilePath };
450
+ // A spawned service gets an ephemeral port allocated for it; an attached
451
+ // one cannot, because the target chose its own port before Descry
452
+ // existed and nothing in a pid or a log path reveals which. The
453
+ // controller's refusal to guess is deliberate and right — but expressed
454
+ // as `port ?? 0`, it surfaces to a caller as a readiness check timing
455
+ // out against port 0 some seconds later, with the actual explanation
456
+ // living in a source comment they cannot see. Twice in one real
457
+ // investigation that cost a full failed run to rediscover. So it is
458
+ // refused here, by name, before anything starts.
459
+ //
460
+ // Only for the two checks that resolve a port. A "command" check runs an
461
+ // executable and never asks where the service listens, so demanding a
462
+ // port for it would be a second wrong answer in the other direction.
463
+ if ((readinessKind === "http" || readinessKind === "tcp-port") && port === undefined) {
464
+ throw new ToolInputError(`"services.${name}.port" is required when "${name}" uses "attach" with a ` +
465
+ `"${readinessKind}" readiness check: the check needs a port and an attached target's ` +
466
+ "port cannot be allocated or inferred — it is whatever the already-running process " +
467
+ "bound. State it, or use a \"command\" readiness check, which needs none.");
468
+ }
393
469
  }
394
470
  const configuration = {
395
471
  ...(typeof command === "string" ? { command } : {}),
@@ -534,20 +610,75 @@ const STANDING_NOTES = [
534
610
  "stack resolving to a function, against an endpoint the same observation named. Every other " +
535
611
  "correlated evidence item resolves a node and produces no edge, which is a gap in what this run " +
536
612
  "could prove rather than evidence that no such edge exists.",
537
- "That combination — HTTP evidence carrying a call-site stack — is produced today only by a browser " +
538
- "network collector, which is not in this server's dependency closure. Backend collectors attach a " +
539
- "stack to log and error lines (resolving a function) and attach none to HTTP traffic (resolving an " +
540
- "endpoint), so a backend-only run resolves both kinds of node and writes no edge. That is a real " +
541
- "limit of what can be witnessed here, not a failure of this run, and it is stated on every call " +
542
- "rather than inferred from a zero.",
613
+ "That combination — HTTP evidence carrying a call-site stack — is produced here by the outbound-fetch " +
614
+ "instrumentation in @descryy/runtime-external-service-observation, which this server installs into a " +
615
+ "spawned service before any application code runs. So an observed outbound call CAN write this edge, " +
616
+ "and a run that makes none writes none: the backend collectors attach a stack to log and error lines " +
617
+ "(resolving a function) and none to inbound HTTP traffic (resolving an endpoint), so a service that " +
618
+ "never calls out resolves both kinds of node and still writes nothing. A zero here means this run " +
619
+ "observed no outbound call it could attribute, not that no such call exists in your code.",
620
+ "Two things this still cannot witness. An ATTACHED service is not launched by Descry, so the client " +
621
+ "instrumentation cannot be installed into it and its outbound calls carry no call-site stack. And " +
622
+ "browser-side requests need @descryy/runtime-browser, which is not in this server's closure — the " +
623
+ "browser_* tools refuse with a named remedy rather than appearing to work.",
543
624
  "No denial is ever recorded. A run establishes that a call happened; it cannot establish that one " +
544
625
  "did not, because it exercises only the paths it took. Nothing here demotes an edge.",
545
626
  ];
546
- async function run(args, ctx) {
547
- const session = ctx.session;
627
+ /**
628
+ * Said on every run that attaches, because it explains an absence that
629
+ * otherwise reads as a Descry defect — and did, in a real investigation, until
630
+ * it was measured.
631
+ *
632
+ * A request fired partway through an observation window did not appear in the
633
+ * evidence, and appeared in the log file afterwards. The obvious reading is
634
+ * that observation stopped early. It did not: reproduced end to end against a
635
+ * real attached service, a request fired at t≈5s of a 12s window landed in the
636
+ * evidence store, timestamped correctly. What actually happens is one layer
637
+ * out — a process whose stdout is redirected to a file is block-buffered, not
638
+ * line-buffered, because the descriptor is not a terminal. Measured directly:
639
+ * three lines written over 0.6s were still entirely absent from the file three
640
+ * seconds later, and arrived only when the process flushed.
641
+ *
642
+ * Nothing in Descry can see those bytes; they are in the target's own
643
+ * userspace buffer. So this is not a gap to close, it is a boundary to state —
644
+ * and stating it is what separates "we did not see it" from "it was not
645
+ * there", which is the whole difference this tool exists to preserve.
646
+ *
647
+ * Written for any redirected process, naming no language or framework: the
648
+ * behaviour is the C standard library's, and a note scoped to one ecosystem
649
+ * would invite one more such note per ecosystem.
650
+ */
651
+ const ATTACH_BUFFERING_NOTE = "Attaching reads a file the target writes; it can only see what the target has already flushed " +
652
+ "there. A process whose output is redirected to a file is usually block-buffered rather than " +
653
+ "line-buffered — its own runtime holds whole lines in a userspace buffer, invisible from outside, " +
654
+ "until the buffer fills or the process flushes. Output produced during this window may therefore " +
655
+ "arrive in the file after the window closed and be absent here, which is a fact about the " +
656
+ "target's buffering and not evidence that it did nothing. Run the target with its output " +
657
+ "unbuffered or line-buffered if the timing matters.";
658
+ /**
659
+ * Every argument this tool takes, read and validated in one place.
660
+ *
661
+ * Extracted from `run` so that `describeAction` can call it too. That is the
662
+ * whole point of the extraction: an `action` tool's first call is the one a
663
+ * caller makes *before* it has a token, and therefore the only cheap place to
664
+ * learn its arguments are wrong. Minting a token, and a paragraph describing
665
+ * an action, for a declaration that cannot possibly run asks a developer to
666
+ * confirm something that was never going to happen — and delivers the real
667
+ * refusal on the second call, after the confirmation.
668
+ *
669
+ * Nothing here touches the filesystem, spawns anything or reads the graph: it
670
+ * is argument reading and nothing else, which is what makes it safe to run at
671
+ * mint time, outside the call budget.
672
+ *
673
+ * Ruled in `documents/decisions-inbox/DEC-387.md`.
674
+ *
675
+ * Exported for its own test: several of the argument rules are conditional and
676
+ * cheaper to assert directly than through a full run.
677
+ */
678
+ export function readArguments(args, repoPath) {
548
679
  const profile = readProfile(args);
549
680
  const adapterSpec = readAdapterSpec(args);
550
- const declared = readServices(args, session.repoPath);
681
+ const declared = readServices(args, repoPath);
551
682
  const observeForMs = optionalInteger(args, "observeForMs", 1) ?? DEFAULT_OBSERVE_MS;
552
683
  const timeoutMs = optionalInteger(args, "timeoutMs", 1) ?? DEFAULT_TIMEOUT_MS;
553
684
  const fidelityRaw = optionalInteger(args, "fidelityLevel", 1) ?? 2;
@@ -556,11 +687,22 @@ async function run(args, ctx) {
556
687
  const environmentTier = optionalString(args, "environmentTier") ?? "tier-2-container";
557
688
  const evidenceArg = optionalString(args, "evidencePath");
558
689
  const evidencePath = evidenceArg === undefined
559
- ? join(session.repoPath, DEFAULT_EVIDENCE_RELATIVE_PATH)
690
+ ? join(repoPath, DEFAULT_EVIDENCE_RELATIVE_PATH)
560
691
  : isAbsolute(evidenceArg)
561
692
  ? evidenceArg
562
- : join(session.repoPath, evidenceArg);
693
+ : join(repoPath, evidenceArg);
694
+ return { profile, adapterSpec, declared, observeForMs, timeoutMs, fidelityRaw, environmentTier, evidencePath };
695
+ }
696
+ async function run(args, ctx) {
697
+ const session = ctx.session;
698
+ const { profile, adapterSpec, declared, observeForMs, timeoutMs, fidelityRaw, environmentTier, evidencePath } = readArguments(args, session.repoPath);
563
699
  const notes = [...STANDING_NOTES];
700
+ // Added on the refusal paths too, deliberately. A caller who attaches and is
701
+ // then refused for some unrelated reason will fix that reason and attach
702
+ // again; telling them about the buffering only on the success path means
703
+ // telling them after the run whose result it would have explained.
704
+ if (declared.some((service) => service.attached))
705
+ notes.push(ATTACH_BUFFERING_NOTE);
564
706
  const base = session.provider().baseStamp();
565
707
  const refuse = (headline, data = {}) => answer({
566
708
  headline,
@@ -679,6 +821,32 @@ async function run(args, ctx) {
679
821
  evidenceByType,
680
822
  });
681
823
  }
824
+ // **The declared budget expired before the observation window closed.**
825
+ // `timeoutMs` is published in this tool's schema as the whole-execution
826
+ // budget, and it reaches `ExecutionConfiguration` where the controller
827
+ // arms a timer for it — that timer kills the services and nothing else.
828
+ // Measured: an 8s budget on a live attach returned after ~90s, and a
829
+ // 1.5s budget over a 12s window returned after 12.3s with zero evidence,
830
+ // because the processes had been dead for the last 10.8s of a window
831
+ // nothing shortened (`DEC-NEXT-observe-runtime-timeout-budget-is-not-
832
+ // enforced.md`). The window is now clamped in the orchestrator; this is
833
+ // the other half — saying so.
834
+ //
835
+ // Reported as `timed_out` rather than `ok`. §6 calls that state "not a
836
+ // silent truncation and never a `failed`", which is exactly this run: the
837
+ // evidence below is real and the R4 writes below it are honest, there is
838
+ // simply less of both than was asked for. `ok` would make "we watched the
839
+ // whole window and it was quiet" indistinguishable from "we stopped
840
+ // watching a tenth of the way in", and a caller acting on the first
841
+ // concludes the application is fine.
842
+ const timedOut = execution.execution.state === "TIMED_OUT";
843
+ if (timedOut) {
844
+ notes.push(`This run hit its ${String(timeoutMs)}ms whole-execution budget before the ` +
845
+ `${String(observeForMs)}ms observation window closed, so every service was stopped early and ` +
846
+ "the evidence below is partial — every count is a floor, not a total. Nothing here says the " +
847
+ "application produced no further output; only that this run stopped listening for it. Raise " +
848
+ '"timeoutMs" clear of the observation window, or shorten "observeForMs".');
849
+ }
682
850
  ctx.progress(`Correlating ${String(execution.evidence.length)} evidence item(s) against the graph`);
683
851
  const pass = correlateExecution({
684
852
  store: evidenceStore,
@@ -786,7 +954,11 @@ async function run(args, ctx) {
786
954
  // Deliberately not `empty` when nothing was witnessed: `empty` is a claim
787
955
  // about the population, and "this run took no path that exercised the
788
956
  // code" is not "this code does nothing". The counts say what happened.
789
- state: "ok",
957
+ //
958
+ // `timed_out` when the budget bound this run — see the block above. It
959
+ // is the same distinction one step further out: `empty` and `ok` both
960
+ // claim the window was watched to its end.
961
+ state: timedOut ? "timed_out" : "ok",
790
962
  nameLevel: true,
791
963
  // R4 unconditionally, and honestly so — every fact in `wrote` was
792
964
  // witnessed at runtime, which is the one resolution level that does not
@@ -795,6 +967,20 @@ async function run(args, ctx) {
795
967
  // a run that wrote nothing reports R0 rather than borrowing the tier its
796
968
  // successful path would have reached.
797
969
  resolutionFloor: (written > 0 ? 4 : 0),
970
+ // G3's precondition and G4's `E`, declared because this run actually
971
+ // watched something. Only on a path where evidence really came back: a
972
+ // completed run that collected nothing witnessed nothing, and saying
973
+ // otherwise would assert a precondition on an empty array.
974
+ //
975
+ // Note this is deliberately *not* gated on `written > 0`. Whether an
976
+ // edge could be written is a fact about the graph path, and rule 3
977
+ // already caps the category through `resolutionFloor` just above — a
978
+ // run that saw three channels and wrote no edge is reported
979
+ // `unconfirmed` by the cap, not by pretending it saw nothing. Two
980
+ // separate facts, each stated once.
981
+ ...(execution.evidence.length === 0
982
+ ? {}
983
+ : { runtimeEvidence: { independentSignalTypes: witnessedSignalTypes(execution.evidence) } }),
798
984
  commitSha: base.commitSha,
799
985
  graphBuiltAt: base.graphBuiltAt,
800
986
  irSchemaVersion: base.irSchemaVersion,
@@ -847,6 +1033,75 @@ function tally(evidence) {
847
1033
  byType[item.eventType] = (byType[item.eventType] ?? 0) + 1;
848
1034
  return byType;
849
1035
  }
1036
+ /**
1037
+ * One evidence row onto one of `@descryy/ir`'s six `RUNTIME_SIGNAL_TYPES`, or
1038
+ * `null`.
1039
+ *
1040
+ * **Decided by `eventType`, with `source` consulted only where the event type
1041
+ * is genuinely ambiguous** — an exception can come off a browser console or a
1042
+ * backend process, and nothing but the collector says which. The obvious
1043
+ * alternative, reading `source` alone, is wrong and was measured to be wrong
1044
+ * rather than reasoned about: every row this repository's own conformance run
1045
+ * produces carries `source: "backend-process"`, and `EVIDENCE_SOURCES` also
1046
+ * has a `backend-log` value that nothing in the shipped dependency closure
1047
+ * emits. A source-driven table would have counted zero channels on every real
1048
+ * run while passing a hand-built test — the exact shape of failure that gets
1049
+ * caught by running the thing.
1050
+ *
1051
+ * **Everything not listed returns `null` and is counted as nothing.** That is
1052
+ * `RuntimeEvidence`'s own rule, not caution added here: `TEST_*` is excluded
1053
+ * by design (its evidentiary weight is `M`'s, never double-counted as a
1054
+ * channel too), harness actions are Descry driving the application rather than
1055
+ * observing it, process lifecycle is a fact about the process rather than
1056
+ * about its behaviour, and a collector or version-mismatch error is a fact
1057
+ * about the run. A kind this table has not ruled on must fail closed, because
1058
+ * the alternative — mapping it to the nearest-looking channel — raises `E`,
1059
+ * and therefore the reported category, with nobody having decided that it
1060
+ * should.
1061
+ */
1062
+ function signalOf(item) {
1063
+ switch (item.eventType) {
1064
+ case "CONSOLE_MESSAGE":
1065
+ return "browser-console";
1066
+ case "NETWORK_REQUEST":
1067
+ case "NETWORK_RESPONSE":
1068
+ case "HTTP_ERROR":
1069
+ case "WEBSOCKET_CLOSED":
1070
+ return "network";
1071
+ case "SCREENSHOT":
1072
+ case "VIDEO":
1073
+ return "browser-visual";
1074
+ case "BACKEND_LOG":
1075
+ return "backend-log";
1076
+ case "DATABASE_QUERY":
1077
+ return "database";
1078
+ case "EXTERNAL_REQUEST":
1079
+ return "external-service";
1080
+ // The ambiguous pair, and the only place `source` decides: a thrown error
1081
+ // reaches Descry through whichever collector saw it, and that collector is
1082
+ // the channel.
1083
+ case "EXCEPTION":
1084
+ case "STACK_TRACE":
1085
+ return item.source === "browser-console" ? "browser-console" : "backend-log";
1086
+ default:
1087
+ return null;
1088
+ }
1089
+ }
1090
+ /**
1091
+ * `E` for this run — how many of the six channels it actually saw.
1092
+ *
1093
+ * The count itself is `@descryy/ir`'s `independentSignalTypes`, deliberately:
1094
+ * the clamp to six and the drop of `null` signals are that function's rules,
1095
+ * and a second implementation of them here is a second place for the
1096
+ * vocabulary to drift. This function's only job is the translation above.
1097
+ *
1098
+ * Exported for its own test — the mapping decides whether a witnessed answer
1099
+ * reads `strongly supported` or `unconfirmed`, which is too load-bearing to be
1100
+ * asserted only through a category two layers downstream.
1101
+ */
1102
+ export function witnessedSignalTypes(evidence) {
1103
+ return independentSignalTypes(evidence.map((item) => ({ signal: signalOf(item), detail: item.eventType })));
1104
+ }
850
1105
  /**
851
1106
  * The R4 write, and the one join this tool performs itself.
852
1107
  *
@@ -911,21 +1166,31 @@ function writeObservations(input) {
911
1166
  * that makes it not run anything. Every valid call spawns or attaches, and
912
1167
  * every one of them can write.
913
1168
  */
914
- function describeAction(args) {
915
- const services = args["services"];
916
- if (typeof services !== "object" || services === null)
917
- return undefined;
918
- const names = Object.keys(services);
919
- if (names.length === 0)
920
- return undefined;
921
- const entries = services;
922
- const spawned = names.filter((n) => entries[n]?.attach === undefined);
923
- const attached = names.filter((n) => entries[n]?.attach !== undefined);
1169
+ /**
1170
+ * §7's `willDo`, and — since `readArguments` is the first thing it does — the
1171
+ * point where an invalid call is refused.
1172
+ *
1173
+ * Returns a string on every valid call rather than ever returning `undefined`:
1174
+ * `undefined` means "this particular call has nothing to confirm", and there
1175
+ * is no such call here. Every accepted declaration boots or attaches to
1176
+ * something and may write durable R4 facts.
1177
+ *
1178
+ * Reads the *parsed* services rather than the raw object, so the sentence a
1179
+ * developer confirms is built from the same values the run will use — which
1180
+ * is also what makes "spawn" and "attach" here mean exactly what
1181
+ * `readServices` decided they mean, rather than a second, looser guess at the
1182
+ * same distinction.
1183
+ */
1184
+ function describeAction(args, ctx) {
1185
+ const { declared } = readArguments(args, ctx.session.repoPath);
1186
+ const spawned = declared.filter((service) => !service.attached).map((service) => service.name);
1187
+ const attached = declared.filter((service) => service.attached).map((service) => service.name);
924
1188
  const parts = [];
925
1189
  if (spawned.length > 0)
926
- parts.push(`start ${spawned.length} service(s) (${spawned.join(", ")})`);
927
- if (attached.length > 0)
928
- parts.push(`attach to ${attached.length} already-running service(s) (${attached.join(", ")})`);
1190
+ parts.push(`start ${String(spawned.length)} service(s) (${spawned.join(", ")})`);
1191
+ if (attached.length > 0) {
1192
+ parts.push(`attach to ${String(attached.length)} already-running service(s) (${attached.join(", ")})`);
1193
+ }
929
1194
  return (`${parts.join(" and ")}, observe them, and write any edge the run witnesses into this ` +
930
1195
  "repository's graph at R4 — a durable fact that raises every later finding resting on it to " +
931
1196
  "reliability class A, and that survives re-indexing. Nothing is ever demoted or deleted.");
@@ -943,7 +1208,13 @@ export const observeRuntimeTool = {
943
1208
  "already read the resolution field. Running takes a two-call confirmation — the first call " +
944
1209
  "performs nothing and returns a token describing what it would do; call again with " +
945
1210
  "\"confirmToken\" to actually run it. The environment profile's declared safetyLevel is checked " +
946
- "before anything starts: booting is a write, attaching is not.",
1211
+ "before anything starts: booting is a write, attaching is not. " +
1212
+ "BEFORE CALLING: this observes an application you can already run — it does not help you get to " +
1213
+ "a runnable state, and that boundary is real rather than apologetic. Its dependencies must be up, " +
1214
+ "its environment set, and its migrations applied, all by you. One trap worth stating because it " +
1215
+ "is invisible: overriding some environment variables does not isolate a run from the " +
1216
+ "application's own configuration file — anything you did not explicitly override is still read " +
1217
+ "from it, including values naming environments you did not intend to touch.",
947
1218
  inputSchema: SCHEMA,
948
1219
  run,
949
1220
  describeAction,
@@ -1 +1 @@
1
- {"version":3,"file":"observe-runtime.js","sourceRoot":"","sources":["../../src/tools/observe-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observe-runtime.js","sourceRoot":"","sources":["../../src/tools/observe-runtime.ts"],"names":[],"mappings":"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"}