#751 by GitHub stars

reticlehq/reticle

AI agents can generate code, but still struggle to understand what they build. Reticle brings Jev-style machine-native runtime perception to web & desktop applications.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

SKILL.md

Week of Nov 2, 2026 · +2 / −2 lines

Before Network or broad shell → After Network or broad shell

b557b2069555 → 7ba2190f2195

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → b557b2069555

No earlier version was observed for comparison.

Compare on GitHub

docs/SKILL.md

Week of Nov 2, 2026 · +2 / −2 lines

Before Network or broad shell → After Network or broad shell

b557b2069555 → 7ba2190f2195

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → b557b2069555

No earlier version was observed for comparison.

Compare on GitHub

plugins/reticle/SKILL.md

Week of Nov 2, 2026 · +2 / −2 lines

Before Network or broad shell → After Network or broad shell

b557b2069555 → 7ba2190f2195

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → b557b2069555

No earlier version was observed for comparison.

Compare on GitHub

skills/agentic-tdd/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

b557b2069555 → 7ba2190f2195

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → b557b2069555

No earlier version was observed for comparison.

Compare on GitHub

skills/audit-my-app/SKILL.md

Week of Nov 2, 2026 · +1 / −1 lines

Before Network or broad shell → After Network or broad shell

b557b2069555 → 7ba2190f2195

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → b557b2069555

No earlier version was observed for comparison.

Compare on GitHub

skills/debug-broken-ui/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

b557b2069555 → 7ba2190f2195

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → b557b2069555

No earlier version was observed for comparison.

Compare on GitHub

skills/design-system-compliance/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

b557b2069555 → 7ba2190f2195

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → b557b2069555

No earlier version was observed for comparison.

Compare on GitHub

skills/drive-desktop-app/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

b557b2069555 → 7ba2190f2195

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → b557b2069555

No earlier version was observed for comparison.

Compare on GitHub

skills/false-green-tests/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

b557b2069555 → 7ba2190f2195

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → b557b2069555

No earlier version was observed for comparison.

Compare on GitHub

skills/fix-what-i-pointed-at/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

b557b2069555 → 7ba2190f2195

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → b557b2069555

No earlier version was observed for comparison.

Compare on GitHub

skills/install-and-verify/SKILL.md

Week of Nov 2, 2026 · +2 / −2 lines

Before Network or broad shell → After Network or broad shell

b557b2069555 → 7ba2190f2195

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → b557b2069555

No earlier version was observed for comparison.

Compare on GitHub

skills/replay-user-flows/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

b557b2069555 → 7ba2190f2195

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → b557b2069555

No earlier version was observed for comparison.

Compare on GitHub

skills/reticle/SKILL.md

Week of Nov 2, 2026 · +2 / −2 lines

Before Network or broad shell → After Network or broad shell

b557b2069555 → 7ba2190f2195

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → b557b2069555

No earlier version was observed for comparison.

Compare on GitHub

skills/test-error-states/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

b557b2069555 → 7ba2190f2195

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → b557b2069555

No earlier version was observed for comparison.

Compare on GitHub

skills/verify-cli-run/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

b557b2069555 → 7ba2190f2195

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → b557b2069555

No earlier version was observed for comparison.

Compare on GitHub

skills/verify-form-validation/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

b557b2069555 → 7ba2190f2195

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → b557b2069555

No earlier version was observed for comparison.

Compare on GitHub

skills/verify-keyboard-access/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

b557b2069555 → 7ba2190f2195

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → b557b2069555

No earlier version was observed for comparison.

Compare on GitHub

skills/verify-language-switch/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

b557b2069555 → 7ba2190f2195

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → b557b2069555

No earlier version was observed for comparison.

Compare on GitHub

skills/verify-login-logout/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

b557b2069555 → 7ba2190f2195

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → b557b2069555

No earlier version was observed for comparison.

Compare on GitHub

skills/verify-optimistic-update/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

b557b2069555 → 7ba2190f2195

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → b557b2069555

No earlier version was observed for comparison.

Compare on GitHub

skills/verify-pagination/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

b557b2069555 → 7ba2190f2195

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → b557b2069555

No earlier version was observed for comparison.

Compare on GitHub

skills/verify-ui-change/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

b557b2069555 → 7ba2190f2195

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → b557b2069555

No earlier version was observed for comparison.

Compare on GitHub

skills/verify-unattended/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

b557b2069555 → 7ba2190f2195

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → b557b2069555

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 7ba2190f2195d49b5e6fa469e09ad20d99007a0d

git clone --filter=blob:none --no-checkout https://github.com/reticlehq/reticle.git .hotskills/reticlehq-reticle && git -C .hotskills/reticlehq-reticle checkout --detach 7ba2190f2195d49b5e6fa469e09ad20d99007a0d # Copy each selected skill directory from .hotskills/reticlehq-reticle into .claude/skills/<skill-name>/
git clone --filter=blob:none --no-checkout https://github.com/reticlehq/reticle.git .hotskills/reticlehq-reticle && git -C .hotskills/reticlehq-reticle checkout --detach 7ba2190f2195d49b5e6fa469e09ad20d99007a0d # Copy each selected skill directory from .hotskills/reticlehq-reticle into .agents/skills/<skill-name>/
1.2kGitHub stars
-48stars in 7 days
23skills in this repository
411commits in 30 days

Heat

1.3
  • Star growth, last 7 daysAhead of 0% of tracked repositories
  • Star growth, last 24 hoursAhead of 1% of tracked repositories
  • Rank movement, last 7 daysAhead of 1% of tracked repositories
  • Commits, last 30 daysAhead of 98% of tracked repositories
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekAhead of 0% of tracked repositories

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Aug 2, 2026Nov 6, 20261,310

Individual skills in this repository

How it works

When your agent uses it

What it loads into context

Frontmatter

0 tokens

Always available to the agent

SKILL.md

4,178 tokens

When the skill is activated

Reference documents

473,007 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. 1. Check the app, with nothing installed
  2. 2. Wire this app (once per project)
  3. 3. Prove one flow
  4. The rules, every call
  5. The tools you have
  6. Predicates
  7. Feedback is first-class
  8. Take the cheapest path that answers the question
  9. Drive it by hand
  10. When it goes wrong
  11. When the verdict lands
  12. Find the rest

Scripts executed separately

  • action/ci-check.mjs
  • action/ci-check.test.mjs
  • adapters/build/babel-plugin/package.json
  • adapters/build/babel-plugin/src/dom-tags.ts
  • adapters/build/babel-plugin/src/ignore.test.ts
  • adapters/build/babel-plugin/src/ignore.ts
  • adapters/build/babel-plugin/src/index.test.ts
  • adapters/build/babel-plugin/src/index.ts
  • adapters/build/next/index.cjs
  • adapters/build/next/index.d.ts
  • adapters/build/next/index.test.mjs
  • adapters/build/next/loader.cjs
  • adapters/build/next/loader.d.ts
  • adapters/build/next/loader.test.mjs
  • adapters/build/next/package.json
  • adapters/build/vite/package.json
  • adapters/build/vite/scripts/build-cjs.mjs
  • adapters/build/vite/src/announce.integration.test.ts
  • adapters/build/vite/src/announce.test.ts
  • adapters/build/vite/src/announce.ts
  • adapters/build/vite/src/build.integration.test.ts
  • adapters/build/vite/src/cjs-deps-resolvable.test.ts
  • adapters/build/vite/src/cjs-loadable.test.ts
  • adapters/build/vite/src/connect-args.testid.test.ts
  • adapters/build/vite/src/connect-args.ts
  • adapters/build/vite/src/connect-module-stability.test.ts
  • adapters/build/vite/src/connect-url-respects-base.test.ts
  • adapters/build/vite/src/define-warning.integration.test.ts
  • adapters/build/vite/src/disabled-browser-stub.test.ts
  • adapters/build/vite/src/disabled-browser-stub.ts
  • adapters/build/vite/src/discover-port.test.ts
  • adapters/build/vite/src/discover-port.ts
  • adapters/build/vite/src/hot-update-wiring.test.ts
  • adapters/build/vite/src/index.test.ts
  • adapters/build/vite/src/index.ts
  • adapters/build/vite/src/injection-postcondition.ts
  • adapters/build/vite/src/installed.test.ts
  • adapters/build/vite/src/installed.ts
  • adapters/build/vite/src/orphan-modules.test.ts
  • adapters/build/vite/src/plugin-name.ts
  • adapters/build/vite/src/project-id.test.ts
  • adapters/build/vite/src/project-id.ts
  • adapters/build/vite/src/source-edit-freshness.integration.test.ts
  • adapters/build/vite/src/stamping.ts
  • adapters/build/vite/src/state-home.ts
  • adapters/build/vite/src/svelte-source.test.ts
  • adapters/build/vite/src/svelte-source.ts
  • adapters/build/vite/src/test-files-are-not-stamped.test.ts
  • adapters/build/vite/src/token/ensure-token.test.ts
  • adapters/build/vite/src/token/ensure-token.ts
  • adapters/build/vite/src/token/missing-token.test.ts
  • adapters/build/vite/src/token/missing-token.ts
  • adapters/build/vite/src/turbo-cache.test.ts
  • adapters/build/vite/src/vite-types-assignable.test.ts
  • adapters/build/vite/src/vitest-browser.ts
  • adapters/build/vite/src/vitest-no-inject.test.ts
  • adapters/build/vite/src/watch-ignore.ts
  • adapters/build/vite/vitest.config.ts
  • adapters/framework/react/package.json
  • adapters/framework/react/src/actions-controlled.test.ts
  • adapters/framework/react/src/auto-stores.live.test.ts
  • adapters/framework/react/src/auto-stores.test.ts
  • adapters/framework/react/src/auto-stores.ts
  • adapters/framework/react/src/cdp-reader.test.ts
  • adapters/framework/react/src/cdp-reader.ts
  • adapters/framework/react/src/commit-aggregator.test.ts
  • adapters/framework/react/src/commit-aggregator.ts
  • adapters/framework/react/src/drag-select.test.ts
  • adapters/framework/react/src/error-boundary.test.ts
  • adapters/framework/react/src/error-boundary.ts
  • adapters/framework/react/src/hydration-error.test.ts
  • adapters/framework/react/src/hydration-error.ts
  • adapters/framework/react/src/hydration.test.ts
  • adapters/framework/react/src/hydration.ts
  • adapters/framework/react/src/index.test.ts
  • adapters/framework/react/src/index.ts
  • adapters/framework/react/src/install-options.test.ts
  • adapters/framework/react/src/instrumentation-gap-guidance.test.ts
  • adapters/framework/react/src/orphan-modules.test.ts
  • adapters/framework/react/src/relative-to-root.test.ts
  • adapters/framework/react/src/render-meter.test.ts
  • adapters/framework/react/src/render-meter.ts
  • adapters/framework/react/src/source-seam.test.ts
  • adapters/framework/react/src/store.test.ts
  • adapters/framework/react/src/store.ts
  • adapters/framework/react/vitest.config.ts
  • adapters/lint/eslint/package.json
  • adapters/lint/eslint/src/constants.ts
  • adapters/lint/eslint/src/index.ts
  • adapters/lint/eslint/src/no-internal-tags.test.ts
  • adapters/lint/eslint/src/no-internal-tags.ts
  • adapters/lint/eslint/src/no-runaway-comment.test.ts
  • adapters/lint/eslint/src/no-runaway-comment.ts
  • adapters/lint/eslint/src/options.ts
  • adapters/lint/eslint/src/orphan-modules.test.ts
  • adapters/lint/eslint/src/require-signal-on-mutation.test.ts
  • adapters/lint/eslint/src/require-signal-on-mutation.ts
  • adapters/lint/eslint/src/unlinted-dirs.test.ts
  • adapters/lint/eslint/vitest.config.ts
  • adapters/realm/browser/package.json
  • adapters/realm/browser/scripts/bundle-inject.mjs
  • adapters/realm/browser/scripts/embed-heroicons.mjs
  • adapters/realm/browser/src/actions/action-report.canvases.test.ts
  • adapters/realm/browser/src/actions/action-report.ts
  • adapters/realm/browser/src/actions/actions-dom.ts
  • adapters/realm/browser/src/actions/actions-press.ts
  • adapters/realm/browser/src/actions/actions.auto-anchor.test.ts
  • adapters/realm/browser/src/actions/actions.check.test.ts
  • adapters/realm/browser/src/actions/actions.click-input.test.ts
  • adapters/realm/browser/src/actions/actions.click.test.ts
  • adapters/realm/browser/src/actions/actions.component-position.test.ts
  • adapters/realm/browser/src/actions/actions.danger-context.test.ts
  • adapters/realm/browser/src/actions/actions.drag-boundary.test.ts
  • adapters/realm/browser/src/actions/actions.drag-geometry.test.ts
  • adapters/realm/browser/src/actions/actions.drag-target.test.ts
  • adapters/realm/browser/src/actions/actions.effect.test.ts
  • adapters/realm/browser/src/actions/actions.event-view.test.ts
  • adapters/realm/browser/src/actions/actions.fill-autofill.test.ts
  • adapters/realm/browser/src/actions/actions.gestures.test.ts
  • adapters/realm/browser/src/actions/actions.hover-leave.test.ts
  • adapters/realm/browser/src/actions/actions.hud-churn.test.ts
  • adapters/realm/browser/src/actions/actions.interactions.test.ts
  • adapters/realm/browser/src/actions/actions.leaving.test.ts
  • adapters/realm/browser/src/actions/actions.pointer-events.test.ts
  • adapters/realm/browser/src/actions/actions.press-code.test.ts
  • adapters/realm/browser/src/actions/actions.press-defaults.test.ts
  • adapters/realm/browser/src/actions/actions.press-escape-dialog.test.ts
  • adapters/realm/browser/src/actions/actions.press-key.test.ts
  • adapters/realm/browser/src/actions/actions.press-keypress.test.ts
  • adapters/realm/browser/src/actions/actions.press-modifiers.test.ts
  • adapters/realm/browser/src/actions/actions.reach.test.ts
  • adapters/realm/browser/src/actions/actions.scroll-instant.test.ts
  • adapters/realm/browser/src/actions/actions.select-combobox.test.ts
  • adapters/realm/browser/src/actions/actions.settle-bound.test.ts
  • adapters/realm/browser/src/actions/actions.settle-causality.test.ts
  • adapters/realm/browser/src/actions/actions.ts
  • adapters/realm/browser/src/actions/actions.within.test.ts
  • adapters/realm/browser/src/actions/adversarial.check.test.ts
  • adapters/realm/browser/src/actions/appeared-text.test.ts
  • adapters/realm/browser/src/actions/appeared-text.ts
  • adapters/realm/browser/src/actions/check-state.ts
  • adapters/realm/browser/src/actions/click-target.ts
  • adapters/realm/browser/src/actions/danger-context.ts
  • adapters/realm/browser/src/actions/scroll.test.ts
  • adapters/realm/browser/src/actions/scroll.ts
  • adapters/realm/browser/src/actions/select-combobox.ts
  • adapters/realm/browser/src/actions/synthetic/synthetic-input.ts
  • adapters/realm/browser/src/actions/value-input.ts
  • adapters/realm/browser/src/activate.test.ts
  • adapters/realm/browser/src/activate.ts
  • adapters/realm/browser/src/busy.test.ts
  • adapters/realm/browser/src/busy.ts
  • adapters/realm/browser/src/commands/animations-target.test.ts
  • adapters/realm/browser/src/commands/commands.test.ts
  • adapters/realm/browser/src/commands/commands.ts
  • adapters/realm/browser/src/commands/commands.upload-inspect.test.ts
  • adapters/realm/browser/src/commands/inspect-catches-the-ancestor.test.ts
  • adapters/realm/browser/src/commands/inspect-reveals.test.ts
  • adapters/realm/browser/src/commands/truncation-is-visible.test.ts
  • adapters/realm/browser/src/connect-options.ts
  • adapters/realm/browser/src/core-boundary.test.ts
  • adapters/realm/browser/src/directory-reach.test.ts
  • adapters/realm/browser/src/dom/a11y.security.test.ts
  • adapters/realm/browser/src/dom/a11y.test.ts
  • adapters/realm/browser/src/dom/a11y.ts
  • adapters/realm/browser/src/dom/addressing/auto-anchor.test.ts
  • adapters/realm/browser/src/dom/addressing/auto-anchor.ts
  • adapters/realm/browser/src/dom/addressing/coverage-markers.test.ts
  • adapters/realm/browser/src/dom/addressing/coverage-markers.ts
  • adapters/realm/browser/src/dom/addressing/refs.test.ts
  • adapters/realm/browser/src/dom/addressing/refs.ts
  • adapters/realm/browser/src/dom/addressing/source.test.ts
  • adapters/realm/browser/src/dom/addressing/source.ts
  • adapters/realm/browser/src/dom/addressing/testid-attr.ts
  • adapters/realm/browser/src/dom/addressing/testid-attribute.test.ts
  • adapters/realm/browser/src/dom/backface-visibility.test.ts
  • adapters/realm/browser/src/dom/browser.test.ts
  • adapters/realm/browser/src/dom/chart.test.ts
  • adapters/realm/browser/src/dom/chart.ts
  • adapters/realm/browser/src/dom/desktop-capture.test.ts
  • adapters/realm/browser/src/dom/desktop-capture.ts
  • adapters/realm/browser/src/dom/dom-ignore.test.ts
  • adapters/realm/browser/src/dom/dom-ignore.ts
  • adapters/realm/browser/src/dom/in-viewport.test.ts
  • adapters/realm/browser/src/dom/layout-audit.test.ts
  • adapters/realm/browser/src/dom/layout-audit.ts
  • adapters/realm/browser/src/dom/occlusion.test.ts
  • adapters/realm/browser/src/dom/occlusion.ts
  • adapters/realm/browser/src/dom/option-target.test.ts
  • adapters/realm/browser/src/dom/overlay-hiding-page.test.ts
  • adapters/realm/browser/src/dom/paint-context.test.ts
  • adapters/realm/browser/src/dom/paint-context.ts
  • adapters/realm/browser/src/dom/presenter-hatch.test.ts
  • adapters/realm/browser/src/dom/query-finders.ts
  • adapters/realm/browser/src/dom/query.component-role.test.ts
  • adapters/realm/browser/src/dom/query.component-text.test.ts
  • adapters/realm/browser/src/dom/query.component.test.ts
  • adapters/realm/browser/src/dom/query.count.test.ts
  • adapters/realm/browser/src/dom/query.framework-overlay.test.ts
  • adapters/realm/browser/src/dom/query.full-text.test.ts
  • adapters/realm/browser/src/dom/query.hidden-subtrees.test.ts
  • adapters/realm/browser/src/dom/query.image-alt.test.ts
  • adapters/realm/browser/src/dom/query.invisible-format.test.ts
  • adapters/realm/browser/src/dom/query.name-near-miss-spelling.test.ts
  • adapters/realm/browser/src/dom/query.name-near-miss.test.ts
  • adapters/realm/browser/src/dom/query.name-parity.test.ts
  • adapters/realm/browser/src/dom/query.name-roundtrip.test.ts
  • adapters/realm/browser/src/dom/query.nearest-targets.test.ts
  • adapters/realm/browser/src/dom/query.observer.test.ts
  • adapters/realm/browser/src/dom/query.receives-pointer.test.ts
  • adapters/realm/browser/src/dom/query.role-coverage.test.ts
  • adapters/realm/browser/src/dom/query.scope-every-match.test.ts
  • adapters/realm/browser/src/dom/query.scope-root.test.ts
  • adapters/realm/browser/src/dom/query.shown-case.test.ts
  • adapters/realm/browser/src/dom/query.split-phrase.test.ts
  • adapters/realm/browser/src/dom/query.svg-scope.test.ts
  • adapters/realm/browser/src/dom/query.test.ts
  • adapters/realm/browser/src/dom/query.text-beside-child.test.ts
  • adapters/realm/browser/src/dom/query.ts
  • adapters/realm/browser/src/dom/query.unicode.test.ts
  • adapters/realm/browser/src/dom/query.unreadable-text.test.ts
  • adapters/realm/browser/src/dom/query.visible-text-hint.test.ts
  • adapters/realm/browser/src/dom/realm.test.ts
  • adapters/realm/browser/src/dom/realm.ts
  • adapters/realm/browser/src/dom/refs.navigation.test.ts
  • adapters/realm/browser/src/dom/render-page.test.ts
  • adapters/realm/browser/src/dom/render-page.ts
  • adapters/realm/browser/src/dom/scope-roots.ts
  • adapters/realm/browser/src/dom/shadow-registry.test.ts
  • adapters/realm/browser/src/dom/shadow-registry.ts
  • adapters/realm/browser/src/dom/snapshot-hidden-page.test.ts
  • adapters/realm/browser/src/dom/snapshot-ids.test.ts
  • adapters/realm/browser/src/dom/snapshot-own-hud.test.ts
  • adapters/realm/browser/src/dom/snapshot-own-text.test.ts
  • adapters/realm/browser/src/dom/snapshot.dead-root.test.ts
  • adapters/realm/browser/src/dom/snapshot.overlay-stamped-dialog.test.ts
  • adapters/realm/browser/src/dom/snapshot.pierce.test.ts
  • adapters/realm/browser/src/dom/snapshot.scope-input.test.ts
  • adapters/realm/browser/src/dom/snapshot.ts
  • adapters/realm/browser/src/dom/snapshot.unread.test.ts
  • adapters/realm/browser/src/dom/source.stamps.test.ts
  • adapters/realm/browser/src/dom/stable-selector.ts
  • adapters/realm/browser/src/dom/text-match.ts
  • adapters/realm/browser/src/dom/theme.test.ts
  • adapters/realm/browser/src/dom/theme.ts
  • adapters/realm/browser/src/dom/virtualized.test.ts
  • adapters/realm/browser/src/dom/virtualized.ts
  • adapters/realm/browser/src/dom/visibility-override.test.ts
  • adapters/realm/browser/src/dom/visibility.ts
  • adapters/realm/browser/src/dom/zero-size-visible.test.ts
  • adapters/realm/browser/src/edit-epoch.test.ts
  • adapters/realm/browser/src/edit-epoch.ts
  • adapters/realm/browser/src/first-load-size.test.ts
  • adapters/realm/browser/src/index.ts
  • adapters/realm/browser/src/observers/animation.test.ts
  • adapters/realm/browser/src/observers/animation.ts
  • adapters/realm/browser/src/observers/blind-spots.test.ts
  • adapters/realm/browser/src/observers/blind-spots.ts
  • adapters/realm/browser/src/observers/canvas.test.ts
  • adapters/realm/browser/src/observers/canvas.ts
  • adapters/realm/browser/src/observers/console.test.ts
  • adapters/realm/browser/src/observers/console.ts
  • adapters/realm/browser/src/observers/context-open.test.ts
  • adapters/realm/browser/src/observers/context-open.ts
  • adapters/realm/browser/src/observers/departure.test.ts
  • adapters/realm/browser/src/observers/departure.ts
  • adapters/realm/browser/src/observers/dialogs.test.ts
  • adapters/realm/browser/src/observers/dialogs.ts
  • adapters/realm/browser/src/observers/dom.mount.test.ts
  • adapters/realm/browser/src/observers/dom.oldvalue.test.ts
  • adapters/realm/browser/src/observers/dom.own-hud.test.ts
  • adapters/realm/browser/src/observers/dom.secret.test.ts
  • adapters/realm/browser/src/observers/dom.text.test.ts
  • adapters/realm/browser/src/observers/dom.truncation.test.ts
  • adapters/realm/browser/src/observers/dom.ts
  • adapters/realm/browser/src/observers/download.test.ts
  • adapters/realm/browser/src/observers/download.ts
  • adapters/realm/browser/src/observers/error-repeats.test.ts
  • adapters/realm/browser/src/observers/error-repeats.ts
  • adapters/realm/browser/src/observers/field-settled.test.ts
  • adapters/realm/browser/src/observers/field.test.ts
  • adapters/realm/browser/src/observers/field.ts
  • adapters/realm/browser/src/observers/focus.test.ts
  • adapters/realm/browser/src/observers/focus.ts
  • adapters/realm/browser/src/observers/foreign-wrapper-survives.test.ts
  • adapters/realm/browser/src/observers/frames.test.ts
  • adapters/realm/browser/src/observers/frames.ts
  • adapters/realm/browser/src/observers/health.test.ts
  • adapters/realm/browser/src/observers/health.ts
  • adapters/realm/browser/src/observers/install-all.test.ts
  • adapters/realm/browser/src/observers/install-all.ts
  • adapters/realm/browser/src/observers/ipc.self-observation.test.ts
  • adapters/realm/browser/src/observers/ipc.test.ts
  • adapters/realm/browser/src/observers/ipc.ts
  • adapters/realm/browser/src/observers/media.test.ts
  • adapters/realm/browser/src/observers/media.ts
  • adapters/realm/browser/src/observers/navigation.test.ts
  • adapters/realm/browser/src/observers/navigation.ts
  • adapters/realm/browser/src/observers/net-detail/network-body-cap.test.ts
  • adapters/realm/browser/src/observers/net-detail/network-body-redaction.test.ts
  • adapters/realm/browser/src/observers/net-detail/network-body.ts
  • adapters/realm/browser/src/observers/net-detail/network-event-stream.ts
  • adapters/realm/browser/src/observers/net-detail/network-frames.ts
  • adapters/realm/browser/src/observers/net-detail/network-redact.ts
  • adapters/realm/browser/src/observers/net-detail/network-response-body.test.ts
  • adapters/realm/browser/src/observers/net-detail/network-response-body.ts
  • adapters/realm/browser/src/observers/net-detail/resource-timing.ts
  • adapters/realm/browser/src/observers/network-error-bodies.test.ts
  • adapters/realm/browser/src/observers/network-redact.presigned.test.ts
  • adapters/realm/browser/src/observers/network-stream.ts
  • adapters/realm/browser/src/observers/network.body-reason.test.ts
  • adapters/realm/browser/src/observers/network.initiator-frame.test.ts
  • adapters/realm/browser/src/observers/network.streaming.test.ts
  • adapters/realm/browser/src/observers/network.test.ts
  • adapters/realm/browser/src/observers/network.ts
  • adapters/realm/browser/src/observers/network.wrapper-blindspot.test.ts
  • adapters/realm/browser/src/observers/observation-never-throws.test.ts
  • adapters/realm/browser/src/observers/perf.test.ts
  • adapters/realm/browser/src/observers/perf.ts
  • adapters/realm/browser/src/observers/route.test.ts
  • adapters/realm/browser/src/observers/route.ts
  • adapters/realm/browser/src/observers/scroll.test.ts
  • adapters/realm/browser/src/observers/scroll.ts
  • adapters/realm/browser/src/observers/sdk-failure.test.ts
  • adapters/realm/browser/src/observers/sdk-failure.ts
  • adapters/realm/browser/src/observers/state.test.ts
  • adapters/realm/browser/src/observers/state.ts
  • adapters/realm/browser/src/observers/storage.noop-write.test.ts
  • adapters/realm/browser/src/observers/storage.test.ts
  • adapters/realm/browser/src/observers/storage.ts
  • adapters/realm/browser/src/observers/storage.write.test.ts
  • adapters/realm/browser/src/observers/types.ts
  • adapters/realm/browser/src/orphan-modules.test.ts
  • adapters/realm/browser/src/patching/capture-method.ts
  • adapters/realm/browser/src/presenter/carousel/carousel.test.ts
  • adapters/realm/browser/src/presenter/carousel/carousel.ts
  • adapters/realm/browser/src/presenter/carousel/panel-slides.test.ts
  • adapters/realm/browser/src/presenter/carousel/panel-slides.ts
  • adapters/realm/browser/src/presenter/carousel/talk-card.test.ts
  • adapters/realm/browser/src/presenter/carousel/talk-card.ts
  • adapters/realm/browser/src/presenter/chrome/layers.ts
  • adapters/realm/browser/src/presenter/chrome/log-kinds.ts
  • adapters/realm/browser/src/presenter/chrome/log-memory.test.ts
  • adapters/realm/browser/src/presenter/chrome/log-memory.ts
  • adapters/realm/browser/src/presenter/chrome/overlay.ts
  • adapters/realm/browser/src/presenter/chrome/presenter-brand.ts
  • adapters/realm/browser/src/presenter/chrome/presenter-effects.ts
  • adapters/realm/browser/src/presenter/chrome/presenter-hud-chrome.ts
  • adapters/realm/browser/src/presenter/chrome/presenter-log-rows.test.ts
  • adapters/realm/browser/src/presenter/chrome/presenter-log.ts
  • adapters/realm/browser/src/presenter/chrome/presenter-morph.test.ts
  • adapters/realm/browser/src/presenter/chrome/presenter-morph.ts
  • adapters/realm/browser/src/presenter/chrome/presenter-report-copy.ts
  • adapters/realm/browser/src/presenter/chrome/presenter-safe-html.ts
  • adapters/realm/browser/src/presenter/chrome/presenter-tally.test.ts
  • adapters/realm/browser/src/presenter/chrome/presenter-tally.ts
  • adapters/realm/browser/src/presenter/chrome/presenter-verbs.ts
  • adapters/realm/browser/src/presenter/escape-belongs-to-the-app.test.ts
  • adapters/realm/browser/src/presenter/hud-buttons-are-clickable.test.ts
  • adapters/realm/browser/src/presenter/hud-hostile.test.ts
  • adapters/realm/browser/src/presenter/hud-panel-role.test.ts
  • adapters/realm/browser/src/presenter/hud-pointer-pass-through.test.ts
  • adapters/realm/browser/src/presenter/hud-telemetry-pages.test.ts
  • adapters/realm/browser/src/presenter/hud-telemetry.test.ts
  • adapters/realm/browser/src/presenter/hud-telemetry.ts
  • adapters/realm/browser/src/presenter/icons/presenter-heroicons-data.ts
  • adapters/realm/browser/src/presenter/icons/presenter-icons.test.ts
  • adapters/realm/browser/src/presenter/icons/presenter-icons.ts
  • adapters/realm/browser/src/presenter/presenter-account-menu.test.ts
  • adapters/realm/browser/src/presenter/presenter-account-push-before-mount.test.ts
  • adapters/realm/browser/src/presenter/presenter-account-styles.test.ts
  • adapters/realm/browser/src/presenter/presenter-account-styles.ts
  • adapters/realm/browser/src/presenter/presenter-account.test.ts
  • adapters/realm/browser/src/presenter/presenter-account.ts
  • adapters/realm/browser/src/presenter/presenter-agent-link.test.ts
  • adapters/realm/browser/src/presenter/presenter-agent-link.ts
  • adapters/realm/browser/src/presenter/presenter-chat-default.test.ts
  • adapters/realm/browser/src/presenter/presenter-chat-views.test.ts
  • adapters/realm/browser/src/presenter/presenter-chat-views.ts
  • adapters/realm/browser/src/presenter/presenter-config.ts
  • adapters/realm/browser/src/presenter/presenter-controls.test.ts
  • adapters/realm/browser/src/presenter/presenter-controls.ts
  • adapters/realm/browser/src/presenter/presenter-dead-exports.test.ts
  • adapters/realm/browser/src/presenter/presenter-defect-link.test.ts
  • adapters/realm/browser/src/presenter/presenter-design-tokens.ts
  • adapters/realm/browser/src/presenter/presenter-dock-layout.test.ts
  • adapters/realm/browser/src/presenter/presenter-dock-layout.ts
  • adapters/realm/browser/src/presenter/presenter-drag.test.ts
  • adapters/realm/browser/src/presenter/presenter-drag.ts
  • adapters/realm/browser/src/presenter/presenter-first-load.test.ts
  • adapters/realm/browser/src/presenter/presenter-frame.ts
  • adapters/realm/browser/src/presenter/presenter-glow.ts
  • adapters/realm/browser/src/presenter/presenter-harness-row.ts
  • adapters/realm/browser/src/presenter/presenter-harness-snapshot.test.ts
  • adapters/realm/browser/src/presenter/presenter-hud-position.ts
  • adapters/realm/browser/src/presenter/presenter-idle-passthrough.test.ts
  • adapters/realm/browser/src/presenter/presenter-impact-dot.test.ts
  • adapters/realm/browser/src/presenter/presenter-lifecycle.test.ts
  • adapters/realm/browser/src/presenter/presenter-narrow-viewport.test.ts
  • adapters/realm/browser/src/presenter/presenter-nav-and-plan.test.ts
  • adapters/realm/browser/src/presenter/presenter-no-composer.test.ts
  • adapters/realm/browser/src/presenter/presenter-pace.test.ts
  • adapters/realm/browser/src/presenter/presenter-personas.ts
  • adapters/realm/browser/src/presenter/presenter-plan.test.ts
  • adapters/realm/browser/src/presenter/presenter-plan.ts
  • adapters/realm/browser/src/presenter/presenter-report-account.test.ts
  • adapters/realm/browser/src/presenter/presenter-report-styles.ts
  • adapters/realm/browser/src/presenter/presenter-report.test.ts
  • adapters/realm/browser/src/presenter/presenter-report.ts
  • adapters/realm/browser/src/presenter/presenter-run-state.ts
  • adapters/realm/browser/src/presenter/presenter-settings-account.test.ts
  • adapters/realm/browser/src/presenter/presenter-settings-styles.ts
  • adapters/realm/browser/src/presenter/presenter-settings.test.ts
  • adapters/realm/browser/src/presenter/presenter-settings.ts
  • adapters/realm/browser/src/presenter/presenter-shell-minimised.test.ts
  • adapters/realm/browser/src/presenter/presenter-shell-styles.ts
  • adapters/realm/browser/src/presenter/presenter-shell.test.ts
  • adapters/realm/browser/src/presenter/presenter-shell.ts
  • adapters/realm/browser/src/presenter/presenter-styles.ts
  • adapters/realm/browser/src/presenter/presenter-tooltip-stacking.test.ts
  • adapters/realm/browser/src/presenter/presenter-unreachable.test.ts
  • adapters/realm/browser/src/presenter/presenter-workspace.test.ts
  • adapters/realm/browser/src/presenter/presenter-workspace.ts
  • adapters/realm/browser/src/presenter/presenter.test-helpers.ts
  • adapters/realm/browser/src/presenter/presenter.test.ts
  • adapters/realm/browser/src/presenter/presenter.ts
  • adapters/realm/browser/src/presenter/reticle-presenter.test.ts
  • adapters/realm/browser/src/presenter/settings-are-wired.test.ts
  • adapters/realm/browser/src/presenter/toolbar-even-spacing.test.ts
  • adapters/realm/browser/src/presenter/tour/tour-automation.test.ts
  • adapters/realm/browser/src/presenter/tour/tour-never-blocks-a-drive.test.ts
  • adapters/realm/browser/src/presenter/tour/tour-scrim-never-eats-the-app.test.ts
  • adapters/realm/browser/src/presenter/tour/tour-view.ts
  • adapters/realm/browser/src/presenter/tour/tour.test.ts
  • adapters/realm/browser/src/presenter/tour/tour.ts
  • adapters/realm/browser/src/recorder/recorder-styles.ts
  • adapters/realm/browser/src/recorder/recorder.test.ts
  • adapters/realm/browser/src/recorder/recorder.ts
  • adapters/realm/browser/src/recorder/reticle-recorder.test.ts
  • adapters/realm/browser/src/registry/adapter-guide.test.ts
  • adapters/realm/browser/src/registry/auto-testids.test.ts
  • adapters/realm/browser/src/registry/auto-testids.ts
  • adapters/realm/browser/src/registry/capabilities.test.ts
  • adapters/realm/browser/src/registry/capabilities.ts
  • adapters/realm/browser/src/registry/commit-and-signal.test.ts
  • adapters/realm/browser/src/registry/commit-and-signal.ts
  • adapters/realm/browser/src/registry/declared-channels.test.ts
  • adapters/realm/browser/src/registry/declared-channels.ts
  • adapters/realm/browser/src/registry/declared-platform.test.ts
  • adapters/realm/browser/src/registry/declared-platform.ts
  • adapters/realm/browser/src/registry/domains.test.ts
  • adapters/realm/browser/src/registry/domains.ts
  • adapters/realm/browser/src/registry/emitter.test.ts
  • adapters/realm/browser/src/registry/emitter.ts
  • adapters/realm/browser/src/registry/store-adapters.live.test.ts
  • adapters/realm/browser/src/registry/store-adapters.test.ts
  • adapters/realm/browser/src/registry/store-adapters.ts
  • adapters/realm/browser/src/registry/stores.test.ts
  • adapters/realm/browser/src/registry/stores.ts
  • adapters/realm/browser/src/registry/stores/adapters.test.ts
  • adapters/realm/browser/src/registry/stores/adapters.ts
  • adapters/realm/browser/src/reticle-presenter-helpers.test.ts
  • adapters/realm/browser/src/reticle-presenter-helpers.ts
  • adapters/realm/browser/src/reticle-singleton.ts
  • adapters/realm/browser/src/reticle-url-params.test.ts
  • adapters/realm/browser/src/reticle.build-event.test.ts
  • adapters/realm/browser/src/reticle.command-mode-classifier.test.ts
  • adapters/realm/browser/src/reticle.document-identity.test.ts
  • adapters/realm/browser/src/reticle.edit-epoch.test.ts
  • adapters/realm/browser/src/reticle.late-project-id.test.ts
  • adapters/realm/browser/src/reticle.lease-token.test.ts
  • adapters/realm/browser/src/reticle.session.test.ts
  • adapters/realm/browser/src/reticle.ts
  • adapters/realm/browser/src/review/agent-drives-while-annotating.test.ts
  • adapters/realm/browser/src/review/annotator-styles.ts
  • adapters/realm/browser/src/review/annotator.test.ts
  • adapters/realm/browser/src/review/annotator.ts
  • adapters/realm/browser/src/review/mark-anchor.test.ts
  • adapters/realm/browser/src/review/mark-anchor.ts
  • adapters/realm/browser/src/review/marks-for-agent.test.ts
  • adapters/realm/browser/src/review/marks-for-agent.ts
  • adapters/realm/browser/src/security/lossy-conformance.test.ts
  • adapters/realm/browser/src/security/page-location.test.ts
  • adapters/realm/browser/src/security/page-location.ts
  • adapters/realm/browser/src/security/redaction-config.test.ts
  • adapters/realm/browser/src/security/serialization.test.ts
  • adapters/realm/browser/src/security/serialization.ts
  • adapters/realm/browser/src/session-continuity.test.ts
  • adapters/realm/browser/src/session-continuity.ts
  • adapters/realm/browser/src/storage-keys.ts
  • adapters/realm/browser/src/test-setup.test.ts
  • adapters/realm/browser/src/timers/clock.safety.test.ts
  • adapters/realm/browser/src/timers/clock.test.ts
  • adapters/realm/browser/src/timers/clock.ts
  • adapters/realm/browser/src/timers/console/native-console.test.ts
  • adapters/realm/browser/src/timers/console/native-console.ts
  • adapters/realm/browser/src/timers/native-timers.bound.test.ts
  • adapters/realm/browser/src/timers/native-timers.interval.test.ts
  • adapters/realm/browser/src/timers/native/native-timers.ts
  • adapters/realm/browser/src/transport/bridge-url.ts
  • adapters/realm/browser/src/transport/transport.backoff.test.ts
  • adapters/realm/browser/src/transport/transport.bridge-loss.test.ts
  • adapters/realm/browser/src/transport/transport.churn-eviction.test.ts
  • adapters/realm/browser/src/transport/transport.close-codes.test.ts
  • adapters/realm/browser/src/transport/transport.overflow-marker.test.ts
  • adapters/realm/browser/src/transport/transport.reconnect-on-focus.test.ts
  • adapters/realm/browser/src/transport/transport.security.test.ts
  • adapters/realm/browser/src/transport/transport.silent-drop.test.ts
  • adapters/realm/browser/src/transport/transport.ts
  • adapters/realm/browser/src/transport/transport.unreachable.test.ts
  • adapters/realm/browser/src/transport/unreachable-message.test.ts
  • adapters/realm/browser/src/transport/unreachable-message.ts
  • adapters/realm/browser/src/util/captured-method.ts
  • adapters/realm/browser/vitest.config.ts
  • adapters/realm/browser/vitest.setup.ts
  • adapters/realm/cli/bin/drive.mjs
  • adapters/realm/cli/package.json
  • adapters/realm/cli/src/artifact.test.ts
  • adapters/realm/cli/src/channels.ts
  • adapters/realm/cli/src/cli-realm.test.ts
  • adapters/realm/cli/src/cli-realm.ts
  • adapters/realm/cli/src/detect.test.ts
  • adapters/realm/cli/src/detect.ts
  • adapters/realm/cli/src/hud/frame.test.ts
  • adapters/realm/cli/src/hud/frame.ts
  • adapters/realm/cli/src/hud/live.ts
  • adapters/realm/cli/src/index.ts
  • adapters/realm/cli/src/manifest.ts
  • adapters/realm/cli/src/net/proxy.test.ts
  • adapters/realm/cli/src/net/proxy.ts
  • adapters/realm/cli/src/process/node-supervisor.test.ts
  • adapters/realm/cli/src/process/node-supervisor.ts
  • adapters/realm/cli/src/process/supervisor.ts
  • adapters/realm/cli/src/report.test.ts
  • adapters/realm/cli/src/report.ts
  • adapters/realm/cli/src/run.test.ts
  • adapters/realm/cli/src/run.ts
  • adapters/realm/cli/src/state-contract.test.ts
  • adapters/realm/cli/src/state-contract.ts
  • adapters/realm/cli/src/workspace/port.ts
  • adapters/realm/cli/src/workspace/snapshot.test.ts
  • adapters/realm/cli/src/workspace/snapshot.ts
  • adapters/realm/electron/main.cjs
  • adapters/realm/electron/main.d.cts
  • adapters/realm/electron/package.json
  • adapters/realm/electron/preload.cjs
  • adapters/realm/electron/preload.d.cts
  • adapters/realm/electron/preload.test.mjs
  • apps/api/package.json
  • apps/api/server.mjs
  • apps/atlas/Dockerfile
  • apps/atlas/package.json
  • apps/atlas/server/mock-api.ts
  • apps/atlas/server/serve.ts
  • apps/atlas/src/EmbeddedPanels.tsx
  • apps/atlas/src/ShipmentsTable.tsx
  • apps/atlas/src/WriteStorm.tsx
  • apps/atlas/src/custom-elements.d.ts
  • apps/atlas/src/main.tsx
  • apps/atlas/src/store.ts
  • apps/atlas/vite.config.ts
  • apps/bench-app/package.json
  • apps/bench-app/src/App.tsx
  • apps/bench-app/src/components/AreaChart.tsx
  • apps/bench-app/src/components/BuildLogStream.tsx
  • apps/bench-app/src/components/CommandPalette.tsx
  • apps/bench-app/src/components/DeepPanels.tsx
  • apps/bench-app/src/components/DeployDrawer.tsx
  • apps/bench-app/src/components/DeployTable.tsx
  • apps/bench-app/src/components/Login.tsx
  • apps/bench-app/src/components/NewDeployModal.tsx
  • apps/bench-app/src/components/QueryPanel.tsx
  • apps/bench-app/src/components/Sidebar.tsx
  • apps/bench-app/src/components/TimingPanel.tsx
  • apps/bench-app/src/components/Toasts.tsx
  • apps/bench-app/src/components/Topbar.tsx
  • apps/bench-app/src/components/icons.tsx
  • apps/bench-app/src/components/primitives.tsx
  • apps/bench-app/src/data/seed.ts
  • apps/bench-app/src/lib/api.ts
  • apps/bench-app/src/lib/enterprise-config.ts
  • apps/bench-app/src/lib/fixture-views.ts
  • apps/bench-app/src/lib/persisted-session.ts
  • apps/bench-app/src/lib/query-client.ts
  • apps/bench-app/src/lib/reticle-bridge.ts
  • apps/bench-app/src/main.tsx
  • apps/bench-app/src/reticle-ambient.ts
  • apps/bench-app/src/reticle-bug-injector.ts
  • apps/bench-app/src/reticle-dev.ts
  • apps/bench-app/src/reticle-opaque.ts
  • apps/bench-app/src/reticle-regress.ts
  • apps/bench-app/src/reticle-render-setup.ts
  • apps/bench-app/src/store/store.ts
  • apps/bench-app/src/views/AckPairs.tsx
  • apps/bench-app/src/views/AwkwardControls.tsx
  • apps/bench-app/src/views/ClaimPairs.tsx
  • apps/bench-app/src/views/Compose.tsx
  • apps/bench-app/src/views/Deployments.tsx
  • apps/bench-app/src/views/Diagnostics.tsx
  • apps/bench-app/src/views/Enterprise.tsx
  • apps/bench-app/src/views/ExpiringAuth.tsx
  • apps/bench-app/src/views/Hostile.tsx
  • apps/bench-app/src/views/Overview.tsx
  • apps/bench-app/src/views/RulePairs.tsx
  • apps/bench-app/src/views/SavedItems.tsx
  • apps/bench-app/src/views/StaleRace.tsx
  • apps/bench-app/src/vite-env.d.ts
  • apps/bench-app/vite.config.ts
  • apps/cli-smoke/smoke.mjs
  • apps/e2e/await-free-ports.mjs
  • apps/e2e/client-compat.mjs
  • apps/e2e/desktop-harness.mjs
  • apps/e2e/fault-proxy.mjs
  • apps/e2e/gate-harness.mjs
  • apps/e2e/install-control.mjs
  • apps/e2e/install-control.test.mjs
  • apps/e2e/install-gate.mjs
  • apps/e2e/install-packages.mjs
  • apps/e2e/install-packages.test.mjs
  • apps/e2e/install-sandbox.mjs
  • apps/e2e/matrix.mjs
  • apps/e2e/multi/multi-agent-sim.mjs
  • apps/e2e/package.json
  • apps/e2e/port-ownership.test.mjs
  • apps/e2e/port-pid.mjs
  • apps/e2e/replay-is-green.mjs
  • apps/e2e/replay-is-green.test.mjs
  • apps/e2e/run-ci.sh
  • apps/e2e/run-desktop.sh
  • apps/e2e/run.mjs
  • apps/e2e/smoke-checks.mjs
  • apps/e2e/smoke-checks.test.mjs
  • apps/e2e/smoke.mjs
  • apps/e2e/soak.mjs
  • apps/e2e/specs/acknowledged-failed-write-test.mjs
  • apps/e2e/specs/atlas-hard-fixture-test.mjs
  • apps/e2e/specs/auth-retry-not-a-defect-test.mjs
  • apps/e2e/specs/awkward-controls-test.mjs
  • apps/e2e/specs/blind-spot-reset-test.mjs
  • apps/e2e/specs/bridge-stress-test.mjs
  • apps/e2e/specs/browser-stress-test.mjs
  • apps/e2e/specs/crawl-test.mjs
  • apps/e2e/specs/daemon-heartbeat-test.mjs
  • apps/e2e/specs/daemon-lifecycle-test.mjs
  • apps/e2e/specs/daemon-port-honesty-test.mjs
  • apps/e2e/specs/drive-attach-test.mjs
  • apps/e2e/specs/drive-launch-test.mjs
  • apps/e2e/specs/electron-desktop-test.mjs
  • apps/e2e/specs/electron-vite-desktop-test.mjs
  • apps/e2e/specs/feedback-durability-test.mjs
  • apps/e2e/specs/first-verdict-test.mjs
  • apps/e2e/specs/flow-record-replay-test.mjs
  • apps/e2e/specs/flow-self-heal-test.mjs
  • apps/e2e/specs/instrumentation-gap-test.mjs
  • apps/e2e/specs/lease-init-script-test.mjs
  • apps/e2e/specs/lease-instrumented-navigation-test.mjs
  • apps/e2e/specs/lease-page-size-test.mjs
  • apps/e2e/specs/lease-permissions-test.mjs
  • apps/e2e/specs/lease-pointer-test.mjs
  • apps/e2e/specs/lease-production-guard-test.mjs
  • apps/e2e/specs/lease-spa-redirect-test.mjs
  • apps/e2e/specs/lease-zero-install-navigation-test.mjs
  • apps/e2e/specs/live-control-test.mjs
  • apps/e2e/specs/mcp-stress-test.mjs
  • apps/e2e/specs/mcp-survives-test.mjs
  • apps/e2e/specs/multi-agent-lease-test.mjs
  • apps/e2e/specs/narrowed-rules-both-directions-test.mjs
  • apps/e2e/specs/next-blur-clock-test.mjs
  • apps/e2e/specs/next-smoke-test.mjs
  • apps/e2e/specs/overflow-visibility-test.mjs
  • apps/e2e/specs/press-real-focus-test.mjs
  • apps/e2e/specs/project-history-test.mjs
  • apps/e2e/specs/real-world-tests.mjs
  • apps/e2e/specs/release-smoke-test.mjs
  • apps/e2e/specs/response-ignored-test.mjs
  • apps/e2e/specs/route-and-absence-claims-test.mjs
  • apps/e2e/specs/scroll-find-test.mjs
  • apps/e2e/specs/skill-one-call-paths-test.mjs
  • apps/e2e/specs/slow-endpoint-replay-test.mjs
  • apps/e2e/specs/spa-nav-realinput-test.mjs
  • apps/e2e/specs/spec-runner-test.mjs
  • apps/e2e/specs/stale-response-both-directions-test.mjs
  • apps/e2e/specs/status-honesty-test.mjs
  • apps/e2e/specs/tauri-desktop-test.mjs
  • apps/e2e/specs/telemetry-events-test.mjs
  • apps/e2e/specs/telemetry-stitch-test.mjs
  • apps/e2e/specs/tool-fuzz-test.mjs
  • apps/e2e/specs/tool-surface-sweep-test.mjs
  • apps/e2e/specs/trace-shape-test.mjs
  • apps/e2e/specs/transport-faults-test.mjs
  • apps/e2e/specs/verify-against-test.mjs
  • apps/e2e/specs/version-skew-test.mjs
  • apps/e2e/specs/visual-test.mjs
  • apps/e2e/trace-shape.mjs
  • apps/e2e/wait-for-session.mjs
  • apps/e2e/wait-until.mjs
  • apps/e2e/watch-transport.test.mjs
  • apps/e2e/win32-job-kill.mjs
  • apps/e2e/win32-job-kill.ps1
  • apps/e2e/worktrees/worktrees-gate.mjs
  • apps/electron-smoke/electron/main.cjs
  • apps/electron-smoke/electron/preload.cjs
  • apps/electron-smoke/package.json
  • apps/electron-smoke/src/App.tsx
  • apps/electron-smoke/src/main.tsx
  • apps/electron-smoke/src/store.ts
  • apps/electron-smoke/vite.config.ts
  • apps/electron-vue-pinia/electron.vite.config.ts
  • apps/electron-vue-pinia/eslint.config.mjs
  • apps/electron-vue-pinia/package.json
  • apps/electron-vue-pinia/src/main/index.ts
  • apps/electron-vue-pinia/src/preload/index.d.ts
  • apps/electron-vue-pinia/src/preload/index.ts
  • apps/electron-vue-pinia/src/renderer/package.json
  • apps/electron-vue-pinia/src/renderer/src/env.d.ts
  • apps/electron-vue-pinia/src/renderer/src/main.ts
  • apps/electron-vue-pinia/src/renderer/src/reticle-dev.ts
  • apps/electron-vue-pinia/src/renderer/src/stores/app.ts
  • apps/examples/astro/astro.config.mjs
  • apps/examples/astro/package.json
  • apps/examples/astro/src/components/Counter.tsx
  • apps/examples/astro/src/reticle-env.d.ts
  • apps/examples/next/app/layout.tsx
  • apps/examples/next/app/page.tsx
  • apps/examples/next/app/reticle-dev.tsx
  • apps/examples/next/next.config.mjs
  • apps/examples/next/package.json
  • apps/examples/react/package.json
  • apps/examples/react/src/App.tsx
  • apps/examples/react/src/main.tsx
  • apps/examples/react/vite.config.ts
  • apps/examples/remix/app/root.tsx
  • apps/examples/remix/app/routes.ts
  • apps/examples/remix/app/routes/home.tsx
  • apps/examples/remix/package.json
  • apps/examples/remix/react-router.config.ts
  • apps/examples/remix/reticle-env.d.ts
  • apps/examples/remix/vite.config.ts
  • apps/large-dom-bench/package.json
  • apps/large-dom-bench/src/main.ts
  • apps/large-dom-bench/vite.config.ts
  • apps/next-smoke/app/actions/actions.ts
  • apps/next-smoke/app/actions/page.tsx
  • apps/next-smoke/app/actions/save-both.tsx
  • apps/next-smoke/app/actions/store.ts
  • apps/next-smoke/app/api/idle-stream/route.ts
  • apps/next-smoke/app/api/ping/route.ts
  • apps/next-smoke/app/layout.tsx
  • apps/next-smoke/app/page.tsx
  • apps/next-smoke/app/reticle-dev.tsx
  • apps/next-smoke/app/rsc/page.tsx
  • apps/next-smoke/next.config.mjs
  • apps/next-smoke/package.json
  • apps/tauri-smoke/package.json
  • apps/tauri-smoke/src/App.tsx
  • apps/tauri-smoke/src/main.tsx
  • apps/tauri-smoke/src/store.ts
  • apps/tauri-smoke/vite.config.ts
  • assets/benchmarks/render.mjs
  • bench/cli-false-green/bugs.mjs
  • bench/cli-false-green/run.mjs
  • bench/dashboard.mjs
  • bench/desktop/desktop-mcp-bench.mjs
  • bench/diagnosis/ground-truth.mjs
  • bench/diagnosis/measure.mjs
  • bench/diagnosis/recoverability.mjs
  • bench/do-and-verify/oracle.mjs
  • bench/do-and-verify/run.mjs
  • bench/eval/ab.mjs
  • bench/eval/features.mjs
  • bench/eval/loudness.mjs
  • bench/eval/loudness.test.mjs
  • bench/eval/report.mjs
  • bench/false-green-corpus/find-candidate-rows.mjs
  • bench/false-green-corpus/verify-rows.mjs
  • bench/first-drive/measure.mjs
  • bench/harness-vs-agent/judge.mjs
  • bench/harness-vs-agent/report.mjs
  • bench/harness-vs-agent/run.mjs
  • bench/harness/adapters.mjs
  • bench/harness/analyze.mjs
  • bench/harness/baseline-provenance.mjs
  • bench/harness/baseline-provenance.test.mjs
  • bench/harness/behaviour-matrix.mjs
  • bench/harness/bench-all.mjs
  • bench/harness/charts.mjs
  • bench/harness/claude-agent-loop.mjs
  • bench/harness/clock-timetravel.mjs
  • bench/harness/compiled-suite-vs-replay.mjs
  • bench/harness/compiled-suite-vs-replay.test.mjs
  • bench/harness/compound-expect-bench.mjs
  • bench/harness/console-clean-bench.mjs
  • bench/harness/coverage-floor.mjs
  • bench/harness/coverage-floor.test.mjs
  • bench/harness/explore-cost.mjs
  • bench/harness/forbidden-call-bench.mjs
  • bench/harness/gate.mjs
  • bench/harness/guidance-share.mjs
  • bench/harness/guidance-share.test.mjs
  • bench/harness/imports-resolve.test.mjs
  • bench/harness/inject.mjs
  • bench/harness/intent-effect-metrics.mjs
  • bench/harness/intent-effect-metrics.test.mjs
  • bench/harness/intent-effect-verdict.mjs
  • bench/harness/intent-effect-verdict.test.mjs
  • bench/harness/intent-effect.mjs
  • bench/harness/jev-probe.mjs
  • bench/harness/jev.mjs
  • bench/harness/leak-stress.mjs
  • bench/harness/long-horizon.mjs
  • bench/harness/make-readme-chart.mjs
  • bench/harness/mcp-client.mjs
  • bench/harness/mcp-line-client.mjs
  • bench/harness/measure-large-dom.mjs
  • bench/harness/multi-agent-throughput.mjs
  • bench/harness/network-cardinality-bench.mjs
  • bench/harness/observation-retry.mjs
  • bench/harness/observation-retry.test.mjs
  • bench/harness/openai-agent-loop.mjs
  • bench/harness/parallel-agents-cell.mjs
  • bench/harness/parallel-agents-cell.test.mjs
  • bench/harness/parallel-agents.mjs
  • bench/harness/pass-artifact.mjs
  • bench/harness/pass-artifact.test.mjs
  • bench/harness/platform-drive.mjs
  • bench/harness/playwright-parity.mjs
  • bench/harness/playwright-parity.test.mjs
  • bench/harness/ports.mjs
  • bench/harness/probe.mjs
  • bench/harness/record.mjs
  • bench/harness/recording-reached-anchor.mjs
  • bench/harness/recording-reached-anchor.test.mjs
  • bench/harness/render-storm-bench.mjs
  • bench/harness/replay-bench.mjs
  • bench/harness/replay-detect-consequence.mjs
  • bench/harness/replay-detect-state.mjs
  • bench/harness/replay-detect.mjs
  • bench/harness/replay-determinism.mjs
  • bench/harness/run-observation.mjs
  • bench/harness/schema-tax.mjs
  • bench/harness/served-change.test.mjs
  • bench/harness/source-localize.mjs
  • bench/harness/state-blast-radius-bench.mjs
  • bench/harness/state-desync-bench.mjs
  • bench/harness/stress-tiers.mjs
  • bench/harness/suite-flows.mjs
  • bench/harness/suite-rre.mjs
  • bench/harness/token-budget.mjs
  • bench/harness/token-budget.test.mjs
  • bench/harness/tokenizer.mjs
  • bench/harness/tool-coverage.mjs
  • bench/harness/tool-coverage.test.mjs
  • bench/harness/tool-profile-output.mjs
  • bench/harness/tool-profile-output.test.mjs
  • bench/harness/tool-profile.mjs
  • bench/harness/visual-bug-bench.mjs
  • bench/harness/visual-regression-bench.mjs
  • bench/honesty/run-honesty.mjs
  • bench/honesty/scenarios.mjs
  • bench/overhead/measure.mjs
  • bench/parallel-suite/cross-tool.mjs
  • bench/parallel-suite/measure.mjs
  • bench/pw-vs-reticle/bugs.mjs
  • bench/pw-vs-reticle/compare-runs.mjs
  • bench/pw-vs-reticle/mcp-head-to-head.mjs
  • bench/pw-vs-reticle/moat.mjs
  • bench/pw-vs-reticle/multi-agent.mjs
  • bench/pw-vs-reticle/opaque.mjs
  • bench/pw-vs-reticle/playwright-harness.mjs
  • bench/pw-vs-reticle/report.mjs
  • bench/pw-vs-reticle/reticle-harness.mjs
  • bench/pw-vs-reticle/run.mjs
  • break/break-matrix.mjs
  • conformance/drive.mjs
  • conformance/drive.test.mjs
  • conformance/handoff.mjs
  • conformance/handoff.test.mjs
  • conformance/package.json
  • conformance/run-cli.mjs
  • conformance/run-desktop.mjs
  • conformance/run-self.mjs
  • conformance/scenarios/index.mjs
  • conformance/score.mjs
  • conformance/score.test.mjs
  • conformance/subjects/bench-app.mjs
  • conformance/subjects/bench-app.test.mjs
  • conformance/subjects/cli-smoke.mjs
  • conformance/subjects/coverage.test.mjs
  • conformance/subjects/electron-smoke.mjs
  • core/package.json
  • core/scripts/gen-desktop-contract.d.mts
  • core/scripts/gen-desktop-contract.mjs
  • core/scripts/gen-schema.d.mts
  • core/scripts/gen-schema.mjs
  • core/scripts/gen-source-constants.d.mts
  • core/scripts/gen-source-constants.mjs
  • core/src/activation-entry.ts
  • core/src/artifacts/agent-link.test.ts
  • core/src/artifacts/artifacts-entry.ts
  • core/src/artifacts/credit-wording.test.ts
  • core/src/artifacts/drive-script.test.ts
  • core/src/artifacts/drive-script.ts
  • core/src/artifacts/flow-composition.test.ts
  • core/src/artifacts/flow-composition.ts
  • core/src/artifacts/flow-constants.test.ts
  • core/src/artifacts/flow-constants.ts
  • core/src/artifacts/flow-expect-flat.test.ts
  • core/src/artifacts/flow-expect-flat.ts
  • core/src/artifacts/flow-known-bugs.test.ts
  • core/src/artifacts/flow-mutation-target.perturbation.test.ts
  • core/src/artifacts/flow-mutation-target.test.ts
  • core/src/artifacts/flow-mutation-target.ts
  • core/src/artifacts/flow-name-namespaced.test.ts
  • core/src/artifacts/flow-order.test.ts
  • core/src/artifacts/flow-order.ts
  • core/src/artifacts/flow-quarantine.test.ts
  • core/src/artifacts/flow-results.ts
  • core/src/artifacts/flow-schema-back-compat.test.ts
  • core/src/artifacts/flow-select.retry.test.ts
  • core/src/artifacts/flow-select.test.ts
  • core/src/artifacts/flow-select.ts
  • core/src/artifacts/flow-selection.test.ts
  • core/src/artifacts/flow-step-tool.ts
  • core/src/artifacts/flow-types.ts
  • core/src/artifacts/flow-unreached.test.ts
  • core/src/artifacts/flow-unreached.ts
  • core/src/artifacts/harness-credits.test.ts
  • core/src/artifacts/harness-credits.ts
  • core/src/artifacts/harness-map.ts
  • core/src/artifacts/hud-notices.test.ts
  • core/src/artifacts/hud-notices.ts
  • core/src/artifacts/impact-savings.test.ts
  • core/src/artifacts/impact-savings.ts
  • core/src/artifacts/impact.ts
  • core/src/artifacts/journal.test.ts
  • core/src/artifacts/journal.ts
  • core/src/artifacts/learned-survives-a-round-trip.test.ts
  • core/src/artifacts/prompt-context.test.ts
  • core/src/artifacts/prompt-context.ts
  • core/src/artifacts/screenshot-upload.ts
  • core/src/artifacts/step-effect.ts
  • core/src/capabilities.test.ts
  • core/src/contract-changes.test.ts
  • core/src/directory-reach.test.ts
  • core/src/graph/app-graph.test.ts
  • core/src/graph/app-graph.ts
  • core/src/hooks/hook-events.ts
  • core/src/hooks/hook-payload-carries-no-secret.test.ts
  • core/src/hooks/hooks-entry.ts
  • core/src/hud-entry.ts
  • core/src/identity/brand.ts
  • core/src/identity/checkout.test.ts
  • core/src/identity/checkout.ts
  • core/src/identity/contract-fingerprint.test.ts
  • core/src/identity/contract-fingerprint.ts
  • core/src/identity/document-identity.test.ts
  • core/src/identity/document-identity.ts
  • core/src/identity/edit-epoch.test.ts
  • core/src/identity/edit-epoch.ts
  • core/src/identity/github-action.ts
  • core/src/identity/project-id.test.ts
  • core/src/identity/project-id.ts
  • core/src/identity/retired-wire-names.test.ts
  • core/src/identity/source-constants.test.ts
  • core/src/identity/source-constants.ts
  • core/src/identity/state-dir.test.ts
  • core/src/identity/state-dir.ts
  • core/src/identity/testid-attribute.ts
  • core/src/index.ts
  • core/src/lossy-conformance.test.ts
  • core/src/onboarding-funnel.test.ts
  • core/src/onboarding.ts
  • core/src/orphan-modules.test.ts
  • core/src/package-scripts-resolve.test.ts
  • core/src/realm/determinism-by-surface.test.ts
  • core/src/realm/register-realm.test.ts
  • core/src/realm/registry.test.ts
  • core/src/realm/registry.ts
  • core/src/realm/subject-locator.test.ts
  • core/src/realm/surface-is-declared.test.ts
  • core/src/redaction-config.test.ts
  • core/src/registry/daemon-registry.test.ts
  • core/src/registry/daemon-registry.ts
  • core/src/registry/dev-server-registry.test.ts
  • core/src/registry/dev-server-registry.ts
  • core/src/registry/project-registry.test.ts
  • core/src/registry/project-registry.ts
  • core/src/telemetry-bug.ts
  • core/src/telemetry-entry.ts
  • core/src/telemetry-feedback.ts
  • core/src/telemetry-license.ts
  • core/src/telemetry-refusal.ts
  • core/src/telemetry-session.ts
  • core/src/telemetry-signals.ts
  • core/src/telemetry.ts
  • core/src/tour-entry.ts
  • core/src/tour.ts
  • core/src/verdict/check-sentence.test.ts
  • core/src/verdict/check-sentence.ts
  • core/src/verdict/compare-source.test.ts
  • core/src/verdict/compare-source.ts
  • core/src/verdict/consequence.test.ts
  • core/src/verdict/consequence.ts
  • core/src/verdict/disparity.ts
  • core/src/verdict/engine-blind-spot.test.ts
  • core/src/verdict/finding-fingerprint.test.ts
  • core/src/verdict/finding-fingerprint.ts
  • core/src/verdict/findings.test.ts
  • core/src/verdict/findings.ts
  • core/src/verdict/independence.test.ts
  • core/src/verdict/instrumentation-coverage-score.test.ts
  • core/src/verdict/instrumentation-coverage.test.ts
  • core/src/verdict/instrumentation-coverage.ts
  • core/src/verdict/instrumentation-gap.test.ts
  • core/src/verdict/instrumentation-gap.ts
  • core/src/verdict/intent.test.ts
  • core/src/verdict/intent.ts
  • core/src/verdict/one-vocabulary-for-checks.test.ts
  • core/src/verdict/predicate-aliases-used.test.ts
  • core/src/verdict/predicate-kind-shorthand.test.ts
  • core/src/verdict/predicate-lenient.test.ts
  • core/src/verdict/predicate-tree.test.ts
  • core/src/verdict/predicate-tree.ts
  • core/src/verdict/predicate.ts
  • core/src/verdict/property-assertion.ts
  • core/src/verdict/revision.test.ts
  • core/src/verdict/revision.ts
  • core/src/verdict/run-context.test.ts
  • core/src/verdict/run-context.ts
  • core/src/verdict/run-report.ts
  • core/src/verdict/security.test.ts
  • core/src/verdict/security.ts
  • core/src/verdict/verdict-attribution.ts
  • core/src/verdict/verification-run.test.ts
  • core/src/verdict/verification-run.ts
  • core/src/verdict/verified-attribution.test.ts
  • core/src/verdict/verified-constants.ts
  • core/src/verdict/verify-progress.test.ts
  • core/src/verdict/verify-progress.ts
  • core/src/wire-schema.test.ts
  • core/src/wire/channel.test.ts
  • core/src/wire/channel.ts
  • core/src/wire/click-input.test.ts
  • core/src/wire/click-input.ts
  • core/src/wire/constants/animation-command.ts
  • core/src/wire/constants/api-key.test.ts
  • core/src/wire/constants/cloud-url.test.ts
  • core/src/wire/constants/constants.ts
  • core/src/wire/constants/discovery.test.ts
  • core/src/wire/constants/discovery.ts
  • core/src/wire/constants/event-types.ts
  • core/src/wire/constants/hud-controls.ts
  • core/src/wire/constants/hud-use.ts
  • core/src/wire/constants/match-args.ts
  • core/src/wire/constants/mcp-wire.ts
  • core/src/wire/constants/response-body-reason.ts
  • core/src/wire/constants/reticle-chrome.ts
  • core/src/wire/constants/reticle-env.ts
  • core/src/wire/constants/session-constants.ts
  • core/src/wire/desktop-contract.test.ts
  • core/src/wire/desktop-contract.ts
  • core/src/wire/event-classification.ts
  • core/src/wire/event-payloads.health.test.ts
  • core/src/wire/event-payloads.test.ts
  • core/src/wire/event-payloads.ts
  • core/src/wire/event-priority.test.ts
  • core/src/wire/event-priority.ts
  • core/src/wire/global-press.test.ts
  • core/src/wire/global-press.ts
  • core/src/wire/hello-mode.test.ts
  • core/src/wire/hold.ts
  • core/src/wire/messages.test.ts
  • core/src/wire/messages.ts
  • core/src/wire/narrow.test.ts
  • core/src/wire/narrow.ts
  • core/src/wire/net.test.ts
  • core/src/wire/net.ts
  • core/src/wire/next-step.ts
  • core/src/wire/oversized-collections.test.ts
  • core/src/wire/platform-link.test.ts
  • core/src/wire/platform-link.ts
  • core/src/wire/platform.test.ts
  • core/src/wire/platform.ts
  • core/src/wire/production/activation-ticket.test.ts
  • core/src/wire/production/activation-ticket.ts
  • core/src/wire/production/hello-mode.ts
  • core/src/wire/production/production-policy.test.ts
  • core/src/wire/production/production-policy.ts
  • core/src/wire/redaction.credential-field.test.ts
  • core/src/wire/redaction.embedded-url.test.ts
  • core/src/wire/redaction.fuzz.test.ts
  • core/src/wire/redaction.passphrase.test.ts
  • core/src/wire/redaction.presigned.test.ts
  • core/src/wire/redaction.shapes.test.ts
  • core/src/wire/redaction.ts
  • core/src/wire/snapshot-tree.test.ts
  • core/src/wire/snapshot-tree.ts
  • core/src/wire/spec-matches-contract.test.ts
  • core/src/wire/state-select.test.ts
  • core/src/wire/state-select.ts
  • core/src/wire/tool-names.ts
  • core/src/wire/toon.linebreak.test.ts
  • core/src/wire/toon.test.ts
  • core/src/wire/toon.ts
  • core/src/wire/types.attrs.test.ts
  • core/src/wire/types.recorded.test.ts
  • core/src/wire/types.ts
  • core/src/wire/types.version.test.ts
  • core/src/words/browser-misdirect.test.ts
  • core/src/words/browser-misdirect.ts
  • core/src/words/no-session-reason.ts
  • core/src/words/notices.ts
  • core/src/words/unreachable-notice.test.ts
  • core/src/words/unreachable-notice.ts
  • core/src/words/upgrade.test.ts
  • core/src/words/upgrade.ts
  • core/src/words/writing-rule.ts
  • core/vitest.config.ts
  • engine/package.json
  • engine/src/core-coupling-only-shrinks.test.ts
  • engine/src/directory-reach.test.ts
  • engine/src/disagreement/acknowledged-failed-write.test.ts
  • engine/src/disagreement/body-failures.test.ts
  • engine/src/disagreement/body-failures.ts
  • engine/src/disagreement/contradiction-evidence.ts
  • engine/src/disagreement/contradiction-folds.test.ts
  • engine/src/disagreement/contradiction-folds.ts
  • engine/src/disagreement/contradiction-types.ts
  • engine/src/disagreement/contradictions-pagination.test.ts
  • engine/src/disagreement/contradictions.app-reaction.test.ts
  • engine/src/disagreement/contradictions.attribution.test.ts
  • engine/src/disagreement/contradictions.declare-hint.test.ts
  • engine/src/disagreement/contradictions.declared.test.ts
  • engine/src/disagreement/contradictions.document-scope.test.ts
  • engine/src/disagreement/contradictions.edit-scope.test.ts
  • engine/src/disagreement/contradictions.hydration.test.ts
  • engine/src/disagreement/contradictions.read-server-fault.test.ts
  • engine/src/disagreement/contradictions.retry.test.ts
  • engine/src/disagreement/contradictions.stale-one-intent.test.ts
  • engine/src/disagreement/contradictions.state-bookkeeping.test.ts
  • engine/src/disagreement/contradictions.target-fate.test.ts
  • engine/src/disagreement/contradictions.test.ts
  • engine/src/disagreement/contradictions.ts
  • engine/src/disagreement/duplicate-request-identity.test.ts
  • engine/src/disagreement/duplicate-request-repeatable.test.ts
  • engine/src/disagreement/duplicate-request-unrelated.test.ts
  • engine/src/disagreement/echo-mismatch.addressed-write.test.ts
  • engine/src/disagreement/echo-mismatch.compare-and-set.test.ts
  • engine/src/disagreement/echo-mismatch.derived-record.test.ts
  • engine/src/disagreement/echo-mismatch.normalized-values.test.ts
  • engine/src/disagreement/echo-mismatch.test.ts
  • engine/src/disagreement/echo-mismatch.timestamps.test.ts
  • engine/src/disagreement/echo-mismatch.ts
  • engine/src/disagreement/foreign-traffic-redacted.test.ts
  • engine/src/disagreement/poll-is-not-a-double-submit.test.ts
  • engine/src/disagreement/reconcile.test.ts
  • engine/src/disagreement/reconcile.ts
  • engine/src/disagreement/route-claim-is-an-effect.test.ts
  • engine/src/disagreement/signal-before-declared-failure.test.ts
  • engine/src/disagreement/stale-response.test.ts
  • engine/src/disagreement/stale-response.ts
  • engine/src/disagreement/unit-mismatch.prior.test.ts
  • engine/src/disagreement/unit-mismatch.test.ts
  • engine/src/disagreement/unit-mismatch.ts
  • engine/src/disagreement/witness-disagreement.test.ts
  • engine/src/disagreement/witness-disagreement.ts
  • engine/src/evidence/absence-of-a-removed-target.test.ts
  • engine/src/evidence/accepted-write-labels.test.ts
  • engine/src/evidence/accepted-write-routing.test.ts
  • engine/src/evidence/accepted-write.test.ts
  • engine/src/evidence/accepted-write.ts
  • engine/src/evidence/already-true.test.ts
  • engine/src/evidence/already-true.ts
  • engine/src/evidence/baseline.test.ts
  • engine/src/evidence/baseline.ts
  • engine/src/evidence/blind-spots.test.ts
  • engine/src/evidence/blind-spots.ts
  • engine/src/evidence/body-capture-remedy.test.ts
  • engine/src/evidence/body-capture-remedy.ts
  • engine/src/evidence/body-clause-preflight.test.ts
  • engine/src/evidence/body-skip-remedy.test.ts
  • engine/src/evidence/compare-already-true.test.ts
  • engine/src/evidence/coverage-promise.test.ts
  • engine/src/evidence/false-green-caught.test.ts
  • engine/src/evidence/gap-ledger.test.ts
  • engine/src/evidence/gap-ledger.ts
  • engine/src/evidence/honesty-substantiation.test.ts
  • engine/src/evidence/honesty.test.ts
  • engine/src/evidence/honesty.ts
  • engine/src/evidence/instrumentation-gaps.test.ts
  • engine/src/evidence/instrumentation-gaps.ts
  • engine/src/evidence/learned-guards.test.ts
  • engine/src/evidence/learned-guards.ts
  • engine/src/evidence/observability.test.ts
  • engine/src/evidence/observability.ts
  • engine/src/evidence/outcome-unread-remedy.test.ts
  • engine/src/evidence/page-teardown.ts
  • engine/src/evidence/protocol-parity.test.ts
  • engine/src/evidence/source-mapping-opt-out.test.ts
  • engine/src/evidence/state-bookkeeping.test.ts
  • engine/src/evidence/state-bookkeeping.ts
  • engine/src/evidence/step-effect.test.ts
  • engine/src/evidence/step-effect.ts
  • engine/src/evidence/superseded-checks.test.ts
  • engine/src/evidence/superseded-checks.ts
  • engine/src/evidence/uncaptured-bodies.test.ts
  • engine/src/evidence/uncaptured-bodies.ts
  • engine/src/evidence/undeclared-change.test.ts
  • engine/src/evidence/undeclared-change.ts
  • engine/src/evidence/undeclared-channel.test.ts
  • engine/src/evidence/undeclared-is-not-proved.test.ts
  • engine/src/evidence/uninstrumented-app.test.ts
  • engine/src/evidence/unread-outcome.test.ts
  • engine/src/evidence/unread-outcome.ts
  • engine/src/evidence/unsettled.test.ts
  • engine/src/evidence/unsettled.ts
  • engine/src/evidence/verdict-asks-for-intent.test.ts
  • engine/src/evidence/verdict-intent-gap.ts
  • engine/src/evidence/verified.absence.test.ts
  • engine/src/evidence/verified.declared.test.ts
  • engine/src/evidence/verified.pending.test.ts
  • engine/src/evidence/verified.skew.test.ts
  • engine/src/evidence/verified.test.ts
  • engine/src/evidence/verified.ts
  • engine/src/exact-count.ts
  • engine/src/index.ts
  • engine/src/orphan-modules.test.ts
  • engine/src/question/declared.test.ts
  • engine/src/question/declared.ts
  • engine/src/question/document-navigation-is-not-resource-timing.test.ts
  • engine/src/question/lineage.test.ts
  • engine/src/question/lineage.ts
  • engine/src/question/match-value-structural.test.ts
  • engine/src/question/net-evidence-body.test.ts
  • engine/src/question/predicate-call-level-fields.test.ts
  • engine/src/question/predicate-composite-inconclusive.test.ts
  • engine/src/question/predicate-console-pre-attach.test.ts
  • engine/src/question/predicate-decided.test.ts
  • engine/src/question/predicate-document-scope.test.ts
  • engine/src/question/predicate-element-alt.test.ts
  • engine/src/question/predicate-element-value.test.ts
  • engine/src/question/predicate-empty-combinator.test.ts
  • engine/src/question/predicate-eval.oracle.test.ts
  • engine/src/question/predicate-eval.settle-busy.test.ts
  • engine/src/question/predicate-eval.settle-retry.test.ts
  • engine/src/question/predicate-eval.settle-scope.test.ts
  • engine/src/question/predicate-hollow-liveregion.test.ts
  • engine/src/question/predicate-net-body.test.ts
  • engine/src/question/predicate-net-media.test.ts
  • engine/src/question/predicate-net-pre-attach.test.ts
  • engine/src/question/predicate-net-unobserved.test.ts
  • engine/src/question/predicate-not-evidence.test.ts
  • engine/src/question/predicate-parse-example.test.ts
  • engine/src/question/predicate-replaced-document-response.test.ts
  • engine/src/question/predicate-route-current.test.ts
  • engine/src/question/predicate-route-hash.test.ts
  • engine/src/question/predicate-route-identity-params.test.ts
  • engine/src/question/predicate-route-server-pending.test.ts
  • engine/src/question/predicate-route-unsettled.test.ts
  • engine/src/question/predicate-shape.test.ts
  • engine/src/question/predicate-spelling.test.ts
  • engine/src/question/predicate-state-scoped.test.ts
  • engine/src/question/predicate-store-narrowing.test.ts
  • engine/src/question/predicate-strict.test.ts
  • engine/src/question/predicate-text-full.test.ts
  • engine/src/question/predicate-text-scope.test.ts
  • engine/src/question/predicate-truncated-state.test.ts
  • engine/src/question/predicate-url-raw.test.ts
  • engine/src/question/predicate/body-key-fragment.ts
  • engine/src/question/predicate/name-near-miss.test.ts
  • engine/src/question/predicate/name-near-miss.ts
  • engine/src/question/predicate/nested-field-match.test.ts
  • engine/src/question/predicate/net-blind-spots.ts
  • engine/src/question/predicate/net-evidence.ts
  • engine/src/question/predicate/net-media-before-window.test.ts
  • engine/src/question/predicate/net-unpatched-fetch.test.ts
  • engine/src/question/predicate/net-unrecorded-body.test.ts
  • engine/src/question/predicate/observed-in-window.test.ts
  • engine/src/question/predicate/observed-in-window.ts
  • engine/src/question/predicate/predicate-animation.test.ts
  • engine/src/question/predicate/predicate-animation.ts
  • engine/src/question/predicate/predicate-asks.ts
  • engine/src/question/predicate/predicate-compare.test.ts
  • engine/src/question/predicate/predicate-compare.ts
  • engine/src/question/predicate/predicate-console.ts
  • engine/src/question/predicate/predicate-corrected-example.test.ts
  • engine/src/question/predicate/predicate-element.test.ts
  • engine/src/question/predicate/predicate-element.ts
  • engine/src/question/predicate/predicate-eval-kit.ts
  • engine/src/question/predicate/predicate-eval.ts
  • engine/src/question/predicate/predicate-parse.test.ts
  • engine/src/question/predicate/predicate-parse.ts
  • engine/src/question/predicate/predicate-precheck.test.ts
  • engine/src/question/predicate/predicate-precheck.ts
  • engine/src/question/predicate/predicate-request-body.test.ts
  • engine/src/question/predicate/predicate-request-body.ts
  • engine/src/question/predicate/predicate-response-body.test.ts
  • engine/src/question/predicate/predicate-route.ts
  • engine/src/question/predicate/predicate-schema.ts
  • engine/src/question/predicate/predicate-session.ts
  • engine/src/question/predicate/predicate-state.ts
  • engine/src/question/predicate/predicate-to-links.test.ts
  • engine/src/question/predicate/predicate-to-links.ts
  • engine/src/question/predicate/predicate-truncated-body-matches.test.ts
  • engine/src/question/predicate/predicate-truncated-body-old-sdk.test.ts
  • engine/src/question/predicate/predicate.test.ts
  • engine/src/question/predicate/predicate.ts
  • engine/src/question/predicate/property-reaches-the-verdict.test.ts
  • engine/src/question/predicate/property.test.ts
  • engine/src/question/predicate/property.ts
  • engine/src/question/predicate/relative-property.test.ts
  • engine/src/question/predicate/split-text-miss.test.ts
  • engine/src/question/predicate/split-text-miss.ts
  • engine/src/question/predicate/testid-near-miss.test.ts
  • engine/src/question/predicate/testid-near-miss.ts
  • engine/src/question/predicate/text-query.test.ts
  • engine/src/question/predicate/truncated-body-advice.ts
  • engine/src/question/reaction.test.ts
  • engine/src/question/reaction.ts
  • engine/src/question/route-of-event.test.ts
  • engine/src/question/text-satisfies.test.ts
  • engine/src/state-bookkeeping.ts
  • engine/src/the-rules-stand-alone.test.ts
  • engine/src/window/adversary.test.ts
  • engine/src/window/adversary.ts
  • engine/src/window/ambient.test.ts
  • engine/src/window/ambient.ts
  • engine/src/window/appearance-budget.test.ts
  • engine/src/window/appearance-budget.ts
  • engine/src/window/asset-noise.test.ts
  • engine/src/window/asset-noise.ts
  • engine/src/window/body-relevance.test.ts
  • engine/src/window/body-relevance.ts
  • engine/src/window/byte-size.ts
  • engine/src/window/engine-host.ts
  • engine/src/window/event-filters.test.ts
  • engine/src/window/event-filters.ts
  • engine/src/window/json-salvage.test.ts
  • engine/src/window/json-salvage.ts
  • engine/src/window/network-detail-merge.test.ts
  • engine/src/window/network-detail-merge.ts
  • engine/src/window/ring-buffer-armed-window.test.ts
  • engine/src/window/ring-buffer-window-loss.test.ts
  • engine/src/window/ring-buffer.test.ts
  • engine/src/window/ring-buffer.ts
  • engine/vitest.config.ts
  • eslint.config.mjs
  • init/package.json
  • init/src/agent-contract-consent.test.ts
  • init/src/agent-rules-refresh.test.ts
  • init/src/angular.test.ts
  • init/src/capabilities-every-framework.test.ts
  • init/src/closing-is-an-instruction.test.ts
  • init/src/csp-inline-script.test.ts
  • init/src/csp-step.test.ts
  • init/src/detect/capabilities.test.ts
  • init/src/detect/capabilities.ts
  • init/src/detect/declared/app-choice.test.ts
  • init/src/detect/declared/app-choice.ts
  • init/src/detect/declared/init-opt-out.test.ts
  • init/src/detect/declared/init-opt-out.ts
  • init/src/detect/detect.test.ts
  • init/src/detect/detect.ts
  • init/src/detect/dev-script.test.ts
  • init/src/detect/dev-script.ts
  • init/src/detect/dev-server-ports.test.ts
  • init/src/detect/dev-server-ports.ts
  • init/src/detect/existing-config.ts
  • init/src/detect/lockfiles.ts
  • init/src/detect/non-js-project.test.ts
  • init/src/detect/non-js-project.ts
  • init/src/detect/package-manager-field.test.ts
  • init/src/detect/platform.ts
  • init/src/detect/prettier-config.test.ts
  • init/src/detect/prettier-config.ts
  • init/src/detect/workspace-apps.test.ts
  • init/src/detect/workspace-apps.ts
  • init/src/detect/workspace-redirect-command.test.ts
  • init/src/detect/workspace-redirect.ts
  • init/src/dev-server-policy-single-source.test.ts
  • init/src/diagnose/closing-hint.ts
  • init/src/diagnose/containerised-dev-server.test.ts
  • init/src/diagnose/containerised-dev-server.ts
  • init/src/diagnose/csp-check.test.ts
  • init/src/diagnose/csp-check.ts
  • init/src/diagnose/csp-doctor.test.ts
  • init/src/diagnose/csp-doctor.ts
  • init/src/diagnose/csp-step.test.ts
  • init/src/diagnose/csp-step.ts
  • init/src/diagnose/desktop-doctor.test.ts
  • init/src/diagnose/desktop-doctor.ts
  • init/src/diagnose/init-failure.ts
  • init/src/diagnose/install-hint.test.ts
  • init/src/diagnose/install-hint.ts
  • init/src/diagnose/install-retries.test.ts
  • init/src/diagnose/install-retries.ts
  • init/src/diagnose/terminal-wrap.test.ts
  • init/src/diagnose/terminal-wrap.ts
  • init/src/directory-reach.test.ts
  • init/src/django-init.test.ts
  • init/src/electron-forge.test.ts
  • init/src/finds-the-app-folder.test.ts
  • init/src/frozen-port.test.ts
  • init/src/gather-plan-input.ts
  • init/src/host.ts
  • init/src/html-no-build.test.ts
  • init/src/index.ts
  • init/src/install-pins-running-version.test.ts
  • init/src/install-quarantine.test.ts
  • init/src/memory-io.test-helpers.ts
  • init/src/new-id-hand-written.test.ts
  • init/src/next-capabilities-notice.test.ts
  • init/src/next-daemon-url.test.ts
  • init/src/no-package-json.ts
  • init/src/node-io-output.test.ts
  • init/src/node-io.test.ts
  • init/src/node-io.ts
  • init/src/non-localhost-guidance.test.ts
  • init/src/nuxt.test.ts
  • init/src/one-bridge-url.test.ts
  • init/src/orphan-modules.test.ts
  • init/src/patch/angular.ts
  • init/src/patch/astro-host.test.ts
  • init/src/patch/astro-host.ts
  • init/src/patch/astro-patch.test.ts
  • init/src/patch/astro-patch.ts
  • init/src/patch/brace-scan.ts
  • init/src/patch/cra.test.ts
  • init/src/patch/cra.ts
  • init/src/patch/electron-patch.test.ts
  • init/src/patch/electron-patch.ts
  • init/src/patch/electron-vite-patch.test.ts
  • init/src/patch/electron-vite-patch.ts
  • init/src/patch/format-generated.test.ts
  • init/src/patch/format-generated.ts
  • init/src/patch/generated-dev-module-typechecks.test.ts
  • init/src/patch/next-patch.test.ts
  • init/src/patch/next-patch.ts
  • init/src/patch/nuxt-patch.ts
  • init/src/patch/nuxt-snippets.ts
  • init/src/patch/patch-kind.ts
  • init/src/patch/prettier-ignore.test.ts
  • init/src/patch/prettier-ignore.ts
  • init/src/patch/python-snippets.ts
  • init/src/patch/remix.ts
  • init/src/patch/snippets.ts
  • init/src/patch/static-page.ts
  • init/src/patch/tanstack-start.test.ts
  • init/src/patch/tanstack-start.ts
  • init/src/patch/vite-config.test.ts
  • init/src/patch/vite-config.ts
  • init/src/patch/vite-env-types.ts
  • init/src/patch/vite-owning-config.ts
  • init/src/patch/vite-owning-optimizer.test.ts
  • init/src/patch/vite-snippet-order.test.ts
  • init/src/plan/claude-never-vanishes.test.ts
  • init/src/plan/claude-plugin-no-duplicate.test.ts
  • init/src/plan/connect-steps.test.ts
  • init/src/plan/connect-steps.ts
  • init/src/plan/dev-module-is-loaded.test.ts
  • init/src/plan/framework-adapter.test.ts
  • init/src/plan/framework-adapter.ts
  • init/src/plan/install-is-idempotent.test.ts
  • init/src/plan/notices.ts
  • init/src/plan/plan-angular.ts
  • init/src/plan/plan-electron-vite.ts
  • init/src/plan/plan-framework.test.ts
  • init/src/plan/plan-framework.ts
  • init/src/plan/plan-types.ts
  • init/src/plan/plan-vite.ts
  • init/src/plan/plan.test.ts
  • init/src/plan/plan.ts
  • init/src/plan/port-convergence.test.ts
  • init/src/plan/port-steps.ts
  • init/src/plan/preflight.test.ts
  • init/src/plan/preflight.ts
  • init/src/plan/prettier-ignore-step.test.ts
  • init/src/plan/prompt-hook-step.test.ts
  • init/src/plan/stop-hook-step.test.ts
  • init/src/plan/stop-hook-step.ts
  • init/src/project/agent-rules.test.ts
  • init/src/project/agent-rules.ts
  • init/src/project/install-source-config.ts
  • init/src/project/project-id.test.ts
  • init/src/project/project-id.ts
  • init/src/project/refresh-rules.test.ts
  • init/src/project/refresh-rules.ts
  • init/src/project/remember-project.test.ts
  • init/src/project/remember-project.ts
  • init/src/r3f-source-mapping.test.ts
  • init/src/react-kit-only-for-react.test.ts
  • init/src/react-router-framework-mode.test.ts
  • init/src/register/codex-cli-registration.test.ts
  • init/src/register/codex-toml.test.ts
  • init/src/register/codex-toml.ts
  • init/src/register/detect-clients.test.ts
  • init/src/register/detect-clients.ts
  • init/src/register/mcp-clients.test.ts
  • init/src/register/mcp-clients.ts
  • init/src/register/mcp-registered.test.ts
  • init/src/register/mcp-registered.ts
  • init/src/register/mcp.test.ts
  • init/src/register/mcp.ts
  • init/src/register/prompt-hooks.test.ts
  • init/src/register/prompt-hooks.ts
  • init/src/register/slash-command.ts
  • init/src/register/windows-quote.test.ts
  • init/src/register/windows-quote.ts
  • init/src/remember-project-preserves.test.ts
  • init/src/remix.test.ts
  • init/src/restart-hint.test.ts
  • init/src/rules-carry-the-unfinished-job.test.ts
  • init/src/rules-do-not-stop.test.ts
  • init/src/rules-name-the-escape-hatches.test.ts
  • init/src/run-types.ts
  • init/src/run.test.ts
  • init/src/run.ts
  • init/src/sdk-packages.ts
  • init/src/skill-copies-agree.test.ts
  • init/src/snippet-token.test.ts
  • init/src/snippets-compile.test.ts
  • init/src/static-page.test.ts
  • init/src/streamlit-snippet.test.ts
  • init/src/suggestion-is-not-registration.test.ts
  • init/src/unverified-note.test.ts
  • init/src/version.ts
  • init/src/webgl-canvas-limit.test.ts
  • init/src/webpack4-cra.test.ts
  • init/src/workspace-onboarding.test.ts
  • init/vitest.config.ts
  • install/install.ps1
  • install/install.sh
  • open-verification/package.json
  • open-verification/scripts/gen-schema.d.mts
  • open-verification/scripts/gen-schema.mjs
  • open-verification/src/adjudication-vectors.test.ts
  • open-verification/src/docs-name-what-exists.test.ts
  • open-verification/src/every-rule-is-proved.test.ts
  • open-verification/src/index.ts
  • open-verification/src/language/composite-stitch.test.ts
  • open-verification/src/language/composite-typecheck.test.ts
  • open-verification/src/language/composition.test.ts
  • open-verification/src/language/criteria.test.ts
  • open-verification/src/language/criteria.ts
  • open-verification/src/language/flow-document.test.ts
  • open-verification/src/language/phases.test.ts
  • open-verification/src/language/phases.ts
  • open-verification/src/language/step-address.test.ts
  • open-verification/src/language/typecheck.test.ts
  • open-verification/src/language/typecheck.ts
  • open-verification/src/orphan-modules.test.ts
  • open-verification/src/reference/service-realm.test.ts
  • open-verification/src/reference/service-realm.ts
  • open-verification/src/refinements-reach-the-contract.test.ts
  • open-verification/src/registry.ts
  • open-verification/src/requirement-ids.test.ts
  • open-verification/src/rules-are-exercised.test.ts
  • open-verification/src/schema-covers-vocabulary.test.ts
  • open-verification/src/spec-names-the-vocabulary.test.ts
  • open-verification/src/spi/adjudicator.test.ts
  • open-verification/src/spi/adjudicator.ts
  • open-verification/src/spi/realm-satisfies.test.ts
  • open-verification/src/spi/realm.test.ts
  • open-verification/src/spi/realm.ts
  • open-verification/src/spi/witness.test.ts
  • open-verification/src/spi/witness.ts
  • open-verification/src/vocabulary/channel.ts
  • open-verification/src/vocabulary/determinism.test.ts
  • open-verification/src/vocabulary/determinism.ts
  • open-verification/src/vocabulary/evidence.ts
  • open-verification/src/vocabulary/fixture.test.ts
  • open-verification/src/vocabulary/fixture.ts
  • open-verification/src/vocabulary/intent.test.ts
  • open-verification/src/vocabulary/intent.ts
  • open-verification/src/vocabulary/memory.test.ts
  • open-verification/src/vocabulary/memory.ts
  • open-verification/src/vocabulary/mutation.test.ts
  • open-verification/src/vocabulary/mutation.ts
  • open-verification/src/vocabulary/predicate.test.ts
  • open-verification/src/vocabulary/predicate.ts
  • open-verification/src/vocabulary/realm-surface.ts
  • open-verification/src/vocabulary/run-witnesses.test.ts
  • open-verification/src/vocabulary/run.ts
  • open-verification/src/vocabulary/subject.test.ts
  • open-verification/src/vocabulary/subject.ts
  • open-verification/src/vocabulary/verdict.ts
  • open-verification/vitest.config.ts
  • package.json
  • pre-commit.sh
  • prepare-commit-msg.sh
  • scripts/alias-dist.mjs
  • scripts/assemble-changelog.mjs
  • scripts/check-boundaries.d.mts
  • scripts/check-boundaries.mjs
  • scripts/check-docs-site.mjs
  • scripts/check-js-audit.mjs
  • scripts/check-lossy-transforms.mjs
  • scripts/check-pack-size.mjs
  • scripts/check-pending-release.mjs
  • scripts/check-unbumped-packages.mjs
  • scripts/ci-run.mjs
  • scripts/ci/changes.mjs
  • scripts/ci/flaky-expiry.mjs
  • scripts/directory-reach.d.mts
  • scripts/directory-reach.mjs
  • scripts/guard-tests.d.mts
  • scripts/guard-tests.mjs
  • scripts/issue-license.mjs
  • scripts/local-registry.sh
  • scripts/orphan-scan.d.mts
  • scripts/orphan-scan.mjs
  • scripts/pack-docs.mjs
  • scripts/pack-install-gate.mjs
  • scripts/prepare-dist.mjs
  • scripts/safe-to-group.mjs
  • scripts/set-version.mjs
  • scripts/stamp-issuer-key.mjs
  • scripts/sync-skill.d.mts
  • scripts/sync-skill.mjs
  • scripts/test-suffixes.mjs
  • server/bin/launch.js
  • server/bin/package.json
  • server/bin/reticle.js
  • server/package.json
  • server/src/agent-presence.e2e.test.ts
  • server/src/area-label-paths.test.ts
  • server/src/browser-bytes-only.test.ts
  • server/src/chromium-launch-options.test.ts
  • server/src/chromium-launch-options.ts
  • server/src/ci-aggregate-covers-jobs.test.ts
  • server/src/ci-routing-paths.test.ts
  • server/src/cli.test.ts
  • server/src/command/cli-onboarding.ts
  • server/src/command/cli.ts
  • server/src/command/cli/adhoc-suite.test.ts
  • server/src/command/cli/adhoc-suite.ts
  • server/src/command/cli/adhoc-verdict.test.ts
  • server/src/command/cli/adhoc-verdict.ts
  • server/src/command/cli/answers/gate-exit.ts
  • server/src/command/cli/answers/gate-hook-message.test.ts
  • server/src/command/cli/answers/gate-hook-message.ts
  • server/src/command/cli/answers/gate-known-regression.test.ts
  • server/src/command/cli/answers/mcp-connection-hint.ts
  • server/src/command/cli/answers/open-note.test.ts
  • server/src/command/cli/answers/open-note.ts
  • server/src/command/cli/answers/status-next-action.test.ts
  • server/src/command/cli/answers/status-next-action.ts
  • server/src/command/cli/auth/cloud-keystore.ts
  • server/src/command/cli/auth/cloud-session.ts
  • server/src/command/cli/auth/device-flow.ts
  • server/src/command/cli/ci-hint.test.ts
  • server/src/command/cli/ci-hint.ts
  • server/src/command/cli/cli-cut-list.test.ts
  • server/src/command/cli/cli-doctor.test.ts
  • server/src/command/cli/cli-doctor.ts
  • server/src/command/cli/cli-flow-commands.ts
  • server/src/command/cli/cli-gate-per-flow.test.ts
  • server/src/command/cli/cli-kill.test.ts
  • server/src/command/cli/cli-kill.ts
  • server/src/command/cli/cli-parse-compare.test.ts
  • server/src/command/cli/cli-parse-feedback.ts
  • server/src/command/cli/cli-parse-grammar.ts
  • server/src/command/cli/cli-parse-serve.ts
  • server/src/command/cli/cli-parse-verify.ts
  • server/src/command/cli/cli-parse.ts
  • server/src/command/cli/cli-update-commands.test.ts
  • server/src/command/cli/cli-update-commands.ts
  • server/src/command/cli/cli-usage.ts
  • server/src/command/cli/cli-verify-linked.test.ts
  • server/src/command/cli/cli-verify.test.ts
  • server/src/command/cli/cli-verify.ts
  • server/src/command/cli/cloud-cli-verbs.test.ts
  • server/src/command/cli/cloud-cli.test.ts
  • server/src/command/cli/cloud-cli.ts
  • server/src/command/cli/cloud-kit-forbidden.test.ts
  • server/src/command/cli/cloud-kit.ts
  • server/src/command/cli/cloud-link.ts
  • server/src/command/cli/cloud-login-hud.test.ts
  • server/src/command/cli/cloud-login-origin.test.ts
  • server/src/command/cli/cloud-login.ts
  • server/src/command/cli/config/checkout.test.ts
  • server/src/command/cli/config/checkout.ts
  • server/src/command/cli/config/config-discovery.test.ts
  • server/src/command/cli/config/config-discovery.ts
  • server/src/command/cli/connect-exit.test.ts
  • server/src/command/cli/context-command.ts
  • server/src/command/cli/daemon-health-parity.test.ts
  • server/src/command/cli/daemon-link/daemon-client.ts
  • server/src/command/cli/daemon-start-options.test.ts
  • server/src/command/cli/daemon-start-options.ts
  • server/src/command/cli/dials-the-daemon.test.ts
  • server/src/command/cli/doctor-repairs.ts
  • server/src/command/cli/doctor/browser/chromium-hint.test.ts
  • server/src/command/cli/doctor/browser/chromium-hint.ts
  • server/src/command/cli/doctor/doctor-agent-link.test.ts
  • server/src/command/cli/doctor/doctor-agent-link.ts
  • server/src/command/cli/doctor/doctor-coverage-line.test.ts
  • server/src/command/cli/doctor/doctor-coverage-line.ts
  • server/src/command/cli/doctor/doctor-daemon-line.test.ts
  • server/src/command/cli/doctor/doctor-daemon-line.ts
  • server/src/command/cli/doctor/doctor-fix.test.ts
  • server/src/command/cli/doctor/doctor-fix.ts
  • server/src/command/cli/doctor/doctor-launcher-line.test.ts
  • server/src/command/cli/doctor/doctor-launcher-line.ts
  • server/src/command/cli/doctor/doctor-project-line.test.ts
  • server/src/command/cli/doctor/doctor-project-line.ts
  • server/src/command/cli/doctor/doctor-rows.test.ts
  • server/src/command/cli/doctor/doctor-rows.ts
  • server/src/command/cli/doctor/doctor-sessions-line.test.ts
  • server/src/command/cli/doctor/doctor-sessions-line.ts
  • server/src/command/cli/doctor/doctor-signing-line.test.ts
  • server/src/command/cli/doctor/doctor-signing-line.ts
  • server/src/command/cli/drive/drive-attach.test.ts
  • server/src/command/cli/drive/drive-attach.ts
  • server/src/command/cli/drive/drive-command.ts
  • server/src/command/cli/expect-quoting.test.ts
  • server/src/command/cli/first-flow.test.ts
  • server/src/command/cli/first-use-checks.test.ts
  • server/src/command/cli/first-use-checks.ts
  • server/src/command/cli/first-verdict-node.ts
  • server/src/command/cli/first-verdict.test.ts
  • server/src/command/cli/first-verdict.ts
  • server/src/command/cli/front-door.test.ts
  • server/src/command/cli/gate-accept-coverage.test.ts
  • server/src/command/cli/gate-completed.test.ts
  • server/src/command/cli/gate-exit-codes.test.ts
  • server/src/command/cli/gate-flows-without-sources.test.ts
  • server/src/command/cli/headless-by-default.test.ts
  • server/src/command/cli/help-reaches-every-command.test.ts
  • server/src/command/cli/hook/agent-tables.test.ts
  • server/src/command/cli/hook/codex-transcript.test.ts
  • server/src/command/cli/hook/codex-transcript.ts
  • server/src/command/cli/hook/episode-structure.test.ts
  • server/src/command/cli/hook/episode-structure.ts
  • server/src/command/cli/hook/hook-command.test.ts
  • server/src/command/cli/hook/hook-command.ts
  • server/src/command/cli/hook/hook-fast.test.ts
  • server/src/command/cli/hook/hook-fast.ts
  • server/src/command/cli/hook/hook-status.test.ts
  • server/src/command/cli/hook/prompt-hook.test.ts
  • server/src/command/cli/hook/prompt-hook.ts
  • server/src/command/cli/hook/tool-hook.test.ts
  • server/src/command/cli/hook/tool-hook.ts
  • server/src/command/cli/init-app-files-only.test.ts
  • server/src/command/cli/init-new-id.test.ts
  • server/src/command/cli/keep-alive-turn.test.ts
  • server/src/command/cli/known-commands.test.ts
  • server/src/command/cli/known-regression.ts
  • server/src/command/cli/launch/cli-launch.test.ts
  • server/src/command/cli/launch/cli-launch.ts
  • server/src/command/cli/launch/sdk-version-match.test.ts
  • server/src/command/cli/launch/sdk-version-match.ts
  • server/src/command/cli/lifecycle/daemon-lifecycle.serve-drive.test.ts
  • server/src/command/cli/lifecycle/daemon-lifecycle.ts
  • server/src/command/cli/mcp-command-headless.test.ts
  • server/src/command/cli/mcp-command.ts
  • server/src/command/cli/node-floor-bin.test.ts
  • server/src/command/cli/open-navigate.test.ts
  • server/src/command/cli/open-navigate.ts
  • server/src/command/cli/ports/port-holder.test.ts
  • server/src/command/cli/ports/port-holder.ts
  • server/src/command/cli/ports/resolve/cli-port.test.ts
  • server/src/command/cli/ports/resolve/cli-port.ts
  • server/src/command/cli/ports/sibling-ports.test.ts
  • server/src/command/cli/ports/sibling-ports.ts
  • server/src/command/cli/project-name.test.ts
  • server/src/command/cli/project-name.ts
  • server/src/command/cli/project-one-id.test.ts
  • server/src/command/cli/report-command.test.ts
  • server/src/command/cli/report-command.ts
  • server/src/command/cli/retire-older-daemon.test.ts
  • server/src/command/cli/setup-mcp-cli.test.ts
  • server/src/command/cli/setup-mcp-cli.ts
  • server/src/command/cli/setup-wait-agents.test.ts
  • server/src/command/cli/status-dev-servers.test.ts
  • server/src/command/cli/status-fields.ts
  • server/src/command/cli/status/report-status.test.ts
  • server/src/command/cli/status/status-lines.test.ts
  • server/src/command/cli/status/status-lines.ts
  • server/src/command/cli/status/workspace-links.test.ts
  • server/src/command/cli/status/workspace-links.ts
  • server/src/command/cli/suggested-commands-exist.test.ts
  • server/src/command/cli/try-command.test.ts
  • server/src/command/cli/try-command.ts
  • server/src/command/cli/tutorial.ts
  • server/src/command/cli/two-builds/compare-command.test.ts
  • server/src/command/cli/two-builds/compare-command.ts
  • server/src/command/cli/verify-against.test.ts
  • server/src/command/cli/verify-against.ts
  • server/src/command/cli/verify-confirm-dangerous.test.ts
  • server/src/command/cli/verify-no-session.ts
  • server/src/command/cli/verify-port-busy-message.test.ts
  • server/src/command/cli/verify-require-start-control.test.ts
  • server/src/command/cli/verify-results.score.test.ts
  • server/src/command/cli/verify-results.ts
  • server/src/command/cli/verify-sweep.test.ts
  • server/src/command/cli/verify-unsupported-flags.test.ts
  • server/src/command/daemon/binding/daemon-status-probe.test.ts
  • server/src/command/daemon/binding/daemon-status-probe.ts
  • server/src/command/daemon/binding/free-port.test.ts
  • server/src/command/daemon/binding/free-port.ts
  • server/src/command/daemon/binding/held-port.test.ts
  • server/src/command/daemon/binding/loopback-alias.test.ts
  • server/src/command/daemon/binding/loopback-alias.ts
  • server/src/command/daemon/binding/loopback-reach.test.ts
  • server/src/command/daemon/binding/loopback-reach.ts
  • server/src/command/daemon/binding/port-presence.test.ts
  • server/src/command/daemon/binding/port-presence.ts
  • server/src/command/daemon/crash-cause-wiring.test.ts
  • server/src/command/daemon/daemon-argv.ts
  • server/src/command/daemon/daemon-children-hide-console.test.ts
  • server/src/command/daemon/daemon-is-alive.test.ts
  • server/src/command/daemon/daemon-log-rotation.test.ts
  • server/src/command/daemon/daemon-log-runaway.test.ts
  • server/src/command/daemon/daemon-outlives-spawner.test.ts
  • server/src/command/daemon/daemon-reclaim.test.ts
  • server/src/command/daemon/daemon-resilience.test.ts
  • server/src/command/daemon/daemon-resilience.ts
  • server/src/command/daemon/daemon-resolve.test.ts
  • server/src/command/daemon/daemon-resolve.ts
  • server/src/command/daemon/daemon-spawn.test.ts
  • server/src/command/daemon/daemon-state-home.test.ts
  • server/src/command/daemon/daemon-win32-escape.test.ts
  • server/src/command/daemon/daemon.ts
  • server/src/command/daemon/dev-servers.test.ts
  • server/src/command/daemon/dev-servers.ts
  • server/src/command/daemon/exit-trace.test.ts
  • server/src/command/daemon/idle-shutdown.test.ts
  • server/src/command/daemon/idle-shutdown.ts
  • server/src/command/daemon/lifetime/daemon-exit.test.ts
  • server/src/command/daemon/lifetime/daemon-exit.ts
  • server/src/command/daemon/lifetime/daemon-usefulness.test.ts
  • server/src/command/daemon/lifetime/daemon-usefulness.ts
  • server/src/command/daemon/lifetime/death-cause.test.ts
  • server/src/command/daemon/lifetime/death-cause.ts
  • server/src/command/daemon/lifetime/heartbeat.test.ts
  • server/src/command/daemon/lifetime/heartbeat.ts
  • server/src/command/daemon/lifetime/idle-grace.test.ts
  • server/src/command/daemon/lifetime/idle-grace.ts
  • server/src/command/daemon/lifetime/log-cap.ts
  • server/src/command/daemon/lifetime/startup-failure.test.ts
  • server/src/command/daemon/lifetime/startup-failure.ts
  • server/src/command/daemon/lifetime/unclean-predecessor.test.ts
  • server/src/command/daemon/lifetime/unclean-predecessor.ts
  • server/src/command/daemon/port-state.ts
  • server/src/command/daemon/proxy-disconnect-storm.test.ts
  • server/src/command/daemon/state-dir.test.ts
  • server/src/command/daemon/state-dir.ts
  • server/src/command/daemon/wake-decision.test.ts
  • server/src/command/daemon/wake-decision.ts
  • server/src/command/daemon/win32-escape.test.ts
  • server/src/command/daemon/win32-escape.ts
  • server/src/command/dev/pending-release-check.test.ts
  • server/src/command/dev/vitest-worktree-exclude.test.ts
  • server/src/command/setup/agent-configs.test.ts
  • server/src/command/setup/agent-configs.ts
  • server/src/command/setup/agent-io.ts
  • server/src/command/setup/agent-next-steps.test.ts
  • server/src/command/setup/agent-next-steps.ts
  • server/src/command/setup/agent-notice-memory.test.ts
  • server/src/command/setup/agent-notice-memory.ts
  • server/src/command/setup/agent-writer.test.ts
  • server/src/command/setup/agent-writer.ts
  • server/src/command/setup/approval-migration.test.ts
  • server/src/command/setup/approval-migration.ts
  • server/src/command/setup/auto-approve.test.ts
  • server/src/command/setup/auto-approve.ts
  • server/src/command/setup/bounded-run.test.ts
  • server/src/command/setup/bringup/bridge-port.test.ts
  • server/src/command/setup/bringup/bridge-port.ts
  • server/src/command/setup/bringup/connect-lease.ts
  • server/src/command/setup/bringup/dev-server-files.test.ts
  • server/src/command/setup/bringup/dev-server-files.ts
  • server/src/command/setup/bringup/dev-server-log-cap.test.ts
  • server/src/command/setup/bringup/dev-server-log-cap.ts
  • server/src/command/setup/bringup/dev-server-wait.test.ts
  • server/src/command/setup/bringup/dev-server-wait.ts
  • server/src/command/setup/bringup/ensure-daemon.test.ts
  • server/src/command/setup/bringup/ensure-daemon.ts
  • server/src/command/setup/bringup/relaunch.test.ts
  • server/src/command/setup/bringup/relaunch.ts
  • server/src/command/setup/bringup/static-page-server.test.ts
  • server/src/command/setup/bringup/static-page-server.ts
  • server/src/command/setup/confirm-dev-server.test.ts
  • server/src/command/setup/desktop-shape.test.ts
  • server/src/command/setup/desktop-shape.ts
  • server/src/command/setup/finding-before-open.test.ts
  • server/src/command/setup/flags-named-exist.test.ts
  • server/src/command/setup/init/agent-restart.test.ts
  • server/src/command/setup/init/agent-restart.ts
  • server/src/command/setup/init/init-host.test.ts
  • server/src/command/setup/init/init-host.ts
  • server/src/command/setup/init/init-port.test.ts
  • server/src/command/setup/init/init-port.ts
  • server/src/command/setup/init/init-runtime.test.ts
  • server/src/command/setup/init/init-runtime.ts
  • server/src/command/setup/install-launcher.test.ts
  • server/src/command/setup/license-key.test.ts
  • server/src/command/setup/license-key.ts
  • server/src/command/setup/mcp-launcher.test.ts
  • server/src/command/setup/mcp-launcher.ts
  • server/src/command/setup/node-effects.test.ts
  • server/src/command/setup/node-effects.ts
  • server/src/command/setup/probe/dev-port.test.ts
  • server/src/command/setup/probe/dev-port.ts
  • server/src/command/setup/probe/existing-app.test.ts
  • server/src/command/setup/probe/existing-app.ts
  • server/src/command/setup/probe/loopback-probe-urls.test.ts
  • server/src/command/setup/probe/loopback-probe-urls.ts
  • server/src/command/setup/probe/page-probe.test.ts
  • server/src/command/setup/probe/page-probe.ts
  • server/src/command/setup/relaunch-reaches-files-only.test.ts
  • server/src/command/setup/remaining-steps.test.ts
  • server/src/command/setup/remaining-steps.ts
  • server/src/command/setup/run-setup.test.ts
  • server/src/command/setup/run-setup.ts
  • server/src/command/setup/session-pick.test.ts
  • server/src/command/setup/session-pick.ts
  • server/src/command/setup/setup-command.ts
  • server/src/command/setup/setup-install.ts
  • server/src/command/setup/setup-mcp.test.ts
  • server/src/command/setup/setup-mcp.ts
  • server/src/command/setup/setup-options.test.ts
  • server/src/command/setup/setup-options.ts
  • server/src/command/setup/start-dev-server.ts
  • server/src/command/setup/tauri-signing.test.ts
  • server/src/command/setup/tauri-signing.ts
  • server/src/command/setup/terminal/confirm.test.ts
  • server/src/command/setup/terminal/confirm.ts
  • server/src/command/setup/terminal/crash.test.ts
  • server/src/command/setup/terminal/crash.ts
  • server/src/command/setup/terminal/interrupt.test.ts
  • server/src/command/setup/terminal/interrupt.ts
  • server/src/command/setup/terminal/listeners.test.ts
  • server/src/command/setup/terminal/listeners.ts
  • server/src/command/setup/terminal/transcripts.ts
  • server/src/command/setup/terminal/wait-progress.test.ts
  • server/src/command/setup/terminal/wait-progress.ts
  • server/src/command/update/nudge-credit.test.ts
  • server/src/command/update/nudge-credit.ts
  • server/src/command/update/sdk-sync.test.ts
  • server/src/command/update/sdk-sync.ts
  • server/src/command/update/update-checker.test.ts
  • server/src/command/update/update-checker.ts
  • server/src/command/update/update-nudge-content.test.ts
  • server/src/command/update/update-nudge.arm.test.ts
  • server/src/command/update/update-nudge.ts
  • server/src/command/update/updater-rollback.test.ts
  • server/src/command/update/updater-spawn.test.ts
  • server/src/command/update/updater.test.ts
  • server/src/command/update/updater.ts
  • server/src/command/update/version-seen.test.ts
  • server/src/command/update/version-seen.ts
  • server/src/command/version/additive-contract-is-not-skew.test.ts
  • server/src/command/version/daemon-skew-per-connection.test.ts
  • server/src/command/version/identity/server-version.ts
  • server/src/command/version/peer-announce.test.ts
  • server/src/command/version/peer-announce.ts
  • server/src/command/version/release-artifacts.test.ts
  • server/src/command/version/retired-name-is-not-skew.test.ts
  • server/src/command/version/sdk-fix.test.ts
  • server/src/command/version/sdk-fix.ts
  • server/src/command/version/server-version-is-real.test.ts
  • server/src/command/version/skew-remedy.test.ts
  • server/src/command/version/subset-is-not-skew.test.ts
  • server/src/command/version/version-lockstep.test.ts
  • server/src/command/version/version-nudge.test.ts
  • server/src/command/version/version-nudge.ts
  • server/src/command/version/version-skew.delivery.test.ts
  • server/src/command/version/version-skew.test.ts
  • server/src/command/version/version-skew.ts
  • server/src/config-search-depth.test.ts
  • server/src/crashed-rule-integrity.test.ts
  • server/src/daemon-parity.test.ts
  • server/src/dev-tooling-settle.test.ts
  • server/src/directory-reach.test.ts
  • server/src/dispatch-attribution.test.ts
  • server/src/features/compare/action-plan.test.ts
  • server/src/features/compare/action-plan.ts
  • server/src/features/compare/behaviour-compare.test.ts
  • server/src/features/compare/behaviour-compare.ts
  • server/src/features/compare/behaviour-diff.test.ts
  • server/src/features/compare/behaviour-diff.ts
  • server/src/features/compare/behaviour-report.test.ts
  • server/src/features/compare/behaviour-report.ts
  • server/src/features/compare/build-readings.test.ts
  • server/src/features/compare/build-readings.ts
  • server/src/features/compare/compare-diff.test.ts
  • server/src/features/compare/compare-diff.ts
  • server/src/features/compare/compare-report.test.ts
  • server/src/features/compare/compare-report.ts
  • server/src/features/compare/compare-run.test.ts
  • server/src/features/compare/compare-run.ts
  • server/src/features/compare/outside/effect-lines.test.ts
  • server/src/features/compare/outside/effect-lines.ts
  • server/src/features/compare/outside/value-dictionary.test.ts
  • server/src/features/compare/outside/value-dictionary.ts
  • server/src/features/compare/visible-content.test.ts
  • server/src/features/compare/visible-content.ts
  • server/src/features/crawl/crawl-dangerous-reveal.test.ts
  • server/src/features/crawl/crawl-empty.test.ts
  • server/src/features/crawl/crawl-empty.ts
  • server/src/features/crawl/crawl-exhaustive.test.ts
  • server/src/features/crawl/crawl-exhaustive.ts
  • server/src/features/crawl/crawl-reconnect.test.ts
  • server/src/features/crawl/crawl-revealed.test.ts
  • server/src/features/crawl/crawl-tools.test.ts
  • server/src/features/crawl/crawl-tools.ts
  • server/src/features/crawl/crawl-unnamed.test.ts
  • server/src/features/crawl/crawl.test.ts
  • server/src/features/crawl/crawl.ts
  • server/src/features/crawl/inert-roles.test.ts
  • server/src/features/exhaust/app-coverage.test.ts
  • server/src/features/exhaust/app-coverage.ts
  • server/src/features/exhaust/code-coverage.test.ts
  • server/src/features/exhaust/code-coverage.ts
  • server/src/features/exhaust/edge-cases.ts
  • server/src/features/exhaust/edge-inputs.test.ts
  • server/src/features/exhaust/edge-interactions.test.ts
  • server/src/features/exhaust/edges/edge-drive.test.ts
  • server/src/features/exhaust/edges/edge-drive.ts
  • server/src/features/exhaust/edges/edge-run.ts
  • server/src/features/exhaust/explorer.test.ts
  • server/src/features/exhaust/explorer.ts
  • server/src/features/exhaust/failure-branches.ts
  • server/src/features/exhaust/holes.test.ts
  • server/src/features/exhaust/invariants.test.ts
  • server/src/features/exhaust/invariants.ts
  • server/src/features/exhaust/ledger.test.ts
  • server/src/features/exhaust/ledger.ts
  • server/src/features/exhaust/session-fold.test.ts
  • server/src/features/exhaust/session-fold.ts
  • server/src/features/exhaust/session-port.test.ts
  • server/src/features/exhaust/session-port.ts
  • server/src/features/harness/app-findings.test.ts
  • server/src/features/harness/app-findings.ts
  • server/src/features/harness/drive-report.test.ts
  • server/src/features/harness/drive-report.ts
  • server/src/features/harness/drive-runs-hud.test.ts
  • server/src/features/harness/drive-runs.test.ts
  • server/src/features/harness/drive-runs.ts
  • server/src/features/harness/drivers.ts
  • server/src/features/harness/explore/console-pages.ts
  • server/src/features/harness/explore/disparity.test.ts
  • server/src/features/harness/explore/disparity.ts
  • server/src/features/harness/explore/fake-app.ts
  • server/src/features/harness/explore/goal-search.test.ts
  • server/src/features/harness/explore/goal-search.ts
  • server/src/features/harness/explore/page-tree.ts
  • server/src/features/harness/explore/site-map.test.ts
  • server/src/features/harness/explore/site-map.ts
  • server/src/features/harness/fill-values.test.ts
  • server/src/features/harness/fill-values.ts
  • server/src/features/harness/goals.test.ts
  • server/src/features/harness/goals.ts
  • server/src/features/harness/harness-stops-at-end.test.ts
  • server/src/features/harness/harness.test.ts
  • server/src/features/harness/harness.ts
  • server/src/features/harness/platform-config.test.ts
  • server/src/features/harness/platform-config.ts
  • server/src/features/harness/platform/drive-target.test.ts
  • server/src/features/harness/platform/drive-target.ts
  • server/src/features/harness/platform/local-apps.test.ts
  • server/src/features/harness/platform/local-apps.ts
  • server/src/features/harness/platform/persona-credentials.test.ts
  • server/src/features/harness/platform/persona-credentials.ts
  • server/src/features/harness/platform/platform-drives.test.ts
  • server/src/features/harness/platform/platform-drives.ts
  • server/src/features/harness/platform/refusal.ts
  • server/src/features/harness/platform/remote-drive.test.ts
  • server/src/features/harness/platform/remote-drive.ts
  • server/src/features/harness/platform/script.test.ts
  • server/src/features/harness/platform/script.ts
  • server/src/features/harness/platform/server-driver.test.ts
  • server/src/features/harness/platform/server-driver.ts
  • server/src/features/harness/route-guess.ts
  • server/src/features/harness/script/app-controls.test.ts
  • server/src/features/harness/script/app-controls.ts
  • server/src/features/harness/script/lane-ids.test.ts
  • server/src/features/harness/script/lane-ids.ts
  • server/src/features/harness/script/script-run.early-look.test.ts
  • server/src/features/harness/script/script-run.replay-first.test.ts
  • server/src/features/harness/script/script-run.test.ts
  • server/src/features/harness/script/script-run.ts
  • server/src/features/harness/with-timeout.ts
  • server/src/features/harness/writing-rule.test.ts
  • server/src/features/license/license-env.test.ts
  • server/src/features/license/license-env.ts
  • server/src/features/license/license.test.ts
  • server/src/features/license/license.ts
  • server/src/features/visual/capture-cleanup.test.ts
  • server/src/features/visual/capture-cleanup.ts
  • server/src/features/visual/capture-path.test.ts
  • server/src/features/visual/desktop-capture.ts
  • server/src/features/visual/drive-frame.test.ts
  • server/src/features/visual/screenshot-names-its-session.test.ts
  • server/src/features/visual/step-shots.test.ts
  • server/src/features/visual/step-shots.ts
  • server/src/features/visual/visual-diff.test.ts
  • server/src/features/visual/visual-diff.ts
  • server/src/features/visual/visual-store.test.ts
  • server/src/features/visual/visual-store.ts
  • server/src/features/visual/visual-tools.test.ts
  • server/src/features/visual/visual-tools.ts
  • server/src/gate-coverage.test.ts
  • server/src/guards/ci/ci-gate-completeness.test.ts
  • server/src/guards/ci/ci-run-decision.test.ts
  • server/src/guards/ci/ci-sends-no-telemetry.test.ts
  • server/src/guards/ci/dco-failure-is-actionable.test.ts
  • server/src/guards/ci/guards-are-cache-invalidated.test.ts
  • server/src/guards/ci/heavy-browser-tests-declare-a-timeout.test.ts
  • server/src/guards/ci/job-timeout-fits-steps.test.ts
  • server/src/guards/ci/matrix-freshness.test.ts
  • server/src/guards/ci/post-merge-parity.test.ts
  • server/src/guards/docs/doc-paths-resolve.test.ts
  • server/src/guards/docs/docs-code-blocks.test.ts
  • server/src/guards/docs/docs-commands-run.test.ts
  • server/src/guards/docs/docs-version-drift.test.ts
  • server/src/guards/docs/every-published-package-is-documented.test.ts
  • server/src/guards/docs/guidance-commands-run.test.ts
  • server/src/guards/docs/layout-map-is-real.test.ts
  • server/src/guards/docs/skill-file-size.test.ts
  • server/src/guards/docs/skill-local-docs.test.ts
  • server/src/guards/docs/telemetry-events-are-documented.test.ts
  • server/src/guards/harness/bench-scenarios-live.test.ts
  • server/src/guards/harness/bench-scripts-resolve.test.ts
  • server/src/guards/harness/directory-reach-detects-a-pair.test.ts
  • server/src/guards/harness/directory-reach-every-package.test.ts
  • server/src/guards/harness/e2e-dist-exports.test.ts
  • server/src/guards/harness/e2e-retry-waits-for-ports.test.ts
  • server/src/guards/harness/false-green-oracle-independence.test.ts
  • server/src/guards/harness/false-green-rows.test.ts
  • server/src/guards/harness/fixture-api-reachability.test.ts
  • server/src/guards/harness/flat-directories-are-recorded.test.ts
  • server/src/guards/harness/harness-kills-only-listeners.test.ts
  • server/src/guards/harness/integration-coverage.test.ts
  • server/src/guards/harness/mock-specifiers-resolve.test.ts
  • server/src/guards/harness/orphan-scan-is-not-vacuous.test.ts
  • server/src/guards/harness/safe-to-group-answers-everywhere.test.ts
  • server/src/guards/harness/safe-to-group-predicts.test.ts
  • server/src/guards/harness/script-paths-exist.test.ts
  • server/src/guards/harness/source-read-by-path-exists.test.ts
  • server/src/guards/harness/the-hub-is-not-imported-back.test.ts
  • server/src/guards/release/changelog-freshness.test.ts
  • server/src/guards/release/changelog-structure.test.ts
  • server/src/guards/release/committed-assets-are-referenced.test.ts
  • server/src/guards/release/crate-version-lockstep.test.ts
  • server/src/guards/release/every-build-resolves-its-aliases.test.ts
  • server/src/guards/release/every-package-ships-its-licence.test.ts
  • server/src/guards/release/imports-are-declared.test.ts
  • server/src/guards/release/issuer-key-stamp.test.ts
  • server/src/guards/release/package-payload.test.ts
  • server/src/guards/release/prepack-keeps-stdout-clean.test.ts
  • server/src/guards/release/protocol-version-is-not-lockstepped.test.ts
  • server/src/guards/release/public-subpaths-are-pinned.test.ts
  • server/src/guards/release/published-schema-names-are-pinned.test.ts
  • server/src/guards/release/published-skill-artifacts.test.ts
  • server/src/guards/release/release-gates-are-listed.test.ts
  • server/src/guards/release/scoped-packages-publish-public.test.ts
  • server/src/hooks/client-directory.test.ts
  • server/src/hooks/client-directory.ts
  • server/src/hooks/coding-agents.test.ts
  • server/src/hooks/coding-agents.ts
  • server/src/hooks/driven-by-bind.test.ts
  • server/src/hooks/driven-by.test.ts
  • server/src/hooks/driven-by.ts
  • server/src/hooks/episode-stamp.ts
  • server/src/hooks/hook-bus.test.ts
  • server/src/hooks/hook-bus.ts
  • server/src/hooks/hook-commands.test.ts
  • server/src/hooks/hook-commands.ts
  • server/src/hooks/hook-emit.ts
  • server/src/hooks/hooks-reach-a-subscriber.test.ts
  • server/src/hooks/tool-log.test.ts
  • server/src/hooks/tool-log.ts
  • server/src/http-server.test.ts
  • server/src/import-graph.test.ts
  • server/src/import-graph.ts
  • server/src/inconclusive.test.ts
  • server/src/index.daemon.test.ts
  • server/src/index.drive.test.ts
  • server/src/index.exit-sync.test.ts
  • server/src/index.mcp-live-session.test.ts
  • server/src/index.replay-verdict.test.ts
  • server/src/index.ts
  • server/src/judgement/app-graph/journal-steps.test.ts
  • server/src/judgement/app-graph/journal-steps.ts
  • server/src/judgement/capsule/capsule-dedup.test.ts
  • server/src/judgement/capsule/capsule-store.test.ts
  • server/src/judgement/capsule/capsule-store.ts
  • server/src/judgement/capsule/capsule.test.ts
  • server/src/judgement/capsule/capsule.ts
  • server/src/judgement/capsule/causal-summary.test.ts
  • server/src/judgement/capsule/causal-summary.ts
  • server/src/judgement/capsule/divergence.test.ts
  • server/src/judgement/capsule/divergence.ts
  • server/src/judgement/capsule/field-summary.test.ts
  • server/src/judgement/capsule/truncated-window.test.ts
  • server/src/judgement/capsule/wire-capsule-does-not-repeat-summary.test.ts
  • server/src/judgement/domain/domain-model.test.ts
  • server/src/judgement/domain/domain-model.ts
  • server/src/judgement/domain/domain-tools.ts
  • server/src/judgement/domain/flow-risk.test.ts
  • server/src/judgement/domain/flow-risk.ts
  • server/src/judgement/oracles/flow-instrument-gaps.test.ts
  • server/src/judgement/oracles/flow-instrument-gaps.ts
  • server/src/judgement/oracles/gap-kind-is-core.test.ts
  • server/src/judgement/oracles/propose-consequences.test.ts
  • server/src/judgement/oracles/propose-consequences.ts
  • server/src/judgement/oracles/self-instrument.test.ts
  • server/src/judgement/oracles/self-instrument.ts
  • server/src/judgement/outcome/assertion-integrity.test.ts
  • server/src/judgement/outcome/assertion-integrity.ts
  • server/src/judgement/outcome/attributed-failure.test.ts
  • server/src/judgement/outcome/attributed-failure.ts
  • server/src/judgement/outcome/expect-round-trip.test.ts
  • server/src/judgement/outcome/role-drift-reason.test.ts
  • server/src/judgement/outcome/role-drift-reason.ts
  • server/src/judgement/outcome/verify-change-verdict.ts
  • server/src/judgement/runs/artifact-carries-the-differentiators.test.ts
  • server/src/judgement/runs/artifact/build-verification-run.test.ts
  • server/src/judgement/runs/artifact/build-verification-run.ts
  • server/src/judgement/runs/artifact/gap-report.test.ts
  • server/src/judgement/runs/artifact/gap-report.ts
  • server/src/judgement/runs/artifact/gap-summary.test.ts
  • server/src/judgement/runs/artifact/gap-summary.ts
  • server/src/judgement/runs/artifact/profile-redact.test.ts
  • server/src/judgement/runs/artifact/profile-redact.ts
  • server/src/judgement/runs/artifact/render-report.test.ts
  • server/src/judgement/runs/artifact/render-report.ts
  • server/src/judgement/runs/artifact/replay-mapping.test.ts
  • server/src/judgement/runs/artifact/replay-mapping.ts
  • server/src/judgement/runs/artifact/run-context.test.ts
  • server/src/judgement/runs/artifact/run-context.ts
  • server/src/judgement/runs/artifact/run-diff.test.ts
  • server/src/judgement/runs/artifact/run-diff.ts
  • server/src/judgement/runs/artifact/run-episode-stamp.test.ts
  • server/src/judgement/runs/artifact/run-store-screenshots.test.ts
  • server/src/judgement/runs/artifact/run-store.test.ts
  • server/src/judgement/runs/artifact/run-store.ts
  • server/src/judgement/runs/artifact/to-artifact.test.ts
  • server/src/judgement/runs/artifact/to-artifact.ts
  • server/src/judgement/runs/context-tools.test.ts
  • server/src/judgement/runs/context-tools.ts
  • server/src/judgement/runs/default-run-id.test.ts
  • server/src/judgement/runs/default-run-id.ts
  • server/src/judgement/runs/differentiators-survive-the-journey.test.ts
  • server/src/judgement/runs/drive-run.test.ts
  • server/src/judgement/runs/drive-run.ts
  • server/src/judgement/runs/false-green.test.ts
  • server/src/judgement/runs/generated-app-bugs.test.ts
  • server/src/judgement/runs/late-answer.test.ts
  • server/src/judgement/runs/late-answer.ts
  • server/src/judgement/runs/repair-prompt.test.ts
  • server/src/judgement/runs/repair-prompt.ts
  • server/src/judgement/runs/resume.test.ts
  • server/src/judgement/runs/resume.ts
  • server/src/judgement/runs/reticle-runner.test.ts
  • server/src/judgement/runs/reticle-runner.ts
  • server/src/judgement/runs/risk-classify.test.ts
  • server/src/judgement/runs/risk-classify.ts
  • server/src/judgement/runs/run-ledger.test.ts
  • server/src/judgement/runs/run-ledger.ts
  • server/src/judgement/runs/run-tools.test.ts
  • server/src/judgement/runs/run-tools.ts
  • server/src/judgement/runs/runner-port.ts
  • server/src/judgement/runs/verification-sync.test.ts
  • server/src/judgement/runs/verification-sync.ts
  • server/src/judgement/runs/verify-daemon.test.ts
  • server/src/judgement/runs/verify-flow-start-state.test.ts
  • server/src/judgement/runs/verify-http.test.ts
  • server/src/judgement/runs/verify-http.ts
  • server/src/judgement/runs/verify-server.test.ts
  • server/src/judgement/runs/verify-server.ts
  • server/src/language/flows/act-sequence-replay.test.ts
  • server/src/language/flows/affected-flows-one-folder.test.ts
  • server/src/language/flows/affected-session-project.test.ts
  • server/src/language/flows/affected-tools.ts
  • server/src/language/flows/ambient-recording-is-automatic.test.ts
  • server/src/language/flows/ambient-tape-crosses-page-load.test.ts
  • server/src/language/flows/anchor-settle.test.ts
  • server/src/language/flows/annotate-console-default.test.ts
  • server/src/language/flows/annotate-notes/annotate-net-settle.test.ts
  • server/src/language/flows/annotate-notes/annotate-target.test.ts
  • server/src/language/flows/annotate-notes/annotate-target.ts
  • server/src/language/flows/annotate-notes/annotate.ts
  • server/src/language/flows/annotate-text-success.test.ts
  • server/src/language/flows/annotate-tools.test.ts
  • server/src/language/flows/annotate-tools.ts
  • server/src/language/flows/annotate.assert-net.test.ts
  • server/src/language/flows/annotate.compile.test.ts
  • server/src/language/flows/annotate.schema.test.ts
  • server/src/language/flows/change/affected.test.ts
  • server/src/language/flows/change/affected.ts
  • server/src/language/flows/change/flow-sources-from-step.test.ts
  • server/src/language/flows/change/flow-sources.test.ts
  • server/src/language/flows/change/flow-sources.ts
  • server/src/language/flows/change/gate.test.ts
  • server/src/language/flows/change/gate.ts
  • server/src/language/flows/change/git-changed.test.ts
  • server/src/language/flows/change/git-changed.ts
  • server/src/language/flows/classify-invoke.test.ts
  • server/src/language/flows/component-anchor-position.test.ts
  • server/src/language/flows/component-anchor-role.test.ts
  • server/src/language/flows/component-anchor-text.test.ts
  • server/src/language/flows/decision-contradictions.test.ts
  • server/src/language/flows/decision-expect-drift.test.ts
  • server/src/language/flows/decision-precondition.test.ts
  • server/src/language/flows/decision-unreached.test.ts
  • server/src/language/flows/decision.test.ts
  • server/src/language/flows/decision.ts
  • server/src/language/flows/destructive-replay-hint.test.ts
  • server/src/language/flows/document-key-press.test.ts
  • server/src/language/flows/empty-flow.test.ts
  • server/src/language/flows/empty-flow.ts
  • server/src/language/flows/empty-suite.test.ts
  • server/src/language/flows/every-replay-learns.test.ts
  • server/src/language/flows/fields/flow-secret-call.test.ts
  • server/src/language/flows/fields/flow-secret-field.ts
  • server/src/language/flows/fields/flow-upload-resolve.test.ts
  • server/src/language/flows/fields/flow-upload-resolve.ts
  • server/src/language/flows/fields/unsupplied-secret.test.ts
  • server/src/language/flows/flow-anchor.ts
  • server/src/language/flows/flow-author.ts
  • server/src/language/flows/flow-classify.test.ts
  • server/src/language/flows/flow-classify.ts
  • server/src/language/flows/flow-cross-step.test.ts
  • server/src/language/flows/flow-cross-step.ts
  • server/src/language/flows/flow-expect-grammar.test.ts
  • server/src/language/flows/flow-expect-grammar.ts
  • server/src/language/flows/flow-intent-gap.test.ts
  • server/src/language/flows/flow-intent.test.ts
  • server/src/language/flows/flow-intent.ts
  • server/src/language/flows/flow-journey.ts
  • server/src/language/flows/flow-learning.ts
  • server/src/language/flows/flow-lease.ts
  • server/src/language/flows/flow-memory-consult.test.ts
  • server/src/language/flows/flow-memory-consult.ts
  • server/src/language/flows/flow-mutate-tools.test.ts
  • server/src/language/flows/flow-mutate-tools.ts
  • server/src/language/flows/flow-repeated-secrets.test.ts
  • server/src/language/flows/flow-replay-run.ts
  • server/src/language/flows/flow-replay-types.ts
  • server/src/language/flows/flow-replay-upload-root.test.ts
  • server/src/language/flows/flow-replay-waits-for-session.test.ts
  • server/src/language/flows/flow-replay.also-roles.test.ts
  • server/src/language/flows/flow-replay.before-reading.test.ts
  • server/src/language/flows/flow-replay.console-absent.test.ts
  • server/src/language/flows/flow-replay.document-lost.test.ts
  • server/src/language/flows/flow-replay.dynamic.test.ts
  • server/src/language/flows/flow-replay.expect-element.test.ts
  • server/src/language/flows/flow-replay.navigate.test.ts
  • server/src/language/flows/flow-replay.net-in-flight.test.ts
  • server/src/language/flows/flow-replay.request.test.ts
  • server/src/language/flows/flow-replay.step-pacing.test.ts
  • server/src/language/flows/flow-replay.step-timeout.test.ts
  • server/src/language/flows/flow-replay.test.ts
  • server/src/language/flows/flow-replay.ts
  • server/src/language/flows/flow-replay.unreachable.test.ts
  • server/src/language/flows/flow-replay.unreached-step.test.ts
  • server/src/language/flows/flow-replayable.test.ts
  • server/src/language/flows/flow-replayable.ts
  • server/src/language/flows/flow-result.ts
  • server/src/language/flows/flow-save-nudges-sync.test.ts
  • server/src/language/flows/flow-save-recording.test.ts
  • server/src/language/flows/flow-save-root.test.ts
  • server/src/language/flows/flow-scope.test.ts
  • server/src/language/flows/flow-scope.ts
  • server/src/language/flows/flow-secret-redaction.test.ts
  • server/src/language/flows/flow-secret-supply.test.ts
  • server/src/language/flows/flow-start-path.same-document.test.ts
  • server/src/language/flows/flow-start-path.ts
  • server/src/language/flows/flow-startpath-hint.test.ts
  • server/src/language/flows/flow-startpath-navigate.test.ts
  • server/src/language/flows/flow-step-runners.ts
  • server/src/language/flows/flow-store-for-session.test.ts
  • server/src/language/flows/flow-store-for-session.ts
  • server/src/language/flows/flow-success.test.ts
  • server/src/language/flows/flow-success.ts
  • server/src/language/flows/flow-tools.ts
  • server/src/language/flows/flow-verify-parallel.run.test.ts
  • server/src/language/flows/flow-verify.bounded.test.ts
  • server/src/language/flows/flow-verify.flaky.test.ts
  • server/src/language/flows/flow-verify.test.ts
  • server/src/language/flows/flow-wrong-version.test.ts
  • server/src/language/flows/flows.heal.test.ts
  • server/src/language/flows/flows.journey.test.ts
  • server/src/language/flows/flows.recorded.test.ts
  • server/src/language/flows/flows.scope.test.ts
  • server/src/language/flows/flows.test.ts
  • server/src/language/flows/flows.ts
  • server/src/language/flows/flows.worktree.test.ts
  • server/src/language/flows/git-since-honesty.test.ts
  • server/src/language/flows/heal-not-a-rebind.test.ts
  • server/src/language/flows/heal-precondition.test.ts
  • server/src/language/flows/heal-precondition.ts
  • server/src/language/flows/heal-proposal.test.ts
  • server/src/language/flows/heal-provenance.test.ts
  • server/src/language/flows/heal-run.ts
  • server/src/language/flows/heal.ts
  • server/src/language/flows/hud-steps-not-recorded.test.ts
  • server/src/language/flows/learned-sources.test.ts
  • server/src/language/flows/learned-sources.ts
  • server/src/language/flows/learning-reaches-the-flow.test.ts
  • server/src/language/flows/mutation-run.test.ts
  • server/src/language/flows/mutation-run.ts
  • server/src/language/flows/narrow-write.ts
  • server/src/language/flows/non-english-secret-fill.test.ts
  • server/src/language/flows/recorded-assertion-fidelity.test.ts
  • server/src/language/flows/recording/flake.test.ts
  • server/src/language/flows/recording/flake.ts
  • server/src/language/flows/recording/recording-backtrack.test.ts
  • server/src/language/flows/recording/recording-backtrack.ts
  • server/src/language/flows/recording/replay-halt.ts
  • server/src/language/flows/recording/tape/always-recording.test.ts
  • server/src/language/flows/recording/tape/nested-recording.test.ts
  • server/src/language/flows/recording/tape/recordings.test.ts
  • server/src/language/flows/recording/tape/recordings.ts
  • server/src/language/flows/regression-reaches-the-caller.test.ts
  • server/src/language/flows/replay-ambiguous-anchor.test.ts
  • server/src/language/flows/replay-ambiguous-component-anchor.test.ts
  • server/src/language/flows/replay-ambiguous-role-anchor.test.ts
  • server/src/language/flows/replay-contradictions.test.ts
  • server/src/language/flows/replay-from-hud.ts
  • server/src/language/flows/replay-from.test.ts
  • server/src/language/flows/replay-halt-is-reported.test.ts
  • server/src/language/flows/replay-invoke.test.ts
  • server/src/language/flows/replay-nameless-role-anchor.test.ts
  • server/src/language/flows/replay-stale-ref.test.ts
  • server/src/language/flows/replay-stale-target.test.ts
  • server/src/language/flows/replay-verdict-effect.test.ts
  • server/src/language/flows/replay-window.test.ts
  • server/src/language/flows/replay.ts
  • server/src/language/flows/role-anchor-nearest.test.ts
  • server/src/language/flows/role-anchor-nearest.ts
  • server/src/language/flows/role-anchor-position.test.ts
  • server/src/language/flows/role-anchor-within.test.ts
  • server/src/language/flows/route-expect-roundtrip.test.ts
  • server/src/language/flows/save-invoke.test.ts
  • server/src/language/flows/sequence-ambiguous-anchor.test.ts
  • server/src/language/flows/sequence-burst-gap.test.ts
  • server/src/language/flows/sequence-expect-enforced.test.ts
  • server/src/language/flows/sequence-expect.test.ts
  • server/src/language/flows/sequence-late-anchor.test.ts
  • server/src/language/flows/sequence-stale-ref.test.ts
  • server/src/language/flows/sequence-sub-step-anchor.test.ts
  • server/src/language/flows/sequence-substep-own-window.test.ts
  • server/src/language/flows/sequence-substep-window.test.ts
  • server/src/language/flows/sequence-unreachable-target.test.ts
  • server/src/language/flows/single-replay.ts
  • server/src/language/flows/step-consequence.test.ts
  • server/src/language/flows/steps/page-steps.test.ts
  • server/src/language/flows/steps/page-steps.ts
  • server/src/language/flows/stores/annotation-store.ts
  • server/src/language/flows/stores/assertion-tiers-store.test.ts
  • server/src/language/flows/stores/assertion-tiers-store.ts
  • server/src/language/flows/stores/flake-store.test.ts
  • server/src/language/flows/stores/flake-store.ts
  • server/src/language/flows/suite-coverage.test.ts
  • server/src/language/flows/suite-isolation.test.ts
  • server/src/language/flows/suite-selection.ts
  • server/src/language/flows/suite-unknown-name.test.ts
  • server/src/language/flows/suite/coverage.test.ts
  • server/src/language/flows/suite/coverage.ts
  • server/src/language/flows/suite/parallel-suite.test.ts
  • server/src/language/flows/suite/parallel-suite.ts
  • server/src/language/flows/suite/sequential-run.test.ts
  • server/src/language/flows/suite/sequential-run.ts
  • server/src/language/flows/suite/server-verify.test.ts
  • server/src/language/flows/suite/server-verify.ts
  • server/src/language/flows/suite/suite-flakes.test.ts
  • server/src/language/flows/suite/suite-flakes.ts
  • server/src/language/flows/sweep-continues-past-consequence.test.ts
  • server/src/language/flows/testid-position.test.ts
  • server/src/language/flows/tools.flow-replay.test.ts
  • server/src/language/flows/tools.flows.test.ts
  • server/src/language/flows/verdicted-capture.test.ts
  • server/src/language/flows/verify-change-project-scope.test.ts
  • server/src/language/flows/verify-change-tools.test.ts
  • server/src/language/flows/verify-change-tools.ts
  • server/src/language/flows/verify-change-unverifiable.test.ts
  • server/src/launch-chromium.test.ts
  • server/src/launch-chromium.ts
  • server/src/library-path-boundary.test.ts
  • server/src/log.test.ts
  • server/src/log.ts
  • server/src/loopback-agent.test.ts
  • server/src/loose-scripts.test.ts
  • server/src/machine/clock.ts
  • server/src/machine/git-tracks.ts
  • server/src/machine/platform.ts
  • server/src/machine/repo-root.ts
  • server/src/machine/temp-dir.ts
  • server/src/mcp-http-transport.test.ts
  • server/src/memory/cloud/account-state.test.ts
  • server/src/memory/cloud/account-state.ts
  • server/src/memory/cloud/background-sync.test.ts
  • server/src/memory/cloud/background-sync.ts
  • server/src/memory/cloud/cloud-config.test.ts
  • server/src/memory/cloud/cloud-config.ts
  • server/src/memory/cloud/cloud-sync.test.ts
  • server/src/memory/cloud/cloud-sync.ts
  • server/src/memory/cloud/harness-config.test.ts
  • server/src/memory/cloud/harness-config.ts
  • server/src/memory/cloud/harness-switch.test.ts
  • server/src/memory/cloud/harness-switch.ts
  • server/src/memory/cloud/hud-notices-source.test.ts
  • server/src/memory/cloud/hud-notices-source.ts
  • server/src/memory/cloud/memory-read-headers.test.ts
  • server/src/memory/cloud/memory-scope.test.ts
  • server/src/memory/cloud/memory-scope.ts
  • server/src/memory/cloud/progress-reporter.test.ts
  • server/src/memory/cloud/run-closing-claim.test.ts
  • server/src/memory/cloud/sync-answer.ts
  • server/src/memory/cloud/sync-cycle.test.ts
  • server/src/memory/cloud/sync-cycle.ts
  • server/src/memory/cloud/sync-daemon.test.ts
  • server/src/memory/cloud/sync-daemon.ts
  • server/src/memory/cloud/sync-describe.ts
  • server/src/memory/cloud/sync-disk.test.ts
  • server/src/memory/cloud/sync-disk.ts
  • server/src/memory/cloud/sync-flow-conflict.test.ts
  • server/src/memory/cloud/sync-flow-versions.ts
  • server/src/memory/cloud/sync-hash.test.ts
  • server/src/memory/cloud/sync-hash.ts
  • server/src/memory/cloud/sync-hostile-server.test.ts
  • server/src/memory/cloud/sync-intent-shards.test.ts
  • server/src/memory/cloud/sync-memory-poll.test.ts
  • server/src/memory/cloud/sync-request.test.ts
  • server/src/memory/cloud/sync-screenshots.test.ts
  • server/src/memory/cloud/sync-screenshots.ts
  • server/src/memory/cloud/unsynced-roots.test.ts
  • server/src/memory/cloud/unsynced-roots.ts
  • server/src/memory/impact/account-watch.test.ts
  • server/src/memory/impact/account-watch.ts
  • server/src/memory/impact/hud-refresh.test.ts
  • server/src/memory/impact/impact-defect.test.ts
  • server/src/memory/impact/impact-global-merge.test.ts
  • server/src/memory/impact/impact-recorder.test.ts
  • server/src/memory/impact/impact-recorder.ts
  • server/src/memory/impact/impact-store.test.ts
  • server/src/memory/impact/impact-store.ts
  • server/src/memory/intent/inline-intent.test.ts
  • server/src/memory/intent/inline-intent.ts
  • server/src/memory/intent/inline-surface.test.ts
  • server/src/memory/intent/intent-actions-name-their-arguments.test.ts
  • server/src/memory/intent/intent-debt.test.ts
  • server/src/memory/intent/intent-labels-refused.test.ts
  • server/src/memory/intent/intent-ledger-is-one.test.ts
  • server/src/memory/intent/intent-request.test.ts
  • server/src/memory/intent/intent-shard-store.test.ts
  • server/src/memory/intent/intent-shard-store.ts
  • server/src/memory/intent/intent-shard.test.ts
  • server/src/memory/intent/intent-shard.ts
  • server/src/memory/intent/intent-store.test.ts
  • server/src/memory/intent/intent-store.ts
  • server/src/memory/intent/intent-subject.test.ts
  • server/src/memory/intent/intent-subject.ts
  • server/src/memory/intent/intent-tools.ts
  • server/src/memory/intent/intent-wrong-project-write.test.ts
  • server/src/memory/intent/open-intents.ts
  • server/src/memory/intent/record-request.ts
  • server/src/memory/intent/settled-words.test.ts
  • server/src/memory/intent/settled-words.ts
  • server/src/memory/journal/ambient-store.test.ts
  • server/src/memory/journal/ambient-store.ts
  • server/src/memory/journal/attach-journal.test.ts
  • server/src/memory/journal/attach-journal.ts
  • server/src/memory/journal/bridge-journal.integration.test.ts
  • server/src/memory/journal/deviation-report.test.ts
  • server/src/memory/journal/deviation-report.ts
  • server/src/memory/journal/deviation-service.test.ts
  • server/src/memory/journal/deviation-service.ts
  • server/src/memory/journal/drive-flow.test.ts
  • server/src/memory/journal/drive-flow.ts
  • server/src/memory/journal/drive-run-flush.test.ts
  • server/src/memory/journal/drive-run-flush.ts
  • server/src/memory/journal/envelope-store.test.ts
  • server/src/memory/journal/envelope-store.ts
  • server/src/memory/journal/envelope.test.ts
  • server/src/memory/journal/envelope.ts
  • server/src/memory/journal/episode-log.test.ts
  • server/src/memory/journal/episode-log.ts
  • server/src/memory/journal/journal-query.test.ts
  • server/src/memory/journal/journal-query.ts
  • server/src/memory/journal/journal-recorder.test.ts
  • server/src/memory/journal/journal-recorder.ts
  • server/src/memory/journal/on-disk/ambient-file.ts
  • server/src/memory/journal/on-disk/retain-policy.test.ts
  • server/src/memory/journal/on-disk/retain-policy.ts
  • server/src/memory/journal/on-disk/retention.test.ts
  • server/src/memory/journal/on-disk/retention.ts
  • server/src/memory/journal/on-disk/startup-maintenance.test.ts
  • server/src/memory/journal/on-disk/startup-maintenance.ts
  • server/src/memory/journal/on-disk/workspace-gitignore.test.ts
  • server/src/memory/journal/on-disk/workspace-gitignore.ts
  • server/src/memory/journal/on-disk/workspace-tiers.test.ts
  • server/src/memory/journal/on-disk/workspace-tiers.ts
  • server/src/memory/journal/rollups.test.ts
  • server/src/memory/journal/rollups.ts
  • server/src/memory/journal/route-template.test.ts
  • server/src/memory/journal/route-template.ts
  • server/src/memory/journal/self-observation.test.ts
  • server/src/memory/journal/self-observation.ts
  • server/src/memory/journal/session-attribution.test.ts
  • server/src/memory/journal/session-end-live.test.ts
  • server/src/memory/journal/session-end-logs.test.ts
  • server/src/memory/journal/session-end.test.ts
  • server/src/memory/journal/session-end.ts
  • server/src/memory/journal/session-journal-cap.test.ts
  • server/src/memory/journal/session-journal-loss.test.ts
  • server/src/memory/journal/session-journal.lossy-conformance.test.ts
  • server/src/memory/journal/session-journal.test.ts
  • server/src/memory/journal/session-journal.ts
  • server/src/memory/journal/session-query.test.ts
  • server/src/memory/project/artifact-root-resolver.test.ts
  • server/src/memory/project/artifact-root-resolver.ts
  • server/src/memory/project/artifact-root.test.ts
  • server/src/memory/project/artifact-root.ts
  • server/src/memory/project/artifact-roots-complete.test.ts
  • server/src/memory/project/baselines.test.ts
  • server/src/memory/project/baselines.ts
  • server/src/memory/project/contract-governance.test.ts
  • server/src/memory/project/dir/empty-baselines.test.ts
  • server/src/memory/project/dir/id-guards-are-not-flow-names.test.ts
  • server/src/memory/project/dir/reticle-dir.test.ts
  • server/src/memory/project/dir/reticle-dir.ts
  • server/src/memory/project/file-lock.test.ts
  • server/src/memory/project/file-lock.ts
  • server/src/memory/project/fs/fs-port-read-bounds.test.ts
  • server/src/memory/project/fs/fs-port.test.ts
  • server/src/memory/project/fs/fs-port.ts
  • server/src/memory/project/fs/write-atomic.test.ts
  • server/src/memory/project/fs/write-atomic.ts
  • server/src/memory/project/learned-routes.test.ts
  • server/src/memory/project/learned-routes.ts
  • server/src/memory/project/link-directory.test.ts
  • server/src/memory/project/link-directory.ts
  • server/src/memory/project/machine-unsynced.test.ts
  • server/src/memory/project/memory-fs.ts
  • server/src/memory/project/project-directory-for.test.ts
  • server/src/memory/project/project-for-root.ts
  • server/src/memory/project/project-store.test.ts
  • server/src/memory/project/project-store.ts
  • server/src/memory/project/project-tools.test.ts
  • server/src/memory/project/project-tools.ts
  • server/src/memory/project/project-version-refusal.test.ts
  • server/src/memory/project/reticle-deps.ts
  • server/src/memory/project/root-claims.test.ts
  • server/src/memory/project/root-claims.ts
  • server/src/memory/project/session-root.test.ts
  • server/src/memory/project/session-root.ts
  • server/src/memory/project/sync-status.test.ts
  • server/src/memory/project/sync-status.ts
  • server/src/memory/recall/looks-like-dev-server.test.ts
  • server/src/memory/recall/looks-like-dev-server.ts
  • server/src/memory/recall/memory-not-linked.test.ts
  • server/src/memory/recall/memory-tools.ts
  • server/src/memory/recall/platform-memory.ts
  • server/src/memory/recall/platform-round-trip.test.ts
  • server/src/memory/recall/prior/connection-memory.test.ts
  • server/src/memory/recall/prior/connection-memory.ts
  • server/src/memory/recall/project-memory.test.ts
  • server/src/memory/recall/project-memory.ts
  • server/src/memory/recall/registered-projects.test.ts
  • server/src/memory/recall/registered-projects.ts
  • server/src/multi-project.test.ts
  • server/src/on-disk-versions.test.ts
  • server/src/orphan-modules.test.ts
  • server/src/portal/bridge/auth-failure-reason.test.ts
  • server/src/portal/bridge/auth-failure-reason.ts
  • server/src/portal/bridge/bridge-security.ts
  • server/src/portal/bridge/bridge.act-and-wait-repeatable.test.ts
  • server/src/portal/bridge/bridge.act-and-wait.test.ts
  • server/src/portal/bridge/bridge.follow-navigation.test.ts
  • server/src/portal/bridge/bridge.gap-source.test.ts
  • server/src/portal/bridge/bridge.hello-clears-gaps.test.ts
  • server/src/portal/bridge/bridge.invalid-frame.test.ts
  • server/src/portal/bridge/bridge.nonce.test.ts
  • server/src/portal/bridge/bridge.rate-window.test.ts
  • server/src/portal/bridge/bridge.record-replay.test.ts
  • server/src/portal/bridge/bridge.replay.test.ts
  • server/src/portal/bridge/bridge.security.test.ts
  • server/src/portal/bridge/bridge.skew-fix-project.test.ts
  • server/src/portal/bridge/bridge.test-harness.ts
  • server/src/portal/bridge/bridge.test.ts
  • server/src/portal/bridge/bridge.ts
  • server/src/portal/bridge/harness-request.ts
  • server/src/portal/bridge/hello-refused.test.ts
  • server/src/portal/bridge/origin/origin-follow.ts
  • server/src/portal/bridge/pairing-token.test.ts
  • server/src/portal/bridge/pairing-token.ts
  • server/src/portal/bridge/protocol-skew.test.ts
  • server/src/portal/bridge/protocol-skew.ts
  • server/src/portal/bridge/refused-dial.test.ts
  • server/src/portal/bridge/session-nonces.test.ts
  • server/src/portal/bridge/session-nonces.ts
  • server/src/portal/bridge/token-auth.test.ts
  • server/src/portal/bridge/token-auth.ts
  • server/src/portal/bridge/token-source.test.ts
  • server/src/portal/bridge/wrong-path.test.ts
  • server/src/portal/bridge/wrong-path.ts
  • server/src/portal/input/download-capture.test.ts
  • server/src/portal/input/download-capture.ts
  • server/src/portal/input/drive-error.ts
  • server/src/portal/input/drive-url-stamp.test.ts
  • server/src/portal/input/drive-url-stamp.ts
  • server/src/portal/input/driven-redaction.test.ts
  • server/src/portal/input/driven-redaction.ts
  • server/src/portal/input/js-coverage.test.ts
  • server/src/portal/input/js-coverage.ts
  • server/src/portal/input/launched-chromium.test.ts
  • server/src/portal/input/launched-early-capture.test.ts
  • server/src/portal/input/launched-real-input.test.ts
  • server/src/portal/input/launched-storage.test.ts
  • server/src/portal/input/network-detail.lossy-conformance.test.ts
  • server/src/portal/input/network-detail.test.ts
  • server/src/portal/input/network-detail.ts
  • server/src/portal/input/network-detail.url.test.ts
  • server/src/portal/input/network-mock-malformed.test.ts
  • server/src/portal/input/network-mock-tools.test.ts
  • server/src/portal/input/network-mock-tools.ts
  • server/src/portal/input/network-mock.test.ts
  • server/src/portal/input/network-mock.ts
  • server/src/portal/input/network-mutation.test.ts
  • server/src/portal/input/network-mutation.ts
  • server/src/portal/input/page-capture.ts
  • server/src/portal/input/real-input-click.test.ts
  • server/src/portal/input/real-input-press.test.ts
  • server/src/portal/input/real-input-press.ts
  • server/src/portal/input/real-input.test.ts
  • server/src/portal/input/real-input.ts
  • server/src/portal/input/scroll-find.test.ts
  • server/src/portal/input/scroll-find.ts
  • server/src/portal/input/scroll-tools.ts
  • server/src/portal/input/storage-fixture.test.ts
  • server/src/portal/input/storage-fixture.ts
  • server/src/portal/input/tools.real-input.test.ts
  • server/src/portal/input/viewport-tools.test.ts
  • server/src/portal/input/viewport-tools.ts
  • server/src/portal/pool/bounded-close.ts
  • server/src/portal/pool/browser-pool.test.ts
  • server/src/portal/pool/browser-pool.ts
  • server/src/portal/pool/context-permissions.ts
  • server/src/portal/pool/csp-widen.test.ts
  • server/src/portal/pool/csp-widen.ts
  • server/src/portal/pool/lease-alias-capabilities.test.ts
  • server/src/portal/pool/lease-close-bound.test.ts
  • server/src/portal/pool/lease-emulation.ts
  • server/src/portal/pool/lease-https-errors.test.ts
  • server/src/portal/pool/lease-marker-stamp.test.ts
  • server/src/portal/pool/lease-marker-stamp.ts
  • server/src/portal/pool/lease-off-loopback-reader.test.ts
  • server/src/portal/pool/lease-page-error.early-capture.test.ts
  • server/src/portal/pool/lease-page-error.test.ts
  • server/src/portal/pool/lease-page-error.ts
  • server/src/portal/pool/lease-page-reads.test.ts
  • server/src/portal/pool/lease-permissions.test.ts
  • server/src/portal/pool/lease-reaper.test.ts
  • server/src/portal/pool/lease-reaper.ts
  • server/src/portal/pool/lease-screenshot-hides-chrome.test.ts
  • server/src/portal/pool/lease-viewport.test.ts
  • server/src/portal/pool/loopback-csp-probe.test.ts
  • server/src/portal/pool/max-contexts.test.ts
  • server/src/portal/pool/nav-options.test.ts
  • server/src/portal/pool/page-error-journal.test.ts
  • server/src/portal/pool/page-error-journal.ts
  • server/src/portal/pool/playwright-launcher.https-errors.test.ts
  • server/src/portal/pool/playwright-launcher.test.ts
  • server/src/portal/pool/playwright-launcher.ts
  • server/src/portal/pool/playwright-launcher.viewport.test.ts
  • server/src/portal/pool/pool-contract.ts
  • server/src/portal/pool/pool-hover.test.ts
  • server/src/portal/pool/pool-lease.ts
  • server/src/portal/pool/pool-mocks.test.ts
  • server/src/portal/pool/pool-screenshot.test.ts
  • server/src/portal/pool/storage-seed.test.ts
  • server/src/portal/pool/storage-seed.ts
  • server/src/portal/pool/zero-install.test.ts
  • server/src/portal/pool/zero-install.ts
  • server/src/portal/production/production-activation.test.ts
  • server/src/portal/production/production-activation.ts
  • server/src/portal/production/production-drive.test.ts
  • server/src/portal/production/production-drive.ts
  • server/src/portal/production/production-hello.test.ts
  • server/src/portal/production/production-hello.ts
  • server/src/portal/realm/conformance-client.test.ts
  • server/src/portal/realm/conformance-client.ts
  • server/src/portal/realm/every-event-is-placed.test.ts
  • server/src/portal/realm/http-witness.test.ts
  • server/src/portal/realm/http-witness.ts
  • server/src/portal/realm/protocol-reaches-production.test.ts
  • server/src/portal/realm/spi-is-exercised.test.ts
  • server/src/portal/realm/web-realm-fixture.test.ts
  • server/src/portal/realm/web-realm.test.ts
  • server/src/portal/realm/web-realm.ts
  • server/src/portal/realm/witness-reaches-production.test.ts
  • server/src/portal/session/action-attribution-ambient.test.ts
  • server/src/portal/session/agent-link.test.ts
  • server/src/portal/session/agent-link.ts
  • server/src/portal/session/command-payload.test.ts
  • server/src/portal/session/command-payload.ts
  • server/src/portal/session/control-envelope.test.ts
  • server/src/portal/session/control-envelope.ts
  • server/src/portal/session/current-document.test.ts
  • server/src/portal/session/daemon-answers.ts
  • server/src/portal/session/desktop-windows.test.ts
  • server/src/portal/session/dev-server/dev-command.test.ts
  • server/src/portal/session/dev-server/dev-command.ts
  • server/src/portal/session/dev-server/dev-server-probe.test.ts
  • server/src/portal/session/dev-server/dev-server-probe.ts
  • server/src/portal/session/dev-server/project-ports.test.ts
  • server/src/portal/session/dev-server/project-ports.ts
  • server/src/portal/session/dev-server/route-status-probe.test.ts
  • server/src/portal/session/dev-server/route-status-probe.ts
  • server/src/portal/session/dev-server/served-document.test.ts
  • server/src/portal/session/dev-server/served-document.ts
  • server/src/portal/session/end-session-named-id.test.ts
  • server/src/portal/session/end-session-releases-lease.test.ts
  • server/src/portal/session/engine-blind-spots.test.ts
  • server/src/portal/session/engine-host-is-supplied.test.ts
  • server/src/portal/session/facts/background-traffic.test.ts
  • server/src/portal/session/facts/background-traffic.ts
  • server/src/portal/session/facts/departure-note.test.ts
  • server/src/portal/session/facts/departure-note.ts
  • server/src/portal/session/facts/handshake-facts.ts
  • server/src/portal/session/facts/observed-state.rate-window.test.ts
  • server/src/portal/session/facts/observed-state.test.ts
  • server/src/portal/session/facts/observed-state.ts
  • server/src/portal/session/facts/ref-provenance.test.ts
  • server/src/portal/session/facts/ref-provenance.ts
  • server/src/portal/session/facts/session-replaced.test.ts
  • server/src/portal/session/facts/session-replaced.ts
  • server/src/portal/session/fake-session.test.ts
  • server/src/portal/session/fake-session.ts
  • server/src/portal/session/first-run-wiring.test.ts
  • server/src/portal/session/first-run-wiring.ts
  • server/src/portal/session/first-session-offer.test.ts
  • server/src/portal/session/handshake-facts-are-read.test.ts
  • server/src/portal/session/hud-mirror.test.ts
  • server/src/portal/session/hud-use-is-not-evidence.test.ts
  • server/src/portal/session/human/live-control.ts
  • server/src/portal/session/human/notes-ledger.test.ts
  • server/src/portal/session/human/notes-ledger.ts
  • server/src/portal/session/human/presenter-args.test.ts
  • server/src/portal/session/human/presenter-args.ts
  • server/src/portal/session/human/review-store.test.ts
  • server/src/portal/session/human/review-store.ts
  • server/src/portal/session/inbox-history.test.ts
  • server/src/portal/session/last-act.test.ts
  • server/src/portal/session/last-act.ts
  • server/src/portal/session/lease-expiry-attribution.test.ts
  • server/src/portal/session/lease-visibility.test.ts
  • server/src/portal/session/lease-visibility.ts
  • server/src/portal/session/ledger-notice.test.ts
  • server/src/portal/session/live-control-tools.ts
  • server/src/portal/session/narration-args.ts
  • server/src/portal/session/no-session-auto-attach.test.ts
  • server/src/portal/session/no-session-brevity.test.ts
  • server/src/portal/session/no-session-causes.test.ts
  • server/src/portal/session/no-session-claims.test.ts
  • server/src/portal/session/no-session-diagnosis.test.ts
  • server/src/portal/session/no-session-diagnosis.ts
  • server/src/portal/session/no-session-elsewhere.test.ts
  • server/src/portal/session/no-session-next-action.test.ts
  • server/src/portal/session/no-session-next-action.ts
  • server/src/portal/session/no-session-reason.test.ts
  • server/src/portal/session/no-session-restart-wiring.test.ts
  • server/src/portal/session/no-session-watch.test.ts
  • server/src/portal/session/no-session-watch.ts
  • server/src/portal/session/output-budget.test.ts
  • server/src/portal/session/output-budget.ts
  • server/src/portal/session/page-commands/pending-commands.test.ts
  • server/src/portal/session/page-commands/pending-commands.ts
  • server/src/portal/session/page-commands/undeclared-command.ts
  • server/src/portal/session/presence/attachment-history.test.ts
  • server/src/portal/session/presence/attachment-history.ts
  • server/src/portal/session/presence/lease-availability.test.ts
  • server/src/portal/session/presence/lease-availability.ts
  • server/src/portal/session/presence/session-lease.test.ts
  • server/src/portal/session/presence/session-lease.ts
  • server/src/portal/session/presence/session-mirror.ts
  • server/src/portal/session/presence/session-recommendation.test.ts
  • server/src/portal/session/presence/session-recommendation.ts
  • server/src/portal/session/rebind.ts
  • server/src/portal/session/recorded-gaps.test.ts
  • server/src/portal/session/recorded-gaps.ts
  • server/src/portal/session/refusal-is-current-or-remembered.test.ts
  • server/src/portal/session/refused-dial-is-not-an-uninstalled-app.test.ts
  • server/src/portal/session/refuses-undeclared.test.ts
  • server/src/portal/session/review-mark-identity.test.ts
  • server/src/portal/session/second-project-first-call.test.ts
  • server/src/portal/session/serving-directory.test.ts
  • server/src/portal/session/serving-directory.ts
  • server/src/portal/session/session-buffer-health.test.ts
  • server/src/portal/session/session-end-gap.test.ts
  • server/src/portal/session/session-health-skew.test.ts
  • server/src/portal/session/session-health-starved.test.ts
  • server/src/portal/session/session-health.ts
  • server/src/portal/session/session-info.test.ts
  • server/src/portal/session/session-info.ts
  • server/src/portal/session/session-journal-loss.test.ts
  • server/src/portal/session/session-manager-successor.test.ts
  • server/src/portal/session/session-manager.checkout.test.ts
  • server/src/portal/session/session-manager.scope.test.ts
  • server/src/portal/session/session-manager.ts
  • server/src/portal/session/session-pending-navigation.test.ts
  • server/src/portal/session/session-reaper.test.ts
  • server/src/portal/session/session-reaper.ts
  • server/src/portal/session/session-rebind.test.ts
  • server/src/portal/session/session-reconnect.test.ts
  • server/src/portal/session/session-reconnect.ts
  • server/src/portal/session/session-successor-lease.test.ts
  • server/src/portal/session/session-successor.test.ts
  • server/src/portal/session/session-successor.ts
  • server/src/portal/session/session-tools.test.ts
  • server/src/portal/session/session-tools.ts
  • server/src/portal/session/session-unresponsive.test.ts
  • server/src/portal/session/session-verdict-facts.test.ts
  • server/src/portal/session/session-verdict-facts.ts
  • server/src/portal/session/session.control.test.ts
  • server/src/portal/session/session.test.ts
  • server/src/portal/session/session.ts
  • server/src/portal/session/stall-clock.test.ts
  • server/src/portal/session/stall-clock.ts
  • server/src/portal/session/state-select.test.ts
  • server/src/portal/session/state-select.ts
  • server/src/portal/session/timing/command-timeout.test.ts
  • server/src/portal/session/timing/command-timeout.ts
  • server/src/portal/session/timing/resolve-within.test.ts
  • server/src/portal/session/timing/resolve-within.ts
  • server/src/portal/session/timing/wall-clock.ts
  • server/src/portal/session/tools.live-control.test.ts
  • server/src/portal/session/tools.review.test.ts
  • server/src/portal/session/tools.session-health.test.ts
  • server/src/portal/session/yield-takes-the-driven-session.test.ts
  • server/src/portal/session/yield-without-session.test.ts
  • server/src/portal/session/zero-install-first-call.test.ts
  • server/src/portal/session/zero-install-first-call.ts
  • server/src/predicate-param-typing.test.ts
  • server/src/publishable-packages.test.ts
  • server/src/scripts-documented.test.ts
  • server/src/start-options.ts
  • server/src/start-wiring.test.ts
  • server/src/start-wiring.ts
  • server/src/status-payload.test.ts
  • server/src/status-payload.ts
  • server/src/status-why.test.ts
  • server/src/surface/agent-presence-grace.test.ts
  • server/src/surface/agent-presence-grace.ts
  • server/src/surface/http-server.ts
  • server/src/surface/loopback-agent.ts
  • server/src/surface/mcp/attach-memory.test.ts
  • server/src/surface/mcp/attach-memory.ts
  • server/src/surface/mcp/consumer-verdict-guard.test.ts
  • server/src/surface/mcp/consumer-verdict-guard.ts
  • server/src/surface/mcp/consumer-verdict-wired.test.ts
  • server/src/surface/mcp/context-over-transport.test.ts
  • server/src/surface/mcp/degraded-handshake.test.ts
  • server/src/surface/mcp/detach-releases-leases.test.ts
  • server/src/surface/mcp/empty-catalog-names-http.test.ts
  • server/src/surface/mcp/faults/mcp-is-error.test.ts
  • server/src/surface/mcp/faults/mcp-is-error.ts
  • server/src/surface/mcp/faults/mcp-outage.test.ts
  • server/src/surface/mcp/faults/mcp-outage.ts
  • server/src/surface/mcp/foreign-port-holder.test.ts
  • server/src/surface/mcp/handshake-answered-once.test.ts
  • server/src/surface/mcp/mcp-composed-surface.test.ts
  • server/src/surface/mcp/mcp-proxy-chaos.test.ts
  • server/src/surface/mcp/mcp-proxy.test.ts
  • server/src/surface/mcp/mcp-proxy.ts
  • server/src/surface/mcp/mcp.test.ts
  • server/src/surface/mcp/mcp.ts
  • server/src/surface/mcp/merged-name-dispatches.test.ts
  • server/src/surface/mcp/peer/agents-connected.test.ts
  • server/src/surface/mcp/peer/agents-connected.ts
  • server/src/surface/mcp/peer/client-identity.test.ts
  • server/src/surface/mcp/peer/client-identity.ts
  • server/src/surface/mcp/plugin-init-nudge.test.ts
  • server/src/surface/mcp/predicate-arg-error.test.ts
  • server/src/surface/mcp/predicate-param-string.test.ts
  • server/src/surface/mcp/proxy-answered-once.test.ts
  • server/src/surface/mcp/proxy-cold-start.test.ts
  • server/src/surface/mcp/proxy-first-connect.test.ts
  • server/src/surface/mcp/proxy-idle-exit.integration.test.ts
  • server/src/surface/mcp/proxy-idle-exit.test.ts
  • server/src/surface/mcp/proxy-idle-exit.ts
  • server/src/surface/mcp/proxy-log-rotation.test.ts
  • server/src/surface/mcp/proxy-outage-honesty.test.ts
  • server/src/surface/mcp/proxy-post-failure.test.ts
  • server/src/surface/mcp/proxy-queue-expiry.test.ts
  • server/src/surface/mcp/proxy-reconnect-fanout.test.ts
  • server/src/surface/mcp/proxy-wake-relocates.test.ts
  • server/src/surface/mcp/proxy/drive-calls.ts
  • server/src/surface/mcp/proxy/mcp-post-transport.test.ts
  • server/src/surface/mcp/proxy/mcp-post-transport.ts
  • server/src/surface/mcp/proxy/proxy-backoff.ts
  • server/src/surface/mcp/proxy/proxy-boot.ts
  • server/src/surface/mcp/proxy/proxy-daemon-probe.test.ts
  • server/src/surface/mcp/proxy/proxy-daemon-probe.ts
  • server/src/surface/mcp/proxy/proxy-handshake.test.ts
  • server/src/surface/mcp/proxy/proxy-handshake.ts
  • server/src/surface/mcp/proxy/proxy-lifecycle.test.ts
  • server/src/surface/mcp/proxy/proxy-lifecycle.ts
  • server/src/surface/mcp/proxy/proxy-log-state.test.ts
  • server/src/surface/mcp/proxy/proxy-log.ts
  • server/src/surface/mcp/sdk-private-shape.test.ts
  • server/src/surface/mcp/server-instructions.test.ts
  • server/src/surface/mcp/server-instructions.ts
  • server/src/surface/mcp/shared-params.test.ts
  • server/src/surface/mcp/shared-params.ts
  • server/src/surface/mcp/sse-frame-parser.ts
  • server/src/surface/mcp/stream-loss-replies.test.ts
  • server/src/surface/mcp/surface-coherence.test.ts
  • server/src/surface/mcp/surface-vocabulary.ts
  • server/src/surface/mcp/tool-annotations.test.ts
  • server/src/surface/mcp/tool-call-progress.test.ts
  • server/src/surface/mcp/tool-catalog-cache.test.ts
  • server/src/surface/mcp/tool-catalog-cache.ts
  • server/src/surface/mcp/toolless-session-recovery.test.ts
  • server/src/surface/mcp/unadvertised-tool-over-transport.test.ts
  • server/src/surface/mcp/weakest-client-schemas.test.ts
  • server/src/surface/tools/account-tool.test.ts
  • server/src/surface/tools/account-tool.ts
  • server/src/surface/tools/act-and-wait-start-query.test.ts
  • server/src/surface/tools/act-capsule.test.ts
  • server/src/surface/tools/act-capsule.ts
  • server/src/surface/tools/act-command.ts
  • server/src/surface/tools/act-green-blast-radius.test.ts
  • server/src/surface/tools/act-hidden-match.test.ts
  • server/src/surface/tools/act-journal-reason.test.ts
  • server/src/surface/tools/act-leaves-origin.test.ts
  • server/src/surface/tools/act-merged.ts
  • server/src/surface/tools/act-sequence-burst.test.ts
  • server/src/surface/tools/act-sequence-declared-failure.test.ts
  • server/src/surface/tools/act-sequence-journal.test.ts
  • server/src/surface/tools/act-sequence-progress.test.ts
  • server/src/surface/tools/act-sequence-quiet-plan.test.ts
  • server/src/surface/tools/act-sequence-saved-claims.test.ts
  • server/src/surface/tools/act-sequence-session.test.ts
  • server/src/surface/tools/act-sequence-step-window.test.ts
  • server/src/surface/tools/act-sequence-steps.test.ts
  • server/src/surface/tools/act-sequence-target.test.ts
  • server/src/surface/tools/act-sequence-tool.ts
  • server/src/surface/tools/act-state-already-true.test.ts
  • server/src/surface/tools/act-steps-verdict-counted.test.ts
  • server/src/surface/tools/act-timeout-diagnosis.test.ts
  • server/src/surface/tools/act-tools.ts
  • server/src/surface/tools/act-truncated-window.test.ts
  • server/src/surface/tools/act-unreachable-target.test.ts
  • server/src/surface/tools/act-unwatched-state.test.ts
  • server/src/surface/tools/act-verdict-parity.test.ts
  • server/src/surface/tools/act/act-danger.test.ts
  • server/src/surface/tools/act/act-danger.ts
  • server/src/surface/tools/act/act-helpers.ts
  • server/src/surface/tools/act/act-navigation-follow.test.ts
  • server/src/surface/tools/act/act-observation-disabled.test.ts
  • server/src/surface/tools/act/act-observation.test.ts
  • server/src/surface/tools/act/act-observation.ts
  • server/src/surface/tools/act/act-preflight-vacuous.test.ts
  • server/src/surface/tools/act/act-preflight.ts
  • server/src/surface/tools/act/act-sequence-retry.test.ts
  • server/src/surface/tools/act/act-sequence-retry.ts
  • server/src/surface/tools/act/act-target.test.ts
  • server/src/surface/tools/act/act-target.ts
  • server/src/surface/tools/act/act-view.test.ts
  • server/src/surface/tools/act/act-view.ts
  • server/src/surface/tools/act/after-match.ts
  • server/src/surface/tools/act/already-true.ts
  • server/src/surface/tools/act/durable.test.ts
  • server/src/surface/tools/act/durable.ts
  • server/src/surface/tools/act/navigation/navigate-arrival.test.ts
  • server/src/surface/tools/act/navigation/navigate-arrival.ts
  • server/src/surface/tools/act/navigation/navigate-result.ts
  • server/src/surface/tools/act/navigation/reload-result.test.ts
  • server/src/surface/tools/act/navigation/reload-result.ts
  • server/src/surface/tools/act/proved-controls.ts
  • server/src/surface/tools/act/react-grace.test.ts
  • server/src/surface/tools/act/react-grace.ts
  • server/src/surface/tools/act/resolve-target.test.ts
  • server/src/surface/tools/act/resolve-target.ts
  • server/src/surface/tools/act/screen-request-rule.test.ts
  • server/src/surface/tools/act/screen-request.test.ts
  • server/src/surface/tools/act/screen-request.ts
  • server/src/surface/tools/act/sequence-grade.test.ts
  • server/src/surface/tools/act/sequence-grade.ts
  • server/src/surface/tools/act/sequence-offer.test.ts
  • server/src/surface/tools/act/settle-in-flight.test.ts
  • server/src/surface/tools/act/settle-in-flight.ts
  • server/src/surface/tools/act/settle-third-party.test.ts
  • server/src/surface/tools/act/unsettled-find.test.ts
  • server/src/surface/tools/act/unsettled-find.ts
  • server/src/surface/tools/advertised-names-are-real.test.ts
  • server/src/surface/tools/advertised-surface-cost.test.ts
  • server/src/surface/tools/agent/app-notes-learning.test.ts
  • server/src/surface/tools/agent/app-notes-learning.ts
  • server/src/surface/tools/agent/app-notes.ts
  • server/src/surface/tools/agent/build-staleness.test.ts
  • server/src/surface/tools/agent/build-staleness.ts
  • server/src/surface/tools/agent/compact-envelope.contract.test.ts
  • server/src/surface/tools/agent/compact-envelope.ts
  • server/src/surface/tools/agent/for-the-agent.ts
  • server/src/surface/tools/agent/notices.test.ts
  • server/src/surface/tools/agent/notices.ts
  • server/src/surface/tools/agent/reteach.test.ts
  • server/src/surface/tools/agent/reteach.ts
  • server/src/surface/tools/alias-target-optional.test.ts
  • server/src/surface/tools/args/alias-args.test.ts
  • server/src/surface/tools/args/alias-args.ts
  • server/src/surface/tools/args/confirm-dangerous-arg.ts
  • server/src/surface/tools/args/numeric-bounds.test.ts
  • server/src/surface/tools/args/numeric-bounds.ts
  • server/src/surface/tools/assert-follows-document.test.ts
  • server/src/surface/tools/assert/assert-bare-getter-store.test.ts
  • server/src/surface/tools/assert/assert-buffer-honesty.test.ts
  • server/src/surface/tools/assert/assert-contradiction-plumbing.test.ts
  • server/src/surface/tools/assert/assert-coverage-honesty.test.ts
  • server/src/surface/tools/assert/assert-gap-reads-own-source.test.ts
  • server/src/surface/tools/assert/assert-grade-empty-combinator.test.ts
  • server/src/surface/tools/assert/assert-grade.test.ts
  • server/src/surface/tools/assert/assert-grade.ts
  • server/src/surface/tools/assert/assert-journal-loss.test.ts
  • server/src/surface/tools/assert/assert-journal-verdict.test.ts
  • server/src/surface/tools/assert/assert-repeatable-read.test.ts
  • server/src/surface/tools/assert/assert-source-attribution.test.ts
  • server/src/surface/tools/assert/assert-source.test.ts
  • server/src/surface/tools/assert/assert-source.ts
  • server/src/surface/tools/assert/assert-throttled-window.test.ts
  • server/src/surface/tools/assert/assert-timeout-diagnosis.test.ts
  • server/src/surface/tools/assert/assert-transport-gap.test.ts
  • server/src/surface/tools/assert/assert-verdict.ts
  • server/src/surface/tools/assert/assert-wait-is-graded.test.ts
  • server/src/surface/tools/assert/verdict-attribution.test.ts
  • server/src/surface/tools/authored-errors-are-ours.test.ts
  • server/src/surface/tools/baseline-roundtrip.test.ts
  • server/src/surface/tools/bench-inject-dirty-guard.test.mjs
  • server/src/surface/tools/blocking-wait-ceiling.test.ts
  • server/src/surface/tools/body-clause-refusal-envelope.test.ts
  • server/src/surface/tools/browser-tools.ts
  • server/src/surface/tools/chat-drives.ts
  • server/src/surface/tools/cheatsheet-accuracy.test.ts
  • server/src/surface/tools/compare-tools.test.ts
  • server/src/surface/tools/compare-tools.ts
  • server/src/surface/tools/connect-spelling.test.ts
  • server/src/surface/tools/console-empty-read.test.ts
  • server/src/surface/tools/contract-tools.ts
  • server/src/surface/tools/coverage-tools.test.ts
  • server/src/surface/tools/coverage-tools.ts
  • server/src/surface/tools/dispatch-chokepoint.test.ts
  • server/src/surface/tools/dispatch-episode.test.ts
  • server/src/surface/tools/dispatch-opens-unwired-app.test.ts
  • server/src/surface/tools/dispatch-session-pin.test.ts
  • server/src/surface/tools/docs-index-coverage.test.ts
  • server/src/surface/tools/documented-names.test.ts
  • server/src/surface/tools/dynamic-tools.test.ts
  • server/src/surface/tools/dynamic-tools.ts
  • server/src/surface/tools/e2e-surface-drift.test.ts
  • server/src/surface/tools/empty-session-list.ts
  • server/src/surface/tools/empty-session-talk-to-us.test.ts
  • server/src/surface/tools/envelope-keys-declared.test.ts
  • server/src/surface/tools/error-recovery.test.ts
  • server/src/surface/tools/error-recovery.ts
  • server/src/surface/tools/every-retired-name-redirects.test.ts
  • server/src/surface/tools/explore-runs.test.ts
  • server/src/surface/tools/explore-tools.ts
  • server/src/surface/tools/feedback-ask-names-live-tool.test.ts
  • server/src/surface/tools/feedback-invite.test.ts
  • server/src/surface/tools/feedback-invite.ts
  • server/src/surface/tools/feedback-tools.test.ts
  • server/src/surface/tools/feedback-tools.ts
  • server/src/surface/tools/first-sentence.test.ts
  • server/src/surface/tools/first-sentence.ts
  • server/src/surface/tools/gap-novelty.test.ts
  • server/src/surface/tools/gap-novelty.ts
  • server/src/surface/tools/gaps/capability-absences.test.ts
  • server/src/surface/tools/gaps/capability-absences.ts
  • server/src/surface/tools/gaps/coverage-identity.test.ts
  • server/src/surface/tools/gaps/coverage-identity.ts
  • server/src/surface/tools/gaps/observed-nothing.test.ts
  • server/src/surface/tools/gaps/observed-nothing.ts
  • server/src/surface/tools/gaps/sdk-marker-probe.test.ts
  • server/src/surface/tools/gaps/sdk-marker-probe.ts
  • server/src/surface/tools/harness-explore.test.ts
  • server/src/surface/tools/harness-explore.ts
  • server/src/surface/tools/harness-gate.ts
  • server/src/surface/tools/harness-hunt.test.ts
  • server/src/surface/tools/harness-hunt.ts
  • server/src/surface/tools/harness-lanes.test.ts
  • server/src/surface/tools/harness-not-linked.test.ts
  • server/src/surface/tools/harness-plan.test.ts
  • server/src/surface/tools/harness-plan.ts
  • server/src/surface/tools/harness-request-share.test.ts
  • server/src/surface/tools/harness-script.ts
  • server/src/surface/tools/harness-tab-guard.test.ts
  • server/src/surface/tools/harness-tab-guard.ts
  • server/src/surface/tools/harness-toolset.test.ts
  • server/src/surface/tools/harness-toolset.ts
  • server/src/surface/tools/hud-drive-word.test.ts
  • server/src/surface/tools/hud-drive.test.ts
  • server/src/surface/tools/hud-harness-link.test.ts
  • server/src/surface/tools/human-notes.test.ts
  • server/src/surface/tools/human-notes.ts
  • server/src/surface/tools/init-guidance-names.test.ts
  • server/src/surface/tools/init-guidance-surface.test.ts
  • server/src/surface/tools/inspect-tool.ts
  • server/src/surface/tools/invoke-tool-notices.test.ts
  • server/src/surface/tools/invoke-tool.test.ts
  • server/src/surface/tools/invoke-tool.ts
  • server/src/surface/tools/lean-surface.test.ts
  • server/src/surface/tools/lease-adopted-id.test.ts
  • server/src/surface/tools/lease-hint-evidence.test.ts
  • server/src/surface/tools/lease-hint.test.ts
  • server/src/surface/tools/lease-hint.ts
  • server/src/surface/tools/lease-navigate.test.ts
  • server/src/surface/tools/lease-permissions.test.ts
  • server/src/surface/tools/lease-permissions.ts
  • server/src/surface/tools/lease-production.test.ts
  • server/src/surface/tools/lease-readiness.ts
  • server/src/surface/tools/lease-seed.ts
  • server/src/surface/tools/lease-tools.test.ts
  • server/src/surface/tools/lease-tools.ts
  • server/src/surface/tools/lineage-tools.ts
  • server/src/surface/tools/live-call-text.test.ts
  • server/src/surface/tools/live-call-text.ts
  • server/src/surface/tools/map-tools.test.ts
  • server/src/surface/tools/map-tools.ts
  • server/src/surface/tools/merge-discriminator.test.ts
  • server/src/surface/tools/merge-tools.test.ts
  • server/src/surface/tools/merge-tools.ts
  • server/src/surface/tools/merged-name-redirect.test.ts
  • server/src/surface/tools/merged-name-redirect.ts
  • server/src/surface/tools/merged-surface.test.ts
  • server/src/surface/tools/meta-tool-discoverability.test.ts
  • server/src/surface/tools/native-input-refusal.test.ts
  • server/src/surface/tools/navigate-honesty.test.ts
  • server/src/surface/tools/navigate-lease-off-app.test.ts
  • server/src/surface/tools/navigate-same-page.test.ts
  • server/src/surface/tools/navigate-starts-session.test.ts
  • server/src/surface/tools/navigate-timeout.test.ts
  • server/src/surface/tools/network-bodies.test.ts
  • server/src/surface/tools/network-defaults.test.ts
  • server/src/surface/tools/network-hint-schema.test.ts
  • server/src/surface/tools/next-step.test.ts
  • server/src/surface/tools/next-step.ts
  • server/src/surface/tools/numeric-args-are-bounded.test.ts
  • server/src/surface/tools/observe-act-attribution.test.ts
  • server/src/surface/tools/observe-filters-keep-contradictions.test.ts
  • server/src/surface/tools/observe-tools.ts
  • server/src/surface/tools/output-schema.test.ts
  • server/src/surface/tools/platform-moment-nudge.test.ts
  • server/src/surface/tools/platform-moment.test.ts
  • server/src/surface/tools/platform-moment.ts
  • server/src/surface/tools/predicate-grammar.test.ts
  • server/src/surface/tools/predicate-vocabulary.test.ts
  • server/src/surface/tools/query-forwarding.test.ts
  • server/src/surface/tools/query-hint-schema.ts
  • server/src/surface/tools/query-strategy.test.ts
  • server/src/surface/tools/query-unsettled.test.ts
  • server/src/surface/tools/read-tools.state.test.ts
  • server/src/surface/tools/read-tools.storage.test.ts
  • server/src/surface/tools/read-tools.test.ts
  • server/src/surface/tools/read-tools.ts
  • server/src/surface/tools/read/complete-snapshot.test.ts
  • server/src/surface/tools/read/complete-snapshot.ts
  • server/src/surface/tools/read/query-paginate.test.ts
  • server/src/surface/tools/read/query-paginate.ts
  • server/src/surface/tools/read/query-shape.test.ts
  • server/src/surface/tools/read/query-shape.ts
  • server/src/surface/tools/read/query-windowed.test.ts
  • server/src/surface/tools/read/query-windowed.ts
  • server/src/surface/tools/read/snapshot-delta.test.ts
  • server/src/surface/tools/read/snapshot-delta.ts
  • server/src/surface/tools/read/snapshot-unmounted-note.test.ts
  • server/src/surface/tools/read/snapshot-unmounted-note.ts
  • server/src/surface/tools/real-input-attempt.ts
  • server/src/surface/tools/reconcile-tools.test.ts
  • server/src/surface/tools/reconcile-tools.ts
  • server/src/surface/tools/record-start-path-and-reload.test.ts
  • server/src/surface/tools/record-stop-backtrack.test.ts
  • server/src/surface/tools/record-stop-budget.test.ts
  • server/src/surface/tools/record-stop-redacts-secrets.test.ts
  • server/src/surface/tools/recovery-run-examples.test.ts
  • server/src/surface/tools/refusal-reason.test.ts
  • server/src/surface/tools/refusals-are-recognized.test.ts
  • server/src/surface/tools/refused-act-leaves-nothing.test.ts
  • server/src/surface/tools/repeat-hint-dispatch.test.ts
  • server/src/surface/tools/repeat-hint.ts
  • server/src/surface/tools/replay-press-real-input.test.ts
  • server/src/surface/tools/reticle-result.test.ts
  • server/src/surface/tools/reticle-result.ts
  • server/src/surface/tools/retired-profile-docs.test.ts
  • server/src/surface/tools/run-checks-arg-types.test.ts
  • server/src/surface/tools/run-report.test.ts
  • server/src/surface/tools/run-report.ts
  • server/src/surface/tools/run-session-id.test.ts
  • server/src/surface/tools/session-ports.ts
  • server/src/surface/tools/sessions-attachment.test.ts
  • server/src/surface/tools/sessions-why.test.ts
  • server/src/surface/tools/settle-ignores-departure.test.ts
  • server/src/surface/tools/settle-in-flight-dev-tooling.test.ts
  • server/src/surface/tools/shipped-prose-drift.test.ts
  • server/src/surface/tools/snapshot-cost.test.ts
  • server/src/surface/tools/snapshot-delta-roundtrip.test.ts
  • server/src/surface/tools/snapshot-delta.actionable.test.ts
  • server/src/surface/tools/snapshot-hidden-note.test.ts
  • server/src/surface/tools/storage-vocabulary.test.ts
  • server/src/surface/tools/suite-fixture-pageurl.test.ts
  • server/src/surface/tools/suite-fixture.test.ts
  • server/src/surface/tools/surface-consistency.test.ts
  • server/src/surface/tools/surface-reachability.test.ts
  • server/src/surface/tools/surface-sizes.test.ts
  • server/src/surface/tools/tool-allowlists-complete.test.ts
  • server/src/surface/tools/tool-deps-ext.test.ts
  • server/src/surface/tools/tool-examples.test.ts
  • server/src/surface/tools/tool-invoker.test.ts
  • server/src/surface/tools/tool-invoker.ts
  • server/src/surface/tools/tool-kit.ts
  • server/src/surface/tools/tool-surface.test.ts
  • server/src/surface/tools/tool-surface.ts
  • server/src/surface/tools/tools-helpers.ts
  • server/src/surface/tools/tools.assert-advice.test.ts
  • server/src/surface/tools/tools.contract.test.ts
  • server/src/surface/tools/tools.inspect-ref.test.ts
  • server/src/surface/tools/tools.near-miss.test.ts
  • server/src/surface/tools/tools.query-attrs.test.ts
  • server/src/surface/tools/tools.ts
  • server/src/surface/tools/unadvertised-help.test.ts
  • server/src/surface/tools/unadvertised-help.ts
  • server/src/surface/tools/upload-path-rewrite.test.ts
  • server/src/surface/tools/upload-session-root.test.ts
  • server/src/surface/tools/verify-next-baton.test.ts
  • server/src/surface/tools/verify-next-baton.ts
  • server/src/surface/tools/vocabulary-enforced.test.ts
  • server/src/surface/tools/wire-name-accounted-for.test.ts
  • server/src/surface/tools/wrong-tab-ref.test.ts
  • server/src/telemetry/account-envelope.test.ts
  • server/src/telemetry/account-envelope.ts
  • server/src/telemetry/agent-client.test.ts
  • server/src/telemetry/agent-client.ts
  • server/src/telemetry/app-instrumented.test.ts
  • server/src/telemetry/app-instrumented.ts
  • server/src/telemetry/argument-shape.test.ts
  • server/src/telemetry/argument-shape.ts
  • server/src/telemetry/automation-hint.test.ts
  • server/src/telemetry/automation-hint.ts
  • server/src/telemetry/browser-mode.ts
  • server/src/telemetry/bug-found.test.ts
  • server/src/telemetry/bug-found.ts
  • server/src/telemetry/bug-occurrence.test.ts
  • server/src/telemetry/cli-telemetry.ts
  • server/src/telemetry/connect-failure.ts
  • server/src/telemetry/crash-cause.test.ts
  • server/src/telemetry/crash-cause.ts
  • server/src/telemetry/daemon-telemetry.test.ts
  • server/src/telemetry/daemon-telemetry.ts
  • server/src/telemetry/dev-repo.test.ts
  • server/src/telemetry/dev-repo.ts
  • server/src/telemetry/error-class.ts
  • server/src/telemetry/error-fingerprint.test.ts
  • server/src/telemetry/error-fingerprint.ts
  • server/src/telemetry/event-hygiene.test.ts
  • server/src/telemetry/extra-blocks-reach-the-wire.test.ts
  • server/src/telemetry/feedback-attribution.test.ts
  • server/src/telemetry/feedback-cli.ts
  • server/src/telemetry/feedback-context.test.ts
  • server/src/telemetry/feedback-context.ts
  • server/src/telemetry/feedback-delivery.test.ts
  • server/src/telemetry/feedback-delivery.ts
  • server/src/telemetry/feedback-in-checkout.test.ts
  • server/src/telemetry/feedback-local.test.ts
  • server/src/telemetry/feedback-local.ts
  • server/src/telemetry/feedback-outbox.test.ts
  • server/src/telemetry/feedback-outbox.ts
  • server/src/telemetry/feedback.test.ts
  • server/src/telemetry/feedback.ts
  • server/src/telemetry/first-ever.test.ts
  • server/src/telemetry/gate-completed.test.ts
  • server/src/telemetry/git-facts.ts
  • server/src/telemetry/harness-never-emits.test.ts
  • server/src/telemetry/harness-run.test.ts
  • server/src/telemetry/harness-run.ts
  • server/src/telemetry/hud-events.test.ts
  • server/src/telemetry/hud-events.ts
  • server/src/telemetry/hud-metrics.test.ts
  • server/src/telemetry/hud-metrics.ts
  • server/src/telemetry/init-telemetry.ts
  • server/src/telemetry/install-attribution.test.ts
  • server/src/telemetry/install-report.test.ts
  • server/src/telemetry/install-source.test.ts
  • server/src/telemetry/install-source.ts
  • server/src/telemetry/install-stage.test.ts
  • server/src/telemetry/install-trace.test.ts
  • server/src/telemetry/install-trace.ts
  • server/src/telemetry/license-activation.test.ts
  • server/src/telemetry/license-activation.ts
  • server/src/telemetry/local-sink.test.ts
  • server/src/telemetry/machine-snapshot.ts
  • server/src/telemetry/mcp-connection.test.ts
  • server/src/telemetry/mcp-connection.ts
  • server/src/telemetry/missing-metrics.test.ts
  • server/src/telemetry/no-field-numbers.test.ts
  • server/src/telemetry/onboarding-dispatch.test.ts
  • server/src/telemetry/onboarding-firsts.test.ts
  • server/src/telemetry/onboarding-firsts.ts
  • server/src/telemetry/onboarding-funnel.ts
  • server/src/telemetry/onboarding-next-step.test.ts
  • server/src/telemetry/onboarding-stop.test.ts
  • server/src/telemetry/platform-linked.test.ts
  • server/src/telemetry/platform-linked.ts
  • server/src/telemetry/project-identity.test.ts
  • server/src/telemetry/project-profile.test.ts
  • server/src/telemetry/project-profile.ts
  • server/src/telemetry/prompt-never-in-telemetry.test.ts
  • server/src/telemetry/proxy-telemetry.test.ts
  • server/src/telemetry/proxy-telemetry.ts
  • server/src/telemetry/run-telemetry.ts
  • server/src/telemetry/session-metrics.test.ts
  • server/src/telemetry/session-metrics.ts
  • server/src/telemetry/session-window.test.ts
  • server/src/telemetry/stack-unknown-reason.test.ts
  • server/src/telemetry/telemetry-contract.test.ts
  • server/src/telemetry/telemetry-identity.test.ts
  • server/src/telemetry/telemetry-integrity.test.ts
  • server/src/telemetry/telemetry.test.ts
  • server/src/telemetry/telemetry.ts
  • server/src/telemetry/tool-refused.test.ts
  • server/src/telemetry/tool-refused.ts
  • server/src/telemetry/verification-of.test.ts
  • server/src/telemetry/verification-of.ts
  • server/src/test-home.test.ts
  • server/src/trace.test.ts
  • server/src/trace.ts
  • server/src/verdict-kernel-neutrality.test.ts
  • server/src/wire-journal.late-project.test.ts
  • server/src/wire-journal.ts
  • server/src/workspace-packages.ts
  • server/vitest.config.ts
  • spec-runner/package.json
  • spec-runner/src/boot.test.ts
  • spec-runner/src/boot.ts
  • spec-runner/src/context/clock.test.ts
  • spec-runner/src/context/clock.ts
  • spec-runner/src/context/input-mode.test.ts
  • spec-runner/src/context/input-mode.ts
  • spec-runner/src/context/matchers.ts
  • spec-runner/src/context/resolve.test.ts
  • spec-runner/src/context/resolve.ts
  • spec-runner/src/flow-spec.test.ts
  • spec-runner/src/flow-spec.ts
  • spec-runner/src/index.ts
  • spec-runner/src/junit.char-range.test.ts
  • spec-runner/src/junit.test.ts
  • spec-runner/src/junit.ts
  • spec-runner/src/matchers.absent.test.ts
  • spec-runner/src/matchers.element.test.ts
  • spec-runner/src/matchers.net.test.ts
  • spec-runner/src/matchers.signal.test.ts
  • spec-runner/src/orphan-modules.test.ts
  • spec-runner/src/outcome/constants.ts
  • spec-runner/src/outcome/skip.ts
  • spec-runner/src/outcome/success-assert.test.ts
  • spec-runner/src/outcome/success-assert.ts
  • spec-runner/src/register.test.ts
  • spec-runner/src/register.ts
  • spec-runner/src/registry.test.ts
  • spec-runner/src/registry.ts
  • spec-runner/src/runner.snapshot.test.ts
  • spec-runner/src/runner.test.ts
  • spec-runner/src/runner.ts
  • spec-runner/src/spec-types.test.ts
  • spec-runner/src/spec.ts
  • spec-runner/src/summary.test.ts
  • spec-runner/src/summary.ts
  • spec-runner/src/test-context.act.test.ts
  • spec-runner/src/test-context.ts
  • spec-runner/src/types.ts
  • spec-runner/src/verified-gate.test.ts
  • spec-runner/vitest.config.ts
  • test/crash-isolation.integration.test.ts
  • test/frameworks.integration.test.ts
  • test/global-setup.ts
  • test/lease-input.integration.test.ts
  • test/next-withreticle.integration.test.ts
  • test/page-error.integration.test.ts
  • test/pool.integration.test.ts
  • vitest.config.ts
  • vitest.integration.config.ts
  • vitest.shared.ts
  • vitest.temp-home.ts

Files

  • .changes/1231-evicted-evidence-unknown.mddoc485 bytes
  • .changes/1232-animation-predicate.mddoc547 bytes
  • .changes/1263-dev-server-stop-names-vite-step.mddoc581 bytes
  • .changes/1518-hidden-match-named.mddoc652 bytes
  • .changes/1518-hidden-target.mddoc739 bytes
  • .changes/1518-sizeless-target.mddoc725 bytes
  • .changes/1522-derived-record-is-not-an-echo.mddoc1,004 bytes
  • .changes/1531-store-change-is-an-effect.mddoc868 bytes
  • .changes/1543-no-session-project-listeners.mddoc370 bytes
  • .changes/1543-no-session-unlisted-port.mddoc267 bytes
  • .changes/1544-static-page-unchanged.mddoc757 bytes
  • .changes/1550-verify-affected-session-project.mddoc344 bytes
  • .changes/1646-echo-normalized-values.mddoc650 bytes
  • .changes/1649-journal-cut-bounded.mddoc848 bytes
  • .changes/1658-verify-flows-total-budget.mddoc1,294 bytes
  • .changes/1660-unpatched-fetch-unknown.mddoc911 bytes
  • .changes/1661-console-capture-dom-promise.mddoc1,112 bytes
  • .changes/1663-scope-every-match.mddoc585 bytes
  • .changes/1666-editor-textarea-refused.mddoc543 bytes
  • .changes/1668-crawl-unnamed-controls.mddoc418 bytes
  • .changes/1682-theme-scoped-tokens.mddoc655 bytes
  • .changes/1715-scroll-wheel.mddoc434 bytes
  • .changes/1779-driven-download-capture.mddoc896 bytes
  • .changes/1779-server-download-net-check.mddoc694 bytes
  • .changes/1784-layout-shift-window.mddoc472 bytes
  • .changes/1903-lease-pointer-emulation.mddoc692 bytes
  • .changes/1930-hidden-subtree-text-check.mddoc723 bytes
  • .changes/1936-download-net-check-unknown.mddoc1,057 bytes
  • .changes/1940-receives-pointer-state.mddoc796 bytes
  • .changes/1949-hmr-rebinds-auto-store.mddoc534 bytes
  • .changes/1963-mcp-status-url.mddoc303 bytes
  • .changes/1996-affected-flows-one-folder.mddoc591 bytes
  • .changes/2005-lease-compiling-server.mddoc578 bytes
  • .changes/2006-act-and-wait-timeout-diagnosis.mddoc528 bytes
  • .changes/2009-act-follows-a-late-navigation.mddoc948 bytes
  • .changes/2013-duplicate-across-steps.mddoc624 bytes
  • .changes/2017-prefer-web-app-dev-command.mddoc489 bytes
  • .changes/2031-old-sdk-body-cap-advice.mddoc633 bytes
  • .changes/2033-parallel-verify-https.mddoc381 bytes
  • .changes/2034-declared-route.mddoc851 bytes
  • .changes/2047-visibility-override.mddoc424 bytes
  • .changes/2050-gate-own-files.mddoc563 bytes
  • .changes/2056-nameless-role-anchor.mddoc741 bytes
  • .changes/2060-verify-flow-loses-session.mddoc726 bytes
  • .changes/2063-element-failure-names-query.mddoc622 bytes
  • .changes/2065-baseline-match-case.mddoc554 bytes
  • .changes/2069-media-before-window.mddoc605 bytes
  • .changes/2071-presenter-narrow-viewport.mddoc426 bytes
  • .changes/2077-static-server-port-move.mddoc541 bytes
  • .changes/2083-file-input-role.mddoc370 bytes
  • .changes/2084-sequence-sub-step-anchor.mddoc589 bytes
  • .changes/2109-renamed-control-within.mddoc768 bytes
  • .changes/2113-sequence-unreachable-target.mddoc563 bytes
  • .changes/2117-unsynced-roots-one-line.mddoc519 bytes
  • .changes/2130-sequence-burst-gap.mddoc655 bytes
  • .changes/2135-shared-testid-position.mddoc695 bytes
  • .changes/2139-press-chord-and-punctuation.mddoc711 bytes
  • .changes/2141-dead-click-under-hud.mddoc606 bytes
  • .changes/2155-start-wait-names-the-knob.mddoc541 bytes
  • .changes/2163-loopback-csp-widen.mddoc698 bytes
  • .changes/2168-replay-waits-for-session.mddoc608 bytes
  • .changes/2172-signal-before-declared-failure.mddoc746 bytes
  • .changes/2176-route-and-absence-claims.mddoc986 bytes
  • .changes/2177-close-sync-honours-opt-out.mddoc616 bytes
  • .changes/2190-verify-against.mddoc1,007 bytes
  • .changes/2191-trim-commands-deprecated.mddoc503 bytes
  • .changes/2191-trim-commands-removed.mddoc827 bytes
  • .changes/2195-explore-holes-and-behaviour-findings.mddoc940 bytes
  • .changes/2196-quiet-undeclared-plan-is-no-fault.mddoc728 bytes
  • .changes/2201-explore-drives-edge-cases.mddoc2,570 bytes
  • .changes/README.mddoc2,431 bytes
  • .changes/absent-text-with-property.mddoc605 bytes
  • .changes/acknowledged-failed-write.mddoc661 bytes
  • .changes/ambiguous-anchor-after-acting.mddoc437 bytes
  • .changes/auto-saved-flow-start-query.mddoc738 bytes
  • .changes/click-target-pointer-events.mddoc705 bytes
  • .changes/compare-command.mddoc1,331 bytes
  • .changes/compare-skips-type-names.mddoc350 bytes
  • .changes/component-anchor-role.mddoc711 bytes
  • .changes/component-anchor-text.mddoc791 bytes
  • .changes/daemon-pidfile-before-boot.mddoc513 bytes
  • .changes/early-console-capture.mddoc863 bytes
  • .changes/emulate-viewport-default.mddoc372 bytes
  • .changes/flow-navigate-step.mddoc694 bytes
  • .changes/flow-request-step.mddoc1,578 bytes
  • .changes/get-list-is-not-a-batch.mddoc599 bytes
  • .changes/hover-leaves-previous.mddoc730 bytes
  • .changes/journey-sub-step-claims-saved.mddoc489 bytes
  • .changes/lease-spa-redirect.mddoc502 bytes
  • .changes/match-empty-reply-is-unknown.mddoc271 bytes
  • .changes/match-error-is-unknown.mddoc473 bytes
  • .changes/non-english-secret-fill.mddoc1,185 bytes
  • .changes/old-sdk-match-case.mddoc478 bytes
  • .changes/one-command-first.mddoc493 bytes
  • .changes/pagination-count-label.mddoc528 bytes
  • .changes/press-focus-then-real-key.mddoc870 bytes
  • .changes/press-runs-key-defaults.mddoc818 bytes
  • .changes/read-server-fault.mddoc850 bytes
  • .changes/recorded-component-position.mddoc722 bytes
  • .changes/recorder-keeps-steps-across-page-load.mddoc618 bytes
  • .changes/recorder-on-demand.mddoc420 bytes
  • .changes/refusal-detail.mddoc607 bytes
  • .changes/replay-ambient-failed-read.mddoc713 bytes
  • .changes/replay-never-settled-at-end.mddoc573 bytes
  • .changes/replay-reads-before-the-action.mddoc556 bytes
  • .changes/replay-reloads-hash-routed-page.mddoc573 bytes
  • .changes/replay-start-page-load-errors.mddoc537 bytes
  • .changes/replay-step-pacing.mddoc928 bytes
  • .changes/require-start-control.mddoc616 bytes
  • .changes/reset-drops-left-query.mddoc471 bytes
  • .changes/role-anchor-also-roles.mddoc665 bytes
  • .changes/run-merged-name-routes.mddoc443 bytes
  • .changes/sequence-ambiguous-anchor.mddoc651 bytes
  • .changes/sequence-press-after-page-load.mddoc403 bytes
  • .changes/sequence-sign-in-cut.mddoc558 bytes
  • .changes/skill-absent-means-not-in-dom.mddoc478 bytes
  • .changes/snapshot-aria-label-text.mddoc562 bytes
  • .changes/stale-response-one-intent.mddoc792 bytes
  • .changes/stale-response-operation-param.mddoc647 bytes
  • .changes/start-page-namesake-count.mddoc845 bytes
  • .changes/start-path-nested-lease-param.mddoc504 bytes
  • .changes/text-invisible-format.mddoc670 bytes
  • .changes/tour-yields-keys-to-a-drive.mddoc625 bytes
  • .changes/verify-flow-start-state.mddoc695 bytes
  • .changes/verify-results-score.mddoc1,277 bytes
  • .claude-plugin/marketplace.jsonasset525 bytes
  • .env.exampleasset601 bytes
  • .gitattributesasset2,747 bytes
  • .github/CODEOWNERSasset1,620 bytes
  • .github/ISSUE_TEMPLATE/bug_report.ymlasset2,314 bytes
  • .github/ISSUE_TEMPLATE/config.ymlasset581 bytes
  • .github/ISSUE_TEMPLATE/feature_request.ymlasset1,160 bytes
  • .github/ISSUE_TEMPLATE/security_finding.ymlasset2,301 bytes
  • .github/PULL_REQUEST_TEMPLATE.mddoc1,888 bytes
  • .github/REPOSITORY-SETTINGS.mddoc7,552 bytes
  • .github/dependabot.ymlasset5,635 bytes
  • .github/flaky.jsonasset20 bytes
  • .github/labeler.ymlasset2,322 bytes
  • .github/workflows/ci.ymlasset97,842 bytes
  • .github/workflows/codeql.ymlasset2,610 bytes
  • .github/workflows/dco.ymlasset3,853 bytes
  • .github/workflows/dependabot-auto-merge.ymlasset1,131 bytes
  • .github/workflows/docs-site-gate.ymlasset671 bytes
  • .github/workflows/docs.ymlasset1,499 bytes
  • .github/workflows/labeler.ymlasset1,663 bytes
  • .github/workflows/pending-release-label.ymlasset1,015 bytes
  • .github/workflows/publish-crate.ymlasset5,186 bytes
  • .github/workflows/publish.ymlasset8,884 bytes
  • .github/workflows/release-provenance.ymlasset3,493 bytes
  • .github/workflows/scorecard.ymlasset1,592 bytes
  • .github/workflows/stale.ymlasset1,102 bytes
  • .github/workflows/welcome.ymlasset1,272 bytes
  • .github/workflows/win32-job-probe.ymlasset1,121 bytes
  • .gitignoreasset6,770 bytes
  • .prettierignoreasset2,085 bytes
  • .prettierrcasset157 bytes
  • AGENTS.mddoc10,970 bytes
  • CHANGELOG.mddoc1,201,777 bytes
  • CLAUDE.mddoc276 bytes
  • CODE_OF_CONDUCT.mddoc1,964 bytes
  • CONTRIBUTING.mddoc9,282 bytes
  • GOVERNANCE.mddoc2,675 bytes
  • LICENSEasset1,068 bytes
  • MIGRATION.mddoc14,688 bytes
  • README.mddoc48,688 bytes
  • RELEASING.mddoc14,549 bytes
  • ROADMAP.mddoc5,929 bytes
  • SECURITY.mddoc2,708 bytes
  • SKILL.mdcore15,436 bytes
  • SKILL.mdcore15,436 bytes
  • SKILL.mdcore15,436 bytes
  • SKILL.mdcore15,436 bytes
  • action/README.mddoc4,521 bytes
  • action/action.ymlasset2,143 bytes
  • action/ci-check.mjsruns10,743 bytes
  • action/ci-check.test.mjsruns8,761 bytes
  • adapters/CONTRIBUTING.mddoc4,804 bytes
  • adapters/build/babel-plugin/LICENSEasset11,343 bytes
  • adapters/build/babel-plugin/NOTICEasset143 bytes
  • adapters/build/babel-plugin/README.mddoc1,158 bytes
  • adapters/build/babel-plugin/eslint-suppressions.jsonasset130 bytes
  • adapters/build/babel-plugin/package.jsonruns1,725 bytes
  • adapters/build/babel-plugin/src/dom-tags.tsruns5,829 bytes
  • adapters/build/babel-plugin/src/ignore.test.tsruns2,537 bytes
  • adapters/build/babel-plugin/src/ignore.tsruns1,737 bytes
  • adapters/build/babel-plugin/src/index.test.tsruns9,707 bytes
  • adapters/build/babel-plugin/src/index.tsruns3,799 bytes
  • adapters/build/babel-plugin/tsconfig.jsonasset590 bytes
  • adapters/build/next/LICENSEasset11,343 bytes
  • adapters/build/next/NOTICEasset143 bytes
  • adapters/build/next/README.mddoc1,124 bytes
  • adapters/build/next/index.cjsruns28,351 bytes
  • adapters/build/next/index.d.tsruns508 bytes
  • adapters/build/next/index.test.mjsruns26,106 bytes
  • adapters/build/next/loader.cjsruns1,858 bytes
  • adapters/build/next/loader.d.tsruns508 bytes
  • adapters/build/next/loader.test.mjsruns3,130 bytes
  • adapters/build/next/package.jsonruns1,288 bytes
  • adapters/build/vite/LICENSEasset11,343 bytes
  • adapters/build/vite/NOTICEasset143 bytes
  • adapters/build/vite/README.mddoc5,262 bytes
  • adapters/build/vite/eslint-suppressions.jsonasset1,329 bytes
  • adapters/build/vite/package.jsonruns2,278 bytes
  • adapters/build/vite/scripts/build-cjs.mjsruns3,485 bytes
  • adapters/build/vite/src/announce.integration.test.tsruns6,836 bytes
  • adapters/build/vite/src/announce.test.tsruns3,385 bytes
  • adapters/build/vite/src/announce.tsruns3,896 bytes
  • adapters/build/vite/src/build.integration.test.tsruns13,081 bytes
  • adapters/build/vite/src/cjs-deps-resolvable.test.tsruns3,632 bytes
  • adapters/build/vite/src/cjs-loadable.test.tsruns4,885 bytes
  • adapters/build/vite/src/connect-args.testid.test.tsruns577 bytes
  • adapters/build/vite/src/connect-args.tsruns4,512 bytes
  • adapters/build/vite/src/connect-module-stability.test.tsruns6,490 bytes
  • adapters/build/vite/src/connect-url-respects-base.test.tsruns3,268 bytes
  • adapters/build/vite/src/define-warning.integration.test.tsruns7,640 bytes
  • adapters/build/vite/src/disabled-browser-stub.test.tsruns1,283 bytes
  • adapters/build/vite/src/disabled-browser-stub.tsruns4,367 bytes
  • adapters/build/vite/src/discover-port.test.tsruns5,315 bytes
  • adapters/build/vite/src/discover-port.tsruns5,495 bytes
  • adapters/build/vite/src/hot-update-wiring.test.tsruns1,616 bytes
  • adapters/build/vite/src/index.test.tsruns46,511 bytes
  • adapters/build/vite/src/index.tsruns51,219 bytes
  • adapters/build/vite/src/injection-postcondition.tsruns9,417 bytes
  • adapters/build/vite/src/installed.test.tsruns6,012 bytes
  • adapters/build/vite/src/installed.tsruns9,742 bytes
  • adapters/build/vite/src/orphan-modules.test.tsruns1,210 bytes
  • adapters/build/vite/src/plugin-name.tsruns282 bytes
  • adapters/build/vite/src/project-id.test.tsruns9,337 bytes
  • adapters/build/vite/src/project-id.tsruns8,613 bytes
  • adapters/build/vite/src/source-edit-freshness.integration.test.tsruns6,442 bytes
  • adapters/build/vite/src/stamping.tsruns4,748 bytes
  • adapters/build/vite/src/state-home.tsruns1,057 bytes
  • adapters/build/vite/src/svelte-source.test.tsruns6,716 bytes
  • adapters/build/vite/src/svelte-source.tsruns8,652 bytes
  • adapters/build/vite/src/test-files-are-not-stamped.test.tsruns3,129 bytes
  • adapters/build/vite/src/token/ensure-token.test.tsruns5,130 bytes
  • adapters/build/vite/src/token/ensure-token.tsruns2,165 bytes
  • adapters/build/vite/src/token/missing-token.test.tsruns1,660 bytes
  • adapters/build/vite/src/token/missing-token.tsruns1,244 bytes
  • adapters/build/vite/src/turbo-cache.test.tsruns2,621 bytes
  • adapters/build/vite/src/vite-types-assignable.test.tsruns3,813 bytes
  • adapters/build/vite/src/vitest-browser.tsruns1,993 bytes
  • adapters/build/vite/src/vitest-no-inject.test.tsruns3,118 bytes
  • adapters/build/vite/src/watch-ignore.tsruns1,606 bytes
  • adapters/build/vite/tsconfig.jsonasset293 bytes
  • adapters/build/vite/turbo.jsonasset167 bytes
  • adapters/build/vite/vitest.config.tsruns995 bytes
  • adapters/framework/react/LICENSEasset11,343 bytes
  • adapters/framework/react/NOTICEasset143 bytes
  • adapters/framework/react/README.mddoc1,015 bytes
  • adapters/framework/react/eslint-suppressions.jsonasset1,302 bytes
  • adapters/framework/react/package.jsonruns1,967 bytes
  • adapters/framework/react/src/actions-controlled.test.tsruns5,379 bytes
  • adapters/framework/react/src/auto-stores.live.test.tsruns5,888 bytes
  • adapters/framework/react/src/auto-stores.test.tsruns9,971 bytes
  • adapters/framework/react/src/auto-stores.tsruns10,957 bytes
  • adapters/framework/react/src/cdp-reader.test.tsruns5,030 bytes
  • adapters/framework/react/src/cdp-reader.tsruns6,501 bytes
  • adapters/framework/react/src/commit-aggregator.test.tsruns1,674 bytes
  • adapters/framework/react/src/commit-aggregator.tsruns1,181 bytes
  • adapters/framework/react/src/drag-select.test.tsruns5,355 bytes
  • adapters/framework/react/src/error-boundary.test.tsruns1,058 bytes
  • adapters/framework/react/src/error-boundary.tsruns2,044 bytes
  • adapters/framework/react/src/hydration-error.test.tsruns2,029 bytes
  • adapters/framework/react/src/hydration-error.tsruns3,222 bytes
  • adapters/framework/react/src/hydration.test.tsruns798 bytes
  • adapters/framework/react/src/hydration.tsruns1,281 bytes
  • adapters/framework/react/src/index.test.tsruns10,417 bytes
  • adapters/framework/react/src/index.tsruns17,236 bytes
  • adapters/framework/react/src/install-options.test.tsruns5,255 bytes
  • adapters/framework/react/src/instrumentation-gap-guidance.test.tsruns951 bytes
  • adapters/framework/react/src/orphan-modules.test.tsruns1,342 bytes
  • adapters/framework/react/src/relative-to-root.test.tsruns3,388 bytes
  • adapters/framework/react/src/render-meter.test.tsruns2,587 bytes
  • adapters/framework/react/src/render-meter.tsruns8,490 bytes
  • adapters/framework/react/src/source-seam.test.tsruns5,817 bytes
  • adapters/framework/react/src/store.test.tsruns3,149 bytes
  • adapters/framework/react/src/store.tsruns2,330 bytes
  • adapters/framework/react/tsconfig.jsonasset333 bytes
  • adapters/framework/react/vitest.config.tsruns1,697 bytes
  • adapters/lint/eslint/LICENSEasset11,343 bytes
  • adapters/lint/eslint/NOTICEasset143 bytes
  • adapters/lint/eslint/README.mddoc4,075 bytes
  • adapters/lint/eslint/eslint-suppressions.jsonasset288 bytes
  • adapters/lint/eslint/package.jsonruns1,514 bytes
  • adapters/lint/eslint/src/constants.tsruns1,945 bytes
  • adapters/lint/eslint/src/index.tsruns1,344 bytes
  • adapters/lint/eslint/src/no-internal-tags.test.tsruns6,062 bytes
  • adapters/lint/eslint/src/no-internal-tags.tsruns8,979 bytes
  • adapters/lint/eslint/src/no-runaway-comment.test.tsruns1,535 bytes
  • adapters/lint/eslint/src/no-runaway-comment.tsruns1,882 bytes
  • adapters/lint/eslint/src/options.tsruns1,766 bytes
  • adapters/lint/eslint/src/orphan-modules.test.tsruns1,250 bytes
  • adapters/lint/eslint/src/require-signal-on-mutation.test.tsruns7,484 bytes
  • adapters/lint/eslint/src/require-signal-on-mutation.tsruns3,103 bytes
  • adapters/lint/eslint/src/unlinted-dirs.test.tsruns3,720 bytes
  • adapters/lint/eslint/tsconfig.jsonasset192 bytes
  • adapters/lint/eslint/vitest.config.tsruns1,071 bytes
  • adapters/realm/README.mddoc4,377 bytes
  • adapters/realm/browser/LICENSEasset11,343 bytes
  • adapters/realm/browser/NOTICEasset283 bytes
  • adapters/realm/browser/README.mddoc950 bytes
  • adapters/realm/browser/eslint-suppressions.jsonasset14,843 bytes
  • adapters/realm/browser/package.jsonruns2,441 bytes
  • adapters/realm/browser/scripts/bundle-inject.mjsruns2,131 bytes
  • adapters/realm/browser/scripts/embed-heroicons.mjsruns4,896 bytes
  • adapters/realm/browser/src/actions/action-report.canvases.test.tsruns1,063 bytes
  • adapters/realm/browser/src/actions/action-report.tsruns17,991 bytes
  • adapters/realm/browser/src/actions/actions-dom.tsruns25,491 bytes
  • adapters/realm/browser/src/actions/actions-press.tsruns22,833 bytes
  • adapters/realm/browser/src/actions/actions.auto-anchor.test.tsruns10,841 bytes
  • adapters/realm/browser/src/actions/actions.check.test.tsruns9,433 bytes
  • adapters/realm/browser/src/actions/actions.click-input.test.tsruns3,650 bytes
  • adapters/realm/browser/src/actions/actions.click.test.tsruns12,684 bytes
  • adapters/realm/browser/src/actions/actions.component-position.test.tsruns4,883 bytes
  • adapters/realm/browser/src/actions/actions.danger-context.test.tsruns20,332 bytes
  • adapters/realm/browser/src/actions/actions.drag-boundary.test.tsruns4,414 bytes
  • adapters/realm/browser/src/actions/actions.drag-geometry.test.tsruns4,570 bytes
  • adapters/realm/browser/src/actions/actions.drag-target.test.tsruns3,114 bytes
  • adapters/realm/browser/src/actions/actions.effect.test.tsruns23,198 bytes
  • adapters/realm/browser/src/actions/actions.event-view.test.tsruns6,181 bytes
  • adapters/realm/browser/src/actions/actions.fill-autofill.test.tsruns3,135 bytes
  • adapters/realm/browser/src/actions/actions.gestures.test.tsruns7,638 bytes
  • adapters/realm/browser/src/actions/actions.hover-leave.test.tsruns3,305 bytes
  • adapters/realm/browser/src/actions/actions.hud-churn.test.tsruns2,321 bytes
  • adapters/realm/browser/src/actions/actions.interactions.test.tsruns29,598 bytes
  • adapters/realm/browser/src/actions/actions.leaving.test.tsruns2,024 bytes
  • adapters/realm/browser/src/actions/actions.pointer-events.test.tsruns2,672 bytes
  • adapters/realm/browser/src/actions/actions.press-code.test.tsruns4,708 bytes
  • adapters/realm/browser/src/actions/actions.press-defaults.test.tsruns5,041 bytes
  • adapters/realm/browser/src/actions/actions.press-escape-dialog.test.tsruns5,166 bytes
  • adapters/realm/browser/src/actions/actions.press-key.test.tsruns8,109 bytes
  • adapters/realm/browser/src/actions/actions.press-keypress.test.tsruns3,724 bytes
  • adapters/realm/browser/src/actions/actions.press-modifiers.test.tsruns10,899 bytes
  • adapters/realm/browser/src/actions/actions.reach.test.tsruns6,493 bytes
  • adapters/realm/browser/src/actions/actions.scroll-instant.test.tsruns2,247 bytes
  • adapters/realm/browser/src/actions/actions.select-combobox.test.tsruns4,070 bytes
  • adapters/realm/browser/src/actions/actions.settle-bound.test.tsruns3,730 bytes
  • adapters/realm/browser/src/actions/actions.settle-causality.test.tsruns3,917 bytes
  • adapters/realm/browser/src/actions/actions.tsruns42,758 bytes
  • adapters/realm/browser/src/actions/actions.within.test.tsruns1,630 bytes
  • adapters/realm/browser/src/actions/adversarial.check.test.tsruns2,780 bytes
  • adapters/realm/browser/src/actions/appeared-text.test.tsruns2,551 bytes
  • adapters/realm/browser/src/actions/appeared-text.tsruns5,505 bytes
  • adapters/realm/browser/src/actions/check-state.tsruns1,912 bytes
  • adapters/realm/browser/src/actions/click-target.tsruns2,359 bytes
  • adapters/realm/browser/src/actions/danger-context.tsruns7,155 bytes
  • adapters/realm/browser/src/actions/scroll.test.tsruns2,918 bytes
  • adapters/realm/browser/src/actions/scroll.tsruns6,307 bytes
  • adapters/realm/browser/src/actions/select-combobox.tsruns3,781 bytes
  • adapters/realm/browser/src/actions/synthetic/synthetic-input.tsruns1,846 bytes
  • adapters/realm/browser/src/actions/value-input.tsruns5,996 bytes
  • adapters/realm/browser/src/activate.test.tsruns5,400 bytes
  • adapters/realm/browser/src/activate.tsruns3,056 bytes
  • adapters/realm/browser/src/busy.test.tsruns1,741 bytes
  • adapters/realm/browser/src/busy.tsruns2,598 bytes
  • adapters/realm/browser/src/commands/animations-target.test.tsruns5,418 bytes
  • adapters/realm/browser/src/commands/commands.test.tsruns11,410 bytes
  • adapters/realm/browser/src/commands/commands.tsruns22,823 bytes
  • adapters/realm/browser/src/commands/commands.upload-inspect.test.tsruns5,220 bytes
  • adapters/realm/browser/src/commands/inspect-catches-the-ancestor.test.tsruns2,951 bytes
  • adapters/realm/browser/src/commands/inspect-reveals.test.tsruns3,444 bytes
  • adapters/realm/browser/src/commands/truncation-is-visible.test.tsruns2,696 bytes
  • adapters/realm/browser/src/connect-options.tsruns13,030 bytes
  • adapters/realm/browser/src/core-boundary.test.tsruns4,321 bytes
  • adapters/realm/browser/src/directory-reach.test.tsruns5,327 bytes
  • adapters/realm/browser/src/dom/a11y.security.test.tsruns1,586 bytes
  • adapters/realm/browser/src/dom/a11y.test.tsruns42,756 bytes
  • adapters/realm/browser/src/dom/a11y.tsruns18,734 bytes
  • adapters/realm/browser/src/dom/addressing/auto-anchor.test.tsruns2,473 bytes
  • adapters/realm/browser/src/dom/addressing/auto-anchor.tsruns4,896 bytes
  • adapters/realm/browser/src/dom/addressing/coverage-markers.test.tsruns2,493 bytes
  • adapters/realm/browser/src/dom/addressing/coverage-markers.tsruns1,569 bytes
  • adapters/realm/browser/src/dom/addressing/refs.test.tsruns6,422 bytes
  • adapters/realm/browser/src/dom/addressing/refs.tsruns12,240 bytes
  • adapters/realm/browser/src/dom/addressing/source.test.tsruns2,868 bytes
  • adapters/realm/browser/src/dom/addressing/source.tsruns4,188 bytes
  • adapters/realm/browser/src/dom/addressing/testid-attr.tsruns1,045 bytes
  • adapters/realm/browser/src/dom/addressing/testid-attribute.test.tsruns3,736 bytes
  • adapters/realm/browser/src/dom/backface-visibility.test.tsruns5,433 bytes
  • adapters/realm/browser/src/dom/browser.test.tsruns28,502 bytes
  • adapters/realm/browser/src/dom/chart.test.tsruns6,551 bytes
  • adapters/realm/browser/src/dom/chart.tsruns7,843 bytes
  • adapters/realm/browser/src/dom/desktop-capture.test.tsruns9,937 bytes
  • adapters/realm/browser/src/dom/desktop-capture.tsruns7,974 bytes
  • adapters/realm/browser/src/dom/dom-ignore.test.tsruns8,189 bytes
  • adapters/realm/browser/src/dom/dom-ignore.tsruns11,035 bytes
  • adapters/realm/browser/src/dom/in-viewport.test.tsruns6,094 bytes
  • adapters/realm/browser/src/dom/layout-audit.test.tsruns5,240 bytes
  • adapters/realm/browser/src/dom/layout-audit.tsruns10,301 bytes
  • adapters/realm/browser/src/dom/occlusion.test.tsruns8,741 bytes
  • adapters/realm/browser/src/dom/occlusion.tsruns5,815 bytes
  • adapters/realm/browser/src/dom/option-target.test.tsruns6,374 bytes
  • adapters/realm/browser/src/dom/overlay-hiding-page.test.tsruns2,024 bytes
  • adapters/realm/browser/src/dom/paint-context.test.tsruns3,430 bytes
  • adapters/realm/browser/src/dom/paint-context.tsruns7,987 bytes
  • adapters/realm/browser/src/dom/presenter-hatch.test.tsruns6,504 bytes
  • adapters/realm/browser/src/dom/query-finders.tsruns15,370 bytes
  • adapters/realm/browser/src/dom/query.component-role.test.tsruns2,636 bytes
  • adapters/realm/browser/src/dom/query.component-text.test.tsruns2,820 bytes
  • adapters/realm/browser/src/dom/query.component.test.tsruns3,024 bytes
  • adapters/realm/browser/src/dom/query.count.test.tsruns7,908 bytes
  • adapters/realm/browser/src/dom/query.framework-overlay.test.tsruns3,555 bytes
  • adapters/realm/browser/src/dom/query.full-text.test.tsruns4,119 bytes
  • adapters/realm/browser/src/dom/query.hidden-subtrees.test.tsruns3,503 bytes
  • adapters/realm/browser/src/dom/query.image-alt.test.tsruns2,634 bytes
  • adapters/realm/browser/src/dom/query.invisible-format.test.tsruns2,008 bytes
  • adapters/realm/browser/src/dom/query.name-near-miss-spelling.test.tsruns3,078 bytes
  • adapters/realm/browser/src/dom/query.name-near-miss.test.tsruns3,074 bytes
  • adapters/realm/browser/src/dom/query.name-parity.test.tsruns3,502 bytes
  • adapters/realm/browser/src/dom/query.name-roundtrip.test.tsruns5,528 bytes
  • adapters/realm/browser/src/dom/query.nearest-targets.test.tsruns3,808 bytes
  • adapters/realm/browser/src/dom/query.observer.test.tsruns2,852 bytes
  • adapters/realm/browser/src/dom/query.receives-pointer.test.tsruns3,261 bytes
  • adapters/realm/browser/src/dom/query.role-coverage.test.tsruns6,837 bytes
  • adapters/realm/browser/src/dom/query.scope-every-match.test.tsruns2,840 bytes
  • adapters/realm/browser/src/dom/query.scope-root.test.tsruns4,512 bytes
  • adapters/realm/browser/src/dom/query.shown-case.test.tsruns2,545 bytes
  • adapters/realm/browser/src/dom/query.split-phrase.test.tsruns1,461 bytes
  • adapters/realm/browser/src/dom/query.svg-scope.test.tsruns2,901 bytes
  • adapters/realm/browser/src/dom/query.test.tsruns6,580 bytes
  • adapters/realm/browser/src/dom/query.text-beside-child.test.tsruns2,232 bytes
  • adapters/realm/browser/src/dom/query.tsruns38,410 bytes
  • adapters/realm/browser/src/dom/query.unicode.test.tsruns5,316 bytes
  • adapters/realm/browser/src/dom/query.unreadable-text.test.tsruns4,799 bytes
  • adapters/realm/browser/src/dom/query.visible-text-hint.test.tsruns10,968 bytes
  • adapters/realm/browser/src/dom/realm.test.tsruns3,168 bytes
  • adapters/realm/browser/src/dom/realm.tsruns5,280 bytes
  • adapters/realm/browser/src/dom/refs.navigation.test.tsruns7,492 bytes
  • adapters/realm/browser/src/dom/render-page.test.tsruns1,962 bytes
  • adapters/realm/browser/src/dom/render-page.tsruns8,059 bytes
  • adapters/realm/browser/src/dom/scope-roots.tsruns3,023 bytes
  • adapters/realm/browser/src/dom/shadow-registry.test.tsruns7,582 bytes
  • adapters/realm/browser/src/dom/shadow-registry.tsruns9,478 bytes
  • adapters/realm/browser/src/dom/snapshot-hidden-page.test.tsruns6,349 bytes
  • adapters/realm/browser/src/dom/snapshot-ids.test.tsruns3,385 bytes
  • adapters/realm/browser/src/dom/snapshot-own-hud.test.tsruns2,484 bytes
  • adapters/realm/browser/src/dom/snapshot-own-text.test.tsruns5,699 bytes
  • adapters/realm/browser/src/dom/snapshot.dead-root.test.tsruns2,945 bytes
  • adapters/realm/browser/src/dom/snapshot.overlay-stamped-dialog.test.tsruns1,523 bytes
  • adapters/realm/browser/src/dom/snapshot.pierce.test.tsruns2,265 bytes
  • adapters/realm/browser/src/dom/snapshot.scope-input.test.tsruns1,983 bytes
  • adapters/realm/browser/src/dom/snapshot.tsruns33,554 bytes
  • adapters/realm/browser/src/dom/snapshot.unread.test.tsruns3,061 bytes
  • adapters/realm/browser/src/dom/source.stamps.test.tsruns2,295 bytes
  • adapters/realm/browser/src/dom/stable-selector.tsruns1,356 bytes
  • adapters/realm/browser/src/dom/text-match.tsruns7,930 bytes
  • adapters/realm/browser/src/dom/theme.test.tsruns6,361 bytes
  • adapters/realm/browser/src/dom/theme.tsruns9,081 bytes
  • adapters/realm/browser/src/dom/virtualized.test.tsruns6,787 bytes
  • adapters/realm/browser/src/dom/virtualized.tsruns4,105 bytes
  • adapters/realm/browser/src/dom/visibility-override.test.tsruns2,107 bytes
  • adapters/realm/browser/src/dom/visibility.tsruns24,920 bytes
  • adapters/realm/browser/src/dom/zero-size-visible.test.tsruns1,647 bytes
  • adapters/realm/browser/src/edit-epoch.test.tsruns4,891 bytes
  • adapters/realm/browser/src/edit-epoch.tsruns5,787 bytes
  • adapters/realm/browser/src/first-load-size.test.tsruns43,702 bytes
  • adapters/realm/browser/src/index.tsruns4,149 bytes
  • adapters/realm/browser/src/observers/animation.test.tsruns3,071 bytes
  • adapters/realm/browser/src/observers/animation.tsruns1,674 bytes
  • adapters/realm/browser/src/observers/blind-spots.test.tsruns11,251 bytes
  • adapters/realm/browser/src/observers/blind-spots.tsruns6,571 bytes
  • adapters/realm/browser/src/observers/canvas.test.tsruns3,661 bytes
  • adapters/realm/browser/src/observers/canvas.tsruns4,520 bytes
  • adapters/realm/browser/src/observers/console.test.tsruns9,839 bytes
  • adapters/realm/browser/src/observers/console.tsruns9,326 bytes
  • adapters/realm/browser/src/observers/context-open.test.tsruns2,362 bytes
  • adapters/realm/browser/src/observers/context-open.tsruns2,020 bytes
  • adapters/realm/browser/src/observers/departure.test.tsruns11,105 bytes
  • adapters/realm/browser/src/observers/departure.tsruns9,213 bytes
  • adapters/realm/browser/src/observers/dialogs.test.tsruns4,636 bytes
  • adapters/realm/browser/src/observers/dialogs.tsruns4,693 bytes
  • adapters/realm/browser/src/observers/dom.mount.test.tsruns7,191 bytes
  • adapters/realm/browser/src/observers/dom.oldvalue.test.tsruns1,639 bytes
  • adapters/realm/browser/src/observers/dom.own-hud.test.tsruns2,906 bytes
  • adapters/realm/browser/src/observers/dom.secret.test.tsruns2,476 bytes
  • adapters/realm/browser/src/observers/dom.text.test.tsruns5,845 bytes
  • adapters/realm/browser/src/observers/dom.truncation.test.tsruns1,793 bytes
  • adapters/realm/browser/src/observers/dom.tsruns15,899 bytes
  • adapters/realm/browser/src/observers/download.test.tsruns5,752 bytes
  • adapters/realm/browser/src/observers/download.tsruns7,434 bytes
  • adapters/realm/browser/src/observers/error-repeats.test.tsruns5,159 bytes
  • adapters/realm/browser/src/observers/error-repeats.tsruns4,962 bytes
  • adapters/realm/browser/src/observers/field-settled.test.tsruns5,407 bytes
  • adapters/realm/browser/src/observers/field.test.tsruns8,089 bytes
  • adapters/realm/browser/src/observers/field.tsruns11,691 bytes
  • adapters/realm/browser/src/observers/focus.test.tsruns2,313 bytes
  • adapters/realm/browser/src/observers/focus.tsruns1,929 bytes
  • adapters/realm/browser/src/observers/foreign-wrapper-survives.test.tsruns2,845 bytes
  • adapters/realm/browser/src/observers/frames.test.tsruns3,271 bytes
  • adapters/realm/browser/src/observers/frames.tsruns2,883 bytes
  • adapters/realm/browser/src/observers/health.test.tsruns10,567 bytes
  • adapters/realm/browser/src/observers/health.tsruns8,702 bytes
  • adapters/realm/browser/src/observers/install-all.test.tsruns1,621 bytes
  • adapters/realm/browser/src/observers/install-all.tsruns6,535 bytes
  • adapters/realm/browser/src/observers/ipc.self-observation.test.tsruns5,063 bytes
  • adapters/realm/browser/src/observers/ipc.test.tsruns15,598 bytes
  • adapters/realm/browser/src/observers/ipc.tsruns10,981 bytes
  • adapters/realm/browser/src/observers/media.test.tsruns1,651 bytes
  • adapters/realm/browser/src/observers/media.tsruns1,685 bytes
  • adapters/realm/browser/src/observers/navigation.test.tsruns6,116 bytes
  • adapters/realm/browser/src/observers/navigation.tsruns4,089 bytes
  • adapters/realm/browser/src/observers/net-detail/network-body-cap.test.tsruns4,929 bytes
  • adapters/realm/browser/src/observers/net-detail/network-body-redaction.test.tsruns1,542 bytes
  • adapters/realm/browser/src/observers/net-detail/network-body.tsruns14,640 bytes
  • adapters/realm/browser/src/observers/net-detail/network-event-stream.tsruns1,949 bytes
  • adapters/realm/browser/src/observers/net-detail/network-frames.tsruns2,060 bytes
  • adapters/realm/browser/src/observers/net-detail/network-redact.tsruns468 bytes
  • adapters/realm/browser/src/observers/net-detail/network-response-body.test.tsruns11,729 bytes
  • adapters/realm/browser/src/observers/net-detail/network-response-body.tsruns3,897 bytes
  • adapters/realm/browser/src/observers/net-detail/resource-timing.tsruns4,803 bytes
  • adapters/realm/browser/src/observers/network-error-bodies.test.tsruns5,135 bytes
  • adapters/realm/browser/src/observers/network-redact.presigned.test.tsruns2,431 bytes
  • adapters/realm/browser/src/observers/network-stream.tsruns4,531 bytes
  • adapters/realm/browser/src/observers/network.body-reason.test.tsruns7,330 bytes
  • adapters/realm/browser/src/observers/network.initiator-frame.test.tsruns3,044 bytes
  • adapters/realm/browser/src/observers/network.streaming.test.tsruns17,342 bytes
  • adapters/realm/browser/src/observers/network.test.tsruns54,967 bytes
  • adapters/realm/browser/src/observers/network.tsruns42,871 bytes
  • adapters/realm/browser/src/observers/network.wrapper-blindspot.test.tsruns7,280 bytes
  • adapters/realm/browser/src/observers/observation-never-throws.test.tsruns8,707 bytes
  • adapters/realm/browser/src/observers/perf.test.tsruns10,420 bytes
  • adapters/realm/browser/src/observers/perf.tsruns6,888 bytes
  • adapters/realm/browser/src/observers/route.test.tsruns7,433 bytes
  • adapters/realm/browser/src/observers/route.tsruns5,383 bytes
  • adapters/realm/browser/src/observers/scroll.test.tsruns4,006 bytes
  • adapters/realm/browser/src/observers/scroll.tsruns3,086 bytes
  • adapters/realm/browser/src/observers/sdk-failure.test.tsruns4,064 bytes
  • adapters/realm/browser/src/observers/sdk-failure.tsruns2,979 bytes
  • adapters/realm/browser/src/observers/state.test.tsruns13,037 bytes
  • adapters/realm/browser/src/observers/state.tsruns9,137 bytes
  • adapters/realm/browser/src/observers/storage.noop-write.test.tsruns2,359 bytes
  • adapters/realm/browser/src/observers/storage.test.tsruns5,635 bytes
  • adapters/realm/browser/src/observers/storage.tsruns8,702 bytes
  • adapters/realm/browser/src/observers/storage.write.test.tsruns4,197 bytes
  • adapters/realm/browser/src/observers/types.tsruns1,474 bytes
  • adapters/realm/browser/src/orphan-modules.test.tsruns1,734 bytes
  • adapters/realm/browser/src/patching/capture-method.tsruns1,978 bytes
  • adapters/realm/browser/src/presenter/carousel/carousel.test.tsruns7,263 bytes
  • adapters/realm/browser/src/presenter/carousel/carousel.tsruns9,804 bytes
  • adapters/realm/browser/src/presenter/carousel/panel-slides.test.tsruns4,485 bytes
  • adapters/realm/browser/src/presenter/carousel/panel-slides.tsruns3,837 bytes
  • adapters/realm/browser/src/presenter/carousel/talk-card.test.tsruns1,503 bytes
  • adapters/realm/browser/src/presenter/carousel/talk-card.tsruns1,828 bytes
  • adapters/realm/browser/src/presenter/chrome/layers.tsruns1,251 bytes
  • adapters/realm/browser/src/presenter/chrome/log-kinds.tsruns1,354 bytes
  • adapters/realm/browser/src/presenter/chrome/log-memory.test.tsruns2,351 bytes
  • adapters/realm/browser/src/presenter/chrome/log-memory.tsruns2,537 bytes
  • adapters/realm/browser/src/presenter/chrome/overlay.tsruns1,014 bytes
  • adapters/realm/browser/src/presenter/chrome/presenter-brand.tsruns2,480 bytes
  • adapters/realm/browser/src/presenter/chrome/presenter-effects.tsruns1,676 bytes
  • adapters/realm/browser/src/presenter/chrome/presenter-hud-chrome.tsruns3,306 bytes
  • adapters/realm/browser/src/presenter/chrome/presenter-log-rows.test.tsruns3,260 bytes
  • adapters/realm/browser/src/presenter/chrome/presenter-log.tsruns18,927 bytes
  • adapters/realm/browser/src/presenter/chrome/presenter-morph.test.tsruns1,382 bytes
  • adapters/realm/browser/src/presenter/chrome/presenter-morph.tsruns1,815 bytes
  • adapters/realm/browser/src/presenter/chrome/presenter-report-copy.tsruns9,521 bytes
  • adapters/realm/browser/src/presenter/chrome/presenter-safe-html.tsruns1,701 bytes
  • adapters/realm/browser/src/presenter/chrome/presenter-tally.test.tsruns3,971 bytes
  • adapters/realm/browser/src/presenter/chrome/presenter-tally.tsruns2,426 bytes
  • adapters/realm/browser/src/presenter/chrome/presenter-verbs.tsruns1,198 bytes
  • adapters/realm/browser/src/presenter/escape-belongs-to-the-app.test.tsruns7,282 bytes
  • adapters/realm/browser/src/presenter/hud-buttons-are-clickable.test.tsruns1,392 bytes
  • adapters/realm/browser/src/presenter/hud-hostile.test.tsruns9,051 bytes
  • adapters/realm/browser/src/presenter/hud-panel-role.test.tsruns1,276 bytes
  • adapters/realm/browser/src/presenter/hud-pointer-pass-through.test.tsruns3,571 bytes
  • adapters/realm/browser/src/presenter/hud-telemetry-pages.test.tsruns4,547 bytes
  • adapters/realm/browser/src/presenter/hud-telemetry.test.tsruns7,387 bytes
  • adapters/realm/browser/src/presenter/hud-telemetry.tsruns7,362 bytes
  • adapters/realm/browser/src/presenter/icons/presenter-heroicons-data.tsruns8,189 bytes
  • adapters/realm/browser/src/presenter/icons/presenter-icons.test.tsruns1,217 bytes
  • adapters/realm/browser/src/presenter/icons/presenter-icons.tsruns4,442 bytes
  • adapters/realm/browser/src/presenter/presenter-account-menu.test.tsruns13,236 bytes
  • adapters/realm/browser/src/presenter/presenter-account-push-before-mount.test.tsruns4,514 bytes
  • adapters/realm/browser/src/presenter/presenter-account-styles.test.tsruns3,295 bytes
  • adapters/realm/browser/src/presenter/presenter-account-styles.tsruns6,825 bytes
  • adapters/realm/browser/src/presenter/presenter-account.test.tsruns5,793 bytes
  • adapters/realm/browser/src/presenter/presenter-account.tsruns23,173 bytes
  • adapters/realm/browser/src/presenter/presenter-agent-link.test.tsruns2,131 bytes
  • adapters/realm/browser/src/presenter/presenter-agent-link.tsruns4,262 bytes
  • adapters/realm/browser/src/presenter/presenter-chat-default.test.tsruns2,771 bytes
  • adapters/realm/browser/src/presenter/presenter-chat-views.test.tsruns32,568 bytes
  • adapters/realm/browser/src/presenter/presenter-chat-views.tsruns42,459 bytes
  • adapters/realm/browser/src/presenter/presenter-config.tsruns15,119 bytes
  • adapters/realm/browser/src/presenter/presenter-controls.test.tsruns18,666 bytes
  • adapters/realm/browser/src/presenter/presenter-controls.tsruns31,588 bytes
  • adapters/realm/browser/src/presenter/presenter-dead-exports.test.tsruns1,883 bytes
  • adapters/realm/browser/src/presenter/presenter-defect-link.test.tsruns4,175 bytes
  • adapters/realm/browser/src/presenter/presenter-design-tokens.tsruns1,486 bytes
  • adapters/realm/browser/src/presenter/presenter-dock-layout.test.tsruns6,370 bytes
  • adapters/realm/browser/src/presenter/presenter-dock-layout.tsruns7,617 bytes
  • adapters/realm/browser/src/presenter/presenter-drag.test.tsruns9,102 bytes
  • adapters/realm/browser/src/presenter/presenter-drag.tsruns6,014 bytes
  • adapters/realm/browser/src/presenter/presenter-first-load.test.tsruns5,114 bytes
  • adapters/realm/browser/src/presenter/presenter-frame.tsruns19,335 bytes
  • adapters/realm/browser/src/presenter/presenter-glow.tsruns5,385 bytes
  • adapters/realm/browser/src/presenter/presenter-harness-row.tsruns16,594 bytes
  • adapters/realm/browser/src/presenter/presenter-harness-snapshot.test.tsruns3,510 bytes
  • adapters/realm/browser/src/presenter/presenter-hud-position.tsruns3,186 bytes
  • adapters/realm/browser/src/presenter/presenter-idle-passthrough.test.tsruns1,775 bytes
  • adapters/realm/browser/src/presenter/presenter-impact-dot.test.tsruns4,993 bytes
  • adapters/realm/browser/src/presenter/presenter-lifecycle.test.tsruns16,741 bytes
  • adapters/realm/browser/src/presenter/presenter-narrow-viewport.test.tsruns2,893 bytes
  • adapters/realm/browser/src/presenter/presenter-nav-and-plan.test.tsruns2,677 bytes
  • adapters/realm/browser/src/presenter/presenter-no-composer.test.tsruns5,593 bytes
  • adapters/realm/browser/src/presenter/presenter-pace.test.tsruns2,366 bytes
  • adapters/realm/browser/src/presenter/presenter-personas.tsruns4,939 bytes
  • adapters/realm/browser/src/presenter/presenter-plan.test.tsruns3,475 bytes
  • adapters/realm/browser/src/presenter/presenter-plan.tsruns10,969 bytes
  • adapters/realm/browser/src/presenter/presenter-report-account.test.tsruns3,016 bytes
  • adapters/realm/browser/src/presenter/presenter-report-styles.tsruns11,654 bytes
  • adapters/realm/browser/src/presenter/presenter-report.test.tsruns29,558 bytes
  • adapters/realm/browser/src/presenter/presenter-report.tsruns24,890 bytes
  • adapters/realm/browser/src/presenter/presenter-run-state.tsruns2,188 bytes
  • adapters/realm/browser/src/presenter/presenter-settings-account.test.tsruns2,846 bytes
  • adapters/realm/browser/src/presenter/presenter-settings-styles.tsruns13,258 bytes
  • adapters/realm/browser/src/presenter/presenter-settings.test.tsruns16,611 bytes
  • adapters/realm/browser/src/presenter/presenter-settings.tsruns36,070 bytes
  • adapters/realm/browser/src/presenter/presenter-shell-minimised.test.tsruns4,777 bytes
  • adapters/realm/browser/src/presenter/presenter-shell-styles.tsruns29,960 bytes
  • adapters/realm/browser/src/presenter/presenter-shell.test.tsruns39,994 bytes
  • adapters/realm/browser/src/presenter/presenter-shell.tsruns31,795 bytes
  • adapters/realm/browser/src/presenter/presenter-styles.tsruns5,333 bytes
  • adapters/realm/browser/src/presenter/presenter-tooltip-stacking.test.tsruns3,240 bytes
  • adapters/realm/browser/src/presenter/presenter-unreachable.test.tsruns2,933 bytes
  • adapters/realm/browser/src/presenter/presenter-workspace.test.tsruns3,399 bytes
  • adapters/realm/browser/src/presenter/presenter-workspace.tsruns12,511 bytes
  • adapters/realm/browser/src/presenter/presenter.test-helpers.tsruns2,146 bytes
  • adapters/realm/browser/src/presenter/presenter.test.tsruns21,918 bytes
  • adapters/realm/browser/src/presenter/presenter.tsruns42,564 bytes
  • adapters/realm/browser/src/presenter/reticle-presenter.test.tsruns12,684 bytes
  • adapters/realm/browser/src/presenter/settings-are-wired.test.tsruns3,337 bytes
  • adapters/realm/browser/src/presenter/toolbar-even-spacing.test.tsruns1,045 bytes
  • adapters/realm/browser/src/presenter/tour/tour-automation.test.tsruns2,509 bytes
  • adapters/realm/browser/src/presenter/tour/tour-never-blocks-a-drive.test.tsruns5,887 bytes
  • adapters/realm/browser/src/presenter/tour/tour-scrim-never-eats-the-app.test.tsruns4,217 bytes
  • adapters/realm/browser/src/presenter/tour/tour-view.tsruns18,455 bytes
  • adapters/realm/browser/src/presenter/tour/tour.test.tsruns32,278 bytes
  • adapters/realm/browser/src/presenter/tour/tour.tsruns22,207 bytes
  • adapters/realm/browser/src/recorder/recorder-styles.tsruns1,250 bytes
  • adapters/realm/browser/src/recorder/recorder.test.tsruns16,545 bytes
  • adapters/realm/browser/src/recorder/recorder.tsruns21,674 bytes
  • adapters/realm/browser/src/recorder/reticle-recorder.test.tsruns1,711 bytes
  • adapters/realm/browser/src/registry/adapter-guide.test.tsruns2,459 bytes
  • adapters/realm/browser/src/registry/auto-testids.test.tsruns1,144 bytes
  • adapters/realm/browser/src/registry/auto-testids.tsruns1,938 bytes
  • adapters/realm/browser/src/registry/capabilities.test.tsruns6,104 bytes
  • adapters/realm/browser/src/registry/capabilities.tsruns6,189 bytes
  • adapters/realm/browser/src/registry/commit-and-signal.test.tsruns3,065 bytes
  • adapters/realm/browser/src/registry/commit-and-signal.tsruns728 bytes
  • adapters/realm/browser/src/registry/declared-channels.test.tsruns2,828 bytes
  • adapters/realm/browser/src/registry/declared-channels.tsruns2,999 bytes
  • adapters/realm/browser/src/registry/declared-platform.test.tsruns4,808 bytes
  • adapters/realm/browser/src/registry/declared-platform.tsruns4,106 bytes
  • adapters/realm/browser/src/registry/domains.test.tsruns3,449 bytes
  • adapters/realm/browser/src/registry/domains.tsruns1,092 bytes
  • adapters/realm/browser/src/registry/emitter.test.tsruns3,001 bytes
  • adapters/realm/browser/src/registry/emitter.tsruns2,226 bytes
  • adapters/realm/browser/src/registry/store-adapters.live.test.tsruns12,384 bytes
  • adapters/realm/browser/src/registry/store-adapters.test.tsruns20,153 bytes
  • adapters/realm/browser/src/registry/store-adapters.tsruns23,880 bytes
  • adapters/realm/browser/src/registry/stores.test.tsruns8,043 bytes
  • adapters/realm/browser/src/registry/stores.tsruns10,531 bytes
  • adapters/realm/browser/src/registry/stores/adapters.test.tsruns3,661 bytes
  • adapters/realm/browser/src/registry/stores/adapters.tsruns2,618 bytes
  • adapters/realm/browser/src/reticle-presenter-helpers.test.tsruns3,304 bytes
  • adapters/realm/browser/src/reticle-presenter-helpers.tsruns4,169 bytes
  • adapters/realm/browser/src/reticle-singleton.tsruns720 bytes
  • adapters/realm/browser/src/reticle-url-params.test.tsruns3,659 bytes
  • adapters/realm/browser/src/reticle.build-event.test.tsruns918 bytes
  • adapters/realm/browser/src/reticle.command-mode-classifier.test.tsruns1,004 bytes
  • adapters/realm/browser/src/reticle.document-identity.test.tsruns1,733 bytes
  • adapters/realm/browser/src/reticle.edit-epoch.test.tsruns1,525 bytes
  • adapters/realm/browser/src/reticle.late-project-id.test.tsruns2,450 bytes
  • adapters/realm/browser/src/reticle.lease-token.test.tsruns3,285 bytes
  • adapters/realm/browser/src/reticle.session.test.tsruns7,195 bytes
  • adapters/realm/browser/src/reticle.tsruns44,170 bytes
  • adapters/realm/browser/src/review/agent-drives-while-annotating.test.tsruns2,373 bytes
  • adapters/realm/browser/src/review/annotator-styles.tsruns5,883 bytes
  • adapters/realm/browser/src/review/annotator.test.tsruns27,764 bytes
  • adapters/realm/browser/src/review/annotator.tsruns26,763 bytes
  • adapters/realm/browser/src/review/mark-anchor.test.tsruns2,718 bytes
  • adapters/realm/browser/src/review/mark-anchor.tsruns2,800 bytes
  • adapters/realm/browser/src/review/marks-for-agent.test.tsruns1,549 bytes
  • adapters/realm/browser/src/review/marks-for-agent.tsruns1,272 bytes
  • adapters/realm/browser/src/security/lossy-conformance.test.tsruns4,812 bytes
  • adapters/realm/browser/src/security/page-location.test.tsruns995 bytes
  • adapters/realm/browser/src/security/page-location.tsruns775 bytes
  • adapters/realm/browser/src/security/redaction-config.test.tsruns3,454 bytes
  • adapters/realm/browser/src/security/serialization.test.tsruns20,893 bytes
  • adapters/realm/browser/src/security/serialization.tsruns15,580 bytes
  • adapters/realm/browser/src/session-continuity.test.tsruns5,106 bytes
  • adapters/realm/browser/src/session-continuity.tsruns2,764 bytes
  • adapters/realm/browser/src/storage-keys.tsruns2,274 bytes
  • adapters/realm/browser/src/test-setup.test.tsruns662 bytes
  • adapters/realm/browser/src/timers/clock.safety.test.tsruns4,267 bytes
  • adapters/realm/browser/src/timers/clock.test.tsruns9,176 bytes
  • adapters/realm/browser/src/timers/clock.tsruns12,956 bytes
  • adapters/realm/browser/src/timers/console/native-console.test.tsruns2,505 bytes
  • adapters/realm/browser/src/timers/console/native-console.tsruns579 bytes
  • adapters/realm/browser/src/timers/native-timers.bound.test.tsruns1,463 bytes
  • adapters/realm/browser/src/timers/native-timers.interval.test.tsruns863 bytes
  • adapters/realm/browser/src/timers/native/native-timers.tsruns4,690 bytes
  • adapters/realm/browser/src/transport/bridge-url.tsruns2,598 bytes
  • adapters/realm/browser/src/transport/transport.backoff.test.tsruns5,754 bytes
  • adapters/realm/browser/src/transport/transport.bridge-loss.test.tsruns5,118 bytes
  • adapters/realm/browser/src/transport/transport.churn-eviction.test.tsruns5,841 bytes
  • adapters/realm/browser/src/transport/transport.close-codes.test.tsruns5,599 bytes
  • adapters/realm/browser/src/transport/transport.overflow-marker.test.tsruns7,931 bytes
  • adapters/realm/browser/src/transport/transport.reconnect-on-focus.test.tsruns3,623 bytes
  • adapters/realm/browser/src/transport/transport.security.test.tsruns4,892 bytes
  • adapters/realm/browser/src/transport/transport.silent-drop.test.tsruns4,185 bytes
  • adapters/realm/browser/src/transport/transport.tsruns21,120 bytes
  • adapters/realm/browser/src/transport/transport.unreachable.test.tsruns4,921 bytes
  • adapters/realm/browser/src/transport/unreachable-message.test.tsruns4,601 bytes
  • adapters/realm/browser/src/transport/unreachable-message.tsruns1,860 bytes
  • adapters/realm/browser/src/util/captured-method.tsruns2,748 bytes
  • adapters/realm/browser/tsconfig.jsonasset776 bytes
  • adapters/realm/browser/vitest.config.tsruns4,316 bytes
  • adapters/realm/browser/vitest.setup.tsruns1,057 bytes
  • adapters/realm/cli/LICENSEasset11,343 bytes
  • adapters/realm/cli/NOTICEasset283 bytes
  • adapters/realm/cli/bin/drive.mjsruns8,198 bytes
  • adapters/realm/cli/eslint-suppressions.jsonasset678 bytes
  • adapters/realm/cli/package.jsonruns2,631 bytes
  • adapters/realm/cli/src/artifact.test.tsruns8,050 bytes
  • adapters/realm/cli/src/channels.tsruns2,607 bytes
  • adapters/realm/cli/src/cli-realm.test.tsruns6,921 bytes
  • adapters/realm/cli/src/cli-realm.tsruns31,193 bytes
  • adapters/realm/cli/src/detect.test.tsruns6,455 bytes
  • adapters/realm/cli/src/detect.tsruns8,003 bytes
  • adapters/realm/cli/src/hud/frame.test.tsruns4,025 bytes
  • adapters/realm/cli/src/hud/frame.tsruns5,164 bytes
  • adapters/realm/cli/src/hud/live.tsruns4,817 bytes
  • adapters/realm/cli/src/index.tsruns1,696 bytes
  • adapters/realm/cli/src/manifest.tsruns2,974 bytes
  • adapters/realm/cli/src/net/proxy.test.tsruns5,515 bytes
  • adapters/realm/cli/src/net/proxy.tsruns5,413 bytes
  • adapters/realm/cli/src/process/node-supervisor.test.tsruns10,185 bytes
  • adapters/realm/cli/src/process/node-supervisor.tsruns8,898 bytes
  • adapters/realm/cli/src/process/supervisor.tsruns4,881 bytes
  • adapters/realm/cli/src/report.test.tsruns3,826 bytes
  • adapters/realm/cli/src/report.tsruns4,882 bytes
  • adapters/realm/cli/src/run.test.tsruns4,937 bytes
  • adapters/realm/cli/src/run.tsruns4,987 bytes
  • adapters/realm/cli/src/state-contract.test.tsruns6,073 bytes
  • adapters/realm/cli/src/state-contract.tsruns3,294 bytes
  • adapters/realm/cli/src/workspace/port.tsruns2,124 bytes
  • adapters/realm/cli/src/workspace/snapshot.test.tsruns7,943 bytes
  • adapters/realm/cli/src/workspace/snapshot.tsruns7,768 bytes
  • adapters/realm/cli/tsconfig.jsonasset252 bytes
  • adapters/realm/electron/LICENSEasset11,343 bytes
  • adapters/realm/electron/NOTICEasset143 bytes
  • adapters/realm/electron/README.mddoc3,221 bytes
  • adapters/realm/electron/main.cjsruns10,323 bytes
  • adapters/realm/electron/main.d.ctsruns1,873 bytes
  • adapters/realm/electron/package.jsonruns1,303 bytes
  • adapters/realm/electron/preload.cjsruns11,670 bytes
  • adapters/realm/electron/preload.d.ctsruns1,073 bytes
  • adapters/realm/electron/preload.test.mjsruns14,149 bytes
  • adapters/realm/tauri/Cargo.lockasset105,099 bytes
  • adapters/realm/tauri/Cargo.tomlasset2,100 bytes
  • adapters/realm/tauri/README.mddoc3,915 bytes
  • adapters/realm/tauri/osv-scanner.tomlasset1,535 bytes
  • adapters/realm/tauri/src/capture.rsasset12,196 bytes
  • adapters/realm/tauri/src/capture/linux.rsasset1,841 bytes
  • adapters/realm/tauri/src/capture/macos.rsasset2,381 bytes
  • adapters/realm/tauri/src/capture/windows.rsasset3,543 bytes
  • adapters/realm/tauri/src/lib.rsasset6,221 bytes
  • apps/README.mddoc4,609 bytes
  • apps/api/README.mddoc776 bytes
  • apps/api/package.jsonruns381 bytes
  • apps/api/server.mjsruns16,904 bytes
  • apps/atlas/DEMO.mddoc2,422 bytes
  • apps/atlas/Dockerfileruns1,637 bytes
  • apps/atlas/Dockerfile.dockerignoreasset366 bytes
  • apps/atlas/README.mddoc4,328 bytes
  • apps/atlas/index.htmlasset314 bytes
  • apps/atlas/package.jsonruns955 bytes
  • apps/atlas/public/frames/sla.htmlasset716 bytes
  • apps/atlas/server/mock-api.tsruns12,324 bytes
  • apps/atlas/server/serve.tsruns2,399 bytes
  • apps/atlas/src/EmbeddedPanels.tsxruns4,861 bytes
  • apps/atlas/src/ShipmentsTable.tsxruns8,566 bytes
  • apps/atlas/src/WriteStorm.tsxruns2,733 bytes
  • apps/atlas/src/custom-elements.d.tsruns350 bytes
  • apps/atlas/src/main.tsxruns1,133 bytes
  • apps/atlas/src/store.tsruns3,046 bytes
  • apps/atlas/tsconfig.jsonasset340 bytes
  • apps/atlas/vite.config.tsruns1,388 bytes
  • apps/bench-app/README.mddoc855 bytes
  • apps/bench-app/eslint-suppressions.jsonasset1,848 bytes
  • apps/bench-app/index.htmlasset361 bytes
  • apps/bench-app/package.jsonruns917 bytes
  • apps/bench-app/public/panel.htmlasset1,136 bytes
  • apps/bench-app/src/App.tsxruns2,587 bytes
  • apps/bench-app/src/components/AreaChart.tsxruns3,731 bytes
  • apps/bench-app/src/components/BuildLogStream.tsxruns3,783 bytes
  • apps/bench-app/src/components/CommandPalette.tsxruns4,260 bytes
  • apps/bench-app/src/components/DeepPanels.tsxruns3,231 bytes
  • apps/bench-app/src/components/DeployDrawer.tsxruns3,504 bytes
  • apps/bench-app/src/components/DeployTable.tsxruns6,408 bytes
  • apps/bench-app/src/components/Login.tsxruns2,979 bytes
  • apps/bench-app/src/components/NewDeployModal.tsxruns3,172 bytes
  • apps/bench-app/src/components/QueryPanel.tsxruns2,968 bytes
  • apps/bench-app/src/components/Sidebar.tsxruns3,390 bytes
  • apps/bench-app/src/components/TimingPanel.tsxruns4,968 bytes
  • apps/bench-app/src/components/Toasts.tsxruns1,780 bytes
  • apps/bench-app/src/components/Topbar.tsxruns2,600 bytes
  • apps/bench-app/src/components/icons.tsxruns2,645 bytes
  • apps/bench-app/src/components/primitives.tsxruns2,836 bytes
  • apps/bench-app/src/data/seed.tsruns4,919 bytes
  • apps/bench-app/src/lib/api.tsruns2,548 bytes
  • apps/bench-app/src/lib/enterprise-config.tsruns2,424 bytes
  • apps/bench-app/src/lib/fixture-views.tsruns735 bytes
  • apps/bench-app/src/lib/persisted-session.tsruns2,714 bytes
  • apps/bench-app/src/lib/query-client.tsruns974 bytes
  • apps/bench-app/src/lib/reticle-bridge.tsruns1,331 bytes
  • apps/bench-app/src/main.tsxruns2,576 bytes
  • apps/bench-app/src/reticle-ambient.tsruns6,904 bytes
  • apps/bench-app/src/reticle-bug-injector.tsruns49,206 bytes
  • apps/bench-app/src/reticle-dev.tsruns5,174 bytes
  • apps/bench-app/src/reticle-opaque.tsruns3,108 bytes
  • apps/bench-app/src/reticle-regress.tsruns4,812 bytes
  • apps/bench-app/src/reticle-render-setup.tsruns612 bytes
  • apps/bench-app/src/store/store.tsruns11,812 bytes
  • apps/bench-app/src/styles.cssasset18,265 bytes
  • apps/bench-app/src/views/AckPairs.tsxruns2,828 bytes
  • apps/bench-app/src/views/AwkwardControls.tsxruns3,860 bytes
  • apps/bench-app/src/views/ClaimPairs.tsxruns3,961 bytes
  • apps/bench-app/src/views/Compose.tsxruns4,399 bytes
  • apps/bench-app/src/views/Deployments.tsxruns4,121 bytes
  • apps/bench-app/src/views/Diagnostics.tsxruns5,860 bytes
  • apps/bench-app/src/views/Enterprise.tsxruns6,957 bytes
  • apps/bench-app/src/views/ExpiringAuth.tsxruns3,075 bytes
  • apps/bench-app/src/views/Hostile.tsxruns3,235 bytes
  • apps/bench-app/src/views/Overview.tsxruns2,896 bytes
  • apps/bench-app/src/views/RulePairs.tsxruns9,398 bytes
  • apps/bench-app/src/views/SavedItems.tsxruns6,255 bytes
  • apps/bench-app/src/views/StaleRace.tsxruns3,009 bytes
  • apps/bench-app/src/vite-env.d.tsruns449 bytes
  • apps/bench-app/tsconfig.jsonasset373 bytes
  • apps/bench-app/vite.config.tsruns2,751 bytes
  • apps/cli-smoke/README.mddoc1,678 bytes
  • apps/cli-smoke/smoke.mjsruns4,306 bytes
  • apps/e2e/README.mddoc1,513 bytes
  • apps/e2e/await-free-ports.mjsruns2,249 bytes
  • apps/e2e/client-compat.mjsruns9,161 bytes
  • apps/e2e/desktop-harness.mjsruns13,638 bytes
  • apps/e2e/fault-proxy.mjsruns7,382 bytes
  • apps/e2e/fixtures/upload-sample.csvasset30 bytes
  • apps/e2e/gate-harness.mjsruns18,666 bytes
  • apps/e2e/harness-rules.mddoc5,494 bytes
  • apps/e2e/install-baseline.jsonasset4,787 bytes
  • apps/e2e/install-control.mjsruns4,230 bytes
  • apps/e2e/install-control.test.mjsruns5,887 bytes
  • apps/e2e/install-gate.mjsruns92,828 bytes
  • apps/e2e/install-packages.mjsruns5,612 bytes
  • apps/e2e/install-packages.test.mjsruns6,321 bytes
  • apps/e2e/install-sandbox.mjsruns13,041 bytes
  • apps/e2e/matrix.mjsruns10,275 bytes
  • apps/e2e/multi/multi-agent-sim.mjsruns9,703 bytes
  • apps/e2e/package.jsonruns663 bytes
  • apps/e2e/port-ownership.test.mjsruns1,886 bytes
  • apps/e2e/port-pid.mjsruns2,178 bytes
  • apps/e2e/replay-is-green.mjsruns2,377 bytes
  • apps/e2e/replay-is-green.test.mjsruns2,586 bytes
  • apps/e2e/run-ci.shruns8,225 bytes
  • apps/e2e/run-desktop.shruns4,089 bytes
  • apps/e2e/run.mjsruns17,817 bytes
  • apps/e2e/smoke-checks.mjsruns3,429 bytes
  • apps/e2e/smoke-checks.test.mjsruns1,418 bytes
  • apps/e2e/smoke.mjsruns7,681 bytes
  • apps/e2e/soak.mjsruns21,326 bytes
  • apps/e2e/specs/acknowledged-failed-write-test.mjsruns6,612 bytes
  • apps/e2e/specs/atlas-hard-fixture-test.mjsruns14,521 bytes
  • apps/e2e/specs/auth-retry-not-a-defect-test.mjsruns5,663 bytes
  • apps/e2e/specs/awkward-controls-test.mjsruns7,563 bytes
  • apps/e2e/specs/blind-spot-reset-test.mjsruns14,348 bytes
  • apps/e2e/specs/bridge-stress-test.mjsruns11,565 bytes
  • apps/e2e/specs/browser-stress-test.mjsruns9,160 bytes
  • apps/e2e/specs/crawl-test.mjsruns2,170 bytes
  • apps/e2e/specs/daemon-heartbeat-test.mjsruns6,853 bytes
  • apps/e2e/specs/daemon-lifecycle-test.mjsruns6,422 bytes
  • apps/e2e/specs/daemon-port-honesty-test.mjsruns4,720 bytes
  • apps/e2e/specs/drive-attach-test.mjsruns4,830 bytes
  • apps/e2e/specs/drive-launch-test.mjsruns2,550 bytes
  • apps/e2e/specs/electron-desktop-test.mjsruns15,469 bytes
  • apps/e2e/specs/electron-vite-desktop-test.mjsruns3,128 bytes
  • apps/e2e/specs/feedback-durability-test.mjsruns6,873 bytes
  • apps/e2e/specs/first-verdict-test.mjsruns6,282 bytes
  • apps/e2e/specs/flow-record-replay-test.mjsruns3,942 bytes
  • apps/e2e/specs/flow-self-heal-test.mjsruns5,032 bytes
  • apps/e2e/specs/instrumentation-gap-test.mjsruns7,059 bytes
  • apps/e2e/specs/lease-init-script-test.mjsruns4,488 bytes
  • apps/e2e/specs/lease-instrumented-navigation-test.mjsruns6,703 bytes
  • apps/e2e/specs/lease-page-size-test.mjsruns4,083 bytes
  • apps/e2e/specs/lease-permissions-test.mjsruns4,585 bytes
  • apps/e2e/specs/lease-pointer-test.mjsruns4,843 bytes
  • apps/e2e/specs/lease-production-guard-test.mjsruns4,708 bytes
  • apps/e2e/specs/lease-spa-redirect-test.mjsruns3,271 bytes
  • apps/e2e/specs/lease-zero-install-navigation-test.mjsruns3,478 bytes
  • apps/e2e/specs/live-control-test.mjsruns4,634 bytes
  • apps/e2e/specs/mcp-stress-test.mjsruns15,405 bytes
  • apps/e2e/specs/mcp-survives-test.mjsruns8,360 bytes
  • apps/e2e/specs/multi-agent-lease-test.mjsruns4,939 bytes
  • apps/e2e/specs/narrowed-rules-both-directions-test.mjsruns17,621 bytes
  • apps/e2e/specs/next-blur-clock-test.mjsruns3,198 bytes
  • apps/e2e/specs/next-smoke-test.mjsruns8,944 bytes
  • apps/e2e/specs/overflow-visibility-test.mjsruns16,791 bytes
  • apps/e2e/specs/press-real-focus-test.mjsruns7,192 bytes
  • apps/e2e/specs/project-history-test.mjsruns4,399 bytes
  • apps/e2e/specs/real-world-tests.mjsruns9,163 bytes
  • apps/e2e/specs/release-smoke-test.mjsruns7,899 bytes
  • apps/e2e/specs/response-ignored-test.mjsruns11,880 bytes
  • apps/e2e/specs/route-and-absence-claims-test.mjsruns7,678 bytes
  • apps/e2e/specs/scroll-find-test.mjsruns2,618 bytes
  • apps/e2e/specs/skill-one-call-paths-test.mjsruns13,783 bytes
  • apps/e2e/specs/slow-endpoint-replay-test.mjsruns7,653 bytes
  • apps/e2e/specs/spa-nav-realinput-test.mjsruns3,195 bytes
  • apps/e2e/specs/spec-runner-test.mjsruns1,699 bytes
  • apps/e2e/specs/stale-response-both-directions-test.mjsruns7,825 bytes
  • apps/e2e/specs/status-honesty-test.mjsruns5,400 bytes
  • apps/e2e/specs/tauri-desktop-test.mjsruns13,877 bytes
  • apps/e2e/specs/telemetry-events-test.mjsruns68,251 bytes
  • apps/e2e/specs/telemetry-stitch-test.mjsruns19,116 bytes
  • apps/e2e/specs/tool-fuzz-test.mjsruns13,185 bytes
  • apps/e2e/specs/tool-surface-sweep-test.mjsruns18,717 bytes
  • apps/e2e/specs/trace-shape-test.mjsruns5,641 bytes
  • apps/e2e/specs/transport-faults-test.mjsruns7,403 bytes
  • apps/e2e/specs/verify-against-test.mjsruns5,682 bytes
  • apps/e2e/specs/version-skew-test.mjsruns11,495 bytes
  • apps/e2e/specs/visual-test.mjsruns3,098 bytes
  • apps/e2e/trace-shape.mjsruns8,326 bytes
  • apps/e2e/wait-for-session.mjsruns3,443 bytes
  • apps/e2e/wait-until.mjsruns2,494 bytes
  • apps/e2e/watch-transport.test.mjsruns1,649 bytes
  • apps/e2e/win32-job-kill.mjsruns7,446 bytes
  • apps/e2e/win32-job-kill.ps1runs7,310 bytes
  • apps/e2e/worktrees/worktrees-gate.mjsruns10,985 bytes
  • apps/electron-smoke/README.mddoc1,878 bytes
  • apps/electron-smoke/electron/main.cjsruns6,225 bytes
  • apps/electron-smoke/electron/preload.cjsruns1,794 bytes
  • apps/electron-smoke/index.htmlasset309 bytes
  • apps/electron-smoke/package.jsonruns1,011 bytes
  • apps/electron-smoke/public/stats.jsonasset47 bytes
  • apps/electron-smoke/src/App.tsxruns6,744 bytes
  • apps/electron-smoke/src/main.tsxruns1,182 bytes
  • apps/electron-smoke/src/store.tsruns1,071 bytes
  • apps/electron-smoke/tsconfig.jsonasset319 bytes
  • apps/electron-smoke/vite.config.tsruns974 bytes
  • apps/electron-vue-pinia/.editorconfigasset146 bytes
  • apps/electron-vue-pinia/.gitignoreasset52 bytes
  • apps/electron-vue-pinia/.prettierignoreasset65 bytes
  • apps/electron-vue-pinia/.prettierrc.yamlasset66 bytes
  • apps/electron-vue-pinia/.reticle.jsonasset86 bytes
  • apps/electron-vue-pinia/.vscode/extensions.jsonasset52 bytes
  • apps/electron-vue-pinia/.vscode/launch.jsonasset915 bytes
  • apps/electron-vue-pinia/.vscode/mcp.jsonasset113 bytes
  • apps/electron-vue-pinia/.vscode/settings.jsonasset240 bytes
  • apps/electron-vue-pinia/AGENTS.mddoc5,051 bytes
  • apps/electron-vue-pinia/README.mddoc622 bytes
  • apps/electron-vue-pinia/RETICLE.mddoc5,087 bytes
  • apps/electron-vue-pinia/electron-builder.ymlasset1,387 bytes
  • apps/electron-vue-pinia/electron.vite.config.tsruns1,084 bytes
  • apps/electron-vue-pinia/eslint.config.mjsruns985 bytes
  • apps/electron-vue-pinia/package.jsonruns1,818 bytes
  • apps/electron-vue-pinia/resources/icon.pngasset35,949 bytes
  • apps/electron-vue-pinia/src/main/index.tsruns2,750 bytes
  • apps/electron-vue-pinia/src/preload/index.d.tsruns144 bytes
  • apps/electron-vue-pinia/src/preload/index.tsruns825 bytes
  • apps/electron-vue-pinia/src/renderer/index.htmlasset476 bytes
  • apps/electron-vue-pinia/src/renderer/package.jsonruns128 bytes
  • apps/electron-vue-pinia/src/renderer/src/App.vueasset959 bytes
  • apps/electron-vue-pinia/src/renderer/src/assets/base.cssasset1,412 bytes
  • apps/electron-vue-pinia/src/renderer/src/assets/electron.svgasset5,822 bytes
  • apps/electron-vue-pinia/src/renderer/src/assets/main.cssasset3,020 bytes
  • apps/electron-vue-pinia/src/renderer/src/assets/wavy-lines.svgasset1,782 bytes
  • apps/electron-vue-pinia/src/renderer/src/components/Versions.vueasset390 bytes
  • apps/electron-vue-pinia/src/renderer/src/env.d.tsruns293 bytes
  • apps/electron-vue-pinia/src/renderer/src/main.tsruns193 bytes
  • apps/electron-vue-pinia/src/renderer/src/reticle-dev.tsruns782 bytes
  • apps/electron-vue-pinia/src/renderer/src/stores/app.tsruns189 bytes
  • apps/electron-vue-pinia/tsconfig.jsonasset107 bytes
  • apps/electron-vue-pinia/tsconfig.node.jsonasset230 bytes
  • apps/electron-vue-pinia/tsconfig.web.jsonasset340 bytes
  • apps/examples/README.mddoc771 bytes
  • apps/examples/astro/.gitignoreasset28 bytes
  • apps/examples/astro/astro.config.mjsruns1,642 bytes
  • apps/examples/astro/package.jsonruns479 bytes
  • apps/examples/astro/src/components/Counter.tsxruns239 bytes
  • apps/examples/astro/src/pages/index.astroasset2,097 bytes
  • apps/examples/astro/src/reticle-env.d.tsruns322 bytes
  • apps/examples/next/.gitignoreasset35 bytes
  • apps/examples/next/AGENTS.mddoc679 bytes
  • apps/examples/next/CLAUDE.mddoc11 bytes
  • apps/examples/next/app/layout.tsxruns297 bytes
  • apps/examples/next/app/page.tsxruns313 bytes
  • apps/examples/next/app/reticle-dev.tsxruns893 bytes
  • apps/examples/next/next.config.mjsruns173 bytes
  • apps/examples/next/package.jsonruns590 bytes
  • apps/examples/next/tsconfig.jsonasset691 bytes
  • apps/examples/react/.gitignoreasset20 bytes
  • apps/examples/react/index.htmlasset210 bytes
  • apps/examples/react/package.jsonruns508 bytes
  • apps/examples/react/src/App.tsxruns295 bytes
  • apps/examples/react/src/main.tsxruns259 bytes
  • apps/examples/react/vite.config.tsruns324 bytes
  • apps/examples/remix/.gitignoreasset70 bytes
  • apps/examples/remix/app/app.cssasset14 bytes
  • apps/examples/remix/app/root.tsxruns2,618 bytes
  • apps/examples/remix/app/routes.tsruns134 bytes
  • apps/examples/remix/app/routes/home.tsxruns383 bytes
  • apps/examples/remix/package.jsonruns833 bytes
  • apps/examples/remix/public/favicon.icoasset15,086 bytes
  • apps/examples/remix/react-router.config.tsruns205 bytes
  • apps/examples/remix/reticle-env.d.tsruns288 bytes
  • apps/examples/remix/tsconfig.jsonasset585 bytes
  • apps/examples/remix/vite.config.tsruns1,842 bytes
  • apps/large-dom-bench/README.mddoc855 bytes
  • apps/large-dom-bench/index.htmlasset1,190 bytes
  • apps/large-dom-bench/package.jsonruns418 bytes
  • apps/large-dom-bench/src/main.tsruns3,962 bytes
  • apps/large-dom-bench/vite.config.tsruns1,688 bytes
  • apps/next-smoke/.env.exampleasset94 bytes
  • apps/next-smoke/.gitignoreasset571 bytes
  • apps/next-smoke/README.mddoc655 bytes
  • apps/next-smoke/app/actions/actions.tsruns963 bytes
  • apps/next-smoke/app/actions/page.tsxruns2,086 bytes
  • apps/next-smoke/app/actions/save-both.tsxruns553 bytes
  • apps/next-smoke/app/actions/store.tsruns803 bytes
  • apps/next-smoke/app/api/idle-stream/route.tsruns909 bytes
  • apps/next-smoke/app/api/ping/route.tsruns144 bytes
  • apps/next-smoke/app/layout.tsxruns576 bytes
  • apps/next-smoke/app/page.tsxruns7,814 bytes
  • apps/next-smoke/app/reticle-dev.tsxruns1,957 bytes
  • apps/next-smoke/app/rsc/page.tsxruns1,741 bytes
  • apps/next-smoke/next.config.mjsruns420 bytes
  • apps/next-smoke/package.jsonruns590 bytes
  • apps/next-smoke/tsconfig.jsonasset607 bytes
  • apps/tauri-smoke/README.mddoc1,819 bytes
  • apps/tauri-smoke/index.htmlasset306 bytes
  • apps/tauri-smoke/package.jsonruns816 bytes
  • apps/tauri-smoke/public/stats.jsonasset47 bytes
  • apps/tauri-smoke/src-tauri/Cargo.tomlasset478 bytes
  • apps/tauri-smoke/src-tauri/build.rsasset39 bytes
  • apps/tauri-smoke/src-tauri/icons/icon.icoasset24,038 bytes
  • apps/tauri-smoke/src-tauri/icons/icon.pngasset5,618 bytes
  • apps/tauri-smoke/src-tauri/src/main.rsasset4,270 bytes
  • apps/tauri-smoke/src-tauri/tauri.conf.jsonasset870 bytes
  • apps/tauri-smoke/src/App.tsxruns4,914 bytes
  • apps/tauri-smoke/src/main.tsxruns941 bytes
  • apps/tauri-smoke/src/store.tsruns1,071 bytes
  • apps/tauri-smoke/tsconfig.jsonasset319 bytes
  • apps/tauri-smoke/vite.config.tsruns956 bytes
  • assets/Black.svgasset1,158 bytes
  • assets/White.svgasset1,158 bytes
  • assets/benchmarks/render.mjsruns1,357 bytes
  • assets/benchmarks/src/bench-capability.htmlasset3,221 bytes
  • assets/benchmarks/src/bench-complex-app.htmlasset3,022 bytes
  • assets/benchmarks/src/bench-rerun.htmlasset1,751 bytes
  • assets/benchmarks/src/bench-two-apps.htmlasset3,385 bytes
  • assets/figures/README.mddoc1,205 bytes
  • assets/figures/desktop.htmlasset4,545 bytes
  • assets/figures/og.htmlasset3,185 bytes
  • assets/figures/verdict.htmlasset4,599 bytes
  • assets/marketing/src/_system.cssasset10,407 bytes
  • assets/readme/bench-capability.pngasset3,108,375 bytes
  • assets/readme/bench-complex-app.pngasset3,056,020 bytes
  • assets/readme/bench-rerun.pngasset1,385,469 bytes
  • assets/readme/bench-two-apps.pngasset3,080,496 bytes
  • assets/readme/benchmark-chart.svgasset5,523 bytes
  • assets/readme/chart-speed.svgasset2,626 bytes
  • assets/readme/chart-token-cost.svgasset7,616 bytes
  • assets/readme/file-line-fix.pngasset918,020 bytes
  • assets/readme/hero.gifasset3,692,575 bytes
  • assets/readme/lockup-on-dark.pngasset46,133 bytes
  • assets/readme/lockup-on-light.pngasset47,772 bytes
  • assets/readme/regression-replay.pngasset883,994 bytes
  • assets/readme/silent-failures.pngasset1,073,341 bytes
  • assets/readme/src/bench-rerun.htmlasset4,064 bytes
  • assets/readme/verdict-not-view.pngasset1,013,951 bytes
  • assets/wordmark-white.svgasset1,283 bytes
  • bench/.gitignoreasset1,065 bytes
  • bench/CONFIDENCE.mddoc8,165 bytes
  • bench/FALSE-GREEN-SCORECARD.mddoc6,162 bytes
  • bench/INTENT-EFFECT.mddoc9,442 bytes
  • bench/JEV-SCORECARD.mddoc10,309 bytes
  • bench/METHODOLOGY.mddoc12,575 bytes
  • bench/METRIC.mddoc6,259 bytes
  • bench/README.mddoc17,352 bytes
  • bench/SCORECARD.mddoc25,059 bytes
  • bench/TOOL-PROFILE.mddoc2,100 bytes
  • bench/UI-BUG-BENCH.mddoc6,104 bytes
  • bench/agent-loop-and-replay.mddoc26,299 bytes
  • bench/artifacts/chart-avg-tokens.svgasset3,232 bytes
  • bench/artifacts/chart-detection.svgasset3,180 bytes
  • bench/behaviour-baseline.jsonasset3,289 bytes
  • bench/cli-false-green/AGENT-IN-THE-LOOP.mddoc5,549 bytes
  • bench/cli-false-green/SCORECARD.mddoc6,193 bytes
  • bench/cli-false-green/bugs.mjsruns3,874 bytes
  • bench/cli-false-green/run.mjsruns9,275 bytes
  • bench/dashboard.mjsruns13,802 bytes
  • bench/desktop/README.mddoc4,066 bytes
  • bench/desktop/desktop-mcp-bench.mjsruns11,638 bytes
  • bench/diagnosis/LOCALIZATION-ABLATION.mddoc11,461 bytes
  • bench/diagnosis/ground-truth.mjsruns7,898 bytes
  • bench/diagnosis/measure.mjsruns11,792 bytes
  • bench/diagnosis/recoverability.mjsruns5,792 bytes
  • bench/do-and-verify/oracle.mjsruns7,429 bytes
  • bench/do-and-verify/run.mjsruns34,954 bytes
  • bench/eval/ab.mjsruns3,037 bytes
  • bench/eval/features.mjsruns6,307 bytes
  • bench/eval/loudness.mjsruns5,276 bytes
  • bench/eval/loudness.test.mjsruns5,376 bytes
  • bench/eval/report.mjsruns2,943 bytes
  • bench/false-green-corpus/find-candidate-rows.mjsruns6,575 bytes
  • bench/false-green-corpus/rows.jsonasset18,628 bytes
  • bench/false-green-corpus/verify-rows.mjsruns7,827 bytes
  • bench/first-drive/README.mddoc2,133 bytes
  • bench/first-drive/measure.mjsruns3,517 bytes
  • bench/harness-vs-agent/README.mddoc5,274 bytes
  • bench/harness-vs-agent/judge.mjsruns2,934 bytes
  • bench/harness-vs-agent/report.mjsruns1,428 bytes
  • bench/harness-vs-agent/run.mjsruns11,818 bytes
  • bench/harness/adapters.mjsruns31,037 bytes
  • bench/harness/analyze.mjsruns5,640 bytes
  • bench/harness/baseline-provenance.mjsruns4,365 bytes
  • bench/harness/baseline-provenance.test.mjsruns3,074 bytes
  • bench/harness/behaviour-matrix.mjsruns17,426 bytes
  • bench/harness/bench-all.mjsruns18,710 bytes
  • bench/harness/charts.mjsruns4,902 bytes
  • bench/harness/claude-agent-loop.mjsruns16,162 bytes
  • bench/harness/clock-timetravel.mjsruns5,308 bytes
  • bench/harness/compiled-suite-vs-replay.mjsruns6,423 bytes
  • bench/harness/compiled-suite-vs-replay.test.mjsruns2,516 bytes
  • bench/harness/compound-expect-bench.mjsruns4,136 bytes
  • bench/harness/console-clean-bench.mjsruns5,267 bytes
  • bench/harness/coverage-floor.mjsruns4,483 bytes
  • bench/harness/coverage-floor.test.mjsruns3,308 bytes
  • bench/harness/explore-cost.mjsruns8,758 bytes
  • bench/harness/forbidden-call-bench.mjsruns5,487 bytes
  • bench/harness/gate.mjsruns21,196 bytes
  • bench/harness/guidance-share.mjsruns3,069 bytes
  • bench/harness/guidance-share.test.mjsruns2,569 bytes
  • bench/harness/imports-resolve.test.mjsruns3,490 bytes
  • bench/harness/inject.mjsruns14,193 bytes
  • bench/harness/intent-effect-metrics.mjsruns11,582 bytes
  • bench/harness/intent-effect-metrics.test.mjsruns9,263 bytes
  • bench/harness/intent-effect-verdict.mjsruns5,875 bytes
  • bench/harness/intent-effect-verdict.test.mjsruns3,036 bytes
  • bench/harness/intent-effect.mjsruns17,093 bytes
  • bench/harness/jev-probe.mjsruns12,570 bytes
  • bench/harness/jev.mjsruns4,999 bytes
  • bench/harness/leak-stress.mjsruns10,126 bytes
  • bench/harness/long-horizon.mjsruns11,762 bytes
  • bench/harness/make-readme-chart.mjsruns15,330 bytes
  • bench/harness/mcp-client.mjsruns8,173 bytes
  • bench/harness/mcp-line-client.mjsruns3,294 bytes
  • bench/harness/measure-large-dom.mjsruns3,614 bytes
  • bench/harness/multi-agent-throughput.mjsruns2,592 bytes
  • bench/harness/network-cardinality-bench.mjsruns6,131 bytes
  • bench/harness/observation-retry.mjsruns3,260 bytes
  • bench/harness/observation-retry.test.mjsruns4,867 bytes
  • bench/harness/openai-agent-loop.mjsruns9,002 bytes
  • bench/harness/parallel-agents-cell.mjsruns1,854 bytes
  • bench/harness/parallel-agents-cell.test.mjsruns2,766 bytes
  • bench/harness/parallel-agents.mjsruns4,314 bytes
  • bench/harness/pass-artifact.mjsruns4,292 bytes
  • bench/harness/pass-artifact.test.mjsruns3,939 bytes
  • bench/harness/platform-drive.mjsruns6,434 bytes
  • bench/harness/playwright-parity.mjsruns4,174 bytes
  • bench/harness/playwright-parity.test.mjsruns3,722 bytes
  • bench/harness/ports.mjsruns1,908 bytes
  • bench/harness/probe.mjsruns1,781 bytes
  • bench/harness/record.mjsruns7,513 bytes
  • bench/harness/recording-reached-anchor.mjsruns2,236 bytes
  • bench/harness/recording-reached-anchor.test.mjsruns1,531 bytes
  • bench/harness/render-storm-bench.mjsruns3,036 bytes
  • bench/harness/replay-bench.mjsruns7,912 bytes
  • bench/harness/replay-detect-consequence.mjsruns6,161 bytes
  • bench/harness/replay-detect-state.mjsruns6,300 bytes
  • bench/harness/replay-detect.mjsruns7,140 bytes
  • bench/harness/replay-determinism.mjsruns7,594 bytes
  • bench/harness/run-observation.mjsruns34,164 bytes
  • bench/harness/schema-tax.mjsruns4,765 bytes
  • bench/harness/served-change.test.mjsruns1,958 bytes
  • bench/harness/source-localize.mjsruns3,314 bytes
  • bench/harness/state-blast-radius-bench.mjsruns6,279 bytes
  • bench/harness/state-desync-bench.mjsruns9,564 bytes
  • bench/harness/stress-tiers.mjsruns6,348 bytes
  • bench/harness/suite-flows.mjsruns1,770 bytes
  • bench/harness/suite-rre.mjsruns8,855 bytes
  • bench/harness/token-budget.mjsruns3,440 bytes
  • bench/harness/token-budget.test.mjsruns4,245 bytes
  • bench/harness/tokenizer.mjsruns2,097 bytes
  • bench/harness/tool-coverage.mjsruns2,204 bytes
  • bench/harness/tool-coverage.test.mjsruns2,928 bytes
  • bench/harness/tool-profile-output.mjsruns1,949 bytes
  • bench/harness/tool-profile-output.test.mjsruns2,448 bytes
  • bench/harness/tool-profile.mjsruns21,660 bytes
  • bench/harness/visual-bug-bench.mjsruns9,398 bytes
  • bench/harness/visual-regression-bench.mjsruns4,380 bytes
  • bench/history.jsonlasset35,628 bytes
  • bench/honesty/README.mddoc1,398 bytes
  • bench/honesty/results.mddoc3,410 bytes
  • bench/honesty/run-honesty.mjsruns5,352 bytes
  • bench/honesty/scenarios.mjsruns2,795 bytes
  • bench/overhead/README.mddoc6,572 bytes
  • bench/overhead/measure.mjsruns7,949 bytes
  • bench/parallel-suite/README.mddoc4,416 bytes
  • bench/parallel-suite/cross-tool.mjsruns5,406 bytes
  • bench/parallel-suite/measure.mjsruns6,360 bytes
  • bench/pw-vs-reticle/MOAT.mddoc9,621 bytes
  • bench/pw-vs-reticle/bugs.mjsruns42,665 bytes
  • bench/pw-vs-reticle/compare-runs.mjsruns2,774 bytes
  • bench/pw-vs-reticle/mcp-head-to-head.mjsruns28,426 bytes
  • bench/pw-vs-reticle/moat.mjsruns10,710 bytes
  • bench/pw-vs-reticle/multi-agent.mjsruns16,938 bytes
  • bench/pw-vs-reticle/opaque.mjsruns9,111 bytes
  • bench/pw-vs-reticle/playwright-harness.mjsruns28,083 bytes
  • bench/pw-vs-reticle/report.mjsruns14,310 bytes
  • bench/pw-vs-reticle/reticle-harness.mjsruns52,944 bytes
  • bench/pw-vs-reticle/run.mjsruns6,854 bytes
  • bench/raw/compiled-suite-vs-replay.jsonasset1,231 bytes
  • bench/raw/leak-stress.jsonasset2,287 bytes
  • bench/raw/schema-tax.jsonasset680 bytes
  • bench/raw/stress-tiers.jsonasset4,205 bytes
  • bench/raw/suite-rre.jsonasset7,811 bytes
  • bench/requirements.txtdoc32,220 bytes
  • bench/soak-history.jsonlasset864 bytes
  • break/README.mddoc6,769 bytes
  • break/break-matrix.mjsruns37,541 bytes
  • conformance/README.mddoc7,674 bytes
  • conformance/drive.mjsruns6,995 bytes
  • conformance/drive.test.mjsruns6,494 bytes
  • conformance/handoff.mjsruns1,723 bytes
  • conformance/handoff.test.mjsruns1,310 bytes
  • conformance/package.jsonruns387 bytes
  • conformance/run-cli.mjsruns11,578 bytes
  • conformance/run-desktop.mjsruns18,412 bytes
  • conformance/run-self.mjsruns24,295 bytes
  • conformance/scenarios/index.mjsruns9,368 bytes
  • conformance/score.mjsruns5,772 bytes
  • conformance/score.test.mjsruns8,033 bytes
  • conformance/subjects/bench-app.mjsruns9,294 bytes
  • conformance/subjects/bench-app.test.mjsruns7,648 bytes
  • conformance/subjects/cli-smoke.mjsruns4,873 bytes
  • conformance/subjects/coverage.test.mjsruns7,638 bytes
  • conformance/subjects/electron-smoke.mjsruns2,933 bytes
  • contributing/telemetry/contract.mddoc80,352 bytes
  • contributing/telemetry/events.mddoc49,383 bytes
  • core/CHANGES.mddoc8,338 bytes
  • core/LICENSEasset11,343 bytes
  • core/NOTICEasset143 bytes
  • core/README.mddoc1,593 bytes
  • core/eslint-suppressions.jsonasset4,434 bytes
  • core/package.jsonruns3,040 bytes
  • core/scripts/gen-desktop-contract.d.mtsruns341 bytes
  • core/scripts/gen-desktop-contract.mjsruns4,602 bytes
  • core/scripts/gen-schema.d.mtsruns597 bytes
  • core/scripts/gen-schema.mjsruns6,103 bytes
  • core/scripts/gen-source-constants.d.mtsruns249 bytes
  • core/scripts/gen-source-constants.mjsruns3,152 bytes
  • core/src/activation-entry.tsruns407 bytes
  • core/src/artifacts/agent-link.test.tsruns763 bytes
  • core/src/artifacts/artifacts-entry.tsruns1,194 bytes
  • core/src/artifacts/credit-wording.test.tsruns3,367 bytes
  • core/src/artifacts/drive-script.test.tsruns5,268 bytes
  • core/src/artifacts/drive-script.tsruns10,307 bytes
  • core/src/artifacts/flow-composition.test.tsruns2,903 bytes
  • core/src/artifacts/flow-composition.tsruns2,531 bytes
  • core/src/artifacts/flow-constants.test.tsruns921 bytes
  • core/src/artifacts/flow-constants.tsruns24,578 bytes
  • core/src/artifacts/flow-expect-flat.test.tsruns9,690 bytes
  • core/src/artifacts/flow-expect-flat.tsruns13,899 bytes
  • core/src/artifacts/flow-known-bugs.test.tsruns2,423 bytes
  • core/src/artifacts/flow-mutation-target.perturbation.test.tsruns2,987 bytes
  • core/src/artifacts/flow-mutation-target.test.tsruns3,590 bytes
  • core/src/artifacts/flow-mutation-target.tsruns5,587 bytes
  • core/src/artifacts/flow-name-namespaced.test.tsruns1,807 bytes
  • core/src/artifacts/flow-order.test.tsruns2,981 bytes
  • core/src/artifacts/flow-order.tsruns2,674 bytes
  • core/src/artifacts/flow-quarantine.test.tsruns2,538 bytes
  • core/src/artifacts/flow-results.tsruns22,390 bytes
  • core/src/artifacts/flow-schema-back-compat.test.tsruns3,619 bytes
  • core/src/artifacts/flow-select.retry.test.tsruns2,259 bytes
  • core/src/artifacts/flow-select.test.tsruns2,990 bytes
  • core/src/artifacts/flow-select.tsruns4,127 bytes
  • core/src/artifacts/flow-selection.test.tsruns2,746 bytes
  • core/src/artifacts/flow-step-tool.tsruns2,829 bytes
  • core/src/artifacts/flow-types.tsruns33,832 bytes
  • core/src/artifacts/flow-unreached.test.tsruns1,987 bytes
  • core/src/artifacts/flow-unreached.tsruns974 bytes
  • core/src/artifacts/harness-credits.test.tsruns4,420 bytes
  • core/src/artifacts/harness-credits.tsruns4,249 bytes
  • core/src/artifacts/harness-map.tsruns1,779 bytes
  • core/src/artifacts/hud-notices.test.tsruns3,160 bytes
  • core/src/artifacts/hud-notices.tsruns5,430 bytes
  • core/src/artifacts/impact-savings.test.tsruns3,840 bytes
  • core/src/artifacts/impact-savings.tsruns3,864 bytes
  • core/src/artifacts/impact.tsruns16,498 bytes
  • core/src/artifacts/journal.test.tsruns1,305 bytes
  • core/src/artifacts/journal.tsruns11,575 bytes
  • core/src/artifacts/learned-survives-a-round-trip.test.tsruns2,659 bytes
  • core/src/artifacts/prompt-context.test.tsruns2,101 bytes
  • core/src/artifacts/prompt-context.tsruns5,652 bytes
  • core/src/artifacts/screenshot-upload.tsruns1,391 bytes
  • core/src/artifacts/step-effect.tsruns1,814 bytes
  • core/src/capabilities.test.tsruns1,606 bytes
  • core/src/contract-changes.test.tsruns3,220 bytes
  • core/src/directory-reach.test.tsruns5,842 bytes
  • core/src/graph/app-graph.test.tsruns13,973 bytes
  • core/src/graph/app-graph.tsruns24,266 bytes
  • core/src/hooks/hook-events.tsruns6,672 bytes
  • core/src/hooks/hook-payload-carries-no-secret.test.tsruns3,620 bytes
  • core/src/hooks/hooks-entry.tsruns539 bytes
  • core/src/hud-entry.tsruns700 bytes
  • core/src/identity/brand.tsruns6,726 bytes
  • core/src/identity/checkout.test.tsruns4,978 bytes
  • core/src/identity/checkout.tsruns5,992 bytes
  • core/src/identity/contract-fingerprint.test.tsruns3,025 bytes
  • core/src/identity/contract-fingerprint.tsruns4,553 bytes
  • core/src/identity/document-identity.test.tsruns3,420 bytes
  • core/src/identity/document-identity.tsruns2,720 bytes
  • core/src/identity/edit-epoch.test.tsruns1,882 bytes
  • core/src/identity/edit-epoch.tsruns2,388 bytes
  • core/src/identity/github-action.tsruns378 bytes
  • core/src/identity/project-id.test.tsruns2,231 bytes
  • core/src/identity/project-id.tsruns3,700 bytes
  • core/src/identity/retired-wire-names.test.tsruns3,189 bytes
  • core/src/identity/source-constants.test.tsruns1,680 bytes
  • core/src/identity/source-constants.tsruns2,566 bytes
  • core/src/identity/state-dir.test.tsruns2,634 bytes
  • core/src/identity/state-dir.tsruns2,925 bytes
  • core/src/identity/testid-attribute.tsruns1,071 bytes
  • core/src/index.tsruns11,379 bytes
  • core/src/lossy-conformance.test.tsruns5,724 bytes
  • core/src/onboarding-funnel.test.tsruns4,136 bytes
  • core/src/onboarding.tsruns10,157 bytes
  • core/src/orphan-modules.test.tsruns1,237 bytes
  • core/src/package-scripts-resolve.test.tsruns3,766 bytes
  • core/src/realm/determinism-by-surface.test.tsruns2,042 bytes
  • core/src/realm/register-realm.test.tsruns3,144 bytes
  • core/src/realm/registry.test.tsruns6,117 bytes
  • core/src/realm/registry.tsruns18,781 bytes
  • core/src/realm/subject-locator.test.tsruns653 bytes
  • core/src/realm/surface-is-declared.test.tsruns2,199 bytes
  • core/src/redaction-config.test.tsruns8,216 bytes
  • core/src/registry/daemon-registry.test.tsruns3,877 bytes
  • core/src/registry/daemon-registry.tsruns3,759 bytes
  • core/src/registry/dev-server-registry.test.tsruns5,829 bytes
  • core/src/registry/dev-server-registry.tsruns6,950 bytes
  • core/src/registry/project-registry.test.tsruns4,202 bytes
  • core/src/registry/project-registry.tsruns3,833 bytes
  • core/src/telemetry-bug.tsruns6,880 bytes
  • core/src/telemetry-entry.tsruns739 bytes
  • core/src/telemetry-feedback.tsruns12,038 bytes
  • core/src/telemetry-license.tsruns2,781 bytes
  • core/src/telemetry-refusal.tsruns6,001 bytes
  • core/src/telemetry-session.tsruns33,552 bytes
  • core/src/telemetry-signals.tsruns14,245 bytes
  • core/src/telemetry.tsruns51,635 bytes
  • core/src/tour-entry.tsruns534 bytes
  • core/src/tour.tsruns10,874 bytes
  • core/src/verdict/check-sentence.test.tsruns7,674 bytes
  • core/src/verdict/check-sentence.tsruns11,442 bytes
  • core/src/verdict/compare-source.test.tsruns5,038 bytes
  • core/src/verdict/compare-source.tsruns5,016 bytes
  • core/src/verdict/consequence.test.tsruns3,383 bytes
  • core/src/verdict/consequence.tsruns5,466 bytes
  • core/src/verdict/disparity.tsruns2,128 bytes
  • core/src/verdict/engine-blind-spot.test.tsruns3,196 bytes
  • core/src/verdict/finding-fingerprint.test.tsruns2,030 bytes
  • core/src/verdict/finding-fingerprint.tsruns1,334 bytes
  • core/src/verdict/findings.test.tsruns3,694 bytes
  • core/src/verdict/findings.tsruns31,061 bytes
  • core/src/verdict/independence.test.tsruns3,731 bytes
  • core/src/verdict/instrumentation-coverage-score.test.tsruns2,110 bytes
  • core/src/verdict/instrumentation-coverage.test.tsruns5,764 bytes
  • core/src/verdict/instrumentation-coverage.tsruns10,349 bytes
  • core/src/verdict/instrumentation-gap.test.tsruns5,028 bytes
  • core/src/verdict/instrumentation-gap.tsruns15,193 bytes
  • core/src/verdict/intent.test.tsruns13,131 bytes
  • core/src/verdict/intent.tsruns9,751 bytes
  • core/src/verdict/one-vocabulary-for-checks.test.tsruns2,173 bytes
  • core/src/verdict/predicate-aliases-used.test.tsruns2,210 bytes
  • core/src/verdict/predicate-kind-shorthand.test.tsruns3,546 bytes
  • core/src/verdict/predicate-lenient.test.tsruns6,444 bytes
  • core/src/verdict/predicate-tree.test.tsruns3,482 bytes
  • core/src/verdict/predicate-tree.tsruns10,747 bytes
  • core/src/verdict/predicate.tsruns40,705 bytes
  • core/src/verdict/property-assertion.tsruns4,245 bytes
  • core/src/verdict/revision.test.tsruns3,689 bytes
  • core/src/verdict/revision.tsruns3,193 bytes
  • core/src/verdict/run-context.test.tsruns10,051 bytes
  • core/src/verdict/run-context.tsruns8,122 bytes
  • core/src/verdict/run-report.tsruns2,868 bytes
  • core/src/verdict/security.test.tsruns14,059 bytes
  • core/src/verdict/security.tsruns18,382 bytes
  • core/src/verdict/verdict-attribution.tsruns5,127 bytes
  • core/src/verdict/verification-run.test.tsruns7,686 bytes
  • core/src/verdict/verification-run.tsruns26,916 bytes
  • core/src/verdict/verified-attribution.test.tsruns4,041 bytes
  • core/src/verdict/verified-constants.tsruns17,894 bytes
  • core/src/verdict/verify-progress.test.tsruns3,551 bytes
  • core/src/verdict/verify-progress.tsruns4,223 bytes
  • core/src/wire-schema.test.tsruns5,111 bytes
  • core/src/wire/channel.test.tsruns4,674 bytes
  • core/src/wire/channel.tsruns6,570 bytes
  • core/src/wire/click-input.test.tsruns1,416 bytes
  • core/src/wire/click-input.tsruns1,933 bytes
  • core/src/wire/constants/animation-command.tsruns97 bytes
  • core/src/wire/constants/api-key.test.tsruns1,630 bytes
  • core/src/wire/constants/cloud-url.test.tsruns2,476 bytes
  • core/src/wire/constants/constants.tsruns49,409 bytes
  • core/src/wire/constants/discovery.test.tsruns1,337 bytes
  • core/src/wire/constants/discovery.tsruns1,855 bytes
  • core/src/wire/constants/event-types.tsruns12,703 bytes
  • core/src/wire/constants/hud-controls.tsruns3,966 bytes
  • core/src/wire/constants/hud-use.tsruns4,446 bytes
  • core/src/wire/constants/match-args.tsruns1,208 bytes
  • core/src/wire/constants/mcp-wire.tsruns1,364 bytes
  • core/src/wire/constants/response-body-reason.tsruns1,093 bytes
  • core/src/wire/constants/reticle-chrome.tsruns2,953 bytes
  • core/src/wire/constants/reticle-env.tsruns8,270 bytes
  • core/src/wire/constants/session-constants.tsruns11,412 bytes
  • core/src/wire/desktop-contract.test.tsruns6,505 bytes
  • core/src/wire/desktop-contract.tsruns4,705 bytes
  • core/src/wire/event-classification.tsruns618 bytes
  • core/src/wire/event-payloads.health.test.tsruns3,375 bytes
  • core/src/wire/event-payloads.test.tsruns4,495 bytes
  • core/src/wire/event-payloads.tsruns15,388 bytes
  • core/src/wire/event-priority.test.tsruns370 bytes
  • core/src/wire/event-priority.tsruns1,997 bytes
  • core/src/wire/global-press.test.tsruns6,165 bytes
  • core/src/wire/global-press.tsruns6,356 bytes
  • core/src/wire/hello-mode.test.tsruns1,116 bytes
  • core/src/wire/hold.tsruns885 bytes
  • core/src/wire/messages.test.tsruns4,403 bytes
  • core/src/wire/messages.tsruns16,827 bytes
  • core/src/wire/narrow.test.tsruns1,679 bytes
  • core/src/wire/narrow.tsruns3,183 bytes
  • core/src/wire/net.test.tsruns5,267 bytes
  • core/src/wire/net.tsruns15,648 bytes
  • core/src/wire/next-step.tsruns2,161 bytes
  • core/src/wire/oversized-collections.test.tsruns1,251 bytes
  • core/src/wire/platform-link.test.tsruns4,586 bytes
  • core/src/wire/platform-link.tsruns14,610 bytes
  • core/src/wire/platform.test.tsruns4,477 bytes
  • core/src/wire/platform.tsruns1,813 bytes
  • core/src/wire/production/activation-ticket.test.tsruns4,289 bytes
  • core/src/wire/production/activation-ticket.tsruns7,107 bytes
  • core/src/wire/production/hello-mode.tsruns1,590 bytes
  • core/src/wire/production/production-policy.test.tsruns1,248 bytes
  • core/src/wire/production/production-policy.tsruns6,273 bytes
  • core/src/wire/redaction.credential-field.test.tsruns1,855 bytes
  • core/src/wire/redaction.embedded-url.test.tsruns1,432 bytes
  • core/src/wire/redaction.fuzz.test.tsruns3,362 bytes
  • core/src/wire/redaction.passphrase.test.tsruns2,489 bytes
  • core/src/wire/redaction.presigned.test.tsruns2,093 bytes
  • core/src/wire/redaction.shapes.test.tsruns3,094 bytes
  • core/src/wire/redaction.tsruns20,495 bytes
  • core/src/wire/snapshot-tree.test.tsruns2,153 bytes
  • core/src/wire/snapshot-tree.tsruns2,142 bytes
  • core/src/wire/spec-matches-contract.test.tsruns11,145 bytes
  • core/src/wire/state-select.test.tsruns16,068 bytes
  • core/src/wire/state-select.tsruns12,474 bytes
  • core/src/wire/tool-names.tsruns7,778 bytes
  • core/src/wire/toon.linebreak.test.tsruns3,016 bytes
  • core/src/wire/toon.test.tsruns4,037 bytes
  • core/src/wire/toon.tsruns7,482 bytes
  • core/src/wire/types.attrs.test.tsruns1,381 bytes
  • core/src/wire/types.recorded.test.tsruns6,737 bytes
  • core/src/wire/types.tsruns25,644 bytes
  • core/src/wire/types.version.test.tsruns830 bytes
  • core/src/words/browser-misdirect.test.tsruns1,128 bytes
  • core/src/words/browser-misdirect.tsruns1,670 bytes
  • core/src/words/no-session-reason.tsruns3,094 bytes
  • core/src/words/notices.tsruns14,502 bytes
  • core/src/words/unreachable-notice.test.tsruns1,529 bytes
  • core/src/words/unreachable-notice.tsruns1,453 bytes
  • core/src/words/upgrade.test.tsruns1,604 bytes
  • core/src/words/upgrade.tsruns5,706 bytes
  • core/src/words/writing-rule.tsruns1,260 bytes
  • core/tsconfig.jsonasset235 bytes
  • core/vitest.config.tsruns989 bytes
  • engine/LICENSEasset11,343 bytes
  • engine/NOTICEasset143 bytes
  • engine/README.mddoc2,433 bytes
  • engine/eslint-suppressions.jsonasset5,769 bytes
  • engine/package.jsonruns2,069 bytes
  • engine/src/core-coupling-only-shrinks.test.tsruns14,747 bytes
  • engine/src/directory-reach.test.tsruns5,384 bytes
  • engine/src/disagreement/acknowledged-failed-write.test.tsruns6,807 bytes
  • engine/src/disagreement/body-failures.test.tsruns7,345 bytes
  • engine/src/disagreement/body-failures.tsruns7,165 bytes
  • engine/src/disagreement/contradiction-evidence.tsruns35,023 bytes
  • engine/src/disagreement/contradiction-folds.test.tsruns5,184 bytes
  • engine/src/disagreement/contradiction-folds.tsruns4,930 bytes
  • engine/src/disagreement/contradiction-types.tsruns12,235 bytes
  • engine/src/disagreement/contradictions-pagination.test.tsruns3,741 bytes
  • engine/src/disagreement/contradictions.app-reaction.test.tsruns4,004 bytes
  • engine/src/disagreement/contradictions.attribution.test.tsruns12,542 bytes
  • engine/src/disagreement/contradictions.declare-hint.test.tsruns4,567 bytes
  • engine/src/disagreement/contradictions.declared.test.tsruns12,041 bytes
  • engine/src/disagreement/contradictions.document-scope.test.tsruns3,983 bytes
  • engine/src/disagreement/contradictions.edit-scope.test.tsruns3,813 bytes
  • engine/src/disagreement/contradictions.hydration.test.tsruns2,884 bytes
  • engine/src/disagreement/contradictions.read-server-fault.test.tsruns8,758 bytes
  • engine/src/disagreement/contradictions.retry.test.tsruns4,229 bytes
  • engine/src/disagreement/contradictions.stale-one-intent.test.tsruns2,877 bytes
  • engine/src/disagreement/contradictions.state-bookkeeping.test.tsruns3,170 bytes
  • engine/src/disagreement/contradictions.target-fate.test.tsruns5,716 bytes
  • engine/src/disagreement/contradictions.test.tsruns56,864 bytes
  • engine/src/disagreement/contradictions.tsruns50,526 bytes
  • engine/src/disagreement/duplicate-request-identity.test.tsruns6,829 bytes
  • engine/src/disagreement/duplicate-request-repeatable.test.tsruns5,991 bytes
  • engine/src/disagreement/duplicate-request-unrelated.test.tsruns4,469 bytes
  • engine/src/disagreement/echo-mismatch.addressed-write.test.tsruns4,147 bytes
  • engine/src/disagreement/echo-mismatch.compare-and-set.test.tsruns2,202 bytes
  • engine/src/disagreement/echo-mismatch.derived-record.test.tsruns7,721 bytes
  • engine/src/disagreement/echo-mismatch.normalized-values.test.tsruns2,580 bytes
  • engine/src/disagreement/echo-mismatch.test.tsruns12,737 bytes
  • engine/src/disagreement/echo-mismatch.timestamps.test.tsruns3,152 bytes
  • engine/src/disagreement/echo-mismatch.tsruns23,383 bytes
  • engine/src/disagreement/foreign-traffic-redacted.test.tsruns3,206 bytes
  • engine/src/disagreement/poll-is-not-a-double-submit.test.tsruns4,882 bytes
  • engine/src/disagreement/reconcile.test.tsruns6,024 bytes
  • engine/src/disagreement/reconcile.tsruns10,649 bytes
  • engine/src/disagreement/route-claim-is-an-effect.test.tsruns4,393 bytes
  • engine/src/disagreement/signal-before-declared-failure.test.tsruns6,194 bytes
  • engine/src/disagreement/stale-response.test.tsruns19,153 bytes
  • engine/src/disagreement/stale-response.tsruns15,545 bytes
  • engine/src/disagreement/unit-mismatch.prior.test.tsruns3,142 bytes
  • engine/src/disagreement/unit-mismatch.test.tsruns4,155 bytes
  • engine/src/disagreement/unit-mismatch.tsruns7,893 bytes
  • engine/src/disagreement/witness-disagreement.test.tsruns3,111 bytes
  • engine/src/disagreement/witness-disagreement.tsruns3,195 bytes
  • engine/src/evidence/absence-of-a-removed-target.test.tsruns4,742 bytes
  • engine/src/evidence/accepted-write-labels.test.tsruns3,099 bytes
  • engine/src/evidence/accepted-write-routing.test.tsruns5,137 bytes
  • engine/src/evidence/accepted-write.test.tsruns1,377 bytes
  • engine/src/evidence/accepted-write.tsruns5,945 bytes
  • engine/src/evidence/already-true.test.tsruns13,282 bytes
  • engine/src/evidence/already-true.tsruns8,727 bytes
  • engine/src/evidence/baseline.test.tsruns7,055 bytes
  • engine/src/evidence/baseline.tsruns6,554 bytes
  • engine/src/evidence/blind-spots.test.tsruns15,041 bytes
  • engine/src/evidence/blind-spots.tsruns23,119 bytes
  • engine/src/evidence/body-capture-remedy.test.tsruns4,065 bytes
  • engine/src/evidence/body-capture-remedy.tsruns6,575 bytes
  • engine/src/evidence/body-clause-preflight.test.tsruns3,459 bytes
  • engine/src/evidence/body-skip-remedy.test.tsruns5,539 bytes
  • engine/src/evidence/compare-already-true.test.tsruns1,199 bytes
  • engine/src/evidence/coverage-promise.test.tsruns2,201 bytes
  • engine/src/evidence/false-green-caught.test.tsruns5,177 bytes
  • engine/src/evidence/gap-ledger.test.tsruns4,122 bytes
  • engine/src/evidence/gap-ledger.tsruns2,982 bytes
  • engine/src/evidence/honesty-substantiation.test.tsruns2,974 bytes
  • engine/src/evidence/honesty.test.tsruns3,408 bytes
  • engine/src/evidence/honesty.tsruns9,381 bytes
  • engine/src/evidence/instrumentation-gaps.test.tsruns13,077 bytes
  • engine/src/evidence/instrumentation-gaps.tsruns14,003 bytes
  • engine/src/evidence/learned-guards.test.tsruns7,670 bytes
  • engine/src/evidence/learned-guards.tsruns5,845 bytes
  • engine/src/evidence/observability.test.tsruns4,348 bytes
  • engine/src/evidence/observability.tsruns3,633 bytes
  • engine/src/evidence/outcome-unread-remedy.test.tsruns2,451 bytes
  • engine/src/evidence/page-teardown.tsruns890 bytes
  • engine/src/evidence/protocol-parity.test.tsruns17,144 bytes
  • engine/src/evidence/source-mapping-opt-out.test.tsruns3,530 bytes
  • engine/src/evidence/state-bookkeeping.test.tsruns1,642 bytes
  • engine/src/evidence/state-bookkeeping.tsruns151 bytes
  • engine/src/evidence/step-effect.test.tsruns4,723 bytes
  • engine/src/evidence/step-effect.tsruns5,259 bytes
  • engine/src/evidence/superseded-checks.test.tsruns1,043 bytes
  • engine/src/evidence/superseded-checks.tsruns1,921 bytes
  • engine/src/evidence/uncaptured-bodies.test.tsruns1,766 bytes
  • engine/src/evidence/uncaptured-bodies.tsruns3,793 bytes
  • engine/src/evidence/undeclared-change.test.tsruns3,178 bytes
  • engine/src/evidence/undeclared-change.tsruns3,697 bytes
  • engine/src/evidence/undeclared-channel.test.tsruns6,040 bytes
  • engine/src/evidence/undeclared-is-not-proved.test.tsruns4,573 bytes
  • engine/src/evidence/uninstrumented-app.test.tsruns5,905 bytes
  • engine/src/evidence/unread-outcome.test.tsruns4,724 bytes
  • engine/src/evidence/unread-outcome.tsruns5,291 bytes
  • engine/src/evidence/unsettled.test.tsruns9,842 bytes
  • engine/src/evidence/unsettled.tsruns9,184 bytes
  • engine/src/evidence/verdict-asks-for-intent.test.tsruns3,270 bytes
  • engine/src/evidence/verdict-intent-gap.tsruns2,444 bytes
  • engine/src/evidence/verified.absence.test.tsruns5,665 bytes
  • engine/src/evidence/verified.declared.test.tsruns11,682 bytes
  • engine/src/evidence/verified.pending.test.tsruns5,122 bytes
  • engine/src/evidence/verified.skew.test.tsruns3,584 bytes
  • engine/src/evidence/verified.test.tsruns32,098 bytes
  • engine/src/evidence/verified.tsruns39,737 bytes
  • engine/src/exact-count.tsruns1,271 bytes
  • engine/src/index.tsruns2,044 bytes
  • engine/src/orphan-modules.test.tsruns2,261 bytes
  • engine/src/question/declared.test.tsruns11,319 bytes
  • engine/src/question/declared.tsruns12,448 bytes
  • engine/src/question/document-navigation-is-not-resource-timing.test.tsruns2,827 bytes
  • engine/src/question/lineage.test.tsruns10,139 bytes
  • engine/src/question/lineage.tsruns9,768 bytes
  • engine/src/question/match-value-structural.test.tsruns4,362 bytes
  • engine/src/question/net-evidence-body.test.tsruns5,686 bytes
  • engine/src/question/predicate-call-level-fields.test.tsruns3,173 bytes
  • engine/src/question/predicate-composite-inconclusive.test.tsruns6,370 bytes
  • engine/src/question/predicate-console-pre-attach.test.tsruns4,512 bytes
  • engine/src/question/predicate-decided.test.tsruns3,093 bytes
  • engine/src/question/predicate-document-scope.test.tsruns5,798 bytes
  • engine/src/question/predicate-element-alt.test.tsruns8,980 bytes
  • engine/src/question/predicate-element-value.test.tsruns7,413 bytes
  • engine/src/question/predicate-empty-combinator.test.tsruns2,788 bytes
  • engine/src/question/predicate-eval.oracle.test.tsruns7,419 bytes
  • engine/src/question/predicate-eval.settle-busy.test.tsruns2,365 bytes
  • engine/src/question/predicate-eval.settle-retry.test.tsruns2,760 bytes
  • engine/src/question/predicate-eval.settle-scope.test.tsruns8,397 bytes
  • engine/src/question/predicate-hollow-liveregion.test.tsruns5,451 bytes
  • engine/src/question/predicate-net-body.test.tsruns11,565 bytes
  • engine/src/question/predicate-net-media.test.tsruns2,912 bytes
  • engine/src/question/predicate-net-pre-attach.test.tsruns5,666 bytes
  • engine/src/question/predicate-net-unobserved.test.tsruns12,794 bytes
  • engine/src/question/predicate-not-evidence.test.tsruns4,167 bytes
  • engine/src/question/predicate-parse-example.test.tsruns2,997 bytes
  • engine/src/question/predicate-replaced-document-response.test.tsruns6,795 bytes
  • engine/src/question/predicate-route-current.test.tsruns2,968 bytes
  • engine/src/question/predicate-route-hash.test.tsruns3,434 bytes
  • engine/src/question/predicate-route-identity-params.test.tsruns2,078 bytes
  • engine/src/question/predicate-route-server-pending.test.tsruns3,436 bytes
  • engine/src/question/predicate-route-unsettled.test.tsruns3,811 bytes
  • engine/src/question/predicate-shape.test.tsruns9,110 bytes
  • engine/src/question/predicate-spelling.test.tsruns2,793 bytes
  • engine/src/question/predicate-state-scoped.test.tsruns7,248 bytes
  • engine/src/question/predicate-store-narrowing.test.tsruns5,840 bytes
  • engine/src/question/predicate-strict.test.tsruns14,826 bytes
  • engine/src/question/predicate-text-full.test.tsruns15,302 bytes
  • engine/src/question/predicate-text-scope.test.tsruns8,547 bytes
  • engine/src/question/predicate-truncated-state.test.tsruns6,306 bytes
  • engine/src/question/predicate-url-raw.test.tsruns2,850 bytes
  • engine/src/question/predicate/body-key-fragment.tsruns2,478 bytes
  • engine/src/question/predicate/name-near-miss.test.tsruns3,987 bytes
  • engine/src/question/predicate/name-near-miss.tsruns2,292 bytes
  • engine/src/question/predicate/nested-field-match.test.tsruns8,451 bytes
  • engine/src/question/predicate/net-blind-spots.tsruns11,252 bytes
  • engine/src/question/predicate/net-evidence.tsruns4,530 bytes
  • engine/src/question/predicate/net-media-before-window.test.tsruns6,214 bytes
  • engine/src/question/predicate/net-unpatched-fetch.test.tsruns2,821 bytes
  • engine/src/question/predicate/net-unrecorded-body.test.tsruns3,810 bytes
  • engine/src/question/predicate/observed-in-window.test.tsruns2,340 bytes
  • engine/src/question/predicate/observed-in-window.tsruns2,393 bytes
  • engine/src/question/predicate/predicate-animation.test.tsruns5,839 bytes
  • engine/src/question/predicate/predicate-animation.tsruns11,496 bytes
  • engine/src/question/predicate/predicate-asks.tsruns2,536 bytes
  • engine/src/question/predicate/predicate-compare.test.tsruns14,799 bytes
  • engine/src/question/predicate/predicate-compare.tsruns14,085 bytes
  • engine/src/question/predicate/predicate-console.tsruns7,854 bytes
  • engine/src/question/predicate/predicate-corrected-example.test.tsruns6,728 bytes
  • engine/src/question/predicate/predicate-element.test.tsruns24,392 bytes
  • engine/src/question/predicate/predicate-element.tsruns38,686 bytes
  • engine/src/question/predicate/predicate-eval-kit.tsruns17,091 bytes
  • engine/src/question/predicate/predicate-eval.tsruns45,230 bytes
  • engine/src/question/predicate/predicate-parse.test.tsruns9,979 bytes
  • engine/src/question/predicate/predicate-parse.tsruns23,353 bytes
  • engine/src/question/predicate/predicate-precheck.test.tsruns8,135 bytes
  • engine/src/question/predicate/predicate-precheck.tsruns6,434 bytes
  • engine/src/question/predicate/predicate-request-body.test.tsruns9,935 bytes
  • engine/src/question/predicate/predicate-request-body.tsruns9,377 bytes
  • engine/src/question/predicate/predicate-response-body.test.tsruns6,890 bytes
  • engine/src/question/predicate/predicate-route.tsruns17,991 bytes
  • engine/src/question/predicate/predicate-schema.tsruns21,487 bytes
  • engine/src/question/predicate/predicate-session.tsruns6,305 bytes
  • engine/src/question/predicate/predicate-state.tsruns15,905 bytes
  • engine/src/question/predicate/predicate-to-links.test.tsruns1,403 bytes
  • engine/src/question/predicate/predicate-to-links.tsruns1,944 bytes
  • engine/src/question/predicate/predicate-truncated-body-matches.test.tsruns3,728 bytes
  • engine/src/question/predicate/predicate-truncated-body-old-sdk.test.tsruns2,993 bytes
  • engine/src/question/predicate/predicate.test.tsruns98,356 bytes
  • engine/src/question/predicate/predicate.tsruns45,002 bytes
  • engine/src/question/predicate/property-reaches-the-verdict.test.tsruns2,608 bytes
  • engine/src/question/predicate/property.test.tsruns4,478 bytes
  • engine/src/question/predicate/property.tsruns12,009 bytes
  • engine/src/question/predicate/relative-property.test.tsruns5,814 bytes
  • engine/src/question/predicate/split-text-miss.test.tsruns3,918 bytes
  • engine/src/question/predicate/split-text-miss.tsruns4,002 bytes
  • engine/src/question/predicate/testid-near-miss.test.tsruns2,371 bytes
  • engine/src/question/predicate/testid-near-miss.tsruns1,692 bytes
  • engine/src/question/predicate/text-query.test.tsruns1,533 bytes
  • engine/src/question/predicate/truncated-body-advice.tsruns2,288 bytes
  • engine/src/question/reaction.test.tsruns4,260 bytes
  • engine/src/question/reaction.tsruns2,762 bytes
  • engine/src/question/route-of-event.test.tsruns4,786 bytes
  • engine/src/question/text-satisfies.test.tsruns4,934 bytes
  • engine/src/state-bookkeeping.tsruns5,102 bytes
  • engine/src/the-rules-stand-alone.test.tsruns6,541 bytes
  • engine/src/window/adversary.test.tsruns3,246 bytes
  • engine/src/window/adversary.tsruns4,010 bytes
  • engine/src/window/ambient.test.tsruns5,046 bytes
  • engine/src/window/ambient.tsruns5,368 bytes
  • engine/src/window/appearance-budget.test.tsruns3,289 bytes
  • engine/src/window/appearance-budget.tsruns3,172 bytes
  • engine/src/window/asset-noise.test.tsruns3,236 bytes
  • engine/src/window/asset-noise.tsruns3,426 bytes
  • engine/src/window/body-relevance.test.tsruns4,514 bytes
  • engine/src/window/body-relevance.tsruns5,055 bytes
  • engine/src/window/byte-size.tsruns808 bytes
  • engine/src/window/engine-host.tsruns2,041 bytes
  • engine/src/window/event-filters.test.tsruns13,273 bytes
  • engine/src/window/event-filters.tsruns17,877 bytes
  • engine/src/window/json-salvage.test.tsruns2,157 bytes
  • engine/src/window/json-salvage.tsruns3,978 bytes
  • engine/src/window/network-detail-merge.test.tsruns7,299 bytes
  • engine/src/window/network-detail-merge.tsruns7,334 bytes
  • engine/src/window/ring-buffer-armed-window.test.tsruns5,581 bytes
  • engine/src/window/ring-buffer-window-loss.test.tsruns3,656 bytes
  • engine/src/window/ring-buffer.test.tsruns6,016 bytes
  • engine/src/window/ring-buffer.tsruns10,772 bytes
  • engine/tsconfig.jsonasset318 bytes
  • engine/vitest.config.tsruns989 bytes
  • eslint.config.mjsruns9,791 bytes
  • init/LICENSEasset11,343 bytes
  • init/NOTICEasset143 bytes
  • init/README.mddoc1,454 bytes
  • init/eslint-suppressions.jsonasset5,914 bytes
  • init/package.jsonruns1,645 bytes
  • init/src/agent-contract-consent.test.tsruns3,659 bytes
  • init/src/agent-rules-refresh.test.tsruns3,747 bytes
  • init/src/angular.test.tsruns11,502 bytes
  • init/src/capabilities-every-framework.test.tsruns5,075 bytes
  • init/src/closing-is-an-instruction.test.tsruns3,453 bytes
  • init/src/csp-inline-script.test.tsruns6,051 bytes
  • init/src/csp-step.test.tsruns7,346 bytes
  • init/src/detect/capabilities.test.tsruns9,818 bytes
  • init/src/detect/capabilities.tsruns10,638 bytes
  • init/src/detect/declared/app-choice.test.tsruns3,057 bytes
  • init/src/detect/declared/app-choice.tsruns1,994 bytes
  • init/src/detect/declared/init-opt-out.test.tsruns4,201 bytes
  • init/src/detect/declared/init-opt-out.tsruns1,690 bytes
  • init/src/detect/detect.test.tsruns15,249 bytes
  • init/src/detect/detect.tsruns29,516 bytes
  • init/src/detect/dev-script.test.tsruns3,922 bytes
  • init/src/detect/dev-script.tsruns12,608 bytes
  • init/src/detect/dev-server-ports.test.tsruns923 bytes
  • init/src/detect/dev-server-ports.tsruns3,505 bytes
  • init/src/detect/existing-config.tsruns2,794 bytes
  • init/src/detect/lockfiles.tsruns2,137 bytes
  • init/src/detect/non-js-project.test.tsruns7,387 bytes
  • init/src/detect/non-js-project.tsruns10,427 bytes
  • init/src/detect/package-manager-field.test.tsruns2,986 bytes
  • init/src/detect/platform.tsruns754 bytes
  • init/src/detect/prettier-config.test.tsruns1,345 bytes
  • init/src/detect/prettier-config.tsruns1,436 bytes
  • init/src/detect/workspace-apps.test.tsruns5,916 bytes
  • init/src/detect/workspace-apps.tsruns15,712 bytes
  • init/src/detect/workspace-redirect-command.test.tsruns6,999 bytes
  • init/src/detect/workspace-redirect.tsruns11,554 bytes
  • init/src/dev-server-policy-single-source.test.tsruns5,219 bytes
  • init/src/diagnose/closing-hint.tsruns9,262 bytes
  • init/src/diagnose/containerised-dev-server.test.tsruns6,881 bytes
  • init/src/diagnose/containerised-dev-server.tsruns5,059 bytes
  • init/src/diagnose/csp-check.test.tsruns7,067 bytes
  • init/src/diagnose/csp-check.tsruns15,552 bytes
  • init/src/diagnose/csp-doctor.test.tsruns5,903 bytes
  • init/src/diagnose/csp-doctor.tsruns7,735 bytes
  • init/src/diagnose/csp-step.test.tsruns1,752 bytes
  • init/src/diagnose/csp-step.tsruns4,847 bytes
  • init/src/diagnose/desktop-doctor.test.tsruns10,253 bytes
  • init/src/diagnose/desktop-doctor.tsruns11,034 bytes
  • init/src/diagnose/init-failure.tsruns1,367 bytes
  • init/src/diagnose/install-hint.test.tsruns1,970 bytes
  • init/src/diagnose/install-hint.tsruns3,152 bytes
  • init/src/diagnose/install-retries.test.tsruns1,527 bytes
  • init/src/diagnose/install-retries.tsruns6,829 bytes
  • init/src/diagnose/terminal-wrap.test.tsruns2,525 bytes
  • init/src/diagnose/terminal-wrap.tsruns2,766 bytes
  • init/src/directory-reach.test.tsruns4,305 bytes
  • init/src/django-init.test.tsruns4,747 bytes
  • init/src/electron-forge.test.tsruns5,587 bytes
  • init/src/finds-the-app-folder.test.tsruns5,609 bytes
  • init/src/frozen-port.test.tsruns4,011 bytes
  • init/src/gather-plan-input.tsruns23,769 bytes
  • init/src/host.tsruns4,327 bytes
  • init/src/html-no-build.test.tsruns3,704 bytes
  • init/src/index.tsruns5,387 bytes
  • init/src/install-pins-running-version.test.tsruns3,142 bytes
  • init/src/install-quarantine.test.tsruns3,135 bytes
  • init/src/memory-io.test-helpers.tsruns2,629 bytes
  • init/src/new-id-hand-written.test.tsruns1,406 bytes
  • init/src/next-capabilities-notice.test.tsruns3,750 bytes
  • init/src/next-daemon-url.test.tsruns4,149 bytes
  • init/src/no-package-json.tsruns12,693 bytes
  • init/src/node-io-output.test.tsruns845 bytes
  • init/src/node-io.test.tsruns2,104 bytes
  • init/src/node-io.tsruns8,511 bytes
  • init/src/non-localhost-guidance.test.tsruns1,660 bytes
  • init/src/nuxt.test.tsruns10,026 bytes
  • init/src/one-bridge-url.test.tsruns4,551 bytes
  • init/src/orphan-modules.test.tsruns1,156 bytes
  • init/src/patch/angular.tsruns11,779 bytes
  • init/src/patch/astro-host.test.tsruns3,254 bytes
  • init/src/patch/astro-host.tsruns1,613 bytes
  • init/src/patch/astro-patch.test.tsruns17,953 bytes
  • init/src/patch/astro-patch.tsruns10,763 bytes
  • init/src/patch/brace-scan.tsruns1,700 bytes
  • init/src/patch/cra.test.tsruns5,453 bytes
  • init/src/patch/cra.tsruns10,241 bytes
  • init/src/patch/electron-patch.test.tsruns8,805 bytes
  • init/src/patch/electron-patch.tsruns7,097 bytes
  • init/src/patch/electron-vite-patch.test.tsruns4,915 bytes
  • init/src/patch/electron-vite-patch.tsruns5,276 bytes
  • init/src/patch/format-generated.test.tsruns3,941 bytes
  • init/src/patch/format-generated.tsruns2,519 bytes
  • init/src/patch/generated-dev-module-typechecks.test.tsruns15,452 bytes
  • init/src/patch/next-patch.test.tsruns15,234 bytes
  • init/src/patch/next-patch.tsruns17,017 bytes
  • init/src/patch/nuxt-patch.tsruns2,008 bytes
  • init/src/patch/nuxt-snippets.tsruns8,295 bytes
  • init/src/patch/patch-kind.tsruns568 bytes
  • init/src/patch/prettier-ignore.test.tsruns2,237 bytes
  • init/src/patch/prettier-ignore.tsruns2,428 bytes
  • init/src/patch/python-snippets.tsruns4,527 bytes
  • init/src/patch/remix.tsruns2,715 bytes
  • init/src/patch/snippets.tsruns47,518 bytes
  • init/src/patch/static-page.tsruns5,394 bytes
  • init/src/patch/tanstack-start.test.tsruns8,263 bytes
  • init/src/patch/tanstack-start.tsruns7,558 bytes
  • init/src/patch/vite-config.test.tsruns11,713 bytes
  • init/src/patch/vite-config.tsruns8,396 bytes
  • init/src/patch/vite-env-types.tsruns825 bytes
  • init/src/patch/vite-owning-config.tsruns18,431 bytes
  • init/src/patch/vite-owning-optimizer.test.tsruns3,173 bytes
  • init/src/patch/vite-snippet-order.test.tsruns2,403 bytes
  • init/src/plan/claude-never-vanishes.test.tsruns5,448 bytes
  • init/src/plan/claude-plugin-no-duplicate.test.tsruns4,414 bytes
  • init/src/plan/connect-steps.test.tsruns3,526 bytes
  • init/src/plan/connect-steps.tsruns7,255 bytes
  • init/src/plan/dev-module-is-loaded.test.tsruns5,434 bytes
  • init/src/plan/framework-adapter.test.tsruns11,197 bytes
  • init/src/plan/framework-adapter.tsruns20,781 bytes
  • init/src/plan/install-is-idempotent.test.tsruns3,658 bytes
  • init/src/plan/notices.tsruns4,082 bytes
  • init/src/plan/plan-angular.tsruns4,617 bytes
  • init/src/plan/plan-electron-vite.tsruns4,901 bytes
  • init/src/plan/plan-framework.test.tsruns7,135 bytes
  • init/src/plan/plan-framework.tsruns33,537 bytes
  • init/src/plan/plan-types.tsruns20,390 bytes
  • init/src/plan/plan-vite.tsruns13,921 bytes
  • init/src/plan/plan.test.tsruns62,274 bytes
  • init/src/plan/plan.tsruns36,396 bytes
  • init/src/plan/port-convergence.test.tsruns13,157 bytes
  • init/src/plan/port-steps.tsruns5,753 bytes
  • init/src/plan/preflight.test.tsruns7,432 bytes
  • init/src/plan/preflight.tsruns5,576 bytes
  • init/src/plan/prettier-ignore-step.test.tsruns2,858 bytes
  • init/src/plan/prompt-hook-step.test.tsruns3,777 bytes
  • init/src/plan/stop-hook-step.test.tsruns5,017 bytes
  • init/src/plan/stop-hook-step.tsruns8,889 bytes
  • init/src/project/agent-rules.test.tsruns9,331 bytes
  • init/src/project/agent-rules.tsruns23,950 bytes
  • init/src/project/install-source-config.tsruns1,380 bytes
  • init/src/project/project-id.test.tsruns4,254 bytes
  • init/src/project/project-id.tsruns1,284 bytes
  • init/src/project/refresh-rules.test.tsruns5,219 bytes
  • init/src/project/refresh-rules.tsruns2,814 bytes
  • init/src/project/remember-project.test.tsruns4,067 bytes
  • init/src/project/remember-project.tsruns4,534 bytes
  • init/src/r3f-source-mapping.test.tsruns3,674 bytes
  • init/src/react-kit-only-for-react.test.tsruns9,394 bytes
  • init/src/react-router-framework-mode.test.tsruns7,331 bytes
  • init/src/register/codex-cli-registration.test.tsruns9,192 bytes
  • init/src/register/codex-toml.test.tsruns5,065 bytes
  • init/src/register/codex-toml.tsruns7,922 bytes
  • init/src/register/detect-clients.test.tsruns1,106 bytes
  • init/src/register/detect-clients.tsruns1,976 bytes
  • init/src/register/mcp-clients.test.tsruns16,548 bytes
  • init/src/register/mcp-clients.tsruns17,747 bytes
  • init/src/register/mcp-registered.test.tsruns1,559 bytes
  • init/src/register/mcp-registered.tsruns548 bytes
  • init/src/register/mcp.test.tsruns12,494 bytes
  • init/src/register/mcp.tsruns15,748 bytes
  • init/src/register/prompt-hooks.test.tsruns14,245 bytes
  • init/src/register/prompt-hooks.tsruns22,764 bytes
  • init/src/register/slash-command.tsruns7,777 bytes
  • init/src/register/windows-quote.test.tsruns3,599 bytes
  • init/src/register/windows-quote.tsruns2,185 bytes
  • init/src/remember-project-preserves.test.tsruns3,333 bytes
  • init/src/remix.test.tsruns6,129 bytes
  • init/src/restart-hint.test.tsruns4,855 bytes
  • init/src/rules-carry-the-unfinished-job.test.tsruns4,359 bytes
  • init/src/rules-do-not-stop.test.tsruns4,093 bytes
  • init/src/rules-name-the-escape-hatches.test.tsruns4,140 bytes
  • init/src/run-types.tsruns7,897 bytes
  • init/src/run.test.tsruns82,501 bytes
  • init/src/run.tsruns28,515 bytes
  • init/src/sdk-packages.tsruns2,155 bytes
  • init/src/skill-copies-agree.test.tsruns11,081 bytes
  • init/src/snippet-token.test.tsruns3,529 bytes
  • init/src/snippets-compile.test.tsruns2,406 bytes
  • init/src/static-page.test.tsruns13,431 bytes
  • init/src/streamlit-snippet.test.tsruns1,054 bytes
  • init/src/suggestion-is-not-registration.test.tsruns4,560 bytes
  • init/src/unverified-note.test.tsruns2,534 bytes
  • init/src/version.tsruns1,570 bytes
  • init/src/webgl-canvas-limit.test.tsruns2,379 bytes
  • init/src/webpack4-cra.test.tsruns4,923 bytes
  • init/src/workspace-onboarding.test.tsruns6,190 bytes
  • init/tsconfig.jsonasset268 bytes
  • init/vitest.config.tsruns2,924 bytes
  • install/README.mddoc5,477 bytes
  • install/install.ps1runs21,361 bytes
  • install/install.shruns20,833 bytes
  • knip.jsoncasset2,819 bytes
  • llms.txtdoc26,908 bytes
  • open-verification/CHANGE-PROCESS.mddoc5,932 bytes
  • open-verification/CHANGELOG.mddoc7,698 bytes
  • open-verification/CONFORMANCE.mddoc11,574 bytes
  • open-verification/EXTENSIONS.mddoc5,367 bytes
  • open-verification/GOVERNANCE.mddoc5,384 bytes
  • open-verification/LICENSEasset11,343 bytes
  • open-verification/README.mddoc3,126 bytes
  • open-verification/SECURITY.mddoc12,406 bytes
  • open-verification/SPEC.mddoc65,288 bytes
  • open-verification/VERSIONING.mddoc6,959 bytes
  • open-verification/docs/GLOSSARY.mddoc7,133 bytes
  • open-verification/docs/IMPLEMENTERS.mddoc10,769 bytes
  • open-verification/package.jsonruns1,721 bytes
  • open-verification/scripts/gen-schema.d.mtsruns1,155 bytes
  • open-verification/scripts/gen-schema.mjsruns6,025 bytes
  • open-verification/src/adjudication-vectors.test.tsruns2,824 bytes
  • open-verification/src/docs-name-what-exists.test.tsruns4,609 bytes
  • open-verification/src/every-rule-is-proved.test.tsruns3,549 bytes
  • open-verification/src/index.tsruns2,181 bytes
  • open-verification/src/language/composite-stitch.test.tsruns4,073 bytes
  • open-verification/src/language/composite-typecheck.test.tsruns2,588 bytes
  • open-verification/src/language/composition.test.tsruns3,758 bytes
  • open-verification/src/language/criteria.test.tsruns3,415 bytes
  • open-verification/src/language/criteria.tsruns3,166 bytes
  • open-verification/src/language/flow-document.test.tsruns2,119 bytes
  • open-verification/src/language/phases.test.tsruns2,663 bytes
  • open-verification/src/language/phases.tsruns3,589 bytes
  • open-verification/src/language/step-address.test.tsruns3,376 bytes
  • open-verification/src/language/typecheck.test.tsruns4,516 bytes
  • open-verification/src/language/typecheck.tsruns13,238 bytes
  • open-verification/src/orphan-modules.test.tsruns2,138 bytes
  • open-verification/src/reference/service-realm.test.tsruns13,388 bytes
  • open-verification/src/reference/service-realm.tsruns12,480 bytes
  • open-verification/src/refinements-reach-the-contract.test.tsruns4,991 bytes
  • open-verification/src/registry.tsruns3,466 bytes
  • open-verification/src/requirement-ids.test.tsruns4,154 bytes
  • open-verification/src/rules-are-exercised.test.tsruns18,761 bytes
  • open-verification/src/schema-covers-vocabulary.test.tsruns3,314 bytes
  • open-verification/src/spec-names-the-vocabulary.test.tsruns3,121 bytes
  • open-verification/src/spi/adjudicator.test.tsruns12,792 bytes
  • open-verification/src/spi/adjudicator.tsruns11,963 bytes
  • open-verification/src/spi/realm-satisfies.test.tsruns2,564 bytes
  • open-verification/src/spi/realm.test.tsruns7,620 bytes
  • open-verification/src/spi/realm.tsruns15,683 bytes
  • open-verification/src/spi/witness.test.tsruns5,665 bytes
  • open-verification/src/spi/witness.tsruns4,396 bytes
  • open-verification/src/vocabulary/channel.tsruns9,527 bytes
  • open-verification/src/vocabulary/determinism.test.tsruns3,930 bytes
  • open-verification/src/vocabulary/determinism.tsruns4,586 bytes
  • open-verification/src/vocabulary/evidence.tsruns9,088 bytes
  • open-verification/src/vocabulary/fixture.test.tsruns3,331 bytes
  • open-verification/src/vocabulary/fixture.tsruns3,187 bytes
  • open-verification/src/vocabulary/intent.test.tsruns2,234 bytes
  • open-verification/src/vocabulary/intent.tsruns8,501 bytes
  • open-verification/src/vocabulary/memory.test.tsruns3,387 bytes
  • open-verification/src/vocabulary/memory.tsruns11,999 bytes
  • open-verification/src/vocabulary/mutation.test.tsruns3,234 bytes
  • open-verification/src/vocabulary/mutation.tsruns4,129 bytes
  • open-verification/src/vocabulary/predicate.test.tsruns12,110 bytes
  • open-verification/src/vocabulary/predicate.tsruns13,065 bytes
  • open-verification/src/vocabulary/realm-surface.tsruns10,090 bytes
  • open-verification/src/vocabulary/run-witnesses.test.tsruns3,478 bytes
  • open-verification/src/vocabulary/run.tsruns8,489 bytes
  • open-verification/src/vocabulary/subject.test.tsruns2,262 bytes
  • open-verification/src/vocabulary/subject.tsruns7,071 bytes
  • open-verification/src/vocabulary/verdict.tsruns8,520 bytes
  • open-verification/tsconfig.jsonasset163 bytes
  • open-verification/vectors/adjudication.jsonasset20,312 bytes
  • open-verification/vitest.config.tsruns989 bytes
  • package.jsonruns6,648 bytes
  • pnpm-lock.yamlasset411,920 bytes
  • pnpm-workspace.yamlasset1,487 bytes
  • pre-commit.shruns8,963 bytes
  • prepare-commit-msg.shruns1,061 bytes
  • scripts/README.mddoc7,290 bytes
  • scripts/alias-dist.mjsruns2,896 bytes
  • scripts/assemble-changelog.mjsruns4,870 bytes
  • scripts/check-boundaries.d.mtsruns575 bytes
  • scripts/check-boundaries.mjsruns14,598 bytes
  • scripts/check-docs-site.mjsruns6,236 bytes
  • scripts/check-js-audit.mjsruns8,545 bytes
  • scripts/check-lossy-transforms.mjsruns23,981 bytes
  • scripts/check-pack-size.mjsruns3,470 bytes
  • scripts/check-pending-release.mjsruns6,982 bytes
  • scripts/check-unbumped-packages.mjsruns3,902 bytes
  • scripts/ci-run.mjsruns9,651 bytes
  • scripts/ci/changes.mjsruns7,299 bytes
  • scripts/ci/flaky-expiry.mjsruns8,881 bytes
  • scripts/ci/tier-map.jsonasset1,160 bytes
  • scripts/ci/tier-patterns.jsonasset2,402 bytes
  • scripts/directory-reach.d.mtsruns385 bytes
  • scripts/directory-reach.mjsruns6,572 bytes
  • scripts/guard-tests.d.mtsruns779 bytes
  • scripts/guard-tests.mjsruns6,440 bytes
  • scripts/issue-license.mjsruns5,105 bytes
  • scripts/local-registry.shruns6,301 bytes
  • scripts/orphan-scan.d.mtsruns1,339 bytes
  • scripts/orphan-scan.mjsruns9,698 bytes
  • scripts/pack-docs.mjsruns5,767 bytes
  • scripts/pack-install-gate.mjsruns1,527 bytes
  • scripts/prepare-dist.mjsruns9,229 bytes
  • scripts/safe-to-group.mjsruns11,244 bytes
  • scripts/set-version.mjsruns9,735 bytes
  • scripts/stamp-issuer-key.mjsruns8,758 bytes
  • scripts/sync-skill.d.mtsruns642 bytes
  • scripts/sync-skill.mjsruns4,869 bytes
  • scripts/test-suffixes.mjsruns2,048 bytes
  • scripts/verdaccio.yamlasset1,124 bytes
  • server.jsonasset916 bytes
  • server/.env.exampleasset1,137 bytes
  • server/LICENSEasset11,343 bytes
  • server/NOTICEasset143 bytes
  • server/README.mddoc1,620 bytes
  • server/bin/launch.jsruns623 bytes
  • server/bin/package.jsonruns25 bytes
  • server/bin/reticle.jsruns2,259 bytes
  • server/eslint-suppressions.jsonasset72,279 bytes
  • server/package.jsonruns3,404 bytes
  • server/src/agent-presence.e2e.test.tsruns9,363 bytes
  • server/src/area-label-paths.test.tsruns5,384 bytes
  • server/src/browser-bytes-only.test.tsruns3,091 bytes
  • server/src/chromium-launch-options.test.tsruns2,693 bytes
  • server/src/chromium-launch-options.tsruns3,389 bytes
  • server/src/ci-aggregate-covers-jobs.test.tsruns7,798 bytes
  • server/src/ci-routing-paths.test.tsruns14,523 bytes
  • server/src/cli.test.tsruns29,984 bytes
  • server/src/command/cli-onboarding.tsruns668 bytes
  • server/src/command/cli.tsruns42,983 bytes
  • server/src/command/cli/adhoc-suite.test.tsruns14,650 bytes
  • server/src/command/cli/adhoc-suite.tsruns11,068 bytes
  • server/src/command/cli/adhoc-verdict.test.tsruns24,465 bytes
  • server/src/command/cli/adhoc-verdict.tsruns15,116 bytes
  • server/src/command/cli/answers/gate-exit.tsruns4,188 bytes
  • server/src/command/cli/answers/gate-hook-message.test.tsruns5,067 bytes
  • server/src/command/cli/answers/gate-hook-message.tsruns4,929 bytes
  • server/src/command/cli/answers/gate-known-regression.test.tsruns3,707 bytes
  • server/src/command/cli/answers/mcp-connection-hint.tsruns388 bytes
  • server/src/command/cli/answers/open-note.test.tsruns1,934 bytes
  • server/src/command/cli/answers/open-note.tsruns3,939 bytes
  • server/src/command/cli/answers/status-next-action.test.tsruns7,746 bytes
  • server/src/command/cli/answers/status-next-action.tsruns7,715 bytes
  • server/src/command/cli/auth/cloud-keystore.tsruns5,122 bytes
  • server/src/command/cli/auth/cloud-session.tsruns4,009 bytes
  • server/src/command/cli/auth/device-flow.tsruns3,076 bytes
  • server/src/command/cli/ci-hint.test.tsruns3,671 bytes
  • server/src/command/cli/ci-hint.tsruns4,042 bytes
  • server/src/command/cli/cli-cut-list.test.tsruns11,504 bytes
  • server/src/command/cli/cli-doctor.test.tsruns4,649 bytes
  • server/src/command/cli/cli-doctor.tsruns19,708 bytes
  • server/src/command/cli/cli-flow-commands.tsruns16,951 bytes
  • server/src/command/cli/cli-gate-per-flow.test.tsruns9,550 bytes
  • server/src/command/cli/cli-kill.test.tsruns9,925 bytes
  • server/src/command/cli/cli-kill.tsruns12,393 bytes
  • server/src/command/cli/cli-parse-compare.test.tsruns1,390 bytes
  • server/src/command/cli/cli-parse-feedback.tsruns4,126 bytes
  • server/src/command/cli/cli-parse-grammar.tsruns5,118 bytes
  • server/src/command/cli/cli-parse-serve.tsruns4,562 bytes
  • server/src/command/cli/cli-parse-verify.tsruns12,056 bytes
  • server/src/command/cli/cli-parse.tsruns35,622 bytes
  • server/src/command/cli/cli-update-commands.test.tsruns8,562 bytes
  • server/src/command/cli/cli-update-commands.tsruns9,259 bytes
  • server/src/command/cli/cli-usage.tsruns16,050 bytes
  • server/src/command/cli/cli-verify-linked.test.tsruns1,343 bytes
  • server/src/command/cli/cli-verify.test.tsruns21,766 bytes
  • server/src/command/cli/cli-verify.tsruns44,227 bytes
  • server/src/command/cli/cloud-cli-verbs.test.tsruns49,503 bytes
  • server/src/command/cli/cloud-cli.test.tsruns4,381 bytes
  • server/src/command/cli/cloud-cli.tsruns24,390 bytes
  • server/src/command/cli/cloud-kit-forbidden.test.tsruns1,647 bytes
  • server/src/command/cli/cloud-kit.tsruns7,772 bytes
  • server/src/command/cli/cloud-link.tsruns17,514 bytes
  • server/src/command/cli/cloud-login-hud.test.tsruns3,162 bytes
  • server/src/command/cli/cloud-login-origin.test.tsruns2,564 bytes
  • server/src/command/cli/cloud-login.tsruns14,484 bytes
  • server/src/command/cli/config/checkout.test.tsruns2,184 bytes
  • server/src/command/cli/config/checkout.tsruns2,846 bytes
  • server/src/command/cli/config/config-discovery.test.tsruns5,433 bytes
  • server/src/command/cli/config/config-discovery.tsruns7,567 bytes
  • server/src/command/cli/connect-exit.test.tsruns1,201 bytes
  • server/src/command/cli/context-command.tsruns1,306 bytes
  • server/src/command/cli/daemon-health-parity.test.tsruns2,948 bytes
  • server/src/command/cli/daemon-link/daemon-client.tsruns10,238 bytes
  • server/src/command/cli/daemon-start-options.test.tsruns2,925 bytes
  • server/src/command/cli/daemon-start-options.tsruns4,089 bytes
  • server/src/command/cli/dials-the-daemon.test.tsruns1,148 bytes
  • server/src/command/cli/doctor-repairs.tsruns9,559 bytes
  • server/src/command/cli/doctor/browser/chromium-hint.test.tsruns11,228 bytes
  • server/src/command/cli/doctor/browser/chromium-hint.tsruns17,418 bytes
  • server/src/command/cli/doctor/doctor-agent-link.test.tsruns2,459 bytes
  • server/src/command/cli/doctor/doctor-agent-link.tsruns1,800 bytes
  • server/src/command/cli/doctor/doctor-coverage-line.test.tsruns1,416 bytes
  • server/src/command/cli/doctor/doctor-coverage-line.tsruns2,071 bytes
  • server/src/command/cli/doctor/doctor-daemon-line.test.tsruns4,562 bytes
  • server/src/command/cli/doctor/doctor-daemon-line.tsruns3,133 bytes
  • server/src/command/cli/doctor/doctor-fix.test.tsruns13,499 bytes
  • server/src/command/cli/doctor/doctor-fix.tsruns4,038 bytes
  • server/src/command/cli/doctor/doctor-launcher-line.test.tsruns2,916 bytes
  • server/src/command/cli/doctor/doctor-launcher-line.tsruns3,282 bytes
  • server/src/command/cli/doctor/doctor-project-line.test.tsruns3,490 bytes
  • server/src/command/cli/doctor/doctor-project-line.tsruns3,080 bytes
  • server/src/command/cli/doctor/doctor-rows.test.tsruns5,482 bytes
  • server/src/command/cli/doctor/doctor-rows.tsruns5,184 bytes
  • server/src/command/cli/doctor/doctor-sessions-line.test.tsruns2,786 bytes
  • server/src/command/cli/doctor/doctor-sessions-line.tsruns4,422 bytes
  • server/src/command/cli/doctor/doctor-signing-line.test.tsruns5,098 bytes
  • server/src/command/cli/doctor/doctor-signing-line.tsruns5,825 bytes
  • server/src/command/cli/drive/drive-attach.test.tsruns12,696 bytes
  • server/src/command/cli/drive/drive-attach.tsruns17,161 bytes
  • server/src/command/cli/drive/drive-command.tsruns5,656 bytes
  • server/src/command/cli/expect-quoting.test.tsruns3,211 bytes
  • server/src/command/cli/first-flow.test.tsruns1,882 bytes
  • server/src/command/cli/first-use-checks.test.tsruns5,703 bytes
  • server/src/command/cli/first-use-checks.tsruns6,732 bytes
  • server/src/command/cli/first-verdict-node.tsruns9,947 bytes
  • server/src/command/cli/first-verdict.test.tsruns10,238 bytes
  • server/src/command/cli/first-verdict.tsruns13,415 bytes
  • server/src/command/cli/front-door.test.tsruns6,351 bytes
  • server/src/command/cli/gate-accept-coverage.test.tsruns768 bytes
  • server/src/command/cli/gate-completed.test.tsruns5,548 bytes
  • server/src/command/cli/gate-exit-codes.test.tsruns2,022 bytes
  • server/src/command/cli/gate-flows-without-sources.test.tsruns4,914 bytes
  • server/src/command/cli/headless-by-default.test.tsruns1,770 bytes
  • server/src/command/cli/help-reaches-every-command.test.tsruns1,971 bytes
  • server/src/command/cli/hook/agent-tables.test.tsruns3,158 bytes
  • server/src/command/cli/hook/codex-transcript.test.tsruns5,195 bytes
  • server/src/command/cli/hook/codex-transcript.tsruns8,492 bytes
  • server/src/command/cli/hook/episode-structure.test.tsruns3,681 bytes
  • server/src/command/cli/hook/episode-structure.tsruns5,151 bytes
  • server/src/command/cli/hook/hook-command.test.tsruns2,245 bytes
  • server/src/command/cli/hook/hook-command.tsruns9,449 bytes
  • server/src/command/cli/hook/hook-fast.test.tsruns3,982 bytes
  • server/src/command/cli/hook/hook-fast.tsruns5,986 bytes
  • server/src/command/cli/hook/hook-status.test.tsruns1,689 bytes
  • server/src/command/cli/hook/prompt-hook.test.tsruns9,475 bytes
  • server/src/command/cli/hook/prompt-hook.tsruns9,536 bytes
  • server/src/command/cli/hook/tool-hook.test.tsruns14,683 bytes
  • server/src/command/cli/hook/tool-hook.tsruns12,977 bytes
  • server/src/command/cli/init-app-files-only.test.tsruns978 bytes
  • server/src/command/cli/init-new-id.test.tsruns750 bytes
  • server/src/command/cli/keep-alive-turn.test.tsruns4,813 bytes
  • server/src/command/cli/known-commands.test.tsruns2,052 bytes
  • server/src/command/cli/known-regression.tsruns2,006 bytes
  • server/src/command/cli/launch/cli-launch.test.tsruns11,071 bytes
  • server/src/command/cli/launch/cli-launch.tsruns12,154 bytes
  • server/src/command/cli/launch/sdk-version-match.test.tsruns9,937 bytes
  • server/src/command/cli/launch/sdk-version-match.tsruns11,536 bytes
  • server/src/command/cli/lifecycle/daemon-lifecycle.serve-drive.test.tsruns2,730 bytes
  • server/src/command/cli/lifecycle/daemon-lifecycle.tsruns11,361 bytes
  • server/src/command/cli/mcp-command-headless.test.tsruns661 bytes
  • server/src/command/cli/mcp-command.tsruns16,441 bytes
  • server/src/command/cli/node-floor-bin.test.tsruns2,228 bytes
  • server/src/command/cli/open-navigate.test.tsruns6,359 bytes
  • server/src/command/cli/open-navigate.tsruns5,203 bytes
  • server/src/command/cli/ports/port-holder.test.tsruns12,604 bytes
  • server/src/command/cli/ports/port-holder.tsruns12,070 bytes
  • server/src/command/cli/ports/resolve/cli-port.test.tsruns26,721 bytes
  • server/src/command/cli/ports/resolve/cli-port.tsruns14,567 bytes
  • server/src/command/cli/ports/sibling-ports.test.tsruns2,836 bytes
  • server/src/command/cli/ports/sibling-ports.tsruns2,930 bytes
  • server/src/command/cli/project-name.test.tsruns4,656 bytes
  • server/src/command/cli/project-name.tsruns7,522 bytes
  • server/src/command/cli/project-one-id.test.tsruns2,261 bytes
  • server/src/command/cli/report-command.test.tsruns6,956 bytes
  • server/src/command/cli/report-command.tsruns8,316 bytes
  • server/src/command/cli/retire-older-daemon.test.tsruns1,999 bytes
  • server/src/command/cli/setup-mcp-cli.test.tsruns6,761 bytes
  • server/src/command/cli/setup-mcp-cli.tsruns11,411 bytes
  • server/src/command/cli/setup-wait-agents.test.tsruns3,725 bytes
  • server/src/command/cli/status-dev-servers.test.tsruns1,672 bytes
  • server/src/command/cli/status-fields.tsruns9,937 bytes
  • server/src/command/cli/status/report-status.test.tsruns1,537 bytes
  • server/src/command/cli/status/status-lines.test.tsruns7,909 bytes
  • server/src/command/cli/status/status-lines.tsruns10,062 bytes
  • server/src/command/cli/status/workspace-links.test.tsruns2,167 bytes
  • server/src/command/cli/status/workspace-links.tsruns1,529 bytes
  • server/src/command/cli/suggested-commands-exist.test.tsruns3,790 bytes
  • server/src/command/cli/try-command.test.tsruns6,621 bytes
  • server/src/command/cli/try-command.tsruns19,992 bytes
  • server/src/command/cli/tutorial.tsruns1,216 bytes
  • server/src/command/cli/two-builds/compare-command.test.tsruns5,961 bytes
  • server/src/command/cli/two-builds/compare-command.tsruns9,810 bytes
  • server/src/command/cli/verify-against.test.tsruns5,619 bytes
  • server/src/command/cli/verify-against.tsruns10,106 bytes
  • server/src/command/cli/verify-confirm-dangerous.test.tsruns1,641 bytes
  • server/src/command/cli/verify-no-session.tsruns793 bytes
  • server/src/command/cli/verify-port-busy-message.test.tsruns2,504 bytes
  • server/src/command/cli/verify-require-start-control.test.tsruns1,995 bytes
  • server/src/command/cli/verify-results.score.test.tsruns6,310 bytes
  • server/src/command/cli/verify-results.tsruns5,208 bytes
  • server/src/command/cli/verify-sweep.test.tsruns1,375 bytes
  • server/src/command/cli/verify-unsupported-flags.test.tsruns9,787 bytes
  • server/src/command/daemon/binding/daemon-status-probe.test.tsruns2,898 bytes
  • server/src/command/daemon/binding/daemon-status-probe.tsruns6,914 bytes
  • server/src/command/daemon/binding/free-port.test.tsruns2,229 bytes
  • server/src/command/daemon/binding/free-port.tsruns2,666 bytes
  • server/src/command/daemon/binding/held-port.test.tsruns4,009 bytes
  • server/src/command/daemon/binding/loopback-alias.test.tsruns4,461 bytes
  • server/src/command/daemon/binding/loopback-alias.tsruns4,340 bytes
  • server/src/command/daemon/binding/loopback-reach.test.tsruns2,147 bytes
  • server/src/command/daemon/binding/loopback-reach.tsruns3,573 bytes
  • server/src/command/daemon/binding/port-presence.test.tsruns5,383 bytes
  • server/src/command/daemon/binding/port-presence.tsruns5,895 bytes
  • server/src/command/daemon/crash-cause-wiring.test.tsruns6,621 bytes
  • server/src/command/daemon/daemon-argv.tsruns531 bytes
  • server/src/command/daemon/daemon-children-hide-console.test.tsruns2,045 bytes
  • server/src/command/daemon/daemon-is-alive.test.tsruns1,416 bytes
  • server/src/command/daemon/daemon-log-rotation.test.tsruns1,799 bytes
  • server/src/command/daemon/daemon-log-runaway.test.tsruns5,283 bytes
  • server/src/command/daemon/daemon-outlives-spawner.test.tsruns4,173 bytes
  • server/src/command/daemon/daemon-reclaim.test.tsruns3,859 bytes
  • server/src/command/daemon/daemon-resilience.test.tsruns11,277 bytes
  • server/src/command/daemon/daemon-resilience.tsruns19,256 bytes
  • server/src/command/daemon/daemon-resolve.test.tsruns15,963 bytes
  • server/src/command/daemon/daemon-resolve.tsruns15,251 bytes
  • server/src/command/daemon/daemon-spawn.test.tsruns8,562 bytes
  • server/src/command/daemon/daemon-state-home.test.tsruns3,275 bytes
  • server/src/command/daemon/daemon-win32-escape.test.tsruns4,307 bytes
  • server/src/command/daemon/daemon.tsruns19,494 bytes
  • server/src/command/daemon/dev-servers.test.tsruns2,492 bytes
  • server/src/command/daemon/dev-servers.tsruns2,974 bytes
  • server/src/command/daemon/exit-trace.test.tsruns4,887 bytes
  • server/src/command/daemon/idle-shutdown.test.tsruns4,376 bytes
  • server/src/command/daemon/idle-shutdown.tsruns5,322 bytes
  • server/src/command/daemon/lifetime/daemon-exit.test.tsruns1,572 bytes
  • server/src/command/daemon/lifetime/daemon-exit.tsruns1,644 bytes
  • server/src/command/daemon/lifetime/daemon-usefulness.test.tsruns6,291 bytes
  • server/src/command/daemon/lifetime/daemon-usefulness.tsruns5,279 bytes
  • server/src/command/daemon/lifetime/death-cause.test.tsruns3,585 bytes
  • server/src/command/daemon/lifetime/death-cause.tsruns5,540 bytes
  • server/src/command/daemon/lifetime/heartbeat.test.tsruns5,564 bytes
  • server/src/command/daemon/lifetime/heartbeat.tsruns8,634 bytes
  • server/src/command/daemon/lifetime/idle-grace.test.tsruns3,192 bytes
  • server/src/command/daemon/lifetime/idle-grace.tsruns2,283 bytes
  • server/src/command/daemon/lifetime/log-cap.tsruns5,673 bytes
  • server/src/command/daemon/lifetime/startup-failure.test.tsruns1,651 bytes
  • server/src/command/daemon/lifetime/startup-failure.tsruns1,711 bytes
  • server/src/command/daemon/lifetime/unclean-predecessor.test.tsruns2,440 bytes
  • server/src/command/daemon/lifetime/unclean-predecessor.tsruns1,447 bytes
  • server/src/command/daemon/port-state.tsruns1,579 bytes
  • server/src/command/daemon/proxy-disconnect-storm.test.tsruns7,689 bytes
  • server/src/command/daemon/state-dir.test.tsruns3,600 bytes
  • server/src/command/daemon/state-dir.tsruns2,663 bytes
  • server/src/command/daemon/wake-decision.test.tsruns2,831 bytes
  • server/src/command/daemon/wake-decision.tsruns2,002 bytes
  • server/src/command/daemon/win32-escape.test.tsruns4,740 bytes
  • server/src/command/daemon/win32-escape.tsruns5,827 bytes
  • server/src/command/dev/pending-release-check.test.tsruns752 bytes
  • server/src/command/dev/vitest-worktree-exclude.test.tsruns4,854 bytes
  • server/src/command/setup/agent-configs.test.tsruns10,903 bytes
  • server/src/command/setup/agent-configs.tsruns17,921 bytes
  • server/src/command/setup/agent-io.tsruns866 bytes
  • server/src/command/setup/agent-next-steps.test.tsruns11,093 bytes
  • server/src/command/setup/agent-next-steps.tsruns12,836 bytes
  • server/src/command/setup/agent-notice-memory.test.tsruns2,225 bytes
  • server/src/command/setup/agent-notice-memory.tsruns3,152 bytes
  • server/src/command/setup/agent-writer.test.tsruns8,185 bytes
  • server/src/command/setup/agent-writer.tsruns6,508 bytes
  • server/src/command/setup/approval-migration.test.tsruns3,538 bytes
  • server/src/command/setup/approval-migration.tsruns4,085 bytes
  • server/src/command/setup/auto-approve.test.tsruns7,636 bytes
  • server/src/command/setup/auto-approve.tsruns11,206 bytes
  • server/src/command/setup/bounded-run.test.tsruns1,079 bytes
  • server/src/command/setup/bringup/bridge-port.test.tsruns2,484 bytes
  • server/src/command/setup/bringup/bridge-port.tsruns2,069 bytes
  • server/src/command/setup/bringup/connect-lease.tsruns1,745 bytes
  • server/src/command/setup/bringup/dev-server-files.test.tsruns6,392 bytes
  • server/src/command/setup/bringup/dev-server-files.tsruns6,731 bytes
  • server/src/command/setup/bringup/dev-server-log-cap.test.tsruns3,491 bytes
  • server/src/command/setup/bringup/dev-server-log-cap.tsruns5,106 bytes
  • server/src/command/setup/bringup/dev-server-wait.test.tsruns8,007 bytes
  • server/src/command/setup/bringup/dev-server-wait.tsruns6,497 bytes
  • server/src/command/setup/bringup/ensure-daemon.test.tsruns6,686 bytes
  • server/src/command/setup/bringup/ensure-daemon.tsruns10,930 bytes
  • server/src/command/setup/bringup/relaunch.test.tsruns2,965 bytes
  • server/src/command/setup/bringup/relaunch.tsruns3,512 bytes
  • server/src/command/setup/bringup/static-page-server.test.tsruns4,969 bytes
  • server/src/command/setup/bringup/static-page-server.tsruns8,016 bytes
  • server/src/command/setup/confirm-dev-server.test.tsruns2,835 bytes
  • server/src/command/setup/desktop-shape.test.tsruns3,764 bytes
  • server/src/command/setup/desktop-shape.tsruns4,902 bytes
  • server/src/command/setup/finding-before-open.test.tsruns3,549 bytes
  • server/src/command/setup/flags-named-exist.test.tsruns2,303 bytes
  • server/src/command/setup/init/agent-restart.test.tsruns1,960 bytes
  • server/src/command/setup/init/agent-restart.tsruns2,050 bytes
  • server/src/command/setup/init/init-host.test.tsruns2,268 bytes
  • server/src/command/setup/init/init-host.tsruns3,110 bytes
  • server/src/command/setup/init/init-port.test.tsruns5,924 bytes
  • server/src/command/setup/init/init-port.tsruns4,442 bytes
  • server/src/command/setup/init/init-runtime.test.tsruns14,291 bytes
  • server/src/command/setup/init/init-runtime.tsruns20,894 bytes
  • server/src/command/setup/install-launcher.test.tsruns9,062 bytes
  • server/src/command/setup/license-key.test.tsruns3,376 bytes
  • server/src/command/setup/license-key.tsruns3,540 bytes
  • server/src/command/setup/mcp-launcher.test.tsruns568 bytes
  • server/src/command/setup/mcp-launcher.tsruns579 bytes
  • server/src/command/setup/node-effects.test.tsruns23,358 bytes
  • server/src/command/setup/node-effects.tsruns15,456 bytes
  • server/src/command/setup/probe/dev-port.test.tsruns4,177 bytes
  • server/src/command/setup/probe/dev-port.tsruns5,757 bytes
  • server/src/command/setup/probe/existing-app.test.tsruns2,273 bytes
  • server/src/command/setup/probe/existing-app.tsruns1,592 bytes
  • server/src/command/setup/probe/loopback-probe-urls.test.tsruns2,764 bytes
  • server/src/command/setup/probe/loopback-probe-urls.tsruns3,803 bytes
  • server/src/command/setup/probe/page-probe.test.tsruns5,563 bytes
  • server/src/command/setup/probe/page-probe.tsruns7,945 bytes
  • server/src/command/setup/relaunch-reaches-files-only.test.tsruns1,183 bytes
  • server/src/command/setup/remaining-steps.test.tsruns5,597 bytes
  • server/src/command/setup/remaining-steps.tsruns4,753 bytes
  • server/src/command/setup/run-setup.test.tsruns46,258 bytes
  • server/src/command/setup/run-setup.tsruns33,246 bytes
  • server/src/command/setup/session-pick.test.tsruns5,422 bytes
  • server/src/command/setup/session-pick.tsruns4,763 bytes
  • server/src/command/setup/setup-command.tsruns21,201 bytes
  • server/src/command/setup/setup-install.tsruns2,376 bytes
  • server/src/command/setup/setup-mcp.test.tsruns18,711 bytes
  • server/src/command/setup/setup-mcp.tsruns10,242 bytes
  • server/src/command/setup/setup-options.test.tsruns2,839 bytes
  • server/src/command/setup/setup-options.tsruns4,626 bytes
  • server/src/command/setup/start-dev-server.tsruns2,061 bytes
  • server/src/command/setup/tauri-signing.test.tsruns4,067 bytes
  • server/src/command/setup/tauri-signing.tsruns4,516 bytes
  • server/src/command/setup/terminal/confirm.test.tsruns5,522 bytes
  • server/src/command/setup/terminal/confirm.tsruns13,353 bytes
  • server/src/command/setup/terminal/crash.test.tsruns6,150 bytes
  • server/src/command/setup/terminal/crash.tsruns4,574 bytes
  • server/src/command/setup/terminal/interrupt.test.tsruns2,923 bytes
  • server/src/command/setup/terminal/interrupt.tsruns2,035 bytes
  • server/src/command/setup/terminal/listeners.test.tsruns6,008 bytes
  • server/src/command/setup/terminal/listeners.tsruns5,303 bytes
  • server/src/command/setup/terminal/transcripts.tsruns1,576 bytes
  • server/src/command/setup/terminal/wait-progress.test.tsruns4,048 bytes
  • server/src/command/setup/terminal/wait-progress.tsruns3,392 bytes
  • server/src/command/update/nudge-credit.test.tsruns4,017 bytes
  • server/src/command/update/nudge-credit.tsruns2,691 bytes
  • server/src/command/update/sdk-sync.test.tsruns3,110 bytes
  • server/src/command/update/sdk-sync.tsruns1,369 bytes
  • server/src/command/update/update-checker.test.tsruns2,485 bytes
  • server/src/command/update/update-checker.tsruns5,752 bytes
  • server/src/command/update/update-nudge-content.test.tsruns3,753 bytes
  • server/src/command/update/update-nudge.arm.test.tsruns4,887 bytes
  • server/src/command/update/update-nudge.tsruns11,637 bytes
  • server/src/command/update/updater-rollback.test.tsruns1,119 bytes
  • server/src/command/update/updater-spawn.test.tsruns2,295 bytes
  • server/src/command/update/updater.test.tsruns2,408 bytes
  • server/src/command/update/updater.tsruns10,631 bytes
  • server/src/command/update/version-seen.test.tsruns1,686 bytes
  • server/src/command/update/version-seen.tsruns2,893 bytes
  • server/src/command/version/additive-contract-is-not-skew.test.tsruns6,242 bytes
  • server/src/command/version/daemon-skew-per-connection.test.tsruns3,030 bytes
  • server/src/command/version/identity/server-version.tsruns2,772 bytes
  • server/src/command/version/peer-announce.test.tsruns963 bytes
  • server/src/command/version/peer-announce.tsruns3,295 bytes
  • server/src/command/version/release-artifacts.test.tsruns4,045 bytes
  • server/src/command/version/retired-name-is-not-skew.test.tsruns4,704 bytes
  • server/src/command/version/sdk-fix.test.tsruns6,760 bytes
  • server/src/command/version/sdk-fix.tsruns5,443 bytes
  • server/src/command/version/server-version-is-real.test.tsruns1,425 bytes
  • server/src/command/version/skew-remedy.test.tsruns5,405 bytes
  • server/src/command/version/subset-is-not-skew.test.tsruns3,700 bytes
  • server/src/command/version/version-lockstep.test.tsruns4,534 bytes
  • server/src/command/version/version-nudge.test.tsruns5,534 bytes
  • server/src/command/version/version-nudge.tsruns4,152 bytes
  • server/src/command/version/version-skew.delivery.test.tsruns6,176 bytes
  • server/src/command/version/version-skew.test.tsruns9,322 bytes
  • server/src/command/version/version-skew.tsruns20,186 bytes
  • server/src/config-search-depth.test.tsruns2,633 bytes
  • server/src/crashed-rule-integrity.test.tsruns4,918 bytes
  • server/src/daemon-parity.test.tsruns2,801 bytes
  • server/src/dev-tooling-settle.test.tsruns5,841 bytes
  • server/src/directory-reach.test.tsruns50,934 bytes
  • server/src/dispatch-attribution.test.tsruns4,530 bytes
  • server/src/features/compare/action-plan.test.tsruns12,033 bytes
  • server/src/features/compare/action-plan.tsruns15,327 bytes
  • server/src/features/compare/behaviour-compare.test.tsruns5,135 bytes
  • server/src/features/compare/behaviour-compare.tsruns4,110 bytes
  • server/src/features/compare/behaviour-diff.test.tsruns5,232 bytes
  • server/src/features/compare/behaviour-diff.tsruns9,412 bytes
  • server/src/features/compare/behaviour-report.test.tsruns4,079 bytes
  • server/src/features/compare/behaviour-report.tsruns5,885 bytes
  • server/src/features/compare/build-readings.test.tsruns6,585 bytes
  • server/src/features/compare/build-readings.tsruns9,399 bytes
  • server/src/features/compare/compare-diff.test.tsruns4,260 bytes
  • server/src/features/compare/compare-diff.tsruns9,054 bytes
  • server/src/features/compare/compare-report.test.tsruns2,049 bytes
  • server/src/features/compare/compare-report.tsruns3,399 bytes
  • server/src/features/compare/compare-run.test.tsruns4,590 bytes
  • server/src/features/compare/compare-run.tsruns7,472 bytes
  • server/src/features/compare/outside/effect-lines.test.tsruns2,787 bytes
  • server/src/features/compare/outside/effect-lines.tsruns4,084 bytes
  • server/src/features/compare/outside/value-dictionary.test.tsruns4,105 bytes
  • server/src/features/compare/outside/value-dictionary.tsruns6,198 bytes
  • server/src/features/compare/visible-content.test.tsruns1,160 bytes
  • server/src/features/compare/visible-content.tsruns3,019 bytes
  • server/src/features/crawl/crawl-dangerous-reveal.test.tsruns2,185 bytes
  • server/src/features/crawl/crawl-empty.test.tsruns2,240 bytes
  • server/src/features/crawl/crawl-empty.tsruns1,471 bytes
  • server/src/features/crawl/crawl-exhaustive.test.tsruns7,004 bytes
  • server/src/features/crawl/crawl-exhaustive.tsruns6,805 bytes
  • server/src/features/crawl/crawl-reconnect.test.tsruns2,965 bytes
  • server/src/features/crawl/crawl-revealed.test.tsruns6,976 bytes
  • server/src/features/crawl/crawl-tools.test.tsruns9,785 bytes
  • server/src/features/crawl/crawl-tools.tsruns9,048 bytes
  • server/src/features/crawl/crawl-unnamed.test.tsruns1,986 bytes
  • server/src/features/crawl/crawl.test.tsruns19,549 bytes
  • server/src/features/crawl/crawl.tsruns27,779 bytes
  • server/src/features/crawl/inert-roles.test.tsruns2,546 bytes
  • server/src/features/exhaust/app-coverage.test.tsruns3,183 bytes
  • server/src/features/exhaust/app-coverage.tsruns2,639 bytes
  • server/src/features/exhaust/code-coverage.test.tsruns2,703 bytes
  • server/src/features/exhaust/code-coverage.tsruns3,843 bytes
  • server/src/features/exhaust/edge-cases.tsruns13,855 bytes
  • server/src/features/exhaust/edge-inputs.test.tsruns4,385 bytes
  • server/src/features/exhaust/edge-interactions.test.tsruns3,610 bytes
  • server/src/features/exhaust/edges/edge-drive.test.tsruns15,597 bytes
  • server/src/features/exhaust/edges/edge-drive.tsruns16,736 bytes
  • server/src/features/exhaust/edges/edge-run.tsruns7,872 bytes
  • server/src/features/exhaust/explorer.test.tsruns23,396 bytes
  • server/src/features/exhaust/explorer.tsruns18,894 bytes
  • server/src/features/exhaust/failure-branches.tsruns6,056 bytes
  • server/src/features/exhaust/holes.test.tsruns2,352 bytes
  • server/src/features/exhaust/invariants.test.tsruns6,335 bytes
  • server/src/features/exhaust/invariants.tsruns10,538 bytes
  • server/src/features/exhaust/ledger.test.tsruns9,703 bytes
  • server/src/features/exhaust/ledger.tsruns18,777 bytes
  • server/src/features/exhaust/session-fold.test.tsruns1,958 bytes
  • server/src/features/exhaust/session-fold.tsruns5,631 bytes
  • server/src/features/exhaust/session-port.test.tsruns7,262 bytes
  • server/src/features/exhaust/session-port.tsruns7,809 bytes
  • server/src/features/harness/app-findings.test.tsruns1,313 bytes
  • server/src/features/harness/app-findings.tsruns2,339 bytes
  • server/src/features/harness/drive-report.test.tsruns32,228 bytes
  • server/src/features/harness/drive-report.tsruns32,404 bytes
  • server/src/features/harness/drive-runs-hud.test.tsruns4,822 bytes
  • server/src/features/harness/drive-runs.test.tsruns7,487 bytes
  • server/src/features/harness/drive-runs.tsruns17,605 bytes
  • server/src/features/harness/drivers.tsruns865 bytes
  • server/src/features/harness/explore/console-pages.tsruns5,316 bytes
  • server/src/features/harness/explore/disparity.test.tsruns4,726 bytes
  • server/src/features/harness/explore/disparity.tsruns3,598 bytes
  • server/src/features/harness/explore/fake-app.tsruns2,401 bytes
  • server/src/features/harness/explore/goal-search.test.tsruns12,514 bytes
  • server/src/features/harness/explore/goal-search.tsruns7,233 bytes
  • server/src/features/harness/explore/page-tree.tsruns7,572 bytes
  • server/src/features/harness/explore/site-map.test.tsruns6,239 bytes
  • server/src/features/harness/explore/site-map.tsruns6,922 bytes
  • server/src/features/harness/fill-values.test.tsruns595 bytes
  • server/src/features/harness/fill-values.tsruns920 bytes
  • server/src/features/harness/goals.test.tsruns17,159 bytes
  • server/src/features/harness/goals.tsruns17,652 bytes
  • server/src/features/harness/harness-stops-at-end.test.tsruns4,005 bytes
  • server/src/features/harness/harness.test.tsruns15,002 bytes
  • server/src/features/harness/harness.tsruns26,209 bytes
  • server/src/features/harness/platform-config.test.tsruns8,697 bytes
  • server/src/features/harness/platform-config.tsruns10,976 bytes
  • server/src/features/harness/platform/drive-target.test.tsruns3,588 bytes
  • server/src/features/harness/platform/drive-target.tsruns4,317 bytes
  • server/src/features/harness/platform/local-apps.test.tsruns16,007 bytes
  • server/src/features/harness/platform/local-apps.tsruns15,631 bytes
  • server/src/features/harness/platform/persona-credentials.test.tsruns3,412 bytes
  • server/src/features/harness/platform/persona-credentials.tsruns3,853 bytes
  • server/src/features/harness/platform/platform-drives.test.tsruns4,285 bytes
  • server/src/features/harness/platform/platform-drives.tsruns6,457 bytes
  • server/src/features/harness/platform/refusal.tsruns4,274 bytes
  • server/src/features/harness/platform/remote-drive.test.tsruns24,326 bytes
  • server/src/features/harness/platform/remote-drive.tsruns21,936 bytes
  • server/src/features/harness/platform/script.test.tsruns14,589 bytes
  • server/src/features/harness/platform/script.tsruns13,864 bytes
  • server/src/features/harness/platform/server-driver.test.tsruns13,249 bytes
  • server/src/features/harness/platform/server-driver.tsruns11,683 bytes
  • server/src/features/harness/route-guess.tsruns3,124 bytes
  • server/src/features/harness/script/app-controls.test.tsruns1,260 bytes
  • server/src/features/harness/script/app-controls.tsruns2,078 bytes
  • server/src/features/harness/script/lane-ids.test.tsruns735 bytes
  • server/src/features/harness/script/lane-ids.tsruns1,105 bytes
  • server/src/features/harness/script/script-run.early-look.test.tsruns2,913 bytes
  • server/src/features/harness/script/script-run.replay-first.test.tsruns11,495 bytes
  • server/src/features/harness/script/script-run.test.tsruns26,916 bytes
  • server/src/features/harness/script/script-run.tsruns30,779 bytes
  • server/src/features/harness/with-timeout.tsruns1,302 bytes
  • server/src/features/harness/writing-rule.test.tsruns1,219 bytes
  • server/src/features/license/license-env.test.tsruns7,336 bytes
  • server/src/features/license/license-env.tsruns5,543 bytes
  • server/src/features/license/license.test.tsruns9,554 bytes
  • server/src/features/license/license.tsruns9,389 bytes
  • server/src/features/visual/capture-cleanup.test.tsruns2,101 bytes
  • server/src/features/visual/capture-cleanup.tsruns1,655 bytes
  • server/src/features/visual/capture-path.test.tsruns2,060 bytes
  • server/src/features/visual/desktop-capture.tsruns4,664 bytes
  • server/src/features/visual/drive-frame.test.tsruns4,184 bytes
  • server/src/features/visual/screenshot-names-its-session.test.tsruns7,719 bytes
  • server/src/features/visual/step-shots.test.tsruns17,105 bytes
  • server/src/features/visual/step-shots.tsruns22,602 bytes
  • server/src/features/visual/visual-diff.test.tsruns2,641 bytes
  • server/src/features/visual/visual-diff.tsruns5,685 bytes
  • server/src/features/visual/visual-store.test.tsruns4,523 bytes
  • server/src/features/visual/visual-store.tsruns3,145 bytes
  • server/src/features/visual/visual-tools.test.tsruns12,556 bytes
  • server/src/features/visual/visual-tools.tsruns16,771 bytes
  • server/src/gate-coverage.test.tsruns5,490 bytes
  • server/src/guards/ci/ci-gate-completeness.test.tsruns7,766 bytes
  • server/src/guards/ci/ci-run-decision.test.tsruns11,268 bytes
  • server/src/guards/ci/ci-sends-no-telemetry.test.tsruns1,285 bytes
  • server/src/guards/ci/dco-failure-is-actionable.test.tsruns2,920 bytes
  • server/src/guards/ci/guards-are-cache-invalidated.test.tsruns21,407 bytes
  • server/src/guards/ci/heavy-browser-tests-declare-a-timeout.test.tsruns16,183 bytes
  • server/src/guards/ci/job-timeout-fits-steps.test.tsruns1,835 bytes
  • server/src/guards/ci/matrix-freshness.test.tsruns4,080 bytes
  • server/src/guards/ci/post-merge-parity.test.tsruns7,374 bytes
  • server/src/guards/docs/doc-paths-resolve.test.tsruns4,408 bytes
  • server/src/guards/docs/docs-code-blocks.test.tsruns7,692 bytes
  • server/src/guards/docs/docs-commands-run.test.tsruns14,603 bytes
  • server/src/guards/docs/docs-version-drift.test.tsruns5,827 bytes
  • server/src/guards/docs/every-published-package-is-documented.test.tsruns4,831 bytes
  • server/src/guards/docs/guidance-commands-run.test.tsruns6,295 bytes
  • server/src/guards/docs/layout-map-is-real.test.tsruns8,726 bytes
  • server/src/guards/docs/skill-file-size.test.tsruns5,670 bytes
  • server/src/guards/docs/skill-local-docs.test.tsruns2,457 bytes
  • server/src/guards/docs/telemetry-events-are-documented.test.tsruns2,718 bytes
  • server/src/guards/harness/bench-scenarios-live.test.tsruns13,253 bytes
  • server/src/guards/harness/bench-scripts-resolve.test.tsruns2,986 bytes
  • server/src/guards/harness/directory-reach-detects-a-pair.test.tsruns7,103 bytes
  • server/src/guards/harness/directory-reach-every-package.test.tsruns7,216 bytes
  • server/src/guards/harness/e2e-dist-exports.test.tsruns3,809 bytes
  • server/src/guards/harness/e2e-retry-waits-for-ports.test.tsruns2,450 bytes
  • server/src/guards/harness/false-green-oracle-independence.test.tsruns4,671 bytes
  • server/src/guards/harness/false-green-rows.test.tsruns8,233 bytes
  • server/src/guards/harness/fixture-api-reachability.test.tsruns4,665 bytes
  • server/src/guards/harness/flat-directories-are-recorded.test.tsruns39,289 bytes
  • server/src/guards/harness/harness-kills-only-listeners.test.tsruns5,186 bytes
  • server/src/guards/harness/integration-coverage.test.tsruns11,411 bytes
  • server/src/guards/harness/mock-specifiers-resolve.test.tsruns3,400 bytes
  • server/src/guards/harness/orphan-scan-is-not-vacuous.test.tsruns2,495 bytes
  • server/src/guards/harness/safe-to-group-answers-everywhere.test.tsruns5,792 bytes
  • server/src/guards/harness/safe-to-group-predicts.test.tsruns8,665 bytes
  • server/src/guards/harness/script-paths-exist.test.tsruns13,043 bytes
  • server/src/guards/harness/source-read-by-path-exists.test.tsruns6,618 bytes
  • server/src/guards/harness/the-hub-is-not-imported-back.test.tsruns4,533 bytes
  • server/src/guards/release/changelog-freshness.test.tsruns7,928 bytes
  • server/src/guards/release/changelog-structure.test.tsruns4,064 bytes
  • server/src/guards/release/committed-assets-are-referenced.test.tsruns5,601 bytes
  • server/src/guards/release/crate-version-lockstep.test.tsruns4,108 bytes
  • server/src/guards/release/every-build-resolves-its-aliases.test.tsruns5,977 bytes
  • server/src/guards/release/every-package-ships-its-licence.test.tsruns6,615 bytes
  • server/src/guards/release/imports-are-declared.test.tsruns6,176 bytes
  • server/src/guards/release/issuer-key-stamp.test.tsruns9,197 bytes
  • server/src/guards/release/package-payload.test.tsruns9,522 bytes
  • server/src/guards/release/prepack-keeps-stdout-clean.test.tsruns4,141 bytes
  • server/src/guards/release/protocol-version-is-not-lockstepped.test.tsruns3,808 bytes
  • server/src/guards/release/public-subpaths-are-pinned.test.tsruns9,984 bytes
  • server/src/guards/release/published-schema-names-are-pinned.test.tsruns6,451 bytes
  • server/src/guards/release/published-skill-artifacts.test.tsruns18,803 bytes
  • server/src/guards/release/release-gates-are-listed.test.tsruns4,109 bytes
  • server/src/guards/release/scoped-packages-publish-public.test.tsruns5,721 bytes
  • server/src/hooks/client-directory.test.tsruns1,854 bytes
  • server/src/hooks/client-directory.tsruns2,509 bytes
  • server/src/hooks/coding-agents.test.tsruns1,958 bytes
  • server/src/hooks/coding-agents.tsruns5,965 bytes
  • server/src/hooks/driven-by-bind.test.tsruns1,760 bytes
  • server/src/hooks/driven-by.test.tsruns876 bytes
  • server/src/hooks/driven-by.tsruns2,956 bytes
  • server/src/hooks/episode-stamp.tsruns3,275 bytes
  • server/src/hooks/hook-bus.test.tsruns4,009 bytes
  • server/src/hooks/hook-bus.tsruns6,340 bytes
  • server/src/hooks/hook-commands.test.tsruns11,483 bytes
  • server/src/hooks/hook-commands.tsruns9,646 bytes
  • server/src/hooks/hook-emit.tsruns4,846 bytes
  • server/src/hooks/hooks-reach-a-subscriber.test.tsruns6,572 bytes
  • server/src/hooks/tool-log.test.tsruns1,276 bytes
  • server/src/hooks/tool-log.tsruns1,407 bytes
  • server/src/http-server.test.tsruns20,019 bytes
  • server/src/import-graph.test.tsruns2,524 bytes
  • server/src/import-graph.tsruns5,304 bytes
  • server/src/inconclusive.test.tsruns3,015 bytes
  • server/src/index.daemon.test.tsruns6,886 bytes
  • server/src/index.drive.test.tsruns8,471 bytes
  • server/src/index.exit-sync.test.tsruns2,768 bytes
  • server/src/index.mcp-live-session.test.tsruns6,669 bytes
  • server/src/index.replay-verdict.test.tsruns1,957 bytes
  • server/src/index.tsruns44,633 bytes
  • server/src/judgement/app-graph/journal-steps.test.tsruns3,510 bytes
  • server/src/judgement/app-graph/journal-steps.tsruns3,907 bytes
  • server/src/judgement/capsule/capsule-dedup.test.tsruns5,233 bytes
  • server/src/judgement/capsule/capsule-store.test.tsruns3,792 bytes
  • server/src/judgement/capsule/capsule-store.tsruns7,134 bytes
  • server/src/judgement/capsule/capsule.test.tsruns5,465 bytes
  • server/src/judgement/capsule/capsule.tsruns4,786 bytes
  • server/src/judgement/capsule/causal-summary.test.tsruns12,243 bytes
  • server/src/judgement/capsule/causal-summary.tsruns16,642 bytes
  • server/src/judgement/capsule/divergence.test.tsruns4,018 bytes
  • server/src/judgement/capsule/divergence.tsruns4,736 bytes
  • server/src/judgement/capsule/field-summary.test.tsruns1,868 bytes
  • server/src/judgement/capsule/truncated-window.test.tsruns3,556 bytes
  • server/src/judgement/capsule/wire-capsule-does-not-repeat-summary.test.tsruns2,495 bytes
  • server/src/judgement/domain/domain-model.test.tsruns5,538 bytes
  • server/src/judgement/domain/domain-model.tsruns8,749 bytes
  • server/src/judgement/domain/domain-tools.tsruns5,748 bytes
  • server/src/judgement/domain/flow-risk.test.tsruns2,271 bytes
  • server/src/judgement/domain/flow-risk.tsruns3,632 bytes
  • server/src/judgement/oracles/flow-instrument-gaps.test.tsruns2,001 bytes
  • server/src/judgement/oracles/flow-instrument-gaps.tsruns1,994 bytes
  • server/src/judgement/oracles/gap-kind-is-core.test.tsruns1,637 bytes
  • server/src/judgement/oracles/propose-consequences.test.tsruns4,284 bytes
  • server/src/judgement/oracles/propose-consequences.tsruns4,507 bytes
  • server/src/judgement/oracles/self-instrument.test.tsruns1,834 bytes
  • server/src/judgement/oracles/self-instrument.tsruns3,203 bytes
  • server/src/judgement/outcome/assertion-integrity.test.tsruns1,671 bytes
  • server/src/judgement/outcome/assertion-integrity.tsruns1,628 bytes
  • server/src/judgement/outcome/attributed-failure.test.tsruns2,135 bytes
  • server/src/judgement/outcome/attributed-failure.tsruns1,187 bytes
  • server/src/judgement/outcome/expect-round-trip.test.tsruns3,579 bytes
  • server/src/judgement/outcome/role-drift-reason.test.tsruns2,481 bytes
  • server/src/judgement/outcome/role-drift-reason.tsruns2,342 bytes
  • server/src/judgement/outcome/verify-change-verdict.tsruns1,288 bytes
  • server/src/judgement/runs/artifact-carries-the-differentiators.test.tsruns4,307 bytes
  • server/src/judgement/runs/artifact/build-verification-run.test.tsruns6,151 bytes
  • server/src/judgement/runs/artifact/build-verification-run.tsruns6,048 bytes
  • server/src/judgement/runs/artifact/gap-report.test.tsruns2,077 bytes
  • server/src/judgement/runs/artifact/gap-report.tsruns2,510 bytes
  • server/src/judgement/runs/artifact/gap-summary.test.tsruns6,590 bytes
  • server/src/judgement/runs/artifact/gap-summary.tsruns6,154 bytes
  • server/src/judgement/runs/artifact/profile-redact.test.tsruns2,207 bytes
  • server/src/judgement/runs/artifact/profile-redact.tsruns1,459 bytes
  • server/src/judgement/runs/artifact/render-report.test.tsruns3,281 bytes
  • server/src/judgement/runs/artifact/render-report.tsruns3,971 bytes
  • server/src/judgement/runs/artifact/replay-mapping.test.tsruns6,785 bytes
  • server/src/judgement/runs/artifact/replay-mapping.tsruns5,513 bytes
  • server/src/judgement/runs/artifact/run-context.test.tsruns5,670 bytes
  • server/src/judgement/runs/artifact/run-context.tsruns7,441 bytes
  • server/src/judgement/runs/artifact/run-diff.test.tsruns2,477 bytes
  • server/src/judgement/runs/artifact/run-diff.tsruns3,697 bytes
  • server/src/judgement/runs/artifact/run-episode-stamp.test.tsruns4,687 bytes
  • server/src/judgement/runs/artifact/run-store-screenshots.test.tsruns2,858 bytes
  • server/src/judgement/runs/artifact/run-store.test.tsruns10,267 bytes
  • server/src/judgement/runs/artifact/run-store.tsruns21,393 bytes
  • server/src/judgement/runs/artifact/to-artifact.test.tsruns7,099 bytes
  • server/src/judgement/runs/artifact/to-artifact.tsruns8,455 bytes
  • server/src/judgement/runs/context-tools.test.tsruns6,302 bytes
  • server/src/judgement/runs/context-tools.tsruns7,835 bytes
  • server/src/judgement/runs/default-run-id.test.tsruns431 bytes
  • server/src/judgement/runs/default-run-id.tsruns1,767 bytes
  • server/src/judgement/runs/differentiators-survive-the-journey.test.tsruns3,038 bytes
  • server/src/judgement/runs/drive-run.test.tsruns23,826 bytes
  • server/src/judgement/runs/drive-run.tsruns24,651 bytes
  • server/src/judgement/runs/false-green.test.tsruns6,706 bytes
  • server/src/judgement/runs/generated-app-bugs.test.tsruns4,945 bytes
  • server/src/judgement/runs/late-answer.test.tsruns4,536 bytes
  • server/src/judgement/runs/late-answer.tsruns4,615 bytes
  • server/src/judgement/runs/repair-prompt.test.tsruns3,850 bytes
  • server/src/judgement/runs/repair-prompt.tsruns3,807 bytes
  • server/src/judgement/runs/resume.test.tsruns2,407 bytes
  • server/src/judgement/runs/resume.tsruns7,861 bytes
  • server/src/judgement/runs/reticle-runner.test.tsruns9,141 bytes
  • server/src/judgement/runs/reticle-runner.tsruns7,381 bytes
  • server/src/judgement/runs/risk-classify.test.tsruns2,031 bytes
  • server/src/judgement/runs/risk-classify.tsruns4,093 bytes
  • server/src/judgement/runs/run-ledger.test.tsruns10,229 bytes
  • server/src/judgement/runs/run-ledger.tsruns7,305 bytes
  • server/src/judgement/runs/run-tools.test.tsruns5,762 bytes
  • server/src/judgement/runs/run-tools.tsruns5,007 bytes
  • server/src/judgement/runs/runner-port.tsruns2,541 bytes
  • server/src/judgement/runs/verification-sync.test.tsruns11,504 bytes
  • server/src/judgement/runs/verification-sync.tsruns8,818 bytes
  • server/src/judgement/runs/verify-daemon.test.tsruns2,539 bytes
  • server/src/judgement/runs/verify-flow-start-state.test.tsruns5,100 bytes
  • server/src/judgement/runs/verify-http.test.tsruns2,758 bytes
  • server/src/judgement/runs/verify-http.tsruns4,810 bytes
  • server/src/judgement/runs/verify-server.test.tsruns3,189 bytes
  • server/src/judgement/runs/verify-server.tsruns5,273 bytes
  • server/src/language/flows/act-sequence-replay.test.tsruns4,124 bytes
  • server/src/language/flows/affected-flows-one-folder.test.tsruns3,844 bytes
  • server/src/language/flows/affected-session-project.test.tsruns5,854 bytes
  • server/src/language/flows/affected-tools.tsruns5,822 bytes
  • server/src/language/flows/ambient-recording-is-automatic.test.tsruns2,456 bytes
  • server/src/language/flows/ambient-tape-crosses-page-load.test.tsruns3,967 bytes
  • server/src/language/flows/anchor-settle.test.tsruns8,351 bytes
  • server/src/language/flows/annotate-console-default.test.tsruns1,278 bytes
  • server/src/language/flows/annotate-notes/annotate-net-settle.test.tsruns774 bytes
  • server/src/language/flows/annotate-notes/annotate-target.test.tsruns2,447 bytes
  • server/src/language/flows/annotate-notes/annotate-target.tsruns1,180 bytes
  • server/src/language/flows/annotate-notes/annotate.tsruns11,479 bytes
  • server/src/language/flows/annotate-text-success.test.tsruns3,938 bytes
  • server/src/language/flows/annotate-tools.test.tsruns8,732 bytes
  • server/src/language/flows/annotate-tools.tsruns10,554 bytes
  • server/src/language/flows/annotate.assert-net.test.tsruns3,250 bytes
  • server/src/language/flows/annotate.compile.test.tsruns11,081 bytes
  • server/src/language/flows/annotate.schema.test.tsruns1,350 bytes
  • server/src/language/flows/change/affected.test.tsruns3,144 bytes
  • server/src/language/flows/change/affected.tsruns4,783 bytes
  • server/src/language/flows/change/flow-sources-from-step.test.tsruns2,980 bytes
  • server/src/language/flows/change/flow-sources.test.tsruns1,839 bytes
  • server/src/language/flows/change/flow-sources.tsruns3,263 bytes
  • server/src/language/flows/change/gate.test.tsruns5,212 bytes
  • server/src/language/flows/change/gate.tsruns5,059 bytes
  • server/src/language/flows/change/git-changed.test.tsruns4,426 bytes
  • server/src/language/flows/change/git-changed.tsruns3,591 bytes
  • server/src/language/flows/classify-invoke.test.tsruns3,359 bytes
  • server/src/language/flows/component-anchor-position.test.tsruns4,488 bytes
  • server/src/language/flows/component-anchor-role.test.tsruns2,143 bytes
  • server/src/language/flows/component-anchor-text.test.tsruns2,480 bytes
  • server/src/language/flows/decision-contradictions.test.tsruns3,751 bytes
  • server/src/language/flows/decision-expect-drift.test.tsruns4,480 bytes
  • server/src/language/flows/decision-precondition.test.tsruns2,795 bytes
  • server/src/language/flows/decision-unreached.test.tsruns2,131 bytes
  • server/src/language/flows/decision.test.tsruns16,059 bytes
  • server/src/language/flows/decision.tsruns24,334 bytes
  • server/src/language/flows/destructive-replay-hint.test.tsruns4,515 bytes
  • server/src/language/flows/document-key-press.test.tsruns7,536 bytes
  • server/src/language/flows/empty-flow.test.tsruns1,652 bytes
  • server/src/language/flows/empty-flow.tsruns1,491 bytes
  • server/src/language/flows/empty-suite.test.tsruns1,715 bytes
  • server/src/language/flows/every-replay-learns.test.tsruns6,317 bytes
  • server/src/language/flows/fields/flow-secret-call.test.tsruns2,721 bytes
  • server/src/language/flows/fields/flow-secret-field.tsruns9,304 bytes
  • server/src/language/flows/fields/flow-upload-resolve.test.tsruns4,217 bytes
  • server/src/language/flows/fields/flow-upload-resolve.tsruns2,701 bytes
  • server/src/language/flows/fields/unsupplied-secret.test.tsruns3,755 bytes
  • server/src/language/flows/flow-anchor.tsruns23,915 bytes
  • server/src/language/flows/flow-author.tsruns968 bytes
  • server/src/language/flows/flow-classify.test.tsruns6,763 bytes
  • server/src/language/flows/flow-classify.tsruns9,088 bytes
  • server/src/language/flows/flow-cross-step.test.tsruns5,238 bytes
  • server/src/language/flows/flow-cross-step.tsruns3,267 bytes
  • server/src/language/flows/flow-expect-grammar.test.tsruns8,203 bytes
  • server/src/language/flows/flow-expect-grammar.tsruns11,500 bytes
  • server/src/language/flows/flow-intent-gap.test.tsruns8,163 bytes
  • server/src/language/flows/flow-intent.test.tsruns8,979 bytes
  • server/src/language/flows/flow-intent.tsruns7,165 bytes
  • server/src/language/flows/flow-journey.tsruns12,711 bytes
  • server/src/language/flows/flow-learning.tsruns7,357 bytes
  • server/src/language/flows/flow-lease.tsruns2,445 bytes
  • server/src/language/flows/flow-memory-consult.test.tsruns2,359 bytes
  • server/src/language/flows/flow-memory-consult.tsruns3,169 bytes
  • server/src/language/flows/flow-mutate-tools.test.tsruns2,919 bytes
  • server/src/language/flows/flow-mutate-tools.tsruns5,260 bytes
  • server/src/language/flows/flow-repeated-secrets.test.tsruns15,698 bytes
  • server/src/language/flows/flow-replay-run.tsruns38,423 bytes
  • server/src/language/flows/flow-replay-types.tsruns3,002 bytes
  • server/src/language/flows/flow-replay-upload-root.test.tsruns3,926 bytes
  • server/src/language/flows/flow-replay-waits-for-session.test.tsruns3,921 bytes
  • server/src/language/flows/flow-replay.also-roles.test.tsruns2,759 bytes
  • server/src/language/flows/flow-replay.before-reading.test.tsruns3,957 bytes
  • server/src/language/flows/flow-replay.console-absent.test.tsruns7,474 bytes
  • server/src/language/flows/flow-replay.document-lost.test.tsruns9,388 bytes
  • server/src/language/flows/flow-replay.dynamic.test.tsruns4,257 bytes
  • server/src/language/flows/flow-replay.expect-element.test.tsruns7,826 bytes
  • server/src/language/flows/flow-replay.navigate.test.tsruns4,851 bytes
  • server/src/language/flows/flow-replay.net-in-flight.test.tsruns2,887 bytes
  • server/src/language/flows/flow-replay.request.test.tsruns5,127 bytes
  • server/src/language/flows/flow-replay.step-pacing.test.tsruns4,595 bytes
  • server/src/language/flows/flow-replay.step-timeout.test.tsruns4,475 bytes
  • server/src/language/flows/flow-replay.test.tsruns26,038 bytes
  • server/src/language/flows/flow-replay.tsruns43,910 bytes
  • server/src/language/flows/flow-replay.unreachable.test.tsruns4,027 bytes
  • server/src/language/flows/flow-replay.unreached-step.test.tsruns7,448 bytes
  • server/src/language/flows/flow-replayable.test.tsruns8,067 bytes
  • server/src/language/flows/flow-replayable.tsruns8,899 bytes
  • server/src/language/flows/flow-result.tsruns6,268 bytes
  • server/src/language/flows/flow-save-nudges-sync.test.tsruns4,434 bytes
  • server/src/language/flows/flow-save-recording.test.tsruns6,188 bytes
  • server/src/language/flows/flow-save-root.test.tsruns12,032 bytes
  • server/src/language/flows/flow-scope.test.tsruns1,938 bytes
  • server/src/language/flows/flow-scope.tsruns1,797 bytes
  • server/src/language/flows/flow-secret-redaction.test.tsruns3,913 bytes
  • server/src/language/flows/flow-secret-supply.test.tsruns8,392 bytes
  • server/src/language/flows/flow-start-path.same-document.test.tsruns3,081 bytes
  • server/src/language/flows/flow-start-path.tsruns29,900 bytes
  • server/src/language/flows/flow-startpath-hint.test.tsruns7,009 bytes
  • server/src/language/flows/flow-startpath-navigate.test.tsruns45,280 bytes
  • server/src/language/flows/flow-step-runners.tsruns41,510 bytes
  • server/src/language/flows/flow-store-for-session.test.tsruns1,337 bytes
  • server/src/language/flows/flow-store-for-session.tsruns5,275 bytes
  • server/src/language/flows/flow-success.test.tsruns3,744 bytes
  • server/src/language/flows/flow-success.tsruns5,673 bytes
  • server/src/language/flows/flow-tools.tsruns50,778 bytes
  • server/src/language/flows/flow-verify-parallel.run.test.tsruns9,798 bytes
  • server/src/language/flows/flow-verify.bounded.test.tsruns4,191 bytes
  • server/src/language/flows/flow-verify.flaky.test.tsruns5,710 bytes
  • server/src/language/flows/flow-verify.test.tsruns5,591 bytes
  • server/src/language/flows/flow-wrong-version.test.tsruns4,157 bytes
  • server/src/language/flows/flows.heal.test.tsruns30,212 bytes
  • server/src/language/flows/flows.journey.test.tsruns7,753 bytes
  • server/src/language/flows/flows.recorded.test.tsruns9,813 bytes
  • server/src/language/flows/flows.scope.test.tsruns6,088 bytes
  • server/src/language/flows/flows.test.tsruns20,251 bytes
  • server/src/language/flows/flows.tsruns39,703 bytes
  • server/src/language/flows/flows.worktree.test.tsruns5,231 bytes
  • server/src/language/flows/git-since-honesty.test.tsruns4,065 bytes
  • server/src/language/flows/heal-not-a-rebind.test.tsruns2,066 bytes
  • server/src/language/flows/heal-precondition.test.tsruns3,092 bytes
  • server/src/language/flows/heal-precondition.tsruns2,323 bytes
  • server/src/language/flows/heal-proposal.test.tsruns5,204 bytes
  • server/src/language/flows/heal-provenance.test.tsruns3,322 bytes
  • server/src/language/flows/heal-run.tsruns10,953 bytes
  • server/src/language/flows/heal.tsruns5,656 bytes
  • server/src/language/flows/hud-steps-not-recorded.test.tsruns1,937 bytes
  • server/src/language/flows/learned-sources.test.tsruns4,128 bytes
  • server/src/language/flows/learned-sources.tsruns4,180 bytes
  • server/src/language/flows/learning-reaches-the-flow.test.tsruns5,940 bytes
  • server/src/language/flows/mutation-run.test.tsruns4,674 bytes
  • server/src/language/flows/mutation-run.tsruns3,105 bytes
  • server/src/language/flows/narrow-write.tsruns4,512 bytes
  • server/src/language/flows/non-english-secret-fill.test.tsruns7,056 bytes
  • server/src/language/flows/recorded-assertion-fidelity.test.tsruns15,406 bytes
  • server/src/language/flows/recording/flake.test.tsruns1,167 bytes
  • server/src/language/flows/recording/flake.tsruns1,821 bytes
  • server/src/language/flows/recording/recording-backtrack.test.tsruns2,712 bytes
  • server/src/language/flows/recording/recording-backtrack.tsruns3,785 bytes
  • server/src/language/flows/recording/replay-halt.tsruns2,020 bytes
  • server/src/language/flows/recording/tape/always-recording.test.tsruns4,039 bytes
  • server/src/language/flows/recording/tape/nested-recording.test.tsruns3,244 bytes
  • server/src/language/flows/recording/tape/recordings.test.tsruns13,418 bytes
  • server/src/language/flows/recording/tape/recordings.tsruns21,594 bytes
  • server/src/language/flows/regression-reaches-the-caller.test.tsruns1,916 bytes
  • server/src/language/flows/replay-ambiguous-anchor.test.tsruns5,115 bytes
  • server/src/language/flows/replay-ambiguous-component-anchor.test.tsruns9,716 bytes
  • server/src/language/flows/replay-ambiguous-role-anchor.test.tsruns12,844 bytes
  • server/src/language/flows/replay-contradictions.test.tsruns6,507 bytes
  • server/src/language/flows/replay-from-hud.tsruns2,945 bytes
  • server/src/language/flows/replay-from.test.tsruns10,981 bytes
  • server/src/language/flows/replay-halt-is-reported.test.tsruns3,687 bytes
  • server/src/language/flows/replay-invoke.test.tsruns3,496 bytes
  • server/src/language/flows/replay-nameless-role-anchor.test.tsruns7,322 bytes
  • server/src/language/flows/replay-stale-ref.test.tsruns7,725 bytes
  • server/src/language/flows/replay-stale-target.test.tsruns2,934 bytes
  • server/src/language/flows/replay-verdict-effect.test.tsruns1,217 bytes
  • server/src/language/flows/replay-window.test.tsruns7,549 bytes
  • server/src/language/flows/replay.tsruns32,758 bytes
  • server/src/language/flows/role-anchor-nearest.test.tsruns3,034 bytes
  • server/src/language/flows/role-anchor-nearest.tsruns2,317 bytes
  • server/src/language/flows/role-anchor-position.test.tsruns1,206 bytes
  • server/src/language/flows/role-anchor-within.test.tsruns5,339 bytes
  • server/src/language/flows/route-expect-roundtrip.test.tsruns4,131 bytes
  • server/src/language/flows/save-invoke.test.tsruns1,880 bytes
  • server/src/language/flows/sequence-ambiguous-anchor.test.tsruns3,719 bytes
  • server/src/language/flows/sequence-burst-gap.test.tsruns4,423 bytes
  • server/src/language/flows/sequence-expect-enforced.test.tsruns4,062 bytes
  • server/src/language/flows/sequence-expect.test.tsruns2,705 bytes
  • server/src/language/flows/sequence-late-anchor.test.tsruns5,817 bytes
  • server/src/language/flows/sequence-stale-ref.test.tsruns8,573 bytes
  • server/src/language/flows/sequence-sub-step-anchor.test.tsruns2,968 bytes
  • server/src/language/flows/sequence-substep-own-window.test.tsruns4,535 bytes
  • server/src/language/flows/sequence-substep-window.test.tsruns8,305 bytes
  • server/src/language/flows/sequence-unreachable-target.test.tsruns2,669 bytes
  • server/src/language/flows/single-replay.tsruns1,617 bytes
  • server/src/language/flows/step-consequence.test.tsruns4,539 bytes
  • server/src/language/flows/steps/page-steps.test.tsruns4,382 bytes
  • server/src/language/flows/steps/page-steps.tsruns10,191 bytes
  • server/src/language/flows/stores/annotation-store.tsruns2,872 bytes
  • server/src/language/flows/stores/assertion-tiers-store.test.tsruns5,332 bytes
  • server/src/language/flows/stores/assertion-tiers-store.tsruns4,771 bytes
  • server/src/language/flows/stores/flake-store.test.tsruns4,332 bytes
  • server/src/language/flows/stores/flake-store.tsruns2,264 bytes
  • server/src/language/flows/suite-coverage.test.tsruns2,869 bytes
  • server/src/language/flows/suite-isolation.test.tsruns3,208 bytes
  • server/src/language/flows/suite-selection.tsruns7,356 bytes
  • server/src/language/flows/suite-unknown-name.test.tsruns1,479 bytes
  • server/src/language/flows/suite/coverage.test.tsruns5,092 bytes
  • server/src/language/flows/suite/coverage.tsruns4,660 bytes
  • server/src/language/flows/suite/parallel-suite.test.tsruns3,060 bytes
  • server/src/language/flows/suite/parallel-suite.tsruns2,460 bytes
  • server/src/language/flows/suite/sequential-run.test.tsruns3,885 bytes
  • server/src/language/flows/suite/sequential-run.tsruns5,167 bytes
  • server/src/language/flows/suite/server-verify.test.tsruns2,923 bytes
  • server/src/language/flows/suite/server-verify.tsruns3,397 bytes
  • server/src/language/flows/suite/suite-flakes.test.tsruns6,480 bytes
  • server/src/language/flows/suite/suite-flakes.tsruns2,133 bytes
  • server/src/language/flows/sweep-continues-past-consequence.test.tsruns8,934 bytes
  • server/src/language/flows/testid-position.test.tsruns3,611 bytes
  • server/src/language/flows/tools.flow-replay.test.tsruns26,756 bytes
  • server/src/language/flows/tools.flows.test.tsruns16,998 bytes
  • server/src/language/flows/verdicted-capture.test.tsruns1,396 bytes
  • server/src/language/flows/verify-change-project-scope.test.tsruns4,091 bytes
  • server/src/language/flows/verify-change-tools.test.tsruns18,001 bytes
  • server/src/language/flows/verify-change-tools.tsruns17,802 bytes
  • server/src/language/flows/verify-change-unverifiable.test.tsruns1,964 bytes
  • server/src/launch-chromium.test.tsruns15,384 bytes
  • server/src/launch-chromium.tsruns15,465 bytes
  • server/src/library-path-boundary.test.tsruns8,598 bytes
  • server/src/log.test.tsruns1,868 bytes
  • server/src/log.tsruns950 bytes
  • server/src/loopback-agent.test.tsruns5,269 bytes
  • server/src/loose-scripts.test.tsruns11,977 bytes
  • server/src/machine/clock.tsruns1,459 bytes
  • server/src/machine/git-tracks.tsruns1,324 bytes
  • server/src/machine/platform.tsruns875 bytes
  • server/src/machine/repo-root.tsruns978 bytes
  • server/src/machine/temp-dir.tsruns2,262 bytes
  • server/src/mcp-http-transport.test.tsruns12,411 bytes
  • server/src/memory/cloud/account-state.test.tsruns4,901 bytes
  • server/src/memory/cloud/account-state.tsruns3,162 bytes
  • server/src/memory/cloud/background-sync.test.tsruns13,262 bytes
  • server/src/memory/cloud/background-sync.tsruns5,029 bytes
  • server/src/memory/cloud/cloud-config.test.tsruns20,201 bytes
  • server/src/memory/cloud/cloud-config.tsruns16,810 bytes
  • server/src/memory/cloud/cloud-sync.test.tsruns12,614 bytes
  • server/src/memory/cloud/cloud-sync.tsruns19,839 bytes
  • server/src/memory/cloud/harness-config.test.tsruns3,257 bytes
  • server/src/memory/cloud/harness-config.tsruns7,844 bytes
  • server/src/memory/cloud/harness-switch.test.tsruns3,901 bytes
  • server/src/memory/cloud/harness-switch.tsruns2,849 bytes
  • server/src/memory/cloud/hud-notices-source.test.tsruns4,747 bytes
  • server/src/memory/cloud/hud-notices-source.tsruns5,445 bytes
  • server/src/memory/cloud/memory-read-headers.test.tsruns1,108 bytes
  • server/src/memory/cloud/memory-scope.test.tsruns13,722 bytes
  • server/src/memory/cloud/memory-scope.tsruns15,417 bytes
  • server/src/memory/cloud/progress-reporter.test.tsruns7,992 bytes
  • server/src/memory/cloud/run-closing-claim.test.tsruns7,355 bytes
  • server/src/memory/cloud/sync-answer.tsruns2,464 bytes
  • server/src/memory/cloud/sync-cycle.test.tsruns69,533 bytes
  • server/src/memory/cloud/sync-cycle.tsruns43,725 bytes
  • server/src/memory/cloud/sync-daemon.test.tsruns45,820 bytes
  • server/src/memory/cloud/sync-daemon.tsruns42,997 bytes
  • server/src/memory/cloud/sync-describe.tsruns5,169 bytes
  • server/src/memory/cloud/sync-disk.test.tsruns10,021 bytes
  • server/src/memory/cloud/sync-disk.tsruns15,740 bytes
  • server/src/memory/cloud/sync-flow-conflict.test.tsruns5,203 bytes
  • server/src/memory/cloud/sync-flow-versions.tsruns2,099 bytes
  • server/src/memory/cloud/sync-hash.test.tsruns2,255 bytes
  • server/src/memory/cloud/sync-hash.tsruns1,790 bytes
  • server/src/memory/cloud/sync-hostile-server.test.tsruns9,155 bytes
  • server/src/memory/cloud/sync-intent-shards.test.tsruns8,618 bytes
  • server/src/memory/cloud/sync-memory-poll.test.tsruns3,130 bytes
  • server/src/memory/cloud/sync-request.test.tsruns1,652 bytes
  • server/src/memory/cloud/sync-screenshots.test.tsruns4,424 bytes
  • server/src/memory/cloud/sync-screenshots.tsruns6,383 bytes
  • server/src/memory/cloud/unsynced-roots.test.tsruns10,315 bytes
  • server/src/memory/cloud/unsynced-roots.tsruns8,733 bytes
  • server/src/memory/impact/account-watch.test.tsruns1,757 bytes
  • server/src/memory/impact/account-watch.tsruns3,022 bytes
  • server/src/memory/impact/hud-refresh.test.tsruns1,789 bytes
  • server/src/memory/impact/impact-defect.test.tsruns3,169 bytes
  • server/src/memory/impact/impact-global-merge.test.tsruns5,351 bytes
  • server/src/memory/impact/impact-recorder.test.tsruns6,772 bytes
  • server/src/memory/impact/impact-recorder.tsruns8,813 bytes
  • server/src/memory/impact/impact-store.test.tsruns18,923 bytes
  • server/src/memory/impact/impact-store.tsruns20,147 bytes
  • server/src/memory/intent/inline-intent.test.tsruns12,958 bytes
  • server/src/memory/intent/inline-intent.tsruns10,636 bytes
  • server/src/memory/intent/inline-surface.test.tsruns4,353 bytes
  • server/src/memory/intent/intent-actions-name-their-arguments.test.tsruns2,376 bytes
  • server/src/memory/intent/intent-debt.test.tsruns3,817 bytes
  • server/src/memory/intent/intent-labels-refused.test.tsruns2,084 bytes
  • server/src/memory/intent/intent-ledger-is-one.test.tsruns2,674 bytes
  • server/src/memory/intent/intent-request.test.tsruns9,903 bytes
  • server/src/memory/intent/intent-shard-store.test.tsruns6,955 bytes
  • server/src/memory/intent/intent-shard-store.tsruns17,200 bytes
  • server/src/memory/intent/intent-shard.test.tsruns4,467 bytes
  • server/src/memory/intent/intent-shard.tsruns7,140 bytes
  • server/src/memory/intent/intent-store.test.tsruns15,712 bytes
  • server/src/memory/intent/intent-store.tsruns4,150 bytes
  • server/src/memory/intent/intent-subject.test.tsruns7,767 bytes
  • server/src/memory/intent/intent-subject.tsruns7,241 bytes
  • server/src/memory/intent/intent-tools.tsruns14,094 bytes
  • server/src/memory/intent/intent-wrong-project-write.test.tsruns5,705 bytes
  • server/src/memory/intent/open-intents.tsruns4,663 bytes
  • server/src/memory/intent/record-request.tsruns4,140 bytes
  • server/src/memory/intent/settled-words.test.tsruns7,006 bytes
  • server/src/memory/intent/settled-words.tsruns6,679 bytes
  • server/src/memory/journal/ambient-store.test.tsruns2,831 bytes
  • server/src/memory/journal/ambient-store.tsruns2,281 bytes
  • server/src/memory/journal/attach-journal.test.tsruns6,157 bytes
  • server/src/memory/journal/attach-journal.tsruns2,934 bytes
  • server/src/memory/journal/bridge-journal.integration.test.tsruns3,005 bytes
  • server/src/memory/journal/deviation-report.test.tsruns3,015 bytes
  • server/src/memory/journal/deviation-report.tsruns3,552 bytes
  • server/src/memory/journal/deviation-service.test.tsruns5,594 bytes
  • server/src/memory/journal/deviation-service.tsruns2,379 bytes
  • server/src/memory/journal/drive-flow.test.tsruns15,128 bytes
  • server/src/memory/journal/drive-flow.tsruns13,289 bytes
  • server/src/memory/journal/drive-run-flush.test.tsruns5,883 bytes
  • server/src/memory/journal/drive-run-flush.tsruns4,967 bytes
  • server/src/memory/journal/envelope-store.test.tsruns2,292 bytes
  • server/src/memory/journal/envelope-store.tsruns2,419 bytes
  • server/src/memory/journal/envelope.test.tsruns2,983 bytes
  • server/src/memory/journal/envelope.tsruns4,823 bytes
  • server/src/memory/journal/episode-log.test.tsruns6,668 bytes
  • server/src/memory/journal/episode-log.tsruns15,147 bytes
  • server/src/memory/journal/journal-query.test.tsruns3,809 bytes
  • server/src/memory/journal/journal-query.tsruns7,609 bytes
  • server/src/memory/journal/journal-recorder.test.tsruns9,382 bytes
  • server/src/memory/journal/journal-recorder.tsruns14,732 bytes
  • server/src/memory/journal/on-disk/ambient-file.tsruns607 bytes
  • server/src/memory/journal/on-disk/retain-policy.test.tsruns2,703 bytes
  • server/src/memory/journal/on-disk/retain-policy.tsruns3,163 bytes
  • server/src/memory/journal/on-disk/retention.test.tsruns14,152 bytes
  • server/src/memory/journal/on-disk/retention.tsruns16,908 bytes
  • server/src/memory/journal/on-disk/startup-maintenance.test.tsruns5,918 bytes
  • server/src/memory/journal/on-disk/startup-maintenance.tsruns3,768 bytes
  • server/src/memory/journal/on-disk/workspace-gitignore.test.tsruns5,800 bytes
  • server/src/memory/journal/on-disk/workspace-gitignore.tsruns4,442 bytes
  • server/src/memory/journal/on-disk/workspace-tiers.test.tsruns3,041 bytes
  • server/src/memory/journal/on-disk/workspace-tiers.tsruns6,353 bytes
  • server/src/memory/journal/rollups.test.tsruns4,118 bytes
  • server/src/memory/journal/rollups.tsruns4,887 bytes
  • server/src/memory/journal/route-template.test.tsruns3,280 bytes
  • server/src/memory/journal/route-template.tsruns2,258 bytes
  • server/src/memory/journal/self-observation.test.tsruns3,445 bytes
  • server/src/memory/journal/self-observation.tsruns3,653 bytes
  • server/src/memory/journal/session-attribution.test.tsruns2,719 bytes
  • server/src/memory/journal/session-end-live.test.tsruns1,884 bytes
  • server/src/memory/journal/session-end-logs.test.tsruns2,603 bytes
  • server/src/memory/journal/session-end.test.tsruns27,520 bytes
  • server/src/memory/journal/session-end.tsruns22,538 bytes
  • server/src/memory/journal/session-journal-cap.test.tsruns22,647 bytes
  • server/src/memory/journal/session-journal-loss.test.tsruns7,688 bytes
  • server/src/memory/journal/session-journal.lossy-conformance.test.tsruns21,556 bytes
  • server/src/memory/journal/session-journal.test.tsruns14,977 bytes
  • server/src/memory/journal/session-journal.tsruns36,251 bytes
  • server/src/memory/journal/session-query.test.tsruns2,864 bytes
  • server/src/memory/project/artifact-root-resolver.test.tsruns16,440 bytes
  • server/src/memory/project/artifact-root-resolver.tsruns15,943 bytes
  • server/src/memory/project/artifact-root.test.tsruns26,222 bytes
  • server/src/memory/project/artifact-root.tsruns18,587 bytes
  • server/src/memory/project/artifact-roots-complete.test.tsruns11,435 bytes
  • server/src/memory/project/baselines.test.tsruns1,078 bytes
  • server/src/memory/project/baselines.tsruns1,785 bytes
  • server/src/memory/project/contract-governance.test.tsruns2,059 bytes
  • server/src/memory/project/dir/empty-baselines.test.tsruns2,337 bytes
  • server/src/memory/project/dir/id-guards-are-not-flow-names.test.tsruns3,070 bytes
  • server/src/memory/project/dir/reticle-dir.test.tsruns9,888 bytes
  • server/src/memory/project/dir/reticle-dir.tsruns14,702 bytes
  • server/src/memory/project/file-lock.test.tsruns3,046 bytes
  • server/src/memory/project/file-lock.tsruns1,933 bytes
  • server/src/memory/project/fs/fs-port-read-bounds.test.tsruns3,256 bytes
  • server/src/memory/project/fs/fs-port.test.tsruns6,457 bytes
  • server/src/memory/project/fs/fs-port.tsruns10,495 bytes
  • server/src/memory/project/fs/write-atomic.test.tsruns5,459 bytes
  • server/src/memory/project/fs/write-atomic.tsruns3,460 bytes
  • server/src/memory/project/learned-routes.test.tsruns4,109 bytes
  • server/src/memory/project/learned-routes.tsruns3,741 bytes
  • server/src/memory/project/link-directory.test.tsruns3,079 bytes
  • server/src/memory/project/link-directory.tsruns2,550 bytes
  • server/src/memory/project/machine-unsynced.test.tsruns2,047 bytes
  • server/src/memory/project/memory-fs.tsruns3,611 bytes
  • server/src/memory/project/project-directory-for.test.tsruns3,092 bytes
  • server/src/memory/project/project-for-root.tsruns2,450 bytes
  • server/src/memory/project/project-store.test.tsruns12,101 bytes
  • server/src/memory/project/project-store.tsruns12,045 bytes
  • server/src/memory/project/project-tools.test.tsruns10,041 bytes
  • server/src/memory/project/project-tools.tsruns10,679 bytes
  • server/src/memory/project/project-version-refusal.test.tsruns3,269 bytes
  • server/src/memory/project/reticle-deps.tsruns1,625 bytes
  • server/src/memory/project/root-claims.test.tsruns3,198 bytes
  • server/src/memory/project/root-claims.tsruns3,433 bytes
  • server/src/memory/project/session-root.test.tsruns11,256 bytes
  • server/src/memory/project/session-root.tsruns8,326 bytes
  • server/src/memory/project/sync-status.test.tsruns6,784 bytes
  • server/src/memory/project/sync-status.tsruns11,440 bytes
  • server/src/memory/recall/looks-like-dev-server.test.tsruns2,543 bytes
  • server/src/memory/recall/looks-like-dev-server.tsruns1,480 bytes
  • server/src/memory/recall/memory-not-linked.test.tsruns1,716 bytes
  • server/src/memory/recall/memory-tools.tsruns8,352 bytes
  • server/src/memory/recall/platform-memory.tsruns7,576 bytes
  • server/src/memory/recall/platform-round-trip.test.tsruns10,657 bytes
  • server/src/memory/recall/prior/connection-memory.test.tsruns5,431 bytes
  • server/src/memory/recall/prior/connection-memory.tsruns6,605 bytes
  • server/src/memory/recall/project-memory.test.tsruns14,020 bytes
  • server/src/memory/recall/project-memory.tsruns8,822 bytes
  • server/src/memory/recall/registered-projects.test.tsruns4,769 bytes
  • server/src/memory/recall/registered-projects.tsruns4,253 bytes
  • server/src/multi-project.test.tsruns24,722 bytes
  • server/src/on-disk-versions.test.tsruns7,956 bytes
  • server/src/orphan-modules.test.tsruns3,523 bytes
  • server/src/portal/bridge/auth-failure-reason.test.tsruns8,778 bytes
  • server/src/portal/bridge/auth-failure-reason.tsruns6,086 bytes
  • server/src/portal/bridge/bridge-security.tsruns3,575 bytes
  • server/src/portal/bridge/bridge.act-and-wait-repeatable.test.tsruns2,591 bytes
  • server/src/portal/bridge/bridge.act-and-wait.test.tsruns9,446 bytes
  • server/src/portal/bridge/bridge.follow-navigation.test.tsruns7,342 bytes
  • server/src/portal/bridge/bridge.gap-source.test.tsruns3,444 bytes
  • server/src/portal/bridge/bridge.hello-clears-gaps.test.tsruns2,538 bytes
  • server/src/portal/bridge/bridge.invalid-frame.test.tsruns3,011 bytes
  • server/src/portal/bridge/bridge.nonce.test.tsruns5,313 bytes
  • server/src/portal/bridge/bridge.rate-window.test.tsruns4,168 bytes
  • server/src/portal/bridge/bridge.record-replay.test.tsruns6,774 bytes
  • server/src/portal/bridge/bridge.replay.test.tsruns9,530 bytes
  • server/src/portal/bridge/bridge.security.test.tsruns25,419 bytes
  • server/src/portal/bridge/bridge.skew-fix-project.test.tsruns3,320 bytes
  • server/src/portal/bridge/bridge.test-harness.tsruns9,553 bytes
  • server/src/portal/bridge/bridge.test.tsruns13,211 bytes
  • server/src/portal/bridge/bridge.tsruns49,822 bytes
  • server/src/portal/bridge/harness-request.tsruns2,536 bytes
  • server/src/portal/bridge/hello-refused.test.tsruns5,383 bytes
  • server/src/portal/bridge/origin/origin-follow.tsruns5,387 bytes
  • server/src/portal/bridge/pairing-token.test.tsruns6,225 bytes
  • server/src/portal/bridge/pairing-token.tsruns7,891 bytes
  • server/src/portal/bridge/protocol-skew.test.tsruns2,656 bytes
  • server/src/portal/bridge/protocol-skew.tsruns5,424 bytes
  • server/src/portal/bridge/refused-dial.test.tsruns3,422 bytes
  • server/src/portal/bridge/session-nonces.test.tsruns2,454 bytes
  • server/src/portal/bridge/session-nonces.tsruns3,697 bytes
  • server/src/portal/bridge/token-auth.test.tsruns3,196 bytes
  • server/src/portal/bridge/token-auth.tsruns3,681 bytes
  • server/src/portal/bridge/token-source.test.tsruns4,408 bytes
  • server/src/portal/bridge/wrong-path.test.tsruns4,361 bytes
  • server/src/portal/bridge/wrong-path.tsruns2,527 bytes
  • server/src/portal/input/download-capture.test.tsruns5,762 bytes
  • server/src/portal/input/download-capture.tsruns4,652 bytes
  • server/src/portal/input/drive-error.tsruns347 bytes
  • server/src/portal/input/drive-url-stamp.test.tsruns2,460 bytes
  • server/src/portal/input/drive-url-stamp.tsruns1,577 bytes
  • server/src/portal/input/driven-redaction.test.tsruns6,267 bytes
  • server/src/portal/input/driven-redaction.tsruns3,806 bytes
  • server/src/portal/input/js-coverage.test.tsruns1,767 bytes
  • server/src/portal/input/js-coverage.tsruns1,757 bytes
  • server/src/portal/input/launched-chromium.test.tsruns3,208 bytes
  • server/src/portal/input/launched-early-capture.test.tsruns1,363 bytes
  • server/src/portal/input/launched-real-input.test.tsruns17,334 bytes
  • server/src/portal/input/launched-storage.test.tsruns3,792 bytes
  • server/src/portal/input/network-detail.lossy-conformance.test.tsruns4,275 bytes
  • server/src/portal/input/network-detail.test.tsruns12,616 bytes
  • server/src/portal/input/network-detail.tsruns12,557 bytes
  • server/src/portal/input/network-detail.url.test.tsruns5,726 bytes
  • server/src/portal/input/network-mock-malformed.test.tsruns3,640 bytes
  • server/src/portal/input/network-mock-tools.test.tsruns8,093 bytes
  • server/src/portal/input/network-mock-tools.tsruns6,926 bytes
  • server/src/portal/input/network-mock.test.tsruns7,907 bytes
  • server/src/portal/input/network-mock.tsruns5,490 bytes
  • server/src/portal/input/network-mutation.test.tsruns6,111 bytes
  • server/src/portal/input/network-mutation.tsruns4,382 bytes
  • server/src/portal/input/page-capture.tsruns2,314 bytes
  • server/src/portal/input/real-input-click.test.tsruns4,705 bytes
  • server/src/portal/input/real-input-press.test.tsruns19,808 bytes
  • server/src/portal/input/real-input-press.tsruns7,877 bytes
  • server/src/portal/input/real-input.test.tsruns9,085 bytes
  • server/src/portal/input/real-input.tsruns39,193 bytes
  • server/src/portal/input/scroll-find.test.tsruns7,819 bytes
  • server/src/portal/input/scroll-find.tsruns7,500 bytes
  • server/src/portal/input/scroll-tools.tsruns4,306 bytes
  • server/src/portal/input/storage-fixture.test.tsruns6,584 bytes
  • server/src/portal/input/storage-fixture.tsruns5,785 bytes
  • server/src/portal/input/tools.real-input.test.tsruns45,472 bytes
  • server/src/portal/input/viewport-tools.test.tsruns14,237 bytes
  • server/src/portal/input/viewport-tools.tsruns12,019 bytes
  • server/src/portal/pool/bounded-close.tsruns1,515 bytes
  • server/src/portal/pool/browser-pool.test.tsruns47,844 bytes
  • server/src/portal/pool/browser-pool.tsruns40,100 bytes
  • server/src/portal/pool/context-permissions.tsruns7,551 bytes
  • server/src/portal/pool/csp-widen.test.tsruns8,574 bytes
  • server/src/portal/pool/csp-widen.tsruns6,311 bytes
  • server/src/portal/pool/lease-alias-capabilities.test.tsruns4,100 bytes
  • server/src/portal/pool/lease-close-bound.test.tsruns2,896 bytes
  • server/src/portal/pool/lease-emulation.tsruns3,217 bytes
  • server/src/portal/pool/lease-https-errors.test.tsruns2,631 bytes
  • server/src/portal/pool/lease-marker-stamp.test.tsruns8,948 bytes
  • server/src/portal/pool/lease-marker-stamp.tsruns3,256 bytes
  • server/src/portal/pool/lease-off-loopback-reader.test.tsruns5,264 bytes
  • server/src/portal/pool/lease-page-error.early-capture.test.tsruns5,950 bytes
  • server/src/portal/pool/lease-page-error.test.tsruns3,852 bytes
  • server/src/portal/pool/lease-page-error.tsruns6,752 bytes
  • server/src/portal/pool/lease-page-reads.test.tsruns2,339 bytes
  • server/src/portal/pool/lease-permissions.test.tsruns8,106 bytes
  • server/src/portal/pool/lease-reaper.test.tsruns1,534 bytes
  • server/src/portal/pool/lease-reaper.tsruns1,440 bytes
  • server/src/portal/pool/lease-screenshot-hides-chrome.test.tsruns1,639 bytes
  • server/src/portal/pool/lease-viewport.test.tsruns4,362 bytes
  • server/src/portal/pool/loopback-csp-probe.test.tsruns2,861 bytes
  • server/src/portal/pool/max-contexts.test.tsruns1,472 bytes
  • server/src/portal/pool/nav-options.test.tsruns1,990 bytes
  • server/src/portal/pool/page-error-journal.test.tsruns8,126 bytes
  • server/src/portal/pool/page-error-journal.tsruns9,154 bytes
  • server/src/portal/pool/playwright-launcher.https-errors.test.tsruns1,428 bytes
  • server/src/portal/pool/playwright-launcher.test.tsruns6,587 bytes
  • server/src/portal/pool/playwright-launcher.tsruns17,975 bytes
  • server/src/portal/pool/playwright-launcher.viewport.test.tsruns2,019 bytes
  • server/src/portal/pool/pool-contract.tsruns8,860 bytes
  • server/src/portal/pool/pool-hover.test.tsruns6,216 bytes
  • server/src/portal/pool/pool-lease.tsruns8,998 bytes
  • server/src/portal/pool/pool-mocks.test.tsruns5,399 bytes
  • server/src/portal/pool/pool-screenshot.test.tsruns4,319 bytes
  • server/src/portal/pool/storage-seed.test.tsruns14,787 bytes
  • server/src/portal/pool/storage-seed.tsruns7,986 bytes
  • server/src/portal/pool/zero-install.test.tsruns10,236 bytes
  • server/src/portal/pool/zero-install.tsruns8,549 bytes
  • server/src/portal/production/production-activation.test.tsruns6,891 bytes
  • server/src/portal/production/production-activation.tsruns10,802 bytes
  • server/src/portal/production/production-drive.test.tsruns11,030 bytes
  • server/src/portal/production/production-drive.tsruns13,391 bytes
  • server/src/portal/production/production-hello.test.tsruns2,298 bytes
  • server/src/portal/production/production-hello.tsruns1,514 bytes
  • server/src/portal/realm/conformance-client.test.tsruns4,703 bytes
  • server/src/portal/realm/conformance-client.tsruns14,449 bytes
  • server/src/portal/realm/every-event-is-placed.test.tsruns2,681 bytes
  • server/src/portal/realm/http-witness.test.tsruns3,919 bytes
  • server/src/portal/realm/http-witness.tsruns6,154 bytes
  • server/src/portal/realm/protocol-reaches-production.test.tsruns7,761 bytes
  • server/src/portal/realm/spi-is-exercised.test.tsruns3,839 bytes
  • server/src/portal/realm/web-realm-fixture.test.tsruns5,481 bytes
  • server/src/portal/realm/web-realm.test.tsruns14,709 bytes
  • server/src/portal/realm/web-realm.tsruns38,099 bytes
  • server/src/portal/realm/witness-reaches-production.test.tsruns5,137 bytes
  • server/src/portal/session/action-attribution-ambient.test.tsruns3,909 bytes
  • server/src/portal/session/agent-link.test.tsruns1,371 bytes
  • server/src/portal/session/agent-link.tsruns835 bytes
  • server/src/portal/session/command-payload.test.tsruns1,836 bytes
  • server/src/portal/session/command-payload.tsruns1,080 bytes
  • server/src/portal/session/control-envelope.test.tsruns2,366 bytes
  • server/src/portal/session/control-envelope.tsruns3,825 bytes
  • server/src/portal/session/current-document.test.tsruns1,995 bytes
  • server/src/portal/session/daemon-answers.tsruns1,277 bytes
  • server/src/portal/session/desktop-windows.test.tsruns3,880 bytes
  • server/src/portal/session/dev-server/dev-command.test.tsruns17,132 bytes
  • server/src/portal/session/dev-server/dev-command.tsruns13,770 bytes
  • server/src/portal/session/dev-server/dev-server-probe.test.tsruns8,332 bytes
  • server/src/portal/session/dev-server/dev-server-probe.tsruns9,510 bytes
  • server/src/portal/session/dev-server/project-ports.test.tsruns1,620 bytes
  • server/src/portal/session/dev-server/project-ports.tsruns2,267 bytes
  • server/src/portal/session/dev-server/route-status-probe.test.tsruns3,723 bytes
  • server/src/portal/session/dev-server/route-status-probe.tsruns2,574 bytes
  • server/src/portal/session/dev-server/served-document.test.tsruns2,202 bytes
  • server/src/portal/session/dev-server/served-document.tsruns2,535 bytes
  • server/src/portal/session/end-session-named-id.test.tsruns10,181 bytes
  • server/src/portal/session/end-session-releases-lease.test.tsruns2,663 bytes
  • server/src/portal/session/engine-blind-spots.test.tsruns2,235 bytes
  • server/src/portal/session/engine-host-is-supplied.test.tsruns3,085 bytes
  • server/src/portal/session/facts/background-traffic.test.tsruns1,098 bytes
  • server/src/portal/session/facts/background-traffic.tsruns1,262 bytes
  • server/src/portal/session/facts/departure-note.test.tsruns2,154 bytes
  • server/src/portal/session/facts/departure-note.tsruns2,115 bytes
  • server/src/portal/session/facts/handshake-facts.tsruns3,238 bytes
  • server/src/portal/session/facts/observed-state.rate-window.test.tsruns1,797 bytes
  • server/src/portal/session/facts/observed-state.test.tsruns2,246 bytes
  • server/src/portal/session/facts/observed-state.tsruns9,578 bytes
  • server/src/portal/session/facts/ref-provenance.test.tsruns4,302 bytes
  • server/src/portal/session/facts/ref-provenance.tsruns4,294 bytes
  • server/src/portal/session/facts/session-replaced.test.tsruns1,610 bytes
  • server/src/portal/session/facts/session-replaced.tsruns3,356 bytes
  • server/src/portal/session/fake-session.test.tsruns3,041 bytes
  • server/src/portal/session/fake-session.tsruns3,757 bytes
  • server/src/portal/session/first-run-wiring.test.tsruns1,338 bytes
  • server/src/portal/session/first-run-wiring.tsruns1,794 bytes
  • server/src/portal/session/first-session-offer.test.tsruns2,458 bytes
  • server/src/portal/session/handshake-facts-are-read.test.tsruns3,520 bytes
  • server/src/portal/session/hud-mirror.test.tsruns7,299 bytes
  • server/src/portal/session/hud-use-is-not-evidence.test.tsruns2,049 bytes
  • server/src/portal/session/human/live-control.tsruns4,685 bytes
  • server/src/portal/session/human/notes-ledger.test.tsruns2,431 bytes
  • server/src/portal/session/human/notes-ledger.tsruns2,633 bytes
  • server/src/portal/session/human/presenter-args.test.tsruns1,639 bytes
  • server/src/portal/session/human/presenter-args.tsruns741 bytes
  • server/src/portal/session/human/review-store.test.tsruns2,328 bytes
  • server/src/portal/session/human/review-store.tsruns5,602 bytes
  • server/src/portal/session/inbox-history.test.tsruns2,930 bytes
  • server/src/portal/session/last-act.test.tsruns3,672 bytes
  • server/src/portal/session/last-act.tsruns5,033 bytes
  • server/src/portal/session/lease-expiry-attribution.test.tsruns4,386 bytes
  • server/src/portal/session/lease-visibility.test.tsruns4,519 bytes
  • server/src/portal/session/lease-visibility.tsruns4,718 bytes
  • server/src/portal/session/ledger-notice.test.tsruns2,872 bytes
  • server/src/portal/session/live-control-tools.tsruns23,312 bytes
  • server/src/portal/session/narration-args.tsruns782 bytes
  • server/src/portal/session/no-session-auto-attach.test.tsruns13,249 bytes
  • server/src/portal/session/no-session-brevity.test.tsruns5,284 bytes
  • server/src/portal/session/no-session-causes.test.tsruns6,592 bytes
  • server/src/portal/session/no-session-claims.test.tsruns3,352 bytes
  • server/src/portal/session/no-session-diagnosis.test.tsruns41,498 bytes
  • server/src/portal/session/no-session-diagnosis.tsruns48,548 bytes
  • server/src/portal/session/no-session-elsewhere.test.tsruns2,781 bytes
  • server/src/portal/session/no-session-next-action.test.tsruns24,583 bytes
  • server/src/portal/session/no-session-next-action.tsruns30,415 bytes
  • server/src/portal/session/no-session-reason.test.tsruns7,059 bytes
  • server/src/portal/session/no-session-restart-wiring.test.tsruns3,889 bytes
  • server/src/portal/session/no-session-watch.test.tsruns26,254 bytes
  • server/src/portal/session/no-session-watch.tsruns42,569 bytes
  • server/src/portal/session/output-budget.test.tsruns10,113 bytes
  • server/src/portal/session/output-budget.tsruns8,141 bytes
  • server/src/portal/session/page-commands/pending-commands.test.tsruns3,367 bytes
  • server/src/portal/session/page-commands/pending-commands.tsruns3,559 bytes
  • server/src/portal/session/page-commands/undeclared-command.tsruns2,930 bytes
  • server/src/portal/session/presence/attachment-history.test.tsruns5,946 bytes
  • server/src/portal/session/presence/attachment-history.tsruns4,097 bytes
  • server/src/portal/session/presence/lease-availability.test.tsruns3,935 bytes
  • server/src/portal/session/presence/lease-availability.tsruns3,374 bytes
  • server/src/portal/session/presence/session-lease.test.tsruns696 bytes
  • server/src/portal/session/presence/session-lease.tsruns2,001 bytes
  • server/src/portal/session/presence/session-mirror.tsruns1,201 bytes
  • server/src/portal/session/presence/session-recommendation.test.tsruns6,205 bytes
  • server/src/portal/session/presence/session-recommendation.tsruns2,381 bytes
  • server/src/portal/session/rebind.tsruns1,892 bytes
  • server/src/portal/session/recorded-gaps.test.tsruns10,417 bytes
  • server/src/portal/session/recorded-gaps.tsruns13,932 bytes
  • server/src/portal/session/refusal-is-current-or-remembered.test.tsruns3,841 bytes
  • server/src/portal/session/refused-dial-is-not-an-uninstalled-app.test.tsruns10,309 bytes
  • server/src/portal/session/refuses-undeclared.test.tsruns3,773 bytes
  • server/src/portal/session/review-mark-identity.test.tsruns4,001 bytes
  • server/src/portal/session/second-project-first-call.test.tsruns10,685 bytes
  • server/src/portal/session/serving-directory.test.tsruns6,720 bytes
  • server/src/portal/session/serving-directory.tsruns8,338 bytes
  • server/src/portal/session/session-buffer-health.test.tsruns3,213 bytes
  • server/src/portal/session/session-end-gap.test.tsruns2,377 bytes
  • server/src/portal/session/session-health-skew.test.tsruns2,825 bytes
  • server/src/portal/session/session-health-starved.test.tsruns3,041 bytes
  • server/src/portal/session/session-health.tsruns15,544 bytes
  • server/src/portal/session/session-info.test.tsruns5,234 bytes
  • server/src/portal/session/session-info.tsruns9,126 bytes
  • server/src/portal/session/session-journal-loss.test.tsruns12,601 bytes
  • server/src/portal/session/session-manager-successor.test.tsruns7,482 bytes
  • server/src/portal/session/session-manager.checkout.test.tsruns4,574 bytes
  • server/src/portal/session/session-manager.scope.test.tsruns16,652 bytes
  • server/src/portal/session/session-manager.tsruns38,747 bytes
  • server/src/portal/session/session-pending-navigation.test.tsruns3,989 bytes
  • server/src/portal/session/session-reaper.test.tsruns9,736 bytes
  • server/src/portal/session/session-reaper.tsruns7,082 bytes
  • server/src/portal/session/session-rebind.test.tsruns9,381 bytes
  • server/src/portal/session/session-reconnect.test.tsruns2,403 bytes
  • server/src/portal/session/session-reconnect.tsruns2,432 bytes
  • server/src/portal/session/session-successor-lease.test.tsruns3,146 bytes
  • server/src/portal/session/session-successor.test.tsruns9,304 bytes
  • server/src/portal/session/session-successor.tsruns7,539 bytes
  • server/src/portal/session/session-tools.test.tsruns4,571 bytes
  • server/src/portal/session/session-tools.tsruns5,447 bytes
  • server/src/portal/session/session-unresponsive.test.tsruns4,620 bytes
  • server/src/portal/session/session-verdict-facts.test.tsruns1,475 bytes
  • server/src/portal/session/session-verdict-facts.tsruns2,116 bytes
  • server/src/portal/session/session.control.test.tsruns9,912 bytes
  • server/src/portal/session/session.test.tsruns19,308 bytes
  • server/src/portal/session/session.tsruns44,791 bytes
  • server/src/portal/session/stall-clock.test.tsruns1,515 bytes
  • server/src/portal/session/stall-clock.tsruns2,406 bytes
  • server/src/portal/session/state-select.test.tsruns5,337 bytes
  • server/src/portal/session/state-select.tsruns488 bytes
  • server/src/portal/session/timing/command-timeout.test.tsruns8,739 bytes
  • server/src/portal/session/timing/command-timeout.tsruns6,432 bytes
  • server/src/portal/session/timing/resolve-within.test.tsruns3,406 bytes
  • server/src/portal/session/timing/resolve-within.tsruns2,886 bytes
  • server/src/portal/session/timing/wall-clock.tsruns538 bytes
  • server/src/portal/session/tools.live-control.test.tsruns21,393 bytes
  • server/src/portal/session/tools.review.test.tsruns6,263 bytes
  • server/src/portal/session/tools.session-health.test.tsruns5,932 bytes
  • server/src/portal/session/yield-takes-the-driven-session.test.tsruns4,239 bytes
  • server/src/portal/session/yield-without-session.test.tsruns4,425 bytes
  • server/src/portal/session/zero-install-first-call.test.tsruns4,856 bytes
  • server/src/portal/session/zero-install-first-call.tsruns8,701 bytes
  • server/src/predicate-param-typing.test.tsruns5,140 bytes
  • server/src/publishable-packages.test.tsruns5,009 bytes
  • server/src/scripts-documented.test.tsruns2,418 bytes
  • server/src/start-options.tsruns3,180 bytes
  • server/src/start-wiring.test.tsruns993 bytes
  • server/src/start-wiring.tsruns14,056 bytes
  • server/src/status-payload.test.tsruns957 bytes
  • server/src/status-payload.tsruns6,372 bytes
  • server/src/status-why.test.tsruns3,979 bytes
  • server/src/surface/agent-presence-grace.test.tsruns2,033 bytes
  • server/src/surface/agent-presence-grace.tsruns1,451 bytes
  • server/src/surface/http-server.tsruns24,234 bytes
  • server/src/surface/loopback-agent.tsruns3,351 bytes
  • server/src/surface/mcp/attach-memory.test.tsruns7,804 bytes
  • server/src/surface/mcp/attach-memory.tsruns10,885 bytes
  • server/src/surface/mcp/consumer-verdict-guard.test.tsruns2,794 bytes
  • server/src/surface/mcp/consumer-verdict-guard.tsruns2,986 bytes
  • server/src/surface/mcp/consumer-verdict-wired.test.tsruns2,886 bytes
  • server/src/surface/mcp/context-over-transport.test.tsruns2,755 bytes
  • server/src/surface/mcp/degraded-handshake.test.tsruns8,843 bytes
  • server/src/surface/mcp/detach-releases-leases.test.tsruns3,620 bytes
  • server/src/surface/mcp/empty-catalog-names-http.test.tsruns812 bytes
  • server/src/surface/mcp/faults/mcp-is-error.test.tsruns1,984 bytes
  • server/src/surface/mcp/faults/mcp-is-error.tsruns954 bytes
  • server/src/surface/mcp/faults/mcp-outage.test.tsruns8,585 bytes
  • server/src/surface/mcp/faults/mcp-outage.tsruns4,975 bytes
  • server/src/surface/mcp/foreign-port-holder.test.tsruns2,138 bytes
  • server/src/surface/mcp/handshake-answered-once.test.tsruns8,021 bytes
  • server/src/surface/mcp/mcp-composed-surface.test.tsruns5,495 bytes
  • server/src/surface/mcp/mcp-proxy-chaos.test.tsruns14,145 bytes
  • server/src/surface/mcp/mcp-proxy.test.tsruns9,202 bytes
  • server/src/surface/mcp/mcp-proxy.tsruns46,639 bytes
  • server/src/surface/mcp/mcp.test.tsruns23,625 bytes
  • server/src/surface/mcp/mcp.tsruns52,154 bytes
  • server/src/surface/mcp/merged-name-dispatches.test.tsruns4,952 bytes
  • server/src/surface/mcp/peer/agents-connected.test.tsruns2,091 bytes
  • server/src/surface/mcp/peer/agents-connected.tsruns2,591 bytes
  • server/src/surface/mcp/peer/client-identity.test.tsruns1,694 bytes
  • server/src/surface/mcp/peer/client-identity.tsruns2,315 bytes
  • server/src/surface/mcp/plugin-init-nudge.test.tsruns3,913 bytes
  • server/src/surface/mcp/predicate-arg-error.test.tsruns3,808 bytes
  • server/src/surface/mcp/predicate-param-string.test.tsruns1,562 bytes
  • server/src/surface/mcp/proxy-answered-once.test.tsruns7,663 bytes
  • server/src/surface/mcp/proxy-cold-start.test.tsruns11,059 bytes
  • server/src/surface/mcp/proxy-first-connect.test.tsruns2,455 bytes
  • server/src/surface/mcp/proxy-idle-exit.integration.test.tsruns4,490 bytes
  • server/src/surface/mcp/proxy-idle-exit.test.tsruns3,173 bytes
  • server/src/surface/mcp/proxy-idle-exit.tsruns4,096 bytes
  • server/src/surface/mcp/proxy-log-rotation.test.tsruns4,320 bytes
  • server/src/surface/mcp/proxy-outage-honesty.test.tsruns14,597 bytes
  • server/src/surface/mcp/proxy-post-failure.test.tsruns5,306 bytes
  • server/src/surface/mcp/proxy-queue-expiry.test.tsruns2,269 bytes
  • server/src/surface/mcp/proxy-reconnect-fanout.test.tsruns12,467 bytes
  • server/src/surface/mcp/proxy-wake-relocates.test.tsruns4,491 bytes
  • server/src/surface/mcp/proxy/drive-calls.tsruns5,874 bytes
  • server/src/surface/mcp/proxy/mcp-post-transport.test.tsruns6,094 bytes
  • server/src/surface/mcp/proxy/mcp-post-transport.tsruns5,840 bytes
  • server/src/surface/mcp/proxy/proxy-backoff.tsruns603 bytes
  • server/src/surface/mcp/proxy/proxy-boot.tsruns506 bytes
  • server/src/surface/mcp/proxy/proxy-daemon-probe.test.tsruns2,605 bytes
  • server/src/surface/mcp/proxy/proxy-daemon-probe.tsruns6,064 bytes
  • server/src/surface/mcp/proxy/proxy-handshake.test.tsruns8,334 bytes
  • server/src/surface/mcp/proxy/proxy-handshake.tsruns14,996 bytes
  • server/src/surface/mcp/proxy/proxy-lifecycle.test.tsruns4,789 bytes
  • server/src/surface/mcp/proxy/proxy-lifecycle.tsruns5,429 bytes
  • server/src/surface/mcp/proxy/proxy-log-state.test.tsruns1,015 bytes
  • server/src/surface/mcp/proxy/proxy-log.tsruns6,601 bytes
  • server/src/surface/mcp/sdk-private-shape.test.tsruns2,701 bytes
  • server/src/surface/mcp/server-instructions.test.tsruns24,266 bytes
  • server/src/surface/mcp/server-instructions.tsruns16,657 bytes
  • server/src/surface/mcp/shared-params.test.tsruns3,127 bytes
  • server/src/surface/mcp/shared-params.tsruns3,110 bytes
  • server/src/surface/mcp/sse-frame-parser.tsruns2,827 bytes
  • server/src/surface/mcp/stream-loss-replies.test.tsruns4,509 bytes
  • server/src/surface/mcp/surface-coherence.test.tsruns10,410 bytes
  • server/src/surface/mcp/surface-vocabulary.tsruns6,333 bytes
  • server/src/surface/mcp/tool-annotations.test.tsruns1,967 bytes
  • server/src/surface/mcp/tool-call-progress.test.tsruns1,186 bytes
  • server/src/surface/mcp/tool-catalog-cache.test.tsruns4,241 bytes
  • server/src/surface/mcp/tool-catalog-cache.tsruns3,758 bytes
  • server/src/surface/mcp/toolless-session-recovery.test.tsruns3,506 bytes
  • server/src/surface/mcp/unadvertised-tool-over-transport.test.tsruns4,274 bytes
  • server/src/surface/mcp/weakest-client-schemas.test.tsruns4,878 bytes
  • server/src/surface/tools/account-tool.test.tsruns4,551 bytes
  • server/src/surface/tools/account-tool.tsruns7,986 bytes
  • server/src/surface/tools/act-and-wait-start-query.test.tsruns4,516 bytes
  • server/src/surface/tools/act-capsule.test.tsruns10,507 bytes
  • server/src/surface/tools/act-capsule.tsruns8,174 bytes
  • server/src/surface/tools/act-command.tsruns3,159 bytes
  • server/src/surface/tools/act-green-blast-radius.test.tsruns4,602 bytes
  • server/src/surface/tools/act-hidden-match.test.tsruns6,920 bytes
  • server/src/surface/tools/act-journal-reason.test.tsruns5,286 bytes
  • server/src/surface/tools/act-leaves-origin.test.tsruns4,516 bytes
  • server/src/surface/tools/act-merged.tsruns3,370 bytes
  • server/src/surface/tools/act-sequence-burst.test.tsruns7,073 bytes
  • server/src/surface/tools/act-sequence-declared-failure.test.tsruns5,351 bytes
  • server/src/surface/tools/act-sequence-journal.test.tsruns10,251 bytes
  • server/src/surface/tools/act-sequence-progress.test.tsruns13,323 bytes
  • server/src/surface/tools/act-sequence-quiet-plan.test.tsruns3,721 bytes
  • server/src/surface/tools/act-sequence-saved-claims.test.tsruns11,221 bytes
  • server/src/surface/tools/act-sequence-session.test.tsruns6,930 bytes
  • server/src/surface/tools/act-sequence-step-window.test.tsruns6,026 bytes
  • server/src/surface/tools/act-sequence-steps.test.tsruns20,800 bytes
  • server/src/surface/tools/act-sequence-target.test.tsruns8,138 bytes
  • server/src/surface/tools/act-sequence-tool.tsruns30,821 bytes
  • server/src/surface/tools/act-state-already-true.test.tsruns17,974 bytes
  • server/src/surface/tools/act-steps-verdict-counted.test.tsruns3,937 bytes
  • server/src/surface/tools/act-timeout-diagnosis.test.tsruns2,410 bytes
  • server/src/surface/tools/act-tools.tsruns61,636 bytes
  • server/src/surface/tools/act-truncated-window.test.tsruns6,246 bytes
  • server/src/surface/tools/act-unreachable-target.test.tsruns9,370 bytes
  • server/src/surface/tools/act-unwatched-state.test.tsruns6,188 bytes
  • server/src/surface/tools/act-verdict-parity.test.tsruns9,963 bytes
  • server/src/surface/tools/act/act-danger.test.tsruns5,895 bytes
  • server/src/surface/tools/act/act-danger.tsruns6,915 bytes
  • server/src/surface/tools/act/act-helpers.tsruns2,068 bytes
  • server/src/surface/tools/act/act-navigation-follow.test.tsruns7,423 bytes
  • server/src/surface/tools/act/act-observation-disabled.test.tsruns2,065 bytes
  • server/src/surface/tools/act/act-observation.test.tsruns5,324 bytes
  • server/src/surface/tools/act/act-observation.tsruns14,075 bytes
  • server/src/surface/tools/act/act-preflight-vacuous.test.tsruns2,537 bytes
  • server/src/surface/tools/act/act-preflight.tsruns11,669 bytes
  • server/src/surface/tools/act/act-sequence-retry.test.tsruns3,969 bytes
  • server/src/surface/tools/act/act-sequence-retry.tsruns6,355 bytes
  • server/src/surface/tools/act/act-target.test.tsruns6,712 bytes
  • server/src/surface/tools/act/act-target.tsruns6,479 bytes
  • server/src/surface/tools/act/act-view.test.tsruns2,306 bytes
  • server/src/surface/tools/act/act-view.tsruns3,006 bytes
  • server/src/surface/tools/act/after-match.tsruns4,691 bytes
  • server/src/surface/tools/act/already-true.tsruns3,768 bytes
  • server/src/surface/tools/act/durable.test.tsruns5,348 bytes
  • server/src/surface/tools/act/durable.tsruns7,878 bytes
  • server/src/surface/tools/act/navigation/navigate-arrival.test.tsruns28,251 bytes
  • server/src/surface/tools/act/navigation/navigate-arrival.tsruns11,739 bytes
  • server/src/surface/tools/act/navigation/navigate-result.tsruns3,457 bytes
  • server/src/surface/tools/act/navigation/reload-result.test.tsruns2,056 bytes
  • server/src/surface/tools/act/navigation/reload-result.tsruns2,231 bytes
  • server/src/surface/tools/act/proved-controls.tsruns553 bytes
  • server/src/surface/tools/act/react-grace.test.tsruns7,896 bytes
  • server/src/surface/tools/act/react-grace.tsruns4,722 bytes
  • server/src/surface/tools/act/resolve-target.test.tsruns7,287 bytes
  • server/src/surface/tools/act/resolve-target.tsruns8,812 bytes
  • server/src/surface/tools/act/screen-request-rule.test.tsruns1,759 bytes
  • server/src/surface/tools/act/screen-request.test.tsruns2,219 bytes
  • server/src/surface/tools/act/screen-request.tsruns5,966 bytes
  • server/src/surface/tools/act/sequence-grade.test.tsruns8,966 bytes
  • server/src/surface/tools/act/sequence-grade.tsruns10,631 bytes
  • server/src/surface/tools/act/sequence-offer.test.tsruns2,493 bytes
  • server/src/surface/tools/act/settle-in-flight.test.tsruns11,312 bytes
  • server/src/surface/tools/act/settle-in-flight.tsruns12,203 bytes
  • server/src/surface/tools/act/settle-third-party.test.tsruns6,838 bytes
  • server/src/surface/tools/act/unsettled-find.test.tsruns4,016 bytes
  • server/src/surface/tools/act/unsettled-find.tsruns4,114 bytes
  • server/src/surface/tools/advertised-names-are-real.test.tsruns3,231 bytes
  • server/src/surface/tools/advertised-surface-cost.test.tsruns26,086 bytes
  • server/src/surface/tools/agent/app-notes-learning.test.tsruns3,274 bytes
  • server/src/surface/tools/agent/app-notes-learning.tsruns3,661 bytes
  • server/src/surface/tools/agent/app-notes.tsruns2,063 bytes
  • server/src/surface/tools/agent/build-staleness.test.tsruns1,128 bytes
  • server/src/surface/tools/agent/build-staleness.tsruns2,688 bytes
  • server/src/surface/tools/agent/compact-envelope.contract.test.tsruns18,065 bytes
  • server/src/surface/tools/agent/compact-envelope.tsruns15,356 bytes
  • server/src/surface/tools/agent/for-the-agent.tsruns4,053 bytes
  • server/src/surface/tools/agent/notices.test.tsruns4,495 bytes
  • server/src/surface/tools/agent/notices.tsruns6,935 bytes
  • server/src/surface/tools/agent/reteach.test.tsruns1,544 bytes
  • server/src/surface/tools/agent/reteach.tsruns2,747 bytes
  • server/src/surface/tools/alias-target-optional.test.tsruns1,117 bytes
  • server/src/surface/tools/args/alias-args.test.tsruns2,568 bytes
  • server/src/surface/tools/args/alias-args.tsruns1,719 bytes
  • server/src/surface/tools/args/confirm-dangerous-arg.tsruns387 bytes
  • server/src/surface/tools/args/numeric-bounds.test.tsruns7,032 bytes
  • server/src/surface/tools/args/numeric-bounds.tsruns8,533 bytes
  • server/src/surface/tools/assert-follows-document.test.tsruns4,957 bytes
  • server/src/surface/tools/assert/assert-bare-getter-store.test.tsruns3,879 bytes
  • server/src/surface/tools/assert/assert-buffer-honesty.test.tsruns13,738 bytes
  • server/src/surface/tools/assert/assert-contradiction-plumbing.test.tsruns5,316 bytes
  • server/src/surface/tools/assert/assert-coverage-honesty.test.tsruns15,957 bytes
  • server/src/surface/tools/assert/assert-gap-reads-own-source.test.tsruns6,131 bytes
  • server/src/surface/tools/assert/assert-grade-empty-combinator.test.tsruns2,660 bytes
  • server/src/surface/tools/assert/assert-grade.test.tsruns11,946 bytes
  • server/src/surface/tools/assert/assert-grade.tsruns9,234 bytes
  • server/src/surface/tools/assert/assert-journal-loss.test.tsruns5,588 bytes
  • server/src/surface/tools/assert/assert-journal-verdict.test.tsruns6,181 bytes
  • server/src/surface/tools/assert/assert-repeatable-read.test.tsruns5,147 bytes
  • server/src/surface/tools/assert/assert-source-attribution.test.tsruns9,191 bytes
  • server/src/surface/tools/assert/assert-source.test.tsruns1,971 bytes
  • server/src/surface/tools/assert/assert-source.tsruns6,446 bytes
  • server/src/surface/tools/assert/assert-throttled-window.test.tsruns3,381 bytes
  • server/src/surface/tools/assert/assert-timeout-diagnosis.test.tsruns2,608 bytes
  • server/src/surface/tools/assert/assert-transport-gap.test.tsruns4,494 bytes
  • server/src/surface/tools/assert/assert-verdict.tsruns20,656 bytes
  • server/src/surface/tools/assert/assert-wait-is-graded.test.tsruns7,069 bytes
  • server/src/surface/tools/assert/verdict-attribution.test.tsruns2,791 bytes
  • server/src/surface/tools/authored-errors-are-ours.test.tsruns7,442 bytes
  • server/src/surface/tools/baseline-roundtrip.test.tsruns2,975 bytes
  • server/src/surface/tools/bench-inject-dirty-guard.test.mjsruns4,861 bytes
  • server/src/surface/tools/blocking-wait-ceiling.test.tsruns2,301 bytes
  • server/src/surface/tools/body-clause-refusal-envelope.test.tsruns3,059 bytes
  • server/src/surface/tools/browser-tools.tsruns14,898 bytes
  • server/src/surface/tools/chat-drives.tsruns24,458 bytes
  • server/src/surface/tools/cheatsheet-accuracy.test.tsruns4,100 bytes
  • server/src/surface/tools/compare-tools.test.tsruns3,086 bytes
  • server/src/surface/tools/compare-tools.tsruns5,358 bytes
  • server/src/surface/tools/connect-spelling.test.tsruns1,594 bytes
  • server/src/surface/tools/console-empty-read.test.tsruns2,204 bytes
  • server/src/surface/tools/contract-tools.tsruns6,619 bytes
  • server/src/surface/tools/coverage-tools.test.tsruns2,577 bytes
  • server/src/surface/tools/coverage-tools.tsruns9,478 bytes
  • server/src/surface/tools/dispatch-chokepoint.test.tsruns7,464 bytes
  • server/src/surface/tools/dispatch-episode.test.tsruns4,808 bytes
  • server/src/surface/tools/dispatch-opens-unwired-app.test.tsruns5,858 bytes
  • server/src/surface/tools/dispatch-session-pin.test.tsruns11,711 bytes
  • server/src/surface/tools/docs-index-coverage.test.tsruns28,404 bytes
  • server/src/surface/tools/documented-names.test.tsruns6,638 bytes
  • server/src/surface/tools/dynamic-tools.test.tsruns19,853 bytes
  • server/src/surface/tools/dynamic-tools.tsruns26,158 bytes
  • server/src/surface/tools/e2e-surface-drift.test.tsruns31,211 bytes
  • server/src/surface/tools/empty-session-list.tsruns8,587 bytes
  • server/src/surface/tools/empty-session-talk-to-us.test.tsruns1,351 bytes
  • server/src/surface/tools/envelope-keys-declared.test.tsruns4,447 bytes
  • server/src/surface/tools/error-recovery.test.tsruns47,099 bytes
  • server/src/surface/tools/error-recovery.tsruns49,881 bytes
  • server/src/surface/tools/every-retired-name-redirects.test.tsruns3,982 bytes
  • server/src/surface/tools/explore-runs.test.tsruns14,349 bytes
  • server/src/surface/tools/explore-tools.tsruns33,377 bytes
  • server/src/surface/tools/feedback-ask-names-live-tool.test.tsruns1,648 bytes
  • server/src/surface/tools/feedback-invite.test.tsruns3,368 bytes
  • server/src/surface/tools/feedback-invite.tsruns4,125 bytes
  • server/src/surface/tools/feedback-tools.test.tsruns13,029 bytes
  • server/src/surface/tools/feedback-tools.tsruns19,061 bytes
  • server/src/surface/tools/first-sentence.test.tsruns2,885 bytes
  • server/src/surface/tools/first-sentence.tsruns2,235 bytes
  • server/src/surface/tools/gap-novelty.test.tsruns4,177 bytes
  • server/src/surface/tools/gap-novelty.tsruns4,456 bytes
  • server/src/surface/tools/gaps/capability-absences.test.tsruns4,514 bytes
  • server/src/surface/tools/gaps/capability-absences.tsruns3,212 bytes
  • server/src/surface/tools/gaps/coverage-identity.test.tsruns3,750 bytes
  • server/src/surface/tools/gaps/coverage-identity.tsruns3,425 bytes
  • server/src/surface/tools/gaps/observed-nothing.test.tsruns2,667 bytes
  • server/src/surface/tools/gaps/observed-nothing.tsruns2,481 bytes
  • server/src/surface/tools/gaps/sdk-marker-probe.test.tsruns2,071 bytes
  • server/src/surface/tools/gaps/sdk-marker-probe.tsruns2,792 bytes
  • server/src/surface/tools/harness-explore.test.tsruns34,451 bytes
  • server/src/surface/tools/harness-explore.tsruns31,687 bytes
  • server/src/surface/tools/harness-gate.tsruns12,406 bytes
  • server/src/surface/tools/harness-hunt.test.tsruns7,976 bytes
  • server/src/surface/tools/harness-hunt.tsruns11,199 bytes
  • server/src/surface/tools/harness-lanes.test.tsruns2,200 bytes
  • server/src/surface/tools/harness-not-linked.test.tsruns3,935 bytes
  • server/src/surface/tools/harness-plan.test.tsruns10,904 bytes
  • server/src/surface/tools/harness-plan.tsruns11,431 bytes
  • server/src/surface/tools/harness-request-share.test.tsruns2,142 bytes
  • server/src/surface/tools/harness-script.tsruns30,381 bytes
  • server/src/surface/tools/harness-tab-guard.test.tsruns3,095 bytes
  • server/src/surface/tools/harness-tab-guard.tsruns1,631 bytes
  • server/src/surface/tools/harness-toolset.test.tsruns6,552 bytes
  • server/src/surface/tools/harness-toolset.tsruns12,446 bytes
  • server/src/surface/tools/hud-drive-word.test.tsruns4,017 bytes
  • server/src/surface/tools/hud-drive.test.tsruns8,354 bytes
  • server/src/surface/tools/hud-harness-link.test.tsruns4,448 bytes
  • server/src/surface/tools/human-notes.test.tsruns3,348 bytes
  • server/src/surface/tools/human-notes.tsruns1,713 bytes
  • server/src/surface/tools/init-guidance-names.test.tsruns4,329 bytes
  • server/src/surface/tools/init-guidance-surface.test.tsruns5,803 bytes
  • server/src/surface/tools/inspect-tool.tsruns6,653 bytes
  • server/src/surface/tools/invoke-tool-notices.test.tsruns3,882 bytes
  • server/src/surface/tools/invoke-tool.test.tsruns28,825 bytes
  • server/src/surface/tools/invoke-tool.tsruns50,265 bytes
  • server/src/surface/tools/lean-surface.test.tsruns5,253 bytes
  • server/src/surface/tools/lease-adopted-id.test.tsruns3,894 bytes
  • server/src/surface/tools/lease-hint-evidence.test.tsruns5,561 bytes
  • server/src/surface/tools/lease-hint.test.tsruns10,801 bytes
  • server/src/surface/tools/lease-hint.tsruns13,951 bytes
  • server/src/surface/tools/lease-navigate.test.tsruns1,703 bytes
  • server/src/surface/tools/lease-permissions.test.tsruns7,181 bytes
  • server/src/surface/tools/lease-permissions.tsruns4,612 bytes
  • server/src/surface/tools/lease-production.test.tsruns6,340 bytes
  • server/src/surface/tools/lease-readiness.tsruns12,758 bytes
  • server/src/surface/tools/lease-seed.tsruns10,277 bytes
  • server/src/surface/tools/lease-tools.test.tsruns90,192 bytes
  • server/src/surface/tools/lease-tools.tsruns46,816 bytes
  • server/src/surface/tools/lineage-tools.tsruns3,678 bytes
  • server/src/surface/tools/live-call-text.test.tsruns13,528 bytes
  • server/src/surface/tools/live-call-text.tsruns11,101 bytes
  • server/src/surface/tools/map-tools.test.tsruns1,862 bytes
  • server/src/surface/tools/map-tools.tsruns7,353 bytes
  • server/src/surface/tools/merge-discriminator.test.tsruns3,673 bytes
  • server/src/surface/tools/merge-tools.test.tsruns6,929 bytes
  • server/src/surface/tools/merge-tools.tsruns11,598 bytes
  • server/src/surface/tools/merged-name-redirect.test.tsruns5,078 bytes
  • server/src/surface/tools/merged-name-redirect.tsruns6,618 bytes
  • server/src/surface/tools/merged-surface.test.tsruns8,110 bytes
  • server/src/surface/tools/meta-tool-discoverability.test.tsruns3,629 bytes
  • server/src/surface/tools/native-input-refusal.test.tsruns1,938 bytes
  • server/src/surface/tools/navigate-honesty.test.tsruns9,263 bytes
  • server/src/surface/tools/navigate-lease-off-app.test.tsruns1,974 bytes
  • server/src/surface/tools/navigate-same-page.test.tsruns2,506 bytes
  • server/src/surface/tools/navigate-starts-session.test.tsruns5,284 bytes
  • server/src/surface/tools/navigate-timeout.test.tsruns4,959 bytes
  • server/src/surface/tools/network-bodies.test.tsruns2,787 bytes
  • server/src/surface/tools/network-defaults.test.tsruns5,429 bytes
  • server/src/surface/tools/network-hint-schema.test.tsruns2,483 bytes
  • server/src/surface/tools/next-step.test.tsruns10,825 bytes
  • server/src/surface/tools/next-step.tsruns11,552 bytes
  • server/src/surface/tools/numeric-args-are-bounded.test.tsruns2,570 bytes
  • server/src/surface/tools/observe-act-attribution.test.tsruns4,840 bytes
  • server/src/surface/tools/observe-filters-keep-contradictions.test.tsruns4,350 bytes
  • server/src/surface/tools/observe-tools.tsruns50,528 bytes
  • server/src/surface/tools/output-schema.test.tsruns3,534 bytes
  • server/src/surface/tools/platform-moment-nudge.test.tsruns3,167 bytes
  • server/src/surface/tools/platform-moment.test.tsruns3,827 bytes
  • server/src/surface/tools/platform-moment.tsruns15,542 bytes
  • server/src/surface/tools/predicate-grammar.test.tsruns4,136 bytes
  • server/src/surface/tools/predicate-vocabulary.test.tsruns2,611 bytes
  • server/src/surface/tools/query-forwarding.test.tsruns3,956 bytes
  • server/src/surface/tools/query-hint-schema.tsruns530 bytes
  • server/src/surface/tools/query-strategy.test.tsruns2,533 bytes
  • server/src/surface/tools/query-unsettled.test.tsruns1,980 bytes
  • server/src/surface/tools/read-tools.state.test.tsruns2,963 bytes
  • server/src/surface/tools/read-tools.storage.test.tsruns1,884 bytes
  • server/src/surface/tools/read-tools.test.tsruns5,242 bytes
  • server/src/surface/tools/read-tools.tsruns33,569 bytes
  • server/src/surface/tools/read/complete-snapshot.test.tsruns4,832 bytes
  • server/src/surface/tools/read/complete-snapshot.tsruns5,095 bytes
  • server/src/surface/tools/read/query-paginate.test.tsruns5,486 bytes
  • server/src/surface/tools/read/query-paginate.tsruns3,195 bytes
  • server/src/surface/tools/read/query-shape.test.tsruns3,194 bytes
  • server/src/surface/tools/read/query-shape.tsruns2,851 bytes
  • server/src/surface/tools/read/query-windowed.test.tsruns2,840 bytes
  • server/src/surface/tools/read/query-windowed.tsruns4,847 bytes
  • server/src/surface/tools/read/snapshot-delta.test.tsruns18,727 bytes
  • server/src/surface/tools/read/snapshot-delta.tsruns18,446 bytes
  • server/src/surface/tools/read/snapshot-unmounted-note.test.tsruns6,585 bytes
  • server/src/surface/tools/read/snapshot-unmounted-note.tsruns5,525 bytes
  • server/src/surface/tools/real-input-attempt.tsruns36,359 bytes
  • server/src/surface/tools/reconcile-tools.test.tsruns5,982 bytes
  • server/src/surface/tools/reconcile-tools.tsruns13,397 bytes
  • server/src/surface/tools/record-start-path-and-reload.test.tsruns7,838 bytes
  • server/src/surface/tools/record-stop-backtrack.test.tsruns2,214 bytes
  • server/src/surface/tools/record-stop-budget.test.tsruns4,237 bytes
  • server/src/surface/tools/record-stop-redacts-secrets.test.tsruns4,065 bytes
  • server/src/surface/tools/recovery-run-examples.test.tsruns6,098 bytes
  • server/src/surface/tools/refusal-reason.test.tsruns6,024 bytes
  • server/src/surface/tools/refusals-are-recognized.test.tsruns1,220 bytes
  • server/src/surface/tools/refused-act-leaves-nothing.test.tsruns7,083 bytes
  • server/src/surface/tools/repeat-hint-dispatch.test.tsruns8,335 bytes
  • server/src/surface/tools/repeat-hint.tsruns8,942 bytes
  • server/src/surface/tools/replay-press-real-input.test.tsruns7,128 bytes
  • server/src/surface/tools/reticle-result.test.tsruns14,414 bytes
  • server/src/surface/tools/reticle-result.tsruns19,262 bytes
  • server/src/surface/tools/retired-profile-docs.test.tsruns4,743 bytes
  • server/src/surface/tools/run-checks-arg-types.test.tsruns5,802 bytes
  • server/src/surface/tools/run-report.test.tsruns9,896 bytes
  • server/src/surface/tools/run-report.tsruns6,884 bytes
  • server/src/surface/tools/run-session-id.test.tsruns3,669 bytes
  • server/src/surface/tools/session-ports.tsruns7,530 bytes
  • server/src/surface/tools/sessions-attachment.test.tsruns2,073 bytes
  • server/src/surface/tools/sessions-why.test.tsruns9,889 bytes
  • server/src/surface/tools/settle-ignores-departure.test.tsruns2,538 bytes
  • server/src/surface/tools/settle-in-flight-dev-tooling.test.tsruns2,847 bytes
  • server/src/surface/tools/shipped-prose-drift.test.tsruns5,230 bytes
  • server/src/surface/tools/snapshot-cost.test.tsruns4,002 bytes
  • server/src/surface/tools/snapshot-delta-roundtrip.test.tsruns2,244 bytes
  • server/src/surface/tools/snapshot-delta.actionable.test.tsruns8,303 bytes
  • server/src/surface/tools/snapshot-hidden-note.test.tsruns4,421 bytes
  • server/src/surface/tools/storage-vocabulary.test.tsruns4,866 bytes
  • server/src/surface/tools/suite-fixture-pageurl.test.tsruns2,033 bytes
  • server/src/surface/tools/suite-fixture.test.tsruns3,527 bytes
  • server/src/surface/tools/surface-consistency.test.tsruns5,628 bytes
  • server/src/surface/tools/surface-reachability.test.tsruns3,760 bytes
  • server/src/surface/tools/surface-sizes.test.tsruns9,692 bytes
  • server/src/surface/tools/tool-allowlists-complete.test.tsruns11,240 bytes
  • server/src/surface/tools/tool-deps-ext.test.tsruns4,902 bytes
  • server/src/surface/tools/tool-examples.test.tsruns7,019 bytes
  • server/src/surface/tools/tool-invoker.test.tsruns1,955 bytes
  • server/src/surface/tools/tool-invoker.tsruns1,206 bytes
  • server/src/surface/tools/tool-kit.tsruns31,778 bytes
  • server/src/surface/tools/tool-surface.test.tsruns12,749 bytes
  • server/src/surface/tools/tool-surface.tsruns27,024 bytes
  • server/src/surface/tools/tools-helpers.tsruns3,309 bytes
  • server/src/surface/tools/tools.assert-advice.test.tsruns3,091 bytes
  • server/src/surface/tools/tools.contract.test.tsruns9,948 bytes
  • server/src/surface/tools/tools.inspect-ref.test.tsruns4,570 bytes
  • server/src/surface/tools/tools.near-miss.test.tsruns7,807 bytes
  • server/src/surface/tools/tools.query-attrs.test.tsruns6,288 bytes
  • server/src/surface/tools/tools.tsruns52,267 bytes
  • server/src/surface/tools/unadvertised-help.test.tsruns5,755 bytes
  • server/src/surface/tools/unadvertised-help.tsruns3,861 bytes
  • server/src/surface/tools/upload-path-rewrite.test.tsruns14,898 bytes
  • server/src/surface/tools/upload-session-root.test.tsruns4,307 bytes
  • server/src/surface/tools/verify-next-baton.test.tsruns3,753 bytes
  • server/src/surface/tools/verify-next-baton.tsruns3,253 bytes
  • server/src/surface/tools/vocabulary-enforced.test.tsruns2,407 bytes
  • server/src/surface/tools/wire-name-accounted-for.test.tsruns3,148 bytes
  • server/src/surface/tools/wrong-tab-ref.test.tsruns5,285 bytes
  • server/src/telemetry/account-envelope.test.tsruns2,648 bytes
  • server/src/telemetry/account-envelope.tsruns2,577 bytes
  • server/src/telemetry/agent-client.test.tsruns2,426 bytes
  • server/src/telemetry/agent-client.tsruns2,506 bytes
  • server/src/telemetry/app-instrumented.test.tsruns3,981 bytes
  • server/src/telemetry/app-instrumented.tsruns4,634 bytes
  • server/src/telemetry/argument-shape.test.tsruns7,701 bytes
  • server/src/telemetry/argument-shape.tsruns7,599 bytes
  • server/src/telemetry/automation-hint.test.tsruns2,241 bytes
  • server/src/telemetry/automation-hint.tsruns4,874 bytes
  • server/src/telemetry/browser-mode.tsruns1,617 bytes
  • server/src/telemetry/bug-found.test.tsruns17,560 bytes
  • server/src/telemetry/bug-found.tsruns14,439 bytes
  • server/src/telemetry/bug-occurrence.test.tsruns2,409 bytes
  • server/src/telemetry/cli-telemetry.tsruns8,769 bytes
  • server/src/telemetry/connect-failure.tsruns2,153 bytes
  • server/src/telemetry/crash-cause.test.tsruns4,671 bytes
  • server/src/telemetry/crash-cause.tsruns5,376 bytes
  • server/src/telemetry/daemon-telemetry.test.tsruns2,458 bytes
  • server/src/telemetry/daemon-telemetry.tsruns9,782 bytes
  • server/src/telemetry/dev-repo.test.tsruns3,391 bytes
  • server/src/telemetry/dev-repo.tsruns2,945 bytes
  • server/src/telemetry/error-class.tsruns2,355 bytes
  • server/src/telemetry/error-fingerprint.test.tsruns7,791 bytes
  • server/src/telemetry/error-fingerprint.tsruns11,831 bytes
  • server/src/telemetry/event-hygiene.test.tsruns6,728 bytes
  • server/src/telemetry/extra-blocks-reach-the-wire.test.tsruns10,723 bytes
  • server/src/telemetry/feedback-attribution.test.tsruns2,257 bytes
  • server/src/telemetry/feedback-cli.tsruns4,426 bytes
  • server/src/telemetry/feedback-context.test.tsruns3,783 bytes
  • server/src/telemetry/feedback-context.tsruns14,861 bytes
  • server/src/telemetry/feedback-delivery.test.tsruns1,414 bytes
  • server/src/telemetry/feedback-delivery.tsruns1,562 bytes
  • server/src/telemetry/feedback-in-checkout.test.tsruns2,619 bytes
  • server/src/telemetry/feedback-local.test.tsruns3,743 bytes
  • server/src/telemetry/feedback-local.tsruns2,759 bytes
  • server/src/telemetry/feedback-outbox.test.tsruns4,931 bytes
  • server/src/telemetry/feedback-outbox.tsruns3,678 bytes
  • server/src/telemetry/feedback.test.tsruns19,479 bytes
  • server/src/telemetry/feedback.tsruns24,818 bytes
  • server/src/telemetry/first-ever.test.tsruns4,627 bytes
  • server/src/telemetry/gate-completed.test.tsruns1,162 bytes
  • server/src/telemetry/git-facts.tsruns5,942 bytes
  • server/src/telemetry/harness-never-emits.test.tsruns3,952 bytes
  • server/src/telemetry/harness-run.test.tsruns5,628 bytes
  • server/src/telemetry/harness-run.tsruns4,659 bytes
  • server/src/telemetry/hud-events.test.tsruns2,159 bytes
  • server/src/telemetry/hud-events.tsruns1,779 bytes
  • server/src/telemetry/hud-metrics.test.tsruns8,127 bytes
  • server/src/telemetry/hud-metrics.tsruns9,536 bytes
  • server/src/telemetry/init-telemetry.tsruns4,042 bytes
  • server/src/telemetry/install-attribution.test.tsruns5,493 bytes
  • server/src/telemetry/install-report.test.tsruns2,094 bytes
  • server/src/telemetry/install-source.test.tsruns3,198 bytes
  • server/src/telemetry/install-source.tsruns6,757 bytes
  • server/src/telemetry/install-stage.test.tsruns5,418 bytes
  • server/src/telemetry/install-trace.test.tsruns4,240 bytes
  • server/src/telemetry/install-trace.tsruns3,870 bytes
  • server/src/telemetry/license-activation.test.tsruns9,778 bytes
  • server/src/telemetry/license-activation.tsruns4,172 bytes
  • server/src/telemetry/local-sink.test.tsruns6,920 bytes
  • server/src/telemetry/machine-snapshot.tsruns1,810 bytes
  • server/src/telemetry/mcp-connection.test.tsruns3,138 bytes
  • server/src/telemetry/mcp-connection.tsruns4,448 bytes
  • server/src/telemetry/missing-metrics.test.tsruns5,296 bytes
  • server/src/telemetry/no-field-numbers.test.tsruns8,994 bytes
  • server/src/telemetry/onboarding-dispatch.test.tsruns4,657 bytes
  • server/src/telemetry/onboarding-firsts.test.tsruns3,096 bytes
  • server/src/telemetry/onboarding-firsts.tsruns10,390 bytes
  • server/src/telemetry/onboarding-funnel.tsruns3,890 bytes
  • server/src/telemetry/onboarding-next-step.test.tsruns2,363 bytes
  • server/src/telemetry/onboarding-stop.test.tsruns5,340 bytes
  • server/src/telemetry/platform-linked.test.tsruns1,787 bytes
  • server/src/telemetry/platform-linked.tsruns1,530 bytes
  • server/src/telemetry/project-identity.test.tsruns4,411 bytes
  • server/src/telemetry/project-profile.test.tsruns8,758 bytes
  • server/src/telemetry/project-profile.tsruns10,114 bytes
  • server/src/telemetry/prompt-never-in-telemetry.test.tsruns3,484 bytes
  • server/src/telemetry/proxy-telemetry.test.tsruns7,342 bytes
  • server/src/telemetry/proxy-telemetry.tsruns4,426 bytes
  • server/src/telemetry/run-telemetry.tsruns4,096 bytes
  • server/src/telemetry/session-metrics.test.tsruns37,952 bytes
  • server/src/telemetry/session-metrics.tsruns35,433 bytes
  • server/src/telemetry/session-window.test.tsruns4,544 bytes
  • server/src/telemetry/stack-unknown-reason.test.tsruns5,226 bytes
  • server/src/telemetry/telemetry-contract.test.tsruns25,614 bytes
  • server/src/telemetry/telemetry-identity.test.tsruns1,312 bytes
  • server/src/telemetry/telemetry-integrity.test.tsruns6,220 bytes
  • server/src/telemetry/telemetry.test.tsruns12,224 bytes
  • server/src/telemetry/telemetry.tsruns40,173 bytes
  • server/src/telemetry/tool-refused.test.tsruns6,278 bytes
  • server/src/telemetry/tool-refused.tsruns5,040 bytes
  • server/src/telemetry/verification-of.test.tsruns16,586 bytes
  • server/src/telemetry/verification-of.tsruns11,079 bytes
  • server/src/test-home.test.tsruns813 bytes
  • server/src/trace.test.tsruns9,680 bytes
  • server/src/trace.tsruns7,342 bytes
  • server/src/verdict-kernel-neutrality.test.tsruns5,272 bytes
  • server/src/wire-journal.late-project.test.tsruns1,769 bytes
  • server/src/wire-journal.tsruns9,018 bytes
  • server/src/workspace-packages.tsruns2,215 bytes
  • server/tsconfig.jsonasset394 bytes
  • server/vitest.config.tsruns3,010 bytes
  • skills/README.mddoc2,558 bytes
  • spec-runner/LICENSEasset11,343 bytes
  • spec-runner/NOTICEasset143 bytes
  • spec-runner/README.mddoc3,011 bytes
  • spec-runner/eslint-suppressions.jsonasset1,465 bytes
  • spec-runner/package.jsonruns1,717 bytes
  • spec-runner/src/boot.test.tsruns9,766 bytes
  • spec-runner/src/boot.tsruns9,569 bytes
  • spec-runner/src/context/clock.test.tsruns2,750 bytes
  • spec-runner/src/context/clock.tsruns1,044 bytes
  • spec-runner/src/context/input-mode.test.tsruns3,845 bytes
  • spec-runner/src/context/input-mode.tsruns2,668 bytes
  • spec-runner/src/context/matchers.tsruns6,618 bytes
  • spec-runner/src/context/resolve.test.tsruns3,420 bytes
  • spec-runner/src/context/resolve.tsruns1,962 bytes
  • spec-runner/src/flow-spec.test.tsruns15,911 bytes
  • spec-runner/src/flow-spec.tsruns5,069 bytes
  • spec-runner/src/index.tsruns1,801 bytes
  • spec-runner/src/junit.char-range.test.tsruns2,502 bytes
  • spec-runner/src/junit.test.tsruns3,746 bytes
  • spec-runner/src/junit.tsruns4,742 bytes
  • spec-runner/src/matchers.absent.test.tsruns3,437 bytes
  • spec-runner/src/matchers.element.test.tsruns3,440 bytes
  • spec-runner/src/matchers.net.test.tsruns2,486 bytes
  • spec-runner/src/matchers.signal.test.tsruns2,992 bytes
  • spec-runner/src/orphan-modules.test.tsruns1,156 bytes
  • spec-runner/src/outcome/constants.tsruns3,883 bytes
  • spec-runner/src/outcome/skip.tsruns2,027 bytes
  • spec-runner/src/outcome/success-assert.test.tsruns5,158 bytes
  • spec-runner/src/outcome/success-assert.tsruns331 bytes
  • spec-runner/src/register.test.tsruns6,635 bytes
  • spec-runner/src/register.tsruns4,139 bytes
  • spec-runner/src/registry.test.tsruns1,032 bytes
  • spec-runner/src/registry.tsruns500 bytes
  • spec-runner/src/runner.snapshot.test.tsruns1,721 bytes
  • spec-runner/src/runner.test.tsruns6,857 bytes
  • spec-runner/src/runner.tsruns2,234 bytes
  • spec-runner/src/spec-types.test.tsruns2,175 bytes
  • spec-runner/src/spec.tsruns255 bytes
  • spec-runner/src/summary.test.tsruns3,161 bytes
  • spec-runner/src/summary.tsruns1,773 bytes
  • spec-runner/src/test-context.act.test.tsruns4,503 bytes
  • spec-runner/src/test-context.tsruns5,854 bytes
  • spec-runner/src/types.tsruns2,795 bytes
  • spec-runner/src/verified-gate.test.tsruns4,480 bytes
  • spec-runner/tsconfig.jsonasset307 bytes
  • spec-runner/vitest.config.tsruns989 bytes
  • test/README.mddoc1,537 bytes
  • test/crash-isolation.integration.test.tsruns3,187 bytes
  • test/frameworks.integration.test.tsruns9,266 bytes
  • test/global-setup.tsruns989 bytes
  • test/lease-input.integration.test.tsruns5,183 bytes
  • test/next-withreticle.integration.test.tsruns3,001 bytes
  • test/page-error.integration.test.tsruns4,057 bytes
  • test/pool.integration.test.tsruns13,174 bytes
  • tsconfig.base.jsonasset2,096 bytes
  • tsconfig.jsonasset418 bytes
  • turbo.jsonasset2,931 bytes
  • typedoc.jsonasset784 bytes
  • vitest.config.tsruns932 bytes
  • vitest.integration.config.tsruns755 bytes
  • vitest.shared.tsruns4,042 bytes
  • vitest.temp-home.tsruns2,246 bytes

No excerpt is shown for this license. Read the source on GitHub.

View the complete source on GitHub

Skills included

  • reticle-docs
  • reticle
  • agentic-tdd
  • audit-my-app
  • debug-broken-ui
  • design-system-compliance
  • drive-desktop-app
  • false-green-tests
  • fix-what-i-pointed-at
  • install-and-verify
  • replay-user-flows
  • reticle
  • test-error-states
  • verify-cli-run
  • verify-form-validation
  • verify-keyboard-access
  • verify-language-switch
  • verify-login-logout
  • verify-optimistic-update
  • verify-pagination
  • verify-ui-change
  • verify-unattended

Repository facts

License
No license detected
Created
Jun 11, 2026
Last pushed
Nov 6, 2026
Forks
244
Open issues
173
Project activity
Active

Rank over the last 12 weeks

Now #751 · best #602 · down 95 in 30 days

  1. #716 on Nov 1
  2. #717 on Nov 2
  3. #718 on Nov 3
  4. #720 on Nov 4
  5. #749 on Nov 5
  6. #751 since Nov 6
80 earlier periods
  1. #857 on Aug 2
  2. #849 on Aug 7
  3. #858 on Aug 8
  4. #861 on Aug 9
  5. #897 from Aug 10 to Aug 11
  6. #895 on Aug 12
  7. #896 on Aug 13
  8. #877 on Aug 14
  9. #845 on Aug 15
  10. #868 on Aug 16
  11. #874 on Aug 17
  12. #892 on Aug 18
  13. #883 on Aug 19
  14. #873 on Aug 20
  15. #880 on Aug 21
  16. #827 on Aug 22
  17. #882 on Aug 23
  18. #896 on Aug 24
  19. #907 on Aug 25
  20. #889 on Aug 26
  21. #893 on Aug 27
  22. #930 on Aug 28
  23. #845 on Aug 29
  24. #846 on Aug 30
  25. #892 on Aug 31
  26. #927 on Sep 1
  27. #896 on Sep 2
  28. #862 on Sep 4
  29. #837 on Sep 5
  30. #874 on Sep 6
  31. #898 on Sep 7
  32. #916 on Sep 8
  33. #902 on Sep 9
  34. #899 on Sep 10
  35. #869 on Sep 11
  36. #863 on Sep 12
  37. #865 on Sep 13
  38. #877 on Sep 14
  39. #839 on Sep 15
  40. #846 on Sep 16
  41. #821 on Sep 17
  42. #799 on Sep 18
  43. #767 on Sep 19
  44. #752 on Sep 20
  45. #761 on Sep 21
  46. #777 on Sep 22
  47. #765 on Sep 23
  48. #726 on Sep 24
  49. #688 on Sep 25
  50. #681 on Sep 26
  51. #708 on Sep 27
  52. #715 from Sep 28 to Sep 29
  53. #694 on Sep 30
  54. #628 from Oct 1 to Oct 2
  55. #602 on Oct 3
  56. #620 on Oct 4
  57. #623 on Oct 5
  58. #626 on Oct 6
  59. #625 on Oct 7
  60. #656 on Oct 8
  61. #634 on Oct 9
  62. #618 on Oct 10
  63. #617 on Oct 11
  64. #634 on Oct 12
  65. #636 on Oct 13
  66. #644 on Oct 14
  67. #634 on Oct 15
  68. #641 on Oct 16
  69. #621 on Oct 17
  70. #613 on Oct 18
  71. #643 on Oct 19
  72. #651 on Oct 20
  73. #660 on Oct 21
  74. #638 from Oct 22 to Oct 23
  75. #619 on Oct 24
  76. #703 on Oct 25
  77. #708 on Oct 28
  78. #710 on Oct 29
  79. #713 on Oct 30
  80. #715 on Oct 31

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 6, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 61 notes
  • CHANGELOG.md:1 Analysis incomplete: file exceeds text byte budget
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • apps/electron-vue-pinia/src/renderer/src/assets/electron.svg:4 Analysis incomplete: physical or joined line exceeds character limit
  • assets/readme/chart-token-cost.svg:11 Analysis incomplete: physical or joined line exceeds character limit
  • assets/readme/chart-token-cost.svg:12 Analysis incomplete: physical or joined line exceeds character limit
  • bench/history.jsonl:19 Analysis incomplete: physical or joined line exceeds character limit
  • bench/history.jsonl:20 Analysis incomplete: physical or joined line exceeds character limit
  • bench/history.jsonl:21 Analysis incomplete: physical or joined line exceeds character limit
  • bench/history.jsonl:22 Analysis incomplete: physical or joined line exceeds character limit
  • bench/history.jsonl:23 Analysis incomplete: physical or joined line exceeds character limit
  • bench/history.jsonl:24 Analysis incomplete: physical or joined line exceeds character limit
  • bench/history.jsonl:25 Analysis incomplete: physical or joined line exceeds character limit
  • bench/history.jsonl:26 Analysis incomplete: physical or joined line exceeds character limit
  • bench/history.jsonl:27 Analysis incomplete: physical or joined line exceeds character limit
  • pnpm-lock.yaml:11288 Analysis incomplete: regex work limit reached
  • docs/skill.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • docs/skill.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • docs/skill.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 14,495 signals by file

.changes/1231-evicted-evidence-unknown.md

  • Network accessline 3
    - **`@reticlehq/engine` — a failing assertion graded NO when the buffer had evicted the events it needed.** An `allOf` whose net or signal child lost its evidence to buffer eviction got `ASSERTION_FAILED` instead of `UNKNOWN / UNCLEAN_CAPTU

.changes/1232-animation-predicate.md

  • Network accessline 3
    - **`@reticlehq/engine` + `@reticlehq/browser` — `animation` predicates now check live animations instead of only the event window.** An assertion could miss a CSS animation that was already running before the window opened, and `target: ".

.changes/1263-dev-server-stop-names-vite-step.md

  • Network accessline 3
    - **`@reticlehq/server` — a dev-server stop did not name the Vite step that `init` could not do.** When `init` could not patch `vite.config` (for example, a config that exports a factory from another file), it recorded a manual step and con

.changes/1518-hidden-match-named.md

  • Network accessline 3
    - **`@reticlehq/server` — a `target` whose every match was hidden acted on the hidden match and said nothing.** `reticle_act`, `act_and_wait` and `reticle_act { steps }` prefer a visible match. When no match was visible, they used the hidde

.changes/1518-hidden-target.md

  • Network accessline 3
    - **`@reticlehq/browser`, `@reticlehq/server` — a click on a control inside a `display: none` panel was verified `yes`.** Synthetic dispatch reached the control, its request fired, and the declared consequence held. No person could have cli

.changes/1518-sizeless-target.md

  • Network accessline 3
    - **`@reticlehq/browser` — a click on a control with no width (or no height) counted as a click a person could make.** A table cell collapsed a row checkbox to 0×16. The act result did not say the target had no size, because the old rule as

.changes/1522-derived-record-is-not-an-echo.md

  • Network accessline 3
    - **`@reticlehq/engine`: an endpoint that returns a new record of the same type was graded `write-field-ignored`.** A transform such as "summarize this artifact" takes an artifact descriptor and returns a new artifact with its own hash, pro

.changes/1531-store-change-is-an-effect.md

  • Network accessline 3
    - **`@reticlehq/engine`: a click whose store changed was graded `action-had-no-effect` when its visible update came late.** A video Pause button calls `pause()`, the app updates its store on the media `pause` event, and the label changes a 

.changes/1544-static-page-unchanged.md

  • Network accessline 3
    - **`@reticlehq/server`, `@reticlehq/init`: `reticle init` on a static HTML page edited the file you hand over.** Init wrote the connect snippet into `index.html` and told you to remove it before you publish. A forgotten snippet shipped wit

.changes/1646-echo-normalized-values.md

  • Network accessline 3
    - **`@reticlehq/engine` — a value the server stored in its own spelling gave a false `no`.** `write-field-ignored` compared the request and the echo as text. A decimal sent as `"18.5"` and echoed by a fixed-point column as `"18.500"`, or a 

.changes/1649-journal-cut-bounded.md

  • Network accessline 3
    - **`@reticlehq/server` — one cut journal read made every later verdict `unknown`.** When the session journal grew past its read bound between two reads, the read skipped bytes and recorded the loss with no time. From then on, every `reticl

.changes/1658-verify-flows-total-budget.md

  • Network accessline 3
    - **`@reticlehq/server` — `reticle_verify` with `action: "flows"` or `"change"` had no total time limit and kept going after the session was lost.** The sequential replay waited on every remaining flow for a page that never came, and the MC

.changes/1660-unpatched-fetch-unknown.md

  • Network accessline 3
    - **`@reticlehq/browser`, `@reticlehq/engine` — a request sent through a `fetch` saved before Reticle connected read as `no`, not `unknown`.** Some client libraries store `window.fetch` when their module loads. Reticle patches `fetch` later

.changes/1661-console-capture-dom-promise.md

  • Network accessline 3
    - **`@reticlehq/browser`: console capture no longer walks DOM nodes, windows and promises in a logged object.** `console.log(errors)` in a React Hook Form `onInvalid` handler logs a field `ref`, which is a DOM element. The capture followed 

.changes/1663-scope-every-match.md

  • Network accessline 3
    - **`@reticlehq/browser` — a `scope` that matched several elements searched only the first.** A scope on a list of repeated items, such as `[data-testid=message]`, answered `no element matched` for text in every item after the first, and no

.changes/1666-editor-textarea-refused.md

  • Network accessline 3
    - **`@reticlehq/browser` — `fill`, `type` and `clear` wrote into the hidden `<textarea>` of a code editor and reported success.** Monaco and CodeMirror keep their input in a `<textarea>` with `role="textbox"`. The editor merges a direct wri

.changes/1668-crawl-unnamed-controls.md

  • Network accessline 3
    - **`@reticlehq/server` — `crawl` no longer clicks a control that has no accessible name.** An icon-only button, such as a per-row trash icon, gave the destructive-action guard no text to classify, so the crawl clicked it. The crawl now ski

.changes/1682-theme-scoped-tokens.md

  • Network accessline 3
    - **`@reticlehq/browser` \u2014 the theme inspector resolves design tokens on the inspected element, so a palette scoped to a subtree reads on-theme.** The palette behind `reticle_look`'s theme report resolved every token against `<body>`. 

.changes/1715-scroll-wheel.md

  • Network accessline 3
    - **`@reticlehq/browser` now lets `scroll` send wheel events.** A page that scrolls from a `wheel` listener, such as a smooth-scroll library, received no input from `scroll` because Reticle changed the offset directly. Pass `{ wheel: true }

.changes/1779-driven-download-capture.md

  • Network accessline 3
    - **`@reticlehq/server`, `@reticlehq/engine`, `@reticlehq/core` — a `net` check could not see a file the server sent as a download.** A click on an export link that the server answers with `Content-Disposition: attachment` becomes a downloa

.changes/1779-server-download-net-check.md

  • Network accessline 3
    - **`@reticlehq/engine`, `@reticlehq/core` — a `net` check could not see a file the server sent as a download.** A click on an export link that the server answers with `Content-Disposition: attachment` leaves the page as a navigation, so th

.changes/1784-layout-shift-window.md

  • Network accessline 3
    - **`@reticlehq/browser`, `@reticlehq/server` — `summary.layoutShift` reported the page's running total, not what the action did.** The value grew on every `act_and_wait`, even for actions that moved nothing, and an idle dev page with the H

.changes/1903-lease-pointer-emulation.md

  • Network accessline 3
    - **`@reticlehq/server`: a lease can open with a coarse pointer, so touch-only CSS can be given a verdict.** `reticle_lease { action: "acquire", emulate: { pointer: "coarse" | "fine" } }` sets what `@media (pointer: ...)` reports: a rule li

.changes/1936-download-net-check-unknown.md

  • Network accessline 3
    - **`@reticlehq/engine` — a `net` check on a click that downloads a file gave `no`.** A click on `<a download>`, or on a link that the server answers with `Content-Disposition: attachment`, is recorded as a navigation request that stays pen

.changes/1949-hmr-rebinds-auto-store.md

  • Network accessline 3
    - **`@reticlehq/react` — after a hot reload, `reticle_look state` read the store instance from before the reload.** Auto-discovery registered a store once per name and skipped the name afterwards, so when HMR re-ran the module that creates 

.changes/1963-mcp-status-url.md

  • Network accessline 3
    - **`@reticlehq/server` — `status` and `doctor` now show the running daemon's HTTP/SSE MCP URL.** Agents without `reticle_*` tools can find the connection URL without searching the docs. Both commands use the daemon's port. Closes [#1963](h

.changes/1996-affected-flows-one-folder.md

  • Network accessline 3
    - **`@reticlehq/server` — `reticle_verify { action: "affected" }` named a flow that `{ action: "flows" }` could not find.** `affected` and `change` read the flows from their own folder, and `flows` read them from the folder the lease claime

.changes/2005-lease-compiling-server.md

  • Network accessline 3
    - **`@reticlehq/server` — a lease that timed out on a dev server still compiling its first route told the agent to start the server.** A large Next.js app can take longer than the 30 s navigation budget to compile its first route, and the r

.changes/2006-act-and-wait-timeout-diagnosis.md

  • Network accessline 3
    - **`@reticlehq/server`: `reticle_act_and_wait` answered `unknown` when its `until` read timed out, and said nothing about why.** The bare `command 'match' timed out after 1500ms` could not tell a page whose SDK is behind the daemon from a 

.changes/2009-act-follows-a-late-navigation.md

  • Network accessline 3
    - **`@reticlehq/server` — a sign-in whose redirect answered after the act budget read as a failed act on the old page.** An act that causes a full-page navigation (a form POST that 302s, the most common sign-in shape) spent the budget waiti

.changes/2013-duplicate-across-steps.md

  • Network accessline 3
    - **`@reticlehq/server` — a write repeated once per flow step read as a double submit.** A flow that clicks Pause and then Resume sends the same POST to a toggle endpoint in each step. After the replay, Reticle checked the whole journey as 

.changes/2017-prefer-web-app-dev-command.md

  • Network accessline 3
    - **`@reticlehq/server` — `next_action` sent the agent to a backend or read-only folder.** When a project folder held a backend beside the web app, the no-session answer could hand the agent `npm run dev` for the backend. It now prefers the

.changes/2031-old-sdk-body-cap-advice.md

  • Network accessline 3
    - **`@reticlehq/engine` — a truncated response body on an SDK older than 3.3.0 said to raise `networkBodyMaxChars`.** SDKs before 3.3.0 cap every recorded body at 8192 characters and ignore that option, so following the advice changed nothi

.changes/2033-parallel-verify-https.md

  • Network accessline 3
    - **`@reticlehq/server` — parallel verification lost the source lease's certificate setting.** Per-flow leases now inherit `ignoreHTTPSErrors`, so saved flows can replay against self-signed HTTPS development servers. `reticle_verify` also a

.changes/2034-declared-route.md

  • Network accessline 3
    - **`@reticlehq/server` — a flow that declared the route it needs ran on the page the previous flow left open.** In a sequential `reticle_verify` run, a flow with a `requires` route claim kept the current route. Its anchors then failed, or 

.changes/2047-visibility-override.md

  • Network accessline 3
    - **`@reticlehq/browser` — Text checks now find visible children inside containers with `visibility: hidden` or `collapse`.** A child can override inherited visibility with `visibility: visible`. Presence and absence checks now use that com

.changes/2050-gate-own-files.md

  • Network accessline 3
    - **`@reticlehq/server` — `reticle gate` counted Reticle's own `.reticle/` files as changed code.** A replay writes intent, impact and episode files into `.reticle/`. The gate read those writes as changes to the app, and a flow with no sour

.changes/2056-nameless-role-anchor.md

  • Network accessline 3
    - **`@reticlehq/server`, `@reticlehq/browser` — a saved flow could not click a control with no accessible name.** An icon-only button (edit, delete, QR code) has a role and no name. Replay sent such a step down the testid path, which querie

.changes/2060-verify-flow-loses-session.md

  • Network accessline 3
    - **`@reticlehq/server` — `reticle verify` gave no result for any flow when one flow lost its session.** A suite of saved flows where one flow went to a page that did not reconnect ended with one `verify failed: no browser session connected

.changes/2063-element-failure-names-query.md

  • Network accessline 3
    - **`@reticlehq/engine`, `@reticlehq/server` — an element failure did not name its element, and `reticle verify --timeout` did not show its unit.** A reason such as `element exists but not in state 'visible'` did not say which query failed,

.changes/2069-media-before-window.md

  • Network accessline 3
    - **`@reticlehq/engine` — a `net` check on a media file graded `no` when the load was recorded before the check's window.** The network observer reports only the first resource timing entry for a URL. When a `<video>` or `<audio>` load land

.changes/2071-presenter-narrow-viewport.md

  • Network accessline 3
    - **`@reticlehq/browser` — the HUD no longer opens its panel by itself on a phone-width page.** Below 480 px the agent's first action and a page load both left the 320 px chat panel over the app's own controls, and a touch on a control unde

.changes/2077-static-server-port-move.md

  • Network accessline 3
    - **`@reticlehq/server` — `init --port` attached to an old static server that dialled the previous port.** On a plain HTML page, a second `init` with a new port attached to the static server from the earlier run when that run's daemon had s

.changes/2083-file-input-role.md

  • Network accessline 3
    - **`@reticlehq/browser` — a file input has the role `button`, as in Chromium and Playwright.** It had the role `textbox`, so a saved upload step anchored as a text field, replay found a real text field, and the upload was refused on a work

.changes/2084-sequence-sub-step-anchor.md

  • Network accessline 3
    - **`@reticlehq/server` — a step inside a recorded sequence finds its control as a single step does.** A sub-step looked through every control of its role and took the first one. It ignored the recorded position among controls of the same n

.changes/2109-renamed-control-within.md

  • Network accessline 3
    - **`@reticlehq/browser`, `@reticlehq/server` — a replayed click failed on a correct build that names the control differently.** A flow recorded `button "Dismiss error message"`, and a correct build named the same button "Close message". Th

.changes/2113-sequence-unreachable-target.md

  • Network accessline 3
    - **`@reticlehq/server` — a replayed sequence passed a click that no person could make.** A single act step on a target that is covered, has no size, or ignores the pointer (`pointer-events: none`) ends unreachable, and the flow is `unverif

.changes/2117-unsynced-roots-one-line.md

  • Network accessline 3
    - **`@reticlehq/server` — `reticle verify` printed one unsynced-root line per folder before its answer.** On a machine that had run the zero-install path against many local origins, that was about a hundred lines an agent had to read throug

.changes/2130-sequence-burst-gap.md

  • Network accessline 3
    - **`@reticlehq/server`, `@reticlehq/core` — a replayed sequence lost the pace it was recorded at.** A `reticle_act_sequence` driven with `burst` dispatches each step with no settle and holds a fixed gap between them. The saved flow did not

.changes/2135-shared-testid-position.md

  • Network accessline 3
    - **`@reticlehq/browser`, `@reticlehq/server`, `@reticlehq/core` — a step on a shared test id could never replay.** When several elements carry the same `data-testid` (one component rendered several times) and the element has no role and na

.changes/2139-press-chord-and-punctuation.md

  • Network accessline 3
    - **`@reticlehq/browser` — a press of a shortcut such as `Meta+/` did nothing, and said it was dispatched.** The synthetic press sent the chord as one keydown whose key was the literal text `Meta+/`, with no modifier flag and no `code`. A p

.changes/2141-dead-click-under-hud.md

  • Network accessline 3
    - **`@reticlehq/browser` — a click on a control that does nothing passed while the HUD was mounted.** The HUD changes its own DOM on every act. The act counted those changes as the click's effect, so `action-had-no-effect` did not fire, and

.changes/2155-start-wait-names-the-knob.md

  • Network accessline 3
    - **`@reticlehq/server` — when replay gave up on a slow start page, it gave the wrong advice.** Replay waits for the flow's start page to connect before step 1. On a dev server that compiles for more than that wait on the first load, the fl

.changes/2163-loopback-csp-widen.md

  • Network accessline 3
    - **`@reticlehq/server` — a lease on a loopback page with a strict Content-Security-Policy never connected.** A page on `127.0.0.1` with `connect-src 'self'` blocks the daemon's WebSocket, which is a different origin, and the lease answered

.changes/2168-replay-waits-for-session.md

  • Network accessline 3
    - **`@reticlehq/server` — a replayed flow ended `unknown` while the page reconnected.** `reticle verify` replays flows one after the other, and each flow reloads the page. A flow that started in the short gap before the page reconnected end

.changes/2172-signal-before-declared-failure.md

  • Network accessline 3
    - **`@reticlehq/engine` — a declared failure was graded `no` because of a signal sent before the request.** An action declared an expected failure, for example `net { method: "POST", status: 409 }`, and the server answered 409. Every clause

.changes/2176-route-and-absence-claims.md

  • Network accessline 3
    - **`@reticlehq/engine`, `@reticlehq/server`, `@reticlehq/browser` — a passing route claim, or a dialog asserted absent by testid, came back `unknown`.** A click that did a full navigation, with a `route` predicate that passed, got `action-

.changes/2177-close-sync-honours-opt-out.md

  • Network accessline 3
    - **`@reticlehq/server` — `reticle drive` without a daemon, and a `verify` that starts its own server, sent your work to the platform when they closed, even with background sync switched off.** Their last sync cycle did not read `RETICLE_BA

.changes/2190-verify-against.md

  • Network accessline 3
    - **`@reticlehq/server` — `reticle verify <url> --against <reference-url>` reports what a change altered in what users see.** A saved flow checks the consequences its author thought of, and not that all other text stayed the same. `--agains

.changes/2191-trim-commands-deprecated.md

  • Network accessline 3
    - **`@reticlehq/server` — four commands are now flags of the command that did the same work.** `affected` is `gate --list`, `license` is part of `status`, `rollback` is `update --rollback`, and `restart` is `serve --restart` (`--force` too)

.changes/2191-trim-commands-removed.md

  • Network accessline 3
    - **`@reticlehq/server` — the command names that 3.7.0 kept for one release are removed.** `kill`, `login`, `link`, `project`, `whoami`, `push`, `regression`, `share`, `issues` and `memory` now print the command that replaces each one and e

.changes/2195-explore-holes-and-behaviour-findings.md

  • Network accessline 3
    - **`@reticlehq/server` — `reticle_coverage { app: true }` names every hole.** The report has a new `holes` block. It names each route never visited, each control never driven, each control whose edge cases were never driven, each write who

.changes/2196-quiet-undeclared-plan-is-no-fault.md

  • Network accessline 3
    - **`@reticlehq/server` — a `reticle_act { steps }` plan that declared nothing said `unknown`, also when the app was quiet.** A single `reticle_act_and_wait` with no `until` is `no-fault` when the page settles and no channel reports a probl

.changes/2201-explore-drives-edge-cases.md

  • Network accessline 3
    - **`@reticlehq/server` — `reticle_crawl { exhaustive: true }` now drives edge cases and reports what they break.** Before, the exhaustive crawl typed one ordinary value into each field and pressed each control once, so a double submit, a v

.changes/README.md

  • Network accessline 16
    - **`@reticlehq/server` — `reticle_navigate` gave up at 5s and called it a failed navigation.** A Nuxt SPA reattaching under HMR takes 30–60s, so every navigation to it answered `confirmed: false` while the app was still coming back. `timeo

.changes/acknowledged-failed-write.md

  • Network accessline 3
    - **`@reticlehq/engine` — a store that records the failed call's HTTP status acknowledges the failure, so the verdict is no longer `no` (`ui-advanced-request-failed`).** A correct app got `no` when every declared clause passed: its store ke

.changes/press-runs-key-defaults.md

  • Network accessline 3
    - **`@reticlehq/browser` — a synthetic `press` now does what the key does in a browser.** A synthetic key event has no default action, so Enter on a native button did not activate it, Enter in a form field did not submit the form, Space did

.claude-plugin/marketplace.json

  • Network accessline 3
    "owner": {     "name": "Reticle contributors",     "url": "https://github.com/reticlehq"
  • Network accessline 4
    "name": "Reticle contributors",     "url": "https://github.com/reticlehq"   },
  • Network accessline 5
    "url": "https://github.com/reticlehq"

.github/ISSUE_TEMPLATE/bug_report.yml

  • Network accessline 13
    label: What happened?       description: A clear description of the bug and what you expected instead.       placeholder: 'I ran `reticle drive http://localhost:3000`, then asked the agent to verify the login flow, and…'
  • Network accessline 14
    description: A clear description of the bug and what you expected instead.       placeholder: 'I ran `reticle drive http://localhost:3000`, then asked the agent to verify the login flow, and…'     validations:
  • Network accessline 15
    placeholder: 'I ran `reticle drive http://localhost:3000`, then asked the agent to verify the login flow, and…'

.github/ISSUE_TEMPLATE/config.yml

  • Network accessline 2
    contact_links:   - name: Discord — questions, ideas, what we're building     url: https://discord.gg/BwAbzv9ZRz
  • Network accessline 3
    - name: Discord — questions, ideas, what we're building     url: https://discord.gg/BwAbzv9ZRz     about: Fastest way to get an answer, see the current cycle, or claim an issue before you start.
  • Network accessline 4
    url: https://discord.gg/BwAbzv9ZRz
  • Network accessline 5
    about: Fastest way to get an answer, see the current cycle, or claim an issue before you start.   - name: Documentation     url: https://github.com/reticlehq/reticle/tree/main/docs
  • Network accessline 6
    - name: Documentation     url: https://github.com/reticlehq/reticle/tree/main/docs     about: Getting started, integration, and the benchmark explainer.
  • Network accessline 7
    url: https://github.com/reticlehq/reticle/tree/main/docs
  • Network accessline 8
    about: Getting started, integration, and the benchmark explainer.   - name: Security vulnerability     url: https://github.com/reticlehq/reticle/blob/main/SECURITY.md
  • Network accessline 9
    - name: Security vulnerability     url: https://github.com/reticlehq/reticle/blob/main/SECURITY.md     about: Please report security issues privately — do not open a public issue.
  • Network accessline 10
    url: https://github.com/reticlehq/reticle/blob/main/SECURITY.md

.github/ISSUE_TEMPLATE/security_finding.yml

  • Network accessline 7
    value: |         ⚠<U+FE0F> **Do not use this template for an undisclosed, exploitable vulnerability.**         Report those **privately** to **hey@reticle.sh** — see [SECURITY.md](https://github.com/reticlehq/reticle/blob/main/SECURITY.md).
  • Network accessline 9
    Report those **privately** to **hey@reticle.sh** — see [SECURITY.md](https://github.com/reticlehq/reticle/blob/main/SECURITY.md).

.github/REPOSITORY-SETTINGS.md

  • Network accessline 3
    Use the [current Scorecard report](https://securityscorecards.dev/viewer/?uri=github.com/reticlehq/reticle) to prioritize failing checks. Workflow files show intent; successful runs, repository settings, release assets, and reviewed merge h
  • Network accessline 71
    - [ ] Register the canonical repository URL at [OpenSSF Best Practices](https://www.bestpractices.dev/) and complete the passing criteria with accurate evidence. This is separate from the Scorecard badge in README.
  • Network accessline 83
    Check definitions evolve: consult the [official Scorecard criteria](https://github.com/ossf/scorecard/blob/main/docs/checks.md) alongside the version reported by the actual scan.

.github/workflows/ci.yml

  • Dangerous shell operationline 372
    sudo apt-get update
  • Dangerous shell operationline 373
    sudo apt-get install -y --no-install-recommends \
  • Network accessline 522
    exit 0           fi           code=$(curl -sS -o /tmp/dispatch.out -w '%{http_code}' \
  • Network accessline 523
    fi           code=$(curl -sS -o /tmp/dispatch.out -w '%{http_code}' \             -X POST \
  • Network accessline 524
    code=$(curl -sS -o /tmp/dispatch.out -w '%{http_code}' \
  • Network accessline 526
    [Credential-related source omitted]
  • Network accessline 527
    [Credential-related source omitted]
  • Network accessline 528
    https://api.github.com/repos/reticlehq/reticle-fixtures/dispatches \
  • Dangerous shell operationline 575
    sudo pkill -9 -x apt-get || true
  • Dangerous shell operationline 576
    sudo pkill -9 -x dpkg || true
  • Dangerous shell operationline 577
    sudo dpkg --configure -a || true
  • Dangerous shell operationline 578
    echo 'DPkg::Lock::Timeout "300";' | sudo tee /etc/apt/apt.conf.d/99-dpkg-lock-timeout > /dev/null
  • Dangerous shell operationline 967
    sudo pkill -9 -x apt-get || true
  • Dangerous shell operationline 968
    sudo pkill -9 -x dpkg || true
  • Dangerous shell operationline 969
    sudo dpkg --configure -a || true
  • Dangerous shell operationline 970
    echo 'DPkg::Lock::Timeout "300";' | sudo tee /etc/apt/apt.conf.d/99-dpkg-lock-timeout > /dev/null
  • Dangerous shell operationline 1089
    sudo pkill -9 -x apt-get || true
  • Dangerous shell operationline 1090
    sudo pkill -9 -x dpkg || true
  • Dangerous shell operationline 1091
    sudo dpkg --configure -a || true
  • Dangerous shell operationline 1092
    echo 'DPkg::Lock::Timeout "300";' | sudo tee /etc/apt/apt.conf.d/99-dpkg-lock-timeout > /dev/null
  • Dangerous shell operationline 1219
    sudo apt-get update
  • Dangerous shell operationline 1220
    sudo apt-get install -y --no-install-recommends \
  • Dangerous shell operationline 1280
    sudo apt-get update
  • Dangerous shell operationline 1281
    sudo apt-get install -y --no-install-recommends xvfb libgbm1 libnss3 libasound2t64
  • Dangerous shell operationline 1302
    sudo pkill -9 -x apt-get || true
  • Dangerous shell operationline 1303
    sudo pkill -9 -x dpkg || true
  • Dangerous shell operationline 1304
    sudo dpkg --configure -a || true
  • Dangerous shell operationline 1305
    echo 'DPkg::Lock::Timeout "300";' | sudo tee /etc/apt/apt.conf.d/99-dpkg-lock-timeout > /dev/null
  • Dangerous shell operationline 1379
    sudo pkill -9 -x apt-get || true
  • Dangerous shell operationline 1380
    sudo pkill -9 -x dpkg || true
  • Dangerous shell operationline 1381
    sudo dpkg --configure -a || true
  • Dangerous shell operationline 1382
    echo 'DPkg::Lock::Timeout "300";' | sudo tee /etc/apt/apt.conf.d/99-dpkg-lock-timeout > /dev/null

.github/workflows/dco.yml

  • Network accessline 3
    # Developer Certificate of Origin check. Every commit in a PR must carry a `Signed-off-by:` trailer # matching its author — the contributor's affirmation that they wrote the change and can submit it under # the project's license (https://de
  • Network accessline 4
    # matching its author — the contributor's affirmation that they wrote the change and can submit it under # the project's license (https://developercertificate.org). Sign off with `git commit -s`. #
  • Network accessline 5
    # the project's license (https://developercertificate.org). Sign off with `git commit -s`.
  • Network accessline 55
    echo ""             echo "How to fix — sign off certifies you wrote the change and may submit it"             echo "under the project's license (https://developercertificate.org)."
  • Network accessline 56
    echo "How to fix — sign off certifies you wrote the change and may submit it"             echo "under the project's license (https://developercertificate.org)."             echo ""
  • Network accessline 57
    echo "under the project's license (https://developercertificate.org)."

.github/workflows/publish-crate.yml

  • Access to secretsline 34
    [Credential-related source omitted]
  • Dangerous shell operationline 69
    sudo apt-get update
  • Dangerous shell operationline 70
    sudo apt-get install -y --no-install-recommends \
  • Network accessline 79
    VERSION=$(grep -m1 '^version' Cargo.toml | cut -d'"' -f2)           echo "crate=$NAME $VERSION"           PUBLISHED=$(curl -sS -H 'User-Agent: reticle-ci' \
  • Network accessline 80
    echo "crate=$NAME $VERSION"           PUBLISHED=$(curl -sS -H 'User-Agent: reticle-ci' \             "https://crates.io/api/v1/crates/$NAME/$VERSION" | grep -c '"num"' || true)
  • Network accessline 81
    PUBLISHED=$(curl -sS -H 'User-Agent: reticle-ci' \
  • Network accessline 82
    "https://crates.io/api/v1/crates/$NAME/$VERSION" | grep -c '"num"' || true)

.github/workflows/publish.yml

  • Access to secretsline 22
    [Credential-related source omitted]
  • Access to secretsline 50
    [Credential-related source omitted]
  • Network accessline 60
    node-version: 22           cache: pnpm           registry-url: https://registry.npmjs.org
  • Network accessline 61
    cache: pnpm           registry-url: https://registry.npmjs.org       # Never publish from an arbitrary branch state on a manual dispatch — releases run against their
  • Network accessline 62
    registry-url: https://registry.npmjs.org
  • Access to secretsline 116
    [Credential-related source omitted]
  • Network accessline 144
    run: |           set -euo pipefail           curl -fsSL -o mcp-publisher.tar.gz \
  • Network accessline 145
    set -euo pipefail           curl -fsSL -o mcp-publisher.tar.gz \             "https://github.com/modelcontextprotocol/registry/releases/download/${PUBLISHER_VERSION}/mcp-publisher_linux_amd64.tar.gz"
  • Network accessline 146
    curl -fsSL -o mcp-publisher.tar.gz \
  • Network accessline 147
    "https://github.com/modelcontextprotocol/registry/releases/download/${PUBLISHER_VERSION}/mcp-publisher_linux_amd64.tar.gz"

.github/workflows/scorecard.yml

  • Network accessline 3
    # Runs the OpenSSF Scorecard supply-chain security analysis and publishes the results to the Security # tab + the Scorecard badge, so the project's security posture is externally verifiable rather than # asserted. Weekly + on push to main. 
  • Network accessline 5
    # asserted. Weekly + on push to main. Read the results at https://securityscorecards.dev.

.github/workflows/welcome.yml

  • Network accessline 27
    Thanks for opening your first issue here. A maintainer usually replies within a day. If it is a bug, the Reticle version (`npx @reticlehq/server --version`) and what you saw versus what you expected make it much faster to fix.           pr_
  • Network accessline 29
    Thanks for your first pull request to Reticle! A maintainer aims to review within two days. Before then, `pnpm verify` locally catches most of what CI will, and [CONTRIBUTING.md](https://github.com/reticlehq/reticle/blob/main/CONTRIBUTING.m

.gitignore

  • Access to secretsline 44
    [Credential-related source omitted]

CHANGELOG.md

  • Network accessline 3
    All notable changes to the **`@reticlehq/*`** packages are documented here (each entry notes the package it affects). The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the project follows [Semantic Versioning]
  • Network accessline 11
    - **`@reticlehq/browser`: `select` drives an ARIA combobox.** On a Radix Select, a Headless UI Listbox or any element with `role="combobox"` or `aria-haspopup="listbox"`, `select` now opens the popup and clicks the `role="option"` whose lab
  • Network accessline 12
    - **`@reticlehq/server`: `reticle_lease { action: "acquire", fresh: true }` opens a separate tab on an origin that this connection already leases.** Sub-agents of one client share one MCP connection, so for Reticle they were one agent, and 
  • Network accessline 13
    [Credential-related source omitted]
  • Access to secretsline 13
    [Credential-related source omitted]
  • Network accessline 14
    - **`@reticlehq/server`: `gate`, `verify` and `affected` write one line at the end of a CI run.** In a CI runner or a container, the last line on stderr names the pull request check (each replay, the run history and a merge block) and `http
  • Network accessline 15
    - Using Reticle in CI or in a pipeline? Talk to a founder: [book a call](https://calendar.app.google/h9NRDbBBQetyTzWM6) or write to [hey@reticle.sh](mailto:hey@reticle.sh).
  • Network accessline 38
    The result names each form it read in `normalized`, so the agent sees what was checked. When a predicate is refused, the refusal now ends with the corrected predicate built from the agent's values. For example, `{ kind: "text", label: "Orde
  • Network accessline 40
    - **`@reticlehq/server` — `reticle verify` called every run with `CI` set an OEM pipeline.** A coding-agent sandbox sets `CI` too, so a remote agent session showed as a pipeline, with trigger `oem`. The command line now reads the `automatio
  • Network accessline 41
    - **`@reticlehq/server` — `daemon_died_unclean` telemetry now says how the daemon ended.** The next daemon start reads the dead daemon's log and sends how it ended (a stopped heartbeat, a signal, a failed start), how long it had been silent
  • Network accessline 52
    - **`@reticlehq/engine`, `@reticlehq/browser` — a `text` predicate's `satisfies` was graded against the first 80 characters of the text, not the text.** The page describes every element with a display-sized `text` (80 characters and an elli
  • Network accessline 53
    - **`@reticlehq/server` — `reticle_lease { action: "acquire" }` said `ready: true` for a tab that did not answer.** `ready` came from a row in the sessions map. A tab can be in the map and answer nothing, so the next read timed out or found
  • Network accessline 54
    - **`@reticlehq/server` — `reticle verify <url>` from a newer CLI failed before it opened the page when the running daemon was older.** The CLI sends the lease the `root` argument, and a daemon from an older release refuses a parameter it d
  • Network accessline 55
    - **`@reticlehq/engine`: a `net` check over a `<video>` or `<audio>` source no longer answers `no`.** A media element loads its file through neither `fetch` nor `XMLHttpRequest`, and Chromium does not report the load as a `resource` timing 
  • Network accessline 56
    - A name check attached to a test-id locator now uses the browser's whitespace rule. Names with inner line breaks or repeated spaces no longer fail only because the locator changed. Fixes #1839. - **`@reticlehq/server` — a step `expect` tha
  • Network accessline 57
    - **`@reticlehq/server` — a step `expect` that did not parse was refused without the field that failed.** The refusal was one fixed sentence with three generic examples. So `expect: { kind: "element", query: { css: ".total" } }` did not say
  • Network accessline 58
    - **A step screenshot of an older page SDK asked for a command the page does not have.** Reticle asked every page for `render`, which came in SDK 3.7. Now a page that declares no `render` but declares the desktop shell's `capture` is asked 
  • Network accessline 59
    - **`@reticlehq/server`, `@reticlehq/browser` — a zero-install lease lost its session at the first full page load.** On an app with no Reticle SDK, the lease worked on the first page. After the app moved to another page (a login that redire
  • Network accessline 60
    - **`@reticlehq/server` — the run report on lease release listed claims that other agents made.** When two agents worked in one project and their calls overlapped, a call from one agent could end after the other agent's run began, and its c
  • Network accessline 61
    - **`@reticlehq/server` — the run report on lease release listed another agent's claims and none of the agent's own.** Two agents that work at the same time on one daemon (for example, on two worktrees of one project) shared one run. Each c
  • Network accessline 62
    - **`@reticlehq/server`: `reticle_viewport` with only `colorScheme` or `reducedMotion` answered `width: 0, height: 0`.** The call changed the media and kept the size, but the answer read as a broken 0 × 0 viewport. It now answers the size t
  • Network accessline 63
    - **`@reticlehq/browser`: a page with `scroll-behavior: smooth` made Reticle judge a scrolled-in button as outside the viewport.** The `scroll_into_view` action, the scroll that a click makes to reach an off-viewport target, and `inspect` w
  • Network accessline 64
    - **`@reticlehq/server`: a folder with no package.json picked the first child app, or named none.** In a task folder that holds the app one level down, the dev-command search took the first child with a dev script, in the order the disk lis
  • Network accessline 65
    - **`@reticlehq/server` — a daemon that held the port and did not answer was reported as "port free", and `restart` could not recover.** A daemon stuck in its exit keeps its listening socket open and accepts nothing. When the connect queue 
  • Network accessline 66
    - **`@reticlehq/server` — the MCP proxy could stop a healthy daemon that was only slow.** On a busy machine a daemon can take more than 1 second to answer `/status`. The proxy then called it stuck and stopped it, and every agent that used i
  • Network accessline 67
    - **`@reticlehq/server` — a verdict's `engineBlindSpots` named a claim from an earlier task.** The blind spots were judged on the call's own `intent` and on every intent still open in the run, so an earlier task's arithmetic claim was repor
  • Network accessline 68
    - **`@reticlehq/browser`: controls on a flipped card's visible face read as `hidden`.** `backface-visibility: hidden` was treated as if it hid the element outright, so `isVisible` never asked which face of the card was turned toward the vie
  • Network accessline 69
    - **`@reticlehq/server` — on macOS, a Google Chrome or Microsoft Edge in `~/Applications` was not used when Playwright's own Chromium was absent.** The installed-browser fallback looked only in `/Applications`, so a copy installed without a
  • Network accessline 70
    - **`@reticlehq/browser` — a click missed a button that an input's blur handler enabled.** Reticle read the disabled button before it moved focus, so the click could not follow the same path as a real pointer. A click now blurs the active f
  • Network accessline 71
    - **`@reticlehq/server` — an app that threw while its modules were evaluated showed the agent a blank page and no cause.** An import-time error fires while the first navigation is still running, before the SDK is injected, so no window list
  • Network accessline 72
    - **`@reticlehq/server` — `reticle_assert` answered `unknown` when the page timed out on `match`, and said nothing about why.** The bare `command 'match' timed out after 2679ms` could not tell a page whose SDK predates the command from one 
  • Dangerous shell operationline 73
    - **`@reticlehq/server` — a lease on a deployed page with no SDK ended `sdk_never_dialled`.** The zero-install reader could not connect from a page that is not on loopback, so a lease on a deployed build or a production preview could not dr
  • Network accessline 73
    - **`@reticlehq/server` — a lease on a deployed page with no SDK ended `sdk_never_dialled`.** The zero-install reader could not connect from a page that is not on loopback, so a lease on a deployed build or a production preview could not dr
  • Network accessline 79
    A recording that you start now keeps every claim that you declared. The always-on recording keeps each claim that the action made hold. Absence (`absent: true`) and `scope` already reached the saved flow, and tests now keep them there. Refs
  • Network accessline 81
    - **`@reticlehq/server` — a real click or drag from Reticle went to Reticle's own HUD.** When the HUD sat over an app control, a `native: true` click, a hover or a drag on a lease landed on the HUD and not on the app. The verdict then said 
  • Network accessline 95
    - **`@reticlehq/server` — a Node.js too old for Reticle got a module error, not the version line.** A Node.js that cannot load ES modules stopped before the version check ran. `reticle` now checks the Node.js version first, in code that eve
  • Network accessline 96
    - **`@reticlehq/engine` — a `not` inside `allOf` failed when its inner element was absent.** This occurred on a throttled tab. The absent inner element made the `not` unreadable. When a sibling clause found an element, the engine removed th
  • Network accessline 97
    - **`@reticlehq/browser` — an SDK in a same-origin iframe no longer takes over the page's session.** A same-origin sub-frame, such as an `about:srcdoc` preview, shares the tab's `sessionStorage`. The SDK inside it read the page's remembered
  • Network accessline 110
    - **`@reticlehq/react` — `install()` accepts `{ discoverStores: false }` to opt out of provider-store auto-discovery.** An app with more than one context provider had no way to stop `install()` from registering every store it found in the f
  • Network accessline 114
    - **`@reticlehq/browser`: `select` on a Radix or Headless UI combobox named no way forward.** The refusal was `cannot select on a <button>`. For an element with `role="combobox"` or `aria-haspopup="listbox"`, the refusal now says to click t
  • Network accessline 115
    - **`@reticlehq/browser`, `@reticlehq/server`: `click` ignored `args.modifiers` and `args.button`.** A Shift+click or a right-click was sent as a plain left click, and nothing said so. A `click` or `dblclick` now carries the `shiftKey`, `ct
  • Network accessline 124
    - **`@reticlehq/server` — Document `reticle verify --expect-file` on Windows PowerShell.** On Windows PowerShell, `npx.cmd` re-parses inline `--expect '{...}'` and strips inner quotes, breaking inline JSON predicates. Documented `--expect-f
  • Network accessline 129
    - **`@reticlehq/server` — `reticle gate` blamed a missing flow when the saved flows carry no source locations.** On a stack without source stamping (Vue, for one) every changed component was listed under "no saved flow drives it", even when
  • Network accessline 130
    - **`@reticlehq/server` — `reticle doctor` reported the agent link from a stored record even when the port was held but `/status` did not answer.** A daemon with a suspended event loop still accepted TCP, so the link read as healthy, or doc
  • Network accessline 131
    - **`@reticlehq/server` — setup names the real port when the dev server's port is taken.** Node prints `Error: listen EADDRINUSE: address already in use 0.0.0.0:3000`, and setup read the first number after the phrase — it said port 0 was bu
  • Network accessline 132
    - **`@reticlehq/browser` — capture streamed SSE replies.** With network body capture on, Reticle now records `text/event-stream` responses without blocking the app or delaying settle. Capture stops at its size bound or after 10 seconds. JSO
  • Network accessline 136
    - **`@reticlehq/browser` — A collapsed Next.js issue badge made every element and text check `unknown`.** Next 16 keeps the error dialog mounted and hidden when it shows only the "1 Issue" badge. Reticle read the mounted dialog as a dialog 
  • Network accessline 137
    - **`@reticlehq/server` — on Windows, the daemon stopped when the agent host closed its Job Object.** Some agent hosts run `reticle mcp` in a Job Object that kills every process in it when it closes. The daemon was a detached child, but a d
  • Network accessline 138
    - **`@reticlehq/browser`: screen-reader-only text counted as visible.** Text hidden with the usual sr-only CSS (a positioned box with `clip: rect(0 0 0 0)`, a `clip-path: inset(50%)`, or a 1×1 box with `overflow: hidden`) is on the page for
  • Network accessline 139
    - **`@reticlehq/server` — re-acquiring a held lease answered with the requested url while the tab stayed on its old page.** `reticle_lease { action: "acquire" }` on an origin the caller already holds reused the lease and returned the url it
  • Network accessline 140
    - **`@reticlehq/server`, `@reticlehq/core` — replay gave up on a start page that was still loading at the step budget.** A cold dev server (a first Next.js compile) can hold the first page longer than the first step's budget, and the flow e
  • Network accessline 141
    - **`@reticlehq/server` — `reticle serve --http --http-port 4400` died with `EADDRINUSE`.** That number is the bridge port of the same daemon, and MCP is already served there. The command now refuses the port before it listens and tells you
  • Network accessline 142
    - **`@reticlehq/browser`: out-of-range scroll fraction silently degraded to a normal step.** Passing a `fraction` outside the valid range of 0–1 (such as `1.5` or `-0.2`) failed the bounds check and silently performed a default viewport scr
  • Network accessline 143
    - **`@reticlehq/core` — filename tokens whose extension contains a digit were never stripped.** The scan that strips filename tokens before a label is classified read extension letters only, so for `clip.mp4` it read `mp`, stopped at the `4
  • Network accessline 144
    - **`@reticlehq/browser` — the destructive-action guard blocked harmless controls whose text carried a filename.** A media tile showing "photo-remove-background.webm" was blocked as destructive because of the `remove` inside the filename. T
  • Network accessline 145
    - **`@reticlehq/server` — the native-click destructive guard still blocked controls named by a filename.** The filename-token rule lived only in the SDK path: `reticle_act { args: { native: true } }` on a tile named "photo-remove-background
  • Network accessline 151
    - **`@reticlehq/core`, `@reticlehq/engine`, `@reticlehq/server`, `open-verification` — moved from zod 3 to zod 4.6.6 or later ([GHSA-mrhx-c7xc-m3w5](https://github.com/advisories/GHSA-mrhx-c7xc-m3w5)).** zod below 4.6.6 checked every item o
  • Network accessline 159
    - **`@reticlehq/server`: `reticle open <url> --navigate` moves a tab already on that origin to the url.** By default `open` leaves a same-origin tab where it is, because the tab is often a person's. A caller with no MCP tools, such as a she
  • Network accessline 160
    - **Split-text hint now names a selector for the container when it has one.** When a text search misses but the string is on the page split across a container's children, the hint's `splitText` descriptor gains a `selector` when the contain
  • Network accessline 161
    - `reticle_reconcile` takes an optional `scope` (a ref or CSS selector). It compares only against that subtree and finishes every cut branch inside it. A page that is too large to read completely, for example a dashboard of 500-option selec
  • Network accessline 162
    - **`@reticlehq/browser` — TanStack Query adapter now exposes `isInvalidated`.** A mutation that calls `queryClient.invalidateQueries` marks the matching queries invalidated. The `reticle_state` snapshot now carries `isInvalidated: true` fo
  • Access to secretsline 173
    [Credential-related source omitted]
  • Access to secretsline 209
    [Credential-related source omitted]
  • Network accessline 211
    - **`@reticlehq/server` — the call that ends an agent's run now carries a run report.** `reticle_session { action: "end" }`, `"yield"` and `reticle_lease { action: "release" }` answer with `runReport`: every claim the run checked with its v
  • Network accessline 212
    - **`@reticlehq/server` — a run records frames between its steps.** A run had one screenshot for each step, so the dashboard replay jumped from step to step. While Reticle drives a tab (a leased tab, or the page that `reticle drive` opened)
  • Network accessline 213
    - **`@reticlehq/init` — `reticle init` names the route-group root layouts it left without `<ReticleDev />`.** In a Next.js app whose root layouts live in route groups, init mounts ReticleDev in one of them (the one that renders `/`), and ea
  • Network accessline 225
    - **`@reticlehq/server` — a predicate with no `kind` is accepted when its keys name exactly one kind.** Agents often write `expect: { text: "Count is 1" }` or `until: { allOf: [...] }`. Each one was refused and cost a call. Now `{ text: ...
  • Network accessline 226
    - **`@reticlehq/server` — run ids are shorter.** A new run id is 16 hex characters. A drive's run id is `drive-` and a 16-character hash of the session id, not the full session id. Each step screenshot path that an agent reads contains the 
  • Network accessline 227
    - **Skill — `SKILL.md` now starts with three steps: install, wire the app, prove one flow.** The drive example is in step 3, so an agent gets to its first verdict without reading the architecture first. The Harness and CLI sections are shor
  • Network accessline 228
    - **`@reticlehq/server` — telemetry no longer repeats the same fact.** The `flow_recorded` setup step goes out once per daemon for each outcome, not at every browser session end. The planned idle exit of the daemon no longer sends an `mcp_c
  • Network accessline 229
    - **`@reticlehq/server` — telemetry no longer records your IP address or a location.** Each usage event now tells PostHog not to look up a location from the IP address, and sets the address to `0.0.0.0` so the real one is not stored. - **`@
  • Network accessline 230
    - **`@reticlehq/server` — `reticle_lease` refused the project folder as `root` and did not say what to pass.** Agents pass the folder they work in, and the lease was refused unless the path ended in `.reticle`. A `root` that holds a `.retic
  • Access to secretsline 241
    [Credential-related source omitted]
  • Network accessline 250
    - **`@reticlehq/server` — a tool call failed when the daemon died while `reticle mcp` started it.** The proxy then dialled the dead port again and again, and did not start a new daemon. The tool call waited 20 s and then failed with "no dae
  • Network accessline 251
    - **`@reticlehq/server`: `reticle verify <url> --select <label>` replays the flows with that label.** It sent the label under a name the tool does not take, so every run was refused and graded nothing. - **`@reticlehq/browser` — a text matc
  • Network accessline 252
    - **`@reticlehq/browser` — a text match inside an `aria-hidden` subtree now names the exclusion.** A text search that missed because the string was inside an `aria-hidden="true"` subtree reported "no element matched" with no indication that
  • Network accessline 253
    - **`reticle init` — flag existing Next.js ReticleDev components missing SDK version with NOTICE.** Existing installs that connect without passing `NEXT_PUBLIC_RETICLE_SDK_VERSION` now receive an informative NOTICE instead of silent omissio
  • Network accessline 254
    - **`@reticlehq/server`: a `find` that ran before the page finished rendering answered 0 with nothing to say it was early.** Click a control that opens a modal after a fetch, then at once run `reticle_look { action: "find" }` for the modal'
  • Network accessline 255
    - **`@reticlehq/server` — a flow can supply different secrets to repeated fills of the same field.** New compiled recordings name separate variables in each fill's `secret` argument, such as `RETICLE_SECRET_PASSWORD` and `RETICLE_SECRET_PAS
  • Network accessline 256
    - **`@reticlehq/browser` — a link to a billing page was refused as a destructive action.** A link such as `<a href="/billing/payment">Orders & invoices</a>` needed `confirmDangerous`, because a money word in its path matched the guard. Foll
  • Network accessline 257
    - **`@reticlehq/browser` — replaying a custom select clicked the hidden native option and reported success.** A saved flow that targeted a choice by role and name resolved the visually-hidden `<option>` a library such as Radix keeps for for
  • Network accessline 258
    - **`@reticlehq/server` — `reticle gate` forgot every earlier replay as soon as a newer run recorded no flows.** It read coverage from the single newest run, so one drive or export run with `flows: []` made every saved flow look unverified 
  • Network accessline 259
    - **`@reticlehq/core` + `@reticlehq/browser` — a click that lands on something no user could click no longer reports a clean click.** A `{ text }` target matches any element whose own text contains the value, so `{ text: "Sign in" }` could 
  • Network accessline 260
    - **Checking a controlled checkbox was graded `state-vs-render` even though the box checked.** React sets `checked` and `value` as properties, so the rule that the store committed and nothing rendered never saw the screen move, and `act_and
  • Network accessline 261
    - **`@reticlehq/server`: `init` no longer starts a dev server beside one that holds only half of its port.** With a Docker or nginx stack on 5173, `init` ran `pnpm dev`. On macOS, Vite can bind `[::1]` beside a process holding `0.0.0.0:5173
  • Network accessline 262
    - **`@reticlehq/engine`, `@reticlehq/browser`: a body clause over a body that was not recorded answered `no`.** With body capture on, the SDK still skips some response bodies on purpose: a streamed response (`text/event-stream`, for example
  • Network accessline 263
    - **`@reticlehq/server`: a saved `reticle_act { steps }` journey drifted on its first replay when a later step clicked something an earlier step renders.** Live, "click Edit, then click the Cancel its form shows" passes, because each step i
  • Network accessline 264
    - **`@reticlehq/init`: `reticle init` broke a JavaScript Next.js app that had `typescript` in its dependencies.** Many JavaScript apps list `typescript` for editor types or ESLint. `init` read that as a TypeScript project and wrote `app/ret
  • Network accessline 265
    - **`@reticlehq/server` — `reticle_act_and_wait` no longer exposes `session disconnected` when the acted-on document navigates away.** A full-page form submission can close the old SDK connection before the action reply arrives; Reticle now
  • Network accessline 266
    - **`@reticlehq/engine`: a write that made the app navigate could not be proven with a `net` predicate.** A Delete button sends `DELETE /api/items/1` and, on 204, goes to `/`. Reticle drops evidence from a page that has been replaced. When 
  • Network accessline 267
    - **`@reticlehq/server`: `verify <url> --expect` waits for its predicate, up to `--timeout`.** It called the one-shot assert about a second after navigating and dropped `--timeout`, so a predicate naming a request the page makes shortly aft
  • Network accessline 268
    - **`@reticlehq/server`: a full lease pool made `reticle drive` hang for 60 s and then claim the daemon was shutting down.** Once every lease slot was taken (by parallel agents, for example), a new `reticle_lease` acquire or `reticle drive`
  • Network accessline 269
    - **`@reticlehq/server`: setup advice names only tools the reader can call.** `reticle gate` with no flows, `verify affected`, and the empty suite told the agent to "record one with reticle_record, then reticle_flow_save". The no-session ad
  • Network accessline 270
    - **`@reticlehq/server` — `reticle_lease` said `sdk_never_dialled` for an app that connected a second after its ~20 s window.** On a slow first dev compile (seen with Angular) the leased page was still loading when the wait ran out, so agen
  • Network accessline 271
    - **`@reticlehq/server`, `@reticlehq/browser`: `reticle_session` tune action branches error advice on SDK version and session ID.** When `tune` fails to apply HUD positioning or visibility changes, the advice previously assumed the page SDK
  • Network accessline 272
    - **`@reticlehq/server`: a flow that pressed Escape (or Tab, or a shortcut) with no target drifted at that step on every replay.** Live, `reticle_act { action: "press", args: { text: "Escape" } }` presses the key at the document, and it wor
  • Network accessline 273
    - **`reticle init` adds `.reticle/` to the project's `.prettierignore` when the project uses Prettier.** After a drive, `prettier --check .` failed on the JSON files Reticle writes under `.reticle/` — the nested `.reticle/.gitignore` does n
  • Network accessline 274
    - **`@reticlehq/server` — `reticle doctor` kept "no store" and "no signal" after the app registered them.** A gap that a verdict recorded before the app registered its store stayed for the life of the daemon, because a reload keeps the sess
  • Network accessline 275
    - **`@reticlehq/server`: `reticle_flow` `load` and `delete` read the daemon's folder, while `list` and replay read the session's project.** This happens when the daemon starts outside the app it drives, for example with a user-scoped MCP re
  • Network accessline 276
    - **`@reticlehq/server` — flow annotations marked warning-only pages as failures despite promising an error-only check.** A console success-state with no level now saves `level: error`. Explicit console levels stay unchanged. Closes [#1674]
  • Network accessline 277
    - **`@reticlehq/server` — `init` and `setup mcp` crashed on a platform other than macOS, Linux or Windows.** The agent-config planner looks paths up in a `darwin`/`linux`/`win32` table, and its callers cast `process.platform` to one of thos
  • Network accessline 278
    - **`@reticlehq/engine` — `stale-response-applied` fired on a page query and its count query that differ only in `page_size`.** Reads that differ only in a parameter that pages through a collection are a fan-out, not a race, but the list of
  • Network accessline 279
    - **`@reticlehq/browser` — a blank snapshot scope caused a selector exception.** Empty and whitespace-only scopes now read the whole page. Invalid selectors return `scopeMissing: true` without reading unrelated content. Closes [#1679](https
  • Network accessline 280
    - **`@reticlehq/init` — `reticle init` wrote its rule into a `CLAUDE.md` that only imports `AGENTS.md`, so Claude Code loaded the rule twice.** Many repositories keep one rule file for every agent and make `CLAUDE.md` a single `@AGENTS.md` 
  • Network accessline 281
    - **`@reticlehq/browser` — design tokens declared inside `@layer` (Tailwind v4), `@media` or `@supports` were invisible to the theme check.** Token discovery read only top-level style rules, so on an app whose tokens live in `@layer theme {
  • Network accessline 282
    - **`@reticlehq/server` — stateful element assertions received incorrect presence-only advice.** Checks for focus, checked, expanded, pressed, enabled, disabled or in-viewport state no longer suggest replacing a valid assertion. Bare presen
  • Network accessline 283
    - **`@reticlehq/server`: a snapshot scoped to a small element said the whole app is UNMOUNTED.** `reticle_look { action: "page", scope: "h1" }` on a text-only heading found almost no DOM under the scope. The note then said the app was unmou
  • Network accessline 284
    - **`@reticlehq/server` — `reticle_verify { action: "heal" }` said the anchors resolved when a role anchor did not.** Heal now says that the step anchor did not resolve and names the nearest candidate on the page. It gives the "not a rebind
  • Network accessline 285
    - **`@reticlehq/server`: The MCP server did not say why the daemon could not start.** The MCP proxy now includes the state-directory diagnostic in handshake instructions and tool-call errors when daemon startup fails. Closes [#1691](https:/
  • Network accessline 286
    - **`@reticlehq/server` — `reticle serve --drive` silently ignored the URL when a daemon was already running.** The command now exits with an error and points to `reticle drive <url>`. A plain `reticle serve` still attaches. Closes [#1692](
  • Network accessline 287
    - **`@reticlehq/init` — `init` at a root that is itself a page with a manifest wired a nested copy instead.** In a folder holding `index.html` and a `package.json` with a dev script, discovery preferred a nested app such as `backup/`, and `
  • Network accessline 288
    - **`@reticlehq/engine` — a role query for an HTML tag name now says why it failed and names the correct role.** Querying `{ role: "iframe" }` (or `"div"`, `"input"`, `"nav"`, `"section"`, and other tag names) returned "no element matched" 
  • Network accessline 289
    - **`@reticlehq/server` — `screenshot.path` now carries `pending: true` when the file may not yet be on disk.** On the fast path (a second or later capture on the same tab), the path was returned while the JPEG write was still in flight. A 
  • Network accessline 290
    - **`@reticlehq/server` — `reticle_lease` gave a raw Playwright error when the zero-install reader failed.** This occurred on a URL that is not an HTML page (an `.svg`, for example) and on a tab that closed during setup. The agent got `page
  • Network accessline 291
    - **`@reticlehq/server` — version skew told you to run `reticle stop` when the connected pages already matched the older daemon.** A newer agent then replaced that daemon and skewed every page, so no session stayed trustworthy. When every c
  • Network accessline 292
    - **`@reticlehq/server` + `@reticlehq/browser` + `@reticlehq/core` — a real hover, click or drag on an element outside the viewport no longer reports `performed: true` while the pointer lands on nothing.** The real-input path aimed at the b
  • Network accessline 293
    - **`@reticlehq/server` — `reticle_query` returned `count: 0` when the scope did not resolve, for both plain finds and `count_only`.** A caller reading only `count` concluded the element was absent from the page, when no subtree was searche
  • Network accessline 294
    - **`@reticlehq/server`: `reticle_domain` and the verify runner listed the daemon's flows, not the session's project.** This happens when the daemon starts outside the app it drives, as in [#1671](https://github.com/reticlehq/reticle/issues
  • Network accessline 295
    - **`@reticlehq/browser`, `@reticlehq/engine` — a check under a framework error dialog no longer answers `yes`.** Reticle ignores the Next.js dev overlay, so a `text` or `element` check on content under an open Next.js error dialog passed w
  • Network accessline 296
    - **`@reticlehq/server` — an upload `path` resolved against the daemon's folder, not the session's project.** A session in a git worktree, or in a project other than the one where the daemon started, could not upload its own fixture. The up
  • Network accessline 297
    - **`@reticlehq/server` — a verdict from `reticle_act { steps }` was not counted as a verification.** On the default tool surface a sequence runs under the `reticle_act` name, and that name was not in the set of verdict tools. A sequence th
  • Network accessline 298
    - **`@reticlehq/browser` — a case-exact `text` check now reads the case the screen shows.** With CSS `text-transform`, the screen shows "SAVED" while the DOM holds "Saved", and a check for "SAVED" answered `no`. A text check now holds on th
  • Network accessline 299
    - **A failed lease or drive launch now names the Chromium path it looked for.** When Playwright's browser is missing, the pooled launcher and the drive launcher replaced Playwright's error with the bare pinned install command and discarded 
  • Network accessline 309
    - **Four battery specs assumed POSIX and could not run on Windows — one of them passed while doing nothing.** The web battery runs on `ubuntu-latest` only, so nothing had ever exercised these there. `atlas-hard-fixture` died on `spawn pnpm 
  • Network accessline 310
    - **`@reticlehq/core` — an `element` check dropped a flat field written beside its `query`.** `{ kind: "element", query: { testid: "total" }, value: "42" }` lost `value` without a word and checked only that the element exists, so it passed 
  • Network accessline 311
    - **`@reticlehq/engine` — `stale-response-applied` let a filter through when it used a paging parameter's name.** Two reads that differ only in a paging parameter are left alone, but only the names were compared, so `first=John` against `fi
  • Network accessline 365
    - **`@reticlehq/server` — the SDK-upgrade remedy named npm for an app inside a pnpm or yarn workspace.** When the page's SDK and the daemon disagreed on version, the remedy read only the app's own directory. A workspace keeps its lockfile a
  • Network accessline 366
    - **`@reticlehq/server` — a second checkout of a project silently took the first one's evidence.** The machine remembers one directory for each project id, so `reticle init` in a copy re-pointed it, and the next session of the original app 
  • Network accessline 367
    - **`@reticlehq/server` — a flow recorded on purpose lost the claim that caught the bug.** In `reticle_act { steps }`, a step whose `expect` did not hold was saved without it, in every recording. So a journey that caught a defect (the reque
  • Network accessline 387
    - **`@reticlehq/server`, `@reticlehq/vite-plugin`, `@reticlehq/next` — a worktree with no `.reticle.json` became a second project.** When `.reticle.json` is git-ignored or not committed, the worktree now reads the main checkout's project id
  • Network accessline 388
    - **`@reticlehq/core`, `@reticlehq/browser` — pages on a `.localhost` name could not connect.** A dev proxy such as portless serves each app and each worktree at `https://<branch>.<app>.localhost`. The SDK read those pages as remote and did
  • Network accessline 389
    - **A `net` or `signal` check with `count: 0` passed when the request came late.** The check stopped watching 300 ms after it first read true. A handler that waited 500 ms and then sent the request got `verified: "yes"` on a "no request" ch
  • Network accessline 390
    - **A replayed flow step treated a third-party analytics write as the app ignoring a response.** Live `act_and_wait` already drops other sites and declared background traffic. Replay, `act { steps }`, and the realm contradiction pass now us
  • Network accessline 391
    - **Replay stopped after 5 seconds when the flow's start page was slow to reconnect.** Before step 1, replay navigates to the start page and waits for the page to connect. The wait was a fixed 5 seconds, so a dev server that compiles the ro
  • Network accessline 392
    - **`@reticlehq/server` — a leased session was warned that its runs went to `~/.reticle/unmatched/` even when the lease claimed a project root.** The warning named a folder the run never used and sent the agent to fix a problem that did not
  • Network accessline 393
    - **`@reticlehq/server` — the tool description and the skill say that `count` on a net or signal predicate is exact.** Omit `count` to ask for at least one. `count: 0` means never. Closes [#1787](https://github.com/reticlehq/reticle/issues/
  • Network accessline 394
    - **A step that declared a failed request was still graded `no`.** In `reticle_act { steps }` and in flow replay, a step could expect a refusal, for example `expect: { kind: "net", method: "POST", status: 409 }`. The expectation held, but t
  • Network accessline 402
    - **`@reticlehq/server` — the MCP instructions gave a feedback command that fails under the default install.** When the tools are unreachable, they said to run `reticle feedback --agent ...`. The default MCP registration runs Reticle throug
  • Network accessline 403
    - **`@reticlehq/server` — the MCP handshake text now fits in what Claude Code shows.** Claude Code shows about the first 4,096 characters of a server's instructions and drops the rest. Reticle's text was about 4,190 characters, so the rule 
  • Network accessline 404
    - **`@reticlehq/browser` — on a fresh page the HUD covered the app before any agent did anything.** After `reticle init`, the first load opened the Agent Log and put a separate "Sign in to try Reticle Harness" card above it. Together they c
  • Network accessline 421
    - **`@reticlehq/server` — version-skew advice looped when the MCP server was the old part.** When the page SDK was newer than the agent's MCP server, the advice said to run `reticle stop`. The MCP server then started the same old daemon aga
  • Network accessline 422
    - **Skill — every call in `SKILL.md` now works as written.** The screenshot call had no `name`, which the tool requires, so it was refused. The "name it yourself" recipe went from `reticle_record { action: "start" }` to `reticle_flow_save` 
  • Network accessline 423
    - **`@reticlehq/core` — the coverage prompt linked a skill page that did not exist.** The prompt that `init` and `reticle doctor` print for the coding agent started with "Read https://reticle.sh/SKILL.md". That address answered 404, so the 
  • Network accessline 439
    - **`reticle_viewport` said `applied: true` while the named tab kept its old size.** With a driven browser running, a call that named a leased tab resized the driven tab instead. An agent then read desktop layout boxes as mobile ones. A `se
  • Network accessline 440
    - **`@reticlehq/init` — `reticle init` added a second `plugins` key to a Vite config.** When the config set `plugins` with a call (for example `plugins: wrap(() => [react()])`) or with the shorthand `{ plugins }`, init did not see an array 
  • Network accessline 441
    - **`@reticlehq/server` — after an idle exit, the MCP server could refuse every call with "belongs to a different project".** The MCP server read its daemon port once, at start. When its daemon exited and another project's daemon took the p
  • Network accessline 442
    - **`@reticlehq/server` — on Windows, one checkout under two drive-letter casings counted as two projects.** The same folder recorded as `C:\work\app` and as `c:\work\app` read as two folders that claim one project id. Reticle refused to ch
  • Network accessline 443
    - **`@reticlehq/server` — on Windows, the first call on an app with no Reticle wiring did not open the app.** Reticle opens such an app itself only when the dev server runs inside the project folder. It found the folder with `lsof`, which W
  • Network accessline 444
    - **`@reticlehq/server` — desktop screenshots no longer silently ignore `clip` or `ref`.** Electron and Tauri captures return `crop-unsupported` when a crop is requested. This also prevents visual diffs from comparing a full-window image fo
  • Network accessline 445
    - **`@reticlehq/browser` — removed blind spots no longer leave absence assertions stuck at `unknown`.** The browser now reports a zero count after a previously detected blind spot disappears, while keeping initial zero counts silent and unc
  • Network accessline 446
    - **`@reticlehq/browser` — TanStack Query entries whose key holds an object no longer overwrite each other.** The adapter wrote each key part with `String(part)`, so `['todo', { id: 1 }]` and `['todo', { id: 2 }]` both became `todo/[object 
  • Network accessline 447
    - **`@reticlehq/browser` — native disabled and expanded states are now read.** A button or input inside `<fieldset disabled>`, a disabled `<option>`, and an option in a disabled `<optgroup>` read `enabled`, so a `state: "enabled"` assertion
  • Network accessline 448
    - **`@reticlehq/server` — a graded `reticle_assert { action: "wait" }` now remains in the session proof record.** It returned a verdict but wrote no journal row, so the session summary later said no claim was verified and dropped the suppli
  • Network accessline 449
    - **`@reticlehq/browser` — a `<table>` named by its `<caption>` now has a non-empty accessible name.** A query for `{ role: "table", name: "Open orders" }` returned no match when the table carried a `<caption>` instead of an `aria-label`. T
  • Network accessline 450
    - **`@reticlehq/server` — WebSocket close reason on a refused hello now names version skew and the fix.** The close frame reason now names version skew and tells the user to put the SDK, the build plugin and the server on one release. Close
  • Network accessline 451
    - **`@reticlehq/server` — `reticle_session { action: "yield" }`, `reticle_resume` and `reticle_review` acted on a different tab when the named tab had closed.** A call with the `sessionId` of a closed tab acted on the live tab that replaced
  • Network accessline 452
    - **`@reticlehq/server` — `reticle_tools` did not name the values an enum parameter accepts.** `reticle_session { action: "end", claim }` takes `pass`, `fail` or `partial`, but its description said only what a claim means. An agent sent a s
  • Network accessline 453
    - **`@reticlehq/engine` — Normal list searches no longer report stalled pagination.** Records ranges and requests with changed search or filter parameters now stay outside the `pagination-not-fetched` detector. Closes [#1783](https://github
  • Network accessline 454
    - **`@reticlehq/browser`, `@reticlehq/engine` — a check on text that a user cannot read no longer answers `yes`.** A `text` check, or an `element` check that matches by text, read only the words in the DOM. Text in the colour of the backgro
  • Access to secretsline 460
    [Credential-related source omitted]
  • Access to secretsline 463
    [Credential-related source omitted]
  • Network accessline 476
    - **`@reticlehq/server`: `reticle_lease { action: "acquire" }` can open an https dev server with a self-signed or mkcert certificate.** Lease contexts were created with no options, so a dev server with a local CA failed with `net::ERR_CERT_
  • Network accessline 477
    - **A `net` clause can declare its endpoint a read with `repeatable: true`.** GraphQL queries, tRPC batches, query buses and read Server Actions all read over POST. When React StrictMode ran one twice in an action window, a `net` clause nam
  • Network accessline 478
    - **`@reticlehq/server` — a leased tab can be handed browser permissions.** UI that only renders once a permission is decided, like a "you are here" map or a paste button, could not be reached in a lease, because nothing granted or cleared 
  • Network accessline 479
    - **`@reticlehq/engine`: an `element` predicate can check an image's `alt` next to a locator that does not read it.** `{ kind: "element", query: { testid: "hero-image", alt: "Product photo" } }` was refused with "the element locator ignores
  • Access to secretsline 493
    [Credential-related source omitted]
  • Network accessline 513
    [Credential-related source omitted]
  • Access to secretsline 513
    [Credential-related source omitted]
  • Network accessline 514
    - **`@reticlehq/server`: ending a leased session now releases its lease.** `reticle_session { action: "end" }` on a tab taken with `reticle_lease { action: "acquire" }` left the lease connected until the reaper took it, so the next agent's 
  • Network accessline 515
    - **`@reticlehq/browser`: a CLS event names the element that shifted.** The layout-shift observer reported the running CLS value and never read the entry's `sources`, so an agent could see that the page shifted and had no idea what moved. A
  • Network accessline 516
    - **`server.json`: Reticle can now be published to the official MCP Registry.** The registry at `registry.modelcontextprotocol.io` is the index the directories read — Glama, `github.com/mcp`, mcp.directory and PulseMCP all ingest from it, a
  • Network accessline 517
    [Credential-related source omitted]
  • Network accessline 518
    - **`@reticlehq/server` — a leased tab can now stub the host bindings a desktop shell injects.** A Wails view calls `window.go.main.App.*` on mount, a Tauri view expects `window.runtime`, an Electron renderer expects a preload object. In a 
  • Network accessline 519
    - **`reticle_tools` shows each numeric parameter's `min` and `max`.** The parameter list carried only a name, `required` and the description, and the descriptions name a default but rarely a ceiling. `reticle_act_and_wait { timeout_ms: 6000
  • Network accessline 530
    - **`@reticlehq/engine`: `ui-advanced-request-failed` says how to declare a failure you expect.** Testing a designed error path (a 402 paywall, a 429 rate limit) through the UI it renders gets this finding, and declaring the failing call in
  • Network accessline 539
    - **Fewer commands to learn.** `kill` is now `stop --force`; `login`, `link` and `project` are now `connect` (`connect --project <name|id>` picks or creates the project); `whoami` is now `status`, which shows who is signed in and whether th
  • Network accessline 540
    - **The installer is quieter.** It prints one line per step, then the next step, then a prompt to paste into your coding agent. - **`@reticlehq/server` — Clarify that unattributed port listeners may not be this app.** When ports are activel
  • Network accessline 541
    - **`@reticlehq/server` — Clarify that unattributed port listeners may not be this app.** When ports are actively serving pages without an active session, diagnosis and next-action messages now make it clear that those listeners may belong 
  • Network accessline 553
    - **`@reticlehq/server`: a replayed text check that missed only on case says so.** Flows saved before text checks matched case can go red on capitalisation alone; the replay now says the page shows it in another case, what would hold, and t
  • Network accessline 554
    - **Refusal signals no longer contradict an expected failed request.** A flow asserting a POST returning 403 and an "Order refused" message could fail because signals such as `order:refused`, `order:forbidden`, or `order:blocked` were read 
  • Network accessline 555
    - **`@reticlehq/browser` — text completely clipped by an `overflow:hidden` or `overflow:clip` ancestor no longer counts as visible.** Expanding a clamped card now proves that its hidden paragraph became visible instead of returning `already
  • Network accessline 556
    - **`@reticlehq/init` — `reticle init` and `reticle setup mcp` left Codex for you to wire by hand.** Every other agent got Reticle registered, but Codex (desktop and CLI) printed "add this by hand" because its config is TOML that Reticle wi
  • Network accessline 557
    - **`@reticlehq/server`: a page that dials the bridge on the wrong path is named in the no-session diagnosis.** A `connect({ url })` with an explicit path other than `/reticle`, such as `ws://localhost:4400/ws`, got a bare 400 from `ws`'s o
  • Network accessline 558
    - **`@reticlehq/server`: `reticle_session { action: "yield" }` without a `sessionId` works with several projects connected.** Yield only hands the tab back to the human, but an id-less call got the same "which session?" refusal as a destruc
  • Network accessline 559
    - **`@reticlehq/server` — `sdk_never_dialled` now names production Reticle stubs.** When a leased production build or deployed URL carries no SDK marker, the hint says Reticle is stripped or stubbed by design and points the user at the dev 
  • Network accessline 560
    - **`@reticlehq/browser`: a JSON request body sent as bytes, and a FormData upload, now carry a write identity.** A client that encodes JSON before sending it (Flutter web's HTTP client, gRPC-web) posts a `Uint8Array` or `ArrayBuffer`. That
  • Network accessline 561
    - **`@reticlehq/core` + `@reticlehq/server` — a lease no longer reports `ready: true` while its tab is hidden.** A pooled page opened beside other tabs could start hidden, and a hidden tab throttles timers and animations: the SDK dialled in
  • Network accessline 562
    - **`@reticlehq/server`: lease screenshots and visual baselines no longer include Reticle's own HUD.** A screenshot of a leased tab captured the Reticle panel, its activity log and the toolbar, so `reticle_visual_diff` compared Reticle's UI
  • Network accessline 563
    - **`@reticlehq/init` — plain HTML projects with a `package.json` now connect automatically.** When `index.html` exists, `reticle init` writes the same dev-only, loopback-guarded snippet used for static pages without a package manifest, sto
  • Network accessline 564
    - **`@reticlehq/server`: `reticle_observe { filters }` no longer invents contradictions from the events it filtered out.** Contradictions were computed over the filtered window, so `filters: ["route"]` removed the DOM events that prove a de
  • Network accessline 565
    - **`@reticlehq/server`: `--help` says which version the command will actually run at.** In a project whose SDK is a different major from the CLI, every command is re-run at the project's version, but `--help` stays on the CLI you ran. It t
  • Network accessline 566
    - **`@reticlehq/server`: `reticle verify <url> --session-id <id> --expect …` no longer reloads a tab that is already on that url.** The same-document check ran only when no session was named, so a pinned tab was always navigated, and naviga
  • Network accessline 567
    - **`@reticlehq/server`: a recording keeps the query it started on, and stopping one across a page load no longer reports a negative window.** A journey recorded on `/products?scope=TOPWEAR` saved `startPath: "/products"`, so its replay sta
  • Network accessline 568
    - **`@reticlehq/browser` — `press` skipped `keypress` events used by barcode and RFID scanner integrations.** Character keys and Enter now dispatch `keypress` between `keydown` and `keyup`, with `keyCode`, `charCode` and `which` set to the 
  • Network accessline 569
    - **`@reticlehq/server`: one malformed message no longer disconnects a live page for good.** Every frame that failed validation was closed with the policy code the SDK reads as permanent, so an event kind from a newer SDK, or any frame that
  • Network accessline 570
    - **`@reticlehq/server`: one burst of events no longer makes every later verdict on the tab `unclean_capture`.** Above its per-second cap the bridge samples events and records how many it dropped, but that count was a running total for the 
  • Network accessline 571
    - **`@reticlehq/init` — `reticle init` now wires the Vite config selected by the dev script.** Projects that start Vite with `--config` no longer get an unused root config, and custom Node dev servers with nested Vite configs now receive a 
  • Network accessline 572
    - **`@reticlehq/server`: a command that times out on a background browser tab says the tab is hidden.** A hidden web tab keeps reporting in while its throttled frames miss the command, so the timeout read as a one-way transport fault and to
  • Network accessline 573
    - **`@reticlehq/engine`: a `bodyMatches` clause on a truncated response names a remedy that can work.** When a response is longer than `networkBodyMaxChars`, every `bodyMatches` clause on it is inconclusive, which is honest, but the message
  • Network accessline 574
    - **`@reticlehq/server` — the no-session hint no longer says to reopen a page whose server has stopped.** After the dev server stopped and the tab closed, the hint said the wiring was fine and to reopen the last URL — "do not start a second
  • Network accessline 575
    - **`@reticlehq/server`: a failing `reticle_assert` no longer reports `no-source-mapping` when its own evidence is located.** The gap was decided from the last act's source alone, so an assertion made before any act, or after an act on an u
  • Network accessline 576
    - **`@reticlehq/engine` — overlapping reads with different projections no longer report a stale-response race.** Reads of the same resource that request different `select`, `fields`, `columns`, `include`, or `expand` values can both update 
  • Network accessline 577
    - **`@reticlehq/server` — the no-session next action handed back `reticle open` / `reticle init`, which fails on an `npx`-only install.** The default MCP registration runs Reticle through `npx` and puts no `reticle` bin on PATH, so an agent
  • Network accessline 578
    - **`@reticlehq/engine` — mirroring UI state into the URL with `history.replaceState` was graded `route-rendered-nothing`.** An app that records a zoom, a filter, or a selected tab as `?zoom=125` on the same pathname got `unknown`, even whe
  • Network accessline 579
    - **`@reticlehq/server`: a journey proved while `reticle_network_mock` rules were active is no longer auto-saved as a `drive-*` flow.** Such a flow kept no trace of the mocks, so a replay ran against the real backend and either failed for a
  • Network accessline 580
    - **`@reticlehq/server` — a lease that timed out on a slow first compile was reported as "is the app running there?".** On a cold Next.js (or similar) dev server, the first request to a route can take longer than the 30 s navigation budget,
  • Network accessline 581
    - **`@reticlehq/server` — a second project's first session call wired nothing and was told to reopen the first project's app.** One daemon serves every project. After any session had connected, `reticle_session { action: "list" }` from a pr
  • Network accessline 590
    - **`reticle push --watch` ran once and exited.** The help and the README offer `push --watch` to keep syncing, but `push` ignored the flag; only `reticle sync --watch` kept going. `push` now takes `--watch` too, and both wait `RETICLE_SYNC
  • Network accessline 591
    - **`@reticlehq/server`: runs that never reached the dashboard.** Runs written into a folder with no link were skipped without a word, drives on a browser Reticle opened were filed under `~/.reticle/unmatched` where nothing syncs them, and 
  • Network accessline 592
    - **`@reticlehq/server`: a `ref` Reticle never issued was reported as "stale", and the stale-ref recovery never mentioned `target`.** `reticle_act_and_wait { ref: "find:aria-label=Open menu" }` was refused with "that ref is stale: refs are 
  • Network accessline 625
    - **`@reticlehq/server` — advisories arrive as one `notices` list, each said once per agent session.** The feedback ask, the founder invitation, the platform line, the update note, the pool-lease reminder and the session-age warning used to
  • Network accessline 626
    - **An ordinary session end no longer offers a call with the founder.** The invite is for someone stuck: it rides on an error Reticle could not recognise and on an empty session list, never on the end of every task. - **The skill file lives
  • Network accessline 627
    - **The skill file lives on the docs site.** `https://docs.reticle.sh/skill.md` serves the canonical `SKILL.md` with Agent Skill frontmatter, instead of a skill the docs host generated from the pages. It is the URL to hand an agent. The rep
  • Access to secretsline 630
    [Credential-related source omitted]
  • Access to secretsline 679
    [Credential-related source omitted]
  • Access to secretsline 766
    [Credential-related source omitted]
  • Network accessline 828
    - **A session end counts the replays the session ran.** A session whose only work was a failing `reticle_verify {action:"flows"}` replay ended "Reticle result: not proved · nothing was checked", beside the replay's own "1 of 1 check did not
  • Network accessline 829
    - **`@reticlehq/server` — `reticle_session {end}` reported the whole tab, not the agent's session.** An agent whose one check held was told "failed · 14 of 99 checks did not hold" because the Harness drives in the same tab were counted, and
  • Network accessline 830
    - **The session list no longer says "this daemon has never seen one" about a tab it last saw.** After a leased tab was reaped, `reticle_session {list}` said the daemon had never seen a session and advised starting the dev server, while a ca
  • Access to secretsline 833
    [Credential-related source omitted]
  • Access to secretsline 846
    [Credential-related source omitted]
  • Network accessline 862
    - **`@reticlehq/vite-plugin` — the project id came from the directory Vite was started in, not Vite's root.** `vite apps/admin` run from a monorepo root announced the root app's id (and found that app's daemon port), so the admin app's runs
  • Network accessline 863
    - **`@reticlehq/vite-plugin` — in a production build, `commitAndSignal` dropped the app's own state change.** The plugin swaps the SDK for an inert stub in `vite build`, and the stub's `commitAndSignal` was an empty function: the `mutate` c
  • Network accessline 864
    - **`@reticlehq/server`: on Windows, `reticle init` could watch a port that was not your dev server's.** Windows keeps a dead parent's pid on its children and reuses pids, so when the dev server's shell drew a recycled pid, the process-tree
  • Network accessline 865
    - **`@reticlehq/server`: on Windows, `reticle init` could hang with no output while it waited for your dev server.** It reads the process list and the listening ports on every poll, and those commands had no time limit, so one stalled WMI q
  • Network accessline 866
    - **`@reticlehq/engine` — `state.equals: "false"` against a boolean no longer returns a confident `no`.** Some MCP clients stringify untyped arguments, so `false` arrives as `"false"`. The engine compared `false === "false"`, failed, and gr
  • Network accessline 867
    - **`@reticlehq/server` — a stringified `args` in a sequence step is parsed or refused instead of silently dropped.** `sequenceStepArgs` treated a string `args` as not-an-object and fell through to `{}`, so `{ref, action:"fill", args:"{\"va
  • Network accessline 868
    - **`@reticlehq/engine` — a virtualized list no longer makes every absence check on the page `absence_blind_spot`.** `absenceBlindSpotNote` treated `VIRTUALIZED_UNMOUNTED` as relevant to every absence claim regardless of what element was qu
  • Network accessline 869
    - **`@reticlehq/server` — recorded action timeout budgets were lost during flow replay.** Slow actions and multi-step sequences could time out at replay's shorter transport default even when the live recording used a longer `timeout_ms`; sa
  • Network accessline 870
    - **`@reticlehq/server` — `reticle_lease acquire` on a URL the server redirects (an auth gate, a locale redirect) returned `ready: false` and a `lease-…` id that named no session.** The redirect dropped the `__reticle_session` marker before
  • Network accessline 871
    - **`@reticlehq/server`: the MCP instructions no longer open with "no app has ever connected" as a present fact.** Instructions are sent once, at the handshake, so an app that connected afterwards, or a handshake answered by the local proxy
  • Network accessline 872
    - **`@reticlehq/engine` — a `net` miss on a multiplexed endpoint explained itself with an unrelated call.** With `requestBodyMatches` selecting one query on an endpoint that serves many, the failure's `observed` showed the response of which
  • Network accessline 873
    - **`state-vs-render` no longer treats query-cache bookkeeping as an unrendered application change.** Cache-only transitions are ignored by that contradiction rule while meaningful data, error, unknown-field, and incomplete state changes re
  • Network accessline 874
    - **Instrumentation-gap guidance now uses the real `@reticlehq/browser` store API.** It no longer suggests `reticle.registerStore(...)`, names the published `@reticlehq/react/store` subpath for component-local React state, and explains how 
  • Network accessline 875
    - **`@reticlehq/server` no longer recommends starting a second dev server after a pairing-token refusal.** A confirmed refusal now takes precedence over an empty port scan, including when the app is running outside Reticle's scanned ports. 
  • Network accessline 876
    - **`@reticlehq/server` — `reticle_state` reported an unregistered store as found with a null value.** Named reads now return `found: false` and the available `storeNames` when the requested store is not registered. Closes [#1548](https://g
  • Network accessline 877
    - **`@reticlehq/browser` — label queries now prefer controls whose accessible name exactly matches the requested label.** Longer names remain discoverable when no exact name exists, while multiple exact matches remain visible as an ambiguit
  • Network accessline 878
    - **`@reticlehq/server` — stalled `reticle_act` sequences now retain their completed prefix.** A sequence that reached a missing target used to discard earlier successful actions when its recording was stopped; recordings now contain only t
  • Network accessline 890
    - **`@reticlehq/server`: a Harness drive stops at the end its goal names.** A drive that reached "Generated script for" kept going until its step budget ran out, navigated to a start page that signs the app out, and ended on a page without 
  • Network accessline 891
    - **`@reticlehq/server`: a platform refusal is recognised by its code, not its wording.** The platform reworded its Harness lock and every locked Harness came back as "may be a defect in Reticle". A refusal's code (`harness_locked`, `harnes
  • Network accessline 892
    - **`@reticlehq/init` — `reticle init` on a Next.js app whose root layouts live in route groups said there was no root layout.** With `app/(site)/layout.tsx` and no `app/layout.tsx`, a standard App Router shape, init handed back a manual st
  • Network accessline 893
    - **`@reticlehq/server`: the `daemon_split` advice moves the agent instead of stopping the app's daemon.** When the app was connected to one daemon and the agent's MCP to another, the advice led with `reticle stop --port <the app's daemon>`
  • Network accessline 894
    - **`pnpm test:unit` could not pass on an ordinary Windows machine.** `adapters/realm/cli`'s snapshot suite creates a real symlink to prove a file-only walk would miss one, and `symlinkSync` throws `EPERM` on Windows without Administrator o
  • Network accessline 895
    - **`@reticlehq/server`: the verdict fields of `reticle_assert` are declared, and a wait that has not finished is not graded.** `reticle_assert` returned `verified` and `verifiedReason` without declaring them in its output schema, so a sche
  • Network accessline 896
    - **`@reticlehq/server` — `reticle init` on a plain HTML page started its own server on :5500 even when the page was already being served, and never said so.** A page served by Python, PHP or a Node server with an API behind it got a second
  • Network accessline 897
    - **`@reticlehq/server`: a parameter of a different action of the same tool is refused, not silently dropped.** The unknown-parameter check ran against every action's parameters together, so `reticle_verify { action: "change", files, names 
  • Network accessline 898
    - **`@reticlehq/server` — `reticle_flow_save` names a recording that is still running.** Saving while the recording was active answered `flow_no_recording` with no hint why; it now names the active recording and the exact `reticle_record{ac
  • Network accessline 929
    - **`@reticlehq/core` + `@reticlehq/server`: a run remembers the request it answered.** `reticle_intent { action: "declare", request }` takes the user's request, relayed verbatim by the agent once per task. It is redacted like a feedback re
  • Network accessline 930
    - **`@reticlehq/server`: every tool result says what to do next.** A `next` line rides first on the result, the same for every agent (Claude Code, Cursor, Codex, Windsurf, any MCP client): record what the user asked when no request has been
  • Dangerous shell operationline 931
    - **`apps/e2e`: the installer, tested the way users run it.** `pnpm gate:install-sandbox` publishes this checkout to a throwaway registry and runs `curl -fsSL install.sh | sh` in clean Docker machines: a full and a slim Debian Node, Alpine'
  • Network accessline 931
    - **`apps/e2e`: the installer, tested the way users run it.** `pnpm gate:install-sandbox` publishes this checkout to a throwaway registry and runs `curl -fsSL install.sh | sh` in clean Docker machines: a full and a slim Debian Node, Alpine'
  • Network accessline 947
    - **`@reticlehq/vite-plugin` — hide the presenter while keeping Reticle connected.** Set `present: false` to keep Reticle available for agent verification without showing its panel. Closes [#1151](https://github.com/reticlehq/reticle/issues
  • Network accessline 948
    - **`@reticlehq/server` — `RETICLE_CHROMIUM_PATH` names the Chromium Reticle launches.** Some machines have neither Playwright's build nor a Chrome or Edge in the usual place: a Linux sandbox with Chromium at a custom path where `playwright
  • Network accessline 949
    - **`@reticlehq/server` — a chat-requested drive's result now says whether it was filmed.** A drive in your own tab, which only the SDK reaches, has no camera, so the chat showed no video and no reason. The result the daemon reports carries
  • Network accessline 950
    - **`@reticlehq/server` + the platform: drive your localhost app from the platform's chat.** Ask the chat about an app that only runs on your machine (`http://localhost:…`, or `/local`) and Reticle running on your machine drives it there: t
  • Access to secretsline 963
    [Credential-related source omitted]
  • Network accessline 965
    - **Docs — a new [Use cases](https://docs.reticle.sh/use-cases) page covers what people verify with Reticle beyond agent-built changes:** security behaviour (access control by role, forbidden calls, CSP violations), accessibility and UX, pe
  • Network accessline 966
    - **Docs and agent guidance now agree on the facts.** Telemetry is described the same way everywhere (anonymous usage counts by default, your app's data stays local, how to opt out), framework support is stated once in Frameworks, verdicts 
  • Network accessline 968
    - **`@reticlehq/engine` — an `absent` check on an element the app hid now says it is hidden.** `absent: true` means removed from the DOM, so an element still mounted with `display: none` correctly fails it, but the reason only said "expecte
  • Access to secretsline 983
    [Credential-related source omitted]
  • Network accessline 995
    - `init` quotes the dev server's last output when it dies before serving (`vite: command not found` was invisible). `reticle whoami` signed out points to `reticle connect`, not `link`, which would refuse. `reticle tutorial` is in `--help`. 
  • Network accessline 996
    - The Impact streak keeps counting past the 45 days of history the record keeps. - **`@reticlehq/server`: two agents leasing the same origin got the same tab.** A live lease was handed to whoever acquired next, so each agent's verdicts coul
  • Network accessline 997
    - **`@reticlehq/server`: two agents leasing the same origin got the same tab.** A live lease was handed to whoever acquired next, so each agent's verdicts could rest on the other's clicks, and an acquire with `seedStorage` closed the other 
  • Network accessline 998
    - **`@reticlehq/engine`: `stale-response-applied` fired on reads that were never racing.** A fan-out over `?id=`, two effects with different filters, and a list beside its count all came back `verified: "no"` on a working page. Reads now su
  • Network accessline 999
    - **`@reticlehq/engine`: a rejected write that is the behaviour under test can be verified.** A 409 on a duplicate email was contradicted by its own failure, because the app's acknowledgement was on screen rather than in a store. An alert, 
  • Network accessline 1000
    - **`@reticlehq/browser`: text on a hidden tab no longer reads as missing while it fades in.** A hidden tab stalls animations, so an element fading in sat at opacity 0, every visibility check called it hidden, and a `text` predicate over it
  • Network accessline 1001
    - **`@reticlehq/server`: a proved check a flow cannot keep is said, not dropped.** An `until` that held but names a session ref (`e12`) cannot be replayed from a saved flow, so it was dropped and the flow saved weaker without a word. `retic
  • Network accessline 1002
    - **`@reticlehq/server`: a recording takes only the steps of the tab that started it.** One daemon serves every app on the machine, and every step and passing assertion was captured into every open recording, so a click in an unrelated app 
  • Network accessline 1003
    - **`@reticlehq/server`: an explore drive checks the goals it was given.** A drive asked to check two seeded customer names replayed old journeys and reported `finished` without looking for either. `reticle_verify { action: "explore" }` tre
  • Network accessline 1004
    - **`@reticlehq/server`: `reticle verify` against a non-loopback URL uses the configured pairing token.** In a container, the app's plugin presents the token from the shared `RETICLE_PAIRING_TOKEN_DIR`, and `verify` minted a fresh one-shot 
  • Network accessline 1005
    - **`@reticlehq/server`: an MCP server started outside any project finds the project daemons.** An editor's user-scope MCP launches from `$HOME`, has no `.reticle.json`, and dialled the default port, so it never saw a project that had moved
  • Network accessline 1006
    - **`@reticlehq/browser`: a synthetic click says where it is and which pointer.** A canvas or SVG app hit-tests its own shapes from `clientX`/`clientY` and ignores a pointer with no id, so a click arrived at (0,0) with no `pointerId` and la
  • Network accessline 1007
    - **`@reticlehq/browser`: the HUD is a labelled landmark.** It sat outside every landmark, so axe-core reported a `region` violation on every instrumented page. The dock is now `role="complementary"` named "Reticle". Part of [#992](https://
  • Network accessline 1008
    - **`@reticlehq/server`: `reticle restart` warns before it strands an attached agent.** A restart puts the CLI's version on the daemon, and an agent whose own MCP server is older stayed attached to a daemon it no longer matched, with no way
  • Network accessline 1009
    - **`@reticlehq/core` + `@reticlehq/server`: a strict pass of a template's generated copy counts for the template in the gate.** A suite that writes runtime copies of a saved flow with fixture parameters, replays them and deletes them left 
  • Network accessline 1010
    - **`@reticlehq/browser`: webpack 4 and react-scripts 4 can build an app that uses the SDK.** webpack 4 does not transpile `node_modules`, and its parser stops at the first `?.` or `??`, so the app did not compile at all. The `module` field
  • Network accessline 1017
    - **`@reticlehq/engine` + `@reticlehq/server` — a `202 Accepted` decides a verdict only when it is the write the claim depends on.** A 202 anywhere in the window made every verdict `unknown`: an analytics beacon, a GET poll, or the claim's 
  • Network accessline 1018
    - **`@reticlehq/browser`: `press Escape` inside a modal `<dialog>` closes it, as a keyboard does.** A dispatched key event is untrusted, so the browser never made the dialog's close request: no `cancel` and no `close`. An app that closes th
  • Network accessline 1019
    - **`@reticlehq/server`, `@reticlehq/core`: `reticle_flow_replay` and verification suites returned `status: "ok"` for runs that were never graded.** A replay that could not start or finish because of missing required secrets, an unmet preco
  • Network accessline 1020
    - **`@reticlehq/server`: a replay whose tab does not come back after the start-page reload ends as `unverifiable`, instead of timing out on a dead session.** Replay reloads the tab onto the flow's `startPath` and waits for the SDK to reconn
  • Network accessline 1021
    - **`@reticlehq/server`: `crawl` reported every silent control on a background tab as `dead-control`.** On a throttled page (a background tab whose rendering the browser clamps, or one not heard from recently), a working control's re-render
  • Network accessline 1022
    - **`@reticlehq/init` — CSP diagnosis now distinguishes conditional branches from independently enforced policies.** `reticle doctor` no longer predicts that a template-interpolated `connect-src` blocks the bridge merely because the final l
  • Network accessline 1023
    - **`@reticlehq/server` — `verify --help` and the `--expect` refusal now point at the HTTP MCP transport for anything that needs an action.** `--expect` can navigate and assert but not click, fill, or press, so an agent without the `reticle
  • Network accessline 1024
    - **`@reticlehq/server` — a held key now holds, and a physical `code` is no longer sent to a driver that cannot send one.** A `press` with `holdMs` was dropped by the real-input path: the driver sent an instant down/up and reported success,
  • Network accessline 1025
    - **`@reticlehq/server` — `press` now reaches a real keyboard, so Tab order can be verified.** A `press` with no `ref` (Escape, Tab, a modifier shortcut) is a document key, and it was dispatched as a synthetic `KeyboardEvent` even when real
  • Network accessline 1031
    Closes [#1227](https://github.com/reticlehq/reticle/issues/1227).
  • Network accessline 1033
    - **`settled` counted two kinds of traffic that every other settle decision in the product ignores, so it could never pass again after a plain link click.** A departure — the `NET_PENDING` the SDK emits for an OAuth handoff or a native down
  • Network accessline 1035
    - **A declared background endpoint whose URL was redacted was still judged as the app's own traffic.** Redaction rewrites a sensitive path segment at emit time — `/verify/refresh-token` becomes `/verify/[REDACTED]` — and keeps the original 
  • Network accessline 1036
    - **`@reticlehq/init` — the closing hint of `reticle init` said the tools were "available now" right below a Codex row that said to add the block by hand.** The hint only read the Claude Code row, so with Claude Code already registered and 
  • Network accessline 1037
    - **`@reticlehq/browser`: `connect({ url: "ws://localhost:4400" })` never connected and nothing said why.** The daemon only upgrades WebSocket connections on `/reticle`, so a hand-written bridge URL with no path was answered with a silent 4
  • Network accessline 1040
    The check is on the response **envelope**, not on the entries, and that distinction is the whole fix. `GET /v1/memory` answers `{ projectId, entries }` — the entries carry no project of their own — so an entry-level filter matched nothing, 
  • Network accessline 1042
    - **A git worktree's flows and intents were written into the main checkout.** Run the daemon in repo A, then connect an app from a worktree B that declares its own `projectId`: config discovery walks out from A's working directory and never
  • Network accessline 1043
    - **`@reticlehq/next` — the source mapping opt-out now covers Turbopack.** `withReticle(nextConfig, { sourceMapping: false })` omits Reticle's Turbopack stamping loader while preserving the user's Turbopack configuration, matching the exist
  • Network accessline 1044
    - **`@reticlehq/engine` — a throttled miss with target-specific render evidence is now graded `no`, not `unknown`.** On a throttled tab, every failed assertion was stamped `inconclusive` even when the evidence proved the page rendered. The 
  • Network accessline 1045
    - **`@reticlehq/browser`, `@reticlehq/server` — a page that redirects on load no longer reports as "no browser session connected".** A route calling `window.location.assign("/login")` on mount, pointing at an uninstrumented page, left the a
  • Network accessline 1046
    - **`@reticlehq/server` — `reticle_navigate` reported a redirect back to the page you started on as an arrival that went nowhere.** At `/login`, navigating to `/checkout` and being bounced back to `/login` by an auth guard answered a plain 
  • Network accessline 1047
    - **`@reticlehq/init` — workspace roots with several apps now print a complete `reticle init --app <dir>` command for every app.** Complex app paths are quoted safely for POSIX shells and PowerShell so the printed command can be pasted with
  • Network accessline 1048
    - **`@reticlehq/server` — the `reticle_lease` description suggested `localStorage` and `sessionStorage` keys that `seedStorage` rejects.** It now names the accepted `local`, `session` and `cookies` keys and shows a valid example. Closes [#1
  • Network accessline 1049
    - **`@reticlehq/engine`: the body-capture remedy omitted the redaction step and its limits.** When an assertion needed a response body and capture was off, agents could leave it off because they expected credentials to be stored, and then g
  • Network accessline 1050
    - **`@reticlehq/server` — `reticle drive` now says which app it attached to.** It attaches to whatever holds the port, and in a monorepo that is easily a different app from the one you meant, while the port, url and session id it printed lo
  • Network accessline 1051
    - **`@reticlehq/server` — `reticle open` did not say how to open a URL on a headless machine.** When the OS browser launcher was unavailable, recovery now points Reticle tool users to `reticle_lease` to open the URL in a Reticle-owned brows
  • Network accessline 1052
    - **`@reticlehq/init` — Vinext projects could be detected as Next.js and receive wiring Vinext never runs.** `reticle init` now recognises Vinext as a Vite app, so it plans the Vite plugin path even though Vinext depends on `next` for API c
  • Network accessline 1053
    - **`@reticlehq/server`: `reticle status --json` now writes to stdout.** The JSON line was routed through `log()`, which writes to stderr (reserved for the MCP transport). `reticle status --json | jq` read nothing. The status handler now wr
  • Network accessline 1054
    - **`@reticlehq/server` — session list reported missing dev script in Flutter projects.** When inspecting a Flutter web project (`pubspec.yaml` present, no `package.json`), `reticle_session` with `action: "list"` reported that the project d
  • Network accessline 1055
    - **`@reticlehq/server` — dev-server quiet time could briefly be negative on macOS.** Fractional filesystem modification times can be slightly ahead of the integer millisecond clock. Quiet time is now clamped to zero, keeping setup diagnost
  • Network accessline 1056
    - **`@reticlehq/server` — a saved `act_sequence` step failed with the browser's raw `ref ... no longer resolves to an element` when the page re-rendered part way through it.** The step resolved every sub-step's anchor before anything ran an
  • Network accessline 1057
    - **`@reticlehq/server` — `reticle_navigate` to the page already shown no longer confirms before the document is replaced.** The arrival scan returned the still-connected old document as if the navigation had landed, so a replay started imm
  • Network accessline 1058
    - **`@reticlehq/core` + `@reticlehq/server`: a page on SDK 3.1–3.4 is not version-skewed by a name the daemon retired.** Since 3.5.0 every verdict on such a page was `unknown` (`version_skew`), because the page still sends `webmcp`, an acti
  • Network accessline 1059
    - **`@reticlehq/engine`, `@reticlehq/server`: a "no console errors" step passed when the error landed a moment after the action.** An absence was held for only 300ms after it first read true, so a click handler that logged an error 800ms la
  • Network accessline 1060
    - **`@reticlehq/engine`: a server-set or reformatted timestamp is not an ignored write.** `write-field-ignored` fired when a server echoed the same instant spelled differently (`.000Z` against `Z`, or an offset) and when it set an audit col
  • Network accessline 1061
    - **`@reticlehq/engine` — a held `anyOf` assertion could be downgraded to `outcome_unread` when a response body was not recorded.** Assertions whose branches are all independent of the response body, such as a route-or-element check, now re
  • Network accessline 1062
    - **`@reticlehq/init`: `init` in a directory with no app below it wrote `.reticle.json` anyway.** It said to run `init` from the app's directory, then wrote a config into the one it had just called wrong and printed a script-tag snippet nob
  • Network accessline 1063
    - **@reticlehq/server — scope-miss errors printed 'untagged' as if it were a valid project id.** When browser sessions connect without a projectId, the error now clarifies they are connected with no projectId, shows (no projectId: the page'
  • Network accessline 1064
    - **`@reticlehq/server` — a refused `bodyContains` clause also asked you to file a Reticle bug.** `reticle_assert` and `act_and_wait` refuse a `bodyContains` / `bodyMatches` clause when the session is not recording bodies, and the refusal n
  • Network accessline 1065
    - **`@reticlehq/core`, `@reticlehq/engine`: `element` predicates rejected the flat `scope` and `self` fields that the syntax and `look find` both accept.** A step written as `{kind: "element", text: "...", scope: "#panel"}` failed to compil
  • Network accessline 1067
    - **`@reticlehq/engine`: an `element` predicate carrying a `source` stamp next to a `by`+`value` locator — or next to `self: true` — could pass for an element other than the one the caller's source location named.** `source` is an anchor, r
  • Network accessline 1068
    - **`@reticlehq/server` — a git worktree's flows, intents and runs land in that worktree, not the primary checkout.** Every worktree carries the same committed `.reticle.json`, so a daemon serving several of them saw one projectId for all, 
  • Network accessline 1069
    - **`@reticlehq/server` + Claude Code plugin — an agent with Reticle's tools now tells you when your app is not wired.** Registering the MCP server and wiring the app are separate steps, and the second was only suggested to an agent already
  • Network accessline 1070
    - **`@reticlehq/server`: a screenshot of one session never carries the driven tab's pixels.** While `reticle drive` was alive, `reticle_screenshot` and `reticle_visual_diff` for another session saved a picture of the driven tab and reported
  • Network accessline 1071
    - **`@reticlehq/engine`, `@reticlehq/server`, `@reticlehq/core`: a `text` check passed as `verified: "yes"` when the only matching node was hidden.** A success template still hidden in the DOM satisfied `{ kind: "text", contains: "Thank you
  • Network accessline 1080
    - **`@reticlehq/browser` — Reticle's own HUD storage showed up in verdicts as if the app had written it.** `reticle-presenter-log` appeared in `storageKeysChanged`, and so could every other key the SDK and HUD keep (settings, notes history,
  • Network accessline 1082
    - **`@reticlehq/browser` — a modifier named in `press { keys: [...] }` now sets its own event flag, and a flag clears only when the LAST spelling of it is released.** `modifiers` is a fixed set of flags for one event, which is exactly why `
  • Network accessline 1084
    - **`@reticlehq/server` — a real held press can no longer leave a key down, and refuses to replay when it cannot prove one is up.** A held chord is pressed key by key — modifiers down, the key last — and that sequence can fail PARTWAY: `Con
  • Network accessline 1086
    - **`@reticlehq/server` — `effect.heldMs` now reports the hold achieved on a real-keyboard press too.** `reticle_act` promises `effect.heldMs` says what was achieved, and on the real path the act result IS the effect block — but the driver'
  • Network accessline 1087
    - **`@reticlehq/server` — a wrong guess no longer becomes a regression flow that is red forever.** A step is recorded when it is sent, before its verdict, so when an agent claimed a consequence that did not happen, that false claim was save
  • Network accessline 1088
    - **`@reticlehq/engine` — `compare { as: "number" }` dropped the negative sign on formatted currency.** `NUMBER_TOKEN` required the minus sign to be directly adjacent to digits, so currency strings formatted by `Intl.NumberFormat` (such as 
  • Network accessline 1089
    - **`@reticlehq/engine` — a `ref` on an `element` predicate is answered with `query`, not with advice to move it beside `until`.** `misplacedCallFields` reported every `ref` as a CALL argument one level too deep. That is right for the flat 
  • Network accessline 1090
    - **The same answer now reaches the two spellings it was missing.** `type` is core's alias for `kind`, and reading `kind` alone meant `{ type: 'element', ref }` came back as `kind "unknown"` carrying the very move-beside-`until` advice the 
  • Network accessline 1091
    - **A `ref` written next to an existing `query` is answered with "delete it".** "Put the locator inside `query`" sends the caller to rewrite a field that is already right; when `query` is present the only action left is removing the extra `
  • Network accessline 1092
    - **`@reticlehq/engine` + `@reticlehq/browser`: an exact role+name miss now says which labels that role really has, in both query spellings.** A failed element predicate such as `{ role: "button", name: "Mesh" }` read the same for a page wi
  • Network accessline 1093
    - **`@reticlehq/browser`, `@reticlehq/engine` — `<input type="search">` now computes role `searchbox` rather than `textbox`.** Per HTML-AAM, search inputs expose the `searchbox` role. `{ role: "searchbox" }` queries match it directly, inter
  • Network accessline 1094
    - **`@reticlehq/server` — the no-session scan probes the port the project's own dev script pins.** With a Next app already listening on :3005 (`next dev -p 3005`), the diagnosis said nothing was listening and named a command that would have
  • Network accessline 1095
    - **`@reticlehq/server` — the no-session diagnosis now finds the dev script of an app that lives one directory down.** A repo whose web app is in `frontend/` was told "this project declares no dev script", so the agent asked a human for a c
  • Network accessline 1115
    - **`@reticlehq/server`: `reticle_run` accepted wrong-typed arguments, and two tools turned them into a confident wrong answer.** A client that sent `"1440"` for a number reached `reticle_viewport` through `reticle_run`, which set the page 
  • Network accessline 1116
    - **`@reticlehq/browser`: an SVG element can be a query `scope`.** `look` lists an `<a href>` inside an `<svg>` (a floor plan's rooms, a chart's regions) as a link with a ref, and the action layer can click it. But `{ scope: "svg a[href='/r
  • Network accessline 1117
    - **`@reticlehq/server`: the version-skew fix names the packages of the project that connected, not the daemon's working directory.** A shared daemon, started from `$HOME`, a monorepo root or another project's MCP client, read `package.json
  • Network accessline 1118
    - **`@reticlehq/server`: a daemon-skew warning reaches the agent it is about, and no other.** Two agents sharing a daemon shared one skew queue. When one attached with a different MCP server version, the warning went out on the next tool re
  • Network accessline 1119
    - **`@reticlehq/browser`: content slotted into a closed `<details>` inside a component's shadow root reads hidden.** Light-DOM content renders at its slot. The visibility walk went from a slotted element straight to the host and never passe
  • Network accessline 1120
    - **`@reticlehq/browser`: adjacent inline text nodes no longer get spurious spaces in the accessible name.** `textWithoutHidden` joined every child piece with a space, so `<button>Complete All ({count})</button>` (three text nodes from JSX 
  • Network accessline 1121
    - **`@reticlehq/browser`: a click on a control in Reticle's own panel was reported as blocked by the app underneath it.** The hit test drops Reticle's own nodes from the point stack so our overlay never counts as covering an app control. Wh
  • Network accessline 1122
    - **`@reticlehq/browser`: `inViewport` is now listed in the evidence when a single element matched.** A predicate asserting `state: "inViewport"` on one button passed correctly, but the evidence descriptor's states were `[present, visible, 
  • Network accessline 1126
    - **`@reticlehq/server` — retain ownership of Astro dev servers.** When Reticle starts the dev server, suppress Astro’s automatic agent-terminal backgrounding so handover records and cleanup keep pointing at the live supervised process. Re-
  • Network accessline 1127
    - **Development and verification — dependency security and test isolation.** Update vulnerable dependencies; isolate test bridges and daemon state; preserve unrelated processes during cleanup. Conformance negative controls no longer overwri
  • Network accessline 1128
    - **`@reticlehq/engine` + `@reticlehq/server`: a burst of events could evict the one a wait was armed on, and the verdict blamed the app.** A `reticle_wait`, `until` or act-sequence step that matched an event early in its window could lose 
  • Network accessline 1140
    - **`@reticlehq/browser` — `pressed` state for toggle buttons.** Buttons with `aria-pressed="true"` now report a `pressed` state, so `{ state: "pressed" }` works in element predicates the same way `checked` and `expanded` already do. Snapsh
  • Network accessline 1157
    - **Claude Code plugin — the MCP server is pinned to the release it shipped with, and the plugin has an icon.** The plugin ran an unpinned `npx @reticlehq/server`, so a plugin install could start a different server than the one it was teste
  • Network accessline 1158
    - **`@reticlehq/core`, `@reticlehq/browser`: the documented element states include `pressed`.** A toggle button's `aria-pressed="true"` has been reported as `pressed` since #1144 landed, but the state lists in the predicate reference and th
  • Network accessline 1159
    - **Docs — a new [Use cases](https://docs.reticle.sh/use-cases) page covers what people verify with Reticle beyond agent-built changes:** security behaviour (access control by role, forbidden calls, CSP violations), accessibility and UX, pe
  • Network accessline 1164
    - **`@reticlehq/engine` — element predicate errors now map query-tool role locators to the supported predicate shapes.** A locator copied from `reticle_query` was rejected without showing where its role belongs, forcing trial-and-error retr
  • Network accessline 1165
    - **`@reticlehq/browser` — content inside a closed native `<details>` reported `visible`.** An element predicate with `state: "visible"` matched a control inside a collapsed disclosure, so the click that expands it came back `already_true`/
  • Network accessline 1166
    - **`@reticlehq/browser` — a `<fieldset>` named by its direct-child `<legend>` is no longer reported as unnamed.** `getAccessibleName` had no rule for the fieldset/legend HTML naming pattern, so `{ role: 'group', name }` could never find on
  • Network accessline 1167
    - **`@reticlehq/core` — embedded image URLs could flood diagnostic output with base64 data.** `data:` URLs are now reduced to a bounded summary that keeps the media type and payload byte count without carrying the payload into the agent tra
  • Network accessline 1168
    - **`@reticlehq/server` — older Windows releases could not recover when `reticle update` failed with `spawn EINVAL`.** The failure now prints a working PowerShell installer command, and the update guide documents the same recovery path. Clo
  • Network accessline 1169
    - **`@reticlehq/engine` — an `allOf` conjunction whose permanently-false clause was not the first to fail kept polling until the budget expired.** `waitForPredicate` uses `decided: true` to stop early when no later event can change the answ
  • Network accessline 1170
    - **`@reticlehq/server`: an `allOf` whose parts all held returns a verdict.** A composite was treated as reading every channel, including app state, so on any app with no registered store `allOf`, `anyOf` and `not` came back `unknown` even 
  • Network accessline 1171
    - **`@reticlehq/browser` + `@reticlehq/engine` — distinct Next.js Server Actions on one page are no longer reported as one duplicate write.** Every Server Action POSTs to the page's own URL, and its usual `FormData` body has no shape finger
  • Network accessline 1172
    - **`@reticlehq/server` — `reticle_verify { action: "change" }` answered `no` from a contradiction in flows it could not tie to the change.** When the covering suite passed but channels disagreed during the replay, the verdict was `no` befo
  • Network accessline 1173
    - **`@reticlehq/server` — the version-skew paragraph was printed twice in every tool response.** `healthEnvelope` returned both `session.versionSkew` (the version pair) and a `warning` that repeated the same pair at the end of its text. The
  • Network accessline 1174
    - **`@reticlehq/server` — the `initialize` handshake led with the first-install steps even while a browser session was already connected.** The instructions asked only the durable "connected before" memory, which can be empty or stale for a
  • Network accessline 1175
    - **`@reticlehq/server` — `reticle_navigate` could report a navigation as unconfirmed when the application redirected the browser to another page.** Reticle now reports the URL where the navigated document landed, including when the documen
  • Network accessline 1176
    - **`@reticlehq/test` — `bootSession()` died with a raw `node:net` EADDRINUSE stack on any machine that already had a Reticle daemon running.** Both `reticle serve` and `bootSession()` default to port 4400, so this was the normal state, not
  • Network accessline 1177
    - **`@reticlehq/server` — `reticle_lease{action:"acquire"}` silently dropped an unrecognised `seedStorage` key instead of rejecting it.** `seedStorage: { localStorage: {...} }` (the wrong key name) or a Playwright `storageState()` export (`
  • Network accessline 1178
    - **`@reticlehq/browser` — `getAccessibleName` ignored a native `<label for>` on any element other than `input`/`textarea`/`select`.** A `<button role="combobox">`, `<meter>`, `<output>` or `<progress>` labelled with `<label for="...">` was
  • Network accessline 1179
    - **`@reticlehq/core`, `@reticlehq/engine`, `@reticlehq/server` — the `no-store-registered` gap no longer tells an app with a bare-getter store that no store is registered.** `registerStore('app', () => state)` registers a readable store wi
  • Network accessline 1180
    - **`@reticlehq/init` — a corepack-managed package manager no longer looks missing.** `init`, in a project whose `packageManager` field pins pnpm, refused with "pnpm is not installed on this machine" on any machine where only `corepack pnpm
  • Network accessline 1181
    - **`@reticlehq/init` — `init` on a static HTML page said "No package.json found here … run `reticle init` from your app's directory", then printed the snippet that was the right answer.** Agents trusted the sentence over the snippet and re
  • Network accessline 1182
    - **`@reticlehq/init` — `init --app <dir>` pointed at a Flutter, Python, Ruby, Go or other non-JS project reported a missing package.json.** The agent read that as a mistyped path and kept looking. `--app` now prints the same ecosystem-spec
  • Network accessline 1183
    - **`@reticlehq/engine` — an `anyOf` disjunction whose every clause was permanently false kept polling until the budget expired.** `waitForPredicate` uses `decided: true` to stop early when no later event can change the answer. The `anyOf` 
  • Network accessline 1184
    - **`@reticlehq/server` + `@reticlehq/init` + `@reticlehq/vite-plugin` — a first install on a machine already running Reticle for another project.** `init` gives the new project its own port when another project's daemon holds the default, 
  • Network accessline 1185
    - **`@reticlehq/browser` — an unchanged store entry with a secret-like name reported a state change on every render.** A cache entry keyed, for example, `verify-signing-secret` is redacted on both sides of the comparison, so every re-emissi
  • Network accessline 1186
    - **`@reticlehq/core` + `@reticlehq/server` — a route that 500s is named as a server error, not as a closed tab.** A route that throws server-side tears the page down and the SDK never reconnects, so `reticle_sessions` was empty and the dia
  • Network accessline 1187
    - **`@reticlehq/server` — an ended session was listed forever.** A session that ended stayed in the session list for the life of the daemon. It is now collected once its tab's socket has closed; one whose tab is still connected is kept unti
  • Network accessline 1188
    - **`@reticlehq/engine` — `write-field-ignored` no longer fires on a bumped optimistic-concurrency token.** A compare-and-set write sends the `version` it read and expects the server to bump it; the response's incremented `version` was read
  • Network accessline 1189
    - **`@reticlehq/engine` — an `absent` or `not` check could pass before the thing it rules out happened.** A wait settled on its first passing reading, and a claim that something did NOT happen is true at the start of every window. So a clea
  • Network accessline 1190
    - **`@reticlehq/server` — an Angular SSR dev terminal filled with `ERROR: Bad Request ("http://[::1]:4200/")` every few seconds.** The daemon's background dev-server probe dialled `::1` and sent that literal address as its `Host` header, wh
  • Network accessline 1247
    - **`@reticlehq/server` — any HTTP service answering JSON on `/status` was taken for a Reticle daemon.** An unrelated MCP server on the port `init` chose was adopted as the daemon; the page's bridge dial got WebSocket 404s and `init` blamed
  • Network accessline 1248
    - **`@reticlehq/browser`: actions work on SVG elements.** Clicking a `<path>` in a chart, a map region or an icon was refused with "not an HTMLElement". Click, hover, double-click, focus and drag now accept any SVG element; fill and type st
  • Network accessline 1249
    [Credential-related source omitted]
  • Access to secretsline 1249
    [Credential-related source omitted]
  • Access to secretsline 1256
    [Credential-related source omitted]
  • Network accessline 1271
    - **`@reticlehq/core` + `@reticlehq/babel-plugin` + `@reticlehq/vite-plugin`: a file can opt out of source stamping with `// @reticle-ignore` on its first non-empty line.** The only lever before this was the plugin's `include`/`exclude` glo
  • Network accessline 1272
    - **`@reticlehq/server` — the session health block names the event ledger once it starts to fill.** A repeating uncaught error wrote one session's `events.jsonl` until the disk was full; neither the daemon nor `doctor` nor any health counte
  • Network accessline 1312
    - **`reticle doctor` could report a Content Security Policy that was not blocking the app.** It now prefers the response header or HTML meta policy served by a running local app, treats source-only matches as predictions, ignores Next.js im
  • Network accessline 1313
    - **`@reticlehq/browser` — typing into Monaco or CodeMirror no longer reads as "wrong element".** Those editors are a `role="textbox"` div with the document in the EditContext API, not an `<input>`. `type` and `fill` said `cannot type into 
  • Network accessline 1314
    - **`@reticlehq/init` — Astro 7.2+ gets the pairing token through frontmatter, not `vite.define`.** On current Astro, `vite.define` does not reach the client pipeline: the served page script still contains the literal `__RETICLE_TOKEN__`, s
  • Network accessline 1315
    - **Framework e2e no longer leaks the test runner's env into the dev servers it spawns.** Vitest mirrors its own `import.meta.env` into `process.env`, and astro's dev plugin returns early out of `configureServer` when `process.env.VITEST` i
  • Network accessline 1316
    - **`@reticlehq/browser` — `dblclick` dispatched only a `dblclick` event, so `onClick` handlers never ran.** A real double-click is two full clicks followed by `dblclick`, and React's `onClick` listens for the clicks. Driving a submit butto
  • Network accessline 1317
    - **`@reticlehq/core` + `@reticlehq/browser` + `@reticlehq/server`: a miss whose present-testid list was cut says so, instead of handing back a partial list as the whole page.** On a zero-match query the browser reports the testids that _ar
  • Network accessline 1318
    - **`@reticlehq/vite-plugin` — disabled production builds no longer ship `@reticlehq/browser` SDK code.** Production web builds now replace the browser SDK with an inert stub, so Reticle code is omitted from the generated bundle. Closes [#8
  • Network accessline 1319
    - **`@reticlehq/server` — a snapshot of a crashed app said it was unmounted and sent you to another tool to find out why.** An empty tree over an almost-empty mount container already reported "the app is UNMOUNTED rather than slow", but it 
  • Network accessline 1320
    - **`@reticlehq/server`: `reticle_lineage` reads the attribution the SDK already stamped, instead of only a fresh timing window.** Every event observed under a driven action carries `actionId` + `attribution` at `window` tier — the same heu
  • Network accessline 1321
    - **`@reticlehq/server`: `reticle_tools { action: "list" }` was refused with "Unknown parameter".** Every other tool on the nine-tool surface is driven by `action`, so an agent that has learned the surface reaches for it here too, and `reti
  • Network accessline 1322
    - **`@reticlehq/server` — `reticle_session { action: "end" }` could end a session other than the one you named.** A departed session id resolves to its live successor, which is what keeps a reload working for everything that observes a tab.
  • Network accessline 1323
    - **`@reticlehq/engine` — empty error fields no longer turn successful responses into failure verdicts.** Empty error maps, false error flags, zero error codes and blank messages are now ignored, both at the response root and inside batch r
  • Network accessline 1324
    - **`@reticlehq/browser` — a query cache re-emitting an unchanged value no longer counts as a state change.** State diffs compare top-level values by reference, which is correct for Zustand and Redux but not for TanStack Query, which re-emi
  • Network accessline 1325
    - **`@reticlehq/browser`: one repeating uncaught error could fill the disk.** An uncaught error is recorded as an event, and recording it can raise the same error, so the path feeds itself. A single repeating `TypeError` could write one ses
  • Network accessline 1326
    - **`@reticlehq/server`: cloud pushes no longer report success when artifacts are rejected.** `reticle push` and `reticle sync` now return `ok: false` and exit `1` when the cloud refuses any offered run, including partial rejections. Accept
  • Network accessline 1327
    - **`@reticlehq/server` — `reticle verify --expect` dropped the predicate and answered about saved flows instead.** The predicate was only read when a Reticle daemon already owned the bridge port. On any other port state the flag was discar
  • Network accessline 1328
    - **`@reticlehq/server` — `reticle verify --expect --storage-state <file>` graded the predicate against the wrong user.** The one-shot verdict takes its answer from the tab the running daemon already owns, and there is nowhere in that path 
  • Network accessline 1329
    - **`@reticlehq/init` — generated Vite dev modules now compile without ambient `vite/client` types.** New `reticle-dev.ts` files carry merge-compatible declarations for `import.meta.env.DEV`, without modifying the application's tsconfig or 
  • Network accessline 1444
    - **`@reticlehq/server`: `reticle_verify change` no longer says `yes` on flows it cannot tie to your change.** A saved flow whose covered sources are unknown is still re-run, because over-running beats skipping. A failure from such flows al
  • Network accessline 1445
    - **`@reticlehq/next`: a JavaScript Next.js project gets source locations.** create-next-app's JavaScript template writes every page as `.js`, and `withReticle` only stamped `.tsx` and `.jsx`, so no element in those apps had a `file:line` a
  • Network accessline 1446
    - **`@reticlehq/core`: choosing a radio option whose label read like an action was refused as destructive.** Picking "Refund" from a reason group, or "Inlet" from two choices, needed `confirmDangerous: true`, which trains an agent to pass i
  • Network accessline 1454
    - **`@reticlehq/browser` — 12 symbols that nothing outside their own file uses are no longer exported.** An `export` on a symbol only its own module reads makes the SDK's internal surface look larger than it is, and it permanently defeats d
  • Network accessline 1455
    - **`@reticlehq/init` — 10 symbols that nothing outside their own file uses are no longer exported.** An `export` on a symbol only its own module reads makes the package surface look larger than it is, and it permanently defeats dead-code d
  • Network accessline 1456
    - **`@reticlehq/server` — 26 symbols that nothing outside their own file uses are no longer exported.** An `export` on a symbol only its own module reads makes the module surface look larger than it is, and it permanently defeats dead-code 
  • Access to secretsline 1492
    [Credential-related source omitted]
  • Access to secretsline 1501
    [Credential-related source omitted]
  • Dangerous shell operationline 1520
    - **"Add the reticle entry by hand" is said once, not on every run forever.** Two commands register MCP clients on purpose, so a `curl … | sh` followed by `reticle init` printed the same two paragraphs about your Zed or Continue config twic
  • Network accessline 1520
    - **"Add the reticle entry by hand" is said once, not on every run forever.** Two commands register MCP clients on purpose, so a `curl … | sh` followed by `reticle init` printed the same two paragraphs about your Zed or Continue config twic
  • Network accessline 1553
    - **A drive that overwrote a flow reported saving nothing.** `savedFlows` was a before/after diff of names, so the ordinary second run — which re-drives the same journeys under the same names — said "nothing is proved and nothing will repla
  • Network accessline 1555
    - **`@reticlehq/server` — a CRA launcher that prints "already running on port N" is named as a busy port, not as a silent exit.** Setup used to report only "The dev server exited without serving anything" when Create React App (or webpack) 
  • Network accessline 1557
    - **`@reticlehq/server` — `reticle doctor` now says when `localhost` cannot reach the bridge.** The daemon binds `127.0.0.1` and a best-effort alias forwards `[::1]` to it, because `localhost` is a name with two answers and Windows Chrome t
  • Network accessline 1558
    - **Build: a change to a `scripts/*.mjs` that produces `dist` now invalidates the cached build.** Ten packages run a root script as part of their build — `alias-dist.mjs` in every one, which is what rewrites `@/…` imports back to relative p
  • Network accessline 1559
    - **Build: the cached build now restores TypeScript's build info alongside `dist`.** `build` declared only `dist/**` as its output, so a cache hit gave a restored `dist` and no `tsconfig.tsbuildinfo`. The next `tsc -b` — every package's `ty
  • Network accessline 1560
    - **`@reticlehq/server` — `reticle_reconcile` and `reticle_lineage` answered `unknown tool`.** On the surface a daemon serves by default, asking `reticle_tools` for either name got the same sentence as a typo, so the capability the release 
  • Network accessline 1565
    This is one of the four failures reported under that issue. The other three — an expired lease rerouting to another connected tab instead of refusing, `reticle_session { action: "end" }` ignoring an explicit id, and `reticle_lease { action:
  • Network accessline 1571
    This change bounds event reads and retained evidence, not journal writes or repeated state-event production. The action-ledger reader and filesystem adapters without bounded-read support retain their existing whole-file behavior. Refs [#985
  • Network accessline 1577
    Two smaller repairs ride along. A `stat` that failed for any reason other than "no such file" was read as an empty ledger, which handed the writer a full budget over a file that may already have been at the ceiling — the cap disabled by exa
  • Network accessline 1579
    - **`@reticlehq/browser` — an idle Reticle card ate clicks meant for the app.** The activity log fills the chat panel and was hit-testable while the session was idle and nothing was blocking the page, so a second driver retried for half a m
  • Network accessline 1580
    - **`@reticlehq/server` — a `sessionId` that names no session no longer routes artifacts into the daemon's own checkout.** Every tool that reads or writes a `.reticle` artifact resolves its directory from the connected session, and when the
  • Network accessline 1581
    - **`@reticlehq/browser` — synthetic mouse and pointer actions omitted the event's window.** Clicks, drags, hover, checkbox actions and touch-compatible pointer events now carry the target document's `defaultView`, so handlers that attach l
  • Network accessline 1582
    - **`@reticlehq/server` — a refused dial told the page to reload, which serves the same pairing token.** The close reason said to reload the page to pick up the current token. Vite inlines that token when the dev server starts and keeps it 
  • Network accessline 1583
    - **Docs — an empty `reticle_*` catalog now points at the HTTP transport.** Clients that read their MCP tool list once, Cursor Cloud Agent among them, can have a live daemon and still no tools for the session. The transport page already des
  • Network accessline 1585
    - **A hook test raced the child process it was watching, and ejected unrelated pull requests from the merge queue** (`@reticlehq/server`). The helper that waits for a hook's output returned as soon as the file existed, but a shell redirect 
  • Network accessline 1586
    - **`reticle init` no longer tells an agent to call tools that are not in its session.** An MCP client reads its server list when it starts and never re-reads it, so on the run that first registers Reticle on a machine the `reticle_*` tools
  • Dangerous shell operationline 1587
    - **The one-line installer looked hung while npm worked.** `npm install -g` draws its progress bar only onto a terminal, and a `curl … | sh` pipeline never gives it one — so from "Installing @reticlehq/server..." until npm's final summary t
  • Network accessline 1587
    - **The one-line installer looked hung while npm worked.** `npm install -g` draws its progress bar only onto a terminal, and a `curl … | sh` pipeline never gives it one — so from "Installing @reticlehq/server..." until npm's final summary t
  • Dangerous shell operationline 1734
    - **`scripts/local-registry.sh` runs twice on Windows.** Verdaccio's config named `/tmp/...`, which a Windows verdaccio reads as `C:\tmp` and Git Bash's `rm -rf` reads as `AppData\Local\Temp` — so the advertised "FRESH … reset so user/token
  • Access to secretsline 1744
    [Credential-related source omitted]
  • Access to secretsline 1766
    [Credential-related source omitted]
  • Access to secretsline 1824
    [Credential-related source omitted]
  • Network accessline 1867
    - **`@reticlehq/server` — `reticle_lease { action: "acquire" }` recommended a tab from a DIFFERENT application.** On acquiring a lease the tool answers with `preferExisting` when a non-leased tab for the same app is already open, and its no
  • Network accessline 1885
    - **`@reticlehq/server` — opt-in `uploadRoots` in `.reticle.json`.** Upload-by-path stays sandboxed to the project root by default. Declaring `"uploadRoots": ["~/Downloads", "/Volumes/fixtures"]` additionally allows files under those direct
  • Network accessline 1886
    - **`@reticlehq/server` — `reticle_navigate` takes a `timeout_ms`, and an unconfirmed result says what the wait ended on.** The arrival window was a fixed, unstated 5s: `navigate-arrival.ts` hard-coded it and the tool exposed nothing, so un
  • Network accessline 1888
    - **`@reticlehq/server` — assert on the request body, not only the response.** `net.bodyContains` searches the response, deliberately: searching the request too would let it pass on the very defect it exists to catch, because an app that se
  • Network accessline 1889
    - **`@reticlehq/core` — rendered text can be a flow's success state.** An app with no testids, no `reticle.signal`, no registrable store and no network call on the interaction under test — a discount price computed and rendered, a formatted
  • Network accessline 1910
    - **`@reticlehq/init` — a step that PATCHES a file confirms its edit is readable back.** Existence proves a file we generated whole; it proves nothing about a config we edited in place, and a patcher that cannot find the plugins array retur
  • Network accessline 1917
    - **`@reticlehq/server` — an ambiguous target refusal ranks its candidates.** The refusal itself is unchanged (an action still must not guess), but the listed refs are ordered in-viewport then by role, and each entry says whether it is in-v
  • Network accessline 1918
    - **`@reticlehq/server` — `init` names the WebGL / react-three-fiber observability limit.** A canvas is a blank rectangle to query and snapshot; DOM, store and network around it still work. Without saying so, init looked fully green on R3F 
  • Network accessline 1924
    - **`@reticlehq/server` — a `ROUTE_CHANGE` is read through one helper (`routeOfEvent`).** Six call sites (and the journey consequence line) each picked `pathname` / `to` / `hash` out of the event by hand, so a seventh hash-router miss was a
  • Network accessline 1928
    - **`@reticlehq/server` — `init`'s readiness probe tries every loopback family, not only the announced host.** A Vite (or CRA) process that listens on `[::1]` only but prints `http://127.0.0.1:PORT` made the wait loop treat the server as do
  • Network accessline 1929
    - **`@reticlehq/browser` — the HUD no longer advertises `role="dialog"`.** Reticle's session, settings, impact, and workspace panels carried `role="dialog"`, so Radix/shadcn outside-click logic could treat a synthetic click inside the app's
  • Network accessline 1931
    - **`@reticlehq/server` — init attaches to the dev server this project is already running, instead of starting a second one.** `npx @reticlehq/server init` started a second Vite on 5174 while 5173 was already serving the same app, so `retic
  • Network accessline 1933
    - **`@reticlehq/test`: a contradicted verdict fails the spec instead of passing it.** `reticle_assert` and `reticle_act_and_wait` return `verified` beside `pass`, and the two are allowed to disagree: `pass` is the raw predicate match, `veri
  • Network accessline 1934
    - **`@reticlehq/eslint-plugin`: `no-internal-tags` now covers file and directory names.** The project rule names four surfaces (comments, file names, directory names, test descriptions) and the lint rule enforced two, which is the same enfo
  • Network accessline 1935
    - **`@reticlehq/server` — a redacted fill is supplied from `RETICLE_SECRET_<FIELD>` on every replay path, not only a testid step.** `replayActionArgs` only substitutes when it is given the field name, and the role runner and every `act_sequ
  • Network accessline 1936
    - **`@reticlehq/server` — a vanished session names the last URL it was on.** A Next.js route that 500s tears the page down and the SDK never reconnects, so `reticle_sessions` came back empty — the same shape as an install problem, a wrong p
  • Network accessline 1937
    - **`@reticlehq/server` — a flow-replay destructive-action refusal names the fix that actually works.** "potentially destructive action blocked; retry with `args.confirmDangerous=true`" is correct advice for a live tool call and unfollowabl
  • Network accessline 1938
    - **`@reticlehq/server` — `reticle_run` can invoke `reticle_tools`, as the server instructions say it can.** The instructions state, verbatim, "`reticle_tools` lists it, `reticle_run` calls it" — but `reticle_run { tool: "reticle_tools" }`,
  • Network accessline 1939
    - **`@reticlehq/server` — an `already_true` verdict names a hidden match.** `text`/`element` predicates check DOM presence by default, not visibility (`visible: true` is opt-in), so a dialog's content mounted-but-hidden before a click read 
  • Network accessline 1940
    - **`@reticlehq/server` — `reticle_snapshot` warns when a scope was smaller moments ago.** A route predicate can go green the instant the URL commits, before the page has actually rendered — and a snapshot taken right after inherits the sam
  • Network accessline 1941
    - **`@reticlehq/server` — `init` no longer misdetects a plain Svelte + Vite SPA as SvelteKit.** `svelte.config.js` alone was read as SvelteKit, but a plain Svelte app ships one too — for `@sveltejs/vite-plugin-svelte`'s own preprocessor opt
  • Network accessline 1942
    - **`@reticlehq/server` — a git failure no longer reads as "nothing changed" in `reticle_affected` and `reticle_verify_change`.** `changedFilesSince` returned `[]` on any git error, and its comment gave the reason: the CLI gate "degrades to
  • Network accessline 1944
    - **`@reticlehq/core` + `@reticlehq/server` — a flow replay that stops early says so (`halted`).** Replay breaks on the first failing step, which is correct — once a consequence did not hold, every later step would run against a state the f
  • Network accessline 1945
    - **`@reticlehq/server` — `init` says what it is waiting for while it waits for your dev server.** The wait loop polled in complete silence: reported as thirty minutes of no output, no exit and no verdict, ending in a SIGKILL. Every fifteen
  • Network accessline 1947
    - **`@reticlehq/server` — `init` no longer classifies TanStack Start as a Vite SPA.** Start SSRs `<html>` from `__root.tsx` and never sends Vite's `index.html`, so the plugin's connect injection cannot fire. `init` still wired the plugin, r
  • Network accessline 1948
    - **Repo tooling: the dependency-boundary guard refuses an untagged package instead of assuming it is isomorphic.** `SIDE` tags each package with the runtime it lives in, and anything missing from it defaulted to `iso`. That is the most per
  • Network accessline 1949
    - **`@reticlehq/core`: the key redaction rule covers passphrases and one-time codes.** The rule already knew `password`, `passwd` and `passcode` and did not know `passphrase`, which is what an SSH key, a keystore, an encrypted backup and a 
  • Network accessline 1950
    - **`@reticlehq/server` — abandoned `reticle mcp` process pairs now retire after a full day without client traffic.** A proxy whose editor left its stdio open could remain resident for days after the session ended; thirteen idle proxy / `np
  • Network accessline 1951
    - **`@reticlehq/core` + `@reticlehq/browser` + `@reticlehq/server` — Escape does not need an element ref.** `reticle_act_and_wait` with `action: "press"` refused without a `ref` or `target`, so dismissing a dialog cost a snapshot just to na
  • Network accessline 1953
    - **`@reticlehq/server` — a crashed navigation destination reports `no`, not `unknown`.** A route predicate that committed onto a destination which rendered nothing (`route-rendered-nothing`) was always graded UNKNOWN, deliberately — a blan
  • Network accessline 1954
    - **`@reticlehq/server` — crawl console faults point at the crashing component, not just the control that exposed them.** Clicking a navigation link could trigger a render failure on the destination, yet the anomaly's `source` named only th
  • Network accessline 1955
    - **`@reticlehq/server` — a native download is not a missing fetch.** `until: { kind: "net", urlContains: "/export.pdf" }` on an `<a href>` that downloads or navigates as a document observed zero calls and read as a 404, which is the same s
  • Network accessline 1956
    - **`@reticlehq/server` — the "playwright package is not installed" verdict says where it looked.** The other branches of this check name their evidence — the missing-browser line prints the path it probed, the mismatch line prints the want
  • Network accessline 1957
    - **`@reticlehq/server` — `reticle_verify_change` and `reticle_affected` ask about the session's project, not the daemon's directory.** `session-root.ts` names this exact failure in its own comment as the thing it exists to prevent — "the f
  • Network accessline 1966
    - **`@reticlehq/server`: an ambiguous target is the caller's selector to fix, not a bug to report.** `target matched N elements and an action must not guess between them` arrived with the feedback ask attached, telling the caller their own 
  • Network accessline 1967
    - **`@reticlehq/core` + `@reticlehq/browser` + `@reticlehq/server` — the split-text recovery hint is now a valid predicate.** A failed text assertion correctly detected prose split across child elements, then suggested `{ scope, self: true 
  • Network accessline 1968
    - **server:** A `{net}` assertion whose named request is still in flight is `unknown`, not `no` — the window closed early, the request had not finished (`#669`). - **`@reticlehq/core` + `@reticlehq/server` — a flow's `expect`/`success` bloc
  • Network accessline 1969
    - **`@reticlehq/core` + `@reticlehq/server` — a flow's `expect`/`success` block rejects an unrecognized key instead of silently dropping it.** `FlowExpectSchema` was a plain `z.object(...)`, so a hand-edited flow file with a typo'd or unsup
  • Network accessline 1970
    - **`@reticlehq/server` — a recording that leaves a page and returns to it is named at stop/save.** The recorder stores clicks, not navigations, so a drive into a product and back to search saved both clicks and dropped the route change bet
  • Network accessline 1971
    - **server:** A text or alert that already proves an auth denial is not overturned by the 401/403 that produced it (`#674`). - **`@reticlehq/server` — `init`'s dependency-install step reads as done when the packages already resolve.** The i
  • Network accessline 1972
    - **`@reticlehq/server` — `init`'s dependency-install step reads as done when the packages already resolve.** The install step reported `[⚠] Install dependencies — step failed` whenever its subprocess exited non-zero, even when `sdkPackages
  • Network accessline 1974
    - **`@reticlehq/server`: a driven request body that was cut short says so.** `buildNetworkDetail` caps the body it takes raw off the network stack at 8,192 characters and reported nothing, while the in-page observer caps the same body and e
  • Network accessline 1975
    - **`@reticlehq/core`: the value-shape redaction rule covers four credential prefixes it was missing.** `scrubKnownSecrets` is the half of redaction that does not depend on a key name, and it is what catches a token sitting under a benign o
  • Network accessline 1976
    - **`@reticlehq/server` — `absenceBlindSpotNote` reads a `not`-wrapped element absence.** `not(element)` is the third spelling of an absence claim (`absent: true` and `count: 0` being the other two), but the blind-spot note only checked the
  • Network accessline 1977
    - **`@reticlehq/server` — `write-field-ignored` stays silent on create sentinels and identity keys.** A POST that sent `sub_category_id: 0` and got back the new row's id, or a public workspace id echoed as an internal row id, was reported a
  • Network accessline 1978
    - **`@reticlehq/server` — a pooled lease no longer tells you to reinstall Chromium when the real problem is a missing host shared library.** `chromium.launch` failing with Playwright's "Host system is missing dependencies to run browsers" (
  • Network accessline 1979
    - **server:** A flow step `expect` accepts the same `allOf` grammar as `reticle_act_and_wait`, and a parse failure names the step and key instead of calling the file malformed (`#696`). - **`@reticlehq/server` — a recorded `until` located b
  • Network accessline 1980
    - **`@reticlehq/server` — a recorded `until` located by role and name is kept, and replay evaluates it.** `act_and_wait` already folds `until` into the saved step's `expect` for net, signal, console, state, and a testid. A control addressed
  • Network accessline 1981
    - **`@reticlehq/server` — `reticle_network_mock` applies on a leased Playwright tab.** A lease is a Playwright-owned page, so intercept was always available; the tool only looked at `reticle drive` / `RETICLE_CDP_URL` and answered `no-cdp-p
  • Network accessline 1982
    - **`@reticlehq/server` — a native `window.confirm`/`alert`/`prompt` on a leased page is dismissed instead of wedging the session.** Nothing in the pool listened for a page's `dialog` event, so a driven click that opened a native dialog lef
  • Network accessline 1985
    - **`@reticlehq/server` — session succession no longer crosses into a different app when the id happens to match.** `pickDocumentSuccessor` already refused to hand a departed id to a different project, but the same-id branch returned before
  • Network accessline 1986
    - **`@reticlehq/server` — a second `reticle_lease` acquire reuses a live lease whose app named its own session, instead of releasing it.** The reuse branch looked the pool's lease id up with `sessions.get` directly, while the mint path besi
  • Network accessline 1988
    - **`@reticlehq/core` + `@reticlehq/server` — a reused `reticle_lease` is probed before it claims `ready: true`, and `ready: false` now says which of two opposite things happened.** `ready` meant "a row is in the sessions map", which is pre
  • Network accessline 1990
    - **`@reticlehq/server` — `reticle_navigate` reports the session that actually arrived, not whichever one was already parked on the page.** Arrival was confirmed by scanning every session for the first whose origin and pathname matched the 
  • Network accessline 2032
    Three deliberate ways in, none of them silent: `reticle init --capture-bodies` writes the line for someone who has decided, `VITE_RETICLE_CAPTURE_BODIES=1` turns it on for a single dev-server run with no config edit, and adding the option b
  • Network accessline 2036
    - **`@reticlehq/server` — a declared route or role/name/testid element no longer loses to an unread body.** `act_and_wait` with `until: { kind: "route", pathname: "/lobby" }` (or an element located by `role`/`name`/`testid`) watched the nam
  • Network accessline 2059
    - **`@reticlehq/server` — a declared route or role/name/testid element no longer loses to an unread body.** `act_and_wait` with `until: { kind: "route", pathname: "/lobby" }` (or an element located by `role`/`name`/`testid`) watched the nam
  • Network accessline 2060
    - **`@reticlehq/server` — an empty `reticle_sessions` now says when a dev server is already listening.** After a tab disconnected, the diagnosis said the wiring was correct and to reopen the app, and never mentioned that the port was bound.
  • Network accessline 2061
    - **`@reticlehq/core` + `@reticlehq/browser` + `@reticlehq/server` — the destructive-action guard no longer blocks a Payment option or Log out.** The classifier matched on the element's text alone, so a Radix Select choice labelled `Payment
  • Network accessline 2062
    - **`@reticlehq/server` + `@reticlehq/next` + `@reticlehq/browser` + `@reticlehq/vite-plugin` — three install paths produced a page that could never authenticate.** `reticle init` printed a CDN snippet with no token when the daemon had neve
  • Network accessline 2063
    - **`@reticlehq/server` — the version-skew remedy names this project's SDK and package manager, and thrown tool errors carry the skew envelope.** The no-project fallback no longer names `@reticlehq/react`, but it still said `npm i -D` and n
  • Network accessline 2064
    - **`@reticlehq/server` — the version-skew remedy names this project's SDK and package manager, and thrown tool errors carry the skew envelope.** The no-project fallback no longer names `@reticlehq/react`, but it still said `npm i -D` and n
  • Network accessline 2065
    - **`@reticlehq/server` — a second `reticle_lease` acquire on the same origin reuses the live lease.** Acquire, reload, acquire again used to mint a second tab, after which every `reticle_snapshot` / `reticle_query` required `sessionId` for
  • Network accessline 2066
    - **`@reticlehq/server` — replay now navigates to a flow's `startPath` before step 1, as the FlowFile contract says.** A flow whose journey starts on another page (including one whose `startPath` was written by hand) replayed from wherever 
  • Network accessline 2067
    - **`@reticlehq/server` — hover without a real pointer refuses rather than reporting CSS `:hover` as applied.** `reticle_act { action: "hover" }` dispatched a synthetic `mouseover` and returned `dispatched: true, settled: true` while `:hove
  • Network accessline 2068
    - **`@reticlehq/server` — `serve --http-port` is honoured or refused, never silently ignored.** Three ways the flag could be accepted and then vanish, all now loud. Against an already-running daemon, `serve --http --http-port N` said "alrea
  • Network accessline 2069
    - **`@reticlehq/server` — `doctor` and `status` now use the same daemon liveness probe.** `doctor` asked the bridge port and `/status`, while `status` trusted any live pid recorded for that port and could report `running: true` for a wedged
  • Network accessline 2070
    - **`@reticlehq/server` — a same-page hash anchor is not `route-rendered-nothing`.** Clicking a skip link (`href="#main-content"`) through `act_and_wait` was graded `unknown` because the hash change produced no DOM mutation. Same-document f
  • Network accessline 2071
    - **`@reticlehq/server` — `reticle_act_sequence` steps accept `target`, the same locator as `reticle_act`.** A step `{ target: { label: "Email" }, action: "fill" }` used to dispatch with no ref. The browser then threw `ref '' no longer reso
  • Network accessline 2072
    - **`@reticlehq/server` — `reticle_act_sequence` honours `sessionId`, including on a step.** Passing an explicit id is the escape hatch when a stale tab and a fresh lease are both connected. The sequence tool either ignored a step-level id 
  • Network accessline 2073
    - **`@reticlehq/server` — version skew no longer reaches CDP tools as "Target page has been closed".** Under SDK/daemon skew, `reticle_screenshot`, `reticle_viewport`, `reticle_network_mock` and real input failed with Playwright's closed-pa
  • Network accessline 2074
    - **`@reticlehq/core` + `@reticlehq/server` — desktop coverage rows require an Electron runtime.** A Vite + React tab at `localhost:5173` was reported as an Electron renderer with unobserved `ipcRenderer.invoke` coverage because those kinds
  • Network accessline 2075
    - **`@reticlehq/server` — `init` no longer emits a connect module that fails the project's own lint.** A clean CRA (and Next) install wrote `src/reticle-dev.ts` / `reticle-dev.tsx` as one long line; Prettier-as-ESLint with `printWidth: 80` 
  • Network accessline 2076
    - **`@reticlehq/server` — `init` writes a `.js` connect module for JavaScript CRA apps.** A CRA project with no `tsconfig.json` got `src/reticle-dev.ts`, which webpack cannot resolve, so the first compile after a clean install failed while 
  • Network accessline 2077
    - **`@reticlehq/server` — Astro init declares the Vite define names so `astro check` passes.** `init` injected `__RETICLE_TOKEN__` / `__RETICLE_ROOT__` through `vite.define` but never declared them, so create-astro's default `"astro check &
  • Network accessline 2079
    - **`@reticlehq/browser` + `@reticlehq/server` — `urlContains` matches the request the app made, not the redacted display URL.** Path redaction rewrites the segment after `token`/`verify`/… when it is ≥ 12 characters, including ordinary pub
  • Network accessline 2095
    **The client host and the bind address stay different on purpose, and both are correct.** The daemon binds `127.0.0.1` so it can never be reached off-host; a client says `localhost`, the readable name every doc, log line and error message a
  • Dangerous shell operationline 2524
    - **`@reticlehq/server` — a licence key could not have activated anything, because the issuer key never reached a release.** Activation verifies a signed key against an issuer public key compiled into the build, and the literal that holds i
  • Network accessline 2668
    - **`@reticlehq/server` — `reticle_scroll_to` said a row was not there when it had not looked.** Its default scrolls the DOCUMENT, and a virtualized list usually scrolls inside its own element, which is normally the reason it is virtualized
  • Network accessline 2674
    - **`@reticlehq/server` — the `text` predicate can be scoped to a subtree.** Page-wide is the wrong default when the same word appears in a background tab label and in the dialog that just opened: the predicate was satisfied BEFORE the acti
  • Network accessline 2676
    - **`@reticlehq/server` — a named state assertion reads scoped, not whole.** The same argument, for the same reason, on the state predicate. Thanks [@everyai-com](https://github.com/everyai-com). (#418, #336)
  • Network accessline 2678
    - **`@reticlehq/browser` — an `inViewport` element state, so a scroll is verifiable.** `visible` folds only aria-hidden/`[hidden]`/display/visibility/opacity, so it is already true for content below the fold — which made `scrollIntoView` un
  • Network accessline 2680
    - **`@reticlehq/browser` — `press` sets modifier keys, so a `Cmd+K` shortcut is driveable.** A command palette bound to a modifier chord could not be opened at all. Thanks [@everyai-com](https://github.com/everyai-com). (#416, #393)
  • Network accessline 2682
    - **`@reticlehq/browser` — a snapshot says when an overlay aria-hides the rest of the page.** A modal that sets `aria-hidden` on everything behind it made the whole page read as absent, and nothing said why. Thanks [@everyai-com](https://gi
  • Network accessline 2684
    - **`@reticlehq/server` — a recorded response body proves capture is on.** The honesty check that reports uncaptured bodies could not tell "capture is off" from "this body was not recorded", and warned on sessions that were capturing correc
  • Network accessline 2686
    - **`@reticlehq/server` — `annotate` and `flow_save` no longer disagree about a success-state.** `annotate` said "will succeed when …" for a success-state that `flow_save` then graded assertion-free, so a flow that only checks the console r
  • Network accessline 2688
    - **`@reticlehq/server` — `reticle_network` can list without bodies.** The listing is the common call and the bodies are the expensive half; paying for both on every look is the token cost this product spends most of its effort not incurrin
  • Network accessline 2690
    - **`@reticlehq/server` — the unadvertised-tool recovery names a call that reaches the tool, and the lease preflights the browser.** An agent handed only a hidden, throttled tab followed the embedded recovery text and each hop named somethi
  • Network accessline 2692
    - **`@reticlehq/browser` — `inspect` says why `component.source` is missing.** An absent source pointer and an absent build plugin looked identical, so the answer was to go looking in the wrong place. Thanks [@Osheun](https://github.com/Osh
  • Network accessline 2694
    - **`@reticlehq/server` — a snapshot delta reports a value change as `changed`, not as a remove plus an add.** The pairing now requires the role to match, so two unrelated elements are never fused into one edit. Thanks [@DevChiniwala](https
  • Network accessline 2696
    - **`@reticlehq/server` — `act_sequence` reports per-step progress on a timeout, and tells a timeout from a refusal.** A sequence that ran out of budget said only that it had, so the steps that DID apply were invisible — and the two cases d
  • Network accessline 2698
    - **`@reticlehq/core` — a finding carries a fingerprint, so the same defect can be recognised across sessions.** Thanks [@DevChiniwala](https://github.com/DevChiniwala). (#358)
  • Network accessline 2700
    - **A docs-site gate — a post-deploy check for broken pages, including `.md` variants and `/llms.txt`.** Nothing in this repo could see docs.reticle.sh, where an unquoted colon in a `description` frontmatter silently 404s a page. Thanks [@D
  • Network accessline 2702
    - **A real-world fixture and e2e gate for the response-ignored detector.** The detector was covered only by fixtures too easy to exercise it; this drives it against a server-backed write. Thanks [@Maqbool61](https://github.com/Maqbool61). (
  • Network accessline 2704
    - **`@reticlehq/server` — an absence assertion that could not see where the element would be is `unknown`, not a pass.** A passing absence check over a region Reticle cannot observe — virtualized-unmounted rows, or a cross-origin iframe the
  • Network accessline 2754
    - **`@reticlehq/server` — `flow_verify { parallel: N }` wrote no verification-run artifact at all.** The sequential path persists a run under `.reticle/runs/`; the parallel path built its verdict and returned without ever calling the same p
  • Network accessline 2788
    - **`@reticlehq/server` — `init` told a Preact app the opposite of what the docs say.** The unverified-library note is one sentence shared by every non-React library, and for Vue and Svelte it is right: React component identity is what you 
  • Network accessline 2798
    Found by running `init --dry-run` against a real Electron + Vue + Pinia app ([#121](https://github.com/reticlehq/reticle/issues/121)) that nobody had ever pointed the installer at.
  • Network accessline 2814
    - **`@reticlehq/server` — a request the proxy had already answered was posted to the next session, and the client got two replies for it.** Reported by [@DevChiniwala](https://github.com/DevChiniwala) in [#300](https://github.com/reticlehq/
  • Network accessline 2838
    - **`@reticlehq/electron` — three different capture failures were one silence.** The main process answered a bare `null` whether the window had no composited frame yet, the requesting webContents had gone, or anything at all threw, so the t
  • Network accessline 2840
    - **`@reticlehq/browser` — the page diagnosed the daemon, which it cannot see.** When the SDK's websocket never opened it asked "Is the Reticle daemon running on that port?", and that was reported firing while the daemon was up and serving 
  • Network accessline 2844
    - **`reticle_capabilities` is advertised, so an agent can start oriented instead of exploring.** One call returns the app's whole testable surface, its testids, signals, stores and named flows, and `{ fromDisk: true }` returns the same from
  • Network accessline 2846
    - **`@reticlehq/server` — a lease held by an app that names its own session was reaped mid-flow despite constant activity.** The pool keys leases by the id it navigated with and extends them on every tool call, which is what makes a lease a
  • Network accessline 2868
    - **`@reticlehq/server` — `learned.routes` was declared, serialized and read, and nothing ever wrote it.** Every session rediscovered the same app map from scratch, and whatever a crawl learned died with the daemon that produced it. Routes 
  • Network accessline 2870
    - **`@reticlehq/browser` — `reticle_inspect` could not say whether an element scrolls.** It returned geometry, styles, accessibility properties, the component stack and the source line, and nothing about scrolling, so an agent verifying a s
  • Network accessline 2872
    - **`@reticlehq/server` — `reticle_record { action: "stop" }` returned a timeline large enough to truncate the verdict.** A single click could produce hundreds of events, and the response carried every one of them, so the part an agent actu
  • Network accessline 2874
    - **`@reticlehq/server` — a pooled lease expired without ever saying when.** An agent driving a long verification pass had no way to know how much time it had, so a lease could die mid-assertion and take the measurement with it, and the fir
  • Network accessline 2882
    - **`@reticlehq/server` — a refused tool call diagnosed itself, told the agent, and told us nothing.** When a tool cannot do what was asked, the reason is computed and returned and then discarded, so the largest group of users we have (atta
  • Network accessline 2888
    - **`@reticlehq/server` — a defect with no owner and a defect nobody classified were the same row.** [#122](https://github.com/reticlehq/reticle/issues/122) reported `bug_found` attribution as mostly absent; by the time it was picked up, at
  • Network accessline 2912
    - **`@reticlehq/server` — Nuxt gets a recipe that can work, instead of React and a guard that cannot fire.** Nuxt has no `vite.config` to patch and serves no `index.html` to inject into, so it fell through to `html` — and was then handed `@

CODE_OF_CONDUCT.md

  • Network accessline 37
    This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, available at <https://www.contributor-covenant.org/version/2/1/code_of_conduct.html>.

CONTRIBUTING.md

  • Network accessline 5
    This guide covers how to set up the repo, the rules we hold the line on, and how to land a change. We aim to make contributing pleasant — if anything here is unclear, ask in [Discord](https://discord.gg/BwAbzv9ZRz) or open an issue.
  • Network accessline 7
    **Looking for something to work on?** [`good first issue`](https://github.com/reticlehq/reticle/labels/good%20first%20issue) is scoped, reviewed, and has a pointer to the file to start in. [`help wanted`](https://github.com/reticlehq/reticl
  • Network accessline 15
    - **Node.js `>=22.15`** (see `engines` in the root `package.json`). - **pnpm `10.x`** — the repo pins `pnpm@10.33.2` via `packageManager`. The easiest way to get the right version is [Corepack](https://nodejs.org/api/corepack.html):
  • Network accessline 16
    - **pnpm `10.x`** — the repo pins `pnpm@10.33.2` via `packageManager`. The easiest way to get the right version is [Corepack](https://nodejs.org/api/corepack.html):
  • Network accessline 22
    This is a single git repo — a **pnpm + [turbo](https://turbo.build/) monorepo**. Install everything from the root, and install the pre-commit hook while you are there:
  • Network accessline 49
    - **Three minutes, highest value:** submit an MCP-client compatibility record. Most rows in [`docs/matrix/MATRIX.md`](docs/matrix/MATRIX.md) are `◐` — meaning `init` writes a runnable entry and _nobody has ever run that client_. See [`docs/
  • Network accessline 50
    - **An afternoon:** [`good first issue`](https://github.com/reticlehq/reticle/labels/good%20first%20issue) — scoped, reviewed, with a pointer to the file to start in.
  • Network accessline 74
    pnpm install                 # once, from the repo root pnpm --filter @reticlehq/bench-app dev   # http://localhost:4312
  • Network accessline 75
    pnpm --filter @reticlehq/bench-app dev   # http://localhost:4312
  • Network accessline 86
    **A commit has no sign-off.** CI's [Developer Certificate of Origin](https://developercertificate.org) check needs a `Signed-off-by:` line on every commit. Use `git commit -s`. To fix commits that you already made:

MIGRATION.md

  • Access to secretsline 21
    [Credential-related source omitted]
  • Network accessline 241
    - `npx @reticlehq/server doctor` — one command, checks the whole setup - `reticle_tools` — prints the live tool surface and every old name's new home - [Open an issue](https://github.com/ReticleHQ/reticle/issues)
  • Network accessline 243
    - [Open an issue](https://github.com/ReticleHQ/reticle/issues)

README.md

  • Network accessline 14
    <a href="https://discord.gg/BwAbzv9ZRz"><img src="https://dcbadge.limes.pink/api/server/BwAbzv9ZRz?style=for-the-badge" alt="Join the Reticle community on Discord" height="36" /></a>
  • Network accessline 20
    [![npm](https://img.shields.io/npm/v/@reticlehq/server?color=8b7bff&labelColor=15131f&logo=npm)](https://www.npmjs.com/package/@reticlehq/server) [![downloads](https://img.shields.io/npm/dm/@reticlehq/core?color=5fd9f5&labelColor=15131f)](h
  • Network accessline 22
    [The problem](#the-problem) · [Demo](#demo) · [What Reticle does](#what-reticle-does) · [**Install**](#install) · [Use it](#use-it) · [Community](#community) · [vs Playwright](#why-not-playwright) · [Benchmarks](#benchmarks) · [Safe to inst
  • Network accessline 24
    [⭐ Star the repo](https://github.com/reticlehq/reticle/stargazers) · [Good first issues](https://github.com/reticlehq/reticle/labels/good%20first%20issue) · [Contribute](CONTRIBUTING.md)
  • Network accessline 51
    <!-- An animated image, because GitHub strips iframes and no embedded player can autoplay here. Mux      serves at most 10 seconds as a GIF; the link opens the full video. --> <a href="https://player.mux.com/ap7hnnu4j36BRV6wEcop1NZVpJTjVSed
  • Network accessline 52
    serves at most 10 seconds as a GIF; the link opens the full video. --> <a href="https://player.mux.com/ap7hnnu4j36BRV6wEcop1NZVpJTjVSedxpW1AaXdD3I?metadata-video-title=reticle%27s+demo+&video-title=reticle%27s+demo+">   <img src="https://im
  • Network accessline 53
    <a href="https://player.mux.com/ap7hnnu4j36BRV6wEcop1NZVpJTjVSedxpW1AaXdD3I?metadata-video-title=reticle%27s+demo+&video-title=reticle%27s+demo+">
  • Network accessline 54
    <img src="https://image.mux.com/ap7hnnu4j36BRV6wEcop1NZVpJTjVSedxpW1AaXdD3I/animated.gif?start=2&end=12&width=640&fps=15" width="640"
  • Network accessline 74
    - **A HUD in your page** to watch the agent work: every action, every verdict, the flows it saved, and notes you pin for it. - **Works with your agent**: Claude Code, Cursor, Codex, Windsurf, VS Code, Gemini CLI and anything else that speak
  • Network accessline 76
    - **Safe to leave installed.** Production builds do not include the SDK, unless you opt in to [production mode](https://docs.reticle.sh/production-mode). The bridge listens only on `127.0.0.1`. Nothing from your app leaves your machine unle
  • Network accessline 87
    - **Signed builds from CI.** GitHub Actions publishes every `@reticlehq/*` package with npm's SLSA provenance. Check: `npm view @reticlehq/server dist.attestations`, or `npm audit signatures` after install. - **No install scripts.** No pack
  • Network accessline 89
    - **Scored by OpenSSF.** [OpenSSF Scorecard](https://securityscorecards.dev/viewer/?uri=github.com/reticlehq/reticle) rates the repo's security practices (signed releases, fuzzing, least-privilege CI tokens, a [security policy](SECURITY.md)
  • Access to secretsline 104
    [Credential-related source omitted]
  • Network accessline 118
    **You need:** Node 20.11+ (no Node? `brew install node` or [nodejs.org](https://nodejs.org)) and a web app you run locally with a dev server. For step 2, a coding agent that speaks MCP. The [frameworks page](docs/frameworks.mdx) lists what 
  • Network accessline 120
    > **Full guide:** [docs.reticle.sh/quickstart](https://docs.reticle.sh/quickstart) walks through the same steps and shows real output at each one. [Agent install](https://docs.reticle.sh/install-agentic) and [manual install](https://docs.re
  • Network accessline 132
    Starting your dev server: npm run dev Reticle is checking http://localhost:58473/. It installs nothing in your app.
  • Network accessline 133
    Reticle is checking http://localhost:58473/. It installs nothing in your app.
  • Network accessline 134
    ✗ Console error on /broken: Uncaught Error: status page broke   ✗ Failed request on /broken: GET http://localhost:58473/api/missing: HTTP 404   - 1 of 2 link(s) opened with no fault.
  • Network accessline 135
    ✗ Failed request on /broken: GET http://localhost:58473/api/missing: HTTP 404
  • Network accessline 137
    verified: no — 2 fault(s) on http://localhost:58473/
  • Network accessline 212
    The store registration is the most valuable line. It lets the agent verify what the app **believes**, not only what it rendered. You do not need it on day one, because Reticle already reads the DOM, network and console. Start with the store
  • Network accessline 247
    "verdict": {     "pass": true,     "evidence": { "method": "POST", "url": "http://localhost:5173/api/signup", "status": 201 },
  • Network accessline 248
    "pass": true,     "evidence": { "method": "POST", "url": "http://localhost:5173/api/signup", "status": 201 },   },
  • Network accessline 249
    "evidence": { "method": "POST", "url": "http://localhost:5173/api/signup", "status": 201 },
  • Network accessline 257
    npx @reticlehq/server verify http://localhost:5173 --expect '{"kind":"element","query":{"role":"heading","name":"Welcome"},"state":"visible"}'
  • Dangerous shell operationline 269
    curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh | sh
  • Network accessline 269
    curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh | sh
  • Network accessline 275
    irm https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.ps1 | iex
  • Network accessline 321
    It opens your browser to sign in or create a free account. Then it links this folder to that project on [app.reticle.sh](https://app.reticle.sh) and sends the runs already on your machine. If the app is not wired yet, it wires it first.
  • Network accessline 341
    These steps make the same setup as the installer and `reticle init`, and show exactly what goes where. Full reference: [Manual install](https://docs.reticle.sh/install-manual).
  • Access to secretsline 429
    [Credential-related source omitted]
  • Network accessline 455
    _Anything else:_ use `reticle init`. It wires plain HTML, Angular, Remix, Astro, SvelteKit, Nuxt and more. It also gets the **pairing token** to the page without writing it into anything you ship. Without that token, the local bridge refuse
  • Network accessline 482
    Still stuck? `reticle feedback "what happened"` reaches us directly and prints exactly what it sends. Or ask in [Discord](https://discord.gg/BwAbzv9ZRz).
  • Network accessline 510
    1. Start your dev server as usual (`npm run dev` or whatever your app uses). 2. `reticle open` shows the app. It uses a tab that is already connected, or opens a new one. 3. Ask your agent to verify something. Saved flows run again with no 
  • Network accessline 512
    3. Ask your agent to verify something. Saved flows run again with no AI model: `reticle verify http://localhost:5173`.
  • Access to secretsline 546
    [Credential-related source omitted]
  • Network accessline 556
    <a href="https://discord.gg/BwAbzv9ZRz"><img src="https://dcbadge.limes.pink/api/server/BwAbzv9ZRz?style=for-the-badge" alt="Join the Reticle community on Discord" height="36" /></a>
  • Network accessline 562
    - **[💬 Discord](https://discord.gg/BwAbzv9ZRz)** is the center. Find what we build, which tasks are open, design decisions before they land, and help when you are stuck.
  • Network accessline 563
    - **Contribute.** Start with a [good first issue](https://github.com/reticlehq/reticle/labels/good%20first%20issue) or [help wanted](https://github.com/reticlehq/reticle/labels/help%20wanted), and read [CONTRIBUTING.md](CONTRIBUTING.md). In
  • Network accessline 564
    - **Ideas and questions:** [GitHub Discussions](https://github.com/reticlehq/reticle/discussions). **Bugs:** [issues](https://github.com/reticlehq/reticle/issues), or `reticle feedback "what happened"` from your terminal.
  • Network accessline 565
    - **Talk to us:** stuck on setup, or want to discuss your use case? [Book a call with the founders](https://calendar.app.google/h9NRDbBBQetyTzWM6).
  • Network accessline 566
    - **CI and pipelines:** Using Reticle in CI or in a pipeline? Talk to a founder: [book a call](https://calendar.app.google/h9NRDbBBQetyTzWM6) or write to [hey@reticle.sh](mailto:hey@reticle.sh).
  • Network accessline 571
    <p align="center">   <a href="https://github.com/reticlehq/reticle/graphs/contributors"><img src="https://contrib.rocks/image?repo=reticlehq/reticle" alt="Contributors" /></a>
  • Network accessline 572
    <a href="https://github.com/reticlehq/reticle/graphs/contributors"><img src="https://contrib.rocks/image?repo=reticlehq/reticle" alt="Contributors" /></a>
  • Network accessline 575
    <p align="center">   <a href="https://star-history.com/#reticlehq/reticle&Date"><img src="https://api.star-history.com/svg?repos=reticlehq/reticle&type=Date" alt="Star history" width="600" /></a>
  • Network accessline 576
    <a href="https://star-history.com/#reticlehq/reticle&Date"><img src="https://api.star-history.com/svg?repos=reticlehq/reticle&type=Date" alt="Star history" width="600" /></a>
  • Network accessline 579
    **If Reticle catches a bug for you, [⭐ star the repo](https://github.com/reticlehq/reticle/stargazers).** Stars are the main way other developers find it.
  • Network accessline 624
    [docs.reticle.sh/use-cases](https://docs.reticle.sh/use-cases) shows each one, with what it verifies and a call you can run.
  • Network accessline 768
    **[app.reticle.sh](https://app.reticle.sh) is the dashboard.** Run `reticle connect` in your app and sign in. Everything your machine verified then syncs automatically, whichever agent drove:
  • Network accessline 779
    **[docs.reticle.sh](https://docs.reticle.sh)** — a page per tool, a page per command, every example captured from a real run.
  • Network accessline 781
    [Quickstart](https://docs.reticle.sh/quickstart) · [Frameworks](https://docs.reticle.sh/frameworks) · [Troubleshooting](https://docs.reticle.sh/troubleshooting) · [Architecture](docs/architecture.md) · [Contributing](CONTRIBUTING.md)

RELEASING.md

  • Network accessline 11
    [SemVer](https://semver.org), where the public surface is: the MCP tool names and their input/output shapes, the wire contract in `@reticlehq/core`, the exported API of each package, the `reticle` CLI flags, and the on-disk flow/journal for
  • Dangerous shell operationline 58
    pnpm gate:install-sandbox                       #    ~10 min, Docker: the published curl|sh installer on clean

ROADMAP.md

  • Network accessline 5
    Each item below has a **tracking issue** labelled `roadmap`: that's where the design gets argued and where you say "I'll take this". Anything unclaimed is genuinely up for grabs — comment before you start so two people don't build it twice.
  • Network accessline 49
    Until both are answered, treat this section as a direction rather than a commitment. The platform research, including the parts that contradict the first draft of this table, is on [#325](https://github.com/reticlehq/reticle/issues/325).

SKILL.md

  • Instruction override signalline 44
    **Done means a verdict.** `init` exiting 0, the tools appearing, a session listed: each proves wiring, not that anything works. Do not tell the user Reticle is set up until one real flow in their app returned a verdict.
  • Network accessline 48
    > Reticle is free and open source. If this check helped, a star on GitHub helps other developers find it: https://github.com/reticlehq/reticle
  • Network accessline 50
    > Tell the maintainers what you build: Discord https://discord.gg/BwAbzv9ZRz, a call https://calendar.app.google/h9NRDbBBQetyTzWM6, or `npx @reticlehq/server feedback --contact you@example.com "..."`.
  • Network accessline 129
    When the user asked for setup, everything else (running `init`, starting the dev server, opening the browser) is a setup step, not a decision. When `init` cannot finish alone, read `docs/skill-setup.md`, which ships beside this file (`https
  • Network accessline 177
    Fetch one page, not this file again. Every page is plain markdown at `https://docs.reticle.sh/<page>.md`; `https://docs.reticle.sh/llms.txt` lists them all. Do not fetch `llms-full.txt`: it is the whole site.

action/README.md

  • Access to secretsline 22
    [Credential-related source omitted]
  • Network accessline 37
    - uses: reticlehq/reticle/action@v3.9.0         with:           url: https://preview.example.com
  • Network accessline 38
    [Credential-related source omitted]
  • Network accessline 39
    url: https://preview.example.com
  • Access to secretsline 40
    [Credential-related source omitted]
  • Network accessline 52
    | `project` | no | empty | The project id. The action uses it to pull the suite when the repository has no `.reticle/flows` | | `node-version` | no | `20` | The Node.js version Reticle runs on | | `cloud-url` | no | `https://app.reticle.sh`
  • Network accessline 54
    | `cloud-url` | no | `https://app.reticle.sh` | The platform. Change it only for a self-hosted platform |
  • Network accessline 65
    [Credential-related source omitted]
  • Access to secretsline 65
    [Credential-related source omitted]
  • Network accessline 87
    The app has to run the Reticle SDK for `verify` to connect. For a preview that is not on `localhost`, see [deploy checks](https://docs.reticle.sh/deploy-checks).

action/action.yml

  • Network accessline 29
    description: The Reticle platform. Change it only for a self-hosted platform.     required: false     default: 'https://app.reticle.sh'
  • Network accessline 31
    default: 'https://app.reticle.sh'
  • Access to secretsline 55
    [Credential-related source omitted]

action/ci-check.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 26
    const PAYMENT_REQUIRED = 402; const VERDICT_NO = 'no'; const DEFAULT_CLOUD = 'https://app.reticle.sh';
  • Network accessline 27
    const VERDICT_NO = 'no'; const DEFAULT_CLOUD = 'https://app.reticle.sh'; const DEFAULT_BIN = ['npx', '-y', '@reticlehq/server@latest'];
  • Network accessline 28
    const DEFAULT_CLOUD = 'https://app.reticle.sh';
  • Network accessline 113
    const headers =     secret.length > 0 ? { [BYPASS_HEADER]: secret, [SET_BYPASS_COOKIE_HEADER]: 'true' } : {};   const res = await fetch(url, { headers, redirect: 'manual' });
  • Network accessline 114
    secret.length > 0 ? { [BYPASS_HEADER]: secret, [SET_BYPASS_COOKIE_HEADER]: 'true' } : {};   const res = await fetch(url, { headers, redirect: 'manual' });   if (PROTECTED_STATUSES.has(res.status)) {
  • Network accessline 115
    const res = await fetch(url, { headers, redirect: 'manual' });
  • Network accessline 200
    async function pullSuite(cloud, key, project) {   const query = project.length > 0 ? `?projectId=${encodeURIComponent(project)}` : '';   const res = await fetch(`${cloud}${SUITE_PATH}${query}`, {
  • Network accessline 201
    [Credential-related source omitted]
  • Network accessline 202
    const res = await fetch(`${cloud}${SUITE_PATH}${query}`, {
  • Access to secretsline 219
    [Credential-related source omitted]
  • Access to secretsline 238
    [Credential-related source omitted]
  • Network accessline 262
    const res = await fetch(`${cloud}${CHECKS_PATH}`, {

action/ci-check.test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 20
    const payload = checkPayload({       env: { GITHUB_REPOSITORY: 'acme/shop', GITHUB_SHA: 'abc', GITHUB_REF: 'refs/pull/7/merge' },       url: 'https://preview.example',
  • Network accessline 21
    env: { GITHUB_REPOSITORY: 'acme/shop', GITHUB_SHA: 'abc', GITHUB_REF: 'refs/pull/7/merge' },       url: 'https://preview.example',       results: [{ journey: 'checkout', verdict: 'yes' }],
  • Network accessline 22
    url: 'https://preview.example',
  • Network accessline 29
    pr: 7,       ref: 'refs/pull/7/merge',       url: 'https://preview.example',
  • Network accessline 30
    ref: 'refs/pull/7/merge',       url: 'https://preview.example',       results: [{ journey: 'checkout', verdict: 'yes' }],
  • Network accessline 31
    url: 'https://preview.example',
  • Network accessline 53
    it('fails on a no, and prints where the details are', () => {     expect(       decide({ status: 200, body: { verdict: 'no', detailsUrl: 'https://d' }, resultCount: 2 }),
  • Network accessline 54
    expect(       decide({ status: 200, body: { verdict: 'no', detailsUrl: 'https://d' }, resultCount: 2 }),     ).toEqual({ code: 1, lines: ['Reticle verdict: no', 'Details: https://d'] });
  • Network accessline 55
    decide({ status: 200, body: { verdict: 'no', detailsUrl: 'https://d' }, resultCount: 2 }),
  • Network accessline 56
    ).toEqual({ code: 1, lines: ['Reticle verdict: no', 'Details: https://d'] });
  • Network accessline 104
    deployment_status: {       state: 'success',       target_url: 'https://shop-git-fix-acme.vercel.app',
  • Network accessline 105
    state: 'success',       target_url: 'https://shop-git-fix-acme.vercel.app',       environment_url: 'https://shop-git-fix-acme.vercel.app',
  • Network accessline 106
    target_url: 'https://shop-git-fix-acme.vercel.app',
  • Network accessline 107
    environment_url: 'https://shop-git-fix-acme.vercel.app',
  • Network accessline 112
    deployment_status: {       state: 'success',       target_url: 'https://app.netlify.com/sites/shop/deploys/abc',
  • Network accessline 113
    state: 'success',       target_url: 'https://app.netlify.com/sites/shop/deploys/abc',       environment_url: 'https://deploy-preview-7--shop.netlify.app',
  • Network accessline 114
    target_url: 'https://app.netlify.com/sites/shop/deploys/abc',
  • Network accessline 115
    environment_url: 'https://deploy-preview-7--shop.netlify.app',
  • Network accessline 119
    it('reads the Vercel preview from a successful deployment_status event', () => {     expect(previewUrl({ input: '', event: vercel })).toEqual({       url: 'https://shop-git-fix-acme.vercel.app',
  • Network accessline 120
    expect(previewUrl({ input: '', event: vercel })).toEqual({       url: 'https://shop-git-fix-acme.vercel.app',     });
  • Network accessline 121
    url: 'https://shop-git-fix-acme.vercel.app',
  • Network accessline 125
    it('reads the Netlify preview from environment_url, not from the deploy log', () => {     expect(previewUrl({ input: '', event: netlify })).toEqual({       url: 'https://deploy-preview-7--shop.netlify.app',
  • Network accessline 126
    expect(previewUrl({ input: '', event: netlify })).toEqual({       url: 'https://deploy-preview-7--shop.netlify.app',     });
  • Network accessline 127
    url: 'https://deploy-preview-7--shop.netlify.app',
  • Network accessline 131
    it('uses target_url when the event has no environment_url', () => {     const event = { deployment_status: { state: 'success', target_url: 'https://p.example' } };
  • Network accessline 132
    const event = { deployment_status: { state: 'success', target_url: 'https://p.example' } };
  • Network accessline 133
    expect(previewUrl({ input: '', event })).toEqual({ url: 'https://p.example' });
  • Network accessline 136
    it('skips a deployment that did not succeed, also when a url is typed', () => {     const event = { deployment_status: { state: 'pending', target_url: 'https://p.example' } };
  • Network accessline 137
    const event = { deployment_status: { state: 'pending', target_url: 'https://p.example' } };
  • Network accessline 138
    expect(previewUrl({ input: '', event })).toEqual({ skip: SKIP_NOT_SUCCESS('pending') });     expect(previewUrl({ input: 'https://typed.example', event })).toEqual({       skip: SKIP_NOT_SUCCESS('pending'),
  • Network accessline 139
    expect(previewUrl({ input: 'https://typed.example', event })).toEqual({
  • Network accessline 144
    it('lets the url input win over the event', () => {     expect(previewUrl({ input: 'https://typed.example', event: vercel })).toEqual({
  • Network accessline 145
    expect(previewUrl({ input: 'https://typed.example', event: vercel })).toEqual({
  • Network accessline 146
    url: 'https://typed.example',
  • Network accessline 189
    const port = typeof address === 'object' && address !== null ? address.port : 0;   return {     url: `http://127.0.0.1:${port}/`,
  • Network accessline 190
    return {     url: `http://127.0.0.1:${port}/`,     close: () => new Promise((done) => server.close(done)),
  • Network accessline 191
    url: `http://127.0.0.1:${port}/`,
  • Access to secretsline 227
    [Credential-related source omitted]
  • Network accessline 228
    const page = await fetch(preview.url, {

adapters/build/babel-plugin/LICENSE

  • Network accessline 2
    Apache License                            Version 2.0, January 2004                         http://www.apache.org/licenses/
  • Network accessline 4
    http://www.apache.org/licenses/
  • Network accessline 196
    http://www.apache.org/licenses/LICENSE-2.0

adapters/build/babel-plugin/README.md

  • Network accessline 3
    Stamps `data-reticle-source="file:line:col"` on JSX host elements so [`@reticlehq/react`](https://www.npmjs.com/package/@reticlehq/react) can map a DOM node back to its **source file** — needed on React 19, which removed `_debugSource`. Dev

adapters/build/babel-plugin/package.json

  • Executable scriptline 1
    Executable file
  • Network accessline 8
    "repository": {     "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",
  • Network accessline 9
    "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",     "directory": "adapters/build/babel-plugin"
  • Network accessline 10
    "url": "git+https://github.com/reticlehq/reticle.git",
  • Network accessline 11
    "directory": "adapters/build/babel-plugin"   },   "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 12
    },   "homepage": "https://github.com/reticlehq/reticle#readme",   "bugs": "https://github.com/reticlehq/reticle/issues",
  • Network accessline 13
    "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 14
    "bugs": "https://github.com/reticlehq/reticle/issues",

adapters/build/babel-plugin/src/dom-tags.ts

  • Executable scriptline 1
    Executable file

adapters/build/babel-plugin/src/ignore.test.ts

  • Executable scriptline 1
    Executable file

adapters/build/babel-plugin/src/ignore.ts

  • Executable scriptline 1
    Executable file

adapters/build/babel-plugin/src/index.test.ts

  • Executable scriptline 1
    Executable file

adapters/build/babel-plugin/src/index.ts

  • Executable scriptline 1
    Executable file

adapters/build/next/LICENSE

  • Network accessline 2
    Apache License                            Version 2.0, January 2004                         http://www.apache.org/licenses/
  • Network accessline 4
    http://www.apache.org/licenses/
  • Network accessline 196
    http://www.apache.org/licenses/LICENSE-2.0

adapters/build/next/README.md

  • Network accessline 3
    Next.js helper for [Reticle](https://github.com/reticlehq/reticle). Gives you **source-file mapping on Next.js without disabling SWC**.
  • Network accessline 23
    `withReticle` is a **no-op in production** (`NODE_ENV=production`) — it only adds the loader in dev. Component identity (the component stack) works with or without it via [`@reticlehq/react`](https://www.npmjs.com/package/@reticlehq/react);

adapters/build/next/index.cjs

  • Executable scriptline 1
    Executable file
  • Network accessline 276
    if (!Number.isInteger(port) || port <= 0 || port > MAX_TCP_PORT) return () => {};   const file = path.join(home, `${DEV_SERVER_PREFIX}${String(port)}${DEV_SERVER_SUFFIX}`);   const url = env[DEV_PROXY_URL_ENV] || env[NEXT_ORIGIN_ENV] || `ht
  • Network accessline 277
    const file = path.join(home, `${DEV_SERVER_PREFIX}${String(port)}${DEV_SERVER_SUFFIX}`);   const url = env[DEV_PROXY_URL_ENV] || env[NEXT_ORIGIN_ENV] || `http://localhost:${String(port)}/`;   const sdkVersion = sdkPackageVersion();
  • Network accessline 278
    const url = env[DEV_PROXY_URL_ENV] || env[NEXT_ORIGIN_ENV] || `http://localhost:${String(port)}/`;
  • Access to secretsline 594
    [Credential-related source omitted]

adapters/build/next/index.d.ts

  • Executable scriptline 1
    Executable file

adapters/build/next/index.test.mjs

  • Executable scriptline 1
    Executable file
  • Access to secretsline 457
    [Credential-related source omitted]
  • Access to secretsline 458
    [Credential-related source omitted]
  • Network accessline 621
    const root = temp('reticle-next-app-');     const withdraw = announceDevServer(       { PORT: '3001', PORTLESS_URL: 'http://feat-x.app.localhost:1355' },
  • Network accessline 622
    const withdraw = announceDevServer(       { PORT: '3001', PORTLESS_URL: 'http://feat-x.app.localhost:1355' },       root,
  • Network accessline 623
    { PORT: '3001', PORTLESS_URL: 'http://feat-x.app.localhost:1355' },
  • Network accessline 632
    pid: process.pid,       root,       url: 'http://feat-x.app.localhost:1355',
  • Network accessline 633
    root,       url: 'http://feat-x.app.localhost:1355',       projectId: 'web-1a2b',
  • Network accessline 634
    url: 'http://feat-x.app.localhost:1355',

adapters/build/next/loader.cjs

  • Executable scriptline 1
    Executable file

adapters/build/next/loader.d.ts

  • Executable scriptline 1
    Executable file

adapters/build/next/loader.test.mjs

  • Executable scriptline 1
    Executable file

adapters/build/next/package.json

  • Executable scriptline 1
    Executable file
  • Network accessline 7
    "repository": {     "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",
  • Network accessline 8
    "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",     "directory": "adapters/build/next"
  • Network accessline 9
    "url": "git+https://github.com/reticlehq/reticle.git",
  • Network accessline 10
    "directory": "adapters/build/next"   },   "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 11
    },   "homepage": "https://github.com/reticlehq/reticle#readme",   "keywords": [
  • Network accessline 12
    "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 54
    "node": ">=20.0.0"   },   "bugs": "https://github.com/reticlehq/reticle/issues"
  • Network accessline 55
    },   "bugs": "https://github.com/reticlehq/reticle/issues" }
  • Network accessline 56
    "bugs": "https://github.com/reticlehq/reticle/issues"

adapters/build/vite/LICENSE

  • Network accessline 2
    Apache License                            Version 2.0, January 2004                         http://www.apache.org/licenses/
  • Network accessline 4
    http://www.apache.org/licenses/
  • Network accessline 196
    http://www.apache.org/licenses/LICENSE-2.0

adapters/build/vite/README.md

  • Network accessline 3
    One-line Vite integration for [Reticle](https://github.com/reticlehq/reticle). The plugin does the whole dev-time wiring for you:
  • Network accessline 5
    - **Source mapping**: stamps `data-reticle-source="file:line:col"` on JSX host elements (via [`@reticlehq/babel-plugin`](https://www.npmjs.com/package/@reticlehq/babel-plugin)) so `reticle_look { action: "element" }` can report the componen

adapters/build/vite/package.json

  • Executable scriptline 1
    Executable file
  • Network accessline 8
    "repository": {     "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",
  • Network accessline 9
    "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",     "directory": "adapters/build/vite"
  • Network accessline 10
    "url": "git+https://github.com/reticlehq/reticle.git",
  • Network accessline 11
    "directory": "adapters/build/vite"   },   "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 12
    },   "homepage": "https://github.com/reticlehq/reticle#readme",   "bugs": "https://github.com/reticlehq/reticle/issues",
  • Network accessline 13
    "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 14
    "bugs": "https://github.com/reticlehq/reticle/issues",

adapters/build/vite/scripts/build-cjs.mjs

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/announce.integration.test.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/announce.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 22
    pid: 42,   root: '/repo/apps/web',   url: 'http://localhost:5173/',
  • Network accessline 23
    root: '/repo/apps/web',   url: 'http://localhost:5173/',   sdkVersion: '2.13.0',
  • Network accessline 24
    url: 'http://localhost:5173/',
  • Network accessline 82
    describe('announcedUrl', () => {   it('is the URL Vite reports, by default', () => {     expect(announcedUrl({}, 'http://localhost:5173/', 5173)).toBe('http://localhost:5173/');
  • Network accessline 83
    it('is the URL Vite reports, by default', () => {     expect(announcedUrl({}, 'http://localhost:5173/', 5173)).toBe('http://localhost:5173/');   });
  • Network accessline 84
    expect(announcedUrl({}, 'http://localhost:5173/', 5173)).toBe('http://localhost:5173/');
  • Network accessline 89
    expect(       announcedUrl(         { PORTLESS_URL: 'https://feat-x.app.localhost' },
  • Network accessline 90
    announcedUrl(         { PORTLESS_URL: 'https://feat-x.app.localhost' },         'http://localhost:4123/',
  • Network accessline 91
    { PORTLESS_URL: 'https://feat-x.app.localhost' },
  • Network accessline 92
    'http://localhost:4123/',
  • Network accessline 93
    4123,       ),     ).toBe('https://feat-x.app.localhost');
  • Network accessline 94
    ),     ).toBe('https://feat-x.app.localhost');   });
  • Network accessline 95
    ).toBe('https://feat-x.app.localhost');
  • Network accessline 98
    it('is composed from the port when Vite reports none', () => {     expect(announcedUrl({}, undefined, 5173)).toBe('http://localhost:5173/');
  • Network accessline 99
    expect(announcedUrl({}, undefined, 5173)).toBe('http://localhost:5173/');

adapters/build/vite/src/announce.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 86
    const proxied = env[DEV_PROXY_URL_ENV];   if (proxied !== undefined && proxied.length > 0) return proxied;   return reported ?? `http://localhost:${String(port)}/`;
  • Network accessline 87
    if (proxied !== undefined && proxied.length > 0) return proxied;   return reported ?? `http://localhost:${String(port)}/`; }
  • Network accessline 88
    return reported ?? `http://localhost:${String(port)}/`;

adapters/build/vite/src/build.integration.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 296
    expect(await (await fetch(url)).text()).not.toContain('tok_');
  • Network accessline 301
    expect(await (await fetch(url)).text()).toContain('tok_written_later');

adapters/build/vite/src/cjs-deps-resolvable.test.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/cjs-loadable.test.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/connect-args.testid.test.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/connect-args.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/connect-module-stability.test.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/connect-url-respects-base.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 28
    expect(connectModuleUrl('https://cdn.example.com/assets/')).toBe(RETICLE_CONNECT_MODULE);

adapters/build/vite/src/define-warning.integration.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 176
    const base = server.resolvedUrls?.local[0] ?? '';       if (base.length > 0) {         await fetch(`${base.replace(/\/$/, '')}/src/main.js`).catch(() => undefined);
  • Network accessline 178
    await fetch(`${base.replace(/\/$/, '')}/src/main.js`).catch(() => undefined);

adapters/build/vite/src/disabled-browser-stub.test.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/disabled-browser-stub.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/discover-port.test.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/discover-port.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/hot-update-wiring.test.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/index.test.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/index.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 138
    'or a reticle-dev module appearing and disappearing) is not settling, and that can make the page ' +   'reload repeatedly. Reticle will keep serving the newest version. Please report this at ' +   'https://github.com/ReticleHQ/reticle/issue
  • Network accessline 139
    'reload repeatedly. Reticle will keep serving the newest version. Please report this at ' +   'https://github.com/ReticleHQ/reticle/issues with your vite.config and whether more than one ' +   'daemon is running (`npx @reticlehq/server stat
  • Network accessline 140
    'https://github.com/ReticleHQ/reticle/issues with your vite.config and whether more than one ' +

adapters/build/vite/src/injection-postcondition.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/installed.test.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/installed.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/orphan-modules.test.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/plugin-name.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/project-id.test.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/project-id.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/source-edit-freshness.integration.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 85
    async function get(base: string, path: string): Promise<string> {   const res = await fetch(`${base}${path}`);
  • Network accessline 86
    const res = await fetch(`${base}${path}`);
  • Network accessline 131
    const port = 'object' === typeof bound && null !== bound ? bound.port : undefined;   if (port === undefined) throw new Error('dev server did not bind');   return { server, base: `http://127.0.0.1:${String(port)}` };
  • Network accessline 132
    if (port === undefined) throw new Error('dev server did not bind');   return { server, base: `http://127.0.0.1:${String(port)}` }; }
  • Network accessline 133
    return { server, base: `http://127.0.0.1:${String(port)}` };

adapters/build/vite/src/stamping.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/state-home.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/svelte-source.test.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/svelte-source.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/test-files-are-not-stamped.test.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/token/ensure-token.test.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/token/ensure-token.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/token/missing-token.test.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/token/missing-token.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/turbo-cache.test.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/vite-types-assignable.test.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/vitest-browser.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/vitest-no-inject.test.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/src/watch-ignore.ts

  • Executable scriptline 1
    Executable file

adapters/build/vite/turbo.json

  • Network accessline 1
    {   "$schema": "https://turbo.build/schema.json",
  • Network accessline 2
    "$schema": "https://turbo.build/schema.json",

adapters/build/vite/vitest.config.ts

  • Executable scriptline 1
    Executable file

adapters/framework/react/LICENSE

  • Network accessline 2
    Apache License                            Version 2.0, January 2004                         http://www.apache.org/licenses/
  • Network accessline 4
    http://www.apache.org/licenses/
  • Network accessline 196
    http://www.apache.org/licenses/LICENSE-2.0

adapters/framework/react/README.md

  • Network accessline 3
    React adapter for [Reticle](https://github.com/reticlehq/reticle). Walks the React fiber tree so `reticle_look { action: "element" }` can map a DOM element back to its **component stack and source file** — the bridge from "the agent sees a 
  • Network accessline 14
    Requires [`@reticlehq/browser`](https://www.npmjs.com/package/@reticlehq/browser).
  • Network accessline 16
    **Source-file mapping:** on React ≤18, uses dev `_debugSource` automatically. On **React 19** (`_debugSource` removed), add [`@reticlehq/babel-plugin`](https://www.npmjs.com/package/@reticlehq/babel-plugin) to your dev build — the adapter t
  • Network accessline 18
    See the [main README](https://github.com/reticlehq/reticle). Apache-2.0.

adapters/framework/react/package.json

  • Executable scriptline 1
    Executable file
  • Network accessline 43
    "repository": {     "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",
  • Network accessline 44
    "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",     "directory": "adapters/framework/react"
  • Network accessline 45
    "url": "git+https://github.com/reticlehq/reticle.git",
  • Network accessline 46
    "directory": "adapters/framework/react"   },   "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 47
    },   "homepage": "https://github.com/reticlehq/reticle#readme",   "bugs": "https://github.com/reticlehq/reticle/issues",
  • Network accessline 48
    "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 49
    "bugs": "https://github.com/reticlehq/reticle/issues",

adapters/framework/react/src/actions-controlled.test.ts

  • Executable scriptline 1
    Executable file

adapters/framework/react/src/auto-stores.live.test.ts

  • Executable scriptline 1
    Executable file

adapters/framework/react/src/auto-stores.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 145
    [Credential-related source omitted]

adapters/framework/react/src/auto-stores.ts

  • Executable scriptline 1
    Executable file

adapters/framework/react/src/cdp-reader.test.ts

  • Executable scriptline 1
    Executable file

adapters/framework/react/src/cdp-reader.ts

  • Executable scriptline 1
    Executable file

adapters/framework/react/src/commit-aggregator.test.ts

  • Executable scriptline 1
    Executable file

adapters/framework/react/src/commit-aggregator.ts

  • Executable scriptline 1
    Executable file

adapters/framework/react/src/drag-select.test.ts

  • Executable scriptline 1
    Executable file

adapters/framework/react/src/error-boundary.test.ts

  • Executable scriptline 1
    Executable file

adapters/framework/react/src/error-boundary.ts

  • Executable scriptline 1
    Executable file

adapters/framework/react/src/hydration-error.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 18
    expect(       isHydrationMismatch(         new Error('Minified React error #418; visit https://react.dev/errors/418'),
  • Network accessline 19
    isHydrationMismatch(         new Error('Minified React error #418; visit https://react.dev/errors/418'),       ),
  • Network accessline 20
    new Error('Minified React error #418; visit https://react.dev/errors/418'),

adapters/framework/react/src/hydration-error.ts

  • Executable scriptline 1
    Executable file

adapters/framework/react/src/hydration.test.ts

  • Executable scriptline 1
    Executable file

adapters/framework/react/src/hydration.ts

  • Executable scriptline 1
    Executable file

adapters/framework/react/src/index.test.ts

  • Executable scriptline 1
    Executable file

adapters/framework/react/src/index.ts

  • Executable scriptline 1
    Executable file

adapters/framework/react/src/install-options.test.ts

  • Executable scriptline 1
    Executable file

adapters/framework/react/src/instrumentation-gap-guidance.test.ts

  • Executable scriptline 1
    Executable file

adapters/framework/react/src/orphan-modules.test.ts

  • Executable scriptline 1
    Executable file

adapters/framework/react/src/relative-to-root.test.ts

  • Executable scriptline 1
    Executable file

adapters/framework/react/src/render-meter.test.ts

  • Executable scriptline 1
    Executable file

adapters/framework/react/src/render-meter.ts

  • Executable scriptline 1
    Executable file

adapters/framework/react/src/source-seam.test.ts

  • Executable scriptline 1
    Executable file

adapters/framework/react/src/store.test.ts

  • Executable scriptline 1
    Executable file

adapters/framework/react/src/store.ts

  • Executable scriptline 1
    Executable file

adapters/framework/react/vitest.config.ts

  • Executable scriptline 1
    Executable file

adapters/lint/eslint/LICENSE

  • Network accessline 2
    Apache License                            Version 2.0, January 2004                         http://www.apache.org/licenses/
  • Network accessline 4
    http://www.apache.org/licenses/
  • Network accessline 196
    http://www.apache.org/licenses/LICENSE-2.0

adapters/lint/eslint/package.json

  • Executable scriptline 1
    Executable file
  • Network accessline 32
    "repository": {     "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",
  • Network accessline 33
    "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",     "directory": "adapters/lint/eslint"
  • Network accessline 34
    "url": "git+https://github.com/reticlehq/reticle.git",
  • Network accessline 35
    "directory": "adapters/lint/eslint"   },   "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 36
    },   "homepage": "https://github.com/reticlehq/reticle#readme",   "bugs": "https://github.com/reticlehq/reticle/issues",
  • Network accessline 37
    "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 38
    "bugs": "https://github.com/reticlehq/reticle/issues",

adapters/lint/eslint/src/constants.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 25
    export const DOCS_URL_ROOT =   'https://github.com/reticlehq/reticle/blob/main/adapters/lint/eslint/README.md';
  • Network accessline 26
    'https://github.com/reticlehq/reticle/blob/main/adapters/lint/eslint/README.md';

adapters/lint/eslint/src/index.ts

  • Executable scriptline 1
    Executable file

adapters/lint/eslint/src/no-internal-tags.test.ts

  • Executable scriptline 1
    Executable file

adapters/lint/eslint/src/no-internal-tags.ts

  • Executable scriptline 1
    Executable file

adapters/lint/eslint/src/no-runaway-comment.test.ts

  • Executable scriptline 1
    Executable file

adapters/lint/eslint/src/no-runaway-comment.ts

  • Executable scriptline 1
    Executable file

adapters/lint/eslint/src/options.ts

  • Executable scriptline 1
    Executable file

adapters/lint/eslint/src/orphan-modules.test.ts

  • Executable scriptline 1
    Executable file

adapters/lint/eslint/src/require-signal-on-mutation.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 204
    describe('the rule documentation link', () => {   it('names a file that exists in the repository', () => {     const prefix = 'https://github.com/reticlehq/reticle/blob/main/';
  • Network accessline 205
    it('names a file that exists in the repository', () => {     const prefix = 'https://github.com/reticlehq/reticle/blob/main/';     expect(DOCS_URL_ROOT.startsWith(prefix)).toBe(true);
  • Network accessline 206
    const prefix = 'https://github.com/reticlehq/reticle/blob/main/';

adapters/lint/eslint/src/require-signal-on-mutation.ts

  • Executable scriptline 1
    Executable file

adapters/lint/eslint/src/unlinted-dirs.test.ts

  • Executable scriptline 1
    Executable file

adapters/lint/eslint/vitest.config.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/LICENSE

  • Network accessline 2
    Apache License                            Version 2.0, January 2004                         http://www.apache.org/licenses/
  • Network accessline 4
    http://www.apache.org/licenses/
  • Network accessline 196
    http://www.apache.org/licenses/LICENSE-2.0

adapters/realm/browser/NOTICE

  • Network accessline 10
    Copyright (c) Tailwind Labs, Inc. Licensed under the MIT License. https://github.com/tailwindlabs/heroicons
  • Network accessline 12
    https://github.com/tailwindlabs/heroicons

adapters/realm/browser/README.md

  • Network accessline 3
    Browser SDK for [Reticle](https://github.com/reticlehq/reticle) — the proof layer for AI agents, embedded in your running web app. Embed it (dev only); it instruments the DOM, network, routes, console, animations, and scroll, and answers th
  • Network accessline 17
    Pair with [`@reticlehq/server`](https://www.npmjs.com/package/@reticlehq/server) (the bridge + MCP server) and optionally [`@reticlehq/react`](https://www.npmjs.com/package/@reticlehq/react) for component/source mapping. See the [main READM

adapters/realm/browser/package.json

  • Executable scriptline 1
    Executable file
  • Network accessline 53
    "repository": {     "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",
  • Network accessline 54
    "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",     "directory": "adapters/realm/browser"
  • Network accessline 55
    "url": "git+https://github.com/reticlehq/reticle.git",
  • Network accessline 56
    "directory": "adapters/realm/browser"   },   "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 57
    },   "homepage": "https://github.com/reticlehq/reticle#readme",   "bugs": "https://github.com/reticlehq/reticle/issues",
  • Network accessline 58
    "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 59
    "bugs": "https://github.com/reticlehq/reticle/issues",

adapters/realm/browser/scripts/bundle-inject.mjs

  • Executable scriptline 1
    Executable file

adapters/realm/browser/scripts/embed-heroicons.mjs

  • Network accessline 1
    /**  * Bundles Heroicons outline SVG bodies (MIT) into a TS module for inline HUD icons.  * @see https://heroicons.com
  • Executable scriptline 1
    Executable file
  • Network accessline 2
    * Bundles Heroicons outline SVG bodies (MIT) into a TS module for inline HUD icons.  * @see https://heroicons.com  */
  • Network accessline 3
    * @see https://heroicons.com
  • Network accessline 99
    /** Heroicons outline - MIT, https://heroicons.com */

adapters/realm/browser/src/actions/action-report.canvases.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/action-report.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions-dom.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions-press.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.auto-anchor.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.check.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.click-input.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.click.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.component-position.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.danger-context.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 233
    it('still blocks a link to a payment provider, and a Pay button', async () => {     document.body.innerHTML =       '<a id="s" href="https://checkout.stripe.com/c/pay/xyz">Continue</a>' +
  • Network accessline 234
    document.body.innerHTML =       '<a id="s" href="https://checkout.stripe.com/c/pay/xyz">Continue</a>' +       '<button id="b">Pay now</button>';
  • Network accessline 235
    '<a id="s" href="https://checkout.stripe.com/c/pay/xyz">Continue</a>' +
  • Network accessline 287
    '<input id="n" autocomplete="cc-number"><input id="c" name="cvc" inputmode="numeric">' +       '<input id="e" name="email" autocomplete="email">' +       '<a id="l" href="https://checkout.stripe.com/c/pay/cs_1">Continue</a>';
  • Network accessline 288
    '<input id="e" name="email" autocomplete="email">' +       '<a id="l" href="https://checkout.stripe.com/c/pay/cs_1">Continue</a>';     setOutwardPolicy([]);
  • Network accessline 289
    '<a id="l" href="https://checkout.stripe.com/c/pay/cs_1">Continue</a>';

adapters/realm/browser/src/actions/actions.drag-boundary.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.drag-geometry.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.drag-target.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.effect.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.event-view.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.fill-autofill.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.gestures.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.hover-leave.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.hud-churn.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.interactions.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.leaving.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.pointer-events.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.press-code.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.press-defaults.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.press-escape-dialog.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.press-key.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.press-keypress.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.press-modifiers.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.reach.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.scroll-instant.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.select-combobox.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.settle-bound.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.settle-causality.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/actions.ts

  • Executable scriptline 1
    Executable file
  • Possible obfuscationline 666
    const bin = atob(rawContent);

adapters/realm/browser/src/actions/actions.within.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/adversarial.check.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/appeared-text.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/appeared-text.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/check-state.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/click-target.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/danger-context.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/scroll.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/scroll.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/select-combobox.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/synthetic/synthetic-input.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/actions/value-input.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/activate.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 17
    const ORIGIN = 'https://app.example.com';
  • Network accessline 109
    [       'another origin',       payload({ origin: 'https://evil.example.com' }),
  • Network accessline 110
    'another origin',       payload({ origin: 'https://evil.example.com' }),       undefined,
  • Network accessline 111
    payload({ origin: 'https://evil.example.com' }),

adapters/realm/browser/src/activate.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/busy.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/busy.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/commands/animations-target.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/commands/commands.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 28
    describe('command registry (driven by the bridge)', () => {   it('allows relative/http(s) navigation and rejects executable protocols', () => {     expect(resolveNavigationUrl('/next', 'https://app.example/current')).toBe(
  • Network accessline 29
    it('allows relative/http(s) navigation and rejects executable protocols', () => {     expect(resolveNavigationUrl('/next', 'https://app.example/current')).toBe(       'https://app.example/next',
  • Network accessline 30
    expect(resolveNavigationUrl('/next', 'https://app.example/current')).toBe(
  • Network accessline 31
    'https://app.example/next',
  • Network accessline 32
    );     expect(resolveNavigationUrl('https://safe.example/path', 'https://app.example/')).toBe(       'https://safe.example/path',
  • Network accessline 33
    expect(resolveNavigationUrl('https://safe.example/path', 'https://app.example/')).toBe(
  • Network accessline 34
    'https://safe.example/path',
  • Network accessline 35
    );     expect(resolveNavigationUrl('javascript:globalThis.pwned=true', 'https://app.example/')).toBe(       null,
  • Network accessline 36
    expect(resolveNavigationUrl('javascript:globalThis.pwned=true', 'https://app.example/')).toBe(
  • Network accessline 37
    null,     );     expect(resolveNavigationUrl('data:text/html,boom', 'https://app.example/')).toBe(null);
  • Network accessline 38
    );     expect(resolveNavigationUrl('data:text/html,boom', 'https://app.example/')).toBe(null);   });
  • Network accessline 39
    expect(resolveNavigationUrl('data:text/html,boom', 'https://app.example/')).toBe(null);

adapters/realm/browser/src/commands/commands.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/commands/commands.upload-inspect.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/commands/inspect-catches-the-ancestor.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/commands/inspect-reveals.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/commands/truncation-is-visible.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/connect-options.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/core-boundary.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/directory-reach.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/a11y.security.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/a11y.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 358
    describe('a summary is found by its local name, so XHTML reads the same', () => {   it('keeps a lowercase-tagName summary of a closed details visible', () => {     const doc = document.implementation.createDocument('http://www.w3.org/1999/x
  • Network accessline 359
    it('keeps a lowercase-tagName summary of a closed details visible', () => {     const doc = document.implementation.createDocument('http://www.w3.org/1999/xhtml', 'html');     const body = doc.createElementNS('http://www.w3.org/1999/xhtml',
  • Network accessline 360
    const doc = document.implementation.createDocument('http://www.w3.org/1999/xhtml', 'html');
  • Network accessline 361
    const body = doc.createElementNS('http://www.w3.org/1999/xhtml', 'body');
  • Network accessline 362
    doc.documentElement.append(body);     const details = doc.createElementNS('http://www.w3.org/1999/xhtml', 'details');     const summary = doc.createElementNS('http://www.w3.org/1999/xhtml', 'summary');
  • Network accessline 363
    const details = doc.createElementNS('http://www.w3.org/1999/xhtml', 'details');
  • Network accessline 364
    const summary = doc.createElementNS('http://www.w3.org/1999/xhtml', 'summary');
  • Network accessline 367
    body.append(details);     expect(summary.tagName).toBe('summary');     const label = doc.createElementNS('http://www.w3.org/1999/xhtml', 'span');
  • Network accessline 368
    expect(summary.tagName).toBe('summary');     const label = doc.createElementNS('http://www.w3.org/1999/xhtml', 'span');     summary.append(label);
  • Network accessline 369
    const label = doc.createElementNS('http://www.w3.org/1999/xhtml', 'span');

adapters/realm/browser/src/dom/a11y.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/addressing/auto-anchor.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/addressing/auto-anchor.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/addressing/coverage-markers.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/addressing/coverage-markers.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/addressing/refs.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/addressing/refs.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/addressing/source.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/addressing/source.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/addressing/testid-attr.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/addressing/testid-attribute.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/backface-visibility.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/browser.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/chart.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/chart.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/desktop-capture.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 195
    *  * A user hitting the same thing gets the same silence, which is why this is worth separating even  * with the flake set aside. See https://github.com/reticlehq/reticle/issues/257.
  • Network accessline 196
    * A user hitting the same thing gets the same silence, which is why this is worth separating even  * with the flake set aside. See https://github.com/reticlehq/reticle/issues/257.  */
  • Network accessline 197
    * with the flake set aside. See https://github.com/reticlehq/reticle/issues/257.

adapters/realm/browser/src/dom/desktop-capture.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/dom-ignore.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/dom-ignore.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/in-viewport.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/layout-audit.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/layout-audit.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/occlusion.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/occlusion.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/option-target.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/overlay-hiding-page.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/paint-context.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/paint-context.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/presenter-hatch.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query-finders.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.component-role.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.component-text.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.component.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.count.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.framework-overlay.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.full-text.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.hidden-subtrees.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.image-alt.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.invisible-format.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.name-near-miss-spelling.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.name-near-miss.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.name-parity.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.name-roundtrip.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.nearest-targets.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.observer.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.receives-pointer.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.role-coverage.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.scope-every-match.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.scope-root.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.shown-case.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.split-phrase.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.svg-scope.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.text-beside-child.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.unicode.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.unreadable-text.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/query.visible-text-hint.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/realm.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/realm.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/refs.navigation.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/render-page.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/render-page.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 32
    const LOAD_TIMEOUT_MS = 5_000; const SVG_NS = 'http://www.w3.org/2000/svg';
  • Network accessline 33
    const SVG_NS = 'http://www.w3.org/2000/svg';

adapters/realm/browser/src/dom/scope-roots.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/shadow-registry.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/shadow-registry.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/snapshot-hidden-page.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/snapshot-ids.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/snapshot-own-hud.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/snapshot-own-text.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/snapshot.dead-root.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/snapshot.overlay-stamped-dialog.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/snapshot.pierce.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/snapshot.scope-input.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/snapshot.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/snapshot.unread.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/source.stamps.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/stable-selector.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/text-match.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/theme.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/theme.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/virtualized.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/virtualized.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/visibility-override.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/visibility.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/dom/zero-size-visible.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/edit-epoch.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/edit-epoch.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/first-load-size.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/index.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/animation.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/animation.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/blind-spots.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 28
    describe('isCrossOriginFrame', () => {   it('flags a src-bearing frame whose contentDocument is null (cross-origin)', () => {     expect(isCrossOriginFrame(frame('https://pay.stripe.com', null))).toBe(true);
  • Network accessline 29
    it('flags a src-bearing frame whose contentDocument is null (cross-origin)', () => {     expect(isCrossOriginFrame(frame('https://pay.stripe.com', null))).toBe(true);   });
  • Network accessline 30
    expect(isCrossOriginFrame(frame('https://pay.stripe.com', null))).toBe(true);
  • Network accessline 33
    it('flags a frame that throws on contentDocument access (SecurityError)', () => {     expect(isCrossOriginFrame(frame('https://other.example', null, true))).toBe(true);
  • Network accessline 34
    expect(isCrossOriginFrame(frame('https://other.example', null, true))).toBe(true);
  • Network accessline 119
    document.body.append(iframe);       if (BlindSpotKind.CROSS_ORIGIN_IFRAME === kind) {         iframe.setAttribute('src', 'https://other.example');
  • Network accessline 120
    if (BlindSpotKind.CROSS_ORIGIN_IFRAME === kind) {         iframe.setAttribute('src', 'https://other.example');         Object.defineProperty(iframe, 'contentDocument', { value: null });
  • Network accessline 121
    iframe.setAttribute('src', 'https://other.example');
  • Network accessline 188
    it('counts only the cross-origin frames in a list', () => {     const frames = [       frame('https://pay.stripe.com', null),
  • Network accessline 189
    const frames = [       frame('https://pay.stripe.com', null),       frame('/local.html', {}),
  • Network accessline 190
    frame('https://pay.stripe.com', null),
  • Network accessline 191
    frame('/local.html', {}),       frame('https://widget.other', null, true),     ];
  • Network accessline 192
    frame('https://widget.other', null, true),
  • Network accessline 208
    const foreign = frame('https://pay.stripe.com', null);
  • Network accessline 247
    frames = [frame('https://pay.stripe.com', null)];

adapters/realm/browser/src/observers/blind-spots.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/canvas.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/canvas.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/console.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 117
    const { emit, events } = collect();     teardown = installConsole(emit);     dispatchResourceError('img', 'https://example.test/missing.png');
  • Network accessline 118
    teardown = installConsole(emit);     dispatchResourceError('img', 'https://example.test/missing.png');     const uncaught = events.filter((e) => e.type === EventType.ERROR_UNCAUGHT);
  • Network accessline 119
    dispatchResourceError('img', 'https://example.test/missing.png');
  • Network accessline 126
    const { emit, events } = collect();     teardown = installConsole(emit);     dispatchResourceError('script', 'https://example.test/vendor.js');
  • Network accessline 127
    teardown = installConsole(emit);     dispatchResourceError('script', 'https://example.test/vendor.js');     const message = String(
  • Network accessline 128
    dispatchResourceError('script', 'https://example.test/vendor.js');
  • Network accessline 148
    const { emit, events } = collect();     installConsole(emit)();     dispatchResourceError('img', 'https://example.test/missing.png');
  • Network accessline 149
    installConsole(emit)();     dispatchResourceError('img', 'https://example.test/missing.png');     expect(events.filter((e) => e.type === EventType.ERROR_UNCAUGHT)).toHaveLength(0);
  • Network accessline 150
    dispatchResourceError('img', 'https://example.test/missing.png');
  • Network accessline 171
    new ErrorEvent('error', {           message: 'TypeError: x is undefined',           filename: 'http://localhost/app.js',
  • Network accessline 172
    message: 'TypeError: x is undefined',           filename: 'http://localhost/app.js',           lineno: 7,
  • Network accessline 173
    filename: 'http://localhost/app.js',
  • Network accessline 212
    dispatchViolation('script-src', 'https://cdn.example.test/analytics.js', 'report');
  • Network accessline 223
    dispatchViolation('script-src', 'https://cdn.example.test/analytics.js');
  • Network accessline 230
    expect(String(errors[0]?.data['message'])).toContain('script-src');     expect(errors[0]?.data['kind']).toBe('securitypolicyviolation');     expect(errors[0]?.data['source']).toBe('https://cdn.example.test/analytics.js');
  • Network accessline 231
    expect(errors[0]?.data['kind']).toBe('securitypolicyviolation');     expect(errors[0]?.data['source']).toBe('https://cdn.example.test/analytics.js');   });
  • Network accessline 232
    expect(errors[0]?.data['source']).toBe('https://cdn.example.test/analytics.js');
  • Network accessline 252
    dispatchViolation('img-src', 'https://example.test/pixel.gif');

adapters/realm/browser/src/observers/console.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/context-open.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 38
    teardown = installContextOpen(emit);     const returned = window.open('https://accounts.example.test/auth', '_blank');
  • Network accessline 39
    const returned = window.open('https://accounts.example.test/auth', '_blank');
  • Network accessline 41
    expect(events).toHaveLength(1);     expect(events[0]?.type).toBe(EventType.CONTEXT_OPENED);     expect(events[0]?.data['href']).toBe('https://accounts.example.test/auth');
  • Network accessline 42
    expect(events[0]?.type).toBe(EventType.CONTEXT_OPENED);     expect(events[0]?.data['href']).toBe('https://accounts.example.test/auth');   });
  • Network accessline 43
    expect(events[0]?.data['href']).toBe('https://accounts.example.test/auth');

adapters/realm/browser/src/observers/context-open.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/departure.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 22
    const HERE = 'http://localhost:5173/dashboard';
  • Network accessline 66
    it('names the provider the app handed the browser to', async () => {     const [event] = await clickAnchor({       href: 'https://accounts.google.com/o/oauth2/v2/auth?client_id=abc&scope=email',
  • Network accessline 67
    const [event] = await clickAnchor({       href: 'https://accounts.google.com/o/oauth2/v2/auth?client_id=abc&scope=email',     });
  • Network accessline 68
    href: 'https://accounts.google.com/o/oauth2/v2/auth?client_id=abc&scope=email',
  • Network accessline 78
    it('records an intention, never an outcome', async () => {     const [event] = await clickAnchor({ href: 'https://accounts.google.com/o/oauth2/v2/auth' });
  • Network accessline 79
    const [event] = await clickAnchor({ href: 'https://accounts.google.com/o/oauth2/v2/auth' });
  • Network accessline 86
    it('finds the anchor through the markup a real link wraps', async () => {     document.body.innerHTML =       '<a href="https://accounts.google.com/o"><span id="in">Sign in</span></a>';
  • Network accessline 87
    document.body.innerHTML =       '<a href="https://accounts.google.com/o"><span id="in">Sign in</span></a>';     document
  • Network accessline 88
    '<a href="https://accounts.google.com/o"><span id="in">Sign in</span></a>';
  • Network accessline 95
    it('records a click no handler cancelled, however late the handler runs', async () => {     document.body.innerHTML = '<a href="https://accounts.google.com/o">Sign in</a>';
  • Network accessline 96
    document.body.innerHTML = '<a href="https://accounts.google.com/o">Sign in</a>';
  • Network accessline 167
    it('stops recording after teardown', async () => {     teardown();     expect(await clickAnchor({ href: 'https://accounts.google.com/o' })).toHaveLength(0);
  • Network accessline 168
    teardown();     expect(await clickAnchor({ href: 'https://accounts.google.com/o' })).toHaveLength(0);   });
  • Network accessline 169
    expect(await clickAnchor({ href: 'https://accounts.google.com/o' })).toHaveLength(0);
  • Network accessline 173
    describe('the departure rule itself', () => {   it.each([     ['another origin', 'https://accounts.google.com/o', false, true],
  • Network accessline 174
    it.each([     ['another origin', 'https://accounts.google.com/o', false, true],     ['a different same-origin path', '/settings', false, true],
  • Network accessline 175
    ['another origin', 'https://accounts.google.com/o', false, true],
  • Network accessline 227
    it('records a mount-time location.assign to another origin', async () => {     dispatchNavigate('https://accounts.google.com/o/oauth2/v2/auth?client_id=abc');
  • Network accessline 228
    dispatchNavigate('https://accounts.google.com/o/oauth2/v2/auth?client_id=abc');
  • Network accessline 235
    it('records a same-origin location.assign — the #1256 case', async () => {     dispatchNavigate('http://localhost:5173/login');
  • Network accessline 236
    dispatchNavigate('http://localhost:5173/login');
  • Network accessline 237
    const [event] = await settle();     expect(event?.type).toBe(EventType.NET_PENDING);     expect(event?.data['url']).toBe('http://localhost:5173/login');
  • Network accessline 238
    expect(event?.type).toBe(EventType.NET_PENDING);     expect(event?.data['url']).toBe('http://localhost:5173/login');     expect(event?.data['initiator']).toBe(NetInitiator.NAVIGATION);
  • Network accessline 239
    expect(event?.data['url']).toBe('http://localhost:5173/login');
  • Network accessline 246
    await clickAnchor({ href: 'https://example.com/page' });
  • Network accessline 247
    dispatchNavigate('https://example.com/page');
  • Network accessline 253
    it('says nothing for a same-document transition', async () => {     dispatchNavigate('http://localhost:5173/dashboard#section-2', { sameDocument: true });
  • Network accessline 254
    dispatchNavigate('http://localhost:5173/dashboard#section-2', { sameDocument: true });
  • Network accessline 258
    it('says nothing when the navigation is cancelled', async () => {     dispatchNavigate('http://localhost:5173/login', { cancel: true });
  • Network accessline 259
    dispatchNavigate('http://localhost:5173/login', { cancel: true });
  • Network accessline 266
    it('stops listening for navigations after teardown', async () => {     teardown();     dispatchNavigate('http://localhost:5173/login');
  • Network accessline 267
    teardown();     dispatchNavigate('http://localhost:5173/login');     expect(await settle()).toHaveLength(0);
  • Network accessline 268
    dispatchNavigate('http://localhost:5173/login');

adapters/realm/browser/src/observers/departure.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/dialogs.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/dialogs.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/dom.mount.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/dom.oldvalue.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/dom.own-hud.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/dom.secret.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/dom.text.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/dom.truncation.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/dom.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/download.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/download.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/error-repeats.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 18
    const BOOM: ErrorIdentity = {   message: "Cannot read properties of undefined (reading 'x')",   source: 'https://app.test/src/main.tsx',
  • Network accessline 19
    message: "Cannot read properties of undefined (reading 'x')",   source: 'https://app.test/src/main.tsx',   line: 42,
  • Network accessline 20
    source: 'https://app.test/src/main.tsx',

adapters/realm/browser/src/observers/error-repeats.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/field-settled.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/field.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/field.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/focus.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/focus.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/foreign-wrapper-survives.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/frames.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/frames.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/health.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/health.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/install-all.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/install-all.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/ipc.self-observation.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 55
    const { events, teardown } = observedFetch(okResponse());     try {       await window.fetch(tauriIpcUrl(RETICLE_TAURI_CAPTURE_COMMAND), { method: 'POST' });
  • Network accessline 56
    try {       await window.fetch(tauriIpcUrl(RETICLE_TAURI_CAPTURE_COMMAND), { method: 'POST' });       expect(netEvents(events)).toEqual([]);
  • Network accessline 57
    await window.fetch(tauriIpcUrl(RETICLE_TAURI_CAPTURE_COMMAND), { method: 'POST' });
  • Network accessline 66
    const { teardown } = observedFetch(response);     try {       expect(await window.fetch(tauriIpcUrl(RETICLE_TAURI_CAPTURE_COMMAND))).toBe(response);
  • Network accessline 67
    try {       expect(await window.fetch(tauriIpcUrl(RETICLE_TAURI_CAPTURE_COMMAND))).toBe(response);     } finally {
  • Network accessline 68
    expect(await window.fetch(tauriIpcUrl(RETICLE_TAURI_CAPTURE_COMMAND))).toBe(response);
  • Network accessline 76
    const { events, teardown } = observedFetch(okResponse());     try {       await window.fetch(tauriIpcUrl('archive_todo'), { method: 'POST' });
  • Network accessline 77
    try {       await window.fetch(tauriIpcUrl('archive_todo'), { method: 'POST' });       const completed = events.filter((e) => e.type === EventType.NET_REQUEST);
  • Network accessline 78
    await window.fetch(tauriIpcUrl('archive_todo'), { method: 'POST' });
  • Network accessline 90
    const { events, teardown } = observedFetch(okResponse());     try {       await window.fetch(tauriIpcUrl('archive_todo'), { method: 'POST' });
  • Network accessline 91
    try {       await window.fetch(tauriIpcUrl('archive_todo'), { method: 'POST' });       await window.fetch(tauriIpcUrl('archive_todo'), { method: 'POST' });
  • Network accessline 92
    await window.fetch(tauriIpcUrl('archive_todo'), { method: 'POST' });
  • Network accessline 93
    await window.fetch(tauriIpcUrl('archive_todo'), { method: 'POST' });
  • Network accessline 103
    const { events, teardown } = observedFetch(okResponse());     try {       await window.fetch(tauriIpcUrl(`${RETICLE_TAURI_CAPTURE_COMMAND}_audit`), { method: 'POST' });
  • Network accessline 104
    try {       await window.fetch(tauriIpcUrl(`${RETICLE_TAURI_CAPTURE_COMMAND}_audit`), { method: 'POST' });       expect(events.filter((e) => e.type === EventType.NET_REQUEST)).toHaveLength(1);
  • Network accessline 105
    await window.fetch(tauriIpcUrl(`${RETICLE_TAURI_CAPTURE_COMMAND}_audit`), { method: 'POST' });
  • Network accessline 112
    it('leaves ordinary HTTP alone', () => {     expect(isReticleOwnIpc('https://api.example.com/reticle_capture')).toBe(false);
  • Network accessline 113
    expect(isReticleOwnIpc('https://api.example.com/reticle_capture')).toBe(false);
  • Network accessline 116
    expect(isReticleOwnIpc(`http://ipc.localhost/${RETICLE_TAURI_CAPTURE_COMMAND}`)).toBe(true);

adapters/realm/browser/src/observers/ipc.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 239
    describe('ipcNetOverrides — a Tauri invoke arrives as a fetch to its ipc:// protocol', () => {   it('leaves an ordinary HTTP request alone', () => {     expect(ipcNetOverrides('https://api.example/users', () => null)).toBeUndefined();
  • Network accessline 240
    it('leaves an ordinary HTTP request alone', () => {     expect(ipcNetOverrides('https://api.example/users', () => null)).toBeUndefined();     expect(ipcNetOverrides('/api/users', () => 'error')).toBeUndefined();
  • Network accessline 241
    expect(ipcNetOverrides('https://api.example/users', () => null)).toBeUndefined();
  • Network accessline 273
    /**    * Tauri v2 on Windows (and Android) needs a real http origin, so `invoke` travels to    * `http://ipc.localhost/<command>` rather than the `ipc://` custom scheme. Matching only the
  • Network accessline 274
    * Tauri v2 on Windows (and Android) needs a real http origin, so `invoke` travels to    * `http://ipc.localhost/<command>` rather than the `ipc://` custom scheme. Matching only the    * custom scheme left every Windows command recorded as a
  • Network accessline 275
    * `http://ipc.localhost/<command>` rather than the `ipc://` custom scheme. Matching only the
  • Network accessline 279
    */   it('recognises the Windows/Android http form, so a failed command is not banked as a 200', () => {     expect(ipcNetOverrides('http://ipc.localhost/load_todos', () => 'ok')).toMatchObject({
  • Network accessline 280
    it('recognises the Windows/Android http form, so a failed command is not banked as a 200', () => {     expect(ipcNetOverrides('http://ipc.localhost/load_todos', () => 'ok')).toMatchObject({       url: `${IPC_URL_SCHEME}load_todos`,
  • Network accessline 281
    expect(ipcNetOverrides('http://ipc.localhost/load_todos', () => 'ok')).toMatchObject({
  • Network accessline 284
    ok: true,     });     expect(ipcNetOverrides('http://ipc.localhost/archive_todo', () => 'error')).toMatchObject({
  • Network accessline 285
    });     expect(ipcNetOverrides('http://ipc.localhost/archive_todo', () => 'error')).toMatchObject({       url: `${IPC_URL_SCHEME}archive_todo`,
  • Network accessline 286
    expect(ipcNetOverrides('http://ipc.localhost/archive_todo', () => 'error')).toMatchObject({
  • Network accessline 297
    expect(ipcNetOverrides('http://ipc.localhost.evil.com/archive_todo', () => 'error')).toBe(
  • Network accessline 298
    undefined,     );     expect(ipcNetOverrides('http://notipc.localhost/archive_todo', () => 'error')).toBe(undefined);
  • Network accessline 299
    );     expect(ipcNetOverrides('http://notipc.localhost/archive_todo', () => 'error')).toBe(undefined);   });
  • Network accessline 300
    expect(ipcNetOverrides('http://notipc.localhost/archive_todo', () => 'error')).toBe(undefined);

adapters/realm/browser/src/observers/ipc.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 83
    * silent false green on Windows: macOS/Linux get the custom scheme `ipc://localhost/archive_todo`,  * while Windows (and Android) need a real http origin and get  * `http://ipc.localhost/archive_todo` — the hostname `desktop-doctor` already
  • Network accessline 84
    * while Windows (and Android) need a real http origin and get  * `http://ipc.localhost/archive_todo` — the hostname `desktop-doctor` already tells people to put in  * their CSP. Unmatched, a Windows `invoke` was recorded as an ordinary HTTP
  • Network accessline 85
    * `http://ipc.localhost/archive_todo` — the hostname `desktop-doctor` already tells people to put in

adapters/realm/browser/src/observers/media.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/media.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/navigation.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 62
    const NAV = {   type: 'navigate',   name: 'http://127.0.0.1:8000/openworker/',
  • Network accessline 63
    type: 'navigate',   name: 'http://127.0.0.1:8000/openworker/',   duration: 412.7,
  • Network accessline 64
    name: 'http://127.0.0.1:8000/openworker/',
  • Network accessline 83
    expect(event?.data).toMatchObject({       method: 'GET',       url: 'http://127.0.0.1:8000/openworker/',
  • Network accessline 84
    method: 'GET',       url: 'http://127.0.0.1:8000/openworker/',       status: 200,
  • Network accessline 85
    url: 'http://127.0.0.1:8000/openworker/',
  • Network accessline 132
    ['there is no navigation entry', undefined],     ['the entry carries no url', { type: 'navigate', name: '' }],     ['the entry carries no type', { name: 'http://x/', duration: 1 }],
  • Network accessline 133
    ['the entry carries no url', { type: 'navigate', name: '' }],     ['the entry carries no type', { name: 'http://x/', duration: 1 }],   ])('stays silent when %s', (_label, entry) => {
  • Network accessline 134
    ['the entry carries no type', { name: 'http://x/', duration: 1 }],

adapters/realm/browser/src/observers/navigation.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/net-detail/network-body-cap.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/net-detail/network-body-redaction.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/net-detail/network-body.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/net-detail/network-event-stream.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/net-detail/network-frames.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/net-detail/network-redact.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/net-detail/network-response-body.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/net-detail/network-response-body.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/net-detail/resource-timing.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 14
    /**  * The URL as resource timing names it: absolute. A patched call can name `/api/ping`, and its  * entry names `https://app.test/api/ping`; the two must compare equal.
  • Network accessline 15
    * The URL as resource timing names it: absolute. A patched call can name `/api/ping`, and its  * entry names `https://app.test/api/ping`; the two must compare equal.  */
  • Network accessline 16
    * entry names `https://app.test/api/ping`; the two must compare equal.

adapters/realm/browser/src/observers/network-error-bodies.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 51
    stubFetch(res);   teardowns.push(installNetwork(emit, options));   await fetch('https://app.test/auth/v1/signup', { method: 'POST' });
  • Network accessline 52
    teardowns.push(installNetwork(emit, options));   await fetch('https://app.test/auth/v1/signup', { method: 'POST' });   await flush();
  • Network accessline 53
    await fetch('https://app.test/auth/v1/signup', { method: 'POST' });

adapters/realm/browser/src/observers/network-redact.presigned.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 5
    describe('redactUrl — presigned cloud storage URLs', () => {   const S3_URL =     'https://my-bucket.s3.amazonaws.com/object.pdf' +
  • Network accessline 6
    const S3_URL =     'https://my-bucket.s3.amazonaws.com/object.pdf' +     '?X-Amz-Algorithm=AWS4-HMAC-SHA256' +
  • Network accessline 7
    'https://my-bucket.s3.amazonaws.com/object.pdf' +
  • Network accessline 15
    const GCS_URL =     'https://storage.googleapis.com/my-bucket/object.pdf' +
  • Network accessline 16
    'https://storage.googleapis.com/my-bucket/object.pdf' +
  • Network accessline 52
    it('preserves the URL path and host', () => {     const result = redactUrl(S3_URL);     expect(result).toContain('https://my-bucket.s3.amazonaws.com/object.pdf');
  • Network accessline 53
    const result = redactUrl(S3_URL);     expect(result).toContain('https://my-bucket.s3.amazonaws.com/object.pdf');   });
  • Network accessline 54
    expect(result).toContain('https://my-bucket.s3.amazonaws.com/object.pdf');

adapters/realm/browser/src/observers/network-stream.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/network.body-reason.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 47
    const { emit, events } = collect();   teardowns.push(installNetwork(emit, { captureBodies }));   await fetch('/mcp', { method: 'POST' });
  • Network accessline 48
    teardowns.push(installNetwork(emit, { captureBodies }));   await fetch('/mcp', { method: 'POST' });   await flush();
  • Network accessline 49
    await fetch('/mcp', { method: 'POST' });

adapters/realm/browser/src/observers/network.initiator-frame.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 14
    const stack = (...frames: string[]): string => ['Error', ...frames].join('\n'); const APP = '    at handleSubmit (http://localhost:5173/src/checkout.tsx:42:19)';
  • Network accessline 15
    const APP = '    at handleSubmit (http://localhost:5173/src/checkout.tsx:42:19)';
  • Network accessline 16
    const AXIOS = '    at dispatchXhr (http://localhost:5173/node_modules/axios/lib/adapter.js:12:3)'; const VITE_CHUNK =   '    at fetch (http://localhost:5173/node_modules/.vite/deps/chunk-ABC123.js:1413:26)';
  • Network accessline 17
    const VITE_CHUNK =   '    at fetch (http://localhost:5173/node_modules/.vite/deps/chunk-ABC123.js:1413:26)'; const NAMED_RETICLE =
  • Network accessline 18
    '    at fetch (http://localhost:5173/node_modules/.vite/deps/chunk-ABC123.js:1413:26)';
  • Network accessline 20
    '    at fetch (http://localhost:5173/node_modules/@reticlehq/browser/dist/observers/network.js:88:5)';
  • Network accessline 31
    it('caps a very long frame rather than carrying it whole', () => {     const long = `    at x (http://localhost:5173/src/${'a'.repeat(500)}.tsx:1:1)`;
  • Network accessline 32
    const long = `    at x (http://localhost:5173/src/${'a'.repeat(500)}.tsx:1:1)`;

adapters/realm/browser/src/observers/network.streaming.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 12
    * The observer reads a CLONE of the response so the app's stream stays untouched — but it awaited that  * clone BEFORE returning the response. A clone of a stream only settles when the stream ends, and an  * SSE stream does not end, so `awa
  • Network accessline 13
    * clone BEFORE returning the response. A clone of a stream only settles when the stream ends, and an  * SSE stream does not end, so `await fetch('/api/chat')` never resolved. `text/event-stream` matches  * `text/` in CAPTURABLE_CONTENT, so 
  • Network accessline 14
    * SSE stream does not end, so `await fetch('/api/chat')` never resolved. `text/event-stream` matches
  • Network accessline 84
    const teardown = installNetwork(emit, { captureBodies: true });     teardowns.push(teardown);     await window.fetch('/api/chat');
  • Network accessline 85
    teardowns.push(teardown);     await window.fetch('/api/chat');     stream.write('data: ready\n\n');
  • Network accessline 86
    await window.fetch('/api/chat');
  • Network accessline 101
    const { emit, events } = collect();     teardowns.push(installNetwork(emit, { captureBodies: true }));     const res = await window.fetch('/api/chat');
  • Network accessline 102
    teardowns.push(installNetwork(emit, { captureBodies: true }));     const res = await window.fetch('/api/chat');     expect(res).toBe(stream.res);
  • Network accessline 103
    const res = await window.fetch('/api/chat');
  • Network accessline 133
    const { emit, events } = collect();     teardowns.push(installNetwork(emit, { captureBodies: true }));     const res = await window.fetch('/api/chat');
  • Network accessline 134
    teardowns.push(installNetwork(emit, { captureBodies: true }));     const res = await window.fetch('/api/chat');     stream.write('data: app only\n\n');
  • Network accessline 135
    const res = await window.fetch('/api/chat');
  • Network accessline 148
    const teardown = installNetwork(emit, { captureBodies: true });     teardowns.push(teardown);     const res = await window.fetch('/api/chat');
  • Network accessline 149
    teardowns.push(teardown);     const res = await window.fetch('/api/chat');     teardown();
  • Network accessline 150
    const res = await window.fetch('/api/chat');
  • Network accessline 163
    const { emit, events } = collect();     teardowns.push(installNetwork(emit, { captureBodies: true }));     const res = await window.fetch('/api/chat');
  • Network accessline 164
    teardowns.push(installNetwork(emit, { captureBodies: true }));     const res = await window.fetch('/api/chat');     const appBody = readAppBody(res);
  • Network accessline 165
    const res = await window.fetch('/api/chat');
  • Network accessline 185
    const teardown = installNetwork(emit, { captureBodies: true });     teardowns.push(teardown);     const res = await window.fetch('/api/chat');
  • Network accessline 186
    teardowns.push(teardown);     const res = await window.fetch('/api/chat');     const appBody = readAppBody(res);
  • Network accessline 187
    const res = await window.fetch('/api/chat');
  • Network accessline 207
    const { emit, events } = collect();       teardowns.push(installNetwork(emit));       const res = await window.fetch('/api/chat');
  • Network accessline 208
    teardowns.push(installNetwork(emit));       const res = await window.fetch('/api/chat');       stream.write('data: private\n\n');
  • Network accessline 209
    const res = await window.fetch('/api/chat');
  • Network accessline 271
    await window.fetch('/verify/refresh-token');
  • Network accessline 284
    await window.fetch('/api/chat');
  • Network accessline 301
    const res = await Promise.race([       window.fetch('/api/chat'),
  • Network accessline 302
    window.fetch('/api/chat'),
  • Network accessline 311
    teardowns.push(installNetwork(emit, { captureBodies: true }));     const res = await Promise.race([       window.fetch('/api/completions'),
  • Network accessline 313
    window.fetch('/api/completions'),
  • Network accessline 331
    const { emit, events } = collect();     teardowns.push(installNetwork(emit, { captureBodies: true }));     await window.fetch('/api/thing');
  • Network accessline 332
    teardowns.push(installNetwork(emit, { captureBodies: true }));     await window.fetch('/api/thing');     await flushBody();
  • Network accessline 333
    await window.fetch('/api/thing');
  • Network accessline 379
    const { emit, events } = collect();     teardowns.push(installNetwork(emit, { captureBodies: true }));     await window.fetch('/api/export.csv');
  • Network accessline 380
    teardowns.push(installNetwork(emit, { captureBodies: true }));     await window.fetch('/api/export.csv');     await flushBody();
  • Network accessline 381
    await window.fetch('/api/export.csv');
  • Network accessline 390
    const { emit, events } = collect();     teardowns.push(installNetwork(emit, { captureBodies: true }));     await window.fetch('/api/big.txt');
  • Network accessline 391
    teardowns.push(installNetwork(emit, { captureBodies: true }));     await window.fetch('/api/big.txt');     await flushBody();
  • Network accessline 392
    await window.fetch('/api/big.txt');

adapters/realm/browser/src/observers/network.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 67
    [Credential-related source omitted]
  • Network accessline 68
    [Credential-related source omitted]
  • Network accessline 69
    [Credential-related source omitted]
  • Access to secretsline 69
    [Credential-related source omitted]
  • Network accessline 70
    [Credential-related source omitted]
  • Access to secretsline 70
    [Credential-related source omitted]
  • Access to secretsline 72
    [Credential-related source omitted]
  • Network accessline 75
    it('leaves URLs with no sensitive params byte-for-byte unchanged', () => {     expect(redactUrl('http://api/x?page=2&sort=asc')).toBe('http://api/x?page=2&sort=asc');
  • Network accessline 76
    expect(redactUrl('http://api/x?page=2&sort=asc')).toBe('http://api/x?page=2&sort=asc');
  • Network accessline 77
    expect(redactUrl('http://api/x')).toBe('http://api/x');
  • Network accessline 84
    it('redacts a path-embedded token after a sensitive segment name', () => {     expect(redactUrl('https://app.com/reset/AbC123deadbeef99')).toBe(
  • Network accessline 85
    expect(redactUrl('https://app.com/reset/AbC123deadbeef99')).toBe(
  • Network accessline 86
    'https://app.com/reset/[REDACTED]',
  • Network accessline 110
    });   it('redacts credentials embedded in the URL authority (user:pass@host)', () => {     expect(redactUrl('https://alice:s3cr3t@api.example.com/data')).toBe(
  • Network accessline 111
    it('redacts credentials embedded in the URL authority (user:pass@host)', () => {     expect(redactUrl('https://alice:s3cr3t@api.example.com/data')).toBe(       'https://[REDACTED]@api.example.com/data',
  • Network accessline 112
    expect(redactUrl('https://alice:s3cr3t@api.example.com/data')).toBe(
  • Network accessline 113
    'https://[REDACTED]@api.example.com/data',
  • Network accessline 114
    );     expect(redactUrl('http://plainhost.com/x')).toBe('http://plainhost.com/x');   });
  • Network accessline 115
    expect(redactUrl('http://plainhost.com/x')).toBe('http://plainhost.com/x');
  • Network accessline 119
    const out = redactUrl('https://user:p@ss@api.example.com/data');
  • Network accessline 120
    expect(out).toBe('https://[REDACTED]@api.example.com/data');
  • Network accessline 122
    [Credential-related source omitted]
  • Network accessline 123
    [Credential-related source omitted]
  • Network accessline 124
    [Credential-related source omitted]
  • Access to secretsline 124
    [Credential-related source omitted]
  • Network accessline 125
    [Credential-related source omitted]
  • Access to secretsline 125
    [Credential-related source omitted]
  • Network accessline 126
    [Credential-related source omitted]
  • Network accessline 127
    [Credential-related source omitted]
  • Access to secretsline 127
    [Credential-related source omitted]
  • Network accessline 128
    'ya29SECRETVAL',     );     expect(redactUrl('https://app.com/page#section-two')).toBe('https://app.com/page#section-two');
  • Network accessline 129
    );     expect(redactUrl('https://app.com/page#section-two')).toBe('https://app.com/page#section-two');   });
  • Network accessline 130
    expect(redactUrl('https://app.com/page#section-two')).toBe('https://app.com/page#section-two');
  • Network accessline 132
    it('preserves the query byte-for-byte when only path/userinfo/fragment was redacted', () => {     expect(       redactUrl('https://app.example.com/reset/abcdefghijklmnop?next=/a%20b&sort=name%3Aasc'),
  • Network accessline 133
    expect(       redactUrl('https://app.example.com/reset/abcdefghijklmnop?next=/a%20b&sort=name%3Aasc'),     ).toBe('https://app.example.com/reset/[REDACTED]?next=/a%20b&sort=name%3Aasc');
  • Network accessline 134
    redactUrl('https://app.example.com/reset/abcdefghijklmnop?next=/a%20b&sort=name%3Aasc'),
  • Network accessline 135
    ).toBe('https://app.example.com/reset/[REDACTED]?next=/a%20b&sort=name%3Aasc');
  • Network accessline 136
    expect(redactUrl('https://app.example.com/reset/abcdefghijklmnop?debug')).toBe(
  • Network accessline 137
    'https://app.example.com/reset/[REDACTED]?debug',
  • Network accessline 138
    );     expect(redactUrl('https://alice:s3cr3t@api.example.com/data?page=1&q=hello%20world')).toBe(       'https://[REDACTED]@api.example.com/data?page=1&q=hello%20world',
  • Network accessline 139
    expect(redactUrl('https://alice:s3cr3t@api.example.com/data?page=1&q=hello%20world')).toBe(
  • Network accessline 140
    'https://[REDACTED]@api.example.com/data?page=1&q=hello%20world',
  • Network accessline 141
    [Credential-related source omitted]
  • Network accessline 142
    [Credential-related source omitted]
  • Network accessline 143
    [Credential-related source omitted]
  • Access to secretsline 143
    [Credential-related source omitted]
  • Network accessline 144
    [Credential-related source omitted]
  • Access to secretsline 144
    [Credential-related source omitted]
  • Network accessline 185
    const stack = [       'Error',       '    at fetch (/pkg/@reticlehq/browser/network.ts:5:1)',
  • Network accessline 186
    'Error',       '    at fetch (/pkg/@reticlehq/browser/network.ts:5:1)',       '    at <anonymous>',
  • Network accessline 187
    '    at fetch (/pkg/@reticlehq/browser/network.ts:5:1)',
  • Network accessline 225
    const { emit, events } = collect();     teardown = installNetwork(emit);     const result = navigator.sendBeacon('http://localhost:8787/analytics', 'event=checkout');
  • Network accessline 226
    teardown = installNetwork(emit);     const result = navigator.sendBeacon('http://localhost:8787/analytics', 'event=checkout');     expect(result).toBe(true);
  • Network accessline 227
    const result = navigator.sendBeacon('http://localhost:8787/analytics', 'event=checkout');
  • Network accessline 247
    const { emit, events } = collect();     teardown = installNetwork(emit);     navigator.sendBeacon('http://localhost:8787/analytics');
  • Network accessline 248
    teardown = installNetwork(emit);     navigator.sendBeacon('http://localhost:8787/analytics');     const request = events.find((e) => e.type === EventType.NET_REQUEST);
  • Network accessline 249
    navigator.sendBeacon('http://localhost:8787/analytics');
  • Network accessline 291
    const { emit, events } = collect();     teardown = installNetwork(emit);     await window.fetch('http://localhost:8787/login', { method: 'POST' });
  • Network accessline 292
    teardown = installNetwork(emit);     await window.fetch('http://localhost:8787/login', { method: 'POST' });     const data = eventOf(events, EventType.NET_REQUEST);
  • Network accessline 293
    await window.fetch('http://localhost:8787/login', { method: 'POST' });
  • Network accessline 302
    const { emit, events } = collect();       teardown = installNetwork(emit);       await window.fetch('http://localhost:8787/api/x');
  • Network accessline 303
    teardown = installNetwork(emit);       await window.fetch('http://localhost:8787/api/x');       expect(eventOf(events, EventType.NET_REQUEST)['ok']).toBe(false);
  • Network accessline 304
    await window.fetch('http://localhost:8787/api/x');
  • Network accessline 316
    await window.fetch(raw);
  • Network accessline 333
    const { emit, events } = collect();     teardown = installNetwork(emit, { captureBodies: true });     await window.fetch('http://localhost:8787/api/data', {
  • Network accessline 334
    teardown = installNetwork(emit, { captureBodies: true });     await window.fetch('http://localhost:8787/api/data', {       method: 'POST',
  • Network accessline 335
    await window.fetch('http://localhost:8787/api/data', {
  • Network accessline 353
    const { emit, events } = collect();     teardown = installNetwork(emit, { captureBodies: true });     await window.fetch('http://localhost:8787/login', {
  • Network accessline 354
    teardown = installNetwork(emit, { captureBodies: true });     await window.fetch('http://localhost:8787/login', {       method: 'POST',
  • Network accessline 355
    await window.fetch('http://localhost:8787/login', {
  • Network accessline 370
    const { emit, events } = collect();     teardown = installNetwork(emit, { captureBodies: true });     await window.fetch('http://localhost:8787/docs');
  • Network accessline 371
    teardown = installNetwork(emit, { captureBodies: true });     await window.fetch('http://localhost:8787/docs');     await flushBody();
  • Network accessline 372
    await window.fetch('http://localhost:8787/docs');
  • Network accessline 383
    const { emit, events } = collect();     teardown = installNetwork(emit, { captureBodies: true });     await window.fetch('http://localhost:8787/api/x');
  • Network accessline 384
    teardown = installNetwork(emit, { captureBodies: true });     await window.fetch('http://localhost:8787/api/x');     await flushBody();
  • Network accessline 385
    await window.fetch('http://localhost:8787/api/x');
  • Network accessline 397
    const { emit, events } = collect();     teardown = installNetwork(emit, { captureBodies: true });     await window.fetch('http://localhost:8787/login', {
  • Network accessline 398
    teardown = installNetwork(emit, { captureBodies: true });     await window.fetch('http://localhost:8787/login', {       method: 'POST',
  • Network accessline 399
    await window.fetch('http://localhost:8787/login', {
  • Network accessline 415
    const fd = new FormData();     fd.append('field', 'value');     await window.fetch('http://localhost:8787/upload', { method: 'POST', body: fd });
  • Network accessline 416
    fd.append('field', 'value');     await window.fetch('http://localhost:8787/upload', { method: 'POST', body: fd });     await flushBody();
  • Network accessline 417
    await window.fetch('http://localhost:8787/upload', { method: 'POST', body: fd });
  • Network accessline 427
    const { emit, events } = collect();     teardown = installNetwork(emit, { captureBodies: true });     await window.fetch('http://localhost:8787/echo');
  • Network accessline 428
    teardown = installNetwork(emit, { captureBodies: true });     await window.fetch('http://localhost:8787/echo');     await flushBody();
  • Network accessline 429
    await window.fetch('http://localhost:8787/echo');
  • Network accessline 441
    const { emit, events } = collect();     teardown = installNetwork(emit, { captureBodies: true });     await window.fetch('http://localhost:8787/echo');
  • Network accessline 442
    teardown = installNetwork(emit, { captureBodies: true });     await window.fetch('http://localhost:8787/echo');     await flushBody();
  • Network accessline 443
    await window.fetch('http://localhost:8787/echo');
  • Network accessline 457
    const { emit, events } = collect();     teardown = installNetwork(emit, { captureBodies: true });     await window.fetch('http://localhost:8787/big');
  • Network accessline 458
    teardown = installNetwork(emit, { captureBodies: true });     await window.fetch('http://localhost:8787/big');     await flushBody();
  • Network accessline 459
    await window.fetch('http://localhost:8787/big');
  • Network accessline 470
    const { emit, events } = collect();     teardown = installNetwork(emit);     await window.fetch('http://localhost:8787/api/x');
  • Network accessline 471
    teardown = installNetwork(emit);     await window.fetch('http://localhost:8787/api/x');     await flushBody();
  • Network accessline 472
    await window.fetch('http://localhost:8787/api/x');
  • Network accessline 486
    const { emit, events } = collect();     teardown = installNetwork(emit);     await window.fetch('http://localhost:8787/api/data');
  • Network accessline 487
    teardown = installNetwork(emit);     await window.fetch('http://localhost:8787/api/data');     await flushBody();
  • Network accessline 488
    await window.fetch('http://localhost:8787/api/data');
  • Network accessline 502
    const res = await window.fetch('http://localhost:8787/api/broken/500');
  • Network accessline 512
    expect(net[0]?.data).toMatchObject({       method: 'GET',       url: 'http://localhost:8787/api/broken/500',
  • Network accessline 513
    method: 'GET',       url: 'http://localhost:8787/api/broken/500',       initiator: 'fetch',
  • Network accessline 514
    url: 'http://localhost:8787/api/broken/500',       initiator: 'fetch',     });
  • Network accessline 518
    expect(eventOf(events, EventType.NET_REQUEST)).toMatchObject({       method: 'GET',       url: 'http://localhost:8787/api/broken/500',
  • Network accessline 519
    method: 'GET',       url: 'http://localhost:8787/api/broken/500',       status: 500,
  • Network accessline 520
    url: 'http://localhost:8787/api/broken/500',
  • Network accessline 534
    await window.fetch('http://localhost:8787/api/login', { method: 'POST' });
  • Network accessline 551
    await expect(window.fetch('http://localhost:8787/api/x')).rejects.toBe(boom);
  • Network accessline 566
    void window.fetch('http://localhost:8787/api/broken/timeout');
  • Network accessline 572
    expect(events.filter((e) => e.type !== EventType.BLIND_SPOT)[0]?.data).toMatchObject({       method: 'GET',       url: 'http://localhost:8787/api/broken/timeout',
  • Network accessline 573
    method: 'GET',       url: 'http://localhost:8787/api/broken/timeout',       initiator: 'fetch',
  • Network accessline 574
    url: 'http://localhost:8787/api/broken/timeout',       initiator: 'fetch',     });
  • Network accessline 647
    const { emit, events } = collect();     const teardown = installNetwork(emit, { captureBodies: true });     const es = new window.EventSource('http://localhost:8787/stream') as unknown as FakeEventSource;
  • Network accessline 648
    const teardown = installNetwork(emit, { captureBodies: true });     const es = new window.EventSource('http://localhost:8787/stream') as unknown as FakeEventSource;     es.dispatch('message', { data: '{"tick":1}' });
  • Network accessline 649
    const es = new window.EventSource('http://localhost:8787/stream') as unknown as FakeEventSource;
  • Access to secretsline 758
    [Credential-related source omitted]
  • Access to secretsline 766
    [Credential-related source omitted]
  • Access to secretsline 768
    [Credential-related source omitted]
  • Network accessline 868
    cb({       getEntries: () => [         fakeEntry('link', 'https://app.test/favicon.ico'),
  • Network accessline 869
    getEntries: () => [         fakeEntry('link', 'https://app.test/favicon.ico'),         fakeEntry('link', 'https://app.test/site.webmanifest'),
  • Network accessline 870
    fakeEntry('link', 'https://app.test/favicon.ico'),
  • Network accessline 871
    fakeEntry('link', 'https://app.test/site.webmanifest'),
  • Network accessline 872
    fakeEntry('css', 'https://app.test/app.css'),
  • Network accessline 874
    fakeEntry('fetch', 'https://app.test/api/data'),
  • Network accessline 879
    expect(net.length).toBe(3);     expect(net.map((e) => e.data['url'])).toEqual([       'https://app.test/favicon.ico',
  • Network accessline 880
    expect(net.map((e) => e.data['url'])).toEqual([       'https://app.test/favicon.ico',       'https://app.test/site.webmanifest',
  • Network accessline 881
    'https://app.test/favicon.ico',
  • Network accessline 882
    'https://app.test/site.webmanifest',
  • Network accessline 883
    'https://app.test/app.css',
  • Network accessline 897
    teardown = installNetwork(emit);     const early = {       ...fakeEntry('fetch', 'https://app.test/api/early', 12, 0),
  • Network accessline 898
    const early = {       ...fakeEntry('fetch', 'https://app.test/api/early', 12, 0),       responseStatus: 404,
  • Network accessline 899
    ...fakeEntry('fetch', 'https://app.test/api/early', 12, 0),
  • Network accessline 901
    };     FakePO.instances.at(0)?.callback({       getEntries: () => [early, fakeEntry('xmlhttprequest', 'https://app.test/api/late')],
  • Network accessline 902
    FakePO.instances.at(0)?.callback({       getEntries: () => [early, fakeEntry('xmlhttprequest', 'https://app.test/api/late')],     });
  • Network accessline 903
    getEntries: () => [early, fakeEntry('xmlhttprequest', 'https://app.test/api/late')],
  • Network accessline 905
    const net = events.filter((e) => e.type === EventType.NET_REQUEST);     expect(net.map((e) => [e.data['url'], e.data['status'], e.data['initiator']])).toEqual([       ['https://app.test/api/early', 404, 'fetch'],
  • Network accessline 906
    expect(net.map((e) => [e.data['url'], e.data['status'], e.data['initiator']])).toEqual([       ['https://app.test/api/early', 404, 'fetch'],     ]);
  • Network accessline 907
    ['https://app.test/api/early', 404, 'fetch'],
  • Network accessline 912
    const { emit, events } = collect();     teardown = installNetwork(emit);     const entry = fakeEntry('img', 'https://app.test/hero.png');
  • Network accessline 913
    teardown = installNetwork(emit);     const entry = fakeEntry('img', 'https://app.test/hero.png');     delete (entry as unknown as Record<string, unknown>).responseStatus;
  • Network accessline 914
    const entry = fakeEntry('img', 'https://app.test/hero.png');
  • Network accessline 930
    teardown = installNetwork(emit);     FakePO.instances.at(0)?.callback({       getEntries: () => [fakeEntry('fetch', 'https://app.test/api/ping')],
  • Network accessline 931
    FakePO.instances.at(0)?.callback({       getEntries: () => [fakeEntry('fetch', 'https://app.test/api/ping')],     });
  • Network accessline 932
    getEntries: () => [fakeEntry('fetch', 'https://app.test/api/ping')],
  • Network accessline 935
    const marks = events.filter((e) => e.type === EventType.NET_UNPATCHED);     expect(marks.map((e) => [e.data['url'], e.data['initiator'], e.data['method']])).toEqual([       ['https://app.test/api/ping', 'fetch', undefined],
  • Network accessline 936
    expect(marks.map((e) => [e.data['url'], e.data['initiator'], e.data['method']])).toEqual([       ['https://app.test/api/ping', 'fetch', undefined],     ]);
  • Network accessline 937
    ['https://app.test/api/ping', 'fetch', undefined],
  • Network accessline 954
    const { emit, events } = collect();       teardown = installNetwork(emit);       const pending = window.fetch('/api/ping', { method: 'POST' });
  • Network accessline 955
    teardown = installNetwork(emit);       const pending = window.fetch('/api/ping', { method: 'POST' });       FakePO.instances.at(0)?.callback({
  • Network accessline 956
    const pending = window.fetch('/api/ping', { method: 'POST' });
  • Network accessline 1008
    const { emit, events } = collect();     const stop = installNetwork(emit);     await window.fetch('http://localhost:8787/api/setup', { method: 'POST', body });
  • Network accessline 1009
    const stop = installNetwork(emit);     await window.fetch('http://localhost:8787/api/setup', { method: 'POST', body });     stop();
  • Network accessline 1010
    await window.fetch('http://localhost:8787/api/setup', { method: 'POST', body });
  • Network accessline 1044
    const { emit, events } = collect();     teardown = installNetwork(emit);     await window.fetch('http://localhost:8787/api/setup', { method: 'POST' });
  • Network accessline 1045
    teardown = installNetwork(emit);     await window.fetch('http://localhost:8787/api/setup', { method: 'POST' });     expect(eventOf(events, EventType.NET_REQUEST)[REQUEST_SHAPE_FIELD]).toBe(REQUEST_SHAPE_NONE);
  • Network accessline 1046
    await window.fetch('http://localhost:8787/api/setup', { method: 'POST' });
  • Network accessline 1078
    const { emit, events } = collect();       teardown = installNetwork(emit, { captureBodies: true });       await window.fetch('http://localhost:8787/api/login', {
  • Network accessline 1079
    teardown = installNetwork(emit, { captureBodies: true });       await window.fetch('http://localhost:8787/api/login', {         method: 'POST',
  • Network accessline 1080
    await window.fetch('http://localhost:8787/api/login', {
  • Network accessline 1125
    const { emit, events } = collect();       teardown = installNetwork(emit, { captureBodies: true });       await window.fetch('http://localhost:8787/api/blob', {
  • Network accessline 1126
    teardown = installNetwork(emit, { captureBodies: true });       await window.fetch('http://localhost:8787/api/blob', {         method: 'POST',
  • Network accessline 1127
    await window.fetch('http://localhost:8787/api/blob', {
  • Network accessline 1176
    const { emit, events } = collect();       teardown = installNetwork(emit, { captureBodies: true });       await window.fetch('http://localhost:8787/upload', {
  • Network accessline 1177
    teardown = installNetwork(emit, { captureBodies: true });       await window.fetch('http://localhost:8787/upload', {         method: 'POST',
  • Network accessline 1178
    await window.fetch('http://localhost:8787/upload', {
  • Network accessline 1199
    const { emit, events } = collect();     teardown = installNetwork(emit, { captureBodies: true });     await window.fetch('http://localhost:8787/api/setup', {
  • Network accessline 1200
    teardown = installNetwork(emit, { captureBodies: true });     await window.fetch('http://localhost:8787/api/setup', {       method: 'POST',
  • Network accessline 1201
    await window.fetch('http://localhost:8787/api/setup', {
  • Network accessline 1236
    const form = new FormData();     form.append('name', 'ada');     await window.fetch('http://localhost:8787/page', {
  • Network accessline 1237
    form.append('name', 'ada');     await window.fetch('http://localhost:8787/page', {       method: 'POST',
  • Network accessline 1238
    await window.fetch('http://localhost:8787/page', {
  • Network accessline 1252
    const { emit, events } = collect();     teardown = installNetwork(emit);     await window.fetch('http://localhost:8787/page', {
  • Network accessline 1253
    teardown = installNetwork(emit);     await window.fetch('http://localhost:8787/page', {       method: 'POST',
  • Network accessline 1254
    await window.fetch('http://localhost:8787/page', {
  • Network accessline 1262
    const { emit, events } = collect();     teardown = installNetwork(emit);     const request = new Request('http://localhost:8787/page', {
  • Network accessline 1263
    teardown = installNetwork(emit);     const request = new Request('http://localhost:8787/page', {       method: 'POST',
  • Network accessline 1264
    const request = new Request('http://localhost:8787/page', {
  • Network accessline 1266
    headers: { 'Next-Action': ACTION_ID },     });     await window.fetch(request);
  • Network accessline 1267
    });     await window.fetch(request);     expect(eventOf(events, EventType.NET_REQUEST)[NEXT_ACTION_FIELD]).toBe(ACTION_ID);
  • Network accessline 1268
    await window.fetch(request);
  • Network accessline 1275
    teardown = installNetwork(emit);     await expect(       window.fetch('http://localhost:8787/page', {
  • Network accessline 1276
    await expect(       window.fetch('http://localhost:8787/page', {         method: 'POST',
  • Network accessline 1277
    window.fetch('http://localhost:8787/page', {
  • Network accessline 1288
    const { emit, events } = collect();     teardown = installNetwork(emit);     const request = new Request('http://localhost:8787/page', {
  • Network accessline 1289
    teardown = installNetwork(emit);     const request = new Request('http://localhost:8787/page', {       method: 'POST',
  • Network accessline 1290
    const request = new Request('http://localhost:8787/page', {
  • Network accessline 1292
    headers: { 'Next-Action': ACTION_ID },     });     await window.fetch(request, { headers: { 'X-Other': '1' } });
  • Network accessline 1293
    });     await window.fetch(request, { headers: { 'X-Other': '1' } });     expect(eventOf(events, EventType.NET_REQUEST)).not.toHaveProperty(NEXT_ACTION_FIELD);
  • Network accessline 1294
    await window.fetch(request, { headers: { 'X-Other': '1' } });
  • Network accessline 1299
    const { emit, events } = collect();     teardown = installNetwork(emit);     await window.fetch('http://localhost:8787/api/x', { method: 'POST' });
  • Network accessline 1300
    teardown = installNetwork(emit);     await window.fetch('http://localhost:8787/api/x', { method: 'POST' });     expect(eventOf(events, EventType.NET_REQUEST)).not.toHaveProperty(NEXT_ACTION_FIELD);
  • Network accessline 1301
    await window.fetch('http://localhost:8787/api/x', { method: 'POST' });

adapters/realm/browser/src/observers/network.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/network.wrapper-blindspot.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 133
    await window.fetch('/v1/things', { method: 'POST', body: '{"a":1}' });
  • Network accessline 149
    await window.fetch('/v1/things');

adapters/realm/browser/src/observers/observation-never-throws.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 107
    let returned: unknown;       expect(() => {         returned = window.open('https://accounts.example.test/', '_blank');
  • Network accessline 108
    expect(() => {         returned = window.open('https://accounts.example.test/', '_blank');       }).not.toThrow();
  • Network accessline 109
    returned = window.open('https://accounts.example.test/', '_blank');
  • Network accessline 179
    install(installNetwork(emit));     arm();     await expect(fetch('/api/things')).resolves.toBe(response);
  • Network accessline 180
    arm();     await expect(fetch('/api/things')).resolves.toBe(response);   });
  • Network accessline 181
    await expect(fetch('/api/things')).resolves.toBe(response);
  • Network accessline 243
    install(installNetwork(emit, { captureBodies: true }));     arm();     expect(() => new EventSource('https://api.example.test/stream')).not.toThrow();
  • Network accessline 244
    arm();     expect(() => new EventSource('https://api.example.test/stream')).not.toThrow();   });
  • Network accessline 245
    expect(() => new EventSource('https://api.example.test/stream')).not.toThrow();

adapters/realm/browser/src/observers/perf.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/perf.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/route.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 46
    [Credential-related source omitted]

adapters/realm/browser/src/observers/route.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/scroll.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/scroll.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/sdk-failure.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/sdk-failure.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/state.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/state.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/storage.noop-write.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/storage.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 13
    [Credential-related source omitted]
  • Access to secretsline 17
    [Credential-related source omitted]
  • Access to secretsline 18
    [Credential-related source omitted]

adapters/realm/browser/src/observers/storage.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/observers/storage.write.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 62
    [Credential-related source omitted]
  • Access to secretsline 93
    [Credential-related source omitted]
  • Access to secretsline 102
    [Credential-related source omitted]

adapters/realm/browser/src/observers/types.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/orphan-modules.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/patching/capture-method.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/carousel/carousel.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/carousel/carousel.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/carousel/panel-slides.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 42
    title: 'Five personas <b>at once</b>',         detail: 'Drives every journey',         cta: { label: 'See how', url: 'https://reticle.sh/harness?a=1&b=2' },
  • Network accessline 43
    detail: 'Drives every journey',         cta: { label: 'See how', url: 'https://reticle.sh/harness?a=1&b=2' },       },
  • Network accessline 44
    cta: { label: 'See how', url: 'https://reticle.sh/harness?a=1&b=2' },
  • Network accessline 51
    expect(host.textContent).toContain('Five personas <b>at once</b>');     expect(host.querySelector('a')?.getAttribute('href')).toBe(       'https://reticle.sh/harness?a=1&b=2',
  • Network accessline 52
    expect(host.querySelector('a')?.getAttribute('href')).toBe(       'https://reticle.sh/harness?a=1&b=2',     );
  • Network accessline 53
    'https://reticle.sh/harness?a=1&b=2',
  • Network accessline 58
    const slides = panelSlides([       { id: 'ok', title: 'Fine' },       { id: 'phish', title: 'Bad', cta: { label: 'Go', url: 'https://evil.example/x' } },
  • Network accessline 59
    { id: 'ok', title: 'Fine' },       { id: 'phish', title: 'Bad', cta: { label: 'Go', url: 'https://evil.example/x' } },       'not a notice',
  • Network accessline 60
    { id: 'phish', title: 'Bad', cta: { label: 'Go', url: 'https://evil.example/x' } },
  • Network accessline 104
    describe('the value cards on a platform that is not the hosted one', () => {   it('link to the platform the daemon uses', () => {     const html = panelSlides([], 'http://localhost:18340')
  • Network accessline 105
    it('link to the platform the daemon uses', () => {     const html = panelSlides([], 'http://localhost:18340')       .map((slide) => slide.html)
  • Network accessline 106
    const html = panelSlides([], 'http://localhost:18340')
  • Network accessline 107
    .map((slide) => slide.html)       .join('');     expect(html).toContain('href="http://localhost:18340/settings?group=billing"');
  • Network accessline 108
    .join('');     expect(html).toContain('href="http://localhost:18340/settings?group=billing"');     expect(html).not.toContain('app.reticle.sh');
  • Network accessline 109
    expect(html).toContain('href="http://localhost:18340/settings?group=billing"');

adapters/realm/browser/src/presenter/carousel/panel-slides.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/carousel/talk-card.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/carousel/talk-card.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/chrome/layers.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/chrome/log-kinds.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/chrome/log-memory.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/chrome/log-memory.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/chrome/overlay.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/chrome/presenter-brand.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/chrome/presenter-effects.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/chrome/presenter-hud-chrome.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/chrome/presenter-log-rows.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/chrome/presenter-log.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/chrome/presenter-morph.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/chrome/presenter-morph.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/chrome/presenter-report-copy.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 20
    export const REPORT_LINKS = {   DOCS: 'https://docs.reticle.sh',
  • Network accessline 21
    DOCS: 'https://docs.reticle.sh',
  • Network accessline 22
    SITE: 'https://reticle.sh',
  • Network accessline 23
    GITHUB: 'https://github.com/reticlehq/reticle',
  • Network accessline 24
    DISCORD: 'https://discord.gg/BwAbzv9ZRz',
  • Network accessline 174
    const params = new URLSearchParams({ text, url: REPORT_LINKS.SITE });   if (SHARE_VIA_HANDLE.length > 0) params.set('via', SHARE_VIA_HANDLE);   return `https://twitter.com/intent/tweet?${params.toString()}`;
  • Network accessline 175
    if (SHARE_VIA_HANDLE.length > 0) params.set('via', SHARE_VIA_HANDLE);   return `https://twitter.com/intent/tweet?${params.toString()}`; }
  • Network accessline 176
    return `https://twitter.com/intent/tweet?${params.toString()}`;
  • Network accessline 186
    */ export function buildLinkedInShareUrl(): string {   return `https://www.linkedin.com/sharing/share-offsite/?url=${encodeURIComponent(REPORT_LINKS.SITE)}`;
  • Network accessline 187
    export function buildLinkedInShareUrl(): string {   return `https://www.linkedin.com/sharing/share-offsite/?url=${encodeURIComponent(REPORT_LINKS.SITE)}`; }
  • Network accessline 188
    return `https://www.linkedin.com/sharing/share-offsite/?url=${encodeURIComponent(REPORT_LINKS.SITE)}`;

adapters/realm/browser/src/presenter/chrome/presenter-safe-html.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/chrome/presenter-tally.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/chrome/presenter-tally.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/chrome/presenter-verbs.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/escape-belongs-to-the-app.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/hud-buttons-are-clickable.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/hud-hostile.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 129
    it('still renders http and https, which is what a dashboard actually is', () => {     for (const url of ['https://console.test/issues', 'http://localhost:4321/issues']) {
  • Network accessline 130
    for (const url of ['https://console.test/issues', 'http://localhost:4321/issues']) {
  • Network accessline 136
    it('keeps noopener, so the new tab cannot reach back', () => {     const root = painted([defect()], 'https://console.test/issues');
  • Network accessline 137
    const root = painted([defect()], 'https://console.test/issues');
  • Network accessline 143
    it('escapes a url containing a quote rather than breaking the attribute', () => {     const root = painted([defect()], 'https://console.test/i?x="><img src=x>');
  • Network accessline 144
    const root = painted([defect()], 'https://console.test/i?x="><img src=x>');

adapters/realm/browser/src/presenter/hud-panel-role.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/hud-pointer-pass-through.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/hud-telemetry-pages.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/hud-telemetry.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 29
    */ const CONTROL_SEL = 'button, a[href], [role="switch"], [role="checkbox"]'; const DASHBOARD = 'https://app.reticle.sh/p/demo';
  • Network accessline 31
    const DASHBOARD = 'https://app.reticle.sh/p/demo';

adapters/realm/browser/src/presenter/hud-telemetry.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/icons/presenter-heroicons-data.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 2
    /** Heroicons outline - MIT, https://heroicons.com */

adapters/realm/browser/src/presenter/icons/presenter-icons.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/icons/presenter-icons.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 50
    const SVG_NS = 'http://www.w3.org/2000/svg';

adapters/realm/browser/src/presenter/presenter-account-menu.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 24
    const DASHBOARD = 'https://app.reticle.sh/p/acme';
  • Network accessline 42
    expect(html).toContain('Acme Corp');     const withHost = accountControlHtml(       { ...SIGNED_IN, host: 'https://app.reticle.sh' },
  • Network accessline 43
    const withHost = accountControlHtml(       { ...SIGNED_IN, host: 'https://app.reticle.sh' },       { dashboardUrl: DASHBOARD },
  • Network accessline 44
    { ...SIGNED_IN, host: 'https://app.reticle.sh' },
  • Network accessline 46
    );     expect(withHost).toContain(ACCOUNT_TEXT.HOST_LABEL);     expect(withHost).toContain('https://app.reticle.sh');
  • Network accessline 47
    expect(withHost).toContain(ACCOUNT_TEXT.HOST_LABEL);     expect(withHost).toContain('https://app.reticle.sh');   });
  • Network accessline 48
    expect(withHost).toContain('https://app.reticle.sh');

adapters/realm/browser/src/presenter/presenter-account-push-before-mount.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    const SIGNED_IN: AccountState = { signedIn: true, org: 'Drive Platform Co' }; const DASHBOARD = 'https://app.reticle.sh/p/acme';
  • Network accessline 17
    const DASHBOARD = 'https://app.reticle.sh/p/acme';

adapters/realm/browser/src/presenter/presenter-account-styles.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-account-styles.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-account.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 21
    const DASHBOARD = 'https://app.reticle.sh/p/acme';

adapters/realm/browser/src/presenter/presenter-account.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-agent-link.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-agent-link.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-chat-default.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-chat-views.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 166
    expect(root.querySelector('.reticle-harness-link')?.getAttribute('href')).toBe(       'https://app.reticle.sh/settings?group=billing',
  • Network accessline 167
    'https://app.reticle.sh/settings?group=billing',
  • Network accessline 254
    expect(links(root)).toEqual(['Add a card to start your 14-day trial ↗']);       expect(root.querySelector('.reticle-harness-link')?.getAttribute('href')).toBe(         'https://app.reticle.sh/settings?group=billing',
  • Network accessline 255
    expect(root.querySelector('.reticle-harness-link')?.getAttribute('href')).toBe(         'https://app.reticle.sh/settings?group=billing',       );
  • Network accessline 256
    'https://app.reticle.sh/settings?group=billing',
  • Network accessline 268
    expect(root.textContent).not.toContain('Get more');       expect(root.querySelector('.reticle-harness-link')?.getAttribute('href')).toBe(         'https://app.reticle.sh/settings?group=billing',
  • Network accessline 269
    expect(root.querySelector('.reticle-harness-link')?.getAttribute('href')).toBe(         'https://app.reticle.sh/settings?group=billing',       );
  • Network accessline 270
    'https://app.reticle.sh/settings?group=billing',
  • Network accessline 301
    expect(root.querySelector('.reticle-harness-link')?.getAttribute('href')).toBe(       'https://app.reticle.sh/settings?group=project#model',
  • Network accessline 302
    'https://app.reticle.sh/settings?group=project#model',
  • Network accessline 311
    it('links to the platform the daemon talks to, not always the hosted one', () => {     const { root, views } = mountViews();     views.paintAccount({ signedIn: true, host: 'http://localhost:4100' });
  • Network accessline 312
    const { root, views } = mountViews();     views.paintAccount({ signedIn: true, host: 'http://localhost:4100' });     views.paintHarness({ ...entitled, providerReady: false });
  • Network accessline 313
    views.paintAccount({ signedIn: true, host: 'http://localhost:4100' });
  • Network accessline 314
    views.paintHarness({ ...entitled, providerReady: false });     expect(root.querySelector('.reticle-harness-link')?.getAttribute('href')).toBe(       'http://localhost:4100/settings?group=project#model',
  • Network accessline 315
    expect(root.querySelector('.reticle-harness-link')?.getAttribute('href')).toBe(       'http://localhost:4100/settings?group=project#model',     );
  • Network accessline 316
    'http://localhost:4100/settings?group=project#model',
  • Network accessline 319
    ...entitled,       harnessEntitled: false,       platformUrl: 'https://reticle.internal.test',
  • Network accessline 320
    harnessEntitled: false,       platformUrl: 'https://reticle.internal.test',     });
  • Network accessline 321
    platformUrl: 'https://reticle.internal.test',
  • Network accessline 322
    });     expect(root.querySelector('.reticle-harness-link')?.getAttribute('href')).toBe(       'https://reticle.internal.test/settings?group=billing',
  • Network accessline 323
    expect(root.querySelector('.reticle-harness-link')?.getAttribute('href')).toBe(       'https://reticle.internal.test/settings?group=billing',     );
  • Network accessline 324
    'https://reticle.internal.test/settings?group=billing',
  • Network accessline 333
    it("links plans and set-up to the console the platform names, not the API's origin", () => {     const { root, views } = mountViews();     views.paintAccount({ signedIn: true, host: 'http://localhost:8890' });
  • Network accessline 334
    const { root, views } = mountViews();     views.paintAccount({ signedIn: true, host: 'http://localhost:8890' });     const split = {
  • Network accessline 335
    views.paintAccount({ signedIn: true, host: 'http://localhost:8890' });
  • Network accessline 336
    const split = {       ...entitled,       platformUrl: 'http://localhost:8890',
  • Network accessline 337
    ...entitled,       platformUrl: 'http://localhost:8890',       planUrl: 'http://localhost:4320/settings?group=billing',
  • Network accessline 338
    platformUrl: 'http://localhost:8890',
  • Network accessline 339
    planUrl: 'http://localhost:4320/settings?group=billing',
  • Network accessline 341
    views.paintHarness({ ...split, credits: { used: 10, limit: 10, kind: 'free' } });     expect(root.querySelector('.reticle-harness-link')?.getAttribute('href')).toBe(       'http://localhost:4320/settings?group=billing',
  • Network accessline 342
    expect(root.querySelector('.reticle-harness-link')?.getAttribute('href')).toBe(       'http://localhost:4320/settings?group=billing',     );
  • Network accessline 343
    'http://localhost:4320/settings?group=billing',
  • Network accessline 345
    views.paintHarness({ ...split, providerReady: false });     expect(root.querySelector('.reticle-harness-link')?.getAttribute('href')).toBe(       'http://localhost:4320/settings?group=project#model',
  • Network accessline 346
    expect(root.querySelector('.reticle-harness-link')?.getAttribute('href')).toBe(       'http://localhost:4320/settings?group=project#model',     );
  • Network accessline 347
    'http://localhost:4320/settings?group=project#model',
  • Network accessline 359
    views.paintHarness({ ...entitled, providerReady: false });     expect(root.querySelector('.reticle-harness-link')?.getAttribute('href')).toBe(       'https://app.reticle.sh/settings?group=project&project=acme%20web%2F9f3c#model',
  • Network accessline 360
    expect(root.querySelector('.reticle-harness-link')?.getAttribute('href')).toBe(       'https://app.reticle.sh/settings?group=project&project=acme%20web%2F9f3c#model',     );
  • Network accessline 361
    'https://app.reticle.sh/settings?group=project&project=acme%20web%2F9f3c#model',
  • Network accessline 368
    views.paintHarness({ ...entitled, providerReady: false });     expect(root.querySelector('.reticle-harness-link')?.getAttribute('href')).toBe(       'https://app.reticle.sh/settings?group=project#model',
  • Network accessline 369
    expect(root.querySelector('.reticle-harness-link')?.getAttribute('href')).toBe(       'https://app.reticle.sh/settings?group=project#model',     );
  • Network accessline 370
    'https://app.reticle.sh/settings?group=project#model',
  • Network accessline 576
    });     expect(run?.textContent).toBe('Starting…');     views.paintDrive(undefined, { said: 'Reticle Cloud at http://x did not answer.', seq: 2 });
  • Network accessline 577
    expect(run?.textContent).toBe('Starting…');     views.paintDrive(undefined, { said: 'Reticle Cloud at http://x did not answer.', seq: 2 });     expect(run?.textContent).toBe('Run Harness');
  • Network accessline 578
    views.paintDrive(undefined, { said: 'Reticle Cloud at http://x did not answer.', seq: 2 });
  • Network accessline 580
    expect(run?.disabled).toBe(false);     expect(root.querySelector('[data-reticle-harness-page]')?.textContent).toContain(       'Reticle Cloud at http://x did not answer.',
  • Network accessline 581
    expect(root.querySelector('[data-reticle-harness-page]')?.textContent).toContain(       'Reticle Cloud at http://x did not answer.',     );
  • Network accessline 582
    'Reticle Cloud at http://x did not answer.',

adapters/realm/browser/src/presenter/presenter-chat-views.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-config.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 244
    export const MCP_DOCS_URL: string =   'https://github.com/reticlehq/reticle/blob/main/docs/getting-started.md';
  • Network accessline 245
    'https://github.com/reticlehq/reticle/blob/main/docs/getting-started.md';

adapters/realm/browser/src/presenter/presenter-controls.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-controls.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-dead-exports.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-defect-link.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 39
    const LINKED = 'https://app.reticle.sh/p/acme';
  • Network accessline 87
    it('escapes the url it renders', () => {     const html = reportBodyHtml(scope([DEFECT]), 'https://x.test/"><img src=x>', {
  • Network accessline 88
    const html = reportBodyHtml(scope([DEFECT]), 'https://x.test/"><img src=x>', {

adapters/realm/browser/src/presenter/presenter-design-tokens.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-dock-layout.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-dock-layout.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-drag.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-drag.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-first-load.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-frame.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-glow.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-harness-row.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-harness-snapshot.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 68
    pick: '',     startedAs: undefined,     setupUrl: 'http://localhost:5173/settings',
  • Network accessline 69
    startedAs: undefined,     setupUrl: 'http://localhost:5173/settings',     planUrl: 'http://localhost:5173/settings?group=billing',
  • Network accessline 70
    setupUrl: 'http://localhost:5173/settings',
  • Network accessline 71
    planUrl: 'http://localhost:5173/settings?group=billing',
  • Network accessline 75
    const html = harnessRowHtml({       ...ready,       last: { runUrl: 'http://localhost:5173/runs/harness-1' },
  • Network accessline 76
    ...ready,       last: { runUrl: 'http://localhost:5173/runs/harness-1' },     });
  • Network accessline 77
    last: { runUrl: 'http://localhost:5173/runs/harness-1' },
  • Network accessline 78
    });     expect(html).toContain(HARNESS_ROW_TEXT.RESULT);     expect(html).toContain('href="http://localhost:5173/runs/harness-1"');
  • Network accessline 79
    expect(html).toContain(HARNESS_ROW_TEXT.RESULT);     expect(html).toContain('href="http://localhost:5173/runs/harness-1"');   });
  • Network accessline 80
    expect(html).toContain('href="http://localhost:5173/runs/harness-1"');

adapters/realm/browser/src/presenter/presenter-hud-position.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-idle-passthrough.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-impact-dot.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-lifecycle.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-narrow-viewport.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-nav-and-plan.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-no-composer.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-pace.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-personas.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-plan.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-plan.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-report-account.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 55
    it('says nothing once the repo is linked — there is no next step to offer', () => {     const out = html({ signedIn: true, org: 'Acme' }, 'https://app.reticle.sh/p/x');
  • Network accessline 56
    const out = html({ signedIn: true, org: 'Acme' }, 'https://app.reticle.sh/p/x');

adapters/realm/browser/src/presenter/presenter-report-styles.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-report.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 104
    const html = reportBodyHtml(withVerdicts, 'https://app.reticle.sh/o/acme');
  • Network accessline 142
    expect(buildLinkedInShareUrl()).toBe(       'https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Freticle.sh',
  • Network accessline 143
    'https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Freticle.sh',
  • Network accessline 355
    const html = reportBodyHtml(       scope({ calls: 5, failed: 1 }, [defect()]),       'https://console.test/issues?project=web',
  • Network accessline 356
    scope({ calls: 5, failed: 1 }, [defect()]),       'https://console.test/issues?project=web',     );
  • Network accessline 357
    'https://console.test/issues?project=web',
  • Network accessline 358
    );     expect(html).toContain('https://console.test/issues?project=web');     expect(html).toContain('Manage all of them on the dashboard');
  • Network accessline 359
    expect(html).toContain('https://console.test/issues?project=web');
  • Network accessline 363
    it('counts the rest only when there IS a rest — 3 shown of 3 is not "and more"', () => {     const three = [defect({ title: 'a' }), defect({ title: 'b' }), defect({ title: 'c' })];     const exact = reportBodyHtml(scope({ calls: 9, failed: 
  • Network accessline 364
    const three = [defect({ title: 'a' }), defect({ title: 'b' }), defect({ title: 'c' })];     const exact = reportBodyHtml(scope({ calls: 9, failed: 3 }, three), 'https://console.test/i');     expect(exact).not.toContain('(3)');
  • Network accessline 365
    const exact = reportBodyHtml(scope({ calls: 9, failed: 3 }, three), 'https://console.test/i');
  • Network accessline 366
    expect(exact).not.toContain('(3)');     const more = reportBodyHtml(scope({ calls: 9, failed: 40 }, three), 'https://console.test/i');     expect(more).toContain('(40)');
  • Network accessline 367
    const more = reportBodyHtml(scope({ calls: 9, failed: 40 }, three), 'https://console.test/i');
  • Network accessline 441
    it('renders the link as a real anchor pointing at the dashboard', () => {     const { root, report } = mountPanel();     report.setSnapshot(snapshotWith([{ at: 1, title: 'Sign in' }], 'https://console.test/issues'));
  • Network accessline 442
    const { root, report } = mountPanel();     report.setSnapshot(snapshotWith([{ at: 1, title: 'Sign in' }], 'https://console.test/issues'));     report.open();
  • Network accessline 443
    report.setSnapshot(snapshotWith([{ at: 1, title: 'Sign in' }], 'https://console.test/issues'));
  • Network accessline 444
    report.open();     const link = root.querySelector<HTMLAnchorElement>('.reticle-report-defects-more');     expect(link?.getAttribute('href')).toBe('https://console.test/issues');
  • Network accessline 446
    expect(link?.getAttribute('href')).toBe('https://console.test/issues');
  • Network accessline 467
    it('offers a sync control in the defects section when the project is linked', () => {     const { root, report } = mountPanel();     report.setSnapshot(snapshotWith([{ at: 1, title: 'Sign in' }], 'https://console.test/issues'));
  • Network accessline 468
    const { root, report } = mountPanel();     report.setSnapshot(snapshotWith([{ at: 1, title: 'Sign in' }], 'https://console.test/issues'));     report.open();
  • Network accessline 469
    report.setSnapshot(snapshotWith([{ at: 1, title: 'Sign in' }], 'https://console.test/issues'));
  • Network accessline 480
    const report = new PresenterReport({ onSyncNow: () => (pushed += 1) });     report.mount(root);     report.setSnapshot(snapshotWith([{ at: 1, title: 'Sign in' }], 'https://console.test/issues'));
  • Network accessline 481
    report.mount(root);     report.setSnapshot(snapshotWith([{ at: 1, title: 'Sign in' }], 'https://console.test/issues'));     report.open();
  • Network accessline 482
    report.setSnapshot(snapshotWith([{ at: 1, title: 'Sign in' }], 'https://console.test/issues'));
  • Network accessline 602
    reportBodyHtml(       SCOPE,       'https://app.reticle.sh/projects/x',
  • Network accessline 603
    SCOPE,       'https://app.reticle.sh/projects/x',       { signedIn: true },
  • Network accessline 604
    'https://app.reticle.sh/projects/x',
  • Network accessline 637
    const SCOPE = scope({ calls: 3, verdicts: 2, passed: 2 });   const at = (sync: Record<string, unknown>) =>     reportBodyHtml(SCOPE, 'https://app.reticle.sh/p', { signedIn: true }, 'x', undefined, sync);
  • Network accessline 639
    reportBodyHtml(SCOPE, 'https://app.reticle.sh/p', { signedIn: true }, 'x', undefined, sync);
  • Network accessline 643
    status: 'on-platform',       onPlatform: 1,       runUrl: 'https://app.reticle.sh/runs/r1',
  • Network accessline 644
    onPlatform: 1,       runUrl: 'https://app.reticle.sh/runs/r1',     });
  • Network accessline 645
    runUrl: 'https://app.reticle.sh/runs/r1',
  • Network accessline 646
    });     expect(html).toContain('href="https://app.reticle.sh/runs/r1"');     expect(html).toContain('See it in your dashboard');
  • Network accessline 647
    expect(html).toContain('href="https://app.reticle.sh/runs/r1"');

adapters/realm/browser/src/presenter/presenter-report.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-run-state.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-settings-account.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 13
    const DASHBOARD = 'https://app.reticle.sh/p/acme';

adapters/realm/browser/src/presenter/presenter-settings-styles.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-settings.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-settings.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-shell-minimised.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-shell-styles.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-shell.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-shell.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-styles.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-tooltip-stacking.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-unreachable.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-workspace.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter-workspace.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 91
    [Credential-related source omitted]

adapters/realm/browser/src/presenter/presenter.test-helpers.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/presenter.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/reticle-presenter.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/settings-are-wired.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/toolbar-even-spacing.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/tour/tour-automation.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/tour/tour-never-blocks-a-drive.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/tour/tour-scrim-never-eats-the-app.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/tour/tour-view.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/tour/tour.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/presenter/tour/tour.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/recorder/recorder-styles.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/recorder/recorder.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/recorder/recorder.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/recorder/reticle-recorder.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/registry/adapter-guide.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/registry/auto-testids.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/registry/auto-testids.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/registry/capabilities.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/registry/capabilities.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/registry/commit-and-signal.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/registry/commit-and-signal.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/registry/declared-channels.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/registry/declared-channels.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/registry/declared-platform.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/registry/declared-platform.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/registry/domains.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/registry/domains.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/registry/emitter.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/registry/emitter.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/registry/store-adapters.live.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/registry/store-adapters.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/registry/store-adapters.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/registry/stores.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/registry/stores.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/registry/stores/adapters.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/registry/stores/adapters.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/reticle-presenter-helpers.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/reticle-presenter-helpers.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/reticle-singleton.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/reticle-url-params.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/reticle.build-event.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/reticle.command-mode-classifier.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/reticle.document-identity.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/reticle.edit-epoch.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/reticle.late-project-id.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/reticle.lease-token.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/reticle.session.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 85
    // A desktop webview is not a remote website — it is a local app whose document happens not to be   // served over http://localhost. The localhost gate exists to stop a REMOTE PAGE driving a local
  • Network accessline 86
    // served over http://localhost. The localhost gate exists to stop a REMOTE PAGE driving a local

adapters/realm/browser/src/reticle.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/review/agent-drives-while-annotating.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/review/annotator-styles.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/review/annotator.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/review/annotator.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/review/mark-anchor.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/review/mark-anchor.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/review/marks-for-agent.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 20
    { note: 'Typo in heading', label: 'heading: Welcom', anchor: 'h1', route: '/' },       ],       'http://localhost:5173/checkout',
  • Network accessline 21
    ],       'http://localhost:5173/checkout',     );
  • Network accessline 22
    'http://localhost:5173/checkout',
  • Network accessline 23
    );     expect(text).toContain('2 issues');     expect(text).toContain('http://localhost:5173');
  • Network accessline 24
    expect(text).toContain('2 issues');     expect(text).toContain('http://localhost:5173');     expect(text).toContain('1. Pay does nothing');
  • Network accessline 25
    expect(text).toContain('http://localhost:5173');
  • Network accessline 35
    const text = marksForAgent(       [{ note: 'x', label: 'button: A', anchor: 'button', route: '/' }],       'http://localhost:3000/',
  • Network accessline 36
    [{ note: 'x', label: 'button: A', anchor: 'button', route: '/' }],       'http://localhost:3000/',     );
  • Network accessline 37
    'http://localhost:3000/',

adapters/realm/browser/src/review/marks-for-agent.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/security/lossy-conformance.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/security/page-location.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 2
    [Credential-related source omitted]
  • Access to secretsline 13
    [Credential-related source omitted]

adapters/realm/browser/src/security/page-location.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 4
    [Credential-related source omitted]

adapters/realm/browser/src/security/redaction-config.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/security/serialization.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 449
    expect(sanitizeForTransport(document.createTextNode('hi'))).toBe('[Text]');     expect(       sanitizeForTransport(document.createElementNS('http://www.w3.org/2000/svg', 'svg')),
  • Network accessline 450
    expect(       sanitizeForTransport(document.createElementNS('http://www.w3.org/2000/svg', 'svg')),     ).toBe('[SVGSVGElement]');
  • Network accessline 451
    sanitizeForTransport(document.createElementNS('http://www.w3.org/2000/svg', 'svg')),

adapters/realm/browser/src/security/serialization.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/session-continuity.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/session-continuity.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/storage-keys.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/test-setup.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/timers/clock.safety.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/timers/clock.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/timers/clock.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/timers/console/native-console.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/timers/console/native-console.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/timers/native-timers.bound.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/timers/native-timers.interval.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/timers/native/native-timers.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/transport/bridge-url.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/transport/transport.backoff.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 43
    protocolVersion: RETICLE_PROTOCOL_VERSION,   sessionId: 's',   url: 'http://localhost/',
  • Network accessline 44
    sessionId: 's',   url: 'http://localhost/',   title: 'T',
  • Network accessline 45
    url: 'http://localhost/',

adapters/realm/browser/src/transport/transport.bridge-loss.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 43
    protocolVersion: RETICLE_PROTOCOL_VERSION,   sessionId: 's',   url: 'http://localhost/',
  • Network accessline 44
    sessionId: 's',   url: 'http://localhost/',   title: 'T',
  • Network accessline 45
    url: 'http://localhost/',

adapters/realm/browser/src/transport/transport.churn-eviction.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 41
    protocolVersion: RETICLE_PROTOCOL_VERSION,   sessionId: 's',   url: 'http://localhost/',
  • Network accessline 42
    sessionId: 's',   url: 'http://localhost/',   title: 'T',
  • Network accessline 43
    url: 'http://localhost/',

adapters/realm/browser/src/transport/transport.close-codes.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 35
    protocolVersion: RETICLE_PROTOCOL_VERSION,   sessionId: 's',   url: 'http://localhost/',
  • Network accessline 36
    sessionId: 's',   url: 'http://localhost/',   title: 'T',
  • Network accessline 37
    url: 'http://localhost/',

adapters/realm/browser/src/transport/transport.overflow-marker.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 50
    protocolVersion: RETICLE_PROTOCOL_VERSION,   sessionId: 's',   url: 'http://localhost/',
  • Network accessline 51
    sessionId: 's',   url: 'http://localhost/',   title: 'T',
  • Network accessline 52
    url: 'http://localhost/',

adapters/realm/browser/src/transport/transport.reconnect-on-focus.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 32
    protocolVersion: RETICLE_PROTOCOL_VERSION,   sessionId: 's',   url: 'http://localhost/',
  • Network accessline 33
    sessionId: 's',   url: 'http://localhost/',   title: 'T',
  • Network accessline 34
    url: 'http://localhost/',

adapters/realm/browser/src/transport/transport.security.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 46
    protocolVersion: RETICLE_PROTOCOL_VERSION,   sessionId: 'session-a',   url: 'http://localhost/',
  • Network accessline 47
    sessionId: 'session-a',   url: 'http://localhost/',   title: 'Test',
  • Network accessline 48
    url: 'http://localhost/',

adapters/realm/browser/src/transport/transport.silent-drop.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 36
    protocolVersion: RETICLE_PROTOCOL_VERSION,   sessionId: 'live-session',   url: 'http://localhost/',
  • Network accessline 37
    sessionId: 'live-session',   url: 'http://localhost/',   title: 'T',
  • Network accessline 38
    url: 'http://localhost/',

adapters/realm/browser/src/transport/transport.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/transport/transport.unreachable.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 42
    protocolVersion: RETICLE_PROTOCOL_VERSION,   sessionId: 's',   url: 'http://localhost/',
  • Network accessline 43
    sessionId: 's',   url: 'http://localhost/',   title: 'T',
  • Network accessline 44
    url: 'http://localhost/',

adapters/realm/browser/src/transport/unreachable-message.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 17
    * daemon, and then lists the checks in the order that resolves them.  *  * Part of https://github.com/reticlehq/reticle/issues/310, whose rule is: report what you observed
  • Network accessline 18
    *  * Part of https://github.com/reticlehq/reticle/issues/310, whose rule is: report what you observed  * and what you could not determine, never a cause.
  • Network accessline 19
    * Part of https://github.com/reticlehq/reticle/issues/310, whose rule is: report what you observed

adapters/realm/browser/src/transport/unreachable-message.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/src/util/captured-method.ts

  • Executable scriptline 1
    Executable file

adapters/realm/browser/vitest.config.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 21
    environmentOptions: {       jsdom: {         url: 'http://localhost/',
  • Network accessline 22
    jsdom: {         url: 'http://localhost/',       },
  • Network accessline 23
    url: 'http://localhost/',

adapters/realm/browser/vitest.setup.ts

  • Executable scriptline 1
    Executable file

adapters/realm/cli/LICENSE

  • Network accessline 2
    Apache License                            Version 2.0, January 2004                         http://www.apache.org/licenses/
  • Network accessline 4
    http://www.apache.org/licenses/
  • Network accessline 196
    http://www.apache.org/licenses/LICENSE-2.0

adapters/realm/cli/NOTICE

  • Network accessline 10
    Copyright (c) Tailwind Labs, Inc. Licensed under the MIT License. https://github.com/tailwindlabs/heroicons
  • Network accessline 12
    https://github.com/tailwindlabs/heroicons

adapters/realm/cli/bin/drive.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

adapters/realm/cli/package.json

  • Executable scriptline 1
    Executable file
  • Network accessline 30
    "repository": {     "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",
  • Network accessline 31
    "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",     "directory": "adapters/realm/cli"
  • Network accessline 32
    "url": "git+https://github.com/reticlehq/reticle.git",
  • Network accessline 33
    "directory": "adapters/realm/cli"   },   "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 34
    },   "homepage": "https://github.com/reticlehq/reticle#readme",   "bugs": "https://github.com/reticlehq/reticle/issues",
  • Network accessline 35
    "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 36
    "bugs": "https://github.com/reticlehq/reticle/issues",

adapters/realm/cli/src/artifact.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/cli/src/channels.ts

  • Executable scriptline 1
    Executable file

adapters/realm/cli/src/cli-realm.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/cli/src/cli-realm.ts

  • Executable scriptline 1
    Executable file

adapters/realm/cli/src/detect.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/cli/src/detect.ts

  • Executable scriptline 1
    Executable file

adapters/realm/cli/src/hud/frame.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/cli/src/hud/frame.ts

  • Executable scriptline 1
    Executable file

adapters/realm/cli/src/hud/live.ts

  • Executable scriptline 1
    Executable file

adapters/realm/cli/src/index.ts

  • Executable scriptline 1
    Executable file

adapters/realm/cli/src/manifest.ts

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 4
    * There is no `click()` in this protocol and there is no `exec()` here, for the same reason: a

adapters/realm/cli/src/net/proxy.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 79
    running = await startConnectProxy({ now: () => 0 });     const env = running.env();     expect(env['HTTPS_PROXY']).toBe(`http://127.0.0.1:${String(running.port)}`);
  • Network accessline 80
    const env = running.env();     expect(env['HTTPS_PROXY']).toBe(`http://127.0.0.1:${String(running.port)}`);     expect(env['https_proxy']).toBe(env['HTTPS_PROXY']);
  • Network accessline 81
    expect(env['HTTPS_PROXY']).toBe(`http://127.0.0.1:${String(running.port)}`);

adapters/realm/cli/src/net/proxy.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 99
    const address = server.address();       const port = 'object' === typeof address && null !== address ? address.port : 0;       const url = `http://127.0.0.1:${String(port)}`;
  • Network accessline 100
    const port = 'object' === typeof address && null !== address ? address.port : 0;       const url = `http://127.0.0.1:${String(port)}`;       resolve({
  • Network accessline 101
    const url = `http://127.0.0.1:${String(port)}`;

adapters/realm/cli/src/process/node-supervisor.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/cli/src/process/node-supervisor.ts

  • Executable scriptline 1
    Executable file

adapters/realm/cli/src/process/supervisor.ts

  • Executable scriptline 1
    Executable file

adapters/realm/cli/src/report.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/cli/src/report.ts

  • Executable scriptline 1
    Executable file

adapters/realm/cli/src/run.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/cli/src/run.ts

  • Executable scriptline 1
    Executable file

adapters/realm/cli/src/state-contract.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/cli/src/state-contract.ts

  • Executable scriptline 1
    Executable file

adapters/realm/cli/src/workspace/port.ts

  • Executable scriptline 1
    Executable file

adapters/realm/cli/src/workspace/snapshot.test.ts

  • Executable scriptline 1
    Executable file

adapters/realm/cli/src/workspace/snapshot.ts

  • Executable scriptline 1
    Executable file

adapters/realm/electron/LICENSE

  • Network accessline 2
    Apache License                            Version 2.0, January 2004                         http://www.apache.org/licenses/
  • Network accessline 4
    http://www.apache.org/licenses/
  • Network accessline 196
    http://www.apache.org/licenses/LICENSE-2.0

adapters/realm/electron/README.md

  • Network accessline 51
    [docs]: https://github.com/reticlehq/reticle/blob/main/docs/desktop.mdx

adapters/realm/electron/main.cjs

  • Executable scriptline 1
    Executable file

adapters/realm/electron/main.d.cts

  • Executable scriptline 1
    Executable file

adapters/realm/electron/package.json

  • Executable scriptline 1
    Executable file
  • Network accessline 31
    "repository": {     "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",
  • Network accessline 32
    "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",     "directory": "adapters/realm/electron"
  • Network accessline 33
    "url": "git+https://github.com/reticlehq/reticle.git",
  • Network accessline 34
    "directory": "adapters/realm/electron"   },   "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 35
    },   "homepage": "https://github.com/reticlehq/reticle#readme",   "bugs": "https://github.com/reticlehq/reticle/issues",
  • Network accessline 36
    "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 37
    "bugs": "https://github.com/reticlehq/reticle/issues",

adapters/realm/electron/preload.cjs

  • Executable scriptline 1
    Executable file

adapters/realm/electron/preload.d.cts

  • Executable scriptline 1
    Executable file

adapters/realm/electron/preload.test.mjs

  • Executable scriptline 1
    Executable file

adapters/realm/tauri/Cargo.lock

  • Network accessline 6
    name = "adler2" version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 7
    version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
  • Network accessline 8
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 12
    name = "aho-corasick" version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 13
    version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301"
  • Network accessline 14
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 21
    name = "alloc-no-stdlib" version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 22
    version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2fb6cfd47bf496ff64095c20eaba0c201404ee38714d4142fcfa1dc334fcc7a"
  • Network accessline 23
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 27
    name = "alloc-stdlib" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 28
    version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b5c1865780388bfa186411ab5f247819487fc4864c6e9c3106611fa347586e1"
  • Network accessline 29
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 36
    name = "android_system_properties" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 37
    version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
  • Network accessline 38
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 45
    name = "anyhow" version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 46
    version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470"
  • Network accessline 47
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 51
    name = "atk" version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 52
    version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b"
  • Network accessline 53
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 62
    name = "atk-sys" version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 63
    version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086"
  • Network accessline 64
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 74
    name = "atomic-waker" version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 75
    version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
  • Network accessline 76
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 80
    name = "autocfg" version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 81
    version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
  • Network accessline 82
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 86
    name = "base64" version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 87
    version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
  • Network accessline 88
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 92
    name = "base64" version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 93
    version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
  • Network accessline 94
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 98
    name = "base64" version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 99
    version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5"
  • Network accessline 100
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 104
    name = "bit-set" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 105
    version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3"
  • Network accessline 106
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 113
    name = "bit-vec" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 114
    version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7"
  • Network accessline 115
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 119
    name = "bitflags" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 120
    version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
  • Network accessline 121
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 125
    name = "bitflags" version = "2.13.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 126
    version = "2.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da"
  • Network accessline 127
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 134
    name = "block-buffer" version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 135
    version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
  • Network accessline 136
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 143
    name = "block2" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 144
    version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5"
  • Network accessline 145
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 152
    name = "brotli" version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 153
    version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8b851b75c23ca7873623d612fe49bd1989aeb03d08fb9432187eb253d3d4c6b"
  • Network accessline 154
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 163
    name = "brotli-decompressor" version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 164
    version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "941cd9bd4ddab83cb46fa5a2d428f1c857b24ac78cb876cf7beb710840934bd7"
  • Network accessline 165
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 173
    name = "bs58" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 174
    version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4"
  • Network accessline 175
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 182
    name = "bumpalo" version = "3.20.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 183
    version = "3.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649"
  • Network accessline 184
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 188
    name = "bytemuck" version = "1.25.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 189
    version = "1.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797"
  • Network accessline 190
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 194
    name = "byteorder" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 195
    version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
  • Network accessline 196
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 200
    name = "bytes" version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 201
    version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04"
  • Network accessline 202
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 209
    name = "cairo-rs" version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 210
    version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2"
  • Network accessline 211
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 223
    name = "cairo-sys-rs" version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 224
    version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51"
  • Network accessline 225
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 234
    name = "camino" version = "1.2.5" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 235
    version = "1.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb1307f12aa967b5a58416e87b3653360e0fd614a016b6e970db08fecbb1b80d"
  • Network accessline 236
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 243
    name = "cargo-platform" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 244
    version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea"
  • Network accessline 245
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 252
    name = "cargo_metadata" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 253
    version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba"
  • Network accessline 254
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 266
    name = "cargo_toml" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 267
    version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82f4b26e751e711a5302649417f2da046dce6391b2ea30a4820f37462314f0b9"
  • Network accessline 268
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 277
    name = "cc" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 278
    version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5add81bb678e6cb321aff7fa0dc7689ad82b112dbc032cea19f91d6b8e3582b9"
  • Network accessline 279
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 287
    name = "cesu8" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 288
    version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
  • Network accessline 289
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 293
    name = "cfb" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 294
    version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a347dcabdae9c31b0825fd6a8bed285ec9c2acb89c47827126d52fa4f59cece3"
  • Network accessline 295
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 304
    name = "cfg-expr" version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 305
    version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02"
  • Network accessline 306
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 314
    name = "cfg-if" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 315
    version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
  • Network accessline 316
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 320
    name = "chrono" version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 321
    version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327"
  • Network accessline 322
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 332
    name = "combine" version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 333
    version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd"
  • Network accessline 334
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 342
    name = "cookie" version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 343
    version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747"
  • Network accessline 344
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 352
    name = "core-foundation" version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 353
    version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6"
  • Network accessline 354
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 362
    name = "core-foundation-sys" version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 363
    version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
  • Network accessline 364
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 368
    name = "core-graphics" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 369
    version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "064badf302c3194842cf2c5d61f56cc88e54a759313879cdf03abdd27d0c3b97"
  • Network accessline 370
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 381
    name = "core-graphics-types" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 382
    version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb"
  • Network accessline 383
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 392
    name = "cpufeatures" version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 393
    version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
  • Network accessline 394
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 401
    name = "crc32fast" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 402
    version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511"
  • Network accessline 403
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 410
    name = "crossbeam-channel" version = "0.5.16" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 411
    version = "0.5.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d85363c37faeca707aef026efa9f3b34d077bce547e48f770770625c6013679e"
  • Network accessline 412
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 419
    name = "crossbeam-utils" version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 420
    version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17"
  • Network accessline 421
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 425
    name = "crypto-common" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 426
    version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a"
  • Network accessline 427
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 435
    name = "cssparser" version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 436
    version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c9cdaae01d5ed7882b04d795e7f752f46ff52d2fa3b50a20d28c464510bba98"
  • Network accessline 437
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 448
    name = "cssparser-macros" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 449
    version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d045de693cb712d0b22c6a64be5b953f67b3ce00ab5ad3dd5d8b441886ab8e1a"
  • Network accessline 450
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 458
    name = "ctor" version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 459
    version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "914a755b7c2d4af2bdcff7ce1739e2db9a1b81a9b07123d8015786ae03c0980d"
  • Network accessline 460
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 464
    name = "darling" version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 465
    version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d"
  • Network accessline 466
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 474
    name = "darling_core" version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 475
    version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0"
  • Network accessline 476
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 487
    name = "darling_macro" version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 488
    version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d"
  • Network accessline 489
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 498
    name = "dbus" version = "0.9.12" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 499
    version = "0.9.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ab69f03cc8c4340c9c8e315114e1658e6775a9b16a04357973aa21cec22b32e"
  • Network accessline 500
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 509
    name = "deranged" version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 510
    version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c"
  • Network accessline 511
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 518
    name = "derive_more" version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 519
    version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134"
  • Network accessline 520
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 527
    name = "derive_more-impl" version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 528
    version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb"
  • Network accessline 529
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 539
    name = "digest" version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 540
    version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
  • Network accessline 541
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 549
    name = "dirs" version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 550
    version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d57d423b3c82e89b9a24ca3091fee61f456a26edbd28d26c65906f4bc1dcd8f"
  • Network accessline 551
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 558
    name = "dirs-sys" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 559
    version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab"
  • Network accessline 560
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 570
    name = "dispatch2" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 571
    version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38"
  • Network accessline 572
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 582
    name = "displaydoc" version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 583
    version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6232dd377dcc64799954cbd3a9bb882e9cdc1308ccd87b1c098f1fb2eaf82a8"
  • Network accessline 584
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 593
    name = "dlopen2" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 594
    version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e2c5bd4158e66d1e215c49b837e11d62f3267b30c92f1d171c4d3105e3dc4d4"
  • Network accessline 595
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 605
    name = "dlopen2_derive" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 606
    version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fbbb781877580993a8707ec48672673ec7b81eeba04cfd2310bd28c08e47c8f"
  • Network accessline 607
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 616
    name = "dom_query" version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 617
    version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fac5fca71e65e94cc718a6e2af65d6e0f9c6027751c2aa562fbb5087fda639bc"
  • Network accessline 618
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 631
    name = "dpi" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 632
    version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76"
  • Network accessline 633
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 640
    name = "dtoa" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 641
    version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c3cf4824e2d5f025c7b531afcb2325364084a16806f6d47fbc1f5fbd9960590"
  • Network accessline 642
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 646
    name = "dtoa-short" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 647
    version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87"
  • Network accessline 648
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 655
    name = "dunce" version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 656
    version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813"
  • Network accessline 657
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 661
    name = "dyn-clone" version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 662
    version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555"
  • Network accessline 663
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 667
    name = "embed-resource" version = "3.0.11" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 668
    version = "3.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbfdaacccebec3b28e4866b8973543c7647797db5ada1bdab552e48fe665fbbd"
  • Network accessline 669
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 681
    name = "embed_plist" version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 682
    version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7"
  • Network accessline 683
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 687
    name = "equivalent" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 688
    version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
  • Network accessline 689
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 693
    name = "erased-serde" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 694
    version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec"
  • Network accessline 695
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 704
    name = "fastrand" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 705
    version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223"
  • Network accessline 706
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 710
    name = "fdeflate" version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 711
    version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c"
  • Network accessline 712
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 719
    name = "field-offset" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 720
    version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f"
  • Network accessline 721
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 729
    name = "find-msvc-tools" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 730
    version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
  • Network accessline 731
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 735
    name = "flate2" version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 736
    version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c"
  • Network accessline 737
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 745
    name = "fnv" version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 746
    version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
  • Network accessline 747
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 751
    name = "foldhash" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 752
    version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
  • Network accessline 753
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 757
    name = "foreign-types" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 758
    version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
  • Network accessline 759
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 767
    name = "foreign-types-macros" version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 768
    version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea5190182e6915eb873ddbc16e23b711b6eb1f9c00a0d0a3a91b5f6228475225"
  • Network accessline 769
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 778
    name = "foreign-types-shared" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 779
    version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
  • Network accessline 780
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 784
    name = "form_urlencoded" version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 785
    version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf"
  • Network accessline 786
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 793
    name = "futures-channel" version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 794
    version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "262590f4fe6afeb0bc83be1daa64e52657fe185690a958af7f3ad0e92085c5ae"
  • Network accessline 795
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 802
    name = "futures-core" version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 803
    version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2cd50c473c80f6d7c3670a752354b8e569b1a7cbfdc0419ec88e5edad85e0dc7"
  • Network accessline 804
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 808
    name = "futures-executor" version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 809
    version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6754879cc9f2c66f88c6e5c35344bb0bdb0708b0352b1201815667c7eabc7458"
  • Network accessline 810
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 819
    name = "futures-io" version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 820
    version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4577ecaa3c4f96589d473f679a71b596316f6641bc350038b962a5daf0085d7a"
  • Network accessline 821
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 825
    name = "futures-macro" version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 826
    version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d6d3cde68c518367be28956066ddfef33813991b77a55005a69dae04bf3b10b"
  • Network accessline 827
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 836
    name = "futures-sink" version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 837
    version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e34418ac499d6305c2fb5ad0ed2f6ac998c5f8ca209b4510f7f94242c647e307"
  • Network accessline 838
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 842
    name = "futures-task" version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 843
    version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b231ed28831efb4a61a08580c4bc233ec56bc009f4cd8f52da2c3cb97df0c109"
  • Network accessline 844
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 848
    name = "futures-util" version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 849
    version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a77a90a256fce34da66415271e30f94ee91c57b04b8a2c042d9cf3220179deaa"
  • Network accessline 850
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 864
    name = "gdk" version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 865
    version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691"
  • Network accessline 866
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 879
    name = "gdk-pixbuf" version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 880
    version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec"
  • Network accessline 881
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 892
    name = "gdk-pixbuf-sys" version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 893
    version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7"
  • Network accessline 894
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 905
    name = "gdk-sys" version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 906
    version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7"
  • Network accessline 907
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 922
    name = "gdkwayland-sys" version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 923
    version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "140071d506d223f7572b9f09b5e155afbd77428cd5cc7af8f2694c41d98dfe69"
  • Network accessline 924
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 936
    name = "gdkx11" version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 937
    version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3caa00e14351bebbc8183b3c36690327eb77c49abc2268dd4bd36b856db3fbfe"
  • Network accessline 938
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 950
    name = "gdkx11-sys" version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 951
    version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e2e7445fe01ac26f11601db260dd8608fe172514eb63b3b5e261ea6b0f4428d"
  • Network accessline 952
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 963
    name = "generic-array" version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 964
    version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
  • Network accessline 965
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 973
    name = "getrandom" version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 974
    version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
  • Network accessline 975
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 984
    name = "getrandom" version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 985
    version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
  • Network accessline 986
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 996
    name = "getrandom" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 997
    version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099"
  • Network accessline 998
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1007
    name = "gio" version = "0.18.4" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1008
    version = "0.18.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73"
  • Network accessline 1009
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1026
    name = "gio-sys" version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1027
    version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2"
  • Network accessline 1028
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1039
    name = "glib" version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1040
    version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5"
  • Network accessline 1041
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1062
    name = "glib-macros" version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1063
    version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc"
  • Network accessline 1064
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1076
    name = "glib-sys" version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1077
    version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898"
  • Network accessline 1078
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1086
    name = "glob" version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1087
    version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b"
  • Network accessline 1088
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1092
    name = "gobject-sys" version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1093
    version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44"
  • Network accessline 1094
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1103
    name = "gtk" version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1104
    version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a"
  • Network accessline 1105
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1124
    name = "gtk-sys" version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1125
    version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414"
  • Network accessline 1126
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1142
    name = "gtk3-macros" version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1143
    version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d"
  • Network accessline 1144
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1155
    name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1156
    version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
  • Network accessline 1157
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1161
    name = "hashbrown" version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1162
    version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
  • Network accessline 1163
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1167
    name = "heck" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1168
    version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
  • Network accessline 1169
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1173
    name = "heck" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1174
    version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
  • Network accessline 1175
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1179
    name = "hex" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1180
    version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
  • Network accessline 1181
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1185
    name = "html5ever" version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1186
    version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46a1761807faccc9a19e86944bbf40610014066306f96edcdedc2fb714bcb7b8"
  • Network accessline 1187
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1195
    name = "http" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1196
    version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "918d3568bebf352712bc2ef3d46a8bcf1a75b373be6539de198e9105cbbf9ce0"
  • Network accessline 1197
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1205
    name = "http-body" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1206
    version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2a8f2913ee65f60facd6a5905613afaa448497a0230cc41ce022d93290bc2c"
  • Network accessline 1207
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1215
    name = "http-body-util" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1216
    version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9f41fd6a08e4d4ec69df65976da761afd5ad5e58a9d4acb46bd1c953a9e3ff2"
  • Network accessline 1217
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1228
    name = "httparse" version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1229
    version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87"
  • Network accessline 1230
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1234
    name = "hyper" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1235
    version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d22053281f852e11534f5198498373cbb59295120a20771d90f7ed1897490a72"
  • Network accessline 1236
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1254
    name = "hyper-util" version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1255
    version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0"
  • Network accessline 1256
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1277
    name = "iana-time-zone" version = "0.1.65" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1278
    version = "0.1.65" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470"
  • Network accessline 1279
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1292
    name = "iana-time-zone-haiku" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1293
    version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
  • Network accessline 1294
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1301
    name = "ico" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1302
    version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d75e94d66081e4d8dcd098bd8dc5254800fea14a26389b298410158d834de167"
  • Network accessline 1303
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1311
    name = "icu_collections" version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1312
    version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c"
  • Network accessline 1313
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1325
    name = "icu_locale_core" version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1326
    version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29"
  • Network accessline 1327
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1338
    name = "icu_normalizer" version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1339
    version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4"
  • Network accessline 1340
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1352
    name = "icu_normalizer_data" version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1353
    version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38"
  • Network accessline 1354
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1358
    name = "icu_properties" version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1359
    version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de"
  • Network accessline 1360
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1372
    name = "icu_properties_data" version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1373
    version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14"
  • Network accessline 1374
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1378
    name = "icu_provider" version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1379
    version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421"
  • Network accessline 1380
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1393
    name = "ident_case" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1394
    version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
  • Network accessline 1395
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1399
    name = "idna" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1400
    version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de"
  • Network accessline 1401
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1410
    name = "idna_adapter" version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1411
    version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714"
  • Network accessline 1412
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1420
    name = "indexmap" version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1421
    version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
  • Network accessline 1422
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1431
    name = "indexmap" version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1432
    version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9"
  • Network accessline 1433
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1443
    name = "infer" version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1444
    version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4200d433cbd5178df7797c9c2e75b348b728e39631cf14520d1e2fc424201f4"
  • Network accessline 1445
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1452
    name = "ipnet" version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1453
    version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2"
  • Network accessline 1454
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1458
    name = "itoa" version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1459
    version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
  • Network accessline 1460
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1464
    name = "javascriptcore-rs" version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1465
    version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc"
  • Network accessline 1466
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1475
    name = "javascriptcore-rs-sys" version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1476
    version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124"
  • Network accessline 1477
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1487
    name = "jni" version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1488
    version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97"
  • Network accessline 1489
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1503
    name = "jni-sys" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1504
    version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258"
  • Network accessline 1505
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1512
    name = "jni-sys" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1513
    version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2"
  • Network accessline 1514
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1521
    name = "jni-sys-macros" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1522
    version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264"
  • Network accessline 1523
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1531
    name = "js-sys" version = "0.3.103" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1532
    version = "0.3.103" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102"
  • Network accessline 1533
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1542
    name = "json-patch" version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1543
    version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7421438de105a0827e44fadd05377727847d717c80ce29a229f85fd04c427b72"
  • Network accessline 1544
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1554
    name = "jsonptr" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1555
    version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5a3cc660ba5d72bce0b3bb295bf20847ccbb40fd423f3f05b61273672e561fe"
  • Network accessline 1556
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1564
    name = "keyboard-types" version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1565
    version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fbe853b403ae61a04233030ae8a79d94975281ed9770a1f9e246732b534b28d"
  • Network accessline 1566
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1574
    name = "libappindicator" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1575
    version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a"
  • Network accessline 1576
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1587
    name = "libappindicator-sys" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1588
    version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf"
  • Network accessline 1589
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1598
    name = "libc" version = "0.2.189" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1599
    version = "0.2.189" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2"
  • Network accessline 1600
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1604
    name = "libdbus-sys" version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1605
    version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "328c4789d42200f1eeec05bd86c9c13c7f091d2ba9a6ea35acdf51f31bc0f043"
  • Network accessline 1606
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1613
    name = "libloading" version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1614
    version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
  • Network accessline 1615
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1623
    name = "libredox" version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1624
    version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c943259e342f1e06ff2da7a83eabdfe7f92ce10262688dbf1895ff0b3e6e4652"
  • Network accessline 1625
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1632
    name = "litemap" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1633
    version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0"
  • Network accessline 1634
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1638
    name = "lock_api" version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1639
    version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965"
  • Network accessline 1640
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1647
    name = "log" version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1648
    version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad"
  • Network accessline 1649
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1653
    name = "markup5ever" version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1654
    version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7122d987ec5f704ee56f6e5b41a7d93722e9aae27ae07cafa4036c4d3f9757de"
  • Network accessline 1655
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1664
    name = "memchr" version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1665
    version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
  • Network accessline 1666
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1670
    name = "memoffset" version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1671
    version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
  • Network accessline 1672
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1679
    name = "mime" version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1680
    version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
  • Network accessline 1681
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1685
    name = "miniz_oxide" version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1686
    version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
  • Network accessline 1687
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1695
    name = "mio" version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1696
    version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30d65c71f1ce40ab09135ce117d742b9f8a19ff91a41a8b57ed50bc2de59c427"
  • Network accessline 1697
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1706
    name = "muda" version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1707
    version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cca139e57da4383727f189e43e66e84fa372347027fc996f9f1a007ec0a37996"
  • Network accessline 1708
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1727
    name = "ndk" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1728
    version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4"
  • Network accessline 1729
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1742
    name = "ndk-context" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1743
    version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
  • Network accessline 1744
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1748
    name = "ndk-sys" version = "0.6.0+11769913" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1749
    version = "0.6.0+11769913" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873"
  • Network accessline 1750
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1757
    name = "new_debug_unreachable" version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1758
    version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
  • Network accessline 1759
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1763
    name = "num-conv" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1764
    version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441"
  • Network accessline 1765
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1769
    name = "num-traits" version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1770
    version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
  • Network accessline 1771
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1778
    name = "num_enum" version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1779
    version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26"
  • Network accessline 1780
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1788
    name = "num_enum_derive" version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1789
    version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8"
  • Network accessline 1790
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1800
    name = "objc2" version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1801
    version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08849bbd4767dfae9457696856ae1c84fe4e0281bbe4a7abff2d0e06fb7981f8"
  • Network accessline 1802
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1810
    name = "objc2-app-kit" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1811
    version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c"
  • Network accessline 1812
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1831
    name = "objc2-cloud-kit" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1832
    version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c"
  • Network accessline 1833
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1842
    name = "objc2-core-data" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1843
    version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa"
  • Network accessline 1844
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1853
    name = "objc2-core-foundation" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1854
    version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536"
  • Network accessline 1855
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1864
    name = "objc2-core-graphics" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1865
    version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807"
  • Network accessline 1866
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1877
    name = "objc2-core-image" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1878
    version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006"
  • Network accessline 1879
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1887
    name = "objc2-core-location" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1888
    version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca347214e24bc973fc025fd0d36ebb179ff30536ed1f80252706db19ee452009"
  • Network accessline 1889
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1897
    name = "objc2-core-text" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1898
    version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d"
  • Network accessline 1899
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1909
    name = "objc2-core-video" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1910
    version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6"
  • Network accessline 1911
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1922
    name = "objc2-encode" version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1923
    version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33"
  • Network accessline 1924
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1928
    name = "objc2-exception-helper" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1929
    version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7a1c5fbb72d7735b076bb47b578523aedc40f3c439bea6dfd595c089d79d98a"
  • Network accessline 1930
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1937
    name = "objc2-foundation" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1938
    version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272"
  • Network accessline 1939
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1950
    name = "objc2-io-surface" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1951
    version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d"
  • Network accessline 1952
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1961
    name = "objc2-javascript-core" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1962
    version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a1e6550c4caed348956ce3370c9ffeca70bb1dbed4fa96112e7c6170e074586"
  • Network accessline 1963
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1971
    name = "objc2-quartz-core" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1972
    version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f"
  • Network accessline 1973
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1983
    name = "objc2-security" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1984
    version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "709fe137109bd1e8b5a99390f77a7d8b2961dafc1a1c5db8f2e60329ad6d895a"
  • Network accessline 1985
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1994
    name = "objc2-ui-kit" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 1995
    version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22"
  • Network accessline 1996
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2015
    name = "objc2-user-notifications" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2016
    version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9df9128cbbfef73cda168416ccf7f837b62737d748333bfe9ab71c245d76613e"
  • Network accessline 2017
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2025
    name = "objc2-web-kit" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2026
    version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2e5aaab980c433cf470df9d7af96a7b46a9d892d521a2cbbb2f8a4c16751e7f"
  • Network accessline 2027
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2041
    name = "once_cell" version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2042
    version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
  • Network accessline 2043
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2047
    name = "option-ext" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2048
    version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
  • Network accessline 2049
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2053
    name = "pango" version = "0.18.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2054
    version = "0.18.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4"
  • Network accessline 2055
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2066
    name = "pango-sys" version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2067
    version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5"
  • Network accessline 2068
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2078
    name = "parking_lot" version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2079
    version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a"
  • Network accessline 2080
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2088
    name = "parking_lot_core" version = "0.9.12" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2089
    version = "0.9.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
  • Network accessline 2090
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2101
    name = "percent-encoding" version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2102
    version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
  • Network accessline 2103
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2107
    name = "phf" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2108
    version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf"
  • Network accessline 2109
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2118
    name = "phf_codegen" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2119
    version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1"
  • Network accessline 2120
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2128
    name = "phf_generator" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2129
    version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737"
  • Network accessline 2130
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2138
    name = "phf_macros" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2139
    version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef"
  • Network accessline 2140
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2151
    name = "phf_shared" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2152
    version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266"
  • Network accessline 2153
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2160
    name = "pin-project-lite" version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2161
    version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"
  • Network accessline 2162
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2166
    name = "pkg-config" version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2167
    version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e"
  • Network accessline 2168
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2172
    name = "plist" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2173
    version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da1d65da6dd5d1e44199ac0f58712d241c0f439f80adea8924d832384087f85"
  • Network accessline 2174
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2185
    name = "png" version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2186
    version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61"
  • Network accessline 2187
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2198
    name = "potential_utf" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2199
    version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564"
  • Network accessline 2200
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2207
    name = "powerfmt" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2208
    version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
  • Network accessline 2209
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2213
    name = "precomputed-hash" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2214
    version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
  • Network accessline 2215
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2219
    name = "proc-macro-crate" version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2220
    version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
  • Network accessline 2221
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2229
    name = "proc-macro-crate" version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2230
    version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24"
  • Network accessline 2231
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2239
    name = "proc-macro-crate" version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2240
    version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f"
  • Network accessline 2241
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2248
    name = "proc-macro-error" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2249
    version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
  • Network accessline 2250
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2261
    name = "proc-macro-error-attr" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2262
    version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
  • Network accessline 2263
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2272
    name = "proc-macro2" version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2273
    version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
  • Network accessline 2274
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2281
    name = "quick-xml" version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2282
    version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e660451e55124f798a69a5af3f49ccfbefbd41910eefd25caf2393e1f3473ec1"
  • Network accessline 2283
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2290
    name = "quote" version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2291
    version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
  • Network accessline 2292
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2299
    name = "r-efi" version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2300
    version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
  • Network accessline 2301
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2305
    name = "r-efi" version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2306
    version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"
  • Network accessline 2307
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2311
    name = "raw-window-handle" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2312
    version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539"
  • Network accessline 2313
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2317
    name = "redox_syscall" version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2318
    version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
  • Network accessline 2319
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2326
    name = "redox_users" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2327
    version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac"
  • Network accessline 2328
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2337
    name = "ref-cast" version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2338
    version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "216e8f773d7923bcba9ceb86a86c93cabb3903a11872fc3f138c49630e50b96d"
  • Network accessline 2339
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2346
    name = "ref-cast-impl" version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2347
    version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c9283685feec7d69af75fb0e858d5e7378f33fe4fc699383b2916ab9273e03c"
  • Network accessline 2348
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2357
    name = "regex" version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2358
    version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d"
  • Network accessline 2359
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2369
    name = "regex-automata" version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2370
    version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fcfdb36bda0c880c5931cdc7a2bcdc8ba4556847b9d912bca70bc94708711ad"
  • Network accessline 2371
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2380
    name = "regex-syntax" version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2381
    version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4"
  • Network accessline 2382
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2386
    name = "reqwest" version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2387
    version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3"
  • Network accessline 2388
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2436
    name = "rustc-hash" version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2437
    version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d"
  • Network accessline 2438
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2442
    name = "rustc_version" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2443
    version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
  • Network accessline 2444
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2451
    name = "rustversion" version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2452
    version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f"
  • Network accessline 2453
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2457
    name = "same-file" version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2458
    version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
  • Network accessline 2459
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2466
    name = "schemars" version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2467
    version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615"
  • Network accessline 2468
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2481
    name = "schemars" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2482
    version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f"
  • Network accessline 2483
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2493
    name = "schemars" version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2494
    version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "687274d293b6cdc6e73e0fee520bf2049650090d7164f87672d212a3c530cf4a"
  • Network accessline 2495
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2505
    name = "schemars_derive" version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2506
    version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d"
  • Network accessline 2507
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2517
    name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2518
    version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
  • Network accessline 2519
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2523
    name = "selectors" version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2524
    version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8adfa1c298912827b8a28b223b3b874357397ae706e6190acd9bf28cee99114d"
  • Network accessline 2525
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2542
    name = "semver" version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2543
    version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd"
  • Network accessline 2544
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2552
    name = "serde" version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2553
    version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba"
  • Network accessline 2554
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2562
    name = "serde-untagged" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2563
    version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058"
  • Network accessline 2564
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2574
    name = "serde_core" version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2575
    version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48"
  • Network accessline 2576
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2583
    name = "serde_derive" version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2584
    version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
  • Network accessline 2585
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2594
    name = "serde_derive_internals" version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2595
    version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711"
  • Network accessline 2596
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2605
    name = "serde_json" version = "1.0.151" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2606
    version = "1.0.151" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14"
  • Network accessline 2607
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2618
    name = "serde_repr" version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2619
    version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d3b1629de253c70a0508c3899572da79ca359fdab27c7920ff00406df418906"
  • Network accessline 2620
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2629
    name = "serde_spanned" version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2630
    version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3"
  • Network accessline 2631
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2638
    name = "serde_spanned" version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2639
    version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26"
  • Network accessline 2640
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2647
    name = "serde_with" version = "3.21.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2648
    version = "3.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76a5c54c7310e7b8b9577c286d7e399ddd876c3e12b3ed917a8aabc4b96e9e8c"
  • Network accessline 2649
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2667
    name = "serde_with_macros" version = "3.21.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2668
    version = "3.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84d57bc0c8b9a17920c178daa6bb924850d54a9c97ab45194bb8c17ad66bb660"
  • Network accessline 2669
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2679
    name = "serialize-to-javascript" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2680
    version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04f3666a07a197cdb77cdf306c32be9b7f598d7060d50cfd4d5aa04bfd92f6c5"
  • Network accessline 2681
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2690
    name = "serialize-to-javascript-impl" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2691
    version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d"
  • Network accessline 2692
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2701
    name = "servo_arc" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2702
    version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "170fb83ab34de17dc69aa7c67482b22218ddb85da56546f9bd6b929e32a05930"
  • Network accessline 2703
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2710
    name = "sha2" version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2711
    version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
  • Network accessline 2712
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2721
    name = "shlex" version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2722
    version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
  • Network accessline 2723
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2727
    name = "simd-adler32" version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2728
    version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea"
  • Network accessline 2729
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2733
    name = "siphasher" version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2734
    version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649"
  • Network accessline 2735
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2739
    name = "slab" version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2740
    version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
  • Network accessline 2741
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2745
    name = "smallvec" version = "1.15.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2746
    version = "1.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90"
  • Network accessline 2747
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2751
    name = "socket2" version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2752
    version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4"
  • Network accessline 2753
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2761
    name = "softbuffer" version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2762
    version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aac18da81ebbf05109ab275b157c22a653bb3c12cf884450179942f81bcbf6c3"
  • Network accessline 2763
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2783
    name = "soup3" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2784
    version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f"
  • Network accessline 2785
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2796
    name = "soup3-sys" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2797
    version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27"
  • Network accessline 2798
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2809
    name = "stable_deref_trait" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2810
    version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
  • Network accessline 2811
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2815
    name = "static_vcruntime" version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2816
    version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff7589a1859b09232522bb9edf076ca7fcf14ded96685d3fa629db73023ffbb7"
  • Network accessline 2817
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2821
    name = "string_cache" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2822
    version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901"
  • Network accessline 2823
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2833
    name = "string_cache_codegen" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2834
    version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69"
  • Network accessline 2835
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2845
    name = "strsim" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2846
    version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
  • Network accessline 2847
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2851
    name = "swift-rs" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2852
    version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cefd87076fd385308ee4aff597256c902f1fbb4d031de1558efc12f8ffefadd9"
  • Network accessline 2853
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2862
    name = "syn" version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2863
    version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
  • Network accessline 2864
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2872
    name = "syn" version = "2.0.119" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2873
    version = "2.0.119" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
  • Network accessline 2874
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2883
    name = "syn" version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2884
    version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3"
  • Network accessline 2885
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2894
    name = "sync_wrapper" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2895
    version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263"
  • Network accessline 2896
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2903
    name = "synstructure" version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2904
    version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
  • Network accessline 2905
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2914
    name = "system-deps" version = "6.2.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2915
    version = "6.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349"
  • Network accessline 2916
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2927
    name = "tao" version = "0.37.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2928
    version = "0.37.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f37f381f4e048e6cdf038b5705f8cf14ad108279d46eb968140a7b291aba9400"
  • Network accessline 2929
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2967
    name = "tao-macros" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2968
    version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f7eeb6d99155545da6150a1795945f16ac9c178deb2a5f2e74d776107bd5849"
  • Network accessline 2969
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2978
    name = "target-lexicon" version = "0.12.16" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2979
    version = "0.12.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
  • Network accessline 2980
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2984
    name = "tauri" version = "2.12.5" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 2985
    version = "2.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5fb0244332cfb9cee7e2a568bf5da29a36ed8fdbd717f6f47a66b6b7b358c072"
  • Network accessline 2986
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3035
    name = "tauri-build" version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3036
    version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adddb0e648752aaac5da9c3c3c6a68e1e87cab55e3b757b18a9441ef8c3ac614"
  • Network accessline 3037
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3058
    name = "tauri-codegen" version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3059
    version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb37631cf71dab5e8ab55e1bdd701e18a52653d90b78e71d0e5598b1e0a61316"
  • Network accessline 3060
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3085
    name = "tauri-macros" version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3086
    version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0cc38db58854c10fb5f91a887ed8bf82d3239bb92b5d8db86eda09e96d9963d1"
  • Network accessline 3087
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3099
    name = "tauri-runtime" version = "2.12.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3100
    version = "2.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c55766d99cea69055904d1735b93c2049302b2e09effd462120deb5581d78e9"
  • Network accessline 3101
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3124
    name = "tauri-runtime-wry" version = "2.12.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3125
    version = "2.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1aa9d8b7a120f879f44fdc1053f7b7dbf416bf0bbc6a72b714dec46b782b52f"
  • Network accessline 3126
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3149
    name = "tauri-utils" version = "2.10.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3150
    version = "2.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "362ab21cd4cc713f2a02b1a9b5688198b1541cfb6907c4281e9190e0f0ef4aa3"
  • Network accessline 3151
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3187
    name = "tauri-winres" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3188
    version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc65d45c68858bfe420dd29e834b5d15dbecf8a07a8a16cf4d532c7b1f69d4b6"
  • Network accessline 3189
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3198
    name = "tendril" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3199
    version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5fed54709c5b3a53d09bb1c113ea4f5ceafd1e772ddcb0030a82e1d56c087b08"
  • Network accessline 3200
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3207
    name = "thiserror" version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3208
    version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
  • Network accessline 3209
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3216
    name = "thiserror" version = "2.0.19" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3217
    version = "2.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09a43598840e33d5b0331f38c5e30d13bb11c11210a4b58f0d9b18a5a5eefcd9"
  • Network accessline 3218
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3225
    name = "thiserror-impl" version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3226
    version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
  • Network accessline 3227
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3236
    name = "thiserror-impl" version = "2.0.19" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3237
    version = "2.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43cbfe0cf76104d42a574802844187e84a305e531ed54455f11fbde0f10541cd"
  • Network accessline 3238
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3247
    name = "time" version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3248
    version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdb87b95ec50ddfa440816d227a17b2ccbdda963a316a727fda0fc4334f7d134"
  • Network accessline 3249
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3261
    name = "time-core" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3262
    version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109"
  • Network accessline 3263
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3267
    name = "time-macros" version = "0.2.32" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3268
    version = "0.2.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e689342a48d2ea927c87ea50cabf8594854bf940e9310208848d680d668ed85"
  • Network accessline 3269
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3277
    name = "tinystr" version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3278
    version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d"
  • Network accessline 3279
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3287
    name = "tinyvec" version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3288
    version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb4ebadaa0af04fab11ae01eb5f9fdb5f9c5b875506e210e71c07873528baa7f"
  • Network accessline 3289
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3296
    name = "tinyvec_macros" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3297
    version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
  • Network accessline 3298
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3302
    name = "tokio" version = "1.53.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3303
    version = "1.53.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce3335fa71841cda333a58d7615b03901380ecf09d59b3296d21f8bbac0dde4e"
  • Network accessline 3304
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3316
    name = "tokio-util" version = "0.7.19" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3317
    version = "0.7.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "494815d09bf52b5548659851081238f0ca39ff638363907596da739561c62c52"
  • Network accessline 3318
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3329
    name = "toml" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3330
    version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d"
  • Network accessline 3331
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3341
    name = "toml" version = "1.1.4+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3342
    version = "1.1.4+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3aace63f4bbcdfc2c965b059de67119c89c4017a70d633be6c104910f67056f5"
  • Network accessline 3343
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3356
    name = "toml_datetime" version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3357
    version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
  • Network accessline 3358
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3365
    name = "toml_datetime" version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3366
    version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7"
  • Network accessline 3367
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3374
    name = "toml_edit" version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3375
    version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
  • Network accessline 3376
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3385
    name = "toml_edit" version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3386
    version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
  • Network accessline 3387
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3398
    name = "toml_edit" version = "0.25.13+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3399
    version = "0.25.13+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6975367e4d2ef766d86af01ffad14b622fecc8d4357a998fbc4deb6e9bacaf9b"
  • Network accessline 3400
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3410
    name = "toml_parser" version = "1.1.3+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3411
    version = "1.1.3+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56"
  • Network accessline 3412
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3419
    name = "toml_writer" version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3420
    version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d56353a2a665ad0f41a421187180aab746c8c325620617ad883a99a1cbe66d2"
  • Network accessline 3421
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3425
    name = "tower" version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3426
    version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4"
  • Network accessline 3427
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3440
    name = "tower-http" version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3441
    version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840"
  • Network accessline 3442
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3458
    name = "tower-layer" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3459
    version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e"
  • Network accessline 3460
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3464
    name = "tower-service" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3465
    version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3"
  • Network accessline 3466
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3470
    name = "tracing" version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3471
    version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100"
  • Network accessline 3472
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3480
    name = "tracing-core" version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3481
    version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a"
  • Network accessline 3482
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3489
    name = "tray-icon" version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3490
    version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2b9c52859a94554803ccd4a24b98f74148ebc73b90676d783f3490b1bff9d72"
  • Network accessline 3491
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3511
    name = "try-lock" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3512
    version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
  • Network accessline 3513
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3517
    name = "typeid" version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3518
    version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c"
  • Network accessline 3519
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3523
    name = "typenum" version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3524
    version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20"
  • Network accessline 3525
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3529
    name = "unicode-ident" version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3530
    version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
  • Network accessline 3531
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3535
    name = "unicode-segmentation" version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3536
    version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8"
  • Network accessline 3537
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3541
    name = "url" version = "2.5.8" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3542
    version = "2.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed"
  • Network accessline 3543
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3554
    name = "urlpattern" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3555
    version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df16f50ef4cc145211879a3867ba757076b25dfee812040dcb0658bd9ae7904b"
  • Network accessline 3556
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3566
    name = "utf8_iter" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3567
    version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
  • Network accessline 3568
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3572
    name = "uuid" version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3573
    version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf3923a6f5c4c6382e0b653c4117f48d631ea17f38ed86e2a828e6f7412f5239"
  • Network accessline 3574
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3584
    name = "version-compare" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3585
    version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e"
  • Network accessline 3586
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3590
    name = "version_check" version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3591
    version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
  • Network accessline 3592
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3596
    name = "vswhom" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3597
    version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b"
  • Network accessline 3598
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3606
    name = "vswhom-sys" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3607
    version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb067e4cbd1ff067d1df46c9194b5de0e98efd2810bbc95c5d5e5f25a3231150"
  • Network accessline 3608
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3616
    name = "walkdir" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3617
    version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
  • Network accessline 3618
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3626
    name = "want" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3627
    version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
  • Network accessline 3628
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3635
    name = "wasi" version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3636
    version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
  • Network accessline 3637
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3641
    name = "wasip2" version = "1.0.4+wasi-0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3642
    version = "1.0.4+wasi-0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487"
  • Network accessline 3643
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3650
    name = "wasm-bindgen" version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3651
    version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4"
  • Network accessline 3652
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3663
    name = "wasm-bindgen-futures" version = "0.4.76" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3664
    version = "0.4.76" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c62df1340f32221cb9c54d6a27b030e3dba64361d4a95bed55f9aacb44da291d"
  • Network accessline 3665
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3673
    name = "wasm-bindgen-macro" version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3674
    version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1"
  • Network accessline 3675
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3683
    name = "wasm-bindgen-macro-support" version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3684
    version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e"
  • Network accessline 3685
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3696
    name = "wasm-bindgen-shared" version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3697
    version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24"
  • Network accessline 3698
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3705
    name = "wasm-streams" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3706
    version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb"
  • Network accessline 3707
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3718
    name = "web-sys" version = "0.3.103" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3719
    version = "0.3.103" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8622dcb61c0bcc9fffa6938bed81210af2da9a7e4a1a834b2e37a59b6dfb6141"
  • Network accessline 3720
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3728
    name = "web-time" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3729
    version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb"
  • Network accessline 3730
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3738
    name = "web_atoms" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3739
    version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "075474b12bcb3d2e3d4546580e9de478eeeead668a1761e2a8860c836b7ef297"
  • Network accessline 3740
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3750
    name = "webkit2gtk" version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3751
    version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1027150013530fb2eaf806408df88461ae4815a45c541c8975e61d6f2fc4793"
  • Network accessline 3752
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3774
    name = "webkit2gtk-sys" version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3775
    version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "916a5f65c2ef0dfe12fff695960a2ec3d4565359fdbb2e9943c974e06c734ea5"
  • Network accessline 3776
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3794
    name = "webview2-com" version = "0.39.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3795
    version = "0.39.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f89fca7a704cee10dcb3654c1dbb8941d1783132f1917358af75bec37a7d7e6"
  • Network accessline 3796
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3806
    name = "webview2-com-macros" version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3807
    version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67a921c1b6914c367b2b823cd4cde6f96beec77d30a939c8199bb377cf9b9b54"
  • Network accessline 3808
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3817
    name = "webview2-com-sys" version = "0.39.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3818
    version = "0.39.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3a07132775117d6065853d9d1178157b8c90e228de47129d6bce2c7edebedfb"
  • Network accessline 3819
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3828
    name = "winapi" version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3829
    version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
  • Network accessline 3830
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3838
    name = "winapi-i686-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3839
    version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
  • Network accessline 3840
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3844
    name = "winapi-util" version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3845
    version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
  • Network accessline 3846
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3853
    name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3854
    version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
  • Network accessline 3855
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3859
    name = "window-vibrancy" version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3860
    version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "111e51caca442cafd9bab396628ac4d814880eaea4e63dfd76a12e9f342b5580"
  • Network accessline 3861
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3875
    name = "windows" version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3876
    version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580"
  • Network accessline 3877
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3887
    name = "windows-collections" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3888
    version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610"
  • Network accessline 3889
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3896
    name = "windows-core" version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3897
    version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb"
  • Network accessline 3898
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3909
    name = "windows-future" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3910
    version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb"
  • Network accessline 3911
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3920
    name = "windows-implement" version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3921
    version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf"
  • Network accessline 3922
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3931
    name = "windows-interface" version = "0.59.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3932
    version = "0.59.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358"
  • Network accessline 3933
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3942
    name = "windows-link" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3943
    version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
  • Network accessline 3944
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3948
    name = "windows-numerics" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3949
    version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26"
  • Network accessline 3950
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3958
    name = "windows-result" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3959
    version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5"
  • Network accessline 3960
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3967
    name = "windows-strings" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3968
    version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091"
  • Network accessline 3969
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3976
    name = "windows-sys" version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3977
    version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
  • Network accessline 3978
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3985
    name = "windows-sys" version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3986
    version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
  • Network accessline 3987
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3994
    name = "windows-sys" version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 3995
    version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
  • Network accessline 3996
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4003
    name = "windows-targets" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4004
    version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
  • Network accessline 4005
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4018
    name = "windows-targets" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4019
    version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
  • Network accessline 4020
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4034
    name = "windows-threading" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4035
    version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37"
  • Network accessline 4036
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4043
    name = "windows-version" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4044
    version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4060a1da109b9d0326b7262c8e12c84df67cc0dbc9e33cf49e01ccc2eb63631"
  • Network accessline 4045
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4052
    name = "windows_aarch64_gnullvm" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4053
    version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
  • Network accessline 4054
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4058
    name = "windows_aarch64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4059
    version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
  • Network accessline 4060
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4064
    name = "windows_aarch64_msvc" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4065
    version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
  • Network accessline 4066
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4070
    name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4071
    version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
  • Network accessline 4072
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4076
    name = "windows_i686_gnu" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4077
    version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
  • Network accessline 4078
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4082
    name = "windows_i686_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4083
    version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
  • Network accessline 4084
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4088
    name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4089
    version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
  • Network accessline 4090
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4094
    name = "windows_i686_msvc" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4095
    version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
  • Network accessline 4096
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4100
    name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4101
    version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
  • Network accessline 4102
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4106
    name = "windows_x86_64_gnu" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4107
    version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
  • Network accessline 4108
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4112
    name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4113
    version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
  • Network accessline 4114
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4118
    name = "windows_x86_64_gnullvm" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4119
    version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
  • Network accessline 4120
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4124
    name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4125
    version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
  • Network accessline 4126
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4130
    name = "windows_x86_64_msvc" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4131
    version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
  • Network accessline 4132
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4136
    name = "windows_x86_64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4137
    version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
  • Network accessline 4138
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4142
    name = "winnow" version = "0.5.40" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4143
    version = "0.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
  • Network accessline 4144
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4151
    name = "winnow" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4152
    version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81"
  • Network accessline 4153
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4160
    name = "winreg" version = "0.55.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4161
    version = "0.55.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97"
  • Network accessline 4162
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4170
    name = "wit-bindgen" version = "0.57.1" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4171
    version = "0.57.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e"
  • Network accessline 4172
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4176
    name = "writeable" version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4177
    version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4"
  • Network accessline 4178
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4182
    name = "wry" version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4183
    version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a819957a01b3119af85e638a38d242af76dbc87d130dca67bfd0441072e21ff0"
  • Network accessline 4184
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4226
    name = "x11" version = "2.21.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4227
    version = "2.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e"
  • Network accessline 4228
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4236
    name = "x11-dl" version = "2.21.0" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4237
    version = "2.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f"
  • Network accessline 4238
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4247
    name = "yoke" version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4248
    version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5"
  • Network accessline 4249
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4258
    name = "yoke-derive" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4259
    version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e"
  • Network accessline 4260
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4270
    name = "zerofrom" version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4271
    version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272"
  • Network accessline 4272
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4279
    name = "zerofrom-derive" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4280
    version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1"
  • Network accessline 4281
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4291
    name = "zerotrie" version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4292
    version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf"
  • Network accessline 4293
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4302
    name = "zerovec" version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4303
    version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239"
  • Network accessline 4304
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4313
    name = "zerovec-derive" version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4314
    version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555"
  • Network accessline 4315
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4324
    name = "zmij" version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index"
  • Network accessline 4325
    version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
  • Network accessline 4326
    source = "registry+https://github.com/rust-lang/crates.io-index"

adapters/realm/tauri/Cargo.toml

  • Network accessline 7
    # crates.io shows these on the crate page; `repository` is also what links the published crate back # to the source a reader can verify it against. repository = "https://github.com/reticlehq/reticle"
  • Network accessline 8
    # to the source a reader can verify it against. repository = "https://github.com/reticlehq/reticle" homepage = "https://reticle.dev"
  • Network accessline 9
    repository = "https://github.com/reticlehq/reticle"
  • Network accessline 10
    homepage = "https://reticle.dev"
  • Network accessline 11
    documentation = "https://docs.rs/reticle-tauri"

adapters/realm/tauri/README.md

  • Network accessline 3
    Screenshots and headless mode for a Tauri app running under [Reticle](https://reticle.sh).

adapters/realm/tauri/src/lib.rs

  • Access to secretsline 24
    [Credential-related source omitted]

apps/api/package.json

  • Executable scriptline 1
    Executable file

apps/api/server.mjs

  • Executable scriptline 1
    Executable file
  • Access to secretsline 120
    [Credential-related source omitted]
  • Access to secretsline 124
    [Credential-related source omitted]
  • Network accessline 125
    if (key) {     try {       const r = await fetch('https://api.anthropic.com/v1/messages', {
  • Network accessline 126
    try {       const r = await fetch('https://api.anthropic.com/v1/messages', {         method: 'POST',
  • Network accessline 127
    const r = await fetch('https://api.anthropic.com/v1/messages', {
  • Network accessline 358
    wss.on('connection', (socket, req) => {   const wrongChannel =     new URL(req.url, 'http://localhost').searchParams.get('wrongChannel') === '1';
  • Network accessline 359
    const wrongChannel =     new URL(req.url, 'http://localhost').searchParams.get('wrongChannel') === '1';   socket.on('message', (raw) => {
  • Network accessline 360
    new URL(req.url, 'http://localhost').searchParams.get('wrongChannel') === '1';   socket.on('message', (raw) => {     let channel = 'deployments';
  • Network accessline 392
    console.log(`[reticle-api] listening on http://localhost:${PORT} (reflect=${REFLECT_MS}ms)`);

apps/atlas/Dockerfile

  • Executable scriptline 1
    Executable file
  • Access to secretsline 15
    [Credential-related source omitted]

apps/atlas/package.json

  • Executable scriptline 1
    Executable file

apps/atlas/public/frames/sla.html

  • Network accessline 9
    document.querySelector('[data-testid="frame-escalate"]').addEventListener('click', () => {         document.querySelector('[data-testid="frame-sla"]').textContent = 'Carrier SLA: escalated';         fetch('/api/shipments?status=held&page=1&
  • Network accessline 10
    document.querySelector('[data-testid="frame-sla"]').textContent = 'Carrier SLA: escalated';         fetch('/api/shipments?status=held&page=1&size=1');       });
  • Network accessline 11
    fetch('/api/shipments?status=held&page=1&size=1');

apps/atlas/server/mock-api.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 204
    next: () => void, ): Promise<void> {   const url = new URL(req.url ?? '/', 'http://localhost');
  • Network accessline 205
    ): Promise<void> {   const url = new URL(req.url ?? '/', 'http://localhost');   if (!url.pathname.startsWith('/api/')) {
  • Network accessline 206
    const url = new URL(req.url ?? '/', 'http://localhost');

apps/atlas/server/serve.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 47
    createServer((req, res) => {   void handleApi(req, res, () => {     const pathname = new URL(req.url ?? '/', 'http://localhost').pathname;
  • Network accessline 48
    void handleApi(req, res, () => {     const pathname = new URL(req.url ?? '/', 'http://localhost').pathname;     if (pathname === '/healthz') {
  • Network accessline 49
    const pathname = new URL(req.url ?? '/', 'http://localhost').pathname;

apps/atlas/src/EmbeddedPanels.tsx

  • Executable scriptline 1
    Executable file

apps/atlas/src/ShipmentsTable.tsx

  • Executable scriptline 1
    Executable file
  • Network accessline 65
    ...(search.length > 0 ? { search } : {}),     });     void fetch(`/api/shipments?${params.toString()}`)
  • Network accessline 66
    });     void fetch(`/api/shipments?${params.toString()}`)       .then((r) => r.json())
  • Network accessline 67
    void fetch(`/api/shipments?${params.toString()}`)
  • Network accessline 104
    optimisticDispatch(id);     void fetch('/api/dispatch', {
  • Network accessline 105
    void fetch('/api/dispatch', {
  • Network accessline 123
    const holdSelected = (): void => {     const ids = [...selected];     void fetch('/api/bulk-hold', {
  • Network accessline 124
    const ids = [...selected];     void fetch('/api/bulk-hold', {       method: 'POST',
  • Network accessline 125
    void fetch('/api/bulk-hold', {

apps/atlas/src/WriteStorm.tsx

  • Executable scriptline 1
    Executable file

apps/atlas/src/custom-elements.d.ts

  • Executable scriptline 1
    Executable file

apps/atlas/src/main.tsx

  • Executable scriptline 1
    Executable file

apps/atlas/src/store.ts

  • Executable scriptline 1
    Executable file

apps/atlas/vite.config.ts

  • Executable scriptline 1
    Executable file

apps/bench-app/package.json

  • Executable scriptline 1
    Executable file

apps/bench-app/src/App.tsx

  • Executable scriptline 1
    Executable file

apps/bench-app/src/components/AreaChart.tsx

  • Executable scriptline 1
    Executable file

apps/bench-app/src/components/BuildLogStream.tsx

  • Executable scriptline 1
    Executable file
  • Network accessline 23
    sse: 'http://localhost:8787/api/build-log',

apps/bench-app/src/components/CommandPalette.tsx

  • Executable scriptline 1
    Executable file

apps/bench-app/src/components/DeepPanels.tsx

  • Executable scriptline 1
    Executable file
  • Network accessline 40
    button.addEventListener('click', () => {       void fetch(`${API_BASE}/api/health`).catch(() => undefined);
  • Network accessline 41
    void fetch(`${API_BASE}/api/health`).catch(() => undefined);

apps/bench-app/src/components/DeployDrawer.tsx

  • Executable scriptline 1
    Executable file

apps/bench-app/src/components/DeployTable.tsx

  • Executable scriptline 1
    Executable file

apps/bench-app/src/components/Login.tsx

  • Executable scriptline 1
    Executable file

apps/bench-app/src/components/NewDeployModal.tsx

  • Executable scriptline 1
    Executable file
  • Access to secretsline 14
    [Credential-related source omitted]

apps/bench-app/src/components/QueryPanel.tsx

  • Executable scriptline 1
    Executable file
  • Network accessline 27
    async function fetchItems(): Promise<ItemsResponse> {   const res = await fetch(`${API_BASE}/api/items?limit=1`, {
  • Network accessline 28
    const res = await fetch(`${API_BASE}/api/items?limit=1`, {
  • Network accessline 39
    const add = useMutation({     mutationFn: async () => {       const res = await fetch(`${API_BASE}/api/items`, {
  • Network accessline 40
    mutationFn: async () => {       const res = await fetch(`${API_BASE}/api/items`, {         method: 'POST',
  • Network accessline 41
    const res = await fetch(`${API_BASE}/api/items`, {

apps/bench-app/src/components/Sidebar.tsx

  • Executable scriptline 1
    Executable file

apps/bench-app/src/components/TimingPanel.tsx

  • Executable scriptline 1
    Executable file
  • Network accessline 18
    const API = 'http://localhost:8787';
  • Network accessline 51
    if (0 === query.length) return;     const fire = (): void => {       void fetch(`${API}/api/search?q=${encodeURIComponent(query)}`)
  • Network accessline 52
    const fire = (): void => {       void fetch(`${API}/api/search?q=${encodeURIComponent(query)}`)         .then((r) => r.json())
  • Network accessline 53
    void fetch(`${API}/api/search?q=${encodeURIComponent(query)}`)
  • Network accessline 76
    for (let attempt = 1; attempt <= TIMING_CONFIG.maxAttempts; attempt += 1) {       try {         const res = await fetch(`${API}/api/flaky`);
  • Network accessline 77
    try {         const res = await fetch(`${API}/api/flaky`);         if (res.ok) {
  • Network accessline 78
    const res = await fetch(`${API}/api/flaky`);

apps/bench-app/src/components/Toasts.tsx

  • Executable scriptline 1
    Executable file

apps/bench-app/src/components/Topbar.tsx

  • Executable scriptline 1
    Executable file

apps/bench-app/src/components/icons.tsx

  • Executable scriptline 1
    Executable file

apps/bench-app/src/components/primitives.tsx

  • Executable scriptline 1
    Executable file

apps/bench-app/src/data/seed.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 90
    [Credential-related source omitted]

apps/bench-app/src/lib/api.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 2
    export const API_BASE = 'http://localhost:8787';
  • Network accessline 26
    const t0 = performance.now();   try {     const res = await fetch(`${BASE}${path}`, { method, ...init });
  • Network accessline 27
    try {     const res = await fetch(`${BASE}${path}`, { method, ...init });     return {
  • Network accessline 28
    const res = await fetch(`${BASE}${path}`, { method, ...init });

apps/bench-app/src/lib/enterprise-config.ts

  • Executable scriptline 1
    Executable file

apps/bench-app/src/lib/fixture-views.ts

  • Executable scriptline 1
    Executable file

apps/bench-app/src/lib/persisted-session.ts

  • Executable scriptline 1
    Executable file

apps/bench-app/src/lib/query-client.ts

  • Executable scriptline 1
    Executable file

apps/bench-app/src/lib/reticle-bridge.ts

  • Executable scriptline 1
    Executable file

apps/bench-app/src/main.tsx

  • Executable scriptline 1
    Executable file

apps/bench-app/src/reticle-ambient.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 46
    * ad-blocker refuses reach the page as the same thing — a rejected fetch carrying no status.  */ const VENDOR_BEACON_URL = 'https://collect.telemetry-vendor.invalid/collect';
  • Network accessline 47
    */ const VENDOR_BEACON_URL = 'https://collect.telemetry-vendor.invalid/collect'; const AD_NETWORK_PIXEL_URL = 'https://ads.tracker-network.invalid/px.gif';
  • Network accessline 48
    const VENDOR_BEACON_URL = 'https://collect.telemetry-vendor.invalid/collect';
  • Network accessline 49
    const AD_NETWORK_PIXEL_URL = 'https://ads.tracker-network.invalid/px.gif';
  • Network accessline 92
    function post(url: string, body: Record<string, unknown>): void {   ignoreFailure(     fetch(url, {
  • Network accessline 93
    ignoreFailure(     fetch(url, {       method: 'POST',
  • Network accessline 94
    fetch(url, {
  • Network accessline 125
    const pixel = (): void => {       ignoreFailure(fetch(AD_NETWORK_PIXEL_URL, { mode: 'no-cors' }));
  • Network accessline 126
    ignoreFailure(fetch(AD_NETWORK_PIXEL_URL, { mode: 'no-cors' }));
  • Network accessline 134
    ignoreFailure(fetch(FIRST_PARTY_FAILING_URL));
  • Network accessline 135
    }   if (ambientEnabled(Ambient.POLL)) {     const ping = (): void => ignoreFailure(fetch(FIRST_PARTY_FAILING_URL));
  • Network accessline 136
    if (ambientEnabled(Ambient.POLL)) {     const ping = (): void => ignoreFailure(fetch(FIRST_PARTY_FAILING_URL));     ping();
  • Network accessline 137
    const ping = (): void => ignoreFailure(fetch(FIRST_PARTY_FAILING_URL));

apps/bench-app/src/reticle-bug-injector.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 52
    const BUG_PARAM = 'reticle-bug'; const STYLE_ID = 'reticle-hard-bug-style'; const API_BASE = 'http://localhost:8787';
  • Network accessline 53
    const STYLE_ID = 'reticle-hard-bug-style'; const API_BASE = 'http://localhost:8787'; const CONSOLE_MSG = '[regression] handler: unhandled rejection while formatting result';
  • Network accessline 54
    const API_BASE = 'http://localhost:8787';
  • Access to secretsline 630
    [Credential-related source omitted]
  • Network accessline 979
    const init: RequestInit =           'POST' === f.method ? { method: 'POST', body: '{}' } : { method: 'GET' };         void window.fetch(f.url, init).catch(() => undefined);
  • Network accessline 980
    'POST' === f.method ? { method: 'POST', body: '{}' } : { method: 'GET' };         void window.fetch(f.url, init).catch(() => undefined);       }
  • Network accessline 981
    void window.fetch(f.url, init).catch(() => undefined);
  • Network accessline 1042
    // Duplicate via the LIVE window.fetch (outermost wrapper) so Reticle records it regardless of
  • Network accessline 1044
    const clone = input instanceof Request ? input.clone() : input;           void window.fetch(clone, init).catch(() => undefined);
  • Network accessline 1045
    void window.fetch(clone, init).catch(() => undefined);

apps/bench-app/src/reticle-dev.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 102
    [Credential-related source omitted]

apps/bench-app/src/reticle-opaque.ts

  • Executable scriptline 1
    Executable file

apps/bench-app/src/reticle-regress.ts

  • Executable scriptline 1
    Executable file

apps/bench-app/src/reticle-render-setup.ts

  • Executable scriptline 1
    Executable file

apps/bench-app/src/store/store.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 137
    const endpoint =         0 < serverDelayMs           ? `http://localhost:8787/api/saved-items?delay=${String(serverDelayMs)}`
  • Network accessline 138
    0 < serverDelayMs           ? `http://localhost:8787/api/saved-items?delay=${String(serverDelayMs)}`           : 'http://localhost:8787/api/saved-items';
  • Network accessline 139
    ? `http://localhost:8787/api/saved-items?delay=${String(serverDelayMs)}`           : 'http://localhost:8787/api/saved-items';       const res = await fetch(endpoint, {
  • Network accessline 140
    : 'http://localhost:8787/api/saved-items';       const res = await fetch(endpoint, {         method: 'POST',
  • Network accessline 141
    const res = await fetch(endpoint, {

apps/bench-app/src/styles.css

  • Network accessline 6
    hairline-bordered glass, JetBrains-Mono instrumentation.    ============================================================================ */ @import url('https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;700;800&family
  • Network accessline 8
    @import url('https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap');

apps/bench-app/src/views/AckPairs.tsx

  • Executable scriptline 1
    Executable file
  • Network accessline 11
    * The two invite buttons use different URLs, so the failure of one never happened before the other.  */ const API = 'http://localhost:8787/api/ack-pairs';
  • Network accessline 12
    */ const API = 'http://localhost:8787/api/ack-pairs'; const JSON_HEADERS = { 'Content-Type': 'application/json' };
  • Network accessline 13
    const API = 'http://localhost:8787/api/ack-pairs';
  • Network accessline 19
    async function sendInvite(path: string): Promise<Response> {   return fetch(`${API}/${path}`, {
  • Network accessline 20
    return fetch(`${API}/${path}`, {
  • Network accessline 39
    async function saveOrder(): Promise<void> {   await fetch(`${API}/order`, { method: 'POST', headers: JSON_HEADERS, body: '{"sku":"pro"}' });
  • Network accessline 40
    await fetch(`${API}/order`, { method: 'POST', headers: JSON_HEADERS, body: '{"sku":"pro"}' });

apps/bench-app/src/views/AwkwardControls.tsx

  • Executable scriptline 1
    Executable file
  • Network accessline 23
    *    fine. The fixture exists so the honesty of that gap can be pinned rather than argued about.  */ const API = 'http://localhost:8787';
  • Network accessline 25
    const API = 'http://localhost:8787';
  • Network accessline 46
    if (file === undefined) return;     setPicked(file.name);     const res = await fetch(`${API}/api/score`, {
  • Network accessline 47
    setPicked(file.name);     const res = await fetch(`${API}/api/score`, {       method: 'POST',
  • Network accessline 48
    const res = await fetch(`${API}/api/score`, {

apps/bench-app/src/views/ClaimPairs.tsx

  • Executable scriptline 1
    Executable file
  • Network accessline 9
    *    by testid (`yes`), and a row of the list that is not rendered asserted absent (`unknown`).  */ const API = 'http://localhost:8787/api/claim-pairs';
  • Network accessline 11
    const API = 'http://localhost:8787/api/claim-pairs';
  • Network accessline 30
    useEffect(() => {     void fetch(`${API}/rows`)
  • Network accessline 31
    void fetch(`${API}/rows`)
  • Network accessline 80
    data-testid="claim-pairs-archive"           onClick={() =>             void fetch(`${API}/archive`, {
  • Network accessline 81
    onClick={() =>             void fetch(`${API}/archive`, {               method: 'POST',
  • Network accessline 82
    void fetch(`${API}/archive`, {

apps/bench-app/src/views/Compose.tsx

  • Executable scriptline 1
    Executable file

apps/bench-app/src/views/Deployments.tsx

  • Executable scriptline 1
    Executable file

apps/bench-app/src/views/Diagnostics.tsx

  • Executable scriptline 1
    Executable file

apps/bench-app/src/views/Enterprise.tsx

  • Executable scriptline 1
    Executable file

apps/bench-app/src/views/ExpiringAuth.tsx

  • Executable scriptline 1
    Executable file
  • Network accessline 24
    * refresh, and a real retry that succeeds — all from one click.  */ const API = 'http://localhost:8787';
  • Network accessline 26
    const API = 'http://localhost:8787';
  • Network accessline 36
    const url = `${API}/api/expiring-write?expireFirst=1&key=${key}`;     const send = (bearer: string): Promise<Response> =>       fetch(url, {
  • Network accessline 37
    const send = (bearer: string): Promise<Response> =>       fetch(url, {         method: 'POST',
  • Network accessline 38
    fetch(url, {
  • Network accessline 48
    const refreshed = (await (         await fetch(`${API}/api/auth/refresh`, { method: 'POST' })
  • Network accessline 49
    await fetch(`${API}/api/auth/refresh`, { method: 'POST' })

apps/bench-app/src/views/Hostile.tsx

  • Executable scriptline 1
    Executable file
  • Network accessline 44
    void fetch(`${API_BASE}/api/broken/500`)

apps/bench-app/src/views/Overview.tsx

  • Executable scriptline 1
    Executable file

apps/bench-app/src/views/RulePairs.tsx

  • Executable scriptline 1
    Executable file
  • Network accessline 28
    *    sent (silent), and an `invite:sent` signal fired after the 409 (report) (#2172).  */ const API = 'http://localhost:8787/api/rule-pairs';
  • Network accessline 29
    */ const API = 'http://localhost:8787/api/rule-pairs'; /**
  • Network accessline 30
    const API = 'http://localhost:8787/api/rule-pairs'; /**  * `fetch` as it was when this module loaded. `main.tsx` imports the app before it calls
  • Network accessline 52
    async function post(path: string): Promise<void> {   await fetch(`${API}/${path}`, {
  • Network accessline 53
    await fetch(`${API}/${path}`, {
  • Network accessline 63
    async function invite(): Promise<Response> {   return fetch(`${API}/invite`, {
  • Network accessline 64
    return fetch(`${API}/invite`, {
  • Network accessline 71
    async function readPage(list: string): Promise<void> {   await fetch(`${API}/${list}?page=1`);
  • Network accessline 72
    await fetch(`${API}/${list}?page=1`);
  • Network accessline 106
    data-testid="rule-pairs-price"           onClick={() =>             void fetch(`${API}/price`, {
  • Network accessline 107
    onClick={() =>             void fetch(`${API}/price`, {               method: 'POST',
  • Network accessline 108
    void fetch(`${API}/price`, {
  • Network accessline 138
    <button           data-testid="rule-pairs-ping-patched"           onClick={() => void fetch(`${API}/${PING_PATCHED}`, { method: 'POST' })}
  • Network accessline 139
    data-testid="rule-pairs-ping-patched"           onClick={() => void fetch(`${API}/${PING_PATCHED}`, { method: 'POST' })}         >
  • Network accessline 140
    onClick={() => void fetch(`${API}/${PING_PATCHED}`, { method: 'POST' })}
  • Network accessline 149
    data-testid="rule-pairs-batch"           onClick={() =>             void fetch(`${API}/batch`, { method: 'POST' }).then(() => setBatch('All items held'))
  • Network accessline 150
    onClick={() =>             void fetch(`${API}/batch`, { method: 'POST' }).then(() => setBatch('All items held'))           }
  • Network accessline 151
    void fetch(`${API}/batch`, { method: 'POST' }).then(() => setBatch('All items held'))
  • Network accessline 156
    <button           data-testid="rule-pairs-jobs"           onClick={() => void fetch(`${API}/jobs`).then(() => setBatch('Jobs refreshed'))}
  • Network accessline 157
    data-testid="rule-pairs-jobs"           onClick={() => void fetch(`${API}/jobs`).then(() => setBatch('Jobs refreshed'))}         >
  • Network accessline 158
    onClick={() => void fetch(`${API}/jobs`).then(() => setBatch('Jobs refreshed'))}

apps/bench-app/src/views/SavedItems.tsx

  • Executable scriptline 1
    Executable file
  • Network accessline 37
    useEffect(() => {     if (!ambientEnabled(Ambient.STRICT_DUP)) return;     void fetch(`${API_BASE}/api/saved-items`, {
  • Network accessline 38
    if (!ambientEnabled(Ambient.STRICT_DUP)) return;     void fetch(`${API_BASE}/api/saved-items`, {       method: 'POST',
  • Network accessline 39
    void fetch(`${API_BASE}/api/saved-items`, {

apps/bench-app/src/views/StaleRace.tsx

  • Executable scriptline 1
    Executable file
  • Network accessline 12
    *    This app does not drop it, so the control says `held` and the rows show `all`.  */ const API = 'http://localhost:8787';
  • Network accessline 14
    const API = 'http://localhost:8787';
  • Network accessline 22
    async function readItems(type: string): Promise<string> {   const res = await fetch(`${API}/api/stale-race/items?type=${type}`);
  • Network accessline 23
    const res = await fetch(`${API}/api/stale-race/items?type=${type}`);

apps/bench-app/src/vite-env.d.ts

  • Executable scriptline 1
    Executable file

apps/bench-app/vite.config.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 33
    [Credential-related source omitted]

apps/cli-smoke/smoke.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

apps/e2e/await-free-ports.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/client-compat.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/desktop-harness.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 2
    // Shared boot for the desktop battery. // // Unlike the web specs, a desktop spec cannot lean on run-ci.sh: there is no server to curl and no
  • Network accessline 3
    // // Unlike the web specs, a desktop spec cannot lean on run-ci.sh: there is no server to curl and no // URL to open. The app IS the process, so each spec starts its own runtime and waits for it to DIAL
  • Network accessline 4
    // Unlike the web specs, a desktop spec cannot lean on run-ci.sh: there is no server to curl and no
  • Network accessline 223
    async function answers(port) {   try {     return (await fetch(`http://localhost:${String(port)}`)).ok;
  • Network accessline 224
    try {     return (await fetch(`http://localhost:${String(port)}`)).ok;   } catch {
  • Network accessline 225
    return (await fetch(`http://localhost:${String(port)}`)).ok;

apps/e2e/fault-proxy.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/gate-harness.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 194
    export async function transportAlive(port, { timeoutMs = 1_000 } = {}) {   try {     const res = await fetch(`http://localhost:${String(port)}/status`, {
  • Network accessline 195
    try {     const res = await fetch(`http://localhost:${String(port)}/status`, {       signal: AbortSignal.timeout(timeoutMs),
  • Network accessline 196
    const res = await fetch(`http://localhost:${String(port)}/status`, {

apps/e2e/install-control.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/install-control.test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 20
    const CAPABILITIES_MS = 10_000;   const INTERVAL_MS = 500;   const page = 'http://localhost:5173/?reticle-install-run=this-run';
  • Network accessline 21
    const INTERVAL_MS = 500;   const page = 'http://localhost:5173/?reticle-install-run=this-run';   const isOurs = (s) => sessionMatchesPage(s, page);
  • Network accessline 22
    const page = 'http://localhost:5173/?reticle-install-run=this-run';
  • Network accessline 76
    it("another run's session never counts, however capable", async () => {     const stray = session(true, 'http://localhost:5173/?reticle-install-run=previous-run');
  • Network accessline 77
    const stray = session(true, 'http://localhost:5173/?reticle-install-run=previous-run');
  • Network accessline 88
    describe('install page identity', () => {   const page = 'http://localhost:5173/?reticle-install-run=this-run';
  • Network accessline 89
    const page = 'http://localhost:5173/?reticle-install-run=this-run';
  • Network accessline 95
    it.each([     'http://localhost:5173/',
  • Network accessline 96
    'http://localhost:5173/',
  • Network accessline 97
    'http://localhost:5173/?reticle-install-run=previous-run',
  • Network accessline 98
    'http://localhost:5174/?reticle-install-run=this-run',
  • Network accessline 99
    'http://localhost:5173/another-app?reticle-install-run=this-run',
  • Network accessline 106
    it('refuses an unmarked expected page', () => {     expect(sessionMatchesPage({ url: page }, 'http://localhost:5173/')).toBe(false);
  • Network accessline 107
    expect(sessionMatchesPage({ url: page }, 'http://localhost:5173/')).toBe(false);

apps/e2e/install-gate.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 228
    */ const REGISTRY_PORT = Number(process.env.INSTALL_GATE_REGISTRY_PORT ?? '4873'); const REGISTRY = `http://127.0.0.1:${String(REGISTRY_PORT)}`;
  • Network accessline 230
    const REGISTRY = `http://127.0.0.1:${String(REGISTRY_PORT)}`;
  • Network accessline 331
    async function publishInto(proc) {   const res = await fetch(`${REGISTRY}/-/user/org.couchdb.user:reticle`, {
  • Network accessline 332
    const res = await fetch(`${REGISTRY}/-/user/org.couchdb.user:reticle`, {
  • Network accessline 728
    'app',         '--template',         'https://github.com/remix-run/remix/tree/remix@2.16.8/templates/remix',
  • Network accessline 729
    '--template',         'https://github.com/remix-run/remix/tree/remix@2.16.8/templates/remix',         '--no-install',
  • Network accessline 730
    'https://github.com/remix-run/remix/tree/remix@2.16.8/templates/remix',
  • Network accessline 864
    async function reachable(url) {   try {     const res = await fetch(url, { signal: AbortSignal.timeout(1_500) });
  • Network accessline 865
    try {     const res = await fetch(url, { signal: AbortSignal.timeout(1_500) });     return res.status < 500;
  • Network accessline 866
    const res = await fetch(url, { signal: AbortSignal.timeout(1_500) });
  • Network accessline 873
    async function sessionsOn(port) {   try {     const res = await fetch(`http://localhost:${String(port)}/status`, {
  • Network accessline 874
    try {     const res = await fetch(`http://localhost:${String(port)}/status`, {       signal: AbortSignal.timeout(1_500),
  • Network accessline 875
    const res = await fetch(`http://localhost:${String(port)}/status`, {
  • Network accessline 899
    while (Date.now() < deadline) {     try {       const res = await fetch(url, {
  • Network accessline 900
    try {       const res = await fetch(url, {         signal: AbortSignal.timeout(Math.max(1, deadline - Date.now())),
  • Network accessline 901
    const res = await fetch(url, {
  • Network accessline 1419
    // ── 4. what init handed over, used as it was handed over ────────────────────────────────────     //     // The gate used to throw both of these away — it composed `http://localhost:<port>` itself and
  • Network accessline 1420
    //     // The gate used to throw both of these away — it composed `http://localhost:<port>` itself and     // booted a dev server of its own — and each hid a defect that shipped and killed first runs:
  • Network accessline 1421
    // The gate used to throw both of these away — it composed `http://localhost:<port>` itself and
  • Network accessline 1513
    // resource: 403 (Forbidden)" cost a full CI round trip on Windows because it names a status and     // no url — and the two candidates need opposite fixes: a 403 on `ws://…/reticle` is the bridge     // refusing an origin, a 403 on an `htt
  • Network accessline 1514
    // no url — and the two candidates need opposite fixes: a 403 on `ws://…/reticle` is the bridge     // refusing an origin, a 403 on an `http://…/@fs/…` is Vite refusing to serve a file outside its     // allow-list. Both are plausible from 
  • Network accessline 1515
    // refusing an origin, a 403 on an `http://…/@fs/…` is Vite refusing to serve a file outside its
  • Network accessline 1546
    // check used to accept any of them — so a dev server left behind by an earlier scaffold, still     // dialling this bridge port, satisfied it. Measured: the `cra` scaffold passed on a session     // whose url was `http://localhost:5173/`, 
  • Network accessline 1547
    // dialling this bridge port, satisfied it. Measured: the `cra` scaffold passed on a session     // whose url was `http://localhost:5173/`, which is a SvelteKit server from the run before it.     // CRA does not serve 5173 and never did; th
  • Network accessline 1548
    // whose url was `http://localhost:5173/`, which is a SvelteKit server from the run before it.

apps/e2e/install-packages.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/install-packages.test.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/install-sandbox.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Dangerous shell operationline 2
    // The install, the way a user meets it: `curl -fsSL <install.sh> | sh` on a clean machine.
  • Network accessline 2
    // The install, the way a user meets it: `curl -fsSL <install.sh> | sh` on a clean machine.
  • Network accessline 34
    const HOST = 'host.docker.internal'; const REGISTRY = `http://127.0.0.1:${String(REGISTRY_PORT)}`;
  • Network accessline 35
    const REGISTRY = `http://127.0.0.1:${String(REGISTRY_PORT)}`;
  • Network accessline 40
    const SANDBOXES = [   { name: 'node22-debian', image: 'node:22-bookworm', expect: 'installs' },   { name: 'node20-slim', image: 'node:20-bookworm-slim', prep: 'apt-get update -qq && apt-get install -y -qq curl ca-certificates >/dev/null', e
  • Network accessline 41
    { name: 'node22-debian', image: 'node:22-bookworm', expect: 'installs' },   { name: 'node20-slim', image: 'node:20-bookworm-slim', prep: 'apt-get update -qq && apt-get install -y -qq curl ca-certificates >/dev/null', expect: 'installs' },  
  • Network accessline 42
    { name: 'node20-slim', image: 'node:20-bookworm-slim', prep: 'apt-get update -qq && apt-get install -y -qq curl ca-certificates >/dev/null', expect: 'installs' },
  • Network accessline 43
    { name: 'node24-alpine', image: 'node:24-alpine', prep: 'apk add --no-cache curl >/dev/null', expect: 'installs' },
  • Network accessline 44
    { name: 'node18-too-old', image: 'node:18-bookworm-slim', prep: 'apt-get update -qq && apt-get install -y -qq curl ca-certificates >/dev/null', expect: 'refuses', mustSay: /node/i },
  • Network accessline 45
    { name: 'no-node', image: 'ubuntu:24.04', prep: 'apt-get update -qq && apt-get install -y -qq curl ca-certificates >/dev/null', expect: 'refuses', mustSay: /node/i },
  • Network accessline 76
    async function reachable(url) {   try {     return (await fetch(url)).ok;
  • Network accessline 77
    try {     return (await fetch(url)).ok;   } catch {
  • Network accessline 78
    return (await fetch(url)).ok;
  • Network accessline 103
    const user = `sandbox-${String(Date.now())}`;   const res = await fetch(`${REGISTRY}/-/user/org.couchdb.user:${user}`, {
  • Network accessline 104
    const res = await fetch(`${REGISTRY}/-/user/org.couchdb.user:${user}`, {
  • Network accessline 148
    * Asynchronous on purpose. The installer is served from THIS process, and a synchronous spawn  * blocks the event loop the server answers on: every container then failed to fetch the script, and  * `curl | sh` turned that into an empty scri
  • Network accessline 149
    * blocks the event loop the server answers on: every container then failed to fetch the script, and  * `curl | sh` turned that into an empty script that "succeeded" in a second.  */
  • Dangerous shell operationline 150
    * `curl | sh` turned that into an empty script that "succeeded" in a second.
  • Network accessline 150
    * `curl | sh` turned that into an empty script that "succeeded" in a second.
  • Network accessline 166
    async function runSandbox(box) {   const userCommand = `curl -fsSL http://${HOST}:${String(SCRIPT_PORT)}/install.sh | sh`;
  • Dangerous shell operationline 167
    const userCommand = `curl -fsSL http://${HOST}:${String(SCRIPT_PORT)}/install.sh | sh`;
  • Network accessline 167
    const userCommand = `curl -fsSL http://${HOST}:${String(SCRIPT_PORT)}/install.sh | sh`;
  • Network accessline 168
    // The prep is the machine, not the install: a user who can paste a curl command has curl.
  • Network accessline 183
    ? ['-e', 'RETICLE_TELEMETRY=0']       : [           '-e', 'RETICLE_TELEMETRY_URL=http://127.0.0.1:9',
  • Network accessline 184
    : [           '-e', 'RETICLE_TELEMETRY_URL=http://127.0.0.1:9',           '-e', `RETICLE_AGENT_PROMPT_URL=${'unreachable' === box.prompt ? 'http://127.0.0.1:9/prompt.json' : `http://${HOST}:${String(SCRIPT_PORT)}/prompt/${box.prompt}.json`}
  • Network accessline 185
    '-e', 'RETICLE_TELEMETRY_URL=http://127.0.0.1:9',
  • Network accessline 186
    '-e', `RETICLE_AGENT_PROMPT_URL=${'unreachable' === box.prompt ? 'http://127.0.0.1:9/prompt.json' : `http://${HOST}:${String(SCRIPT_PORT)}/prompt/${box.prompt}.json`}`,
  • Network accessline 189
    const { code, output } = await dockerRun([     'run', '--rm',     '-e', `npm_config_registry=http://${HOST}:${String(REGISTRY_PORT)}`,
  • Network accessline 190
    'run', '--rm',     '-e', `npm_config_registry=http://${HOST}:${String(REGISTRY_PORT)}`,     ...promptEnv,
  • Network accessline 191
    '-e', `npm_config_registry=http://${HOST}:${String(REGISTRY_PORT)}`,
  • Dangerous shell operationline 199
    // `curl | sh` exits 0 when curl fails, because sh ran an empty script. The banner is the proof
  • Network accessline 199
    // `curl | sh` exits 0 when curl fails, because sh ran an empty script. The banner is the proof

apps/e2e/matrix.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/multi/multi-agent-sim.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/package.json

  • Executable scriptline 1
    Executable file

apps/e2e/port-ownership.test.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/port-pid.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/replay-is-green.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/replay-is-green.test.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/run-ci.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 102
    echo "==> waiting for servers" for _ in $(seq 1 120); do   curl -s -o /dev/null http://localhost:8787/api/health \
  • Network accessline 103
    for _ in $(seq 1 120); do   curl -s -o /dev/null http://localhost:8787/api/health \     && curl -s -o /dev/null http://localhost:4310 \
  • Network accessline 104
    curl -s -o /dev/null http://localhost:8787/api/health \
  • Network accessline 105
    && curl -s -o /dev/null http://localhost:4310 \
  • Network accessline 106
    && curl -s -o /dev/null http://localhost:3100 \
  • Network accessline 108
    sleep 2 done curl -s -o /dev/null http://localhost:8787/api/health || { echo "api never came up"; cat /tmp/e2e-api.log; exit 1; }
  • Network accessline 109
    done curl -s -o /dev/null http://localhost:8787/api/health || { echo "api never came up"; cat /tmp/e2e-api.log; exit 1; } curl -s -o /dev/null http://localhost:4310 || { echo "bench-app never came up"; cat /tmp/e2e-demo.log; exit 1; }
  • Network accessline 110
    curl -s -o /dev/null http://localhost:8787/api/health || { echo "api never came up"; cat /tmp/e2e-api.log; exit 1; }
  • Network accessline 111
    curl -s -o /dev/null http://localhost:4310 || { echo "bench-app never came up"; cat /tmp/e2e-demo.log; exit 1; }
  • Network accessline 112
    curl -s -o /dev/null http://localhost:3100 || { echo "next never came up"; cat /tmp/e2e-next.log; exit 1; }
  • Network accessline 114
    # A port that ANSWERS is not the same as OUR app answering. `next dev` exits instantly with # EADDRINUSE when something else already holds :3100, and the curl above then happily succeeds
  • Network accessline 115
    # EADDRINUSE when something else already holds :3100, and the curl above then happily succeeds

apps/e2e/run-desktop.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Access to secretsline 46
    [Credential-related source omitted]

apps/e2e/run.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/smoke-checks.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/smoke-checks.test.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/smoke.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 45
    <script> async function increment() {   const response = await fetch('/increment', { method: 'POST' });
  • Network accessline 46
    async function increment() {   const response = await fetch('/increment', { method: 'POST' });   const result = await response.json();
  • Network accessline 47
    const response = await fetch('/increment', { method: 'POST' });
  • Access to secretsline 114
    [Credential-related source omitted]
  • Network accessline 174
    call,     refusal,     url: `http://127.0.0.1:${appPort}/`,
  • Network accessline 175
    refusal,     url: `http://127.0.0.1:${appPort}/`,     writes: () => writes,
  • Network accessline 176
    url: `http://127.0.0.1:${appPort}/`,

apps/e2e/soak.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 47
    const ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..'); const PORT = process.env.RETICLE_PORT ?? '4400'; const APP = process.env.SOAK_APP_URL ?? 'http://localhost:4310/';
  • Network accessline 48
    const PORT = process.env.RETICLE_PORT ?? '4400'; const APP = process.env.SOAK_APP_URL ?? 'http://localhost:4310/'; const HISTORY = path.join(ROOT, 'bench', 'soak-history.jsonl');
  • Network accessline 49
    const APP = process.env.SOAK_APP_URL ?? 'http://localhost:4310/';

apps/e2e/specs/acknowledged-failed-write-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 34
    const APP_URL = 'http://localhost:4310/';

apps/e2e/specs/atlas-hard-fixture-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 26
    const ATLAS_PORT = Number(process.env.ATLAS_TEST_PORT ?? 14320); const ATLAS_URL = `http://localhost:${String(ATLAS_PORT)}/`;
  • Network accessline 27
    const ATLAS_URL = `http://localhost:${String(ATLAS_PORT)}/`;
  • Access to secretsline 67
    [Credential-related source omitted]
  • Network accessline 82
    const server = await start({ port: TEST_BRIDGE_PORT, mcp: false }); for (let i = 0; i < 240; i++) {   try { if ((await fetch(ATLAS_URL)).ok) break; } catch { /* not up yet */ }
  • Network accessline 83
    for (let i = 0; i < 240; i++) {   try { if ((await fetch(ATLAS_URL)).ok) break; } catch { /* not up yet */ }   await sleep(500);
  • Network accessline 84
    try { if ((await fetch(ATLAS_URL)).ok) break; } catch { /* not up yet */ }

apps/e2e/specs/auth-retry-not-a-defect-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 44
    const APP_URL = 'http://localhost:4310/';

apps/e2e/specs/awkward-controls-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 42
    const APP_URL = 'http://localhost:4310/';

apps/e2e/specs/blind-spot-reset-test.mjs

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 6
    import { mkdtemp, rm } from 'node:fs/promises';
  • Network accessline 57
    function report(stage) {   requestAnimationFrame(() => requestAnimationFrame(() => {     fetch('/layout', { method:'POST', body:JSON.stringify({
  • Network accessline 58
    requestAnimationFrame(() => requestAnimationFrame(() => {     fetch('/layout', { method:'POST', body:JSON.stringify({       fixture, stage, ordinary:geometry('ordinary'), virtual:geometry('virtual')
  • Network accessline 59
    fetch('/layout', { method:'POST', body:JSON.stringify({
  • Network accessline 206
    const address = app.address();   assert(address && typeof address === 'object');   const origin = `http://127.0.0.1:${address.port}`;
  • Network accessline 207
    assert(address && typeof address === 'object');   const origin = `http://127.0.0.1:${address.port}`;   const reservation = createPortReservation();
  • Network accessline 208
    const origin = `http://127.0.0.1:${address.port}`;

apps/e2e/specs/bridge-stress-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 58
    protocolVersion: RETICLE_PROTOCOL_VERSION,   sessionId,   url: `http://localhost/${sessionId}`,
  • Network accessline 59
    sessionId,   url: `http://localhost/${sessionId}`,   title: 'stress',
  • Network accessline 60
    url: `http://localhost/${sessionId}`,
  • Network accessline 82
    async function statusSessions() {   const res = await fetch(`http://127.0.0.1:${String(PORT)}/status`).catch(() => null);
  • Network accessline 83
    const res = await fetch(`http://127.0.0.1:${String(PORT)}/status`).catch(() => null);

apps/e2e/specs/browser-stress-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 20
    const PORT = process.env.BROWSER_STRESS_PORT ?? String(TEST_BRIDGE_PORT); const APP = process.env.BROWSER_STRESS_APP ?? 'http://localhost:4310/';
  • Network accessline 21
    const APP = process.env.BROWSER_STRESS_APP ?? 'http://localhost:4310/';

apps/e2e/specs/crawl-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 22
    const b = await chromium.launch({ headless: true }); const p = await b.newPage(); await p.goto('http://localhost:3100/');
  • Network accessline 23
    const p = await b.newPage(); await p.goto('http://localhost:3100/'); await waitForSession(()=>server.bridge.sessions.list(), 'next-smoke');
  • Network accessline 24
    await p.goto('http://localhost:3100/');

apps/e2e/specs/daemon-heartbeat-test.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/specs/daemon-lifecycle-test.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/specs/daemon-port-honesty-test.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/specs/drive-attach-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 25
    const PORT = Number(process.env.DRIVE_ATTACH_PORT ?? String(TEST_BRIDGE_PORT)); const APP = process.env.DRIVE_ATTACH_URL ?? 'http://localhost:3100/';
  • Network accessline 26
    const APP = process.env.DRIVE_ATTACH_URL ?? 'http://localhost:3100/';

apps/e2e/specs/drive-launch-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 7
    let pass=0,fail=0; const chk=(l,o,d='')=>{console.log(`   ${o?'✅':'❌'} ${l}${d?'  — '+d:''}`);o?pass++:fail++;}; const server=await start({port: TEST_BRIDGE_PORT,mcp:false}); const provider=new LaunchedRealInputProvider({driveUrl:'http://lo
  • Network accessline 8
    const server=await start({port: TEST_BRIDGE_PORT,mcp:false}); const provider=new LaunchedRealInputProvider({driveUrl:'http://localhost:3100/',headless:true}); await provider.navigate(); // launches Chromium + goto → page SDK connects to the
  • Network accessline 9
    const provider=new LaunchedRealInputProvider({driveUrl:'http://localhost:3100/',headless:true});

apps/e2e/specs/electron-desktop-test.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/specs/electron-vite-desktop-test.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/specs/feedback-durability-test.mjs

  • Executable scriptline 1
    Executable file
  • Access to secretsline 14
    [Credential-related source omitted]
  • Network accessline 67
    {   const out = feedback('e2e durability probe — undeliverable', {     RETICLE_TELEMETRY_URL: 'http://127.0.0.1:1',
  • Network accessline 68
    const out = feedback('e2e durability probe — undeliverable', {     RETICLE_TELEMETRY_URL: 'http://127.0.0.1:1',   });
  • Network accessline 69
    RETICLE_TELEMETRY_URL: 'http://127.0.0.1:1',

apps/e2e/specs/first-verdict-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 53
    body + '</body></html>'; const PAGES = {   '/': page('home', '<h1>Home</h1><script>fetch("/api/ok")</script>'),
  • Network accessline 54
    const PAGES = {   '/': page('home', '<h1>Home</h1><script>fetch("/api/ok")</script>'),   '/about': page('about', '<h1>About</h1>'),
  • Network accessline 55
    '/': page('home', '<h1>Home</h1><script>fetch("/api/ok")</script>'),
  • Network accessline 56
    '/about': page('about', '<h1>About</h1>'),   '/broken': broken     ? page('status', '<h1>Status</h1><script>fetch("/api/missing"); throw new Error("status page broke")</script>')
  • Network accessline 57
    '/broken': broken     ? page('status', '<h1>Status</h1><script>fetch("/api/missing"); throw new Error("status page broke")</script>')     : page('status', '<h1>Status</h1>'),
  • Network accessline 58
    ? page('status', '<h1>Status</h1><script>fetch("/api/missing"); throw new Error("status page broke")</script>')
  • Network accessline 60
    }; createServer((req, res) => {   const route = new URL(req.url ?? '/', 'http://x').pathname;
  • Network accessline 61
    createServer((req, res) => {   const route = new URL(req.url ?? '/', 'http://x').pathname;   if (route === '/api/ok') { res.setHeader('content-type', 'application/json'); res.end('{}'); return; }
  • Network accessline 62
    const route = new URL(req.url ?? '/', 'http://x').pathname;
  • Network accessline 66
    res.setHeader('content-type', 'text/html');   res.end(html ?? 'not found'); }).listen(port, '127.0.0.1', () => process.stdout.write('ready on http://localhost:' + port + '\\n'));
  • Network accessline 67
    res.end(html ?? 'not found'); }).listen(port, '127.0.0.1', () => process.stdout.write('ready on http://localhost:' + port + '\\n')); `;
  • Network accessline 68
    }).listen(port, '127.0.0.1', () => process.stdout.write('ready on http://localhost:' + port + '\\n'));

apps/e2e/specs/flow-record-replay-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    const T=(n,a={})=>TOOLS.find(t=>t.name===n).handler(deps,{sessionId:'next-smoke',...a}); const b=await chromium.launch({headless:true}); const p=await b.newPage(); await p.goto('http://localhost:3100/');
  • Network accessline 17
    const b=await chromium.launch({headless:true}); const p=await b.newPage(); await p.goto('http://localhost:3100/'); await waitForSession(()=>server.bridge.sessions.list(), 'next-smoke');
  • Network accessline 18
    await p.goto('http://localhost:3100/');

apps/e2e/specs/flow-self-heal-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 13
    const T=(n,a={})=>TOOLS.find(t=>t.name===n).handler(deps,{sessionId:'next-smoke',...a}); const b=await chromium.launch({headless:true}); const p=await b.newPage(); await p.goto('http://localhost:3100/');
  • Network accessline 14
    const b=await chromium.launch({headless:true}); const p=await b.newPage(); await p.goto('http://localhost:3100/'); await waitForSession(()=>server.bridge.sessions.list(), 'next-smoke');
  • Network accessline 15
    await p.goto('http://localhost:3100/');

apps/e2e/specs/instrumentation-gap-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 56
    const b = await chromium.launch({ headless: true }); const p = await b.newPage(); await p.goto('http://localhost:3100/');
  • Network accessline 57
    const p = await b.newPage(); await p.goto('http://localhost:3100/'); await waitForSession(() => server.bridge.sessions.list(), 'next-smoke');
  • Network accessline 58
    await p.goto('http://localhost:3100/');

apps/e2e/specs/lease-init-script-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 34
    }); await new Promise((resolve) => server.listen(0, '127.0.0.1', resolve)); const APP = `http://127.0.0.1:${server.address().port}/`;
  • Network accessline 36
    const APP = `http://127.0.0.1:${server.address().port}/`;

apps/e2e/specs/lease-instrumented-navigation-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 73
    const app = createServer((req, res) => {   const path = new URL(req.url ?? '/', 'http://x').pathname;
  • Network accessline 74
    const path = new URL(req.url ?? '/', 'http://x').pathname;
  • Network accessline 103
    }); await new Promise((resolve) => app.listen(0, '127.0.0.1', resolve)); const APP = `http://127.0.0.1:${String(app.address().port)}`;
  • Network accessline 105
    const APP = `http://127.0.0.1:${String(app.address().port)}`;

apps/e2e/specs/lease-page-size-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 22
    }); await new Promise((resolve) => server.listen(0, '127.0.0.1', resolve)); const APP = `http://127.0.0.1:${server.address().port}/`;
  • Network accessline 24
    const APP = `http://127.0.0.1:${server.address().port}/`;

apps/e2e/specs/lease-permissions-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 25
    }); await new Promise((resolve) => server.listen(0, '127.0.0.1', resolve)); const APP = `http://127.0.0.1:${server.address().port}/`;
  • Network accessline 27
    const APP = `http://127.0.0.1:${server.address().port}/`;

apps/e2e/specs/lease-pointer-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 30
    }); await new Promise((resolve) => server.listen(0, '127.0.0.1', resolve)); const APP = `http://127.0.0.1:${server.address().port}/`;
  • Network accessline 32
    const APP = `http://127.0.0.1:${server.address().port}/`;

apps/e2e/specs/lease-production-guard-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 27
    <script>   const show = (r) => { document.getElementById('out').textContent = String(r.status); };   document.getElementById('done').onclick = () => fetch('/v1/invites', { method: 'POST' }).then(show);
  • Network accessline 28
    const show = (r) => { document.getElementById('out').textContent = String(r.status); };   document.getElementById('done').onclick = () => fetch('/v1/invites', { method: 'POST' }).then(show);   document.getElementById('load').onclick = () =>
  • Network accessline 29
    document.getElementById('done').onclick = () => fetch('/v1/invites', { method: 'POST' }).then(show);
  • Network accessline 30
    document.getElementById('load').onclick = () => fetch('/v1/runs').then(show);
  • Network accessline 43
    }); await new Promise((resolve) => server.listen(0, '127.0.0.1', resolve)); const APP = `http://127.0.0.1:${server.address().port}/`;
  • Network accessline 44
    await new Promise((resolve) => server.listen(0, '127.0.0.1', resolve)); const APP = `http://127.0.0.1:${server.address().port}/`; const ORIGIN = new URL(APP).origin;
  • Network accessline 45
    const APP = `http://127.0.0.1:${server.address().port}/`;

apps/e2e/specs/lease-spa-redirect-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 41
    }); await new Promise((resolve) => app.listen(0, '127.0.0.1', resolve)); const APP = `http://127.0.0.1:${app.address().port}/`;
  • Network accessline 43
    const APP = `http://127.0.0.1:${app.address().port}/`;

apps/e2e/specs/lease-zero-install-navigation-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 39
    }; const app = createServer((req, res) => {   const path = new URL(req.url ?? '/', 'http://x').pathname;
  • Network accessline 40
    const app = createServer((req, res) => {   const path = new URL(req.url ?? '/', 'http://x').pathname;   res.setHeader('content-type', 'text/html');
  • Network accessline 41
    const path = new URL(req.url ?? '/', 'http://x').pathname;
  • Network accessline 44
    }); await new Promise((resolve) => app.listen(0, '127.0.0.1', resolve)); const APP = `http://127.0.0.1:${app.address().port}/`;
  • Network accessline 46
    const APP = `http://127.0.0.1:${app.address().port}/`;

apps/e2e/specs/live-control-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 9
    const server=await start({port: TEST_BRIDGE_PORT,mcp:false}); deps.sessions=server.bridge.sessions; const b=await chromium.launch({headless:true}); const p=await b.newPage(); await p.goto('http://localhost:3100/');
  • Network accessline 10
    const b=await chromium.launch({headless:true}); const p=await b.newPage(); await p.goto('http://localhost:3100/'); await waitForSession(()=>server.bridge.sessions.list(), 'next-smoke');
  • Network accessline 11
    await p.goto('http://localhost:3100/');

apps/e2e/specs/mcp-stress-test.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/specs/mcp-survives-test.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/specs/multi-agent-lease-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 22
    const APP = 'http://localhost:4310/';

apps/e2e/specs/narrowed-rules-both-directions-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 43
    const APP_URL = 'http://localhost:4310/';

apps/e2e/specs/next-blur-clock-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 28
    const browser = await chromium.launch({ headless: true }); const page = await browser.newPage(); await page.goto('http://localhost:3100/');
  • Network accessline 29
    const page = await browser.newPage(); await page.goto('http://localhost:3100/'); await waitForSession(()=>server.bridge.sessions.list(), 'next-smoke');
  • Network accessline 30
    await page.goto('http://localhost:3100/');

apps/e2e/specs/next-smoke-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 28
    const browser = await chromium.launch({ headless: true }); const page = await browser.newPage(); await page.goto('http://localhost:3100/');
  • Network accessline 29
    const page = await browser.newPage(); await page.goto('http://localhost:3100/'); await waitForSession(()=>server.bridge.sessions.list(), 'next-smoke');
  • Network accessline 30
    await page.goto('http://localhost:3100/');
  • Network accessline 74
    await page.goto('http://localhost:3100/actions', { waitUntil: 'domcontentloaded' });

apps/e2e/specs/overflow-visibility-test.mjs

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 5
    import { mkdtemp, rm } from 'node:fs/promises';
  • Network accessline 95
    const transformedWithoutClip = control('transformed').painted; transformedClip.style.overflow = 'hidden'; fetch('/layout', { method: 'POST', body: JSON.stringify({
  • Network accessline 96
    transformedClip.style.overflow = 'hidden'; fetch('/layout', { method: 'POST', body: JSON.stringify({   clamp: rect('clamped'),
  • Network accessline 97
    fetch('/layout', { method: 'POST', body: JSON.stringify({
  • Network accessline 177
    await client.start();   const lease = await call('reticle_lease', {     action: 'acquire', url: `http://127.0.0.1:${String(address.port)}/`,
  • Network accessline 178
    const lease = await call('reticle_lease', {     action: 'acquire', url: `http://127.0.0.1:${String(address.port)}/`,   });
  • Network accessline 179
    action: 'acquire', url: `http://127.0.0.1:${String(address.port)}/`,

apps/e2e/specs/press-real-focus-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 30
    const SID = 'next-smoke'; const APP = process.env.PRESS_FOCUS_URL ?? 'http://localhost:3100/';
  • Network accessline 31
    const APP = process.env.PRESS_FOCUS_URL ?? 'http://localhost:3100/';
  • Network accessline 75
    try {   const provider = new CdpRealInputProvider({ cdpUrl: `http://127.0.0.1:${String(cdpPort)}` });
  • Network accessline 76
    const provider = new CdpRealInputProvider({ cdpUrl: `http://127.0.0.1:${String(cdpPort)}` });

apps/e2e/specs/project-history-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 18
    const T=(n,a={})=>TOOLS.find(t=>t.name===n).handler(deps,{sessionId:'next-smoke',...a}); const b=await chromium.launch({headless:true}); const p=await b.newPage(); await p.goto('http://localhost:3100/');
  • Network accessline 19
    const b=await chromium.launch({headless:true}); const p=await b.newPage(); await p.goto('http://localhost:3100/'); await waitForSession(()=>server.bridge.sessions.list(), 'next-smoke');
  • Network accessline 20
    await p.goto('http://localhost:3100/');

apps/e2e/specs/real-world-tests.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 35
    await p.goto('http://localhost:4310/?session=demo');
  • Network accessline 109
    await p.goto('http://localhost:4310/?session=demo&reticle-bug=swallowed-500-generate');

apps/e2e/specs/release-smoke-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 14
    const ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..', '..'); const PORT = String(TEST_BRIDGE_PORT); const APP = process.env.SMOKE_APP ?? 'http://localhost:4310/';
  • Network accessline 16
    const APP = process.env.SMOKE_APP ?? 'http://localhost:4310/';

apps/e2e/specs/response-ignored-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 203
    const correctRun = await runPolarity(   'correct',   'http://localhost:4310/?session=resp-ignored-correct&renderDelay=0',
  • Network accessline 204
    'correct',   'http://localhost:4310/?session=resp-ignored-correct&renderDelay=0',   'resp-ignored-correct',
  • Network accessline 205
    'http://localhost:4310/?session=resp-ignored-correct&renderDelay=0',
  • Network accessline 231
    const brokenRun = await runPolarity(   'broken',   'http://localhost:4310/?session=resp-ignored-broken&renderDelay=800',
  • Network accessline 232
    'broken',   'http://localhost:4310/?session=resp-ignored-broken&renderDelay=800',   'resp-ignored-broken',
  • Network accessline 233
    'http://localhost:4310/?session=resp-ignored-broken&renderDelay=800',

apps/e2e/specs/route-and-absence-claims-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 41
    const APP_URL = 'http://localhost:4310/';

apps/e2e/specs/scroll-find-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 19
    const b = await chromium.launch({ headless: true }); const p = await b.newPage(); await p.goto('http://localhost:3100/');
  • Network accessline 20
    const p = await b.newPage(); await p.goto('http://localhost:3100/'); await waitForSession(()=>server.bridge.sessions.list(), 'next-smoke');
  • Network accessline 21
    await p.goto('http://localhost:3100/');

apps/e2e/specs/skill-one-call-paths-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 25
    const ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..', '..'); const PORT = String(TEST_BRIDGE_PORT); const APP = process.env.SWEEP_APP_URL ?? 'http://localhost:4310/';
  • Network accessline 27
    const APP = process.env.SWEEP_APP_URL ?? 'http://localhost:4310/';

apps/e2e/specs/slow-endpoint-replay-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 72
    const APP_URL = 'http://localhost:4310/';
  • Network accessline 81
    await p.goto(`http://localhost:4310/?view=saved-items&serverDelay=${String(SERVER_DELAY_MS)}`);

apps/e2e/specs/spa-nav-realinput-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 10
    const browser=await chromium.launch({headless:true,args:['--remote-debugging-port=9222']}); const page=await browser.newPage(); await page.goto('http://localhost:3100/');
  • Network accessline 11
    const page=await browser.newPage(); await page.goto('http://localhost:3100/'); const server=await start({port: TEST_BRIDGE_PORT,mcp:false});
  • Network accessline 12
    await page.goto('http://localhost:3100/');
  • Network accessline 13
    const server=await start({port: TEST_BRIDGE_PORT,mcp:false}); const provider=new CdpRealInputProvider({cdpUrl:'http://localhost:9222'}); const deps={sessions:server.bridge.sessions,baselines:new BaselineStore(),recordings:new RecordingStore
  • Network accessline 14
    const provider=new CdpRealInputProvider({cdpUrl:'http://localhost:9222'});

apps/e2e/specs/spec-runner-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 19
    console.log('\n=== @reticlehq/test running 3 specs headless via reticle drive ==='); const booted = await bootSession({ port: TEST_BRIDGE_PORT, driveUrl: 'http://localhost:3100/', headless: true });
  • Network accessline 20
    const booted = await bootSession({ port: TEST_BRIDGE_PORT, driveUrl: 'http://localhost:3100/', headless: true });

apps/e2e/specs/stale-response-both-directions-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 37
    const APP_URL = 'http://localhost:4310/';

apps/e2e/specs/status-honesty-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 35
    window.requestAnimationFrame = () => 0; }); await page.goto('http://localhost:3100/');
  • Network accessline 36
    }); await page.goto('http://localhost:3100/'); await waitForSession(()=>server.bridge.sessions.list(), 'next-smoke');
  • Network accessline 37
    await page.goto('http://localhost:3100/');

apps/e2e/specs/tauri-desktop-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 54
    // Tauri's origin differs by platform and BOTH are a Tauri webview: an opaque `tauri://localhost`     // on macOS/Linux, and a real `http://tauri.localhost` on Windows, where the webview requires an
  • Network accessline 55
    // on macOS/Linux, and a real `http://tauri.localhost` on Windows, where the webview requires an
  • Network accessline 71
    // The origin a PACKAGED Tauri app serves its embedded frontend from — `tauri://localhost` on   // macOS/Linux, `http://tauri.localhost` on Windows, where the webview requires an http origin.
  • Network accessline 72
    // macOS/Linux, `http://tauri.localhost` on Windows, where the webview requires an http origin.
  • Network accessline 74
    // (`http://localhost:5173`), because testing one of those would prove nothing about the binary.
  • Network accessline 75
    const PACKAGED_TAURI_ORIGINS = ['tauri://localhost', 'http://tauri.localhost/'];

apps/e2e/specs/telemetry-events-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 56
    process.env.RETICLE_TELEMETRY_URL = `http://localhost:${PORT}`;
  • Access to secretsline 57
    [Credential-related source omitted]
  • Network accessline 288
    anomalies: [     { kind: 'console-error', ref: 'e3', desc: 'button#checkout-SECRETMARKER threw' },     { kind: 'ui-advanced-request-failed', ref: 'e4', detail: { url: 'https://acme.internal/orders' } },
  • Network accessline 289
    { kind: 'console-error', ref: 'e3', desc: 'button#checkout-SECRETMARKER threw' },     { kind: 'ui-advanced-request-failed', ref: 'e4', detail: { url: 'https://acme.internal/orders' } },   ],
  • Network accessline 290
    { kind: 'ui-advanced-request-failed', ref: 'e4', detail: { url: 'https://acme.internal/orders' } },
  • Network accessline 402
    metrics.recordSdkFailure('network_observer', "cannot patch fetch on 'https://acme.internal/app'");
  • Network accessline 403
    metrics.recordSdkFailure('network_observer', "cannot patch fetch on 'https://other.internal/x'");
  • Network accessline 813
    writeFileSync(     join(root, '.reticle', 'cloud.json'),     JSON.stringify({ projectId: 'p1', url: 'https://x.test', orgId: 'org_e2e', workspace: 'Acme Secret Corp' }),
  • Network accessline 814
    join(root, '.reticle', 'cloud.json'),     JSON.stringify({ projectId: 'p1', url: 'https://x.test', orgId: 'org_e2e', workspace: 'Acme Secret Corp' }),   );
  • Network accessline 815
    JSON.stringify({ projectId: 'p1', url: 'https://x.test', orgId: 'org_e2e', workspace: 'Acme Secret Corp' }),

apps/e2e/specs/telemetry-stitch-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 36
    const PORT = process.env.STITCH_PORT ?? String(TEST_BRIDGE_PORT); const CAPTURE_PORT = Number(process.env.STITCH_CAPTURE_PORT ?? 9973); const APP = process.env.STITCH_APP_URL ?? 'http://localhost:4310/';
  • Network accessline 37
    const CAPTURE_PORT = Number(process.env.STITCH_CAPTURE_PORT ?? 9973); const APP = process.env.STITCH_APP_URL ?? 'http://localhost:4310/'; const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
  • Network accessline 38
    const APP = process.env.STITCH_APP_URL ?? 'http://localhost:4310/';
  • Network accessline 96
    RETICLE_TELEMETRY: '1',     RETICLE_TELEMETRY_URL: `http://localhost:${CAPTURE_PORT}`,
  • Network accessline 97
    RETICLE_TELEMETRY_URL: `http://localhost:${CAPTURE_PORT}`,

apps/e2e/specs/tool-fuzz-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 29
    const ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..', '..'); const PORT = process.env.TOOL_FUZZ_PORT ?? String(TEST_BRIDGE_PORT); const APP = process.env.TOOL_FUZZ_APP ?? 'http://localhost:4310/';
  • Network accessline 31
    const APP = process.env.TOOL_FUZZ_APP ?? 'http://localhost:4310/';

apps/e2e/specs/tool-surface-sweep-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 32
    const ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..', '..'); const PORT = String(TEST_BRIDGE_PORT); const APP = process.env.SWEEP_APP_URL ?? 'http://localhost:4310/';
  • Network accessline 34
    const APP = process.env.SWEEP_APP_URL ?? 'http://localhost:4310/';

apps/e2e/specs/trace-shape-test.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/specs/transport-faults-test.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/specs/verify-against-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 38
    });   await new Promise((resolve) => server.listen(0, '127.0.0.1', resolve));   return { server, url: `http://127.0.0.1:${String(server.address().port)}/` };
  • Network accessline 39
    await new Promise((resolve) => server.listen(0, '127.0.0.1', resolve));   return { server, url: `http://127.0.0.1:${String(server.address().port)}/` }; }
  • Network accessline 40
    return { server, url: `http://127.0.0.1:${String(server.address().port)}/` };

apps/e2e/specs/version-skew-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 242
    const ws = new WebSocket(`ws://localhost:${PORT}/reticle`, { origin: 'http://localhost:4310' });
  • Network accessline 266
    protocolVersion: 1,     sessionId: 'stale-sdk-probe',     url: 'http://localhost:9999/stale',
  • Network accessline 267
    sessionId: 'stale-sdk-probe',     url: 'http://localhost:9999/stale',     title: 'stale sdk',
  • Network accessline 268
    url: 'http://localhost:9999/stale',

apps/e2e/specs/visual-test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 26
    const fsp = createNodeFileSystem(); const server = await start({ port: TEST_BRIDGE_PORT, mcp: false }); const provider = new LaunchedRealInputProvider({ driveUrl: 'http://localhost:3100/', headless: true });
  • Network accessline 27
    const server = await start({ port: TEST_BRIDGE_PORT, mcp: false }); const provider = new LaunchedRealInputProvider({ driveUrl: 'http://localhost:3100/', headless: true }); await provider.navigate(); // launches Chromium + goto → page SDK co
  • Network accessline 28
    const provider = new LaunchedRealInputProvider({ driveUrl: 'http://localhost:3100/', headless: true });

apps/e2e/trace-shape.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/wait-for-session.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/wait-until.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/watch-transport.test.mjs

  • Executable scriptline 1
    Executable file

apps/e2e/win32-job-kill.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

apps/e2e/win32-job-kill.ps1

  • Executable scriptline 1
    Executable file
  • Network accessline 4
    #   child, wait for the parent to exit, close the job handle, then print one word for the child: #   survived | killed | spawn-failed:<detail>. With -StatusPort, survived also needs an answer #   on http://127.0.0.1:<port>/status, else surv
  • Network accessline 5
    #   survived | killed | spawn-failed:<detail>. With -StatusPort, survived also needs an answer #   on http://127.0.0.1:<port>/status, else survived-no-status. # -Mode breakaway-spawn: start -Cmd with CREATE_BREAKAWAY_FROM_JOB | DETACHED_PRO
  • Network accessline 6
    #   on http://127.0.0.1:<port>/status, else survived-no-status.
  • Network accessline 164
    for ($i = 0; $i -lt 60; $i++) {       try {         Invoke-WebRequest -UseBasicParsing -TimeoutSec 5 -Uri "http://127.0.0.1:$StatusPort/status" | Out-Null
  • Network accessline 165
    try {         Invoke-WebRequest -UseBasicParsing -TimeoutSec 5 -Uri "http://127.0.0.1:$StatusPort/status" | Out-Null         $outcome = 'survived'
  • Network accessline 166
    Invoke-WebRequest -UseBasicParsing -TimeoutSec 5 -Uri "http://127.0.0.1:$StatusPort/status" | Out-Null

apps/e2e/worktrees/worktrees-gate.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 82
    pid: process.pid,       root,       url: `http://localhost:${port}/`,
  • Network accessline 83
    root,       url: `http://localhost:${port}/`,       startedAt: Date.now(),
  • Network accessline 84
    url: `http://localhost:${port}/`,
  • Network accessline 93
    const received = [];   const ws = new WebSocket(`ws://127.0.0.1:${DAEMON_PORT}/reticle`, {     origin: `http://localhost:${port}`,
  • Network accessline 94
    const ws = new WebSocket(`ws://127.0.0.1:${DAEMON_PORT}/reticle`, {     origin: `http://localhost:${port}`,   });
  • Network accessline 95
    origin: `http://localhost:${port}`,
  • Network accessline 105
    sessionId,           projectId: PROJECT_ID,           url: `http://localhost:${port}/`,
  • Network accessline 106
    projectId: PROJECT_ID,           url: `http://localhost:${port}/`,           title: sessionId,
  • Network accessline 107
    url: `http://localhost:${port}/`,
  • Network accessline 201
    while (Date.now() < deadline) {     try {       const res = await fetch(`http://127.0.0.1:${DAEMON_PORT}/status`);
  • Network accessline 202
    try {       const res = await fetch(`http://127.0.0.1:${DAEMON_PORT}/status`);       if (res.ok) return true;
  • Network accessline 203
    const res = await fetch(`http://127.0.0.1:${DAEMON_PORT}/status`);

apps/electron-smoke/electron/main.cjs

  • Executable scriptline 1
    Executable file
  • Network accessline 4
    *  * Two launch modes, because they exercise DIFFERENT halves of Reticle's desktop support:  *   `pnpm dev`          → renderer from the Vite dev server (Origin: http://localhost:5174, loopback)
  • Network accessline 5
    * Two launch modes, because they exercise DIFFERENT halves of Reticle's desktop support:  *   `pnpm dev`          → renderer from the Vite dev server (Origin: http://localhost:5174, loopback)  *   `pnpm dev:packaged` → renderer from disk vi
  • Network accessline 6
    *   `pnpm dev`          → renderer from the Vite dev server (Origin: http://localhost:5174, loopback)
  • Network accessline 17
    const DEV_SERVER_URL = 'http://localhost:5174';

apps/electron-smoke/electron/preload.cjs

  • Executable scriptline 1
    Executable file

apps/electron-smoke/package.json

  • Executable scriptline 1
    Executable file

apps/electron-smoke/src/App.tsx

  • Executable scriptline 1
    Executable file
  • Network accessline 102
    const fetchStats = (): void => {     void fetch('/stats.json')
  • Network accessline 103
    void fetch('/stats.json')

apps/electron-smoke/src/main.tsx

  • Executable scriptline 1
    Executable file

apps/electron-smoke/src/store.ts

  • Executable scriptline 1
    Executable file

apps/electron-smoke/vite.config.ts

  • Executable scriptline 1
    Executable file

apps/electron-vue-pinia/README.md

  • Network accessline 7
    - [VSCode](https://code.visualstudio.com/) + [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) + [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) + [Volar](https://mar

apps/electron-vue-pinia/RETICLE.md

  • Network accessline 44
    The docs are built to be fetched rather than browsed: `https://docs.reticle.sh/llms.txt` lists every page, and appending `.md` to any page URL returns its source with no site chrome.

apps/electron-vue-pinia/electron-builder.yml

  • Network accessline 41
    publish:   provider: generic   url: https://example.com/auto-updates
  • Network accessline 43
    url: https://example.com/auto-updates

apps/electron-vue-pinia/electron.vite.config.ts

  • Executable scriptline 1
    Executable file

apps/electron-vue-pinia/eslint.config.mjs

  • Executable scriptline 1
    Executable file

apps/electron-vue-pinia/package.json

  • Executable scriptline 1
    Executable file
  • Network accessline 6
    "main": "./out/main/index.js",   "author": "example.com",   "homepage": "https://electron-vite.org",
  • Network accessline 7
    "author": "example.com",   "homepage": "https://electron-vite.org",   "scripts": {
  • Network accessline 8
    "homepage": "https://electron-vite.org",

apps/electron-vue-pinia/src/main/index.ts

  • Executable scriptline 1
    Executable file

apps/electron-vue-pinia/src/preload/index.d.ts

  • Executable scriptline 1
    Executable file

apps/electron-vue-pinia/src/preload/index.ts

  • Executable scriptline 1
    Executable file

apps/electron-vue-pinia/src/renderer/index.html

  • Network accessline 4
    <meta charset="UTF-8" />     <title>Electron</title>     <!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
  • Network accessline 5
    <title>Electron</title>     <!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->     <meta
  • Network accessline 6
    <!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->

apps/electron-vue-pinia/src/renderer/package.json

  • Executable scriptline 1
    Executable file

apps/electron-vue-pinia/src/renderer/src/App.vue

  • Network accessline 23
    <div class="actions">     <div class="action">       <a href="https://electron-vite.org/" target="_blank" rel="noreferrer" data-testid="docs-link"
  • Network accessline 24
    <div class="action">       <a href="https://electron-vite.org/" target="_blank" rel="noreferrer" data-testid="docs-link"         >Documentation</a
  • Network accessline 25
    <a href="https://electron-vite.org/" target="_blank" rel="noreferrer" data-testid="docs-link"

apps/electron-vue-pinia/src/renderer/src/assets/electron.svg

  • Network accessline 1
    <svg viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">

apps/electron-vue-pinia/src/renderer/src/assets/wavy-lines.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1422 800" opacity="0.3">

apps/electron-vue-pinia/src/renderer/src/env.d.ts

  • Executable scriptline 1
    Executable file

apps/electron-vue-pinia/src/renderer/src/main.ts

  • Executable scriptline 1
    Executable file

apps/electron-vue-pinia/src/renderer/src/reticle-dev.ts

  • Executable scriptline 1
    Executable file

apps/electron-vue-pinia/src/renderer/src/stores/app.ts

  • Executable scriptline 1
    Executable file

apps/examples/astro/astro.config.mjs

  • Executable scriptline 1
    Executable file

apps/examples/astro/package.json

  • Executable scriptline 1
    Executable file

apps/examples/astro/src/components/Counter.tsx

  • Executable scriptline 1
    Executable file

apps/examples/astro/src/reticle-env.d.ts

  • Executable scriptline 1
    Executable file

apps/examples/next/app/layout.tsx

  • Executable scriptline 1
    Executable file

apps/examples/next/app/page.tsx

  • Executable scriptline 1
    Executable file

apps/examples/next/app/reticle-dev.tsx

  • Executable scriptline 1
    Executable file
  • Access to secretsline 8
    [Credential-related source omitted]
  • Access to secretsline 10
    [Credential-related source omitted]

apps/examples/next/next.config.mjs

  • Executable scriptline 1
    Executable file

apps/examples/next/package.json

  • Executable scriptline 1
    Executable file

apps/examples/react/package.json

  • Executable scriptline 1
    Executable file

apps/examples/react/src/App.tsx

  • Executable scriptline 1
    Executable file

apps/examples/react/src/main.tsx

  • Executable scriptline 1
    Executable file

apps/examples/react/vite.config.ts

  • Executable scriptline 1
    Executable file

apps/examples/remix/.gitignore

  • Access to secretsline 2
    [Credential-related source omitted]

apps/examples/remix/app/root.tsx

  • Executable scriptline 1
    Executable file
  • Network accessline 14
    export const links: Route.LinksFunction = () => [   { rel: "preconnect", href: "https://fonts.googleapis.com" },
  • Network accessline 15
    { rel: "preconnect", href: "https://fonts.googleapis.com" },
  • Network accessline 16
    {     rel: "preconnect",     href: "https://fonts.gstatic.com",
  • Network accessline 17
    rel: "preconnect",     href: "https://fonts.gstatic.com",     crossOrigin: "anonymous",
  • Network accessline 18
    href: "https://fonts.gstatic.com",
  • Network accessline 21
    {     rel: "stylesheet",     href: "https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap",
  • Network accessline 22
    rel: "stylesheet",     href: "https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap",   },
  • Network accessline 23
    href: "https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap",

apps/examples/remix/app/routes.ts

  • Executable scriptline 1
    Executable file

apps/examples/remix/app/routes/home.tsx

  • Executable scriptline 1
    Executable file

apps/examples/remix/package.json

  • Executable scriptline 1
    Executable file

apps/examples/remix/react-router.config.ts

  • Executable scriptline 1
    Executable file

apps/examples/remix/reticle-env.d.ts

  • Executable scriptline 1
    Executable file

apps/examples/remix/vite.config.ts

  • Executable scriptline 1
    Executable file

apps/large-dom-bench/package.json

  • Executable scriptline 1
    Executable file

apps/large-dom-bench/src/main.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 60
    await fetch(`/?approve=${id}`).catch(() => undefined);

apps/large-dom-bench/vite.config.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 6
    // The large-DOM benchmark fixture. Runs on its own port so it never collides with the demo (4310) or the // benchmark demo (4312). `reticle drive http://localhost:4313` opens it in a real browser. The SDK dials
  • Network accessline 7
    // benchmark demo (4312). `reticle drive http://localhost:4313` opens it in a real browser. The SDK dials
  • Access to secretsline 20
    [Credential-related source omitted]

apps/next-smoke/app/actions/actions.ts

  • Executable scriptline 1
    Executable file

apps/next-smoke/app/actions/page.tsx

  • Executable scriptline 1
    Executable file

apps/next-smoke/app/actions/save-both.tsx

  • Executable scriptline 1
    Executable file

apps/next-smoke/app/actions/store.ts

  • Executable scriptline 1
    Executable file

apps/next-smoke/app/api/idle-stream/route.ts

  • Executable scriptline 1
    Executable file

apps/next-smoke/app/api/ping/route.ts

  • Executable scriptline 1
    Executable file

apps/next-smoke/app/layout.tsx

  • Executable scriptline 1
    Executable file

apps/next-smoke/app/page.tsx

  • Executable scriptline 1
    Executable file
  • Network accessline 37
    setLoading(true);     try {       const res = await fetch('/api/ping');
  • Network accessline 38
    try {       const res = await fetch('/api/ping');       const data = (await res.json()) as { message: string };
  • Network accessline 39
    const res = await fetch('/api/ping');

apps/next-smoke/app/reticle-dev.tsx

  • Executable scriptline 1
    Executable file
  • Access to secretsline 24
    [Credential-related source omitted]

apps/next-smoke/app/rsc/page.tsx

  • Executable scriptline 1
    Executable file

apps/next-smoke/next.config.mjs

  • Executable scriptline 1
    Executable file

apps/next-smoke/package.json

  • Executable scriptline 1
    Executable file

apps/tauri-smoke/README.md

  • Network accessline 5
    Needs a Rust toolchain (`rustup`) plus the [Tauri v2 prerequisites](https://v2.tauri.app/start/prerequisites/).

apps/tauri-smoke/package.json

  • Executable scriptline 1
    Executable file

apps/tauri-smoke/src-tauri/tauri.conf.json

  • Network accessline 1
    {   "$schema": "https://schema.tauri.app/config/2",
  • Network accessline 2
    "$schema": "https://schema.tauri.app/config/2",
  • Network accessline 6
    "build": {     "beforeDevCommand": "pnpm dev:vite",     "devUrl": "http://localhost:5175",
  • Network accessline 7
    "beforeDevCommand": "pnpm dev:vite",     "devUrl": "http://localhost:5175",     "beforeBuildCommand": "pnpm build:vite",
  • Network accessline 8
    "devUrl": "http://localhost:5175",
  • Network accessline 20
    ],     "security": {       "csp": "default-src 'self' ipc: http://ipc.localhost; connect-src 'self' ipc: http://ipc.localhost ws://localhost:4400 ws://127.0.0.1:4400 http://localhost:5175 ws://localhost:5175; script-src 'self' 'unsafe-inlin
  • Network accessline 21
    "security": {       "csp": "default-src 'self' ipc: http://ipc.localhost; connect-src 'self' ipc: http://ipc.localhost ws://localhost:4400 ws://127.0.0.1:4400 http://localhost:5175 ws://localhost:5175; script-src 'self' 'unsafe-inline'; sty
  • Network accessline 22
    "csp": "default-src 'self' ipc: http://ipc.localhost; connect-src 'self' ipc: http://ipc.localhost ws://localhost:4400 ws://127.0.0.1:4400 http://localhost:5175 ws://localhost:5175; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsaf

apps/tauri-smoke/src/App.tsx

  • Executable scriptline 1
    Executable file
  • Network accessline 74
    const fetchStats = (): void => {     void fetch('/stats.json')
  • Network accessline 75
    void fetch('/stats.json')

apps/tauri-smoke/src/main.tsx

  • Executable scriptline 1
    Executable file

apps/tauri-smoke/src/store.ts

  • Executable scriptline 1
    Executable file

apps/tauri-smoke/vite.config.ts

  • Executable scriptline 1
    Executable file

assets/Black.svg

  • Network accessline 1
    <svg width="96" height="94" viewBox="0 0 96 94" fill="none" xmlns="http://www.w3.org/2000/svg">

assets/White.svg

  • Network accessline 1
    <svg width="96" height="94" viewBox="0 0 96 94" fill="none" xmlns="http://www.w3.org/2000/svg">

assets/benchmarks/render.mjs

  • Executable scriptline 1
    Executable file

assets/figures/og.html

  • Network accessline 34
    <div class="wrap">   <div class="brand">     <svg viewBox="0 0 96 94" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M92.8175 92.1592C93.0734 93.3999 91.7737 94.3966 90.6276 93.8271C89.6247 93.3288 88.6218 92.8203 87.6292 92.3016C7
  • Network accessline 35
    <div class="brand">     <svg viewBox="0 0 96 94" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M92.8175 92.1592C93.0734 93.3999 91.7737 94.3966 90.6276 93.8271C89.6247 93.3288 88.6218 92.8203 87.6292 92.3016C71.1431 83.7793 54.79 
  • Network accessline 36
    <svg viewBox="0 0 96 94" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M92.8175 92.1592C93.0734 93.3999 91.7737 94.3966 90.6276 93.8271C89.6247 93.3288 88.6218 92.8203 87.6292 92.3016C71.1431 83.7793 54.79 72.267 39.6138 57.958C39

assets/marketing/src/_system.css

  • Network accessline 1
    /* Reticle marketing design system v2 — Inter, soothing gradient mesh, strict 4px grid, no emoji.    Mono is used ONLY for code (commands, paths, API). Everything else is Inter. */ @import url('https://fonts.googleapis.com/css2?family=Inter
  • Network accessline 2
    Mono is used ONLY for code (commands, paths, API). Everything else is Inter. */ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap'); @import url('https://fonts.googleapis.com/css2?family=J
  • Network accessline 3
    @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');
  • Network accessline 4
    @import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@500;600;700&display=swap');
  • Network accessline 35
    amber, orange, sand, greenish-amber, indigo, gold). A dark scrim keeps white text readable. */ .bg-dark{background:   url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='1200' height='675' preserveAspectRatio='xMidYMid sl
  • Network accessline 36
    .bg-dark{background:   url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='1200' height='675' preserveAspectRatio='xMidYMid slice'><defs><filter id='lq' x='-300' y='-200' width='1800' height='1075'><feTurbulence type='fra
  • Network accessline 37
    url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='1200' height='675' preserveAspectRatio='xMidYMid slice'><defs><filter id='lq' x='-300' y='-200' width='1800' height='1075'><feTurbulence type='fractalNoise' baseFrequenc
  • Network accessline 51
    /* grain texture for depth (sits above the mesh, below content) */ .grain{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.19;mix-blend-mode:overlay;   background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org
  • Network accessline 53
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3C

assets/readme/benchmark-chart.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="960" height="636" viewBox="0 0 960 636" font-family="-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif" role="img" aria-label="Bugs caught by category: Reticle 86 of 86, Play

assets/readme/chart-speed.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="960" height="320" viewBox="0 0 960 320" font-family="-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif" role="img" aria-label="Time to a verdict: a 2.6 second time-gated flow

assets/readme/chart-token-cost.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="960" height="452" viewBox="0 0 960 452" font-family="-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif" role="img" aria-label="Cumulative tokens to re-verify a four-flow suit

assets/readme/src/bench-rerun.html

  • Network accessline 41
    <body>     <div class="brand">       <svg viewBox="0 0 96 94" fill="none" xmlns="http://www.w3.org/2000/svg">
  • Network accessline 42
    <div class="brand">       <svg viewBox="0 0 96 94" fill="none" xmlns="http://www.w3.org/2000/svg">         <path d="M92.8175 92.1592C93.0734 93.3999 91.7737 94.3966 90.6276 93.8271C89.6247 93.3288 88.6218 92.8203 87.6292 92.3016C71.1431 83.
  • Network accessline 43
    <svg viewBox="0 0 96 94" fill="none" xmlns="http://www.w3.org/2000/svg">

assets/wordmark-white.svg

  • Network accessline 1
    <svg width="372" height="94" viewBox="0 0 372 94" fill="none" xmlns="http://www.w3.org/2000/svg">

bench/.gitignore

  • Access to secretsline 27
    [Credential-related source omitted]

bench/INTENT-EFFECT.md

  • Access to secretsline 47
    [Credential-related source omitted]

bench/JEV-SCORECARD.md

  • Access to secretsline 58
    [Credential-related source omitted]
  • Access to secretsline 60
    [Credential-related source omitted]
  • Access to secretsline 79
    [Credential-related source omitted]
  • Access to secretsline 80
    [Credential-related source omitted]

bench/METHODOLOGY.md

  • Access to secretsline 39
    [Credential-related source omitted]
  • Access to secretsline 151
    [Credential-related source omitted]

bench/README.md

  • Access to secretsline 116
    [Credential-related source omitted]
  • Access to secretsline 121
    [Credential-related source omitted]
  • Access to secretsline 130
    [Credential-related source omitted]

bench/SCORECARD.md

  • Access to secretsline 66
    [Credential-related source omitted]
  • Access to secretsline 162
    [Credential-related source omitted]

bench/agent-loop-and-replay.md

  • Network accessline 226
    - The detection flows use break targets that are reliably present at record time (sidebar nav and diagnostics-view controls). A flow whose target loads behind an async data fetch (the deployments modal's `new-deploy`) is not reliably captur

bench/artifacts/chart-avg-tokens.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="760" height="460" viewBox="0 0 760 460">

bench/artifacts/chart-detection.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="760" height="460" viewBox="0 0 760 460">

bench/cli-false-green/bugs.mjs

  • Executable scriptline 1
    Executable file

bench/cli-false-green/run.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

bench/dashboard.mjs

  • Executable scriptline 1
    Executable file

bench/desktop/desktop-mcp-bench.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 144
    async function benchPlaywright() {   const { proc, send } = client('node', [PW_MCP, '--cdp-endpoint', 'http://127.0.0.1:9222']);
  • Network accessline 145
    const { proc, send } = client('node', [PW_MCP, '--cdp-endpoint', 'http://127.0.0.1:9222']);
  • Network accessline 248
    async function benchPlaywrightTauri() {   const { proc, send } = client('node', [PW_MCP, '--cdp-endpoint', 'http://127.0.0.1:9333']);
  • Network accessline 249
    const { proc, send } = client('node', [PW_MCP, '--cdp-endpoint', 'http://127.0.0.1:9333']);

bench/diagnosis/ground-truth.mjs

  • Executable scriptline 1
    Executable file

bench/diagnosis/measure.mjs

  • Executable scriptline 1
    Executable file

bench/diagnosis/recoverability.mjs

  • Executable scriptline 1
    Executable file

bench/do-and-verify/oracle.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 17
    const APP = process.env.DV_APP_URL ?? 'http://localhost:4312/';

bench/do-and-verify/run.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 49
    [Credential-related source omitted]
  • Access to secretsline 49
    [Credential-related source omitted]
  • Network accessline 50
    const MODEL = process.env.BENCH_MODEL ?? 'claude-haiku-4-5-20251001'; const URL = 'http://localhost:4312/'; const MAX_TURNS = Number(process.env.DV_MAX_TURNS ?? 30);
  • Network accessline 51
    const URL = 'http://localhost:4312/';
  • Access to secretsline 81
    [Credential-related source omitted]
  • Network accessline 309
    "Run Vercel's agent-browser CLI. Pass the arguments only, without the leading `agent-browser`. " +     'Start with `skills get core --full` for the full command reference, exactly as its own docs advise. ' +     'Example args: "open http://
  • Network accessline 310
    'Start with `skills get core --full` for the full command reference, exactly as its own docs advise. ' +     'Example args: "open http://localhost:4312/", "read", "click @ref", "snapshot".',   input_schema: { type: 'object', properties: { a
  • Network accessline 311
    'Example args: "open http://localhost:4312/", "read", "click @ref", "snapshot".',
  • Network accessline 331
    async function callAnthropic(messages, tools, system) {   const r = await fetch('https://api.anthropic.com/v1/messages', {
  • Network accessline 332
    const r = await fetch('https://api.anthropic.com/v1/messages', {

bench/eval/ab.mjs

  • Executable scriptline 1
    Executable file

bench/eval/features.mjs

  • Executable scriptline 1
    Executable file

bench/eval/loudness.mjs

  • Executable scriptline 1
    Executable file

bench/eval/loudness.test.mjs

  • Executable scriptline 1
    Executable file

bench/eval/report.mjs

  • Executable scriptline 1
    Executable file

bench/false-green-corpus/find-candidate-rows.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

bench/false-green-corpus/rows.json

  • Network accessline 4
    {       "id": "nuclear-queue-double-click",       "upstream": "https://github.com/nukeop/nuclear.git",
  • Network accessline 5
    "id": "nuclear-queue-double-click",       "upstream": "https://github.com/nukeop/nuclear.git",       "fixedRef": "db61d554436",
  • Network accessline 6
    "upstream": "https://github.com/nukeop/nuclear.git",
  • Network accessline 31
    "command": "npx vite --port {port} --strictPort",         "port": 4399,         "url": "http://localhost:4399/",
  • Network accessline 32
    "port": 4399,         "url": "http://localhost:4399/",         "renders": true,
  • Network accessline 33
    "url": "http://localhost:4399/",
  • Network accessline 54
    {       "id": "excalidraw-bound-label-order",       "upstream": "https://github.com/excalidraw/excalidraw.git",
  • Network accessline 55
    "id": "excalidraw-bound-label-order",       "upstream": "https://github.com/excalidraw/excalidraw.git",       "fixedRef": "c9c96f619",
  • Network accessline 56
    "upstream": "https://github.com/excalidraw/excalidraw.git",
  • Network accessline 83
    "command": "npx vite --port {port} --strictPort",         "port": 4396,         "url": "http://localhost:4396/",
  • Network accessline 84
    "port": 4396,         "url": "http://localhost:4396/",         "renders": null,
  • Network accessline 85
    "url": "http://localhost:4396/",
  • Network accessline 97
    {       "id": "formbricks-survey-list-stale-removal",       "upstream": "https://github.com/formbricks/formbricks.git",
  • Network accessline 98
    "id": "formbricks-survey-list-stale-removal",       "upstream": "https://github.com/formbricks/formbricks.git",       "fixedRef": "0d0a35a69e91cc752d31db3b200d7514831fc771",
  • Network accessline 99
    "upstream": "https://github.com/formbricks/formbricks.git",
  • Network accessline 139
    {       "id": "react-admin-duplicate-undoable-delete",       "upstream": "https://github.com/marmelab/react-admin.git",
  • Network accessline 140
    "id": "react-admin-duplicate-undoable-delete",       "upstream": "https://github.com/marmelab/react-admin.git",       "fixedRef": "62a56d8349c2a36695080a2af8714b4a568ef87f",
  • Network accessline 141
    "upstream": "https://github.com/marmelab/react-admin.git",
  • Network accessline 166
    "command": "npx vite --port {port} --strictPort",         "port": 4395,         "url": "http://localhost:4395/",
  • Network accessline 167
    "port": 4395,         "url": "http://localhost:4395/",         "needs": "outbound network \u2014 the dataProvider is ra-data-json-server against jsonplaceholder.typicode.com, which is what makes the defect reach the wire",
  • Network accessline 168
    "url": "http://localhost:4395/",

bench/false-green-corpus/verify-rows.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 116
    for (let i = 0; i < 60 && !served; i += 1) {       await new Promise((r) => setTimeout(r, 1000));       served = await fetch(row.boot.url)
  • Network accessline 117
    await new Promise((r) => setTimeout(r, 1000));       served = await fetch(row.boot.url)         .then((r) => r.ok)
  • Network accessline 118
    served = await fetch(row.boot.url)

bench/first-drive/measure.mjs

  • Executable scriptline 1
    Executable file
  • Access to secretsline 87
    [Credential-related source omitted]

bench/harness-vs-agent/README.md

  • Access to secretsline 19
    [Credential-related source omitted]

bench/harness-vs-agent/judge.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

bench/harness-vs-agent/report.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

bench/harness-vs-agent/run.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Access to secretsline 18
    [Credential-related source omitted]
  • Access to secretsline 72
    [Credential-related source omitted]
  • Network accessline 73
    } const outRoot = resolve(process.env.BENCH_OUT ?? join(REPO, 'bench/artifacts/harness-vs-agent')); const appUrl = `http://localhost:${String(appPort)}`;
  • Network accessline 75
    const appUrl = `http://localhost:${String(appPort)}`;
  • Network accessline 158
    );   await waitFor(     async () => (await fetch(appUrl).catch(() => undefined))?.ok === true,
  • Network accessline 159
    await waitFor(     async () => (await fetch(appUrl).catch(() => undefined))?.ok === true,     CONNECT_TIMEOUT_MS,
  • Network accessline 160
    async () => (await fetch(appUrl).catch(() => undefined))?.ok === true,
  • Access to secretsline 243
    [Credential-related source omitted]

bench/harness/adapters.mjs

  • Executable scriptline 1
    Executable file

bench/harness/analyze.mjs

  • Executable scriptline 1
    Executable file

bench/harness/baseline-provenance.mjs

  • Executable scriptline 1
    Executable file

bench/harness/baseline-provenance.test.mjs

  • Executable scriptline 1
    Executable file

bench/harness/behaviour-matrix.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 2
    // The behaviour matrix: what every advertised tool ACTUALLY does, recorded rather than described. // //   node bench/harness/behaviour-matrix.mjs --port 4460 --app http://localhost:4319/
  • Network accessline 3
    // //   node bench/harness/behaviour-matrix.mjs --port 4460 --app http://localhost:4319/ //   node bench/harness/behaviour-matrix.mjs --update-baseline
  • Network accessline 4
    //   node bench/harness/behaviour-matrix.mjs --port 4460 --app http://localhost:4319/
  • Network accessline 46
    const flag = (n, d) => (argv.includes(n) ? argv[argv.indexOf(n) + 1] : d); const PORT = Number(flag('--port', '4460')); const APP = flag('--app', 'http://localhost:4319/');
  • Network accessline 47
    const PORT = Number(flag('--port', '4460')); const APP = flag('--app', 'http://localhost:4319/'); const UPDATE = argv.includes('--update-baseline');
  • Network accessline 48
    const APP = flag('--app', 'http://localhost:4319/');

bench/harness/bench-all.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 129
    while (Date.now() < deadline) {     try {       const res = await fetch(url);
  • Network accessline 130
    try {       const res = await fetch(url);       if (res.status < 500) return true;
  • Network accessline 131
    const res = await fetch(url);
  • Network accessline 182
    );   const [apiUp, demoUp] = await Promise.all([     waitForHttp(`http://localhost:${API_PORT}/api/health`, FIXTURE_READY_MS),
  • Network accessline 183
    const [apiUp, demoUp] = await Promise.all([     waitForHttp(`http://localhost:${API_PORT}/api/health`, FIXTURE_READY_MS),     waitForHttp(`http://localhost:${DEMO_PORT}/`, FIXTURE_READY_MS),
  • Network accessline 184
    waitForHttp(`http://localhost:${API_PORT}/api/health`, FIXTURE_READY_MS),
  • Network accessline 185
    waitForHttp(`http://localhost:${DEMO_PORT}/`, FIXTURE_READY_MS),

bench/harness/charts.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 55
    grid += `<text x="${padL - 10}" y="${(y + 4).toFixed(1)}" fill="${C.faint}" font-size="11" font-family="${FONT}" text-anchor="end">${Math.round(val)}</text>`;   }   const svg = `<svg xmlns="http://www.w3.org/2000/svg" width="${w}" height="$
  • Network accessline 56
    }   const svg = `<svg xmlns="http://www.w3.org/2000/svg" width="${w}" height="${h}" viewBox="0 0 ${w} ${h}"> <rect width="${w}" height="${h}" fill="${C.bg}"/>
  • Network accessline 57
    const svg = `<svg xmlns="http://www.w3.org/2000/svg" width="${w}" height="${h}" viewBox="0 0 ${w} ${h}">

bench/harness/claude-agent-loop.mjs

  • Executable scriptline 1
    Executable file
  • Access to secretsline 9
    [Credential-related source omitted]
  • Access to secretsline 13
    [Credential-related source omitted]
  • Network accessline 21
    [Credential-related source omitted]
  • Access to secretsline 21
    [Credential-related source omitted]
  • Network accessline 23
    const URL = 'http://localhost:4312/';
  • Access to secretsline 37
    [Credential-related source omitted]
  • Network accessline 120
    async function callAnthropic(messages, tools, system) {   const r = await fetch('https://api.anthropic.com/v1/messages', {
  • Network accessline 121
    const r = await fetch('https://api.anthropic.com/v1/messages', {

bench/harness/clock-timetravel.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    const URL = process.env.BENCH_URL ?? 'http://localhost:4312/';

bench/harness/compiled-suite-vs-replay.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 19
    const URL = process.env.BENCH_URL ?? 'http://localhost:4312/';

bench/harness/compiled-suite-vs-replay.test.mjs

  • Executable scriptline 1
    Executable file

bench/harness/compound-expect-bench.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 19
    const URL = process.env.BENCH_URL ?? 'http://localhost:4312/';

bench/harness/console-clean-bench.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 17
    const URL = process.env.BENCH_URL ?? 'http://localhost:4312/';

bench/harness/coverage-floor.mjs

  • Executable scriptline 1
    Executable file

bench/harness/coverage-floor.test.mjs

  • Executable scriptline 1
    Executable file

bench/harness/explore-cost.mjs

  • Executable scriptline 1
    Executable file
  • Access to secretsline 19
    [Credential-related source omitted]
  • Access to secretsline 22
    [Credential-related source omitted]
  • Network accessline 28
    [Credential-related source omitted]
  • Access to secretsline 28
    [Credential-related source omitted]
  • Network accessline 29
    const MODEL = process.env.BENCH_MODEL ?? 'claude-haiku-4-5-20251001'; const URL = process.env.BENCH_URL ?? 'http://localhost:4312/'; const MAX_TURNS = Number(process.env.BENCH_MAX_TURNS ?? 25);
  • Network accessline 30
    const URL = process.env.BENCH_URL ?? 'http://localhost:4312/';
  • Access to secretsline 41
    [Credential-related source omitted]
  • Network accessline 74
    async function callAnthropic(messages, tools, system) {   const r = await fetch('https://api.anthropic.com/v1/messages', {
  • Network accessline 75
    const r = await fetch('https://api.anthropic.com/v1/messages', {

bench/harness/forbidden-call-bench.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 20
    const URL = process.env.BENCH_URL ?? 'http://localhost:4312/';

bench/harness/gate.mjs

  • Executable scriptline 1
    Executable file

bench/harness/guidance-share.mjs

  • Executable scriptline 1
    Executable file

bench/harness/guidance-share.test.mjs

  • Executable scriptline 1
    Executable file

bench/harness/imports-resolve.test.mjs

  • Executable scriptline 1
    Executable file

bench/harness/inject.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 244
    async function served(origin, file) {   const res = await fetch(new URL(file.slice(FIXTURE_APP.length + 1), origin));
  • Network accessline 245
    const res = await fetch(new URL(file.slice(FIXTURE_APP.length + 1), origin));

bench/harness/intent-effect-metrics.mjs

  • Executable scriptline 1
    Executable file

bench/harness/intent-effect-metrics.test.mjs

  • Executable scriptline 1
    Executable file

bench/harness/intent-effect-verdict.mjs

  • Executable scriptline 1
    Executable file
  • Access to secretsline 72
    [Credential-related source omitted]

bench/harness/intent-effect-verdict.test.mjs

  • Executable scriptline 1
    Executable file

bench/harness/intent-effect.mjs

  • Executable scriptline 1
    Executable file
  • Access to secretsline 19
    [Credential-related source omitted]
  • Access to secretsline 35
    [Credential-related source omitted]
  • Network accessline 148
    async function callAnthropic(messages, tools, system) {   const r = await fetch('https://api.anthropic.com/v1/messages', {
  • Network accessline 149
    const r = await fetch('https://api.anthropic.com/v1/messages', {
  • Access to secretsline 307
    [Credential-related source omitted]
  • Access to secretsline 399
    [Credential-related source omitted]

bench/harness/jev-probe.mjs

  • Executable scriptline 1
    Executable file
  • Access to secretsline 15
    [Credential-related source omitted]
  • Access to secretsline 22
    [Credential-related source omitted]
  • Access to secretsline 29
    [Credential-related source omitted]

bench/harness/jev.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 19
    export const JEV_URL = 'https://api.typesafe.ai/v1/systemone';
  • Access to secretsline 93
    [Credential-related source omitted]
  • Access to secretsline 94
    [Credential-related source omitted]
  • Network accessline 96
    const startedAt = Date.now();   const res = await fetch(url, {
  • Network accessline 97
    const res = await fetch(url, {

bench/harness/leak-stress.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 28
    const SESSIONS = Number(process.argv[2] ?? 12); const CONCURRENCY = Number(process.argv[3] ?? 4); const APP = process.env.BENCH_URL ?? 'http://localhost:4312/';
  • Network accessline 29
    const CONCURRENCY = Number(process.argv[3] ?? 4); const APP = process.env.BENCH_URL ?? 'http://localhost:4312/'; const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
  • Network accessline 30
    const APP = process.env.BENCH_URL ?? 'http://localhost:4312/';

bench/harness/long-horizon.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 2
    [Credential-related source omitted]
  • Network accessline 3
    [Credential-related source omitted]
  • Network accessline 4
    [Credential-related source omitted]
  • Access to secretsline 4
    [Credential-related source omitted]
  • Access to secretsline 40
    [Credential-related source omitted]
  • Access to secretsline 41
    [Credential-related source omitted]
  • Access to secretsline 43
    [Credential-related source omitted]
  • Network accessline 49
    const argv = process.argv.slice(2); const flag = (n, d) => (argv.includes(n) ? argv[argv.indexOf(n) + 1] : d); const APP = flag('--app', 'http://localhost:4319/');
  • Network accessline 50
    const flag = (n, d) => (argv.includes(n) ? argv[argv.indexOf(n) + 1] : d); const APP = flag('--app', 'http://localhost:4319/'); const PORT = Number(flag('--port', '4460'));
  • Network accessline 51
    const APP = flag('--app', 'http://localhost:4319/');
  • Access to secretsline 74
    [Credential-related source omitted]
  • Network accessline 102
    async function callAnthropic(messages, tools) {   const r = await fetch('https://api.anthropic.com/v1/messages', {
  • Network accessline 103
    const r = await fetch('https://api.anthropic.com/v1/messages', {

bench/harness/make-readme-chart.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 82
    const card = (w, h, label, t, body) =>   `<svg xmlns="http://www.w3.org/2000/svg" width="${w}" height="${h}" viewBox="0 0 ${w} ${h}" font-family="${FONT}" role="img" aria-label="${esc(label)}">\n` +
  • Network accessline 83
    `<svg xmlns="http://www.w3.org/2000/svg" width="${w}" height="${h}" viewBox="0 0 ${w} ${h}" font-family="${FONT}" role="img" aria-label="${esc(label)}">\n` +

bench/harness/mcp-client.mjs

  • Executable scriptline 1
    Executable file

bench/harness/mcp-line-client.mjs

  • Executable scriptline 1
    Executable file

bench/harness/measure-large-dom.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 14
    const URL = process.env.LARGE_DOM_URL ?? 'http://localhost:4313/';

bench/harness/multi-agent-throughput.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 9
    const URL = process.env.BENCH_URL ?? 'http://localhost:4312/';

bench/harness/network-cardinality-bench.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 22
    const URL = process.env.BENCH_URL ?? 'http://localhost:4312/';

bench/harness/observation-retry.mjs

  • Executable scriptline 1
    Executable file

bench/harness/observation-retry.test.mjs

  • Executable scriptline 1
    Executable file

bench/harness/openai-agent-loop.mjs

  • Executable scriptline 1
    Executable file
  • Access to secretsline 8
    [Credential-related source omitted]
  • Access to secretsline 9
    [Credential-related source omitted]
  • Access to secretsline 15
    [Credential-related source omitted]
  • Network accessline 19
    const BASE = (process.env.BENCH_OPENAI_BASE_URL ?? 'https://api.openai.com/v1').replace(/\/$/, '');
  • Network accessline 20
    const URL = process.env.BENCH_URL ?? 'http://localhost:4312/';
  • Access to secretsline 25
    [Credential-related source omitted]
  • Network accessline 103
    async function callOpenAI(messages, tools) {   const r = await fetch(`${BASE}/chat/completions`, {
  • Network accessline 104
    const r = await fetch(`${BASE}/chat/completions`, {

bench/harness/parallel-agents-cell.mjs

  • Executable scriptline 1
    Executable file

bench/harness/parallel-agents-cell.test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 12
    describe('agentUrl', () => {   it('gives each agent its own URL, so each adapter pins its own tab', () => {     const a = agentUrl('http://localhost:4312/', 'a');
  • Network accessline 13
    it('gives each agent its own URL, so each adapter pins its own tab', () => {     const a = agentUrl('http://localhost:4312/', 'a');     const b = agentUrl('http://localhost:4312/', 'b');
  • Network accessline 14
    const a = agentUrl('http://localhost:4312/', 'a');
  • Network accessline 15
    const b = agentUrl('http://localhost:4312/', 'b');
  • Network accessline 16
    expect(a).not.toBe(b);     expect(a.startsWith('http://localhost:4312/')).toBe(true);     expect(new URL(b).searchParams.get('bench-agent')).toBe('b');
  • Network accessline 17
    expect(a.startsWith('http://localhost:4312/')).toBe(true);
  • Network accessline 21
    it('adds the bug only when asked', () => {     expect(new URL(agentUrl('http://localhost:4312/', 'a')).searchParams.has('reticle-bug')).toBe(
  • Network accessline 22
    expect(new URL(agentUrl('http://localhost:4312/', 'a')).searchParams.has('reticle-bug')).toBe(
  • Network accessline 24
    );     expect(       new URL(agentUrl('http://localhost:4312/', 'b', 'console-leak')).searchParams.get(
  • Network accessline 25
    expect(       new URL(agentUrl('http://localhost:4312/', 'b', 'console-leak')).searchParams.get(         'reticle-bug',
  • Network accessline 26
    new URL(agentUrl('http://localhost:4312/', 'b', 'console-leak')).searchParams.get(

bench/harness/parallel-agents.mjs

  • Executable scriptline 1
    Executable file

bench/harness/pass-artifact.mjs

  • Executable scriptline 1
    Executable file

bench/harness/pass-artifact.test.mjs

  • Executable scriptline 1
    Executable file

bench/harness/platform-drive.mjs

  • Executable scriptline 1
    Executable file
  • Access to secretsline 11
    [Credential-related source omitted]
  • Network accessline 16
    const REPO = process.env.RETICLE_REPO ?? process.cwd(); const APP_URL = process.env.APP_URL ?? 'http://localhost:5273/';
  • Network accessline 17
    const APP_URL = process.env.APP_URL ?? 'http://localhost:5273/';
  • Access to secretsline 32
    [Credential-related source omitted]
  • Access to secretsline 37
    [Credential-related source omitted]
  • Access to secretsline 77
    [Credential-related source omitted]
  • Access to secretsline 80
    [Credential-related source omitted]
  • Access to secretsline 81
    [Credential-related source omitted]
  • Access to secretsline 82
    [Credential-related source omitted]

bench/harness/playwright-parity.mjs

  • Executable scriptline 1
    Executable file

bench/harness/playwright-parity.test.mjs

  • Executable scriptline 1
    Executable file

bench/harness/ports.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 33
    export const BENCH_URL = process.env.BENCH_URL ?? `http://localhost:${DEMO_PORT}/`;

bench/harness/probe.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 24
    PROBE_RETICLE_PORT,       '--drive',       `http://localhost:${DEMO_PORT}`,
  • Network accessline 25
    '--drive',       `http://localhost:${DEMO_PORT}`,     ],
  • Network accessline 26
    `http://localhost:${DEMO_PORT}`,

bench/harness/record.mjs

  • Executable scriptline 1
    Executable file

bench/harness/recording-reached-anchor.mjs

  • Executable scriptline 1
    Executable file

bench/harness/recording-reached-anchor.test.mjs

  • Executable scriptline 1
    Executable file

bench/harness/render-storm-bench.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 10
    const BASE = process.env.BENCH_URL ?? 'http://localhost:4312/';

bench/harness/replay-bench.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    const URL = process.env.BENCH_URL ?? 'http://localhost:4312/';

bench/harness/replay-detect-consequence.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 20
    const URL = process.env.BENCH_URL ?? 'http://localhost:4312/';

bench/harness/replay-detect-state.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 20
    const URL = process.env.BENCH_URL ?? 'http://localhost:4312/';

bench/harness/replay-detect.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 24
    const DAEMON_CWD =   process.env.BENCH_RETICLE_CWD ?? resolve(dirname(fileURLToPath(import.meta.url)), '..', '..'); const URL = process.env.BENCH_URL ?? 'http://localhost:4312/';
  • Network accessline 25
    process.env.BENCH_RETICLE_CWD ?? resolve(dirname(fileURLToPath(import.meta.url)), '..', '..'); const URL = process.env.BENCH_URL ?? 'http://localhost:4312/'; const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
  • Network accessline 26
    const URL = process.env.BENCH_URL ?? 'http://localhost:4312/';

bench/harness/replay-determinism.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 24
    const URL = process.env.BENCH_URL ?? 'http://localhost:4312/';

bench/harness/run-observation.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 126
    *  * Line shapes it must match:  *   Playwright: `12. [GET] http://localhost:8787/api/broken/500 => [500] Internal Server Error`
  • Network accessline 127
    * Line shapes it must match:  *   Playwright: `12. [GET] http://localhost:8787/api/broken/500 => [500] Internal Server Error`  *   DevTools:   `reqid=198 POST https://collect.telemetry-vendor.invalid/collect [net::ERR_NAME_NOT_RESOLVED]`
  • Network accessline 128
    *   Playwright: `12. [GET] http://localhost:8787/api/broken/500 => [500] Internal Server Error`
  • Network accessline 129
    *   DevTools:   `reqid=198 POST https://collect.telemetry-vendor.invalid/collect [net::ERR_NAME_NOT_RESOLVED]`

bench/harness/schema-tax.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 6
    // they avoid loading large tool schemas"; a filed issue measures the default Playwright MCP tool list at // 14.4k tokens = 7.2% of a Claude Code context window // (https://github.com/microsoft/playwright-mcp/issues/1290), and chrome-devtoo
  • Network accessline 7
    // 14.4k tokens = 7.2% of a Claude Code context window // (https://github.com/microsoft/playwright-mcp/issues/1290), and chrome-devtools-mcp is reported near // 17k. Users respond by turning the servers off — "there is absolutely no reason 
  • Network accessline 8
    // (https://github.com/microsoft/playwright-mcp/issues/1290), and chrome-devtools-mcp is reported near

bench/harness/served-change.test.mjs

  • Executable scriptline 1
    Executable file

bench/harness/source-localize.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 14
    const URL = process.env.BENCH_URL ?? 'http://localhost:4312/';

bench/harness/state-blast-radius-bench.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 22
    const URL = process.env.BENCH_URL ?? 'http://localhost:4312/';

bench/harness/state-desync-bench.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    const BASE = process.env.BENCH_URL ?? 'http://localhost:4312/';

bench/harness/stress-tiers.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 26
    const APP = process.argv[2] ?? process.env.STRESS_URL ?? 'http://localhost:4313/';

bench/harness/suite-flows.mjs

  • Executable scriptline 1
    Executable file

bench/harness/suite-rre.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 14
    const URL = process.env.BENCH_URL ?? 'http://localhost:4312/';

bench/harness/token-budget.mjs

  • Executable scriptline 1
    Executable file

bench/harness/token-budget.test.mjs

  • Executable scriptline 1
    Executable file

bench/harness/tokenizer.mjs

  • Executable scriptline 1
    Executable file

bench/harness/tool-coverage.mjs

  • Executable scriptline 1
    Executable file

bench/harness/tool-coverage.test.mjs

  • Executable scriptline 1
    Executable file

bench/harness/tool-profile-output.mjs

  • Executable scriptline 1
    Executable file

bench/harness/tool-profile-output.test.mjs

  • Executable scriptline 1
    Executable file

bench/harness/tool-profile.mjs

  • Executable scriptline 1
    Executable file
  • Access to secretsline 55
    [Credential-related source omitted]
  • Network accessline 56
    },     ],     healthUrls: [`http://localhost:${API_PORT}/api/health`, `http://localhost:${DEMO_PORT}/`],
  • Network accessline 57
    ],     healthUrls: [`http://localhost:${API_PORT}/api/health`, `http://localhost:${DEMO_PORT}/`],   },
  • Network accessline 58
    healthUrls: [`http://localhost:${API_PORT}/api/health`, `http://localhost:${DEMO_PORT}/`],
  • Network accessline 62
    //   id: 'next-app-router',   //   name: 'Next.js App Router',   //   url: 'http://localhost:3100/',
  • Network accessline 63
    //   name: 'Next.js App Router',   //   url: 'http://localhost:3100/',   //   demoPort: '3100',
  • Network accessline 64
    //   url: 'http://localhost:3100/',
  • Network accessline 65
    //   demoPort: '3100',   //   bootProcesses: (token) => [...],   //   healthUrls: ['http://localhost:3100/'],
  • Network accessline 66
    //   bootProcesses: (token) => [...],   //   healthUrls: ['http://localhost:3100/'],   // },
  • Network accessline 67
    //   healthUrls: ['http://localhost:3100/'],
  • Network accessline 121
    while (Date.now() < deadline) {     try {       const res = await fetch(url);
  • Network accessline 122
    try {       const res = await fetch(url);       if (res.status < 500) return true;
  • Network accessline 123
    const res = await fetch(url);

bench/harness/visual-bug-bench.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 13
    const BASE = process.env.BENCH_URL ?? 'http://localhost:4312/';

bench/harness/visual-regression-bench.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 14
    const BASE = process.env.BENCH_URL ?? 'http://localhost:4312/';

bench/honesty/run-honesty.mjs

  • Executable scriptline 1
    Executable file

bench/honesty/scenarios.mjs

  • Executable scriptline 1
    Executable file

bench/overhead/README.md

  • Network accessline 8
    # bench-app must be running (default http://localhost:4312)

bench/overhead/measure.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 21
    //   node bench/overhead/measure.mjs [url] [seconds] // // Requires the bench-app running (default http://localhost:4312). Alternates the order of the two
  • Network accessline 22
    // // Requires the bench-app running (default http://localhost:4312). Alternates the order of the two // conditions across repeats so warm-up/JIT drift cannot systematically favour either one.
  • Network accessline 23
    // Requires the bench-app running (default http://localhost:4312). Alternates the order of the two
  • Network accessline 28
    const BASE = process.argv[2] ?? 'http://localhost:4312';

bench/parallel-suite/README.md

  • Network accessline 7
    #    cd apps/bench-app && RETICLE_PORT=4491 pnpm dev # 2. flows saved in .reticle/flows/ RETICLE_PORT=4491 node bench/parallel-suite/measure.mjs http://localhost:4312 4
  • Network accessline 9
    RETICLE_PORT=4491 node bench/parallel-suite/measure.mjs http://localhost:4312 4

bench/parallel-suite/cross-tool.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 29
    const APP = process.argv[2] ?? 'http://localhost:4312';

bench/parallel-suite/measure.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 27
    const APP_URL = process.argv[2] ?? 'http://localhost:4312';

bench/pw-vs-reticle/bugs.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 30
    export const APP_ORIGIN = 'http://localhost:4312';
  • Access to secretsline 832
    [Credential-related source omitted]

bench/pw-vs-reticle/compare-runs.mjs

  • Executable scriptline 1
    Executable file

bench/pw-vs-reticle/mcp-head-to-head.mjs

  • Executable scriptline 1
    Executable file
  • Access to secretsline 12
    [Credential-related source omitted]
  • Access to secretsline 13
    [Credential-related source omitted]
  • Network accessline 24
    [Credential-related source omitted]
  • Access to secretsline 24
    [Credential-related source omitted]
  • Access to secretsline 27
    [Credential-related source omitted]
  • Access to secretsline 29
    [Credential-related source omitted]
  • Network accessline 31
    [Credential-related source omitted]
  • Access to secretsline 31
    [Credential-related source omitted]
  • Network accessline 32
    const KEY = PROVIDER === 'anthropic' ? ANTHROPIC_KEY : OPENAI_KEY; const LLM_URL = process.env.BENCH_LLM_URL ?? 'https://api.openai.com/v1/chat/completions'; const ANTHROPIC_URL = process.env.BENCH_ANTHROPIC_URL ?? 'https://api.anthropic.co
  • Network accessline 33
    const LLM_URL = process.env.BENCH_LLM_URL ?? 'https://api.openai.com/v1/chat/completions';
  • Network accessline 34
    const ANTHROPIC_URL = process.env.BENCH_ANTHROPIC_URL ?? 'https://api.anthropic.com/v1/messages';
  • Access to secretsline 61
    [Credential-related source omitted]
  • Network accessline 168
    ],     async send(messages, tools) {       const r = await fetch(LLM_URL, {
  • Network accessline 169
    async send(messages, tools) {       const r = await fetch(LLM_URL, {         method: 'POST',
  • Network accessline 170
    const r = await fetch(LLM_URL, {
  • Network accessline 221
    seed: (task) => [{ role: 'user', content: task }],     async send(messages, tools) {       const r = await fetch(ANTHROPIC_URL, {
  • Network accessline 222
    async send(messages, tools) {       const r = await fetch(ANTHROPIC_URL, {         method: 'POST',
  • Network accessline 223
    const r = await fetch(ANTHROPIC_URL, {

bench/pw-vs-reticle/moat.mjs

  • Executable scriptline 1
    Executable file

bench/pw-vs-reticle/multi-agent.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 281
    if (m.type() === 'error') consoleErrors.push(m.text());     });     page.on('request', (r) => requests.push({ url: r.url(), method: r.method() }));
  • Network accessline 282
    });     page.on('request', (r) => requests.push({ url: r.url(), method: r.method() }));     const click = async (t) => {
  • Network accessline 283
    page.on('request', (r) => requests.push({ url: r.url(), method: r.method() }));
  • Network accessline 351
    if (ok) await click(c.steps[0]);           await sleep(700);           const n = requests.filter(
  • Network accessline 352
    await sleep(700);           const n = requests.filter(             (r) => r.method === c.method && r.url.includes(c.urlContains),
  • Network accessline 353
    const n = requests.filter(

bench/pw-vs-reticle/opaque.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 17
    const CHROME = '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome'; const ORIGIN = 'http://localhost:4312';
  • Network accessline 18
    const ORIGIN = 'http://localhost:4312';

bench/pw-vs-reticle/playwright-harness.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 43
    if (m.type() === 'error') consoleErrors.push(m.text());       });       page.on('request', (r) => requests.push({ url: r.url(), method: r.method() }));
  • Network accessline 45
    page.on('request', (r) => requests.push({ url: r.url(), method: r.method() }));
  • Network accessline 220
    if (ok) await click(c.steps[0]);           await sleep(700);           const n = requests.filter(
  • Network accessline 221
    await sleep(700);           const n = requests.filter(             (r) => r.method === c.method && r.url.includes(c.urlContains),
  • Network accessline 222
    const n = requests.filter(
  • Network accessline 383
    note = `expected "${c.expectText}": ${text.includes(c.expectText)}`;         } else if (c.kind === 'deepNetCountAfter') {           const before = requests.filter((r) => r.url.includes(c.urlContains)).length;
  • Network accessline 384
    } else if (c.kind === 'deepNetCountAfter') {           const before = requests.filter((r) => r.url.includes(c.urlContains)).length;           await page
  • Network accessline 385
    const before = requests.filter((r) => r.url.includes(c.urlContains)).length;
  • Network accessline 390
    .catch(() => {});           await sleep(900);           const after = requests.filter((r) => r.url.includes(c.urlContains)).length;
  • Network accessline 391
    await sleep(900);           const after = requests.filter((r) => r.url.includes(c.urlContains)).length;           caught = after - before < 1;
  • Network accessline 392
    const after = requests.filter((r) => r.url.includes(c.urlContains)).length;
  • Network accessline 430
    }           await sleep(c.settleMs ?? 1200);           const n = requests.filter((r) => r.url.includes(c.urlContains)).length;
  • Network accessline 431
    await sleep(c.settleMs ?? 1200);           const n = requests.filter((r) => r.url.includes(c.urlContains)).length;           caught = n > c.maxExpected;
  • Network accessline 432
    const n = requests.filter((r) => r.url.includes(c.urlContains)).length;
  • Network accessline 439
    }           await sleep(c.settleMs ?? 3000);           const n = requests.filter((r) => r.url.includes(c.urlContains)).length;
  • Network accessline 440
    await sleep(c.settleMs ?? 3000);           const n = requests.filter((r) => r.url.includes(c.urlContains)).length;           caught = n > c.maxExpected;
  • Network accessline 441
    const n = requests.filter((r) => r.url.includes(c.urlContains)).length;
  • Network accessline 519
    if (ok) await click(c.steps[0]);           await sleep(c.withinMs ?? RESPONSE_SETTLE_MS);           const asked = requests.filter((r) => r.url.includes(c.urlContains)).length;
  • Network accessline 520
    await sleep(c.withinMs ?? RESPONSE_SETTLE_MS);           const asked = requests.filter((r) => r.url.includes(c.urlContains)).length;           const answered = responses.filter((r) => r.url.includes(c.urlContains));
  • Network accessline 521
    const asked = requests.filter((r) => r.url.includes(c.urlContains)).length;

bench/pw-vs-reticle/report.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 195
    L.push('| How | one typed `reticle_state` read | walked the React fiber via `browser_evaluate` |'); L.push(   '\n**Reticle ≈ 11× fewer calls, ~11× faster, ~2.4× fewer tokens** — and via a stable API, where Playwright-MCP reverse-engineered 
  • Network accessline 196
    L.push(   '\n**Reticle ≈ 11× fewer calls, ~11× faster, ~2.4× fewer tokens** — and via a stable API, where Playwright-MCP reverse-engineered React internals (fragile: minified prod, non-React stores, fiber changes). Caveats: (a) bench-app em
  • Network accessline 197
    '\n**Reticle ≈ 11× fewer calls, ~11× faster, ~2.4× fewer tokens** — and via a stable API, where Playwright-MCP reverse-engineered React internals (fragile: minified prod, non-React stores, fiber changes). Caveats: (a) bench-app embeds the R

bench/pw-vs-reticle/reticle-harness.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 88
    RETICLE_PORT: PORT,     RETICLE_ADVERTISE_ALL_TOOLS: '1',     RETICLE_CDP_URL: `http://127.0.0.1:${CDP_PORT}`,
  • Network accessline 89
    RETICLE_ADVERTISE_ALL_TOOLS: '1',     RETICLE_CDP_URL: `http://127.0.0.1:${CDP_PORT}`,   });
  • Network accessline 90
    RETICLE_CDP_URL: `http://127.0.0.1:${CDP_PORT}`,
  • Network accessline 123
    for (let i = 0; i < 20 && !ok; i += 1) {       try {         const probe = await chromium.connectOverCDP(`http://127.0.0.1:${CDP_PORT}`);
  • Network accessline 124
    try {         const probe = await chromium.connectOverCDP(`http://127.0.0.1:${CDP_PORT}`);         const urls = probe
  • Network accessline 125
    const probe = await chromium.connectOverCDP(`http://127.0.0.1:${CDP_PORT}`);

bench/pw-vs-reticle/run.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    const API_ORIGIN = 'http://localhost:8787';
  • Network accessline 17
    async function up(url) {   try {     const r = await fetch(url);
  • Network accessline 18
    try {     const r = await fetch(url);     return r.ok;
  • Network accessline 19
    const r = await fetch(url);

bench/raw/leak-stress.json

  • Network accessline 4
    "sessions": 12,     "concurrency": 4,     "app": "http://localhost:4312/"
  • Network accessline 5
    "concurrency": 4,     "app": "http://localhost:4312/"   },
  • Network accessline 6
    "app": "http://localhost:4312/"

bench/raw/stress-tiers.json

  • Network accessline 1
    {   "metric": "Reticle cost and latency as the app scales (same app, three sizes)",   "app": "http://localhost:4313/",
  • Network accessline 2
    "metric": "Reticle cost and latency as the app scales (same app, three sizes)",   "app": "http://localhost:4313/",   "tiers": [
  • Network accessline 3
    "app": "http://localhost:4313/",

bench/raw/suite-rre.json

  • Network accessline 30
    "claim": "the UI moved forward and the action reported done",             "counter": "1 request(s) were still in flight",             "detail": "POST http://localhost:8787/api/login"
  • Network accessline 31
    "counter": "1 request(s) were still in flight",             "detail": "POST http://localhost:8787/api/login"           },
  • Network accessline 32
    "detail": "POST http://localhost:8787/api/login"
  • Network accessline 38
    "claim": "the UI moved forward and the action reported done",             "counter": "1 request(s) were still in flight",             "detail": "GET http://localhost:8787/api/items?limit=1"
  • Network accessline 39
    "counter": "1 request(s) were still in flight",             "detail": "GET http://localhost:8787/api/items?limit=1"           },
  • Network accessline 40
    "detail": "GET http://localhost:8787/api/items?limit=1"
  • Network accessline 46
    "claim": "the UI moved forward and the action reported done",             "counter": "1 request(s) were still in flight",             "detail": "GET http://localhost:8787/api/broken/500"
  • Network accessline 47
    "counter": "1 request(s) were still in flight",             "detail": "GET http://localhost:8787/api/broken/500"           },
  • Network accessline 48
    "detail": "GET http://localhost:8787/api/broken/500"
  • Network accessline 54
    "claim": "the UI moved forward and the action reported done",             "counter": "1 request(s) were still in flight",             "detail": "GET http://localhost:8787/api/items?limit=1"
  • Network accessline 55
    "counter": "1 request(s) were still in flight",             "detail": "GET http://localhost:8787/api/items?limit=1"           },
  • Network accessline 56
    "detail": "GET http://localhost:8787/api/items?limit=1"
  • Network accessline 62
    "claim": "the UI moved forward and the action reported done",             "counter": "1 request(s) were still in flight",             "detail": "GET http://localhost:8787/api/broken/wrong-data"
  • Network accessline 63
    "counter": "1 request(s) were still in flight",             "detail": "GET http://localhost:8787/api/broken/wrong-data"           }
  • Network accessline 64
    "detail": "GET http://localhost:8787/api/broken/wrong-data"
  • Network accessline 106
    "claim": "the UI moved forward and the action reported done",             "counter": "1 request(s) were still in flight",             "detail": "POST http://localhost:8787/api/login"
  • Network accessline 107
    "counter": "1 request(s) were still in flight",             "detail": "POST http://localhost:8787/api/login"           },
  • Network accessline 108
    "detail": "POST http://localhost:8787/api/login"
  • Network accessline 114
    "claim": "the UI moved forward and the action reported done",             "counter": "1 request(s) were still in flight",             "detail": "GET http://localhost:8787/api/items?limit=1"
  • Network accessline 115
    "counter": "1 request(s) were still in flight",             "detail": "GET http://localhost:8787/api/items?limit=1"           },
  • Network accessline 116
    "detail": "GET http://localhost:8787/api/items?limit=1"
  • Network accessline 122
    "claim": "the UI moved forward and the action reported done",             "counter": "1 request(s) were still in flight",             "detail": "GET http://localhost:8787/api/items?limit=1"
  • Network accessline 123
    "counter": "1 request(s) were still in flight",             "detail": "GET http://localhost:8787/api/items?limit=1"           },
  • Network accessline 124
    "detail": "GET http://localhost:8787/api/items?limit=1"
  • Network accessline 130
    "claim": "the UI moved forward and the action reported done",             "counter": "1 request(s) were still in flight",             "detail": "GET http://localhost:8787/api/broken/500"
  • Network accessline 131
    "counter": "1 request(s) were still in flight",             "detail": "GET http://localhost:8787/api/broken/500"           },
  • Network accessline 132
    "detail": "GET http://localhost:8787/api/broken/500"
  • Network accessline 138
    "claim": "the UI moved forward and the action reported done",             "counter": "1 request(s) were still in flight",             "detail": "GET http://localhost:8787/api/items?limit=1"
  • Network accessline 139
    "counter": "1 request(s) were still in flight",             "detail": "GET http://localhost:8787/api/items?limit=1"           },
  • Network accessline 140
    "detail": "GET http://localhost:8787/api/items?limit=1"
  • Network accessline 146
    "claim": "the UI moved forward and the action reported done",             "counter": "1 request(s) were still in flight",             "detail": "GET http://localhost:8787/api/broken/wrong-data"
  • Network accessline 147
    "counter": "1 request(s) were still in flight",             "detail": "GET http://localhost:8787/api/broken/wrong-data"           }
  • Network accessline 148
    "detail": "GET http://localhost:8787/api/broken/wrong-data"

break/break-matrix.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 268
    return srv;     },     run: (dir) => run(dir, ['--url', 'https://127.0.0.1:59993/']),
  • Network accessline 270
    run: (dir) => run(dir, ['--url', 'https://127.0.0.1:59993/']),
  • Network accessline 290
    run: (dir) =>       run(dir, [], {         npm_config_registry: 'http://127.0.0.1:59994/',
  • Network accessline 291
    run(dir, [], {         npm_config_registry: 'http://127.0.0.1:59994/',         npm_config_fetch_retries: '0',
  • Network accessline 292
    npm_config_registry: 'http://127.0.0.1:59994/',
  • Network accessline 311
    return squatter;     },     run: (dir) => run(dir, ['--port', '59996', '--url', 'http://127.0.0.1:59995/']),
  • Network accessline 312
    },     run: (dir) => run(dir, ['--port', '59996', '--url', 'http://127.0.0.1:59995/']),     expect: 'is held by something that is not a Reticle daemon',
  • Network accessline 313
    run: (dir) => run(dir, ['--port', '59996', '--url', 'http://127.0.0.1:59995/']),
  • Network accessline 327
    name: 'web',           version: '1.0.0',           scripts: { dev: 'echo "  Local: http://localhost:59997/"; sleep 20' },
  • Network accessline 328
    version: '1.0.0',           scripts: { dev: 'echo "  Local: http://localhost:59997/"; sleep 20' },         },
  • Network accessline 329
    scripts: { dev: 'echo "  Local: http://localhost:59997/"; sleep 20' },
  • Network accessline 338
    why: 'an agent CLI on PATH that does not run (a half-installed codex, a missing vendor binary). Restarting into it, or driving with it, produces an empty session that looks exactly like success',     build: () =>       app({ 'package.json':
  • Network accessline 339
    build: () =>       app({ 'package.json': pkg({ dev: 'echo "  Local: http://localhost:59998/"; sleep 20' }) }),     run: (dir) =>
  • Network accessline 340
    app({ 'package.json': pkg({ dev: 'echo "  Local: http://localhost:59998/"; sleep 20' }) }),
  • Network accessline 341
    run: (dir) =>       run(dir, ['--url', 'http://127.0.0.1:59998/'], {         PATH: (() => {
  • Network accessline 342
    run(dir, ['--url', 'http://127.0.0.1:59998/'], {
  • Network accessline 396
    out: execFileSync(             process.execPath,             [CLI, 'init', '--json', '--timeout', '3', '--url', 'http://127.0.0.1:59992/'],
  • Network accessline 397
    process.execPath,             [CLI, 'init', '--json', '--timeout', '3', '--url', 'http://127.0.0.1:59992/'],             {
  • Network accessline 398
    [CLI, 'init', '--json', '--timeout', '3', '--url', 'http://127.0.0.1:59992/'],
  • Network accessline 441
    build: () =>       app({         'package.json': pkg({ dev: 'echo "  Local: http://localhost:59991/"; sleep 20' }),
  • Network accessline 442
    app({         'package.json': pkg({ dev: 'echo "  Local: http://localhost:59991/"; sleep 20' }),         '.reticle.json': '{ "port": 44',
  • Network accessline 443
    'package.json': pkg({ dev: 'echo "  Local: http://localhost:59991/"; sleep 20' }),
  • Network accessline 444
    '.reticle.json': '{ "port": 44',       }),     run: (dir) => run(dir, ['--url', 'http://127.0.0.1:59991/']),
  • Network accessline 445
    }),     run: (dir) => run(dir, ['--url', 'http://127.0.0.1:59991/']),     expect: 'nothing is serving',
  • Network accessline 446
    run: (dir) => run(dir, ['--url', 'http://127.0.0.1:59991/']),
  • Network accessline 454
    build: () =>       app({         'package.json': pkg({ dev: 'echo "  Local: http://127.0.0.1:59990/"; sleep 20' }),
  • Network accessline 455
    app({         'package.json': pkg({ dev: 'echo "  Local: http://127.0.0.1:59990/"; sleep 20' }),         '.reticle.json': JSON.stringify({ projectId: 'already-here', port: 4400 }),
  • Network accessline 456
    'package.json': pkg({ dev: 'echo "  Local: http://127.0.0.1:59990/"; sleep 20' }),
  • Network accessline 458
    '.reticle/flows/login.json': JSON.stringify({ name: 'login', steps: [] }),       }),     run: (dir) => run(dir, ['--url', 'http://127.0.0.1:59990/']),
  • Network accessline 460
    run: (dir) => run(dir, ['--url', 'http://127.0.0.1:59990/']),
  • Network accessline 472
    version: '1.0.0',           packageManager: 'yarn@4.0.0',           scripts: { dev: 'echo "  Local: http://127.0.0.1:59989/"; sleep 20' },
  • Network accessline 473
    packageManager: 'yarn@4.0.0',           scripts: { dev: 'echo "  Local: http://127.0.0.1:59989/"; sleep 20' },         },
  • Network accessline 474
    scripts: { dev: 'echo "  Local: http://127.0.0.1:59989/"; sleep 20' },
  • Network accessline 478
    '.yarnrc.yml': 'nodeLinker: pnp\n',       }),     run: (dir) => run(dir, ['--url', 'http://127.0.0.1:59989/']),
  • Network accessline 480
    run: (dir) => run(dir, ['--url', 'http://127.0.0.1:59989/']),
  • Network accessline 513
    await sleep(50);       }       const root = `http://127.0.0.1:${port}`;
  • Network accessline 514
    }       const root = `http://127.0.0.1:${port}`;       if (!log.includes('ready')) {
  • Network accessline 515
    const root = `http://127.0.0.1:${port}`;
  • Network accessline 543
    0 < basePathBootError.length         ? { code: 1, out: basePathBootError }         : run(dir, ['--url', `http://127.0.0.1:${String(BASE_PATH_PORT)}/admin`]),
  • Network accessline 545
    : run(dir, ['--url', `http://127.0.0.1:${String(BASE_PATH_PORT)}/admin`]),
  • Network accessline 553
    app({         'package.json': pkg({           dev: `node -e "require('http').createServer((q,r)=>r.end('hi')).listen(59987,'127.0.0.1');console.log('  Local: http://127.0.0.1:59987/')"`,
  • Network accessline 554
    'package.json': pkg({           dev: `node -e "require('http').createServer((q,r)=>r.end('hi')).listen(59987,'127.0.0.1');console.log('  Local: http://127.0.0.1:59987/')"`,         }),
  • Network accessline 555
    dev: `node -e "require('http').createServer((q,r)=>r.end('hi')).listen(59987,'127.0.0.1');console.log('  Local: http://127.0.0.1:59987/')"`,
  • Network accessline 614
    run: (dir) => run(dir, ['--url', 'http://localhost:59986/']),
  • Network accessline 620
    why: 'a downloaded zip, a scaffold before `git init`, a container checkout. Nothing about instrumenting an app requires git, so nothing here may assume it',     build: () => app({ 'package.json': pkg({ dev: 'true' }) }),     run: (dir) => r
  • Network accessline 621
    build: () => app({ 'package.json': pkg({ dev: 'true' }) }),     run: (dir) => run(dir, ['--url', 'http://127.0.0.1:59985/']),     expect: 'nothing is serving',
  • Network accessline 622
    run: (dir) => run(dir, ['--url', 'http://127.0.0.1:59985/']),
  • Network accessline 633
    writeFileSync(join(bin, 'claude'), '#!/bin/sh\nexit 0\n');       chmodSync(join(bin, 'claude'), 0o755);       return run(dir, ['--url', 'http://127.0.0.1:59984/'], { PATH: `${bin}:${process.env.PATH}` });
  • Network accessline 634
    chmodSync(join(bin, 'claude'), 0o755);       return run(dir, ['--url', 'http://127.0.0.1:59984/'], { PATH: `${bin}:${process.env.PATH}` });     },
  • Network accessline 635
    return run(dir, ['--url', 'http://127.0.0.1:59984/'], { PATH: `${bin}:${process.env.PATH}` });
  • Network accessline 653
    build: () => app({ 'package.json': pkg({ dev: 'true' }) }),     run: (dir) =>       run(dir, ['--url', 'http://127.0.0.1:59982/', '--relaunch'], {
  • Network accessline 655
    run(dir, ['--url', 'http://127.0.0.1:59982/', '--relaunch'], {
  • Network accessline 698
    '--no-open',               '--url',               'http://127.0.0.1:59981/',
  • Network accessline 699
    '--url',               'http://127.0.0.1:59981/',             ],
  • Network accessline 700
    'http://127.0.0.1:59981/',
  • Network accessline 720
    why: 'naming a cause is not the same as being recoverable. If setup misbehaves the agent must be able to pick up at the step that failed, not re-read the whole procedure and redo the parts that already worked',     build: () =>       app({ 
  • Network accessline 721
    build: () =>       app({ 'package.json': pkg({ dev: 'echo "  Local: http://127.0.0.1:59979/"; sleep 20' }) }),     run: (dir) => run(dir, ['--url', 'http://127.0.0.1:59979/']),
  • Network accessline 722
    app({ 'package.json': pkg({ dev: 'echo "  Local: http://127.0.0.1:59979/"; sleep 20' }) }),
  • Network accessline 723
    run: (dir) => run(dir, ['--url', 'http://127.0.0.1:59979/']),

conformance/drive.mjs

  • Executable scriptline 1
    Executable file

conformance/drive.test.mjs

  • Executable scriptline 1
    Executable file

conformance/handoff.mjs

  • Executable scriptline 1
    Executable file

conformance/handoff.test.mjs

  • Executable scriptline 1
    Executable file

conformance/package.json

  • Executable scriptline 1
    Executable file

conformance/run-cli.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

conformance/run-desktop.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 69
    async function answers(port) {   try {     return (await fetch(`http://localhost:${String(port)}`)).ok;
  • Network accessline 70
    try {     return (await fetch(`http://localhost:${String(port)}`)).ok;   } catch {
  • Network accessline 71
    return (await fetch(`http://localhost:${String(port)}`)).ok;

conformance/run-self.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 62
    const APP_PORT = Number(process.env['CONFORMANCE_APP_PORT'] ?? 4318); const API_PORT = Number(process.env['CONFORMANCE_API_PORT'] ?? 8787); const APP = `http://localhost:${String(APP_PORT)}`;
  • Network accessline 63
    const API_PORT = Number(process.env['CONFORMANCE_API_PORT'] ?? 8787); const APP = `http://localhost:${String(APP_PORT)}`; const API = `http://localhost:${String(API_PORT)}`;
  • Network accessline 64
    const APP = `http://localhost:${String(APP_PORT)}`;
  • Network accessline 65
    const API = `http://localhost:${String(API_PORT)}`;
  • Network accessline 170
    for (let i = 0; i < 120; i++) {     try {       const res = await fetch(url);
  • Network accessline 171
    try {       const res = await fetch(url);       if (res.ok) return;
  • Network accessline 172
    const res = await fetch(url);
  • Access to secretsline 216
    [Credential-related source omitted]

conformance/scenarios/index.mjs

  • Executable scriptline 1
    Executable file

conformance/score.mjs

  • Executable scriptline 1
    Executable file

conformance/score.test.mjs

  • Executable scriptline 1
    Executable file

conformance/subjects/bench-app.mjs

  • Executable scriptline 1
    Executable file

conformance/subjects/bench-app.test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 43
    describe('planting is a URL, and an unplantable scenario says so', () => {   it('adds the injected bug for a scenario that needs one', () => {     expect(plantUrl('http://app', 'double-submit-against-count-one')).toContain(
  • Network accessline 44
    it('adds the injected bug for a scenario that needs one', () => {     expect(plantUrl('http://app', 'double-submit-against-count-one')).toContain(       'reticle-bug=double-login',
  • Network accessline 45
    expect(plantUrl('http://app', 'double-submit-against-count-one')).toContain(
  • Network accessline 50
    it('leaves the app clean for a scenario whose point is that nothing is wrong', () => {     expect(plantUrl('http://app', 'healthy-app-real-claim')).toBe('http://app');
  • Network accessline 51
    expect(plantUrl('http://app', 'healthy-app-real-claim')).toBe('http://app');
  • Network accessline 57
    expect(plantUrl('http://app', 'fire-and-forget')).toBeUndefined();
  • Network accessline 100
    expect(       plantUrl('http://x', 'double-submit-against-count-one'),
  • Network accessline 101
    plantUrl('http://x', 'double-submit-against-count-one'),
  • Network accessline 106
    const planted = above.filter((s) => plantUrl('http://x', s.id) !== undefined);

conformance/subjects/cli-smoke.mjs

  • Executable scriptline 1
    Executable file

conformance/subjects/coverage.test.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 23
    const IN_PROFILE = requiredScenarios(Profile.EFFECT).map((s) => s.id); const WEB = IN_PROFILE.filter((id) => plantUrl('http://x', id) !== undefined);
  • Network accessline 24
    const WEB = IN_PROFILE.filter((id) => plantUrl('http://x', id) !== undefined);

conformance/subjects/electron-smoke.mjs

  • Executable scriptline 1
    Executable file

core/LICENSE

  • Network accessline 2
    Apache License                            Version 2.0, January 2004                         http://www.apache.org/licenses/
  • Network accessline 4
    http://www.apache.org/licenses/
  • Network accessline 196
    http://www.apache.org/licenses/LICENSE-2.0

core/README.md

  • Network accessline 3
    The **foundation** of [Reticle](https://github.com/reticlehq/reticle) — the shared wire contract that every Reticle package imports: types, [zod](https://zod.dev) schemas, constants, and the messages that cross the browser ↔ bridge ↔ agent 
  • Network accessline 11
    See the [main README](https://github.com/reticlehq/reticle) and [MIGRATION.md](https://github.com/reticlehq/reticle/blob/main/MIGRATION.md).
  • Network accessline 15
    `@reticlehq/core` ships machine-readable [JSON Schema](https://json-schema.org) for the wire contract under `dist/schema/`, generated from the zod schemas so the two can never drift (a parity test enforces it). This is the **conformance tar

core/package.json

  • Executable scriptline 1
    Executable file
  • Network accessline 65
    "repository": {     "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",
  • Network accessline 66
    "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",     "directory": "core"
  • Network accessline 67
    "url": "git+https://github.com/reticlehq/reticle.git",
  • Network accessline 68
    "directory": "core"   },   "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 69
    },   "homepage": "https://github.com/reticlehq/reticle#readme",   "bugs": "https://github.com/reticlehq/reticle/issues",
  • Network accessline 70
    "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 71
    "bugs": "https://github.com/reticlehq/reticle/issues",

core/scripts/gen-desktop-contract.d.mts

  • Executable scriptline 1
    Executable file

core/scripts/gen-desktop-contract.mjs

  • Executable scriptline 1
    Executable file

core/scripts/gen-schema.d.mts

  • Executable scriptline 1
    Executable file

core/scripts/gen-schema.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 81
    }   return {     $schema: 'http://json-schema.org/draft-07/schema#',
  • Network accessline 82
    return {     $schema: 'http://json-schema.org/draft-07/schema#',     title: 'EventPayloads',
  • Network accessline 83
    $schema: 'http://json-schema.org/draft-07/schema#',

core/scripts/gen-source-constants.d.mts

  • Executable scriptline 1
    Executable file

core/scripts/gen-source-constants.mjs

  • Executable scriptline 1
    Executable file

core/src/activation-entry.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/agent-link.test.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/artifacts-entry.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/credit-wording.test.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/drive-script.test.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/drive-script.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/flow-composition.test.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/flow-composition.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/flow-constants.test.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/flow-constants.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/flow-expect-flat.test.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/flow-expect-flat.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/flow-known-bugs.test.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/flow-mutation-target.perturbation.test.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/flow-mutation-target.test.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/flow-mutation-target.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/flow-name-namespaced.test.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/flow-order.test.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/flow-order.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/flow-quarantine.test.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/flow-results.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/flow-schema-back-compat.test.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/flow-select.retry.test.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/flow-select.test.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/flow-select.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/flow-selection.test.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/flow-step-tool.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/flow-types.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/flow-unreached.test.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/flow-unreached.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/harness-credits.test.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/harness-credits.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/harness-map.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/hud-notices.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 15
    version: 1,       notices: [         { id: 'good', title: 'Fine', cta: { label: 'See', url: 'https://reticle.sh/harness' } },
  • Network accessline 16
    notices: [         { id: 'good', title: 'Fine', cta: { label: 'See', url: 'https://reticle.sh/harness' } },         { id: 'foreign-link', title: 'Bad', cta: { label: 'Go', url: 'https://evil.example/x' } },
  • Network accessline 17
    { id: 'good', title: 'Fine', cta: { label: 'See', url: 'https://reticle.sh/harness' } },
  • Network accessline 18
    { id: 'foreign-link', title: 'Bad', cta: { label: 'Go', url: 'https://evil.example/x' } },
  • Network accessline 19
    { id: 'plain-http', title: 'Bad', cta: { label: 'Go', url: 'http://reticle.sh/x' } },
  • Network accessline 34
    const ok = (url: string): boolean =>       1 === parseHudNotices({ version: 1, notices: [entry({ cta: { label: 'Go', url } })] }).length;     expect(ok('https://app.reticle.sh/settings?group=billing')).toBe(true);
  • Network accessline 35
    1 === parseHudNotices({ version: 1, notices: [entry({ cta: { label: 'Go', url } })] }).length;     expect(ok('https://app.reticle.sh/settings?group=billing')).toBe(true);     expect(ok('https://docs.reticle.sh/harness')).toBe(true);
  • Network accessline 36
    expect(ok('https://app.reticle.sh/settings?group=billing')).toBe(true);
  • Network accessline 37
    expect(ok('https://docs.reticle.sh/harness')).toBe(true);
  • Network accessline 38
    expect(ok('https://github.com/reticlehq/reticle')).toBe(true);
  • Network accessline 39
    expect(ok('https://github.com/someone-else/repo')).toBe(false);

core/src/artifacts/hud-notices.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 14
    export const HUD_NOTICES_URL = 'https://reticle.sh/hud/notices.v1.json';

core/src/artifacts/impact-savings.test.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/impact-savings.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/impact.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/journal.test.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/journal.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/learned-survives-a-round-trip.test.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/prompt-context.test.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/prompt-context.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/screenshot-upload.ts

  • Executable scriptline 1
    Executable file

core/src/artifacts/step-effect.ts

  • Executable scriptline 1
    Executable file

core/src/capabilities.test.ts

  • Executable scriptline 1
    Executable file

core/src/contract-changes.test.ts

  • Executable scriptline 1
    Executable file

core/src/directory-reach.test.ts

  • Executable scriptline 1
    Executable file

core/src/graph/app-graph.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 39
    const events = [   route('/flows', 1),   request('POST', 'http://localhost:8896/v1/projects', 201, 12),
  • Network accessline 40
    route('/flows', 1),   request('POST', 'http://localhost:8896/v1/projects', 201, 12),   route('/chat/chat_659b61951bdf4e7d86670a75750421a4', 22),
  • Network accessline 41
    request('POST', 'http://localhost:8896/v1/projects', 201, 12),
  • Network accessline 43
    request(     'GET',     'http://localhost:8896/v1/chat/conversations/chat_659b61951bdf4e7d86670a75750421a4',
  • Network accessline 44
    'GET',     'http://localhost:8896/v1/chat/conversations/chat_659b61951bdf4e7d86670a75750421a4',     200,
  • Network accessline 45
    'http://localhost:8896/v1/chat/conversations/chat_659b61951bdf4e7d86670a75750421a4',
  • Network accessline 65
    it('leaves background reads off an action: a read the app also sent with nothing pressed', () => {     const poll = (t: number) => request('GET', 'http://localhost:8896/v1/inbox/unread', 200, t);
  • Network accessline 66
    const poll = (t: number) => request('GET', 'http://localhost:8896/v1/inbox/unread', 200, t);
  • Network accessline 68
    route('/flows', 1),       poll(5),       request('POST', 'http://localhost:8896/v1/projects', 201, 12),
  • Network accessline 69
    poll(5),       request('POST', 'http://localhost:8896/v1/projects', 201, 12),       poll(13),
  • Network accessline 70
    request('POST', 'http://localhost:8896/v1/projects', 201, 12),
  • Network accessline 88
    {         method: 'POST',         url: 'http://localhost:4000/graphql',
  • Network accessline 89
    method: 'POST',         url: 'http://localhost:4000/graphql',         status: 200,
  • Network accessline 90
    url: 'http://localhost:4000/graphql',         status: 200,         initiator: 'fetch',
  • Network accessline 127
    );     const made = [       write('http://api.test/v1/c', '{"object":"customer","id":"cus_1"}', 11),
  • Network accessline 128
    const made = [       write('http://api.test/v1/c', '{"object":"customer","id":"cus_1"}', 11),       write('http://api.test/v1/x', '{"data":{"type":"articles","id":"1"}}', 12),
  • Network accessline 129
    write('http://api.test/v1/c', '{"object":"customer","id":"cus_1"}', 11),
  • Network accessline 130
    write('http://api.test/v1/x', '{"data":{"type":"articles","id":"1"}}', 12),
  • Network accessline 131
    write('http://api.test/v1/orders', '{"id":"o1"}', 13),

core/src/graph/app-graph.ts

  • Executable scriptline 1
    Executable file

core/src/hooks/hook-events.ts

  • Executable scriptline 1
    Executable file

core/src/hooks/hook-payload-carries-no-secret.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 37
    [Credential-related source omitted]

core/src/hooks/hooks-entry.ts

  • Executable scriptline 1
    Executable file

core/src/hud-entry.ts

  • Executable scriptline 1
    Executable file

core/src/identity/brand.ts

  • Executable scriptline 1
    Executable file

core/src/identity/checkout.test.ts

  • Executable scriptline 1
    Executable file

core/src/identity/checkout.ts

  • Executable scriptline 1
    Executable file

core/src/identity/contract-fingerprint.test.ts

  • Executable scriptline 1
    Executable file

core/src/identity/contract-fingerprint.ts

  • Executable scriptline 1
    Executable file

core/src/identity/document-identity.test.ts

  • Executable scriptline 1
    Executable file

core/src/identity/document-identity.ts

  • Executable scriptline 1
    Executable file

core/src/identity/edit-epoch.test.ts

  • Executable scriptline 1
    Executable file

core/src/identity/edit-epoch.ts

  • Executable scriptline 1
    Executable file

core/src/identity/github-action.ts

  • Executable scriptline 1
    Executable file

core/src/identity/project-id.test.ts

  • Executable scriptline 1
    Executable file

core/src/identity/project-id.ts

  • Executable scriptline 1
    Executable file

core/src/identity/retired-wire-names.test.ts

  • Executable scriptline 1
    Executable file

core/src/identity/source-constants.test.ts

  • Executable scriptline 1
    Executable file

core/src/identity/source-constants.ts

  • Executable scriptline 1
    Executable file

core/src/identity/state-dir.test.ts

  • Executable scriptline 1
    Executable file

core/src/identity/state-dir.ts

  • Executable scriptline 1
    Executable file

core/src/identity/testid-attribute.ts

  • Executable scriptline 1
    Executable file

core/src/index.ts

  • Executable scriptline 1
    Executable file

core/src/lossy-conformance.test.ts

  • Executable scriptline 1
    Executable file

core/src/onboarding-funnel.test.ts

  • Executable scriptline 1
    Executable file

core/src/onboarding.ts

  • Executable scriptline 1
    Executable file

core/src/orphan-modules.test.ts

  • Executable scriptline 1
    Executable file

core/src/package-scripts-resolve.test.ts

  • Executable scriptline 1
    Executable file

core/src/realm/determinism-by-surface.test.ts

  • Executable scriptline 1
    Executable file

core/src/realm/register-realm.test.ts

  • Executable scriptline 1
    Executable file

core/src/realm/registry.test.ts

  • Executable scriptline 1
    Executable file

core/src/realm/registry.ts

  • Executable scriptline 1
    Executable file

core/src/realm/subject-locator.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 10
    const subject = subjectOf({       id: 's1',       url: 'http://localhost:5173/saved-items?__reticle_session=l1&tab=2&__reticle_session=l1&__reticle_project=shop',
  • Network accessline 11
    id: 's1',       url: 'http://localhost:5173/saved-items?__reticle_session=l1&tab=2&__reticle_session=l1&__reticle_project=shop',     });
  • Network accessline 12
    url: 'http://localhost:5173/saved-items?__reticle_session=l1&tab=2&__reticle_session=l1&__reticle_project=shop',
  • Network accessline 13
    });     expect(subject.locator).toBe('http://localhost:5173/saved-items?tab=2');   });
  • Network accessline 14
    expect(subject.locator).toBe('http://localhost:5173/saved-items?tab=2');

core/src/realm/surface-is-declared.test.ts

  • Executable scriptline 1
    Executable file

core/src/redaction-config.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 24
    [Credential-related source omitted]
  • Access to secretsline 33
    [Credential-related source omitted]
  • Access to secretsline 35
    [Credential-related source omitted]

core/src/registry/daemon-registry.test.ts

  • Executable scriptline 1
    Executable file

core/src/registry/daemon-registry.ts

  • Executable scriptline 1
    Executable file

core/src/registry/dev-server-registry.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 12
    pid,   root: '/repo/apps/web',   url: `http://localhost:${String(port)}/`,
  • Network accessline 13
    root: '/repo/apps/web',   url: `http://localhost:${String(port)}/`,   sdkVersion: '2.13.0',
  • Network accessline 14
    url: `http://localhost:${String(port)}/`,

core/src/registry/dev-server-registry.ts

  • Executable scriptline 1
    Executable file

core/src/registry/project-registry.test.ts

  • Executable scriptline 1
    Executable file

core/src/registry/project-registry.ts

  • Executable scriptline 1
    Executable file

core/src/telemetry-bug.ts

  • Executable scriptline 1
    Executable file

core/src/telemetry-entry.ts

  • Executable scriptline 1
    Executable file

core/src/telemetry-feedback.ts

  • Executable scriptline 1
    Executable file

core/src/telemetry-license.ts

  • Executable scriptline 1
    Executable file

core/src/telemetry-refusal.ts

  • Executable scriptline 1
    Executable file

core/src/telemetry-session.ts

  • Executable scriptline 1
    Executable file

core/src/telemetry-signals.ts

  • Executable scriptline 1
    Executable file

core/src/telemetry.ts

  • Executable scriptline 1
    Executable file

core/src/tour-entry.ts

  • Executable scriptline 1
    Executable file

core/src/tour.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/check-sentence.test.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/check-sentence.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/compare-source.test.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/compare-source.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/consequence.test.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/consequence.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/disparity.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/engine-blind-spot.test.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/finding-fingerprint.test.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/finding-fingerprint.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/findings.test.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/findings.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/independence.test.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/instrumentation-coverage-score.test.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/instrumentation-coverage.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 106
    it('starts with the skill link and ends with the verify step and the report line', () => {     const prompt = agentPromptFor({ gaps, appName: 'shop', url: 'http://localhost:3000/' });
  • Network accessline 107
    const prompt = agentPromptFor({ gaps, appName: 'shop', url: 'http://localhost:3000/' });
  • Network accessline 111
    expect(lines.at(-2)).toBe(       "Then run: npx @reticlehq/server verify http://localhost:3000/ --expect '<JSON predicate for " +
  • Network accessline 112
    "Then run: npx @reticlehq/server verify http://localhost:3000/ --expect '<JSON predicate for " +
  • Network accessline 118
    // The prompt told agents to read https://reticle.sh/SKILL.md, which answered 404. The docs host
  • Network accessline 120
    it('links the skill on the docs host', () => {     expect(AGENT_PROMPT_LEAD).toContain('https://docs.reticle.sh/skill.md');
  • Network accessline 121
    expect(AGENT_PROMPT_LEAD).toContain('https://docs.reticle.sh/skill.md');
  • Network accessline 124
    it('lists only the gaps it was given, each with its fix and the control it names', () => {     const prompt = agentPromptFor({ gaps, appName: 'shop', url: 'http://localhost:3000/' });
  • Network accessline 125
    const prompt = agentPromptFor({ gaps, appName: 'shop', url: 'http://localhost:3000/' });
  • Network accessline 139
    const first = gaps[0];     if (first === undefined) throw new Error('fixture');     const prompt = agentPromptFor({ gaps: [first, first], appName: 'shop', url: 'http://x/' });
  • Network accessline 140
    if (first === undefined) throw new Error('fixture');     const prompt = agentPromptFor({ gaps: [first, first], appName: 'shop', url: 'http://x/' });     expect(prompt.split(first.missing).length - 1).toBe(1);
  • Network accessline 141
    const prompt = agentPromptFor({ gaps: [first, first], appName: 'shop', url: 'http://x/' });

core/src/verdict/instrumentation-coverage.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 176
    export const AGENT_PROMPT_LEAD =   "Read https://docs.reticle.sh/skill.md, then improve Reticle's coverage in this repo:";
  • Network accessline 177
    "Read https://docs.reticle.sh/skill.md, then improve Reticle's coverage in this repo:";

core/src/verdict/instrumentation-gap.test.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/instrumentation-gap.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/intent.test.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/intent.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/one-vocabulary-for-checks.test.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/predicate-aliases-used.test.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/predicate-kind-shorthand.test.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/predicate-lenient.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 50
    const cases: [string, RegExp][] = [       ['/dashboard', /kind: "route", pathname: "\/dashboard"/],       ['https://x.test/done', /kind: "route"/],
  • Network accessline 51
    ['/dashboard', /kind: "route", pathname: "\/dashboard"/],       ['https://x.test/done', /kind: "route"/],       ['#total', /kind: "element", query: \{ scope: "#total", self: true \}/],
  • Network accessline 52
    ['https://x.test/done', /kind: "route"/],

core/src/verdict/predicate-tree.test.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/predicate-tree.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/predicate.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/property-assertion.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/revision.test.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/revision.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/run-context.test.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/run-context.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/run-report.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 20
    export const CLOUD_DASHBOARD_URL = 'https://app.reticle.sh';

core/src/verdict/security.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 220
    it('names a link or form that leaves for a payment provider as paying', () => {     expect(outwardActionOf('Pay now https://checkout.stripe.com/c/pay/cs_1')).toBe(
  • Network accessline 221
    expect(outwardActionOf('Pay now https://checkout.stripe.com/c/pay/cs_1')).toBe(
  • Network accessline 222
    OutwardAction.PAY,     );     expect(outwardActionOf('https://test.checkout.dodopayments.com/buy/p_1')).toBe(
  • Network accessline 223
    );     expect(outwardActionOf('https://test.checkout.dodopayments.com/buy/p_1')).toBe(       OutwardAction.PAY,
  • Network accessline 224
    expect(outwardActionOf('https://test.checkout.dodopayments.com/buy/p_1')).toBe(
  • Network accessline 225
    OutwardAction.PAY,     );     expect(outwardActionOf('https://www.paypal.com/checkoutnow')).toBe(OutwardAction.PAY);
  • Network accessline 226
    );     expect(outwardActionOf('https://www.paypal.com/checkoutnow')).toBe(OutwardAction.PAY);     expect(outwardActionOf('Docs https://notstripe.com/pricing')).toBeUndefined();
  • Network accessline 227
    expect(outwardActionOf('https://www.paypal.com/checkoutnow')).toBe(OutwardAction.PAY);
  • Network accessline 228
    expect(outwardActionOf('Docs https://notstripe.com/pricing')).toBeUndefined();
  • Network accessline 232
    it('knows a payment provider by its origin', () => {     expect(isPaymentProviderUrl('https://buy.stripe.com/x')).toBe(true);
  • Network accessline 233
    expect(isPaymentProviderUrl('https://buy.stripe.com/x')).toBe(true);
  • Network accessline 234
    expect(isPaymentProviderUrl('https://sandbox-checkout.paddle.com/x')).toBe(true);
  • Network accessline 235
    expect(isPaymentProviderUrl('https://app.lemonsqueezy.com/x')).toBe(true);
  • Network accessline 236
    expect(isPaymentProviderUrl('https://api.razorpay.com/x')).toBe(true);
  • Network accessline 237
    expect(isPaymentProviderUrl('https://payments.braintreegateway.com/x')).toBe(true);
  • Network accessline 238
    expect(isPaymentProviderUrl('https://stripe.com.example.net/x')).toBe(false);
  • Network accessline 282
    it('refuses a payment provider URL', () => {     expect(isDangerousNavigation('https://checkout.stripe.com/c/pay/xyz')).toBe(true);
  • Network accessline 283
    expect(isDangerousNavigation('https://checkout.stripe.com/c/pay/xyz')).toBe(true);

core/src/verdict/security.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 109
    * Electron renderer loads over `file:` (or a registered `app:` protocol); a Tauri webview loads over  * `tauri:` on macOS/Linux. None of these can be reached by a remote attacker — there is no network  * origin to serve them from — so a pag
  • Network accessline 110
    * `tauri:` on macOS/Linux. None of these can be reached by a remote attacker — there is no network  * origin to serve them from — so a page on one is as local as `http://localhost`.  */
  • Network accessline 111
    * origin to serve them from — so a page on one is as local as `http://localhost`.

core/src/verdict/verdict-attribution.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/verification-run.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 155
    durationMs: 1234,       profile: 'prod-preview',       project: { name: 'app', framework: 'next', commit: 'abc', env: 'ci', previewUrl: 'http://x' },
  • Network accessline 156
    profile: 'prod-preview',       project: { name: 'app', framework: 'next', commit: 'abc', env: 'ci', previewUrl: 'http://x' },       agent: { id: 'pipeline', kind: 'oem-pipeline', model: 'm' },
  • Network accessline 157
    project: { name: 'app', framework: 'next', commit: 'abc', env: 'ci', previewUrl: 'http://x' },

core/src/verdict/verification-run.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/verified-attribution.test.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/verified-constants.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/verify-progress.test.ts

  • Executable scriptline 1
    Executable file

core/src/verdict/verify-progress.ts

  • Executable scriptline 1
    Executable file

core/src/wire-schema.test.ts

  • Executable scriptline 1
    Executable file

core/src/wire/channel.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 69
    protocolVersion: RETICLE_PROTOCOL_VERSION,     sessionId: 'demo',     url: 'http://localhost/',
  • Network accessline 70
    sessionId: 'demo',     url: 'http://localhost/',     title: 'Demo',
  • Network accessline 71
    url: 'http://localhost/',

core/src/wire/channel.ts

  • Executable scriptline 1
    Executable file

core/src/wire/click-input.test.ts

  • Executable scriptline 1
    Executable file

core/src/wire/click-input.ts

  • Executable scriptline 1
    Executable file

core/src/wire/constants/animation-command.ts

  • Executable scriptline 1
    Executable file

core/src/wire/constants/api-key.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 13
    [Credential-related source omitted]
  • Access to secretsline 22
    [Credential-related source omitted]
  • Access to secretsline 26
    [Credential-related source omitted]
  • Access to secretsline 27
    [Credential-related source omitted]
  • Access to secretsline 35
    [Credential-related source omitted]

core/src/wire/constants/cloud-url.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 11
    describe('resolving the platform URL', () => {   it('reads RETICLE_CLOUD_URL', () => {     expect(cloudUrlFrom({ RETICLE_CLOUD_URL: 'https://a.test' })).toBe('https://a.test');
  • Network accessline 12
    it('reads RETICLE_CLOUD_URL', () => {     expect(cloudUrlFrom({ RETICLE_CLOUD_URL: 'https://a.test' })).toBe('https://a.test');   });
  • Network accessline 13
    expect(cloudUrlFrom({ RETICLE_CLOUD_URL: 'https://a.test' })).toBe('https://a.test');
  • Network accessline 16
    it('accepts RETICLE_URL on its own', () => {     expect(cloudUrlFrom({ RETICLE_URL: 'https://b.test' })).toBe('https://b.test');
  • Network accessline 17
    expect(cloudUrlFrom({ RETICLE_URL: 'https://b.test' })).toBe('https://b.test');
  • Network accessline 20
    it('prefers RETICLE_CLOUD_URL when both are set', () => {     expect(       cloudUrlFrom({ RETICLE_CLOUD_URL: 'https://a.test', RETICLE_URL: 'https://b.test' }),
  • Network accessline 21
    expect(       cloudUrlFrom({ RETICLE_CLOUD_URL: 'https://a.test', RETICLE_URL: 'https://b.test' }),     ).toBe('https://a.test');
  • Network accessline 22
    cloudUrlFrom({ RETICLE_CLOUD_URL: 'https://a.test', RETICLE_URL: 'https://b.test' }),
  • Network accessline 23
    ).toBe('https://a.test');
  • Network accessline 26
    it('treats an empty value as absent', () => {     expect(cloudUrlFrom({ RETICLE_CLOUD_URL: '', RETICLE_URL: 'https://b.test' })).toBe(
  • Network accessline 27
    expect(cloudUrlFrom({ RETICLE_CLOUD_URL: '', RETICLE_URL: 'https://b.test' })).toBe(
  • Network accessline 28
    'https://b.test',
  • Access to secretsline 40
    [Credential-related source omitted]
  • Access to secretsline 46
    [Credential-related source omitted]
  • Network accessline 56
    [Credential-related source omitted]
  • Network accessline 57
    [Credential-related source omitted]
  • Network accessline 58
    [Credential-related source omitted]
  • Access to secretsline 58
    [Credential-related source omitted]
  • Network accessline 59
    ).toBe('https://self.test');
  • Network accessline 62
    it('is absent without a key, whatever the URL says', () => {     expect(platformCredentialFrom({ RETICLE_CLOUD_URL: 'https://a.test' })).toBeUndefined();
  • Network accessline 63
    expect(platformCredentialFrom({ RETICLE_CLOUD_URL: 'https://a.test' })).toBeUndefined();
  • Network accessline 66
    it('defaults the URL alone to the hosted service', () => {     expect(platformUrlFrom({})).toBe(DEFAULT_PLATFORM_URL);     expect(DEFAULT_PLATFORM_URL).toBe('https://app.reticle.sh');
  • Network accessline 67
    expect(platformUrlFrom({})).toBe(DEFAULT_PLATFORM_URL);     expect(DEFAULT_PLATFORM_URL).toBe('https://app.reticle.sh');   });
  • Network accessline 68
    expect(DEFAULT_PLATFORM_URL).toBe('https://app.reticle.sh');

core/src/wire/constants/constants.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 151
    [Credential-related source omitted]
  • Access to secretsline 165
    [Credential-related source omitted]
  • Access to secretsline 169
    [Credential-related source omitted]
  • Network accessline 184
    export const DEFAULT_PLATFORM_URL = 'https://app.reticle.sh';

core/src/wire/constants/discovery.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 11
    describe('the discovery invitation', () => {   it('points at the booking link reticle.sh publishes', () => {     expect(DISCOVERY_CALL_URL).toBe('https://calendar.app.google/h9NRDbBBQetyTzWM6');
  • Network accessline 12
    it('points at the booking link reticle.sh publishes', () => {     expect(DISCOVERY_CALL_URL).toBe('https://calendar.app.google/h9NRDbBBQetyTzWM6');   });
  • Network accessline 13
    expect(DISCOVERY_CALL_URL).toBe('https://calendar.app.google/h9NRDbBBQetyTzWM6');

core/src/wire/constants/discovery.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 14
    export const DISCOVERY_CALL_URL = 'https://calendar.app.google/h9NRDbBBQetyTzWM6';

core/src/wire/constants/event-types.ts

  • Executable scriptline 1
    Executable file

core/src/wire/constants/hud-controls.ts

  • Executable scriptline 1
    Executable file

core/src/wire/constants/hud-use.ts

  • Executable scriptline 1
    Executable file

core/src/wire/constants/match-args.ts

  • Executable scriptline 1
    Executable file

core/src/wire/constants/mcp-wire.ts

  • Executable scriptline 1
    Executable file

core/src/wire/constants/response-body-reason.ts

  • Executable scriptline 1
    Executable file

core/src/wire/constants/reticle-chrome.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 35
    [Credential-related source omitted]
  • Access to secretsline 38
    [Credential-related source omitted]

core/src/wire/constants/reticle-env.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 87
    [Credential-related source omitted]
  • Access to secretsline 110
    [Credential-related source omitted]
  • Access to secretsline 114
    [Credential-related source omitted]
  • Access to secretsline 118
    [Credential-related source omitted]
  • Access to secretsline 127
    [Credential-related source omitted]

core/src/wire/constants/session-constants.ts

  • Executable scriptline 1
    Executable file

core/src/wire/desktop-contract.test.ts

  • Executable scriptline 1
    Executable file

core/src/wire/desktop-contract.ts

  • Executable scriptline 1
    Executable file

core/src/wire/event-classification.ts

  • Executable scriptline 1
    Executable file

core/src/wire/event-payloads.health.test.ts

  • Executable scriptline 1
    Executable file

core/src/wire/event-payloads.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 110
    const r = parseEventPayload(EventType.ROUTE_CHANGE, {       from: '/a',       to: 'http://x/b',
  • Network accessline 111
    from: '/a',       to: 'http://x/b',       pathname: '/b',
  • Network accessline 112
    to: 'http://x/b',
  • Network accessline 123
    parseEventPayload(EventType.ROUTE_CHANGE, {         from: '/a',         to: 'http://x/b',
  • Network accessline 124
    from: '/a',         to: 'http://x/b',         pathname: '/b',
  • Network accessline 125
    to: 'http://x/b',
  • Network accessline 132
    parseEventPayload(EventType.ROUTE_CHANGE, {         from: '/a',         to: 'http://x/b',
  • Network accessline 133
    from: '/a',         to: 'http://x/b',         pathname: '/b',
  • Network accessline 134
    to: 'http://x/b',

core/src/wire/event-payloads.ts

  • Executable scriptline 1
    Executable file

core/src/wire/event-priority.test.ts

  • Executable scriptline 1
    Executable file

core/src/wire/event-priority.ts

  • Executable scriptline 1
    Executable file

core/src/wire/global-press.test.ts

  • Executable scriptline 1
    Executable file

core/src/wire/global-press.ts

  • Executable scriptline 1
    Executable file

core/src/wire/hello-mode.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 8
    protocolVersion: RETICLE_PROTOCOL_VERSION,   sessionId: 'tab-1',   url: 'https://app.example.com/',
  • Network accessline 9
    sessionId: 'tab-1',   url: 'https://app.example.com/',   title: 'App',
  • Network accessline 10
    url: 'https://app.example.com/',

core/src/wire/hold.ts

  • Executable scriptline 1
    Executable file

core/src/wire/messages.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 66
    protocolVersion: RETICLE_PROTOCOL_VERSION,     sessionId: 'demo',     url: 'http://localhost:3000/',
  • Network accessline 67
    sessionId: 'demo',     url: 'http://localhost:3000/',     title: 'Demo',
  • Network accessline 68
    url: 'http://localhost:3000/',

core/src/wire/messages.ts

  • Executable scriptline 1
    Executable file

core/src/wire/narrow.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 23
    describe('originOf and pathOf', () => {   it('read the origin and pathname the URL parser reports', () => {     expect(originOf('http://localhost:5173/cart?x=1#top')).toBe('http://localhost:5173');
  • Network accessline 24
    it('read the origin and pathname the URL parser reports', () => {     expect(originOf('http://localhost:5173/cart?x=1#top')).toBe('http://localhost:5173');     expect(originOf('https://example.com:443/a')).toBe('https://example.com');
  • Network accessline 25
    expect(originOf('http://localhost:5173/cart?x=1#top')).toBe('http://localhost:5173');
  • Network accessline 26
    expect(originOf('https://example.com:443/a')).toBe('https://example.com');
  • Network accessline 27
    expect(originOf('http://[::1]:4400/x')).toBe('http://[::1]:4400');
  • Network accessline 28
    expect(originOf('file:///tmp/index.html')).toBe('null');     expect(pathOf('http://localhost:5173/cart?x=1#top')).toBe('/cart');     expect(pathOf('http://[::1]:4400')).toBe('/');
  • Network accessline 29
    expect(pathOf('http://localhost:5173/cart?x=1#top')).toBe('/cart');
  • Network accessline 30
    expect(pathOf('http://[::1]:4400')).toBe('/');
  • Network accessline 34
    it('answer nothing for an absent or unparseable URL', () => {     for (const url of [undefined, '', 'example.com/cart', '/cart', 'http://', 'http://a b']) {
  • Network accessline 35
    for (const url of [undefined, '', 'example.com/cart', '/cart', 'http://', 'http://a b']) {

core/src/wire/narrow.ts

  • Executable scriptline 1
    Executable file

core/src/wire/net.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 10
    describe('isDevToolingUrl — traffic the framework makes about ITSELF', () => {   it.each(Object.values(DevToolingChannel))('recognises %s', (pattern) => {     expect(true).toBe(isDevToolingUrl(`http://localhost:3000${pattern}x`));
  • Network accessline 11
    it.each(Object.values(DevToolingChannel))('recognises %s', (pattern) => {     expect(true).toBe(isDevToolingUrl(`http://localhost:3000${pattern}x`));   });
  • Network accessline 12
    expect(true).toBe(isDevToolingUrl(`http://localhost:3000${pattern}x`));
  • Network accessline 18
    'http://localhost:3000/__nextjs_original-stack-frames',
  • Network accessline 19
    'http://localhost:3000/__nextjs_original-stack-frame?isServer=false',
  • Network accessline 42
    for (const url of [       '/api/users',       'http://localhost:3000/api/checkout',
  • Network accessline 43
    '/api/users',       'http://localhost:3000/api/checkout',       '/_next/static/chunks/main-app.js',
  • Network accessline 44
    'http://localhost:3000/api/checkout',
  • Network accessline 65
    describe('isThirdPartyUrl — whose site is this call to?', () => {   const APP = 'http://localhost:3000/dashboard';
  • Network accessline 66
    const APP = 'http://localhost:3000/dashboard';
  • Network accessline 68
    it('calls an analytics beacon third-party', () => {     expect(true).toBe(isThirdPartyUrl('https://www.google-analytics.com/g/collect', APP));
  • Network accessline 69
    expect(true).toBe(isThirdPartyUrl('https://www.google-analytics.com/g/collect', APP));
  • Network accessline 70
    expect(true).toBe(isThirdPartyUrl('https://cdn.segment.com/analytics.js/v1/k/a.min.js', APP));
  • Network accessline 76
    expect(false).toBe(isThirdPartyUrl('/api/todos', APP));     expect(false).toBe(isThirdPartyUrl('http://localhost:3000/api/todos', APP));
  • Network accessline 77
    expect(false).toBe(isThirdPartyUrl('http://localhost:3000/api/todos', APP));
  • Network accessline 78
    expect(false).toBe(isThirdPartyUrl('http://localhost:8787/api/todos', APP));
  • Network accessline 81
    it('calls a sibling subdomain first-party — api.example.com IS app.example.com’s backend', () => {     expect(false).toBe(       isThirdPartyUrl('https://api.example.com/todos', 'https://app.example.com/dashboard'),
  • Network accessline 82
    expect(false).toBe(       isThirdPartyUrl('https://api.example.com/todos', 'https://app.example.com/dashboard'),     );
  • Network accessline 83
    isThirdPartyUrl('https://api.example.com/todos', 'https://app.example.com/dashboard'),
  • Network accessline 89
    expect(false).toBe(isThirdPartyUrl('ipc://todos:archive', APP));     expect(false).toBe(isThirdPartyUrl('blob:http://localhost:3000/abc', APP));
  • Network accessline 90
    expect(false).toBe(isThirdPartyUrl('blob:http://localhost:3000/abc', APP));
  • Network accessline 93
    it('declines to judge at all when the app’s own page is unknown', () => {     expect(false).toBe(isThirdPartyUrl('https://www.google-analytics.com/g/collect', undefined));
  • Network accessline 94
    expect(false).toBe(isThirdPartyUrl('https://www.google-analytics.com/g/collect', undefined));
  • Network accessline 119
    it('matches a declared endpoint on the app host', () => {     expect(isOwnBackgroundTraffic('http://localhost:3000/api/analytics/events', DECLARED)).toBe(
  • Network accessline 120
    expect(isOwnBackgroundTraffic('http://localhost:3000/api/analytics/events', DECLARED)).toBe(
  • Network accessline 125
    it('leaves every undeclared request alone', () => {     expect(isOwnBackgroundTraffic('http://localhost:3000/api/orders', DECLARED)).toBe(false);
  • Network accessline 126
    expect(isOwnBackgroundTraffic('http://localhost:3000/api/orders', DECLARED)).toBe(false);
  • Network accessline 129
    it('excludes nothing when nothing was declared', () => {     expect(isOwnBackgroundTraffic('http://localhost:3000/api/analytics/events', [])).toBe(false);
  • Network accessline 130
    expect(isOwnBackgroundTraffic('http://localhost:3000/api/analytics/events', [])).toBe(false);

core/src/wire/net.ts

  • Executable scriptline 1
    Executable file

core/src/wire/next-step.ts

  • Executable scriptline 1
    Executable file

core/src/wire/oversized-collections.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 33
    protocolVersion: 1,       sessionId: 's1',       url: 'http://localhost/',
  • Network accessline 34
    sessionId: 's1',       url: 'http://localhost/',       title: 't',
  • Network accessline 35
    url: 'http://localhost/',

core/src/wire/platform-link.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 20
    target: 'headed',         mode: 'platform',         url: 'http://localhost:3000/cart',
  • Network accessline 21
    mode: 'platform',         url: 'http://localhost:3000/cart',         hud: 'hidden',
  • Network accessline 22
    url: 'http://localhost:3000/cart',
  • Network accessline 32
    target: DriveTarget.HEADED,         mode: DriveMode.PLATFORM,         url: 'http://localhost:3000/cart',
  • Network accessline 33
    mode: DriveMode.PLATFORM,         url: 'http://localhost:3000/cart',         hud: HudVisibility.HIDDEN,
  • Network accessline 34
    url: 'http://localhost:3000/cart',
  • Network accessline 108
    level: 'update',           text: 'Run reticle update to drive with every option.',           url: 'https://reticle.sh/update',
  • Network accessline 109
    text: 'Run reticle update to drive with every option.',           url: 'https://reticle.sh/update',         },
  • Network accessline 110
    url: 'https://reticle.sh/update',
  • Network accessline 118
    level: 'update',         text: 'Run reticle update to drive with every option.',         url: 'https://reticle.sh/update',
  • Network accessline 119
    text: 'Run reticle update to drive with every option.',         url: 'https://reticle.sh/update',       },
  • Network accessline 120
    url: 'https://reticle.sh/update',

core/src/wire/platform-link.ts

  • Executable scriptline 1
    Executable file

core/src/wire/platform.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 59
    protocolVersion: RETICLE_PROTOCOL_VERSION,       sessionId: 'demo',       url: 'http://localhost/',
  • Network accessline 60
    sessionId: 'demo',       url: 'http://localhost/',       title: 'Demo',
  • Network accessline 61
    url: 'http://localhost/',
  • Network accessline 75
    protocolVersion: RETICLE_PROTOCOL_VERSION,       sessionId: 'demo',       url: 'http://localhost/',
  • Network accessline 76
    sessionId: 'demo',       url: 'http://localhost/',       title: 'Demo',
  • Network accessline 77
    url: 'http://localhost/',
  • Network accessline 88
    protocolVersion: RETICLE_PROTOCOL_VERSION,       sessionId: 'demo',       url: 'http://localhost/',
  • Network accessline 89
    sessionId: 'demo',       url: 'http://localhost/',       title: 'Demo',
  • Network accessline 90
    url: 'http://localhost/',

core/src/wire/platform.ts

  • Executable scriptline 1
    Executable file

core/src/wire/production/activation-ticket.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 13
    const ORIGIN = 'https://app.example.com';
  • Network accessline 78
    const k = await keys();     const ticket = await signActivationTicket(k.privateKey, payload());     expect(await check(ticket, k.publicKey, 'https://evil.example.com')).toEqual({
  • Network accessline 79
    const ticket = await signActivationTicket(k.privateKey, payload());     expect(await check(ticket, k.publicKey, 'https://evil.example.com')).toEqual({       ok: false,
  • Network accessline 80
    expect(await check(ticket, k.publicKey, 'https://evil.example.com')).toEqual({

core/src/wire/production/activation-ticket.ts

  • Executable scriptline 1
    Executable file
  • Possible obfuscationline 72
    const binary = atob(text.replace(/-/g, '+').replace(/_/g, '/'));

core/src/wire/production/hello-mode.ts

  • Executable scriptline 1
    Executable file

core/src/wire/production/production-policy.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 11
    const request = {       ...base,       origin: 'https://app.example.com',
  • Network accessline 12
    ...base,       origin: 'https://app.example.com',       bridge: 'ws://127.0.0.1:4400/reticle',
  • Network accessline 13
    origin: 'https://app.example.com',

core/src/wire/production/production-policy.ts

  • Executable scriptline 1
    Executable file

core/src/wire/redaction.credential-field.test.ts

  • Executable scriptline 1
    Executable file

core/src/wire/redaction.embedded-url.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 23
    it('leaves blob URLs unchanged because they do not contain the blob payload', () => {     const raw = 'blob:https://example.test/550e8400-e29b-41d4-a716-446655440000';
  • Network accessline 24
    const raw = 'blob:https://example.test/550e8400-e29b-41d4-a716-446655440000';

core/src/wire/redaction.fuzz.test.ts

  • Executable scriptline 1
    Executable file

core/src/wire/redaction.passphrase.test.ts

  • Executable scriptline 1
    Executable file

core/src/wire/redaction.presigned.test.ts

  • Executable scriptline 1
    Executable file

core/src/wire/redaction.shapes.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 62
    'sk-ant is too short to be a key',     'AKIASHORT',     'https://api.example.com/v1/orders?page=2&sort=asc',
  • Network accessline 63
    'AKIASHORT',     'https://api.example.com/v1/orders?page=2&sort=asc',   ];
  • Network accessline 64
    'https://api.example.com/v1/orders?page=2&sort=asc',

core/src/wire/redaction.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 25
    [Credential-related source omitted]
  • Access to secretsline 263
    [Credential-related source omitted]
  • Access to secretsline 333
    [Credential-related source omitted]

core/src/wire/snapshot-tree.test.ts

  • Executable scriptline 1
    Executable file

core/src/wire/snapshot-tree.ts

  • Executable scriptline 1
    Executable file

core/src/wire/spec-matches-contract.test.ts

  • Executable scriptline 1
    Executable file

core/src/wire/state-select.test.ts

  • Executable scriptline 1
    Executable file

core/src/wire/state-select.ts

  • Executable scriptline 1
    Executable file

core/src/wire/tool-names.ts

  • Executable scriptline 1
    Executable file

core/src/wire/toon.linebreak.test.ts

  • Executable scriptline 1
    Executable file

core/src/wire/toon.test.ts

  • Executable scriptline 1
    Executable file

core/src/wire/toon.ts

  • Executable scriptline 1
    Executable file

core/src/wire/types.attrs.test.ts

  • Executable scriptline 1
    Executable file

core/src/wire/types.recorded.test.ts

  • Executable scriptline 1
    Executable file

core/src/wire/types.ts

  • Executable scriptline 1
    Executable file

core/src/wire/types.version.test.ts

  • Executable scriptline 1
    Executable file

core/src/words/browser-misdirect.test.ts

  • Executable scriptline 1
    Executable file

core/src/words/browser-misdirect.ts

  • Executable scriptline 1
    Executable file

core/src/words/no-session-reason.ts

  • Executable scriptline 1
    Executable file

core/src/words/notices.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 64
    export const NO_SESSION_NAVIGATE_FIX =   ' To start a session now, call reticle_navigate with the absolute URL of the app, for example ' +   '{ url: "http://localhost:3000/" }. Reticle opens the app in its own browser tab. Nothing in ' +
  • Network accessline 65
    ' To start a session now, call reticle_navigate with the absolute URL of the app, for example ' +   '{ url: "http://localhost:3000/" }. Reticle opens the app in its own browser tab. Nothing in ' +   'the project changes.';
  • Network accessline 66
    '{ url: "http://localhost:3000/" }. Reticle opens the app in its own browser tab. Nothing in ' +

core/src/words/unreachable-notice.test.ts

  • Executable scriptline 1
    Executable file

core/src/words/unreachable-notice.ts

  • Executable scriptline 1
    Executable file

core/src/words/upgrade.test.ts

  • Executable scriptline 1
    Executable file

core/src/words/upgrade.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 21
    export const CLOUD_LEARN_MORE_URL = 'https://reticle.sh/cloud';

core/src/words/writing-rule.ts

  • Executable scriptline 1
    Executable file

core/vitest.config.ts

  • Executable scriptline 1
    Executable file

docs/README.md

  • Network accessline 5
    Everything here is published to [docs.reticle.sh](https://docs.reticle.sh) by `docs.json`, which is the Mintlify config for this directory. Five tabs. **Guides** to learn in order, grouped by what you are doing (get started, install, instru

docs/adapters.md

  • Network accessline 76
    A template for each kind is in [`adapters/CONTRIBUTING.md`](https://github.com/reticlehq/reticle/blob/main/adapters/CONTRIBUTING.md). It also covers a fourth kind, lint (an ordinary ESLint plugin such as `@reticlehq/eslint-plugin`, which ne

docs/agent-cheatsheet.md

  • Network accessline 173
    npx @reticlehq/server serve --headless npx @reticlehq/server verify http://localhost:5173/ --expect '{"kind":"text","contains":"Welcome"}'
  • Network accessline 174
    npx @reticlehq/server verify http://localhost:5173/ --expect '{"kind":"text","contains":"Welcome"}'

docs/architecture.md

  • Network accessline 122
    See [LICENSE](https://github.com/reticlehq/reticle/blob/main/LICENSE) and each package's own `LICENSE` file.
  • Network accessline 129
    - [Benchmarks](/benchmarks) covers how we measure, and the honest results against the alternatives. - [Usage](/usage) is the full tool reference and advanced modes. - [CONTRIBUTING.md](https://github.com/reticlehq/reticle/blob/main/CONTRIBU
  • Network accessline 131
    - [CONTRIBUTING.md](https://github.com/reticlehq/reticle/blob/main/CONTRIBUTING.md) has the development loop and the rules.

docs/autodrive.md

  • Network accessline 23
    npx @reticlehq/server verify http://localhost:3000 --persona "an admin revoking a teammate's seat"
  • Access to secretsline 42
    [Credential-related source omitted]
  • Access to secretsline 63
    [Credential-related source omitted]

docs/benchmarks.md

  • Network accessline 168
    A toy app is a fair lab, but it's small. The harder, more honest test is a **real, complex app**. Take the [Reticle](https://reticle.sh) dashboard itself: React 19, authentication, live data, ~15 routes, a node-graph view, virtualized lists

docs/best-practices.mdx

  • Network accessline 206
    - Metrics: 3 checks · 2 flows replayed · 4.2s - Evidence: .reticle/visual/runs/r1/0001-act.jpg, .reticle/visual/runs/r1/0002-act.jpg - Run on the dashboard: https://app.reticle.sh/runs/r1
  • Network accessline 208
    - Run on the dashboard: https://app.reticle.sh/runs/r1

docs/cli.mdx

  • Access to secretsline 103
    [Credential-related source omitted]
  • Network accessline 172
    daemon       ✓ running on :4400 (pid 90790)   sessions     ✓ 1 page connected                http://localhost:4310/
  • Network accessline 173
    sessions     ✓ 1 page connected                http://localhost:4310/   agent link   ✓ your agent has read and used Reticle's tools
  • Network accessline 174
    http://localhost:4310/
  • Network accessline 189
    telemetry    disabled  (this is a Reticle source checkout; developing it is not using it) policy       https://github.com/reticlehq/reticle/blob/main/docs/telemetry.md
  • Network accessline 190
    policy       https://github.com/reticlehq/reticle/blob/main/docs/telemetry.md
  • Network accessline 236
    npx @reticlehq/server verify http://localhost:5173 --timeout 60000

docs/cli/cloud.mdx

  • Network accessline 15
    Use `--url https://your-cloud-origin` for a self-hosted cloud. `connect` checks a saved sign-in against that exact host before reuse; if it has expired, the browser approval opens again. It mints or reuses a project-scoped key, so there is 
  • Network accessline 27
    [Credential-related source omitted]
  • Access to secretsline 27
    [Credential-related source omitted]
  • Access to secretsline 31
    [Credential-related source omitted]
  • Access to secretsline 43
    [Credential-related source omitted]
  • Access to secretsline 45
    [Credential-related source omitted]
  • Access to secretsline 125
    [Credential-related source omitted]
  • Access to secretsline 134
    [Credential-related source omitted]
  • Network accessline 143
    npx @reticlehq/server connect --project "Checkout"    # signs in, creates the project if needed, links npx @reticlehq/server verify http://localhost:4173   # runs sync automatically once linked
  • Network accessline 144
    npx @reticlehq/server verify http://localhost:4173   # runs sync automatically once linked

docs/cli/drive.mdx

  • Network accessline 55
    $ npx @reticlehq/server drive http://localhost:5173
  • Network accessline 56
    {"event":"reticle_drive_attached","port":4400,"url":"http://localhost:5173","sessionId":"lease-9f2b…","ready":true,"projectId":"web","title":"Web"}
  • Network accessline 64
    attached to the Reticle daemon on :4497 ... it is driving http://localhost:5177/?__reticle_project=admin (project "admin", "Admin console") as session lease-74bf5522-8eee-4ea2-b66d-4c056c7dad3a, which every Reticle tool can address. It is r
  • Network accessline 79
    npx @reticlehq/server drive http://localhost:5173

docs/cli/gate.mdx

  • Network accessline 68
    - run: npx @reticlehq/server verify http://localhost:4173

docs/cli/init.mdx

  • Network accessline 90
    Below the plan it also prints the two things that actually finish the install: restart your agent so it re-reads its MCP server list, then run `npx @reticlehq/server status` to confirm the app connected. A successful run ends with one more 

docs/cli/open.mdx

  • Network accessline 75
    npx @reticlehq/server open http://localhost:5173

docs/cli/status.mdx

  • Network accessline 33
    daemon       ✓ running on :4400 (pid 90790)   sessions     ✓ 2 pages connected                http://localhost:5173/  (throttled, hidden)
  • Network accessline 34
    sessions     ✓ 2 pages connected                http://localhost:5173/  (throttled, hidden)                http://localhost:7699/  (throttled, hidden)
  • Network accessline 35
    http://localhost:5173/  (throttled, hidden)
  • Network accessline 36
    http://localhost:7699/  (throttled, hidden)
  • Network accessline 86
    {   "sessionId": "s223e0fad-e012-43f9-a23d-6d585470c90d",   "url": "http://localhost:4310/",
  • Network accessline 87
    "sessionId": "s223e0fad-e012-43f9-a23d-6d585470c90d",   "url": "http://localhost:4310/",   "throttled": false,
  • Network accessline 88
    "url": "http://localhost:4310/",

docs/cli/telemetry.mdx

  • Network accessline 28
    telemetry    disabled  (this is a Reticle source checkout; developing it is not using it) policy       https://github.com/reticlehq/reticle/blob/main/docs/telemetry.md
  • Network accessline 29
    policy       https://github.com/reticlehq/reticle/blob/main/docs/telemetry.md
  • Network accessline 56
    title="Every event, in schema detail"   icon="database"   href="https://github.com/reticlehq/reticle/blob/main/contributing/telemetry/events.md"
  • Network accessline 57
    icon="database"   href="https://github.com/reticlehq/reticle/blob/main/contributing/telemetry/events.md" >
  • Network accessline 58
    href="https://github.com/reticlehq/reticle/blob/main/contributing/telemetry/events.md"

docs/cli/update.mdx

  • Network accessline 42
    irm https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.ps1 | iex

docs/cli/verify.mdx

  • Network accessline 21
    | `--timeout N` | number, ms | `15000` | How long to wait for a browser session to dial back. With `--expect`, how long the predicate may take to come true instead, default `4000` | | `--storage-state <file>` | string | unset | A Playwright
  • Network accessline 22
    | `--storage-state <file>` | string | unset | A Playwright storage state file. This is how you verify flows behind a login without scripting the login every time | | `--results-json <file>` | string | unset | Also write one verdict per jour
  • Network accessline 23
    | `--results-json <file>` | string | unset | Also write one verdict per journey to this file: `{ schemaVersion, verdict, results: [{ journey, verdict, reason?, runId?, steps }], score }`, each verdict `yes`, `no` or `unknown`. `schemaVersio
  • Access to secretsline 28
    [Credential-related source omitted]
  • Network accessline 35
    '{"kind":"text","contains":"Saved"}' | Set-Content expect.json npx @reticlehq/server verify http://localhost:3000 --expect-file expect.json
  • Network accessline 36
    npx @reticlehq/server verify http://localhost:3000 --expect-file expect.json
  • Network accessline 42
    npx @reticlehq/server verify https://pr-42.preview.example.com --against https://example.com
  • Network accessline 84
    verify failed: page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:59999/
  • Network accessline 86
    - navigating to "http://localhost:59999/", waiting until "domcontentloaded"
  • Network accessline 109
    npm run build && npm run preview & npx @reticlehq/server verify http://localhost:4173 --timeout 60000
  • Network accessline 110
    npx @reticlehq/server verify http://localhost:4173 --timeout 60000

docs/deploy-checks.md

  • Network accessline 15
    Using Reticle in CI or in a pipeline? Talk to a founder: [book a call](https://calendar.app.google/h9NRDbBBQetyTzWM6) or write to [hey@reticle.sh](mailto:hey@reticle.sh).
  • Access to secretsline 75
    [Credential-related source omitted]
  • Network accessline 80
    A Vercel preview behind Deployment Protection needs a [Protection Bypass for Automation](https://vercel.com/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation) secret. Netlify has no bypass secre
  • Access to secretsline 121
    [Credential-related source omitted]

docs/desktop.mdx

  • Network accessline 94
    | console errors | yes | yes | catches what the UI never shows | | network (HTTP) | yes | yes | on `file://` a relative URL has no origin; use an absolute one | | **network (IPC)** | yes | yes | `ipc://<channel>`, including failures. Electr
  • Network accessline 95
    | network (HTTP) | yes | yes | on `file://` a relative URL has no origin; use an absolute one | | **network (IPC)** | yes | yes | `ipc://<channel>`, including failures. Electron: `invoke` and `sendSync` carry a verdict; a one-way `send` is 
  • Network accessline 96
    | **network (IPC)** | yes | yes | `ipc://<channel>`, including failures. Electron: `invoke` and `sendSync` carry a verdict; a one-way `send` is recorded as `oneWay: true` with NO status, because the renderer never learns the outcome. Tauri:
  • Network accessline 162
    Working example: [`apps/electron-smoke`](https://github.com/reticlehq/reticle/tree/main/apps/electron-smoke).
  • Network accessline 189
    "app": {     "security": {       "csp": "default-src 'self' ipc: http://ipc.localhost; connect-src 'self' ipc: http://ipc.localhost ws://localhost:4400 ws://127.0.0.1:4400"
  • Network accessline 190
    "security": {       "csp": "default-src 'self' ipc: http://ipc.localhost; connect-src 'self' ipc: http://ipc.localhost ws://localhost:4400 ws://127.0.0.1:4400"     }
  • Network accessline 191
    "csp": "default-src 'self' ipc: http://ipc.localhost; connect-src 'self' ipc: http://ipc.localhost ws://localhost:4400 ws://127.0.0.1:4400"
  • Network accessline 197
    <Warning>   Tauri's default CSP blocks the bridge WebSocket **before it opens**. Your app runs perfectly and   simply never connects, with no error to go on. Keep `ipc: http://ipc.localhost` in `connect-src`,
  • Network accessline 198
    Tauri's default CSP blocks the bridge WebSocket **before it opens**. Your app runs perfectly and   simply never connects, with no error to go on. Keep `ipc: http://ipc.localhost` in `connect-src`,   because Tauri v2 needs it for `invoke` it
  • Network accessline 199
    simply never connects, with no error to go on. Keep `ipc: http://ipc.localhost` in `connect-src`,
  • Network accessline 204
    Working example: [`apps/tauri-smoke`](https://github.com/reticlehq/reticle/tree/main/apps/tauri-smoke).
  • Network accessline 221
    Alternatively, since an Electron renderer _is_ Chromium, `--remote-debugging-port=9222` plus `RETICLE_CDP_URL=http://127.0.0.1:9222` also works and additionally enables `fullPage` (the main-process route captures the window as composited, s

docs/docs.json

  • Network accessline 1
    {   "$schema": "https://mintlify.com/docs.json",
  • Network accessline 2
    "$schema": "https://mintlify.com/docs.json",
  • Network accessline 240
    {           "anchor": "GitHub",           "href": "https://github.com/reticlehq/reticle",
  • Network accessline 241
    "anchor": "GitHub",           "href": "https://github.com/reticlehq/reticle",           "icon": "github"
  • Network accessline 242
    "href": "https://github.com/reticlehq/reticle",
  • Network accessline 245
    {           "anchor": "Discord",           "href": "https://discord.gg/BwAbzv9ZRz",
  • Network accessline 246
    "anchor": "Discord",           "href": "https://discord.gg/BwAbzv9ZRz",           "icon": "discord"
  • Network accessline 247
    "href": "https://discord.gg/BwAbzv9ZRz",
  • Network accessline 250
    {           "anchor": "npm",           "href": "https://www.npmjs.com/org/reticlehq",
  • Network accessline 251
    "anchor": "npm",           "href": "https://www.npmjs.com/org/reticlehq",           "icon": "npm"
  • Network accessline 252
    "href": "https://www.npmjs.com/org/reticlehq",
  • Network accessline 255
    {           "anchor": "Changelog",           "href": "https://github.com/reticlehq/reticle/blob/main/CHANGELOG.md",
  • Network accessline 256
    "anchor": "Changelog",           "href": "https://github.com/reticlehq/reticle/blob/main/CHANGELOG.md",           "icon": "clock-rotate-left"
  • Network accessline 257
    "href": "https://github.com/reticlehq/reticle/blob/main/CHANGELOG.md",
  • Network accessline 265
    {         "type": "github",         "href": "https://github.com/reticlehq/reticle"
  • Network accessline 266
    "type": "github",         "href": "https://github.com/reticlehq/reticle"       }
  • Network accessline 267
    "href": "https://github.com/reticlehq/reticle"
  • Network accessline 276
    "footer": {     "socials": {       "x": "https://x.com/reticle_hq",
  • Network accessline 277
    "socials": {       "x": "https://x.com/reticle_hq",       "github": "https://github.com/reticlehq/reticle",
  • Network accessline 278
    "x": "https://x.com/reticle_hq",
  • Network accessline 279
    "github": "https://github.com/reticlehq/reticle",
  • Network accessline 280
    "linkedin": "https://www.linkedin.com/company/reticlehq",
  • Network accessline 281
    "discord": "https://discord.gg/BwAbzv9ZRz"
  • Network accessline 308
    {             "label": "Contributing",             "href": "https://github.com/reticlehq/reticle/blob/main/CONTRIBUTING.md"
  • Network accessline 309
    "label": "Contributing",             "href": "https://github.com/reticlehq/reticle/blob/main/CONTRIBUTING.md"           },
  • Network accessline 310
    "href": "https://github.com/reticlehq/reticle/blob/main/CONTRIBUTING.md"
  • Network accessline 312
    {             "label": "Security",             "href": "https://github.com/reticlehq/reticle/blob/main/SECURITY.md"
  • Network accessline 313
    "label": "Security",             "href": "https://github.com/reticlehq/reticle/blob/main/SECURITY.md"           },
  • Network accessline 314
    "href": "https://github.com/reticlehq/reticle/blob/main/SECURITY.md"
  • Network accessline 316
    {             "label": "License",             "href": "https://github.com/reticlehq/reticle/blob/main/LICENSE"
  • Network accessline 317
    "label": "License",             "href": "https://github.com/reticlehq/reticle/blob/main/LICENSE"           }
  • Network accessline 318
    "href": "https://github.com/reticlehq/reticle/blob/main/LICENSE"
  • Network accessline 325
    {             "label": "Discord",             "href": "https://discord.gg/BwAbzv9ZRz"
  • Network accessline 326
    "label": "Discord",             "href": "https://discord.gg/BwAbzv9ZRz"           },
  • Network accessline 327
    "href": "https://discord.gg/BwAbzv9ZRz"
  • Network accessline 329
    {             "label": "Star on GitHub",             "href": "https://github.com/reticlehq/reticle"
  • Network accessline 330
    "label": "Star on GitHub",             "href": "https://github.com/reticlehq/reticle"           },
  • Network accessline 331
    "href": "https://github.com/reticlehq/reticle"
  • Network accessline 333
    {             "label": "X",             "href": "https://x.com/reticle_hq"
  • Network accessline 334
    "label": "X",             "href": "https://x.com/reticle_hq"           },
  • Network accessline 335
    "href": "https://x.com/reticle_hq"
  • Network accessline 337
    {             "label": "LinkedIn",             "href": "https://www.linkedin.com/company/reticlehq"
  • Network accessline 338
    "label": "LinkedIn",             "href": "https://www.linkedin.com/company/reticlehq"           }
  • Network accessline 339
    "href": "https://www.linkedin.com/company/reticlehq"
  • Network accessline 496
    "og:title": "Reticle Docs: verification for AI coding agents",       "og:description": "Reticle verifies a running web app from the inside and returns a verdict with evidence, not a screenshot. Install it, instrument it, and read the full t
  • Network accessline 497
    "og:description": "Reticle verifies a running web app from the inside and returns a verdict with evidence, not a screenshot. Install it, instrument it, and read the full tool reference.",       "og:url": "https://docs.reticle.sh",       "og
  • Network accessline 498
    "og:url": "https://docs.reticle.sh",
  • Network accessline 499
    "og:image": "https://docs.reticle.sh/images/og.png",
  • Network accessline 502
    "twitter:site": "@reticle_hq",       "twitter:creator": "@reticle_hq",       "twitter:image": "https://docs.reticle.sh/images/og.png"
  • Network accessline 503
    "twitter:creator": "@reticle_hq",       "twitter:image": "https://docs.reticle.sh/images/og.png"     },
  • Network accessline 504
    "twitter:image": "https://docs.reticle.sh/images/og.png"
  • Network accessline 506
    "organization": {       "name": "Reticle",       "url": "https://docs.reticle.sh",
  • Network accessline 507
    "name": "Reticle",       "url": "https://docs.reticle.sh",       "logo": "https://docs.reticle.sh/images/og.png",
  • Network accessline 508
    "url": "https://docs.reticle.sh",
  • Network accessline 509
    "logo": "https://docs.reticle.sh/images/og.png",
  • Network accessline 510
    "sameAs": ["https://github.com/reticlehq/reticle", "https://www.npmjs.com/org/reticlehq"]

docs/enterprise.md

  • Access to secretsline 22
    [Credential-related source omitted]

docs/environment.mdx

  • Network accessline 54
    | --- | --- | --- | | `RETICLE_SKIP_GATE` | `reticle gate --hook` | Lets an agent's stop hook proceed past a failing gate. The skip is printed and recorded, never silent. It does not affect `reticle gate` without `--hook`, which is what CI 
  • Network accessline 55
    | `RETICLE_SKIP_GATE` | `reticle gate --hook` | Lets an agent's stop hook proceed past a failing gate. The skip is printed and recorded, never silent. It does not affect `reticle gate` without `--hook`, which is what CI runs. | | `RETICLE_N
  • Network accessline 56
    | `RETICLE_NO_CI_HINT` | `reticle gate`, `reticle verify` | `1` stops the one line these commands write to stderr at the end of a run in a CI runner or a container. The line names the pull request check and `https://reticle.sh/ci`. It never
  • Access to secretsline 64
    [Credential-related source omitted]

docs/faq.mdx

  • Access to secretsline 74
    [Credential-related source omitted]

docs/favicon/mark-black.svg

  • Network accessline 1
    <svg width="96" height="94" viewBox="0 0 96 94" fill="none" xmlns="http://www.w3.org/2000/svg">

docs/favicon/mark-white.svg

  • Network accessline 1
    <svg width="96" height="94" viewBox="0 0 96 94" fill="none" xmlns="http://www.w3.org/2000/svg">

docs/first-drive.md

  • Network accessline 20
    git clone https://github.com/reticlehq/reticle && cd reticle
  • Network accessline 41
    curl -s -o /dev/null -w "api=%{http_code} app=%{http_code}\n" \
  • Network accessline 42
    http://localhost:8787/api/saved-items http://localhost:4310/
  • Network accessline 54
    node server/dist/command/cli.js verify http://localhost:4310/ --port 4400 \
  • Network accessline 71
    node server/dist/command/cli.js verify http://localhost:4310/ --port 4400 \
  • Network accessline 78
    '{"kind":"text","contains":"Saved"}' | Set-Content expect.json npx @reticlehq/server verify http://localhost:3000 --expect-file expect.json
  • Network accessline 79
    npx @reticlehq/server verify http://localhost:3000 --expect-file expect.json
  • Network accessline 118
    **Telemetry fails silently.** Nothing throws, no test reddens, the data is just permanently gone. Read [`contributing/telemetry/contract.md`](https://github.com/reticlehq/reticle/blob/main/contributing/telemetry/contract.md) before touching
  • Network accessline 137
    - [`CONTRIBUTING.md`](https://github.com/reticlehq/reticle/blob/main/CONTRIBUTING.md): the rules, the layout, and the PR flow

docs/fixtures.md

  • Network accessline 37
    CI can ask this repo to verify a Reticle commit automatically, in the [`vite-ecosystem-ci`](https://github.com/vitejs/vite-ecosystem-ci) shape, where a separate repo holds the downstream apps and the main repo asks it to run. The sending ha

docs/for-agents.md

  • Network accessline 7
    Append `.md` to any Reticle docs URL to get that page as plain Markdown, or fetch [`https://docs.reticle.sh/llms.txt`](https://docs.reticle.sh/llms.txt) for the index of every page. No API key, no scraper, no HTML parser.
  • Network accessline 9
    The site lives at **`https://docs.reticle.sh`**. Everything below is a plain HTTP GET.
  • Network accessline 16
    curl https://docs.reticle.sh/getting-started.md
  • Network accessline 17
    curl https://docs.reticle.sh/agent-cheatsheet.md
  • Network accessline 18
    curl https://docs.reticle.sh/usage.md
  • Network accessline 26
    > ## Documentation Index > Fetch the complete documentation index at: https://docs.reticle.sh/llms.txt
  • Network accessline 27
    > Fetch the complete documentation index at: https://docs.reticle.sh/llms.txt
  • Network accessline 41
    The slug is the filename in [`docs/`](https://github.com/reticlehq/reticle/tree/main/docs), so `docs/token-efficiency.md` in the repo is `/token-efficiency` on the site and `/token-efficiency.md` as raw text.
  • Network accessline 45
    | URL | What it is | Use it when | | --- | --- | --- | | [`/llms.txt`](https://docs.reticle.sh/llms.txt) | Every page title and URL, and nothing else | You want to pick the right page before spending tokens on it |
  • Network accessline 46
    | --- | --- | --- | | [`/llms.txt`](https://docs.reticle.sh/llms.txt) | Every page title and URL, and nothing else | You want to pick the right page before spending tokens on it | | [`/llms-full.txt`](https://docs.reticle.sh/llms-full.txt) 
  • Network accessline 47
    | [`/llms.txt`](https://docs.reticle.sh/llms.txt) | Every page title and URL, and nothing else | You want to pick the right page before spending tokens on it |
  • Network accessline 48
    | [`/llms-full.txt`](https://docs.reticle.sh/llms-full.txt) | The entire documentation as one file (hundreds of KB, and growing) | You are seeding a context window or an index once |
  • Dangerous shell operationline 56
    > None of this is Reticle itself. These endpoints serve the **documentation**. Reticle runs on your machine and verifies your app; you install it with the installer script (`curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/mai
  • Network accessline 56
    > None of this is Reticle itself. These endpoints serve the **documentation**. Reticle runs on your machine and verifies your app; you install it with the installer script (`curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/mai

docs/frameworks.mdx

  • Network accessline 230
    What is still missing on Preact is the enrichment above the DOM: `reticle_inspect` returns no `component`/`componentStack`, `@preact/signals` has no `reticle_state` adapter, and the render meter counts React commits only. Tracked in [#129](
  • Network accessline 256
    <script type="module">   Promise.all([     import('https://cdn.jsdelivr.net/npm/@reticlehq/browser@<version>/+esm'),
  • Network accessline 257
    Promise.all([     import('https://cdn.jsdelivr.net/npm/@reticlehq/browser@<version>/+esm'),     import('./reticle.local.js').catch(() => ({})),
  • Network accessline 258
    import('https://cdn.jsdelivr.net/npm/@reticlehq/browser@<version>/+esm'),
  • Network accessline 301
    _SNIPPET = """<script type="module">   import { reticle } from 'https://cdn.jsdelivr.net/npm/@reticlehq/browser@<version>/+esm';
  • Network accessline 302
    import { reticle } from 'https://cdn.jsdelivr.net/npm/@reticlehq/browser@<version>/+esm';
  • Access to secretsline 308
    [Credential-related source omitted]

docs/gate-plan.md

  • Network accessline 10
    > What has to be true before a PR merges and before a release ships, why each piece exists, and what is built so far. Derived from [`system-map.md`](./system-map.md); the harness rules every tier obeys are in [`harness-rules.md`](https://gi
  • Network accessline 35
    **Tier 3 is the [CNCF conformance](https://github.com/cncf/k8s-conformance) model:** contributors do not _claim_ a client works, they run one command and submit its machine-generated output as a PR, which a bot validates before a human look
  • Network accessline 68
    - **Negative control** (`pnpm gate:install:self-test`): the browser blocks the actual Reticle socket and every scaffold must fail only its session check. Setup errors, transport loss, missing results, and passing controls fail qualification
  • Network accessline 69
    - `file:` wiring is a dead end and the reason is worth keeping: npm symlinks it, which Vite resolves and Next does not; `--install-links` copies instead and then cannot resolve `workspace:*` at all. - [◐] **Tier 2: built, NOT live.** The se
  • Network accessline 70
    - [◐] **Tier 2: built, NOT live.** The sending half is `fixtures-dispatch` in `ci.yml` (on `main` only, never fails the workflow; it is a notification, and the verdict lands in the fixtures repo's run). The receiving half is a template at [
  • Network accessline 87
    - [x] **Per-client compat script**: `apps/e2e/client-compat.mjs`. Extracts the command from the config **exactly the way that client would**, runs it, and speaks MCP to it. 7/7 clients, 23 assertions, each advertising the default surface (t
  • Network accessline 88
    - It proves only the half a machine can prove, and the verdict is named `runnable-unverified` so the distinction survives into the matrix. Whether the client _reads_ that path needs the real client, which is the submitted half. - [x] **Subm
  • Network accessline 89
    - [x] **Submission flow**: `apps/e2e/matrix.mjs --validate`, run by CI's `matrix-records` job on every PR. The validator refuses what cannot be acted on: `works` without `checks.toolsVisible` (the self-report the flow exists to replace), `b

docs/gates.md

  • Network accessline 70
    | `open-verification`, the adjudicator, `WebRealm`, or anything a verdict is derived from | ↑ **and** `pnpm gate:conformance` | +~3 min | | Session selection, the artifact root, or anything that tells git worktrees apart | ↑ **and** `pnpm g
  • Network accessline 71
    | Session selection, the artifact root, or anything that tells git worktrees apart | ↑ **and** `pnpm gate:worktrees` | +~20s | | Telemetry, feedback, or anything that emits an event | ↑ **and** read [`contributing/telemetry/contract.md`](ht
  • Network accessline 72
    | Telemetry, feedback, or anything that emits an event | ↑ **and** read [`contributing/telemetry/contract.md`](https://github.com/reticlehq/reticle/blob/main/contributing/telemetry/contract.md) first. `pnpm test:e2e` covers it (`telemetry-e
  • Network accessline 116
    | **Repo guards** | `turbo run test:guards` | the `@reticlehq/server` tests that scan OTHER trees (docs, `apps/`, `bench/`, the workflows, the skills), held apart from the unit suite so the wide cache key is 2 seconds rather than 40 | anyth
  • Network accessline 117
    | **Format** | `pnpm format:check` | Prettier | n/a | `format-check` | | **JavaScript security audit** | `node scripts/check-js-audit.mjs --self-test && node scripts/check-js-audit.mjs` | critical dependency advisories fail and high ones ar
  • Network accessline 118
    | **JavaScript security audit** | `node scripts/check-js-audit.mjs --self-test && node scripts/check-js-audit.mjs` | critical dependency advisories fail and high ones are printed as warnings without failing; two exact, unpatched development
  • Network accessline 162
    `bench/` is **measurement and research**. Most of it blocks nothing and is allowed to bit-rot in a way a gate is not. But "nothing runs in CI" is no longer true, and was left standing here for a release after it stopped being: `ci.yml` has 
  • Network accessline 172
    - **`EADDRINUSE` / "died during boot".** A previous run left something on `:8787`, `:4310`, or `:3100`. `run-ci.sh` stops its own fixture processes on exit. An occupied port is refused; identify its owner before stopping anything. - **Killi
  • Network accessline 173
    - **Killing port 4400 with `lsof -ti tcp:4400 | xargs kill -9`.** This SIGKILLs the `reticle mcp` proxy too, because the proxy holds a _client_ socket on the bridge port. Do not kill by port. The web and desktop batteries now default to `14
  • Network accessline 174
    - **A timing assertion.** If a test asserts `Date.now() - t < N`, that is a bug in the test, not a flake to re-run. Assert the bound (output size, a truncation flag), or use a generous per-test timeout. See [`harness-rules.md`](https://gith
  • Network accessline 177
    The four rules every tier obeys, and the incident behind each, are in [`apps/e2e/harness-rules.md`](https://github.com/reticlehq/reticle/blob/main/apps/e2e/harness-rules.md).
  • Network accessline 224
    CI path routing lives in [`scripts/ci/changes.mjs`](https://github.com/reticlehq/reticle/blob/main/scripts/ci/changes.mjs), and its output is written to the `changes` job's step summary. Each changed file is mapped to its nearest workspace 
  • Network accessline 228
    [`.github/flaky.json`](https://github.com/reticlehq/reticle/blob/main/.github/flaky.json) is the only place a tolerated gap may be named. Each entry needs an issue and an `expires` date. The `flaky-quarantine` job checks the file with [`scr

docs/getting-started.md

  • Dangerous shell operationline 70
    curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh | sh     # macOS, Linux
  • Network accessline 70
    curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh | sh     # macOS, Linux
  • Network accessline 71
    irm https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.ps1 | iex          # Windows PowerShell
  • Access to secretsline 190
    [Credential-related source omitted]
  • Network accessline 206
    The daemon auto-generates a **pairing token** on first run and stores it at `~/.reticle/pairing-token` (owner-only, `0600`). The bridge requires it, so another app running on `http://localhost:<some-other-port>` can't quietly register or dr
  • Access to secretsline 211
    [Credential-related source omitted]
  • Access to secretsline 238
    [Credential-related source omitted]
  • Network accessline 382
    { "sessions": [{ "sessionId": "my-app", "url": "http://localhost:3000/", "title": "…" }] }

docs/http-transport.md

  • Network accessline 150
    curl -N http://127.0.0.1:4400/mcp/sse
  • Network accessline 156
    curl -X POST 'http://127.0.0.1:4400/mcp/message?sessionId=<id>' \

docs/images/chart-avg-tokens.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="760" height="460" viewBox="0 0 760 460">

docs/images/chart-detection.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="760" height="460" viewBox="0 0 760 460">

docs/index.mdx

  • Network accessline 19
    | Step | Command | Once per | It worked when | | --- | --- | --- | --- | | 1. Install | `curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh \| sh` | machine | it says Reticle is on this machine, not in yo
  • Network accessline 20
    | --- | --- | --- | --- | | 1. Install | `curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh \| sh` | machine | it says Reticle is on this machine, not in your app yet | | 2. Wire your app | `reticle init
  • Dangerous shell operationline 21
    | 1. Install | `curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh \| sh` | machine | it says Reticle is on this machine, not in your app yet |
  • Network accessline 21
    | 1. Install | `curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh \| sh` | machine | it says Reticle is on this machine, not in your app yet |
  • Network accessline 26
    On Windows, step 1 is `irm https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.ps1 | iex`. The installer puts `reticle` on your PATH, registers it with every coding agent it finds. It does not wire your app: that is ste
  • Network accessline 139
    <CardGroup cols={2}>   <Card title="Join the Discord" icon="discord" href="https://discord.gg/BwAbzv9ZRz">
  • Network accessline 140
    <Card title="Join the Discord" icon="discord" href="https://discord.gg/BwAbzv9ZRz">
  • Network accessline 142
    people actually hit.   </Card>   <Card title="Star the repo" icon="star" href="https://github.com/reticlehq/reticle">
  • Network accessline 143
    </Card>   <Card title="Star the repo" icon="star" href="https://github.com/reticlehq/reticle">     It is the cheapest way to help, and it is genuinely how other people find this.
  • Network accessline 144
    <Card title="Star the repo" icon="star" href="https://github.com/reticlehq/reticle">

docs/install-agentic.mdx

  • Network accessline 14
    <Note>   This is the PROJECT step. The machine step comes first and is one command in a terminal, `curl   -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh | sh`, which
  • Network accessline 15
    This is the PROJECT step. The machine step comes first and is one command in a terminal, `curl   -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh | sh`, which   registers the MCP server with every agent it c
  • Network accessline 16
    -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh | sh`, which
  • Dangerous shell operationline 37
    curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh | sh
  • Network accessline 37
    curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh | sh
  • Network accessline 40
    On Windows: `irm https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.ps1 | iex`.
  • Network accessline 194
    if (import.meta.env.DEV) {       // No state library detected. If you add one, register it here. See https://docs.reticle.sh/state-management
  • Network accessline 195
    // No state library detected. If you add one, register it here. See https://docs.reticle.sh/state-management

docs/install-manual.mdx

  • Dangerous shell operationline 16
    curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh | sh   # or: irm https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.ps1 | iex
  • Network accessline 16
    curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh | sh   # or: irm https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.ps1 | iex
  • Access to secretsline 169
    [Credential-related source omitted]
  • Network accessline 187
    "app": {     "security": {       "csp": "default-src 'self' ipc: http://ipc.localhost; connect-src 'self' ipc: http://ipc.localhost ws://localhost:4400 ws://127.0.0.1:4400"
  • Network accessline 188
    "security": {       "csp": "default-src 'self' ipc: http://ipc.localhost; connect-src 'self' ipc: http://ipc.localhost ws://localhost:4400 ws://127.0.0.1:4400"     }
  • Network accessline 189
    "csp": "default-src 'self' ipc: http://ipc.localhost; connect-src 'self' ipc: http://ipc.localhost ws://localhost:4400 ws://127.0.0.1:4400"
  • Network accessline 195
    <Warning>   Tauri's default CSP blocks the bridge WebSocket **before it opens**. Your app runs perfectly and   simply never connects, with no error to go on. Keep `ipc: http://ipc.localhost` in `connect-src`,
  • Network accessline 196
    Tauri's default CSP blocks the bridge WebSocket **before it opens**. Your app runs perfectly and   simply never connects, with no error to go on. Keep `ipc: http://ipc.localhost` in `connect-src`,   Tauri v2 needs it for `invoke` itself. An
  • Network accessline 197
    simply never connects, with no error to go on. Keep `ipc: http://ipc.localhost` in `connect-src`,

docs/instrumentation.mdx

  • Network accessline 138
    },   "summary": {     "net": { "total": 1, "errors": 1, "headline": "POST http://localhost:8787/api/login 401" },
  • Network accessline 139
    "summary": {     "net": { "total": 1, "errors": 1, "headline": "POST http://localhost:8787/api/login 401" },     "stateDiffs": [],
  • Network accessline 140
    "net": { "total": 1, "errors": 1, "headline": "POST http://localhost:8787/api/login 401" },

docs/license-activation.mdx

  • Access to secretsline 17
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 27
    [Credential-related source omitted]
  • Access to secretsline 98
    [Credential-related source omitted]

docs/local-registry.md

  • Network accessline 8
    To test unpublished `@reticlehq/*` changes in a real external app, publish the workspace to a local Verdaccio with `bash scripts/local-registry.sh`, then point that app's `.npmrc` at `http://127.0.0.1:4873/` as the **default** registry, not
  • Network accessline 22
    This starts a **fresh** Verdaccio on `http://127.0.0.1:4873`, creates a user and a token, and publishes every publishable workspace package there at the current workspace version: all `@reticlehq/*` packages and `open-verification`. The pac
  • Network accessline 42
    registry=http://127.0.0.1:4873/
  • Network accessline 48
    npm error 404 Not Found - GET https://registry.npmjs.org/open-verification
  • Network accessline 80
    "reticle": {       "command": "npx",       "args": ["--registry", "http://127.0.0.1:4873/", "@reticlehq/server", "mcp"],
  • Network accessline 81
    "command": "npx",       "args": ["--registry", "http://127.0.0.1:4873/", "@reticlehq/server", "mcp"],     },
  • Network accessline 82
    "args": ["--registry", "http://127.0.0.1:4873/", "@reticlehq/server", "mcp"],
  • Network accessline 108
    npx --registry http://127.0.0.1:4873/ @reticlehq/server drive http://localhost:4310   # add --headless to hide the window
  • Network accessline 117
    "reticle": {         "command": "npx",         "args": ["--registry", "http://127.0.0.1:4873/", "@reticlehq/server", "mcp"],
  • Network accessline 118
    "command": "npx",         "args": ["--registry", "http://127.0.0.1:4873/", "@reticlehq/server", "mcp"],         "env": { "RETICLE_CDP_URL": "http://localhost:9222" },
  • Network accessline 119
    "args": ["--registry", "http://127.0.0.1:4873/", "@reticlehq/server", "mcp"],
  • Network accessline 120
    "env": { "RETICLE_CDP_URL": "http://localhost:9222" },

docs/logo/wordmark-black.svg

  • Network accessline 1
    <svg width="372" height="94" viewBox="0 0 372 94" fill="none" xmlns="http://www.w3.org/2000/svg">

docs/logo/wordmark-white.svg

  • Network accessline 1
    <svg width="372" height="94" viewBox="0 0 372 94" fill="none" xmlns="http://www.w3.org/2000/svg">

docs/matrix/README.md

  • Network accessline 5
    You do not tell us it works. You **run one command, run your client, and submit what came out**, the same shape as [CNCF's Kubernetes conformance](https://github.com/cncf/k8s-conformance) and for the same reason: a claim nobody can trace ba

docs/multi-agent-testing.md

  • Network accessline 30
    reticle_run { tool: "reticle_lease", args: { action: "acquire", url: "http://localhost:3000/dashboard" } }
  • Network accessline 39
    **Lease the exact host that the dev server binds.** `http://localhost:3000` and `http://127.0.0.1:3000` are two origins, and they are not the same address. A dev server that binds only `::1` (Vite can do this for `localhost`) refuses a leas
  • Network accessline 46
    reticle_run { tool: "reticle_lease", args: { action: "acquire", url: "http://localhost:3000/map", permissions: ["geolocation"] } }

docs/packages/core.mdx

  • Access to secretsline 56
    [Credential-related source omitted]

docs/packages/next.mdx

  • Access to secretsline 49
    [Credential-related source omitted]
  • Access to secretsline 85
    [Credential-related source omitted]

docs/packages/test.mdx

  • Network accessline 24
    const run = await bootSession({ driveUrl: 'http://localhost:5173' });

docs/platform-integration.md

  • Dangerous shell operationline 32
    curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh | sh
  • Network accessline 32
    curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh | sh
  • Network accessline 33
    irm https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.ps1 | iex   # Windows
  • Network accessline 45
    const { run } = await (   await fetch('http://127.0.0.1:7331/verify', {
  • Network accessline 46
    await fetch('http://127.0.0.1:7331/verify', {
  • Access to secretsline 121
    [Credential-related source omitted]
  • Network accessline 137
    > Honest note: a platform can build a verification step itself. Reticle's case is the depth (program-state and source mapping), the determinism (no LLM in the loop), the un-hallucinatable verdict, and a stable drop-in artifact. The reproduc

docs/predicates.mdx

  • Network accessline 155
    "evidence": {   "from": "http://localhost:4310/",
  • Network accessline 156
    "from": "http://localhost:4310/",
  • Network accessline 157
    "to": "http://localhost:4310/deployments",

docs/production-mode.md

  • Access to secretsline 12
    [Credential-related source omitted]
  • Network accessline 41
    {   "action": "acquire",   "url": "https://app.example.com/",
  • Network accessline 42
    "action": "acquire",   "url": "https://app.example.com/",   "seedStorage": { "cookies": { "<session cookie name>": "<value>" } },
  • Network accessline 43
    "url": "https://app.example.com/",
  • Network accessline 55
    1. It mints a single-use session nonce for the site's origin. The nonce expires after 60 minutes. 2. It asks the service for a ticket with the linked API key: `{ workspaceId, nonce, bridgePort, scope, origin, bridge }`. `origin` is the site
  • Network accessline 57
    3. It opens `https://app.example.com/?reticle_activate=<ticket>` in a leased browser.

docs/prompt-capture.md

  • Access to secretsline 65
    [Credential-related source omitted]
  • Access to secretsline 71
    [Credential-related source omitted]

docs/protocol.mdx

  • Network accessline 55
    title="Read the specification"   icon="github"   href="https://github.com/reticlehq/reticle/blob/main/open-verification/SPEC.md"
  • Network accessline 56
    icon="github"   href="https://github.com/reticlehq/reticle/blob/main/open-verification/SPEC.md" >
  • Network accessline 57
    href="https://github.com/reticlehq/reticle/blob/main/open-verification/SPEC.md"

docs/quickstart.mdx

  • Network accessline 35
    Starting your dev server: npm run dev Reticle is checking http://localhost:58440/. It installs nothing in your app.
  • Network accessline 36
    Reticle is checking http://localhost:58440/. It installs nothing in your app.
  • Network accessline 43
    Then the verdict line, `verified: yes` with the URL it checked, and the next step, `npx @reticlehq/server init`. A fault gives `verified: no`, and one `✗` line for each fault, for example `✗ Failed request on /broken: GET http://localhost:5
  • Dangerous shell operationline 113
    curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh | sh
  • Network accessline 113
    curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh | sh
  • Network accessline 117
    irm https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.ps1 | iex
  • Access to secretsline 152
    [Credential-related source omitted]
  • Network accessline 233
    "evidence": {       "method": "POST",       "url": "http://localhost:8787/api/login",
  • Network accessline 234
    "method": "POST",       "url": "http://localhost:8787/api/login",       "status": 200,
  • Network accessline 235
    "url": "http://localhost:8787/api/login",
  • Access to secretsline 318
    [Credential-related source omitted]

docs/skill-file.mdx

  • Network accessline 11
    https://docs.reticle.sh/skill.md
  • Network accessline 14
    Paste that URL into the agent and say "read this and set up Reticle". It is the canonical file with [Agent Skill](https://agentskills.io) frontmatter (`name`, `description`) added. The repository copy, `https://raw.githubusercontent.com/ret
  • Network accessline 25
    It is the critical path and nothing else. Read [SKILL.md](https://github.com/reticlehq/reticle/blob/main/SKILL.md) itself to get the rules exactly right; in short:

docs/skill-setup.md

  • Network accessline 58
    curl https://docs.reticle.sh/install-manual.md      # register the MCP, wire the SDK, prove it
  • Network accessline 59
    curl https://docs.reticle.sh/troubleshooting.md     # nothing connected, click did nothing, verdict unknown
  • Network accessline 102
    Never echo the key back in your reply, and never put it in a commit, a code comment, or a feedback report. The rest: `curl https://docs.reticle.sh/enterprise.md`.

docs/skill.md

  • Network accessline 5
    metadata:   version: 3.9.0   homepage: https://docs.reticle.sh
  • Network accessline 6
    version: 3.9.0   homepage: https://docs.reticle.sh   repository: https://github.com/reticlehq/reticle
  • Network accessline 7
    homepage: https://docs.reticle.sh
  • Network accessline 8
    repository: https://github.com/reticlehq/reticle
  • Instruction override signalline 55
    **Done means a verdict.** `init` exiting 0, the tools appearing, a session listed: each proves wiring, not that anything works. Do not tell the user Reticle is set up until one real flow in their app returned a verdict.
  • Network accessline 59
    > Reticle is free and open source. If this check helped, a star on GitHub helps other developers find it: https://github.com/reticlehq/reticle
  • Network accessline 61
    > Tell the maintainers what you build: Discord https://discord.gg/BwAbzv9ZRz, a call https://calendar.app.google/h9NRDbBBQetyTzWM6, or `npx @reticlehq/server feedback --contact you@example.com "..."`.
  • Network accessline 140
    When the user asked for setup, everything else (running `init`, starting the dev server, opening the browser) is a setup step, not a decision. When `init` cannot finish alone, read `docs/skill-setup.md`, which ships beside this file (`https
  • Network accessline 188
    Fetch one page, not this file again. Every page is plain markdown at `https://docs.reticle.sh/<page>.md`; `https://docs.reticle.sh/llms.txt` lists them all. Do not fetch `llms-full.txt`: it is the whole site.

docs/system-map.md

  • Network accessline 10
    > How a tool call gets from a coding agent to your app and back, what each hop can do wrong, and which of those failures are **silent**. Written for anyone touching the transport, the daemon, the bridge, or a gate, and for contributors tryi
  • Network accessline 12
    > Companion pages: [`harness-rules.md`](https://github.com/reticlehq/reticle/blob/main/apps/e2e/harness-rules.md) (what a gate must do about all this) and [`contributing/telemetry/contract.md`](https://github.com/reticlehq/reticle/blob/main
  • Network accessline 91
    | Failure | Silent | Guarded by | | --- | --- | --- | | proxy killed externally (the `lsof -ti` recipe) | **yes, total** | `reticle stop --force` frees the port and leaves the agent's own proxy alone. See [harness rule 1](https://github.com
  • Network accessline 92
    | --- | --- | --- | | proxy killed externally (the `lsof -ti` recipe) | **yes, total** | `reticle stop --force` frees the port and leaves the agent's own proxy alone. See [harness rule 1](https://github.com/reticlehq/reticle/blob/main/apps/
  • Network accessline 93
    | proxy killed externally (the `lsof -ti` recipe) | **yes, total** | `reticle stop --force` frees the port and leaves the agent's own proxy alone. See [harness rule 1](https://github.com/reticlehq/reticle/blob/main/apps/e2e/harness-rules.md

docs/telemetry.md

  • Network accessline 57
    **Parameter and flag NAMES are collected; their VALUES are not.** We record that `reticle_act` was called with `ref` and `action`, and that you ran `reticle serve --headed --port`. We do not record what you set them to. This distinction is 
  • Network accessline 153
    **It is redacted before it leaves your machine.** Emails, credentials in URLs, `Authorization` headers and API-key assignments, recognizable vendor tokens (`sk-…`, `ghp_…`, `AKIA…`, `xoxb-…`, JWTs), and home-directory paths are stripped and
  • Network accessline 189
    Events are sent over HTTPS to [PostHog](https://posthog.com) (US cloud), a product-analytics service acting as our data processor, and are used only in aggregate (counts, retention curves, tool popularity). We do not sell or share this data
  • Network accessline 203
    | `reticle telemetry disable` | This machine, permanently (until `reticle telemetry enable`) | | `RETICLE_TELEMETRY=0` | Wherever the variable is set; handy for CI or a fleet-wide profile | | `DO_NOT_TRACK=1` | The [cross-tool convention](h
  • Network accessline 205
    | `DO_NOT_TRACK=1` | The [cross-tool convention](https://consoledonottrack.com), which Reticle honors |

docs/testing.md

  • Network accessline 69
    const booted = await bootSession({ driveUrl: 'http://localhost:4310', headless: true });
  • Network accessline 121
    Because native input was not active. `t.expectInputModeReal()` deliberately skips with a reason rather than passing on a synthetic no-op, since a synthetic hover cannot trigger a CSS `:hover` or a pointer-library drag. If you want those spe

docs/tools/act-and-wait.mdx

  • Network accessline 47
    "id": "n2",       "method": "POST",       "url": "http://localhost:8787/api/login",
  • Network accessline 48
    "method": "POST",       "url": "http://localhost:8787/api/login",       "status": 200,
  • Network accessline 49
    "url": "http://localhost:8787/api/login",

docs/tools/navigate.mdx

  • Network accessline 16
    {   "ok": true,   "url": "http://localhost:4310/deployments",
  • Network accessline 17
    "ok": true,   "url": "http://localhost:4310/deployments",   "confirmed": false,
  • Network accessline 18
    "url": "http://localhost:4310/deployments",
  • Network accessline 97
    "pass": true,     "evidence": {       "from": "http://localhost:4310/",
  • Network accessline 98
    "evidence": {       "from": "http://localhost:4310/",       "to": "http://localhost:4310/deployments",
  • Network accessline 99
    "from": "http://localhost:4310/",
  • Network accessline 100
    "to": "http://localhost:4310/deployments",

docs/tools/network.mdx

  • Network accessline 27
    {       "method": "POST",       "url": "http://localhost:8787/api/login",
  • Network accessline 28
    "method": "POST",       "url": "http://localhost:8787/api/login",       "status": 401,
  • Network accessline 29
    "url": "http://localhost:8787/api/login",
  • Network accessline 38
    {       "method": "POST",       "url": "http://localhost:8787/api/login",
  • Network accessline 39
    "method": "POST",       "url": "http://localhost:8787/api/login",       "status": 200,
  • Network accessline 40
    "url": "http://localhost:8787/api/login",
  • Network accessline 108
    "hint": {     "totalInWindow": 1,     "present": [{ "method": "POST", "url": "http://localhost:8787/api/login", "status": 200 }]
  • Network accessline 109
    "totalInWindow": 1,     "present": [{ "method": "POST", "url": "http://localhost:8787/api/login", "status": 200 }]   },
  • Network accessline 110
    "present": [{ "method": "POST", "url": "http://localhost:8787/api/login", "status": 200 }]

docs/tools/observe.mdx

  • Network accessline 38
    "type": "net.detail",       "data": {         "url": "http://localhost:4310/",
  • Network accessline 39
    "data": {         "url": "http://localhost:4310/",         "method": "GET",
  • Network accessline 40
    "url": "http://localhost:4310/",
  • Network accessline 42
    "status": 200,         "resourceType": "document",         "pageUrl": "http://localhost:4310/"
  • Network accessline 43
    "resourceType": "document",         "pageUrl": "http://localhost:4310/"       }
  • Network accessline 44
    "pageUrl": "http://localhost:4310/"
  • Network accessline 121
    "claim": "1 write(s) succeeded on the server",     "counter": "nothing on the client changed, no DOM, store or route movement",     "detail": "POST http://localhost:8787/api/login 200"
  • Network accessline 122
    "counter": "nothing on the client changed, no DOM, store or route movement",     "detail": "POST http://localhost:8787/api/login 200"   }
  • Network accessline 123
    "detail": "POST http://localhost:8787/api/login 200"

docs/tools/sessions.mdx

  • Network accessline 25
    {       "sessionId": "sba6117a6-24ec-494d-8c2c-e2958cff2e7f",       "url": "http://localhost:4310/",
  • Network accessline 26
    "sessionId": "sba6117a6-24ec-494d-8c2c-e2958cff2e7f",       "url": "http://localhost:4310/",       "title": "Reticle · Mission Control",
  • Network accessline 27
    "url": "http://localhost:4310/",

docs/troubleshooting.mdx

  • Network accessline 153
    { "tool": "reticle_lease", "args": { "action": "acquire", "url": "http://localhost:4312/" } }
  • Network accessline 232
    A dev server on `https://` with a self-signed or mkcert certificate makes `reticle_lease { "action": "acquire" }` fail with `net::ERR_CERT_AUTHORITY_INVALID`: the browser does not trust a certificate that no CA vouches for. The result says 
  • Network accessline 235
    {   "tool": "reticle_lease",   "args": { "action": "acquire", "url": "https://localhost:5173/", "ignoreHTTPSErrors": true }
  • Network accessline 236
    "tool": "reticle_lease",   "args": { "action": "acquire", "url": "https://localhost:5173/", "ignoreHTTPSErrors": true } }
  • Network accessline 237
    "args": { "action": "acquire", "url": "https://localhost:5173/", "ignoreHTTPSErrors": true }

docs/usage.md

  • Network accessline 612
    `mutators` lists the callee names that change state; `signalCallee` (default `['reticleSignal', 'signal']`) is the name that counts as firing a signal. See [`adapters/lint/eslint/README.md`](https://github.com/reticlehq/reticle/blob/main/ad
  • Access to secretsline 773
    [Credential-related source omitted]
  • Network accessline 1092
    # Chrome/Chromium    google-chrome --remote-debugging-port=9222 http://localhost:3000
  • Network accessline 1093
    google-chrome --remote-debugging-port=9222 http://localhost:3000
  • Network accessline 1103
    "command": "npx",          "args": ["@reticlehq/server", "mcp"],          "env": { "RETICLE_CDP_URL": "http://localhost:9222" },
  • Network accessline 1104
    "args": ["@reticlehq/server", "mcp"],          "env": { "RETICLE_CDP_URL": "http://localhost:9222" },        },
  • Network accessline 1105
    "env": { "RETICLE_CDP_URL": "http://localhost:9222" },

docs/use-cases.mdx

  • Network accessline 65
    - A control is reachable by its **role and accessible name**. An icon button with no name cannot be found with `{ "role": "button", "name": "Close" }`. - **Focus lands where it should.** When a dialog opens, focus moves into it (`state: "fo
  • Network accessline 66
    - **Focus lands where it should.** When a dialog opens, focus moves into it (`state: "focused"`), and Reticle records focus dropping to `<body>` when a dialog closes. - **The keyboard works.** `press` with `Enter` or `Escape` fires the cont
  • Network accessline 67
    - **The keyboard works.** `press` with `Enter` or `Escape` fires the control's action, not just a mouse click. The [verify-keyboard-access](https://github.com/reticlehq/reticle/tree/main/skills/verify-keyboard-access) skill walks through it
  • Access to secretsline 126
    [Credential-related source omitted]
  • Network accessline 133
    npx @reticlehq/server verify http://localhost:3000 --explore --persona "a new user who signs up and creates a first project"

docs/what-is-recorded.md

  • Access to secretsline 8
    [Credential-related source omitted]
  • Access to secretsline 37
    [Credential-related source omitted]
  • Access to secretsline 45
    [Credential-related source omitted]
  • Network accessline 67
    The daemon also fetches a small public file, `https://reticle.sh/hud/notices.v1.json`, for the notices in the HUD's rail. The request carries nothing about you or your project. `RETICLE_TELEMETRY=0` or `DO_NOT_TRACK=1` stops it, and `RETICL
  • Network accessline 69
    The one-line installer fetches one public file too, `https://reticle.sh/install/agent-prompt.v1.json`: the prompt it prints for you to paste into your coding agent. It is a plain GET with a three-second timeout that sends nothing about you,

docs/why-reticle.mdx

  • Network accessline 75
    The test cannot settle the question in either direction, and the reasons are specific: the fixture is small enough to read whole, several injected bugs were labelled by a comment on the changed line, and "fixed" was checked by a string disa

engine/LICENSE

  • Network accessline 2
    Apache License                            Version 2.0, January 2004                         http://www.apache.org/licenses/
  • Network accessline 4
    http://www.apache.org/licenses/
  • Network accessline 196
    http://www.apache.org/licenses/LICENSE-2.0

engine/package.json

  • Executable scriptline 1
    Executable file
  • Network accessline 11
    "reticle"   ],   "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 12
    ],   "homepage": "https://github.com/reticlehq/reticle#readme",   "bugs": "https://github.com/reticlehq/reticle/issues",
  • Network accessline 13
    "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 14
    "bugs": "https://github.com/reticlehq/reticle/issues",
  • Network accessline 15
    "repository": {     "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",
  • Network accessline 16
    "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",     "directory": "engine"
  • Network accessline 17
    "url": "git+https://github.com/reticlehq/reticle.git",

engine/src/core-coupling-only-shrinks.test.ts

  • Executable scriptline 1
    Executable file

engine/src/directory-reach.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/acknowledged-failed-write.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/body-failures.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/body-failures.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/contradiction-evidence.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 445
    const RELATIVE_URL_BASE = 'http://reticle.invalid';
  • Network accessline 518
    let url: URL;   try {     url = new URL(raw, 'http://app.invalid');
  • Network accessline 519
    try {     url = new URL(raw, 'http://app.invalid');   } catch {
  • Network accessline 520
    url = new URL(raw, 'http://app.invalid');

engine/src/disagreement/contradiction-folds.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 102
    type: EventType.NET_REQUEST,       t: 2,       data: { method: 'GET', url: 'https://app.test/api/items', status: 200, ok: true },
  • Network accessline 103
    t: 2,       data: { method: 'GET', url: 'https://app.test/api/items', status: 200, ok: true },     } as unknown as ReticleEvent;
  • Network accessline 104
    data: { method: 'GET', url: 'https://app.test/api/items', status: 200, ok: true },
  • Network accessline 107
    type: EventType.NET_REQUEST,       t: 1,       data: { method: 'GET', url: 'http://localhost:5173/@vite/client', status: 200, ok: true },
  • Network accessline 108
    t: 1,       data: { method: 'GET', url: 'http://localhost:5173/@vite/client', status: 200, ok: true },     } as unknown as ReticleEvent;
  • Network accessline 109
    data: { method: 'GET', url: 'http://localhost:5173/@vite/client', status: 200, ok: true },
  • Network accessline 114
    expect(seen.map((e) => String((e.data as { url?: unknown }).url))).toEqual([       'https://app.test/api/items',
  • Network accessline 115
    'https://app.test/api/items',

engine/src/disagreement/contradiction-folds.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/contradiction-types.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/contradictions-pagination.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/contradictions.app-reaction.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/contradictions.attribution.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 24
    const APP = 'http://localhost:3000/dashboard';
  • Network accessline 43
    describe('contradictions — the first-party/third-party axis', () => {   it('does not let a failed analytics beacon contradict an assertion the caller proved', () => {     const beacon = failedCall('https://www.google-analytics.com/g/collect
  • Network accessline 44
    it('does not let a failed analytics beacon contradict an assertion the caller proved', () => {     const beacon = failedCall('https://www.google-analytics.com/g/collect?v=2');     expect(kinds([domChanged(), beacon])).toEqual([]);
  • Network accessline 45
    const beacon = failedCall('https://www.google-analytics.com/g/collect?v=2');
  • Network accessline 52
    id: 'n-blocked',       method: 'GET',       url: 'https://cdn.segment.com/analytics.js/v1/abc/analytics.min.js',
  • Network accessline 53
    method: 'GET',       url: 'https://cdn.segment.com/analytics.js/v1/abc/analytics.min.js',       status: 0,
  • Network accessline 54
    url: 'https://cdn.segment.com/analytics.js/v1/abc/analytics.min.js',
  • Network accessline 70
    expect(kinds([domChanged(), failedCall('http://localhost:8787/api/todos')])).toEqual([
  • Network accessline 74
    expect(       kinds([domChanged(), failedCall('https://api.example.com/todos')], {
  • Network accessline 75
    kinds([domChanged(), failedCall('https://api.example.com/todos')], {
  • Network accessline 76
    appOrigin: 'https://app.example.com/dashboard',
  • Network accessline 97
    expect(       kinds([domChanged(), failedCall('https://www.google-analytics.com/g/collect')], {
  • Network accessline 98
    kinds([domChanged(), failedCall('https://www.google-analytics.com/g/collect')], {

engine/src/disagreement/contradictions.declare-hint.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 31
    const paywall = (): ReticleEvent[] => [   domChanged(),   failedCall('POST', 'http://localhost:3000/credits/unlock?plan=pro', 402),
  • Network accessline 32
    domChanged(),   failedCall('POST', 'http://localhost:3000/credits/unlock?plan=pro', 402), ];
  • Network accessline 33
    failedCall('POST', 'http://localhost:3000/credits/unlock?plan=pro', 402),
  • Network accessline 98
    it('offers no clause for a write to the root path', () => {     const detail =       finding([domChanged(), failedCall('POST', 'http://localhost:3000/', 500)])?.detail ?? '';
  • Network accessline 100
    finding([domChanged(), failedCall('POST', 'http://localhost:3000/', 500)])?.detail ?? '';

engine/src/disagreement/contradictions.declared.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/contradictions.document-scope.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/contradictions.edit-scope.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/contradictions.hydration.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/contradictions.read-server-fault.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 27
    const APP = 'http://localhost:5173/reader';
  • Network accessline 59
    const fieldWindow = (): ReticleEvent[] => [   label(),   get('http://localhost:5173/api/articles?date=2026-11-03', 500),
  • Network accessline 60
    label(),   get('http://localhost:5173/api/articles?date=2026-11-03', 500),   get('/api/feeds', 502),
  • Network accessline 61
    get('http://localhost:5173/api/articles?date=2026-11-03', 500),
  • Network accessline 67
    const all = findContradictions(fieldWindow(), { actionSince: ACTION_AT, appOrigin: APP });     const fault = all.find((c) => c.kind === ContradictionKind.READ_SERVER_FAULT);     expect(fault?.detail).toContain('GET http://localhost:5173/api
  • Network accessline 68
    const fault = all.find((c) => c.kind === ContradictionKind.READ_SERVER_FAULT);     expect(fault?.detail).toContain('GET http://localhost:5173/api/articles?date=2026-11-03 → 500');     expect(fault?.detail).toContain('GET /api/feeds → 502');
  • Network accessline 69
    expect(fault?.detail).toContain('GET http://localhost:5173/api/articles?date=2026-11-03 → 500');
  • Network accessline 98
    describe('what the rule leaves alone', () => {   it('a third-party 5xx', () => {     const events = [label(), get('https://cdn.example.com/fonts.json', 503)];
  • Network accessline 99
    it('a third-party 5xx', () => {     const events = [label(), get('https://cdn.example.com/fonts.json', 503)];     expect(found(events)).not.toContain(ContradictionKind.READ_SERVER_FAULT);
  • Network accessline 100
    const events = [label(), get('https://cdn.example.com/fonts.json', 503)];

engine/src/disagreement/contradictions.retry.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/contradictions.stale-one-intent.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/contradictions.state-bookkeeping.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/contradictions.target-fate.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/contradictions.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 433
    it('stays silent for a same-page hash anchor — skip links do not render a new view', () => {     const skip = ev(EventType.ROUTE_CHANGE, {       from: 'http://localhost:5173/app',
  • Network accessline 434
    const skip = ev(EventType.ROUTE_CHANGE, {       from: 'http://localhost:5173/app',       to: 'http://localhost:5173/app#main-content',
  • Network accessline 435
    from: 'http://localhost:5173/app',
  • Network accessline 436
    to: 'http://localhost:5173/app#main-content',
  • Network accessline 445
    it('stays silent for href="#" (scroll to top), which is also same-document', () => {     const top = ev(EventType.ROUTE_CHANGE, {       from: 'http://localhost:5173/app#section',
  • Network accessline 446
    const top = ev(EventType.ROUTE_CHANGE, {       from: 'http://localhost:5173/app#section',       to: 'http://localhost:5173/app#',
  • Network accessline 447
    from: 'http://localhost:5173/app#section',
  • Network accessline 448
    to: 'http://localhost:5173/app#',
  • Network accessline 459
    const hashRoute = ev(EventType.ROUTE_CHANGE, {       from: 'http://localhost:5173/#/home',
  • Network accessline 460
    from: 'http://localhost:5173/#/home',
  • Network accessline 461
    to: 'http://localhost:5173/#/invoices',
  • Network accessline 475
    it('returns yes for a same-pathname replaceState whose only effect is an attribute', () => {     const zoom = ev(EventType.ROUTE_CHANGE, {       from: 'http://localhost:5173/editor',
  • Network accessline 476
    const zoom = ev(EventType.ROUTE_CHANGE, {       from: 'http://localhost:5173/editor',       to: 'http://localhost:5173/editor?zoom=125',
  • Network accessline 477
    from: 'http://localhost:5173/editor',
  • Network accessline 478
    to: 'http://localhost:5173/editor?zoom=125',
  • Network accessline 501
    it('still flags a pushState onto a new pathname that renders nothing', () => {     const pushed = ev(EventType.ROUTE_CHANGE, {       from: 'http://localhost:5173/editor',
  • Network accessline 502
    const pushed = ev(EventType.ROUTE_CHANGE, {       from: 'http://localhost:5173/editor',       to: 'http://localhost:5173/invoices',
  • Network accessline 503
    from: 'http://localhost:5173/editor',
  • Network accessline 504
    to: 'http://localhost:5173/invoices',
  • Network accessline 513
    it('still flags a replaceState onto a new pathname that renders nothing', () => {     const replaced = ev(EventType.ROUTE_CHANGE, {       from: 'http://localhost:5173/editor',
  • Network accessline 514
    const replaced = ev(EventType.ROUTE_CHANGE, {       from: 'http://localhost:5173/editor',       to: 'http://localhost:5173/invoices',
  • Network accessline 515
    from: 'http://localhost:5173/editor',
  • Network accessline 516
    to: 'http://localhost:5173/invoices',
  • Network accessline 525
    it('still flags a same-pathname pushState that renders nothing', () => {     const pushed = ev(EventType.ROUTE_CHANGE, {       from: 'http://localhost:5173/editor',
  • Network accessline 526
    const pushed = ev(EventType.ROUTE_CHANGE, {       from: 'http://localhost:5173/editor',       to: 'http://localhost:5173/editor?zoom=125',
  • Network accessline 527
    from: 'http://localhost:5173/editor',
  • Network accessline 528
    to: 'http://localhost:5173/editor?zoom=125',
  • Network accessline 537
    it('still flags a same-pathname pop that renders nothing', () => {     const popped = ev(EventType.ROUTE_CHANGE, {       from: 'http://localhost:5173/editor?zoom=125',
  • Network accessline 538
    const popped = ev(EventType.ROUTE_CHANGE, {       from: 'http://localhost:5173/editor?zoom=125',       to: 'http://localhost:5173/editor',
  • Network accessline 539
    from: 'http://localhost:5173/editor?zoom=125',
  • Network accessline 540
    to: 'http://localhost:5173/editor',
  • Network accessline 549
    it('still flags a replaceState into a hash-router path (`#/invoices`)', () => {     const hashRoute = ev(EventType.ROUTE_CHANGE, {       from: 'http://localhost:5173/#/home',
  • Network accessline 550
    const hashRoute = ev(EventType.ROUTE_CHANGE, {       from: 'http://localhost:5173/#/home',       to: 'http://localhost:5173/#/invoices',
  • Network accessline 551
    from: 'http://localhost:5173/#/home',
  • Network accessline 552
    to: 'http://localhost:5173/#/invoices',
  • Network accessline 863
    [         okCall('POST', '/api/auth/sign-in/social'),         ev(EventType.CONTEXT_OPENED, { href: 'https://accounts.google.com/o/oauth2' }),
  • Network accessline 864
    okCall('POST', '/api/auth/sign-in/social'),         ev(EventType.CONTEXT_OPENED, { href: 'https://accounts.google.com/o/oauth2' }),       ],
  • Network accessline 865
    ev(EventType.CONTEXT_OPENED, { href: 'https://accounts.google.com/o/oauth2' }),

engine/src/disagreement/contradictions.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/duplicate-request-identity.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/duplicate-request-repeatable.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 50
    ...(repeatable === undefined ? {} : { repeatable }),   });   return findContradictions(readTwice('https://app.test/graphql'), {
  • Network accessline 51
    });   return findContradictions(readTwice('https://app.test/graphql'), {     actionSince: 0,
  • Network accessline 52
    return findContradictions(readTwice('https://app.test/graphql'), {
  • Network accessline 74
    it('covers only the endpoint it names', () => {     const events = [       ...readTwice('https://app.test/graphql'),
  • Network accessline 75
    const events = [       ...readTwice('https://app.test/graphql'),       ...readTwice('https://app.test/save'),
  • Network accessline 76
    ...readTwice('https://app.test/graphql'),
  • Network accessline 77
    ...readTwice('https://app.test/save'),
  • Network accessline 110
    const declared = declaredExpectations({ kind: PredicateKind.NET, repeatable: true });     expect(declared.repeatableNetUrls).toEqual([]);     const found = findContradictions(readTwice('https://app.test/api/orders', 201), {
  • Network accessline 111
    expect(declared.repeatableNetUrls).toEqual([]);     const found = findContradictions(readTwice('https://app.test/api/orders', 201), {       actionSince: 0,
  • Network accessline 112
    const found = findContradictions(readTwice('https://app.test/api/orders', 201), {
  • Network accessline 120
    it('a repeatable GET clause does not excuse POSTs to the same endpoint', () => {     expect(       duplicatesUnder(readTwice('https://app.test/api/orders', 201), {
  • Network accessline 121
    expect(       duplicatesUnder(readTwice('https://app.test/api/orders', 201), {         kind: 'allOf',
  • Network accessline 122
    duplicatesUnder(readTwice('https://app.test/api/orders', 201), {
  • Network accessline 132
    it('a repeatable POST clause on the read endpoint still excuses its reads', () => {     expect(       duplicatesUnder(readTwice('https://app.test/graphql'), {
  • Network accessline 133
    expect(       duplicatesUnder(readTwice('https://app.test/graphql'), {         kind: 'net',
  • Network accessline 134
    duplicatesUnder(readTwice('https://app.test/graphql'), {
  • Network accessline 140
    ).toEqual([]);     expect(       duplicatesUnder(readTwice('https://app.test/graphql'), {
  • Network accessline 141
    expect(       duplicatesUnder(readTwice('https://app.test/graphql'), {         kind: 'net',
  • Network accessline 142
    duplicatesUnder(readTwice('https://app.test/graphql'), {
  • Network accessline 151
    it('matches the URL, not the method spelled into the label', () => {     expect(       duplicatesUnder(readTwice('https://app.test/api/orders', 201), {
  • Network accessline 152
    expect(       duplicatesUnder(readTwice('https://app.test/api/orders', 201), {         kind: 'net',
  • Network accessline 153
    duplicatesUnder(readTwice('https://app.test/api/orders', 201), {

engine/src/disagreement/duplicate-request-unrelated.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 45
    const OPTS = { actionSince: 0, appOrigin: 'https://app.test/' };
  • Network accessline 51
    describe('a duplicate on an endpoint the assertion named still counts', () => {   it('reports duplicate-request when the caller asked about that endpoint', () => {     const found = kinds(burst('https://app.test/api/save', 10), {
  • Network accessline 52
    it('reports duplicate-request when the caller asked about that endpoint', () => {     const found = kinds(burst('https://app.test/api/save', 10), {       namedNetUrls: ['/api/save'],
  • Network accessline 53
    const found = kinds(burst('https://app.test/api/save', 10), {
  • Network accessline 61
    const found = kinds(burst('https://app.test/api/save', 10), { namedNetUrls: [''] });
  • Network accessline 66
    describe('a duplicate the assertion never named is a finding, not a verdict', () => {   it('reports the unrelated kind instead', () => {     const found = kinds(burst('https://app.test/api/people/match', 10), {
  • Network accessline 67
    it('reports the unrelated kind instead', () => {     const found = kinds(burst('https://app.test/api/people/match', 10), {       namedNetUrls: ['/api/save'],
  • Network accessline 68
    const found = kinds(burst('https://app.test/api/people/match', 10), {
  • Network accessline 75
    it('still REPORTS it — nothing is hidden from the caller', () => {     const found = findContradictions(burst('https://app.test/api/poll', 10), {
  • Network accessline 76
    const found = findContradictions(burst('https://app.test/api/poll', 10), {
  • Network accessline 99
    const found = kinds(burst('https://app.test/api/anything', 10), {});

engine/src/disagreement/echo-mismatch.addressed-write.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/echo-mismatch.compare-and-set.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/echo-mismatch.derived-record.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/echo-mismatch.normalized-values.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/echo-mismatch.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/echo-mismatch.timestamps.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/echo-mismatch.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/foreign-traffic-redacted.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 24
    const APP = 'http://localhost:4312/deployments';
  • Network accessline 34
    const REDACTED_URL = 'http://localhost:4312/verify/[REDACTED]';
  • Network accessline 35
    const RAW_URL = 'http://localhost:4312/verify/refresh-token';
  • Network accessline 62
    it('still drops an ordinary undeclared third-party host', () => {     const { app } = splitForeignTraffic([pending('w1', 'https://pulse.walletconnect.org/e')], APP);
  • Network accessline 63
    const { app } = splitForeignTraffic([pending('w1', 'https://pulse.walletconnect.org/e')], APP);

engine/src/disagreement/poll-is-not-a-double-submit.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/reconcile.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/reconcile.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/route-claim-is-an-effect.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/signal-before-declared-failure.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/stale-response.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/stale-response.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/unit-mismatch.prior.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 11
    id: 'n1',     method: 'GET',     url: 'http://localhost:8787/api/payments',
  • Network accessline 12
    method: 'GET',     url: 'http://localhost:8787/api/payments',     status: 200,
  • Network accessline 13
    url: 'http://localhost:8787/api/payments',
  • Network accessline 26
    id: 'n2',     method: 'POST',     url: 'http://localhost:8787/api/payments/pay_NkT10001/refund',
  • Network accessline 27
    method: 'POST',     url: 'http://localhost:8787/api/payments/pay_NkT10001/refund',     status: 200,
  • Network accessline 28
    url: 'http://localhost:8787/api/payments/pay_NkT10001/refund',

engine/src/disagreement/unit-mismatch.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/unit-mismatch.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/witness-disagreement.test.ts

  • Executable scriptline 1
    Executable file

engine/src/disagreement/witness-disagreement.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/absence-of-a-removed-target.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/accepted-write-labels.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/accepted-write-routing.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 18
    * filter lives at the evidence boundary, so both callers inherit it.  */ const APP = 'https://app.example.test';
  • Network accessline 20
    const APP = 'https://app.example.test';
  • Network accessline 38
    expect(       acceptedWriteLabels(         [request('POST', 'https://analytics.other.test/collect', HTTP_ACCEPTED)],
  • Network accessline 39
    acceptedWriteLabels(         [request('POST', 'https://analytics.other.test/collect', HTTP_ACCEPTED)],         {
  • Network accessline 40
    [request('POST', 'https://analytics.other.test/collect', HTTP_ACCEPTED)],

engine/src/evidence/accepted-write.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/accepted-write.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/already-true.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/already-true.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/baseline.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 21
    return {     id: 's1',     url: 'http://localhost/',
  • Network accessline 22
    id: 's1',     url: 'http://localhost/',     elapsed: () => 0,
  • Network accessline 23
    url: 'http://localhost/',
  • Network accessline 125
    return {       id: 's1',       url: 'http://localhost/',
  • Network accessline 126
    id: 's1',       url: 'http://localhost/',       elapsed: () => 0,
  • Network accessline 127
    url: 'http://localhost/',

engine/src/evidence/baseline.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/blind-spots.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 303
    ],     };     const events = [netRequest('http://localhost:3000/api/save')];
  • Network accessline 304
    };     const events = [netRequest('http://localhost:3000/api/save')];     expect(failingClauseReadsLostChannel(pred, events)).toBe(false);
  • Network accessline 305
    const events = [netRequest('http://localhost:3000/api/save')];

engine/src/evidence/blind-spots.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/body-capture-remedy.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 64
    expect(message).toContain('redact.keys');     expect(message).toContain('Other credential fields may remain');     expect(message).toContain('https://docs.reticle.sh/what-is-recorded');
  • Network accessline 65
    expect(message).toContain('Other credential fields may remain');     expect(message).toContain('https://docs.reticle.sh/what-is-recorded');   });
  • Network accessline 66
    expect(message).toContain('https://docs.reticle.sh/what-is-recorded');

engine/src/evidence/body-capture-remedy.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 51
    '`authorization`, selected token keys, and known secret shapes. Other credential fields may ' +   'remain; add their names with `redact.keys` and use staging. See ' +   'https://docs.reticle.sh/what-is-recorded for the limits. Then re-run t
  • Network accessline 53
    'https://docs.reticle.sh/what-is-recorded for the limits. Then re-run the action.';

engine/src/evidence/body-clause-preflight.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/body-skip-remedy.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/compare-already-true.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/coverage-promise.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/false-green-caught.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/gap-ledger.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/gap-ledger.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/honesty-substantiation.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/honesty.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/honesty.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/instrumentation-gaps.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/instrumentation-gaps.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/learned-guards.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/learned-guards.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/observability.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/observability.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/outcome-unread-remedy.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/page-teardown.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 10
    * rules are meant to be liftable on their own. Anything they need has to come with them.  *  * Example: `pageTornDownWhileOn('http://localhost:3000/checkout')` gives
  • Network accessline 11
    *  * Example: `pageTornDownWhileOn('http://localhost:3000/checkout')` gives  * "the page was torn down while on http://localhost:3000/checkout".
  • Network accessline 12
    * Example: `pageTornDownWhileOn('http://localhost:3000/checkout')` gives
  • Network accessline 13
    * "the page was torn down while on http://localhost:3000/checkout".

engine/src/evidence/protocol-parity.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/source-mapping-opt-out.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/state-bookkeeping.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/state-bookkeeping.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/step-effect.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 59
    id: 'a1',       method: 'POST',       url: 'https://analytics.example/collect',
  • Network accessline 60
    method: 'POST',       url: 'https://analytics.example/collect',       status: 204,
  • Network accessline 61
    url: 'https://analytics.example/collect',
  • Network accessline 69
    { since: 0, until: 40 },       {         appOrigin: 'http://localhost:5173/',
  • Network accessline 70
    {         appOrigin: 'http://localhost:5173/',         background: [],
  • Network accessline 71
    appOrigin: 'http://localhost:5173/',
  • Network accessline 88
    ],       { since: 0, until: 40 },       { appOrigin: 'http://localhost:5173/', background: [] },
  • Network accessline 89
    { since: 0, until: 40 },       { appOrigin: 'http://localhost:5173/', background: [] },     );
  • Network accessline 90
    { appOrigin: 'http://localhost:5173/', background: [] },

engine/src/evidence/step-effect.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/superseded-checks.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/superseded-checks.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/uncaptured-bodies.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/uncaptured-bodies.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/undeclared-change.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/undeclared-change.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/undeclared-channel.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/undeclared-is-not-proved.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/uninstrumented-app.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/unread-outcome.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/unread-outcome.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/unsettled.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/unsettled.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/verdict-asks-for-intent.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/verdict-intent-gap.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/verified.absence.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/verified.declared.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/verified.pending.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/verified.skew.test.ts

  • Executable scriptline 1
    Executable file

engine/src/evidence/verified.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 240
    pass: false,       observationLost: true,       lastUrl: 'http://localhost:3000/orders/explode',
  • Network accessline 241
    observationLost: true,       lastUrl: 'http://localhost:3000/orders/explode',       honesty: clean(),
  • Network accessline 242
    lastUrl: 'http://localhost:3000/orders/explode',
  • Network accessline 245
    });     expect(v.because).toMatch(/torn down while on/);     expect(v.because).toContain('http://localhost:3000/orders/explode');
  • Network accessline 246
    expect(v.because).toMatch(/torn down while on/);     expect(v.because).toContain('http://localhost:3000/orders/explode');     expect(v.because).not.toMatch(/did not hold/);
  • Network accessline 247
    expect(v.because).toContain('http://localhost:3000/orders/explode');

engine/src/evidence/verified.ts

  • Executable scriptline 1
    Executable file

engine/src/exact-count.ts

  • Executable scriptline 1
    Executable file

engine/src/index.ts

  • Executable scriptline 1
    Executable file

engine/src/orphan-modules.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/declared.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/declared.ts

  • Executable scriptline 1
    Executable file

engine/src/question/document-navigation-is-not-resource-timing.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 12
    * would flip the honest "I cannot tell a missing request from an unobserved one" into a confident  * `assertion_failed`. That downgrade exists because an assert over `/favicon.ico` came back  * `verified: "no"` while curl showed it answerin
  • Network accessline 13
    * `assertion_failed`. That downgrade exists because an assert over `/favicon.ico` came back  * `verified: "no"` while curl showed it answering 200, and an agent that trusts a false red goes and  * "fixes" working code.
  • Network accessline 14
    * `verified: "no"` while curl showed it answering 200, and an agent that trusts a false red goes and

engine/src/question/lineage.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/lineage.ts

  • Executable scriptline 1
    Executable file

engine/src/question/match-value-structural.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/net-evidence-body.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-call-level-fields.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-composite-inconclusive.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-console-pre-attach.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-decided.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-document-scope.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 110
    const route: Predicate = { kind: 'route', pathname: '/login' };     const session = windowSession([call('doc-a')], 'doc-b', 'http://localhost/login');
  • Network accessline 111
    const session = windowSession([call('doc-a')], 'doc-b', 'http://localhost/login');

engine/src/question/predicate-element-alt.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-element-value.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-empty-combinator.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-eval.oracle.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-eval.settle-busy.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-eval.settle-retry.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-eval.settle-scope.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 33
    const APP = 'http://localhost:3000/';
  • Network accessline 52
    describe('evalSettled — a departure is not an outstanding request', () => {   it('settles over a navigation departure, which can never be matched', () => {     const departure = pending('nav-1', 'https://accounts.google.com/o/oauth2', {
  • Network accessline 53
    it('settles over a navigation departure, which can never be matched', () => {     const departure = pending('nav-1', 'https://accounts.google.com/o/oauth2', {       initiator: NetInitiator.NAVIGATION,
  • Network accessline 54
    const departure = pending('nav-1', 'https://accounts.google.com/o/oauth2', {
  • Network accessline 60
    it('names the departure it ignored rather than swallowing it', () => {     const departure = pending('nav-1', 'https://accounts.google.com/o/oauth2', {
  • Network accessline 61
    const departure = pending('nav-1', 'https://accounts.google.com/o/oauth2', {
  • Network accessline 63
    });     const r = evalSettled([departure], settled, LONG_AFTER);     expect(ignoredDeparturesOf(r)).toEqual(['https://accounts.google.com/o/oauth2']);
  • Network accessline 64
    const r = evalSettled([departure], settled, LONG_AFTER);     expect(ignoredDeparturesOf(r)).toEqual(['https://accounts.google.com/o/oauth2']);   });
  • Network accessline 65
    expect(ignoredDeparturesOf(r)).toEqual(['https://accounts.google.com/o/oauth2']);
  • Network accessline 70
    it('reports a departure AS a departure, never as foreign traffic', () => {     const departure = pending('nav-1', 'https://accounts.google.com/o/oauth2', {
  • Network accessline 71
    const departure = pending('nav-1', 'https://accounts.google.com/o/oauth2', {
  • Network accessline 78
    describe('evalSettled — somebody else’s traffic is not the app finishing its work', () => {   it('settles while only a third-party beacon is in flight', () => {     const beacon = pending('v1', 'https://vendor.example/beacon');
  • Network accessline 79
    it('settles while only a third-party beacon is in flight', () => {     const beacon = pending('v1', 'https://vendor.example/beacon');     expect(evalSettled([beacon], settled, LONG_AFTER, { appUrl: APP }).pass).toBe(true);
  • Network accessline 80
    const beacon = pending('v1', 'https://vendor.example/beacon');
  • Network accessline 81
    expect(evalSettled([beacon], settled, LONG_AFTER, { appUrl: APP }).pass).toBe(true);     expect(ignoredForeignOf(evalSettled([beacon], settled, LONG_AFTER, { appUrl: APP }))).toEqual([       'https://vendor.example/beacon',
  • Network accessline 82
    expect(ignoredForeignOf(evalSettled([beacon], settled, LONG_AFTER, { appUrl: APP }))).toEqual([       'https://vendor.example/beacon',     ]);
  • Network accessline 83
    'https://vendor.example/beacon',
  • Network accessline 95
    it('does not exclude anything when nobody said which page is under test', () => {     const beacon = pending('v1', 'https://vendor.example/beacon');
  • Network accessline 96
    const beacon = pending('v1', 'https://vendor.example/beacon');
  • Network accessline 132
    it('still blocks on the app’s OWN request, foreign traffic alongside it or not', () => {     const r = evalSettled(       [pending('v1', 'https://vendor.example/beacon'), pending('r1', `${APP}api/save`)],
  • Network accessline 133
    const r = evalSettled(       [pending('v1', 'https://vendor.example/beacon'), pending('r1', `${APP}api/save`)],       settled,
  • Network accessline 134
    [pending('v1', 'https://vendor.example/beacon'), pending('r1', `${APP}api/save`)],
  • Network accessline 169
    const beacon = ev(       EventType.NET_REQUEST,       { id: 'v1', method: 'POST', url: 'https://vendor.example/beacon', status: 200 },
  • Network accessline 170
    EventType.NET_REQUEST,       { id: 'v1', method: 'POST', url: 'https://vendor.example/beacon', status: 200 },       990,
  • Network accessline 171
    { id: 'v1', method: 'POST', url: 'https://vendor.example/beacon', status: 200 },

engine/src/question/predicate-hollow-liveregion.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-net-body.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-net-media.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-net-pre-attach.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-net-unobserved.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 12
    * Reported from the field (#447): after a hard reload of an app whose `index.html` declares all  * three, an `allOf` over `/favicon.ico`, `/site.webmanifest` and `/apple-touch-icon.png` returned  * `verified:"no"`, `verifiedReason:"assertio
  • Network accessline 13
    * three, an `allOf` over `/favicon.ico`, `/site.webmanifest` and `/apple-touch-icon.png` returned  * `verified:"no"`, `verifiedReason:"assertion_failed"`, while curl against the same server at the  * same moment answered 200 for every one o
  • Network accessline 14
    * `verified:"no"`, `verifiedReason:"assertion_failed"`, while curl against the same server at the
  • Network accessline 270
    id: 'nav-1',       method: 'GET',       url: 'https://app.test/api/export',
  • Network accessline 271
    method: 'GET',       url: 'https://app.test/api/export',       initiator: 'navigation',
  • Network accessline 272
    url: 'https://app.test/api/export',

engine/src/question/predicate-not-evidence.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-parse-example.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-replaced-document-response.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-route-current.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 32
    [],       { kind: 'route', pathname: '/login' },       'http://localhost:3000/login',
  • Network accessline 33
    { kind: 'route', pathname: '/login' },       'http://localhost:3000/login',     );
  • Network accessline 34
    'http://localhost:3000/login',
  • Network accessline 39
    it('says WHICH of the two decided it, so a redirect is not confused with a page already there', () => {     expect(       evalRoute([], { kind: 'route', pathname: '/login' }, 'http://localhost:3000/login'),
  • Network accessline 40
    expect(       evalRoute([], { kind: 'route', pathname: '/login' }, 'http://localhost:3000/login'),     ).toMatchObject({ evidence: { decidedBy: RouteDecidedBy.CURRENT } });
  • Network accessline 41
    evalRoute([], { kind: 'route', pathname: '/login' }, 'http://localhost:3000/login'),
  • Network accessline 51
    [],         { kind: 'route', contains: 'redirect=' },         'http://localhost:3000/login?redirect=/app',
  • Network accessline 52
    { kind: 'route', contains: 'redirect=' },         'http://localhost:3000/login?redirect=/app',       ).pass,
  • Network accessline 53
    'http://localhost:3000/login?redirect=/app',
  • Network accessline 60
    [],       { kind: 'route', pathname: '/app' },       'http://localhost:3000/login',
  • Network accessline 61
    { kind: 'route', pathname: '/app' },       'http://localhost:3000/login',     );
  • Network accessline 62
    'http://localhost:3000/login',

engine/src/question/predicate-route-hash.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 54
    [],       route({ pathname: '/posts/12/show' }),       'http://localhost:8000/#/posts/12/show',
  • Network accessline 55
    route({ pathname: '/posts/12/show' }),       'http://localhost:8000/#/posts/12/show',     );
  • Network accessline 56
    'http://localhost:8000/#/posts/12/show',

engine/src/question/predicate-route-identity-params.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 23
    sessionId: 's',     data: {       from: `http://localhost:4312/?${LEASE}`,
  • Network accessline 24
    data: {       from: `http://localhost:4312/?${LEASE}`,       to: `http://localhost:4312/compose?tab=draft&${LEASE}`,
  • Network accessline 25
    from: `http://localhost:4312/?${LEASE}`,
  • Network accessline 26
    to: `http://localhost:4312/compose?tab=draft&${LEASE}`,

engine/src/question/predicate-route-server-pending.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-route-unsettled.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 29
    type: EventType.ROUTE_CHANGE,     t,     data: { pathname: path, hash: '', url: `http://app.test${path}` },
  • Network accessline 30
    t,     data: { pathname: path, hash: '', url: `http://app.test${path}` },   }) as unknown as ReticleEvent;
  • Network accessline 31
    data: { pathname: path, hash: '', url: `http://app.test${path}` },
  • Network accessline 71
    const result = evalRoute([], { kind: 'route', pathname: '/list' }, 'http://app.test/list');

engine/src/question/predicate-shape.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-spelling.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-state-scoped.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-store-narrowing.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-strict.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-text-full.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-text-scope.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-truncated-state.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate-url-raw.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/body-key-fragment.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/name-near-miss.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/name-near-miss.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/nested-field-match.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 19
    type: EventType.NET_REQUEST,     t: 10,     data: { method: 'POST', url: 'https://app.test/api/jobs', status: 200, ok: true, ...data },
  • Network accessline 20
    t: 10,     data: { method: 'POST', url: 'https://app.test/api/jobs', status: 200, ok: true, ...data },   } as unknown as ReticleEvent;
  • Network accessline 21
    data: { method: 'POST', url: 'https://app.test/api/jobs', status: 200, ok: true, ...data },

engine/src/question/predicate/net-blind-spots.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 17
    * and "that class of call is not observed" are then indistinguishable, and the miss graded  * `assertion_failed` — a false RED. Reported from the field: an assert over `/favicon.ico`,  * `/site.webmanifest` and `/apple-touch-icon.png` retur
  • Network accessline 18
    * `assertion_failed` — a false RED. Reported from the field: an assert over `/favicon.ico`,  * `/site.webmanifest` and `/apple-touch-icon.png` returned `verified:"no"` while curl showed all  * three answering 200. A false negative here is w
  • Network accessline 19
    * `/site.webmanifest` and `/apple-touch-icon.png` returned `verified:"no"` while curl showed all

engine/src/question/predicate/net-evidence.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/net-media-before-window.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 25
    const MEDIA_ENTRY = {   method: 'GET',   url: 'https://cdn.example.com/watch/9f8e7d',
  • Network accessline 26
    method: 'GET',   url: 'https://cdn.example.com/watch/9f8e7d',   initiator: 'video',
  • Network accessline 27
    url: 'https://cdn.example.com/watch/9f8e7d',
  • Network accessline 70
    netEvent(5, {           method: 'GET',           url: 'https://cdn.example.com/episode/42',
  • Network accessline 71
    method: 'GET',           url: 'https://cdn.example.com/episode/42',           initiator: 'audio',
  • Network accessline 72
    url: 'https://cdn.example.com/episode/42',
  • Network accessline 83
    it('covers the record shape with no method stamped (older SDK)', () => {     const r = evalNet(       [netEvent(5, { url: 'https://cdn.example.com/watch/9f8e7d', initiator: 'video' })],
  • Network accessline 84
    const r = evalNet(       [netEvent(5, { url: 'https://cdn.example.com/watch/9f8e7d', initiator: 'video' })],       { kind: PredicateKind.NET, urlContains: 'watch/9f8e7d', status: 206, since: 10 },
  • Network accessline 85
    [netEvent(5, { url: 'https://cdn.example.com/watch/9f8e7d', initiator: 'video' })],
  • Network accessline 110
    netEvent(5, {           method: 'GET',           url: 'https://cdn.example.com/watch/9f8e7d',
  • Network accessline 111
    method: 'GET',           url: 'https://cdn.example.com/watch/9f8e7d',           initiator: 'fetch',
  • Network accessline 112
    url: 'https://cdn.example.com/watch/9f8e7d',           initiator: 'fetch',           status: 200,
  • Network accessline 128
    netEvent(5, {           method: 'GET',           url: 'https://cdn.example.com/watch/other',
  • Network accessline 129
    method: 'GET',           url: 'https://cdn.example.com/watch/other',           initiator: 'video',
  • Network accessline 130
    url: 'https://cdn.example.com/watch/other',

engine/src/question/predicate/net-unpatched-fetch.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 26
    describe('a net miss over a fetch that Reticle did not patch', () => {   it('is unknown, and says to connect Reticle earlier, when a marker matches the URL', () => {     const r = evalNet([unpatched(20, 'http://app.test/api/ping')], PING);
  • Network accessline 27
    it('is unknown, and says to connect Reticle earlier, when a marker matches the URL', () => {     const r = evalNet([unpatched(20, 'http://app.test/api/ping')], PING);     expect(r.pass).toBe(false);
  • Network accessline 28
    const r = evalNet([unpatched(20, 'http://app.test/api/ping')], PING);
  • Network accessline 34
    it('is unknown for a method clause too, which the marker cannot judge', () => {     const r = evalNet([unpatched(20, 'http://app.test/api/ping')], { ...PING, method: 'POST' });
  • Network accessline 35
    const r = evalNet([unpatched(20, 'http://app.test/api/ping')], { ...PING, method: 'POST' });
  • Network accessline 39
    it('is unknown for an exact count, since the marked call is not counted', () => {     const r = evalNet([unpatched(20, 'http://app.test/api/ping')], { ...PING, count: 0 });
  • Network accessline 40
    const r = evalNet([unpatched(20, 'http://app.test/api/ping')], { ...PING, count: 0 });
  • Network accessline 45
    it('stays a plain miss when the marker is for another URL or before the window', () => {     const other = evalNet([unpatched(20, 'http://app.test/api/other')], PING);
  • Network accessline 46
    const other = evalNet([unpatched(20, 'http://app.test/api/other')], PING);
  • Network accessline 47
    expect(other.inconclusive).toBeUndefined();     const before = evalNet([unpatched(5, 'http://app.test/api/ping')], PING);     expect(before.inconclusive).toBeUndefined();
  • Network accessline 48
    const before = evalNet([unpatched(5, 'http://app.test/api/ping')], PING);
  • Network accessline 56
    id: 'n1',           method: 'POST',           url: 'http://app.test/api/ping',
  • Network accessline 57
    method: 'POST',           url: 'http://app.test/api/ping',           status: 200,
  • Network accessline 58
    url: 'http://app.test/api/ping',
  • Network accessline 62
    initiator: 'fetch',         }),         unpatched(21, 'http://app.test/api/ping'),
  • Network accessline 63
    }),         unpatched(21, 'http://app.test/api/ping'),       ],
  • Network accessline 64
    unpatched(21, 'http://app.test/api/ping'),

engine/src/question/predicate/net-unrecorded-body.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/observed-in-window.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/observed-in-window.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/predicate-animation.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/predicate-animation.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/predicate-asks.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/predicate-compare.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 26
    data: {       method: 'POST',       url: 'https://pay.test/api/refund',
  • Network accessline 27
    method: 'POST',       url: 'https://pay.test/api/refund',       status: 200,
  • Network accessline 28
    url: 'https://pay.test/api/refund',

engine/src/question/predicate/predicate-compare.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/predicate-console.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/predicate-corrected-example.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/predicate-element.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/predicate-element.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/predicate-eval-kit.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/predicate-eval.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/predicate-parse.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/predicate-parse.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/predicate-precheck.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/predicate-precheck.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/predicate-request-body.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 21
    data: {       method: 'POST',       url: 'https://app.test/api/items',
  • Network accessline 22
    method: 'POST',       url: 'https://app.test/api/items',       status: 200,
  • Network accessline 23
    url: 'https://app.test/api/items',

engine/src/question/predicate/predicate-request-body.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/predicate-response-body.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 25
    data: {       method: 'GET',       url: 'https://app.test/api/jobs/7',
  • Network accessline 26
    method: 'GET',       url: 'https://app.test/api/jobs/7',       status: 200,
  • Network accessline 27
    url: 'https://app.test/api/jobs/7',

engine/src/question/predicate/predicate-route.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 310
    `completed — first: ${unanswered.method} ${unanswered.url}. A navigation the server has ` +         'not answered is indistinguishable from one the app declined, so this is not evidence ' +         'against the app. Check the server directl
  • Network accessline 311
    'not answered is indistinguishable from one the app declined, so this is not evidence ' +         'against the app. Check the server directly (curl the route) before looking at components';       return {
  • Network accessline 312
    'against the app. Check the server directly (curl the route) before looking at components';

engine/src/question/predicate/predicate-schema.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/predicate-session.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/predicate-state.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/predicate-to-links.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/predicate-to-links.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/predicate-truncated-body-matches.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 22
    data: {       method: 'GET',       url: 'https://app.test/api/big',
  • Network accessline 23
    method: 'GET',       url: 'https://app.test/api/big',       status: 200,
  • Network accessline 24
    url: 'https://app.test/api/big',

engine/src/question/predicate/predicate-truncated-body-old-sdk.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 18
    data: {       method: 'GET',       url: 'https://app.test/api/big',
  • Network accessline 19
    method: 'GET',       url: 'https://app.test/api/big',       status: 200,
  • Network accessline 20
    url: 'https://app.test/api/big',

engine/src/question/predicate/predicate.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 87
    // Driven live against the swallowed-500 fixture: asserting {status:200} on a call that     // returned 500 reported `observed: "POST http://…/api/generate-script"` — the very field
  • Network accessline 88
    // returned 500 reported `observed: "POST http://…/api/generate-script"` — the very field

engine/src/question/predicate/predicate.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/property-reaches-the-verdict.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/property.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/property.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/relative-property.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/split-text-miss.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/split-text-miss.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/testid-near-miss.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/testid-near-miss.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/text-query.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/predicate/truncated-body-advice.ts

  • Executable scriptline 1
    Executable file

engine/src/question/reaction.test.ts

  • Executable scriptline 1
    Executable file

engine/src/question/reaction.ts

  • Executable scriptline 1
    Executable file

engine/src/question/route-of-event.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 85
    describe('routeOfUrl — session URL fallback', () => {   it('matches the navigable pathname+hash currentPathOf uses on a hard-loaded tab', () => {     const parts = routeOfUrl('http://localhost:3000/login#/cart');
  • Network accessline 86
    it('matches the navigable pathname+hash currentPathOf uses on a hard-loaded tab', () => {     const parts = routeOfUrl('http://localhost:3000/login#/cart');     expect(parts?.docPath).toBe('/login');
  • Network accessline 87
    const parts = routeOfUrl('http://localhost:3000/login#/cart');
  • Network accessline 106
    it('drops a lease param nested in a redirect value and keeps the rest', () => {     const parts = routeOfUrl(       'http://localhost:3000/auth?redirect=%2F%3F__reticle_session%3Dlease-1%26tab%3Dx&lang=en',
  • Network accessline 107
    const parts = routeOfUrl(       'http://localhost:3000/auth?redirect=%2F%3F__reticle_session%3Dlease-1%26tab%3Dx&lang=en',     );
  • Network accessline 108
    'http://localhost:3000/auth?redirect=%2F%3F__reticle_session%3Dlease-1%26tab%3Dx&lang=en',
  • Network accessline 115
    it('leaves a value with no Reticle param exactly as written', () => {     const parts = routeOfUrl('http://localhost:3000/search?q=red%20shirt&next=%2Fa%3Fb%3D1');
  • Network accessline 116
    const parts = routeOfUrl('http://localhost:3000/search?q=red%20shirt&next=%2Fa%3Fb%3D1');

engine/src/question/text-satisfies.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 25
    return {     id: 's1',     url: 'http://localhost/compose',
  • Network accessline 26
    id: 's1',     url: 'http://localhost/compose',     elapsed: () => 0,
  • Network accessline 27
    url: 'http://localhost/compose',

engine/src/state-bookkeeping.ts

  • Executable scriptline 1
    Executable file

engine/src/the-rules-stand-alone.test.ts

  • Executable scriptline 1
    Executable file

engine/src/window/adversary.test.ts

  • Executable scriptline 1
    Executable file

engine/src/window/adversary.ts

  • Executable scriptline 1
    Executable file

engine/src/window/ambient.test.ts

  • Executable scriptline 1
    Executable file

engine/src/window/ambient.ts

  • Executable scriptline 1
    Executable file

engine/src/window/appearance-budget.test.ts

  • Executable scriptline 1
    Executable file

engine/src/window/appearance-budget.ts

  • Executable scriptline 1
    Executable file

engine/src/window/asset-noise.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 22
    it('folds successful dev-server asset GETs into a count, keeping everything else', () => {     const calls = [       asset('http://localhost:4312/src/main.tsx'),
  • Network accessline 23
    const calls = [       asset('http://localhost:4312/src/main.tsx'),       asset('http://localhost:4312/@vite/client'),
  • Network accessline 24
    asset('http://localhost:4312/src/main.tsx'),
  • Network accessline 25
    asset('http://localhost:4312/@vite/client'),
  • Network accessline 26
    asset('http://localhost:4312/node_modules/.vite/deps/react.js'),
  • Network accessline 27
    { method: 'POST', url: 'http://localhost:4312/api/todos', status: 201 },

engine/src/window/asset-noise.ts

  • Executable scriptline 1
    Executable file

engine/src/window/body-relevance.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 52
    for (const url of [         'http://localhost:4312/src/main.tsx',
  • Network accessline 53
    'http://localhost:4312/src/main.tsx',
  • Network accessline 54
    'http://localhost:4312/@vite/client',
  • Network accessline 55
    'http://localhost:4312/node_modules/.vite/deps/react.js',
  • Network accessline 56
    'http://localhost:4312/assets/index-a1b2.css',
  • Network accessline 57
    'http://localhost:4312/logo.svg',

engine/src/window/body-relevance.ts

  • Executable scriptline 1
    Executable file

engine/src/window/byte-size.ts

  • Executable scriptline 1
    Executable file

engine/src/window/engine-host.ts

  • Executable scriptline 1
    Executable file

engine/src/window/event-filters.test.ts

  • Executable scriptline 1
    Executable file

engine/src/window/event-filters.ts

  • Executable scriptline 1
    Executable file

engine/src/window/json-salvage.test.ts

  • Executable scriptline 1
    Executable file

engine/src/window/json-salvage.ts

  • Executable scriptline 1
    Executable file

engine/src/window/network-detail-merge.test.ts

  • Executable scriptline 1
    Executable file

engine/src/window/network-detail-merge.ts

  • Executable scriptline 1
    Executable file

engine/src/window/ring-buffer-armed-window.test.ts

  • Executable scriptline 1
    Executable file

engine/src/window/ring-buffer-window-loss.test.ts

  • Executable scriptline 1
    Executable file

engine/src/window/ring-buffer.test.ts

  • Executable scriptline 1
    Executable file

engine/src/window/ring-buffer.ts

  • Executable scriptline 1
    Executable file

engine/vitest.config.ts

  • Executable scriptline 1
    Executable file

eslint.config.mjs

  • Executable scriptline 1
    Executable file

init/LICENSE

  • Network accessline 2
    Apache License                            Version 2.0, January 2004                         http://www.apache.org/licenses/
  • Network accessline 4
    http://www.apache.org/licenses/
  • Network accessline 196
    http://www.apache.org/licenses/LICENSE-2.0

init/README.md

  • Network accessline 5
    Split out of [`@reticlehq/server`](https://www.npmjs.com/package/@reticlehq/server) because nothing in here observes a running app: it is a build-time codemod that runs once. Keeping it inside the daemon meant a typo in a generated snippet 

init/package.json

  • Executable scriptline 1
    Executable file
  • Network accessline 28
    "repository": {     "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",
  • Network accessline 29
    "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",     "directory": "init"
  • Network accessline 30
    "url": "git+https://github.com/reticlehq/reticle.git",
  • Network accessline 31
    "directory": "init"   },   "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 32
    },   "homepage": "https://github.com/reticlehq/reticle#readme",   "bugs": "https://github.com/reticlehq/reticle/issues",
  • Network accessline 33
    "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 34
    "bugs": "https://github.com/reticlehq/reticle/issues",

init/src/agent-contract-consent.test.ts

  • Executable scriptline 1
    Executable file

init/src/agent-rules-refresh.test.ts

  • Executable scriptline 1
    Executable file

init/src/angular.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 151
    void Promise.all([     import('@reticlehq/browser'),     fetch('${ANGULAR_TOKEN_PATH}')
  • Network accessline 152
    import('@reticlehq/browser'),     fetch('${ANGULAR_TOKEN_PATH}')       .then((res) => (res.ok ? res.text() : ''))
  • Network accessline 153
    fetch('${ANGULAR_TOKEN_PATH}')

init/src/capabilities-every-framework.test.ts

  • Executable scriptline 1
    Executable file

init/src/closing-is-an-instruction.test.ts

  • Executable scriptline 1
    Executable file

init/src/csp-inline-script.test.ts

  • Executable scriptline 1
    Executable file

init/src/csp-step.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 45
    const plan = buildPlan(       input({         nextConfigSource: `const csp = "default-src 'self'; connect-src 'self' https://api.example.com";`,
  • Network accessline 46
    input({         nextConfigSource: `const csp = "default-src 'self'; connect-src 'self' https://api.example.com";`,       }),
  • Network accessline 47
    nextConfigSource: `const csp = "default-src 'self'; connect-src 'self' https://api.example.com";`,
  • Network accessline 142
    detection: detection(Framework.VITE),         cspSources: {           'index.html': `<meta http-equiv="Content-Security-Policy" content="default-src 'self'; connect-src 'self' https://api.example.com">`,
  • Network accessline 143
    cspSources: {           'index.html': `<meta http-equiv="Content-Security-Policy" content="default-src 'self'; connect-src 'self' https://api.example.com">`,         },
  • Network accessline 144
    'index.html': `<meta http-equiv="Content-Security-Policy" content="default-src 'self'; connect-src 'self' https://api.example.com">`,
  • Network accessline 147
    );     expect(cspSteps(plan)[0]?.write?.content).toContain(       `connect-src 'self' https://api.example.com ws://localhost:4400 ws://127.0.0.1:4400"`,
  • Network accessline 148
    expect(cspSteps(plan)[0]?.write?.content).toContain(       `connect-src 'self' https://api.example.com ws://localhost:4400 ws://127.0.0.1:4400"`,     );
  • Network accessline 149
    `connect-src 'self' https://api.example.com ws://localhost:4400 ws://127.0.0.1:4400"`,

init/src/detect/capabilities.test.ts

  • Executable scriptline 1
    Executable file

init/src/detect/capabilities.ts

  • Executable scriptline 1
    Executable file

init/src/detect/declared/app-choice.test.ts

  • Executable scriptline 1
    Executable file

init/src/detect/declared/app-choice.ts

  • Executable scriptline 1
    Executable file

init/src/detect/declared/init-opt-out.test.ts

  • Executable scriptline 1
    Executable file

init/src/detect/declared/init-opt-out.ts

  • Executable scriptline 1
    Executable file

init/src/detect/detect.test.ts

  • Executable scriptline 1
    Executable file

init/src/detect/detect.ts

  • Executable scriptline 1
    Executable file

init/src/detect/dev-script.test.ts

  • Executable scriptline 1
    Executable file

init/src/detect/dev-script.ts

  • Executable scriptline 1
    Executable file

init/src/detect/dev-server-ports.test.ts

  • Executable scriptline 1
    Executable file

init/src/detect/dev-server-ports.ts

  • Executable scriptline 1
    Executable file

init/src/detect/existing-config.ts

  • Executable scriptline 1
    Executable file

init/src/detect/lockfiles.ts

  • Executable scriptline 1
    Executable file

init/src/detect/non-js-project.test.ts

  • Executable scriptline 1
    Executable file

init/src/detect/non-js-project.ts

  • Executable scriptline 1
    Executable file

init/src/detect/package-manager-field.test.ts

  • Executable scriptline 1
    Executable file

init/src/detect/platform.ts

  • Executable scriptline 1
    Executable file

init/src/detect/prettier-config.test.ts

  • Executable scriptline 1
    Executable file

init/src/detect/prettier-config.ts

  • Executable scriptline 1
    Executable file

init/src/detect/workspace-apps.test.ts

  • Executable scriptline 1
    Executable file

init/src/detect/workspace-apps.ts

  • Executable scriptline 1
    Executable file

init/src/detect/workspace-redirect-command.test.ts

  • Executable scriptline 1
    Executable file

init/src/detect/workspace-redirect.ts

  • Executable scriptline 1
    Executable file

init/src/dev-server-policy-single-source.test.ts

  • Executable scriptline 1
    Executable file

init/src/diagnose/closing-hint.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 31
    * they build. Only on success: on a failure, the ask above is the thing to do.  */ export const COMMUNITY_HINT = 'Tell us what you are building: https://discord.gg/BwAbzv9ZRz';
  • Network accessline 33
    export const COMMUNITY_HINT = 'Tell us what you are building: https://discord.gg/BwAbzv9ZRz';

init/src/diagnose/containerised-dev-server.test.ts

  • Executable scriptline 1
    Executable file

init/src/diagnose/containerised-dev-server.ts

  • Executable scriptline 1
    Executable file

init/src/diagnose/csp-check.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 54
    const source = `       const csp = production         ? "connect-src 'self' https://api.example.com"
  • Network accessline 55
    const csp = production         ? "connect-src 'self' https://api.example.com"         : "connect-src 'self' ws://localhost:4400 ws://127.0.0.1:4400";
  • Network accessline 56
    ? "connect-src 'self' https://api.example.com"
  • Network accessline 63
    it('flags a connect-src that excludes the bridge', () => {     const source = `value: "default-src 'self'; connect-src 'self' https://api.example.com"`;
  • Network accessline 64
    const source = `value: "default-src 'self'; connect-src 'self' https://api.example.com"`;
  • Network accessline 82
    const source = `connect-src 'self' http://localhost:4400`;

init/src/diagnose/csp-check.ts

  • Executable scriptline 1
    Executable file

init/src/diagnose/csp-doctor.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 95
    const findings = diagnoseObservedWebCsp(       {         url: 'http://localhost:3000/',
  • Network accessline 96
    {         url: 'http://localhost:3000/',         headers: [`script-src 'self' 'unsafe-inline'; connect-src 'self'`],
  • Network accessline 97
    url: 'http://localhost:3000/',
  • Network accessline 110
    const findings = diagnoseObservedWebCsp(       {         url: 'http://localhost:3000/',
  • Network accessline 111
    {         url: 'http://localhost:3000/',         headers: [],
  • Network accessline 112
    url: 'http://localhost:3000/',
  • Network accessline 123
    it('ignores policies inside repeated or unclosed HTML comments', () => {     const hidden = `<meta http-equiv='Content-Security-Policy' content='connect-src none'>`;     const document = (html: string) => ({ url: 'http://localhost:3000/', h
  • Network accessline 124
    const hidden = `<meta http-equiv='Content-Security-Policy' content='connect-src none'>`;     const document = (html: string) => ({ url: 'http://localhost:3000/', headers: [], html });     expect(diagnoseObservedWebCsp(document(`<!-- <!-- ${
  • Network accessline 125
    const document = (html: string) => ({ url: 'http://localhost:3000/', headers: [], html });

init/src/diagnose/csp-doctor.ts

  • Executable scriptline 1
    Executable file

init/src/diagnose/csp-step.test.ts

  • Executable scriptline 1
    Executable file

init/src/diagnose/csp-step.ts

  • Executable scriptline 1
    Executable file

init/src/diagnose/desktop-doctor.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 10
    const GOOD_CSP =   "default-src 'self' ipc: http://ipc.localhost; connect-src 'self' ipc: http://ipc.localhost ws://localhost:4400";
  • Network accessline 11
    "default-src 'self' ipc: http://ipc.localhost; connect-src 'self' ipc: http://ipc.localhost ws://localhost:4400";
  • Network accessline 45
    it('accepts a wildcard port allowance', () => {     const wild = "connect-src 'self' ipc: http://ipc.localhost ws://localhost:*";
  • Network accessline 46
    const wild = "connect-src 'self' ipc: http://ipc.localhost ws://localhost:*";

init/src/diagnose/desktop-doctor.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 94
    /** Tauri v2 needs `ipc:`/`http://ipc.localhost` in connect-src for `invoke` to work at all. */
  • Network accessline 120
    file: TAURI_CONF,       problem: 'the CSP dropped the `ipc:` source Tauri needs — `invoke` itself will fail',       fix: 'add to app.security.csp connect-src:  ipc: http://ipc.localhost',
  • Network accessline 121
    problem: 'the CSP dropped the `ipc:` source Tauri needs — `invoke` itself will fail',       fix: 'add to app.security.csp connect-src:  ipc: http://ipc.localhost',     });
  • Network accessline 122
    fix: 'add to app.security.csp connect-src:  ipc: http://ipc.localhost',

init/src/diagnose/init-failure.ts

  • Executable scriptline 1
    Executable file

init/src/diagnose/install-hint.test.ts

  • Executable scriptline 1
    Executable file

init/src/diagnose/install-hint.ts

  • Executable scriptline 1
    Executable file

init/src/diagnose/install-retries.test.ts

  • Executable scriptline 1
    Executable file

init/src/diagnose/install-retries.ts

  • Executable scriptline 1
    Executable file

init/src/diagnose/terminal-wrap.test.ts

  • Executable scriptline 1
    Executable file

init/src/diagnose/terminal-wrap.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 18
    const COMMAND = /^\s*(?:\$ |npx |npm |pnpm |yarn |bun |reticle |curl |cd |export |import )/;

init/src/directory-reach.test.ts

  • Executable scriptline 1
    Executable file

init/src/django-init.test.ts

  • Executable scriptline 1
    Executable file

init/src/electron-forge.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 35
    // https://vitejs.dev/config
  • Network accessline 67
    // https://www.electronjs.org/docs/latest/tutorial/process-model#preload-scripts

init/src/finds-the-app-folder.test.ts

  • Executable scriptline 1
    Executable file

init/src/frozen-port.test.ts

  • Executable scriptline 1
    Executable file

init/src/gather-plan-input.ts

  • Executable scriptline 1
    Executable file

init/src/host.ts

  • Executable scriptline 1
    Executable file

init/src/html-no-build.test.ts

  • Executable scriptline 1
    Executable file

init/src/index.ts

  • Executable scriptline 1
    Executable file

init/src/install-pins-running-version.test.ts

  • Executable scriptline 1
    Executable file

init/src/install-quarantine.test.ts

  • Executable scriptline 1
    Executable file

init/src/memory-io.test-helpers.ts

  • Executable scriptline 1
    Executable file

init/src/new-id-hand-written.test.ts

  • Executable scriptline 1
    Executable file

init/src/next-capabilities-notice.test.ts

  • Executable scriptline 1
    Executable file

init/src/next-daemon-url.test.ts

  • Executable scriptline 1
    Executable file

init/src/no-package-json.ts

  • Executable scriptline 1
    Executable file

init/src/node-io-output.test.ts

  • Executable scriptline 1
    Executable file

init/src/node-io.test.ts

  • Executable scriptline 1
    Executable file

init/src/node-io.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 79
    *  * Passing an args ARRAY together with `shell: true` is DEP0190, and on Windows — the only platform  * where this turns the shell on — every single `init` and `curl | sh` install printed this
  • Network accessline 80
    * Passing an args ARRAY together with `shell: true` is DEP0190, and on Windows — the only platform  * where this turns the shell on — every single `init` and `curl | sh` install printed this  * into the middle of its output:
  • Dangerous shell operationline 81
    * where this turns the shell on — every single `init` and `curl | sh` install printed this
  • Network accessline 81
    * where this turns the shell on — every single `init` and `curl | sh` install printed this
  • Dangerous shell operationline 195
    exec(command, args) {

init/src/non-localhost-guidance.test.ts

  • Executable scriptline 1
    Executable file

init/src/nuxt.test.ts

  • Executable scriptline 1
    Executable file

init/src/one-bridge-url.test.ts

  • Executable scriptline 1
    Executable file

init/src/orphan-modules.test.ts

  • Executable scriptline 1
    Executable file

init/src/patch/angular.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 164
    export default {   '${ANGULAR_TOKEN_PATH}': {     target: 'http://127.0.0.1:9',
  • Network accessline 165
    '${ANGULAR_TOKEN_PATH}': {     target: 'http://127.0.0.1:9',     bypass(req, res) {
  • Network accessline 166
    target: 'http://127.0.0.1:9',     bypass(req, res) {       const site = req.headers['sec-fetch-site'];
  • Network accessline 236
    void Promise.all([     import('${SENSOR}'),     fetch('${ANGULAR_TOKEN_PATH}')
  • Network accessline 237
    import('${SENSOR}'),     fetch('${ANGULAR_TOKEN_PATH}')       .then((res) => (res.ok ? res.text() : ''))
  • Network accessline 238
    fetch('${ANGULAR_TOKEN_PATH}')

init/src/patch/astro-host.test.ts

  • Executable scriptline 1
    Executable file

init/src/patch/astro-host.ts

  • Executable scriptline 1
    Executable file

init/src/patch/astro-patch.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 262
    *  *   uncaught: TypeError: Failed to fetch dynamically imported module:  *   http://localhost:4322/node_modules/.vite/deps/@reticlehq_react.js?v=4ada8de3
  • Network accessline 263
    *   uncaught: TypeError: Failed to fetch dynamically imported module:  *   http://localhost:4322/node_modules/.vite/deps/@reticlehq_react.js?v=4ada8de3  *
  • Network accessline 264
    *   http://localhost:4322/node_modules/.vite/deps/@reticlehq_react.js?v=4ada8de3

init/src/patch/astro-patch.ts

  • Executable scriptline 1
    Executable file

init/src/patch/brace-scan.ts

  • Executable scriptline 1
    Executable file

init/src/patch/cra.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 52
    it('appends to an existing file without disturbing it', () => {     const patched = craEnvPatch('REACT_APP_API=http://localhost:9000\n', 'tok-123');
  • Network accessline 53
    const patched = craEnvPatch('REACT_APP_API=http://localhost:9000\n', 'tok-123');
  • Network accessline 54
    expect(patched).toContain('REACT_APP_API=http://localhost:9000');

init/src/patch/cra.ts

  • Executable scriptline 1
    Executable file

init/src/patch/electron-patch.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 26
    mainWindow.loadURL('http://localhost:5173')
  • Network accessline 119
    const forge = SINGLE_WINDOW.replace(       "  mainWindow.loadURL('http://localhost:5173')",
  • Network accessline 120
    "  mainWindow.loadURL('http://localhost:5173')",

init/src/patch/electron-patch.ts

  • Executable scriptline 1
    Executable file

init/src/patch/electron-vite-patch.test.ts

  • Executable scriptline 1
    Executable file

init/src/patch/electron-vite-patch.ts

  • Executable scriptline 1
    Executable file

init/src/patch/format-generated.test.ts

  • Executable scriptline 1
    Executable file

init/src/patch/format-generated.ts

  • Executable scriptline 1
    Executable file

init/src/patch/generated-dev-module-typechecks.test.ts

  • Executable scriptline 1
    Executable file

init/src/patch/next-patch.test.ts

  • Executable scriptline 1
    Executable file

init/src/patch/next-patch.ts

  • Executable scriptline 1
    Executable file

init/src/patch/nuxt-patch.ts

  • Executable scriptline 1
    Executable file

init/src/patch/nuxt-snippets.ts

  • Executable scriptline 1
    Executable file

init/src/patch/patch-kind.ts

  • Executable scriptline 1
    Executable file

init/src/patch/prettier-ignore.test.ts

  • Executable scriptline 1
    Executable file

init/src/patch/prettier-ignore.ts

  • Executable scriptline 1
    Executable file

init/src/patch/python-snippets.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 13
    [Credential-related source omitted]

init/src/patch/remix.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 51
    • Recommended: move to Remix's Vite plugin (https://remix.run/docs/en/main/guides/vite), or on to

init/src/patch/snippets.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 40
    * generated files used to name did not exist in any project they were written into.  */ export const STATE_DOCS_URL = 'https://docs.reticle.sh/state-management';
  • Network accessline 42
    export const STATE_DOCS_URL = 'https://docs.reticle.sh/state-management';
  • Network accessline 44
    export const CDN_SDK_URL = `https://cdn.jsdelivr.net/npm/@reticlehq/browser@${RETICLE_VERSION}/+esm`;
  • Access to secretsline 289
    [Credential-related source omitted]

init/src/patch/static-page.ts

  • Executable scriptline 1
    Executable file

init/src/patch/tanstack-start.test.ts

  • Executable scriptline 1
    Executable file

init/src/patch/tanstack-start.ts

  • Executable scriptline 1
    Executable file

init/src/patch/vite-config.test.ts

  • Executable scriptline 1
    Executable file

init/src/patch/vite-config.ts

  • Executable scriptline 1
    Executable file

init/src/patch/vite-env-types.ts

  • Executable scriptline 1
    Executable file

init/src/patch/vite-owning-config.ts

  • Executable scriptline 1
    Executable file

init/src/patch/vite-owning-optimizer.test.ts

  • Executable scriptline 1
    Executable file

init/src/patch/vite-snippet-order.test.ts

  • Executable scriptline 1
    Executable file

init/src/plan/claude-never-vanishes.test.ts

  • Executable scriptline 1
    Executable file

init/src/plan/claude-plugin-no-duplicate.test.ts

  • Executable scriptline 1
    Executable file

init/src/plan/connect-steps.test.ts

  • Executable scriptline 1
    Executable file

init/src/plan/connect-steps.ts

  • Executable scriptline 1
    Executable file

init/src/plan/dev-module-is-loaded.test.ts

  • Executable scriptline 1
    Executable file

init/src/plan/framework-adapter.test.ts

  • Executable scriptline 1
    Executable file

init/src/plan/framework-adapter.ts

  • Executable scriptline 1
    Executable file

init/src/plan/install-is-idempotent.test.ts

  • Executable scriptline 1
    Executable file

init/src/plan/notices.ts

  • Executable scriptline 1
    Executable file

init/src/plan/plan-angular.ts

  • Executable scriptline 1
    Executable file

init/src/plan/plan-electron-vite.ts

  • Executable scriptline 1
    Executable file

init/src/plan/plan-framework.test.ts

  • Executable scriptline 1
    Executable file

init/src/plan/plan-framework.ts

  • Executable scriptline 1
    Executable file

init/src/plan/plan-types.ts

  • Executable scriptline 1
    Executable file

init/src/plan/plan-vite.ts

  • Executable scriptline 1
    Executable file

init/src/plan/plan.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 1325
    function createWindow() {   const mainWindow = new BrowserWindow({ width: 800 });   mainWindow.loadURL('http://localhost');
  • Network accessline 1326
    const mainWindow = new BrowserWindow({ width: 800 });   mainWindow.loadURL('http://localhost'); }
  • Network accessline 1327
    mainWindow.loadURL('http://localhost');

init/src/plan/plan.ts

  • Executable scriptline 1
    Executable file

init/src/plan/port-convergence.test.ts

  • Executable scriptline 1
    Executable file

init/src/plan/port-steps.ts

  • Executable scriptline 1
    Executable file

init/src/plan/preflight.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 115
    * The refusal names `--url` as the way past it, so `--url` has to actually get past it.  *  * Reported from the field: `init --app src/ui --url http://localhost:3100` with pnpm absent printed
  • Network accessline 116
    *  * Reported from the field: `init --app src/ui --url http://localhost:3100` with pnpm absent printed  * *"this project uses pnpm and pnpm is not installed... or pass --url with the address the app
  • Network accessline 117
    * Reported from the field: `init --app src/ui --url http://localhost:3100` with pnpm absent printed

init/src/plan/preflight.ts

  • Executable scriptline 1
    Executable file

init/src/plan/prettier-ignore-step.test.ts

  • Executable scriptline 1
    Executable file

init/src/plan/prompt-hook-step.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 60
    [Credential-related source omitted]

init/src/plan/stop-hook-step.test.ts

  • Executable scriptline 1
    Executable file

init/src/plan/stop-hook-step.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 179
    [Credential-related source omitted]

init/src/project/agent-rules.test.ts

  • Executable scriptline 1
    Executable file

init/src/project/agent-rules.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 232
    The docs are built to be fetched rather than browsed: \`https://docs.reticle.sh/llms.txt\` lists every page, and appending \`.md\` to any page URL returns its source with no site chrome.

init/src/project/install-source-config.ts

  • Executable scriptline 1
    Executable file

init/src/project/project-id.test.ts

  • Executable scriptline 1
    Executable file

init/src/project/project-id.ts

  • Executable scriptline 1
    Executable file

init/src/project/refresh-rules.test.ts

  • Executable scriptline 1
    Executable file

init/src/project/refresh-rules.ts

  • Executable scriptline 1
    Executable file

init/src/project/remember-project.test.ts

  • Executable scriptline 1
    Executable file

init/src/project/remember-project.ts

  • Executable scriptline 1
    Executable file

init/src/r3f-source-mapping.test.ts

  • Executable scriptline 1
    Executable file

init/src/react-kit-only-for-react.test.ts

  • Executable scriptline 1
    Executable file

init/src/react-router-framework-mode.test.ts

  • Executable scriptline 1
    Executable file

init/src/register/codex-cli-registration.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 31
    .join(', ')}]\n`; const OWN_BUILD = '[mcp_servers.reticle]\ncommand = "node"\nargs = ["/opt/local/reticle.js"]\n'; const URL_SHAPED = '[mcp_servers.reticle]\nurl = "https://example.test/mcp"\n';
  • Network accessline 32
    const OWN_BUILD = '[mcp_servers.reticle]\ncommand = "node"\nargs = ["/opt/local/reticle.js"]\n'; const URL_SHAPED = '[mcp_servers.reticle]\nurl = "https://example.test/mcp"\n'; const WRONG_PACKAGE = `[mcp_servers.reticle]\ncommand = "${NPX}
  • Network accessline 33
    const URL_SHAPED = '[mcp_servers.reticle]\nurl = "https://example.test/mcp"\n';
  • Network accessline 34
    const WRONG_PACKAGE = `[mcp_servers.reticle]\ncommand = "${NPX}"\nargs = ["@reticlehq/core", "mcp"]\n`; const INLINE_ROOT = 'mcp_servers = { reticle = { url = "https://example.test/mcp" } }\n'; const PROJECT_NAMED_RETICLE = '[projects."/hom
  • Network accessline 35
    const INLINE_ROOT = 'mcp_servers = { reticle = { url = "https://example.test/mcp" } }\n';
  • Network accessline 65
    '[mcp_servers.reticle.env]\nTOKEN = "x"\n',       '[mcp_servers]\nreticle = { command = "node" }\n',       'mcp_servers.reticle = { url = "https://example.test/mcp" }\n',
  • Network accessline 67
    'mcp_servers.reticle = { url = "https://example.test/mcp" }\n',
  • Network accessline 69
    'mcp_servers = { reticle.command = "node", reticle.args = ["/opt/local/server.js"] }\n',       'mcp_servers = { other = { command = "foo" }, "reticle".url = "https://example.test/mcp" }\n',
  • Network accessline 70
    'mcp_servers = { other = { command = "foo" }, "reticle".url = "https://example.test/mcp" }\n',

init/src/register/codex-toml.test.ts

  • Executable scriptline 1
    Executable file

init/src/register/codex-toml.ts

  • Executable scriptline 1
    Executable file

init/src/register/detect-clients.test.ts

  • Executable scriptline 1
    Executable file

init/src/register/detect-clients.ts

  • Executable scriptline 1
    Executable file

init/src/register/mcp-clients.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 304
    const existing = JSON.stringify({       $schema: 'https://opencode.ai/config.json',
  • Network accessline 305
    $schema: 'https://opencode.ai/config.json',
  • Network accessline 309
    expect(merged.status).toBe(ClientMergeStatus.APPLY);     const parsed = JSON.parse(merged.content) as Record<string, unknown>;     expect(parsed['$schema']).toBe('https://opencode.ai/config.json');
  • Network accessline 310
    const parsed = JSON.parse(merged.content) as Record<string, unknown>;     expect(parsed['$schema']).toBe('https://opencode.ai/config.json');     expect(parsed['plugin']).toEqual(['opencode-supermemory@latest']);
  • Network accessline 311
    expect(parsed['$schema']).toBe('https://opencode.ai/config.json');

init/src/register/mcp-clients.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 100
    serversKey: 'mcpServers',   entry: commandArgsEntry,   docs: 'https://docs.claude.com/en/docs/claude-code/mcp: project scope, .mcp.json at the project root',
  • Network accessline 101
    entry: commandArgsEntry,   docs: 'https://docs.claude.com/en/docs/claude-code/mcp: project scope, .mcp.json at the project root', };
  • Network accessline 102
    docs: 'https://docs.claude.com/en/docs/claude-code/mcp: project scope, .mcp.json at the project root',
  • Network accessline 122
    serversKey: 'mcpServers',     entry: commandArgsEntry,     docs: 'https://docs.cursor.com — global ~/.cursor/mcp.json, or ./.cursor/mcp.json per project',
  • Network accessline 123
    entry: commandArgsEntry,     docs: 'https://docs.cursor.com — global ~/.cursor/mcp.json, or ./.cursor/mcp.json per project',   },
  • Network accessline 124
    docs: 'https://docs.cursor.com — global ~/.cursor/mcp.json, or ./.cursor/mcp.json per project',
  • Network accessline 142
    serversKey: 'mcpServers',     entry: commandArgsEntry,     docs: 'https://google-gemini.github.io/gemini-cli/docs/tools/mcp-server.html',
  • Network accessline 143
    entry: commandArgsEntry,     docs: 'https://google-gemini.github.io/gemini-cli/docs/tools/mcp-server.html',   },
  • Network accessline 144
    docs: 'https://google-gemini.github.io/gemini-cli/docs/tools/mcp-server.html',
  • Network accessline 176
    serversKey: 'mcp',     entry: openCodeEntry,     docs: 'https://opencode.ai/docs/config — `mcp` key, type:"local", command is an array',
  • Network accessline 177
    entry: openCodeEntry,     docs: 'https://opencode.ai/docs/config — `mcp` key, type:"local", command is an array',   },
  • Network accessline 178
    docs: 'https://opencode.ai/docs/config — `mcp` key, type:"local", command is an array',
  • Network accessline 202
    serversKey: 'mcpServers',     entry: commandArgsEntry,     docs: 'https://antigravity.google/docs/mcp — ~/.gemini/config/mcp_config.json, `mcpServers` key',
  • Network accessline 203
    entry: commandArgsEntry,     docs: 'https://antigravity.google/docs/mcp — ~/.gemini/config/mcp_config.json, `mcpServers` key',   },
  • Network accessline 204
    docs: 'https://antigravity.google/docs/mcp — ~/.gemini/config/mcp_config.json, `mcpServers` key',
  • Network accessline 212
    serversKey: 'mcp_servers',     entry: commandArgsEntry,     docs: 'https://developers.openai.com/codex/mcp — ~/.codex/config.toml, [mcp_servers.<name>]',
  • Network accessline 213
    entry: commandArgsEntry,     docs: 'https://developers.openai.com/codex/mcp — ~/.codex/config.toml, [mcp_servers.<name>]',   },
  • Network accessline 214
    docs: 'https://developers.openai.com/codex/mcp — ~/.codex/config.toml, [mcp_servers.<name>]',

init/src/register/mcp-registered.test.ts

  • Executable scriptline 1
    Executable file

init/src/register/mcp-registered.ts

  • Executable scriptline 1
    Executable file

init/src/register/mcp.test.ts

  • Executable scriptline 1
    Executable file

init/src/register/mcp.ts

  • Executable scriptline 1
    Executable file

init/src/register/prompt-hooks.test.ts

  • Executable scriptline 1
    Executable file

init/src/register/prompt-hooks.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 229
    projectMarkers: ['.claude'],     homeMarkers: ['.claude'],     docs: 'https://code.claude.com/docs/en/hooks',
  • Network accessline 230
    homeMarkers: ['.claude'],     docs: 'https://code.claude.com/docs/en/hooks',   },
  • Network accessline 231
    docs: 'https://code.claude.com/docs/en/hooks',
  • Network accessline 246
    projectMarkers: ['.cursor'],     homeMarkers: ['.cursor'],     docs: 'https://cursor.com/docs/agent/hooks',
  • Network accessline 247
    homeMarkers: ['.cursor'],     docs: 'https://cursor.com/docs/agent/hooks',   },
  • Network accessline 248
    docs: 'https://cursor.com/docs/agent/hooks',
  • Network accessline 260
    projectMarkers: ['.codex'],     homeMarkers: ['.codex'],     docs: 'https://learn.chatgpt.com/docs/hooks',
  • Network accessline 262
    docs: 'https://learn.chatgpt.com/docs/hooks',
  • Network accessline 284
    homeMarkers: ['.gemini/settings.json'],     docs: 'https://geminicli.com/docs/hooks/reference/',
  • Network accessline 285
    docs: 'https://geminicli.com/docs/hooks/reference/',
  • Network accessline 299
    projectMarkers: ['.windsurf', '.devin'],     homeMarkers: ['.codeium/windsurf'],     docs: 'https://docs.devin.ai/desktop/cascade/hooks.md',
  • Network accessline 300
    homeMarkers: ['.codeium/windsurf'],     docs: 'https://docs.devin.ai/desktop/cascade/hooks.md',   },
  • Network accessline 301
    docs: 'https://docs.devin.ai/desktop/cascade/hooks.md',
  • Network accessline 326
    projectMarkers: ['.github/hooks', '.vscode'],     homeMarkers: ['.copilot', '.vscode'],     docs: 'https://code.visualstudio.com/docs/copilot/customization/hooks and https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-hoo
  • Network accessline 327
    homeMarkers: ['.copilot', '.vscode'],     docs: 'https://code.visualstudio.com/docs/copilot/customization/hooks and https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-hooks-reference',   },
  • Network accessline 328
    docs: 'https://code.visualstudio.com/docs/copilot/customization/hooks and https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-hooks-reference',
  • Network accessline 340
    projectMarkers: ['.factory'],     homeMarkers: ['.factory'],     docs: 'https://docs.factory.com/reference/hooks-reference.md',
  • Network accessline 341
    homeMarkers: ['.factory'],     docs: 'https://docs.factory.com/reference/hooks-reference.md',   },
  • Network accessline 342
    docs: 'https://docs.factory.com/reference/hooks-reference.md',

init/src/register/slash-command.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 74
    \`@reticlehq/react\` or \`@reticlehq/browser\` and a \`connect()\` call, or the Reticle plugin in    \`vite.config.*\`, or \`withReticle\` in \`next.config.*\`. **If it is not there, that is the bug.**    Wire it in — see the framework snip
  • Network accessline 75
    \`vite.config.*\`, or \`withReticle\` in \`next.config.*\`. **If it is not there, that is the bug.**    Wire it in — see the framework snippets at https://docs.reticle.sh/instrumentation — then restart    the dev server and re-check.
  • Network accessline 76
    Wire it in — see the framework snippets at https://docs.reticle.sh/instrumentation — then restart
  • Network accessline 134
    what gets fixed. Bugs in the app under test are Reticle working; those go in your answer to the user. - **If the verification actually succeeded**, add one line for the human: Reticle is open source at   https://github.com/reticlehq/reticle
  • Network accessline 135
    - **If the verification actually succeeded**, add one line for the human: Reticle is open source at   https://github.com/reticlehq/reticle, and a star helps other people find it. One line, once. Skip it   entirely if the run did not produce
  • Network accessline 136
    https://github.com/reticlehq/reticle, and a star helps other people find it. One line, once. Skip it

init/src/register/windows-quote.test.ts

  • Executable scriptline 1
    Executable file

init/src/register/windows-quote.ts

  • Executable scriptline 1
    Executable file

init/src/remember-project-preserves.test.ts

  • Executable scriptline 1
    Executable file

init/src/remix.test.ts

  • Executable scriptline 1
    Executable file

init/src/restart-hint.test.ts

  • Executable scriptline 1
    Executable file

init/src/rules-carry-the-unfinished-job.test.ts

  • Executable scriptline 1
    Executable file

init/src/rules-do-not-stop.test.ts

  • Executable scriptline 1
    Executable file

init/src/rules-name-the-escape-hatches.test.ts

  • Executable scriptline 1
    Executable file

init/src/run-types.ts

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 91
    exec(command: string, args: readonly string[]): boolean;

init/src/run.test.ts

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 1363
    exec(command: string, args: readonly string[]) {
  • Network accessline 1523
    *  * The flag was parsed by the CLI for as long as it has existed and then dropped between the parser  * and `runInit`, so `init --app src/ui --url http://localhost:3100` on a machine without pnpm was
  • Network accessline 1524
    * The flag was parsed by the CLI for as long as it has existed and then dropped between the parser  * and `runInit`, so `init --app src/ui --url http://localhost:3100` on a machine without pnpm was  * refused BY A MESSAGE NAMING `--url` as 
  • Network accessline 1525
    * and `runInit`, so `init --app src/ui --url http://localhost:3100` on a machine without pnpm was
  • Network accessline 1558
    it('does not refuse when the app is already served', () => {     const io = memoryIo(PNPM_APP, noTooling);     runInit({ ...OPTS, dryRun: true, url: 'http://localhost:3100' }, io);
  • Network accessline 1559
    const io = memoryIo(PNPM_APP, noTooling);     runInit({ ...OPTS, dryRun: true, url: 'http://localhost:3100' }, io);     expect(
  • Network accessline 1560
    runInit({ ...OPTS, dryRun: true, url: 'http://localhost:3100' }, io);

init/src/run.ts

  • Executable scriptline 1
    Executable file

init/src/sdk-packages.ts

  • Executable scriptline 1
    Executable file

init/src/skill-copies-agree.test.ts

  • Executable scriptline 1
    Executable file

init/src/snippet-token.test.ts

  • Executable scriptline 1
    Executable file

init/src/snippets-compile.test.ts

  • Executable scriptline 1
    Executable file

init/src/static-page.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 40
    [Credential-related source omitted]
  • Network accessline 62
    const pasted = PAGE.replace(       '</body>',       '<script type="module">import { reticle } from \'https://cdn.jsdelivr.net/npm/@reticlehq/browser@3/+esm\'; reticle.connect();</script></body>',
  • Network accessline 63
    '</body>',       '<script type="module">import { reticle } from \'https://cdn.jsdelivr.net/npm/@reticlehq/browser@3/+esm\'; reticle.connect();</script></body>',     );
  • Network accessline 64
    '<script type="module">import { reticle } from \'https://cdn.jsdelivr.net/npm/@reticlehq/browser@3/+esm\'; reticle.connect();</script></body>',
  • Network accessline 145
    it('still writes the page when the user serves it with --url', () => {     const io = memoryIo({ 'index.html': PAGE });     runInit({ ...SERVED, url: 'http://localhost:8000/' }, io);
  • Network accessline 146
    const io = memoryIo({ 'index.html': PAGE });     runInit({ ...SERVED, url: 'http://localhost:8000/' }, io);     expect(io.written['index.html']).toContain(STATIC_SNIPPET_MARKER);
  • Network accessline 147
    runInit({ ...SERVED, url: 'http://localhost:8000/' }, io);
  • Network accessline 248
    'package.json': JSON.stringify({ name: 'plain', scripts: { dev: 'node server.mjs' } }),     });     const result = runInit({ ...OPTS, url: 'http://localhost:5500' }, io);
  • Network accessline 249
    });     const result = runInit({ ...OPTS, url: 'http://localhost:5500' }, io);     expect(result.ok).toBe(true);
  • Network accessline 250
    const result = runInit({ ...OPTS, url: 'http://localhost:5500' }, io);
  • Network accessline 257
    const policy =       `<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline' ` +       `https://cdn.jsdelivr.net; connect-src 'self'">`;
  • Network accessline 258
    `<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline' ` +       `https://cdn.jsdelivr.net; connect-src 'self'">`;     const io = memoryIo({ ...files, 'index.html': PAGE.replace('</head>', `${policy}</head>`)
  • Network accessline 259
    `https://cdn.jsdelivr.net; connect-src 'self'">`;

init/src/streamlit-snippet.test.ts

  • Executable scriptline 1
    Executable file

init/src/suggestion-is-not-registration.test.ts

  • Executable scriptline 1
    Executable file

init/src/unverified-note.test.ts

  • Executable scriptline 1
    Executable file

init/src/version.ts

  • Executable scriptline 1
    Executable file

init/src/webgl-canvas-limit.test.ts

  • Executable scriptline 1
    Executable file

init/src/webpack4-cra.test.ts

  • Executable scriptline 1
    Executable file

init/src/workspace-onboarding.test.ts

  • Executable scriptline 1
    Executable file

init/vitest.config.ts

  • Executable scriptline 1
    Executable file

install/README.md

  • Dangerous shell operationline 6
    curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh | sh
  • Network accessline 6
    curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh | sh
  • Network accessline 7
    irm https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.ps1 | iex
  • Dangerous shell operationline 13
    curl -fsSL https://reticle.sh/install.sh | sh     # macOS, Linux, and Windows under Git Bash or WSL
  • Network accessline 13
    curl -fsSL https://reticle.sh/install.sh | sh     # macOS, Linux, and Windows under Git Bash or WSL
  • Network accessline 14
    irm https://reticle.sh/install.ps1 | iex          # stock Windows PowerShell
  • Dangerous shell operationline 19
    Both are LAUNCHERS. They do only what cannot wait for Node, because Node may not exist yet: check for a usable `node`, install the CLI (into a user folder when the global npm folder needs sudo or administrator rights), record a failure befo
  • Dangerous shell operationline 37
    - **`main "$@"` / `Main @args` is the LAST line.** A `curl | sh` cut off mid-download otherwise runs whatever prefix arrived. This way a truncated file defines functions and runs none of them.
  • Network accessline 37
    - **`main "$@"` / `Main @args` is the LAST line.** A `curl | sh` cut off mid-download otherwise runs whatever prefix arrived. This way a truncated file defines functions and runs none of them.
  • Dangerous shell operationline 38
    - **ASCII only.** `install.sh` once put a multibyte ellipsis against a variable name and `dash` swallowed the expansion whole, printing two broken bytes instead of the package name — bash was fine with it, which is exactly how a `curl | sh`
  • Network accessline 38
    - **ASCII only.** `install.sh` once put a multibyte ellipsis against a variable name and `dash` swallowed the expansion whole, printing two broken bytes instead of the package name — bash was fine with it, which is exactly how a `curl | sh`
  • Dangerous shell operationline 47
    **Serve from a release tag, never from `main`.** `curl | sh` runs whatever is at the URL the instant somebody types it; a half-merged `main` is a broken install for everybody who arrives during the merge. Point the route at `refs/tags/vX.Y.
  • Network accessline 47
    **Serve from a release tag, never from `main`.** `curl | sh` runs whatever is at the URL the instant somebody types it; a half-merged `main` is a broken install for everybody who arrives during the merge. Point the route at `refs/tags/vX.Y.
  • Network accessline 57
    **Redirects are fine, but keep `-L`.** The documented command already uses `curl -fsSL`, so a 302 to a tagged raw file works. `-f` is the important flag in that set: without it, curl pipes a 404 page into `sh`.
  • Network accessline 64
    curl -fsSI https://reticle.sh/install.sh          # 200, text/plain, the cache header you meant
  • Dangerous shell operationline 65
    curl -fsSL https://reticle.sh/install.sh | sh -n  # it parses as the shell that will run it
  • Network accessline 65
    curl -fsSL https://reticle.sh/install.sh | sh -n  # it parses as the shell that will run it

install/install.ps1

  • Network accessline 1
    # Reticle, in one line, on a stock Windows box: # #   irm https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.ps1 | iex
  • Executable scriptline 1
    Executable file
  • Network accessline 2
    # #   irm https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.ps1 | iex #
  • Network accessline 3
    #   irm https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.ps1 | iex
  • Network accessline 115
    '',       '  winget  winget install OpenJS.NodeJS.LTS',       '  any     https://nodejs.org/en/download',
  • Network accessline 116
    '  winget  winget install OpenJS.NodeJS.LTS',       '  any     https://nodejs.org/en/download',       '',
  • Network accessline 117
    '  any     https://nodejs.org/en/download',
  • Network accessline 173
    }   if ($text -match 'ECONNREFUSED|ENOTFOUND|ETIMEDOUT|EAI_AGAIN|ECONNRESET|ENETUNREACH') {     return 'npm could not reach its registry. Behind a proxy: npm config set proxy http://host:port and npm config set https-proxy http://host:port.
  • Network accessline 174
    if ($text -match 'ECONNREFUSED|ENOTFOUND|ETIMEDOUT|EAI_AGAIN|ECONNRESET|ENETUNREACH') {     return 'npm could not reach its registry. Behind a proxy: npm config set proxy http://host:port and npm config set https-proxy http://host:port. On 
  • Network accessline 175
    return 'npm could not reach its registry. Behind a proxy: npm config set proxy http://host:port and npm config set https-proxy http://host:port. On a network that blocks npm, use your company''s mirror: npm config set registry <url>. Then r
  • Network accessline 227
    $AgentPromptUrl = if ($env:RETICLE_AGENT_PROMPT_URL) { $env:RETICLE_AGENT_PROMPT_URL } else { 'https://reticle.sh/install/agent-prompt.v1.json' }

install/install.sh

  • Executable scriptline 1
    #!/bin/sh
  • Network accessline 2
    # Reticle, in one line: # #   curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh | sh
  • Network accessline 3
    # #   curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh | sh #
  • Dangerous shell operationline 4
    #   curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh | sh
  • Network accessline 4
    #   curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh | sh
  • Network accessline 25
    # which is also the thing that knows. # # `main "$@"` is the LAST line on purpose: a `curl | sh` cut off mid-download otherwise runs whatever
  • Network accessline 26
    # # `main "$@"` is the LAST line on purpose: a `curl | sh` cut off mid-download otherwise runs whatever # prefix arrived. This way a truncated file defines functions and runs none of them.
  • Dangerous shell operationline 27
    # `main "$@"` is the LAST line on purpose: a `curl | sh` cut off mid-download otherwise runs whatever
  • Network accessline 27
    # `main "$@"` is the LAST line on purpose: a `curl | sh` cut off mid-download otherwise runs whatever
  • Network accessline 105
    macOS   brew install node   Linux   https://nodejs.org/en/download/package-manager
  • Network accessline 106
    Linux   https://nodejs.org/en/download/package-manager
  • Network accessline 107
    any     https://github.com/nvm-sh/nvm
  • Dangerous shell operationline 130
    # `npm install -g`, with a counter: npm draws no progress under `curl | sh`, so a cold cache is a
  • Network accessline 130
    # `npm install -g`, with a counter: npm draws no progress under `curl | sh`, so a cold cache is a
  • Network accessline 152
    printf '%s' "Something between this machine and npm re-signs HTTPS (a company proxy). Point Node at its certificate: export NODE_EXTRA_CA_CERTS=/path/to/company-ca.pem (or npm config set cafile /path/to/company-ca.pem), then run the same co
  • Network accessline 153
    elif grep -qE 'ECONNREFUSED|ENOTFOUND|ETIMEDOUT|EAI_AGAIN|ECONNRESET|ENETUNREACH' "$log"; then     printf '%s' "npm could not reach its registry ($(npm config get registry 2>/dev/null)). Behind a proxy: npm config set proxy http://host:port
  • Network accessline 154
    printf '%s' "npm could not reach its registry ($(npm config get registry 2>/dev/null)). Behind a proxy: npm config set proxy http://host:port and npm config set https-proxy http://host:port. On a network that blocks npm, use your company's 
  • Network accessline 165
    # Braced, and ASCII next to a variable: `dash` swallowed a multibyte ellipsis written straight   # after a variable name, and bash did not, which is how a `curl | sh` bug reaches users.
  • Dangerous shell operationline 166
    # after a variable name, and bash did not, which is how a `curl | sh` bug reaches users.
  • Network accessline 166
    # after a variable name, and bash did not, which is how a `curl | sh` bug reaches users.
  • Dangerous shell operationline 170
    # install; a folder of our own needs no sudo and nothing else on the machine changes.
  • Dangerous shell operationline 172
    rm -f "$log"
  • Dangerous shell operationline 174
    say "  npm's global folder needs sudo here; installing into $user_prefix instead"
  • Dangerous shell operationline 187
    rm -f "$log"
  • Network accessline 229
    AGENT_PROMPT_URL="${RETICLE_AGENT_PROMPT_URL:-https://reticle.sh/install/agent-prompt.v1.json}"
  • Network accessline 260
    fetch_prompt() {   outbound_off && return 1   if command -v curl >/dev/null 2>&1; then
  • Network accessline 261
    outbound_off && return 1   if command -v curl >/dev/null 2>&1; then     body="$(curl -fsSL --max-time 3 --max-filesize 65536 "$AGENT_PROMPT_URL" 2>/dev/null)" || return 1
  • Network accessline 262
    if command -v curl >/dev/null 2>&1; then
  • Network accessline 263
    body="$(curl -fsSL --max-time 3 --max-filesize 65536 "$AGENT_PROMPT_URL" 2>/dev/null)" || return 1
  • Network accessline 264
    elif command -v wget >/dev/null 2>&1; then
  • Network accessline 265
    body="$(wget -q -T 3 -t 1 -O - "$AGENT_PROMPT_URL" 2>/dev/null | head -c 65536)" || return 1
  • Dangerous shell operationline 384
    rm -f "$out"
  • Dangerous shell operationline 405
    rm -f "$out"

knip.jsonc

  • Network accessline 1
    {   "$schema": "https://unpkg.com/knip@5/schema.json",
  • Network accessline 2
    "$schema": "https://unpkg.com/knip@5/schema.json",

llms.txt

  • Network accessline 52
    Anything the running app does is something an agent can check. Full page, with one runnable call per domain: https://docs.reticle.sh/use-cases
  • Network accessline 53
    domain: https://docs.reticle.sh/use-cases
  • Network accessline 124
    The one authoritative list is https://docs.reticle.sh/frameworks. In short: React + Vite, Next.js,
  • Network accessline 165
    `/reload-plugins`). For other agents the skills CLI works:    `npx skills add reticlehq/reticle --skill reticle`. The installer    (`curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh | sh`,
  • Network accessline 166
    `npx skills add reticlehq/reticle --skill reticle`. The installer    (`curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh | sh`,    or `irm https://raw.githubusercontent.com/reticlehq/reticle/main/install
  • Dangerous shell operationline 167
    (`curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh | sh`,
  • Network accessline 167
    (`curl -fsSL https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.sh | sh`,
  • Network accessline 168
    or `irm https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.ps1 | iex` on
  • Access to secretsline 276
    [Credential-related source omitted]
  • Network accessline 280
    verdict was produced) with nothing from your app. Turn them off with `reticle telemetry disable`,   `RETICLE_TELEMETRY=0` or `DO_NOT_TRACK=1`; the complete list of what is sent is   [docs/telemetry.md](https://github.com/reticlehq/reticle/b
  • Network accessline 281
    `RETICLE_TELEMETRY=0` or `DO_NOT_TRACK=1`; the complete list of what is sent is   [docs/telemetry.md](https://github.com/reticlehq/reticle/blob/main/docs/telemetry.md). So "no   telemetry" is not accurate; "no app data leaves the machine un
  • Network accessline 282
    [docs/telemetry.md](https://github.com/reticlehq/reticle/blob/main/docs/telemetry.md). So "no
  • Network accessline 294
    agents it finds, and pre-approves Reticle's own tools where an agent has a per-server approval rule   (Claude Code, for one). Nothing is written outside agent configs and `~/.reticle`. The manual install   (https://docs.reticle.sh/install-m
  • Network accessline 295
    (Claude Code, for one). Nothing is written outside agent configs and `~/.reticle`. The manual install   (https://docs.reticle.sh/install-manual) does each step by hand. - **Artifacts are yours**, on your disk (`.reticle/runs`, `.reticle/flo
  • Network accessline 296
    (https://docs.reticle.sh/install-manual) does each step by hand.
  • Network accessline 317
    - **Marketing site / product:** https://reticle.sh - **GitHub (source):** https://github.com/reticlehq/reticle - **Bugs & feature requests:** https://github.com/reticlehq/reticle/issues
  • Network accessline 318
    - **GitHub (source):** https://github.com/reticlehq/reticle - **Bugs & feature requests:** https://github.com/reticlehq/reticle/issues - **npm (CLI + MCP server):** https://www.npmjs.com/package/@reticlehq/server
  • Network accessline 319
    - **Bugs & feature requests:** https://github.com/reticlehq/reticle/issues
  • Network accessline 320
    - **npm (CLI + MCP server):** https://www.npmjs.com/package/@reticlehq/server
  • Network accessline 321
    - **Skill file (paste this URL to your agent):** https://raw.githubusercontent.com/reticlehq/reticle/main/SKILL.md
  • Network accessline 322
    - **Docs site (start here):** https://docs.reticle.sh — a page per tool, per CLI command, per
  • Network accessline 323
    package, with every command captured from a real run.   - Quickstart: https://docs.reticle.sh/quickstart · Every tool: https://docs.reticle.sh/tools/overview     · Every command: https://docs.reticle.sh/cli · Troubleshooting: https://docs.r
  • Network accessline 324
    - Quickstart: https://docs.reticle.sh/quickstart · Every tool: https://docs.reticle.sh/tools/overview
  • Network accessline 325
    · Every command: https://docs.reticle.sh/cli · Troubleshooting: https://docs.reticle.sh/troubleshooting     · Desktop apps: https://docs.reticle.sh/desktop - **Reading as an agent — fetch:** https://docs.reticle.sh/llms.txt lists every page
  • Network accessline 326
    · Desktop apps: https://docs.reticle.sh/desktop - **Reading as an agent — fetch:** https://docs.reticle.sh/llms.txt lists every page, and appending   `.md` to any page URL returns its source with no site chrome — so you pull the one page yo
  • Network accessline 327
    - **Reading as an agent — fetch:** https://docs.reticle.sh/llms.txt lists every page, and appending
  • Network accessline 328
    `.md` to any page URL returns its source with no site chrome — so you pull the one page you need   instead of a whole document. Details: https://docs.reticle.sh/for-agents - **Reading as an agent — connect:** https://docs.reticle.sh/mcp is 
  • Network accessline 329
    instead of a whole document. Details: https://docs.reticle.sh/for-agents
  • Network accessline 330
    - **Reading as an agent — connect:** https://docs.reticle.sh/mcp is an MCP server over the same docs,   with `search_reticle` to search and `query_docs_filesystem_reticle` to read. Add it like any MCP   server if you would rather search tha
  • Network accessline 331
    with `search_reticle` to search and `query_docs_filesystem_reticle` to read. Add it like any MCP   server if you would rather search than fetch. - **Docs in the repo (markdown source):** https://github.com/reticlehq/reticle/tree/main/docs
  • Network accessline 332
    server if you would rather search than fetch. - **Docs in the repo (markdown source):** https://github.com/reticlehq/reticle/tree/main/docs   - Getting started: https://github.com/reticlehq/reticle/blob/main/docs/getting-started.md
  • Network accessline 333
    - **Docs in the repo (markdown source):** https://github.com/reticlehq/reticle/tree/main/docs
  • Network accessline 334
    - Getting started: https://github.com/reticlehq/reticle/blob/main/docs/getting-started.md
  • Network accessline 335
    - Integration (Lovable / Emergent / Bolt): https://github.com/reticlehq/reticle/blob/main/docs/platform-integration.md
  • Network accessline 336
    - Enterprise: https://github.com/reticlehq/reticle/blob/main/docs/enterprise.md
  • Network accessline 337
    - Token efficiency: https://github.com/reticlehq/reticle/blob/main/docs/token-efficiency.md
  • Network accessline 338
    - Usage & flows: https://github.com/reticlehq/reticle/blob/main/docs/usage.md
  • Network accessline 339
    - **Benchmarks:** https://github.com/reticlehq/reticle/blob/main/bench/SCORECARD.md
  • Network accessline 340
    - **Changelog:** https://github.com/reticlehq/reticle/blob/main/CHANGELOG.md
  • Network accessline 341
    - **License:** https://github.com/reticlehq/reticle/blob/main/LICENSE
  • Network accessline 342
    - **Community — ask a question, claim work, see the roadmap:** https://discord.gg/BwAbzv9ZRz
  • Network accessline 343
    - **X / Twitter:** https://x.com/reticle_hq
  • Network accessline 344
    - **LinkedIn:** https://www.linkedin.com/company/reticlehq
  • Network accessline 359
    `reticle telemetry disable` turns them off for good. - **Can it do security / accessibility / performance / SEO checks?** Yes, for the behaviour inside your   own running app — see "What people use Reticle for" above and https://docs.reticl
  • Network accessline 360
    - **Can it do security / accessibility / performance / SEO checks?** Yes, for the behaviour inside your   own running app — see "What people use Reticle for" above and https://docs.reticle.sh/use-cases. It   complements a vulnerability scan
  • Network accessline 361
    own running app — see "What people use Reticle for" above and https://docs.reticle.sh/use-cases. It

open-verification/CHANGELOG.md

  • Network accessline 3
    Notable changes to the **`open-verification`** package and to the **Open Verification Protocol** it publishes. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
  • Network accessline 41
    - **Thirty JSON Schemas published to `dist/schema/*.json`**, at `$id` base `https://open-verification.dev/schema/v1`, generated from `src/` at build time rather than authored. The `v1` there is the PROTOCOL major, not the package major. An 

open-verification/LICENSE

  • Network accessline 2
    Apache License                            Version 2.0, January 2004                         http://www.apache.org/licenses/
  • Network accessline 4
    http://www.apache.org/licenses/
  • Network accessline 196
    http://www.apache.org/licenses/LICENSE-2.0

open-verification/VERSIONING.md

  • Network accessline 18
    Package `1.0.0` carries protocol `1.0`, wire `1` and flow grammar `2`. The schema `$id` base is `https://open-verification.dev/schema/v1`, and the `v1` there is the PROTOCOL major.

open-verification/package.json

  • Executable scriptline 1
    Executable file
  • Network accessline 11
    "reticle"   ],   "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 12
    ],   "homepage": "https://github.com/reticlehq/reticle#readme",   "bugs": "https://github.com/reticlehq/reticle/issues",
  • Network accessline 13
    "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 14
    "bugs": "https://github.com/reticlehq/reticle/issues",
  • Network accessline 15
    "repository": {     "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",
  • Network accessline 16
    "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",     "directory": "open-verification"
  • Network accessline 17
    "url": "git+https://github.com/reticlehq/reticle.git",

open-verification/scripts/gen-schema.d.mts

  • Executable scriptline 1
    Executable file

open-verification/scripts/gen-schema.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 38
    const BASE = 'https://open-verification.dev/schema/v1';

open-verification/src/adjudication-vectors.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/docs-name-what-exists.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/every-rule-is-proved.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/index.ts

  • Executable scriptline 1
    Executable file

open-verification/src/language/composite-stitch.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/language/composite-typecheck.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/language/composition.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/language/criteria.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/language/criteria.ts

  • Executable scriptline 1
    Executable file

open-verification/src/language/flow-document.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/language/phases.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/language/phases.ts

  • Executable scriptline 1
    Executable file

open-verification/src/language/step-address.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/language/typecheck.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/language/typecheck.ts

  • Executable scriptline 1
    Executable file

open-verification/src/orphan-modules.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/reference/service-realm.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/reference/service-realm.ts

  • Executable scriptline 1
    Executable file

open-verification/src/refinements-reach-the-contract.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/registry.ts

  • Executable scriptline 1
    Executable file

open-verification/src/requirement-ids.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/rules-are-exercised.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 59
    surface: Surface.WEB,   instance: 'doc_1',   locator: 'https://host/checkout',
  • Network accessline 60
    instance: 'doc_1',   locator: 'https://host/checkout',   ...over,
  • Network accessline 61
    locator: 'https://host/checkout',
  • Network accessline 413
    at: 1,     summary: 'net.request',     value: { url: 'https://host/api/login' },
  • Network accessline 414
    summary: 'net.request',     value: { url: 'https://host/api/login' },   };
  • Network accessline 415
    value: { url: 'https://host/api/login' },

open-verification/src/schema-covers-vocabulary.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/spec-names-the-vocabulary.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/spi/adjudicator.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/spi/adjudicator.ts

  • Executable scriptline 1
    Executable file

open-verification/src/spi/realm-satisfies.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/spi/realm.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/spi/realm.ts

  • Executable scriptline 1
    Executable file

open-verification/src/spi/witness.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/spi/witness.ts

  • Executable scriptline 1
    Executable file

open-verification/src/vocabulary/channel.ts

  • Executable scriptline 1
    Executable file

open-verification/src/vocabulary/determinism.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/vocabulary/determinism.ts

  • Executable scriptline 1
    Executable file

open-verification/src/vocabulary/evidence.ts

  • Executable scriptline 1
    Executable file

open-verification/src/vocabulary/fixture.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/vocabulary/fixture.ts

  • Executable scriptline 1
    Executable file

open-verification/src/vocabulary/intent.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/vocabulary/intent.ts

  • Executable scriptline 1
    Executable file

open-verification/src/vocabulary/memory.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/vocabulary/memory.ts

  • Executable scriptline 1
    Executable file

open-verification/src/vocabulary/mutation.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/vocabulary/mutation.ts

  • Executable scriptline 1
    Executable file

open-verification/src/vocabulary/predicate.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 25
    const login = (n: number): Observation => at(n, { url: 'https://host/api/login', status: 200 });
  • Network accessline 27
    describe('evaluating the predicate forms the specification names itself', () => {   it('counts the matching observations and nothing else', () => {     const observations = [login(1), login(2), at(3, { url: 'https://host/api/other' })];
  • Network accessline 28
    it('counts the matching observations and nothing else', () => {     const observations = [login(1), login(2), at(3, { url: 'https://host/api/other' })];     const twice = {
  • Network accessline 29
    const observations = [login(1), login(2), at(3, { url: 'https://host/api/other' })];

open-verification/src/vocabulary/predicate.ts

  • Executable scriptline 1
    Executable file

open-verification/src/vocabulary/realm-surface.ts

  • Executable scriptline 1
    Executable file

open-verification/src/vocabulary/run-witnesses.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/vocabulary/run.ts

  • Executable scriptline 1
    Executable file

open-verification/src/vocabulary/subject.test.ts

  • Executable scriptline 1
    Executable file

open-verification/src/vocabulary/subject.ts

  • Executable scriptline 1
    Executable file

open-verification/src/vocabulary/verdict.ts

  • Executable scriptline 1
    Executable file

open-verification/vitest.config.ts

  • Executable scriptline 1
    Executable file

package.json

  • Executable scriptline 1
    Executable file

plugins/reticle/.claude-plugin/plugin.json

  • Network accessline 6
    "author": {     "name": "Reticle contributors",     "url": "https://github.com/reticlehq"
  • Network accessline 7
    "name": "Reticle contributors",     "url": "https://github.com/reticlehq"   },
  • Network accessline 8
    "url": "https://github.com/reticlehq"
  • Network accessline 9
    },   "homepage": "https://www.reticle.sh",   "repository": "https://github.com/reticlehq/reticle",
  • Network accessline 10
    "homepage": "https://www.reticle.sh",
  • Network accessline 11
    "repository": "https://github.com/reticlehq/reticle",

plugins/reticle/SKILL.md

  • Network accessline 5
    metadata:   version: 3.9.0   homepage: https://www.reticle.sh
  • Network accessline 6
    version: 3.9.0   homepage: https://www.reticle.sh   repository: https://github.com/reticlehq/reticle
  • Network accessline 7
    homepage: https://www.reticle.sh
  • Network accessline 8
    repository: https://github.com/reticlehq/reticle
  • Instruction override signalline 55
    **Done means a verdict.** `init` exiting 0, the tools appearing, a session listed: each proves wiring, not that anything works. Do not tell the user Reticle is set up until one real flow in their app returned a verdict.
  • Network accessline 59
    > Reticle is free and open source. If this check helped, a star on GitHub helps other developers find it: https://github.com/reticlehq/reticle
  • Network accessline 61
    > Tell the maintainers what you build: Discord https://discord.gg/BwAbzv9ZRz, a call https://calendar.app.google/h9NRDbBBQetyTzWM6, or `npx @reticlehq/server feedback --contact you@example.com "..."`.
  • Network accessline 140
    When the user asked for setup, everything else (running `init`, starting the dev server, opening the browser) is a setup step, not a decision. When `init` cannot finish alone, read `docs/skill-setup.md`, which ships beside this file (`https
  • Network accessline 188
    Fetch one page, not this file again. Every page is plain markdown at `https://docs.reticle.sh/<page>.md`; `https://docs.reticle.sh/llms.txt` lists them all. Do not fetch `llms-full.txt`: it is the whole site.

plugins/reticle/hooks/init-nudge.mjs

  • Executable scriptline 1
    Executable file

plugins/reticle/icon.svg

  • Network accessline 1
    <svg width="96" height="94" viewBox="0 0 96 94" fill="none" xmlns="http://www.w3.org/2000/svg">

pnpm-lock.yaml

  • Network accessline 3279
    boolean@3.2.0:     resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==}     deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for mo
  • Network accessline 3281
    deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
  • Network accessline 3941
    resolution: {integrity: sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==}     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}     deprecated: This version is no longer supported. Please see ht
  • Network accessline 3942
    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}     deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.     hasBin: true
  • Network accessline 3943
    deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.

pre-commit.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Access to secretsline 37
    [Credential-related source omitted]
  • Access to secretsline 39
    [Credential-related source omitted]

prepare-commit-msg.sh

  • Executable scriptline 1
    #!/usr/bin/env bash

scripts/alias-dist.mjs

  • Executable scriptline 1
    Executable file

scripts/assemble-changelog.mjs

  • Executable scriptline 1
    Executable file

scripts/check-boundaries.d.mts

  • Executable scriptline 1
    Executable file

scripts/check-boundaries.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

scripts/check-docs-site.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 13
    *  * Usage:  *   node scripts/check-docs-site.mjs [--base https://docs.reticle.sh]
  • Network accessline 14
    * Usage:  *   node scripts/check-docs-site.mjs [--base https://docs.reticle.sh]  */
  • Network accessline 15
    *   node scripts/check-docs-site.mjs [--base https://docs.reticle.sh]
  • Network accessline 21
    const BASE_URL = process.argv.includes('--base')   ? process.argv[process.argv.indexOf('--base') + 1]   : 'https://docs.reticle.sh';
  • Network accessline 23
    : 'https://docs.reticle.sh';
  • Network accessline 82
    const url = `${BASE_URL}/${page}`;   try {     const res = await fetch(url, { method: 'HEAD', redirect: 'follow' });
  • Network accessline 83
    try {     const res = await fetch(url, { method: 'HEAD', redirect: 'follow' });     checked++;
  • Network accessline 84
    const res = await fetch(url, { method: 'HEAD', redirect: 'follow' });
  • Network accessline 129
    let body = '';   try {     const res = await fetch(url, { redirect: 'follow' });
  • Network accessline 130
    try {     const res = await fetch(url, { redirect: 'follow' });     if (!res.ok) {
  • Network accessline 131
    const res = await fetch(url, { redirect: 'follow' });

scripts/check-js-audit.mjs

  • Executable scriptline 1
    Executable file

scripts/check-lossy-transforms.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

scripts/check-pack-size.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

scripts/check-pending-release.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

scripts/check-unbumped-packages.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

scripts/ci-run.mjs

  • Executable scriptline 1
    Executable file

scripts/ci/changes.mjs

  • Executable scriptline 1
    Executable file

scripts/ci/flaky-expiry.mjs

  • Executable scriptline 1
    Executable file

scripts/directory-reach.d.mts

  • Executable scriptline 1
    Executable file

scripts/directory-reach.mjs

  • Executable scriptline 1
    Executable file

scripts/guard-tests.d.mts

  • Executable scriptline 1
    Executable file

scripts/guard-tests.mjs

  • Executable scriptline 1
    Executable file

scripts/issue-license.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Access to secretsline 50
    [Credential-related source omitted]

scripts/local-registry.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 7
    # # Then, in your app: #   echo '@reticlehq:registry=http://127.0.0.1:4873/' >> .npmrc
  • Network accessline 8
    # Then, in your app: #   echo '@reticlehq:registry=http://127.0.0.1:4873/' >> .npmrc #   npm i -D @reticlehq/browser @reticlehq/react @reticlehq/next
  • Network accessline 9
    #   echo '@reticlehq:registry=http://127.0.0.1:4873/' >> .npmrc
  • Network accessline 12
    set -euo pipefail PORT=4873 REG="http://127.0.0.1:${PORT}"
  • Network accessline 13
    PORT=4873 REG="http://127.0.0.1:${PORT}" ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
  • Network accessline 14
    REG="http://127.0.0.1:${PORT}"
  • Network accessline 17
    echo "==> Starting a FRESH Verdaccio on ${REG} (reset so user/token + versions are clean)"
  • Dangerous shell operationline 29
    rm -rf "${ROOT}/scripts/.local-registry"
  • Network accessline 30
    sleep 1 pnpm --dir "${ROOT}/apps/e2e" exec verdaccio --config "${ROOT}/scripts/verdaccio.yaml" >/tmp/reticle-verdaccio.log 2>&1 & for _ in $(seq 1 30); do curl -s "${REG}/-/ping" >/dev/null 2>&1 && break; sleep 1; done
  • Network accessline 31
    pnpm --dir "${ROOT}/apps/e2e" exec verdaccio --config "${ROOT}/scripts/verdaccio.yaml" >/tmp/reticle-verdaccio.log 2>&1 & for _ in $(seq 1 30); do curl -s "${REG}/-/ping" >/dev/null 2>&1 && break; sleep 1; done curl -s "${REG}/-/ping" >/dev
  • Network accessline 32
    for _ in $(seq 1 30); do curl -s "${REG}/-/ping" >/dev/null 2>&1 && break; sleep 1; done
  • Network accessline 33
    curl -s "${REG}/-/ping" >/dev/null 2>&1 || { echo "Verdaccio did not start; see /tmp/reticle-verdaccio.log"; exit 1; }
  • Network accessline 38
    USER_JSON=$(curl -s -XPUT "${REG}/-/user/org.couchdb.user:reticle" \
  • Network accessline 44
    echo "==> Publishing every publishable workspace package to ${REG}"
  • Network accessline 47
    trap cleanup EXIT printf '\n//127.0.0.1:%s/:_authToken=%s\n' "${PORT}" "${TOKEN}" >> "${HOME}/.npmrc" ( cd "${ROOT}" && pnpm -r publish --registry "${REG}" --no-git-checks )
  • Network accessline 49
    ( cd "${ROOT}" && pnpm -r publish --registry "${REG}" --no-git-checks )
  • Network accessline 61
    # six are in the workspace (`pnpm -r list` shows them), share the publishConfig of the ones that # succeeded, and have no local .npmrc. Probing it by hand is harder than it looks: the user-creation # curl above returns an EMPTY token when t
  • Network accessline 62
    # succeeded, and have no local .npmrc. Probing it by hand is harder than it looks: the user-creation # curl above returns an EMPTY token when the account already exists, so a hand-run `pnpm publish` # fails ENEEDAUTH for a reason that has n
  • Network accessline 63
    # curl above returns an EMPTY token when the account already exists, so a hand-run `pnpm publish # fails ENEEDAUTH for a reason that has nothing to do with the package under test. Two diagnoses were
  • Network accessline 94
    } process.stdout.write(missing.join("\n")); ' "${REG}")
  • Network accessline 96
    ' "${REG}")
  • Network accessline 98
    if [ -n "${MISSING}" ]; then   echo ""   echo "✗ PUBLISH INCOMPLETE. These are missing from ${REG}:"
  • Network accessline 99
    echo ""   echo "✗ PUBLISH INCOMPLETE. These are missing from ${REG}:"   echo "${MISSING}" | sed 's/^/    /'
  • Network accessline 100
    echo "✗ PUBLISH INCOMPLETE. These are missing from ${REG}:"
  • Network accessline 109
    echo "" echo "✅ Published @reticlehq/* to ${REG}"
  • Network accessline 110
    echo "✅ Published @reticlehq/* to ${REG}"
  • Network accessline 111
    echo "" echo "In your external app:" echo "  echo '@reticlehq:registry=${REG}' >> .npmrc"
  • Network accessline 112
    echo "In your external app:" echo "  echo '@reticlehq:registry=${REG}' >> .npmrc" echo "  npm i -D @reticlehq/browser @reticlehq/react @reticlehq/next   # + @reticlehq/babel-plugin for non-Next"
  • Network accessline 113
    echo "  echo '@reticlehq:registry=${REG}' >> .npmrc"
  • Network accessline 115
    echo "  npx --registry ${REG} @reticlehq/server              # run the bridge + MCP server"

scripts/orphan-scan.d.mts

  • Executable scriptline 1
    Executable file

scripts/orphan-scan.mjs

  • Executable scriptline 1
    Executable file

scripts/pack-docs.mjs

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 4
    * Was four shell commands in the package's prepack — `cp ../../SKILL.md .`, `rm -rf docs`,
  • Dangerous shell operationline 5
    * `cp -R ../../docs .`, `rm -rf docs/images docs/logo docs/favicon docs/matrix`. None of `cp`,
  • Dangerous shell operationline 6
    * `cp -R` or `rm -rf` exists on Windows, so the publish could only ever be cut from a POSIX
  • Network accessline 60
    const REPO_URL = 'https://github.com/reticlehq/reticle/blob/main/';

scripts/pack-install-gate.mjs

  • Executable scriptline 1
    Executable file

scripts/prepare-dist.mjs

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 4
    * The test half used to be `find dist -name "*.test.*" -delete`, in the prepack of all eight
  • Dangerous shell operationline 66
    // `--clean` is the other half of a prepack: `rm -rf dist` before `tsc -b --force`, so a stale file

scripts/safe-to-group.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

scripts/set-version.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

scripts/stamp-issuer-key.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Dangerous shell operationline 4
    * `prepack`, which is the ONLY safe place for it: prepack does `rm -rf dist && tsc -b --force`, so a
  • Access to secretsline 81
    [Credential-related source omitted]

scripts/sync-skill.d.mts

  • Executable scriptline 1
    Executable file

scripts/sync-skill.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 34
    name: 'reticle-docs',     description: DESCRIPTION,     homepage: 'https://docs.reticle.sh',
  • Network accessline 35
    description: DESCRIPTION,     homepage: 'https://docs.reticle.sh',     source: 'skill_file',
  • Network accessline 36
    homepage: 'https://docs.reticle.sh',
  • Network accessline 42
    name: 'reticle',     description: DESCRIPTION,     homepage: 'https://www.reticle.sh',
  • Network accessline 43
    description: DESCRIPTION,     homepage: 'https://www.reticle.sh',     source: 'plugin',
  • Network accessline 44
    homepage: 'https://www.reticle.sh',
  • Network accessline 52
    name: 'reticle',     description: DESCRIPTION,     homepage: 'https://www.reticle.sh',
  • Network accessline 53
    description: DESCRIPTION,     homepage: 'https://www.reticle.sh',     source: 'npx_skill',
  • Network accessline 54
    homepage: 'https://www.reticle.sh',
  • Network accessline 60
    name: 'install-and-verify',     description: ALIAS_DESCRIPTION,     homepage: 'https://www.reticle.sh',
  • Network accessline 61
    description: ALIAS_DESCRIPTION,     homepage: 'https://www.reticle.sh',     source: 'npx_skill',
  • Network accessline 62
    homepage: 'https://www.reticle.sh',
  • Network accessline 81
    `  version: ${version}`,       `  homepage: ${copy.homepage}`,       '  repository: https://github.com/reticlehq/reticle',
  • Network accessline 82
    `  homepage: ${copy.homepage}`,       '  repository: https://github.com/reticlehq/reticle',       ...(copy.internal ? ['  internal: true'] : []),
  • Network accessline 83
    '  repository: https://github.com/reticlehq/reticle',

scripts/test-suffixes.mjs

  • Executable scriptline 1
    Executable file

scripts/verdaccio.yaml

  • Network accessline 9
    uplinks:   npmjs:     url: https://registry.npmjs.org/
  • Network accessline 10
    npmjs:     url: https://registry.npmjs.org/ packages:
  • Network accessline 11
    url: https://registry.npmjs.org/

server.json

  • Network accessline 1
    {   "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  • Network accessline 2
    "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  • Network accessline 5
    "description": "Verify a running web app from the inside over MCP: look, act, observe, assert. No screenshots.",   "version": "3.9.0",   "websiteUrl": "https://www.reticle.sh",
  • Network accessline 6
    "version": "3.9.0",   "websiteUrl": "https://www.reticle.sh",   "repository": {
  • Network accessline 7
    "websiteUrl": "https://www.reticle.sh",
  • Network accessline 8
    "repository": {     "url": "https://github.com/reticlehq/reticle",     "source": "github",
  • Network accessline 9
    "url": "https://github.com/reticlehq/reticle",

server/.env.example

  • Network accessline 21
    # Attach to a Chrome you started with --remote-debugging-port instead of launching one, # e.g. http://127.0.0.1:9222.
  • Network accessline 22
    # e.g. http://127.0.0.1:9222.

server/LICENSE

  • Network accessline 2
    Apache License                            Version 2.0, January 2004                         http://www.apache.org/licenses/
  • Network accessline 4
    http://www.apache.org/licenses/
  • Network accessline 196
    http://www.apache.org/licenses/LICENSE-2.0

server/README.md

  • Network accessline 3
    The [Reticle](https://github.com/reticlehq/reticle) bridge + MCP server. It hosts a localhost WebSocket endpoint your app's `@reticlehq/browser` SDK connects to, and exposes MCP tools your coding agent uses to look at, act on, observe, and 
  • Network accessline 26
    See the [main README](https://github.com/reticlehq/reticle).

server/bin/launch.js

  • Executable scriptline 1
    Executable file

server/bin/package.json

  • Executable scriptline 1
    Executable file

server/bin/reticle.js

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 10
    var NODE_VERSION_ENV = 'RETICLE_TEST_NODE_VERSION'; var NODE_DOWNLOAD_URL = 'https://nodejs.org';
  • Network accessline 11
    var NODE_DOWNLOAD_URL = 'https://nodejs.org';

server/package.json

  • Executable scriptline 1
    Executable file
  • Network accessline 54
    "repository": {     "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",
  • Network accessline 55
    "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",     "directory": "server"
  • Network accessline 56
    "url": "git+https://github.com/reticlehq/reticle.git",
  • Network accessline 57
    "directory": "server"   },   "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 58
    },   "homepage": "https://github.com/reticlehq/reticle#readme",   "bugs": "https://github.com/reticlehq/reticle/issues",
  • Network accessline 59
    "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 60
    "bugs": "https://github.com/reticlehq/reticle/issues",

server/src/agent-presence.e2e.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 81
    const host = '127.0.0.1';     this.#ws = new WebSocket(`ws://${host}:${String(port)}${RETICLE_WS_PATH}`, {       origin: 'http://localhost',
  • Network accessline 82
    this.#ws = new WebSocket(`ws://${host}:${String(port)}${RETICLE_WS_PATH}`, {       origin: 'http://localhost',     });
  • Network accessline 83
    origin: 'http://localhost',
  • Network accessline 92
    protocolVersion: 1,             sessionId: this.sessionId,             url: 'http://localhost:3000/checkout',
  • Network accessline 93
    sessionId: this.sessionId,             url: 'http://localhost:3000/checkout',             title: 'Checkout',
  • Network accessline 94
    url: 'http://localhost:3000/checkout',

server/src/area-label-paths.test.ts

  • Executable scriptline 1
    Executable file

server/src/browser-bytes-only.test.ts

  • Executable scriptline 1
    Executable file

server/src/chromium-launch-options.test.ts

  • Executable scriptline 1
    Executable file

server/src/chromium-launch-options.ts

  • Executable scriptline 1
    Executable file

server/src/ci-aggregate-covers-jobs.test.ts

  • Executable scriptline 1
    Executable file

server/src/ci-routing-paths.test.ts

  • Executable scriptline 1
    Executable file

server/src/cli.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 5
    const PORT = 7333; const URL = 'http://localhost:3000';
  • Network accessline 6
    const URL = 'http://localhost:3000';
  • Network accessline 14
    {           sessionId: 'a',           url: 'http://localhost:5173/app',
  • Network accessline 15
    sessionId: 'a',           url: 'http://localhost:5173/app',           projectId: 'web-app',
  • Network accessline 16
    url: 'http://localhost:5173/app',
  • Network accessline 19
    pendingMarks: 2,         },         { sessionId: 'b', url: 'http://localhost:5173/x', throttled: true, stale: true },
  • Network accessline 20
    },         { sessionId: 'b', url: 'http://localhost:5173/x', throttled: true, stale: true },       ],
  • Network accessline 21
    { sessionId: 'b', url: 'http://localhost:5173/x', throttled: true, stale: true },
  • Network accessline 26
    {         sessionId: 'a',         url: 'http://localhost:5173/app',
  • Network accessline 27
    sessionId: 'a',         url: 'http://localhost:5173/app',         projectId: 'web-app',
  • Network accessline 28
    url: 'http://localhost:5173/app',
  • Network accessline 35
    {         sessionId: 'b',         url: 'http://localhost:5173/x',
  • Network accessline 36
    sessionId: 'b',         url: 'http://localhost:5173/x',         throttled: true,
  • Network accessline 37
    url: 'http://localhost:5173/x',
  • Network accessline 433
    [Credential-related source omitted]
  • Network accessline 434
    [Credential-related source omitted]
  • Network accessline 435
    [Credential-related source omitted]
  • Network accessline 436
    [Credential-related source omitted]
  • Network accessline 437
    [Credential-related source omitted]
  • Network accessline 438
    [Credential-related source omitted]
  • Network accessline 691
    it('mcp --drive passes the drive url', () => {     expect(parseCliArgs(['mcp', '--drive', 'http://localhost:3000'], PORT)).toEqual({
  • Network accessline 692
    expect(parseCliArgs(['mcp', '--drive', 'http://localhost:3000'], PORT)).toEqual({
  • Network accessline 693
    kind: 'mcp',       port: PORT,       driveUrl: 'http://localhost:3000',
  • Network accessline 694
    port: PORT,       driveUrl: 'http://localhost:3000',       headless: false,
  • Network accessline 695
    driveUrl: 'http://localhost:3000',
  • Network accessline 701
    it('mcp --drive --headed passes both flags', () => {     expect(parseCliArgs(['mcp', '--drive', 'http://localhost:3000', '--headed'], PORT)).toEqual({
  • Network accessline 702
    expect(parseCliArgs(['mcp', '--drive', 'http://localhost:3000', '--headed'], PORT)).toEqual({
  • Network accessline 703
    kind: 'mcp',       port: PORT,       driveUrl: 'http://localhost:3000',
  • Network accessline 704
    port: PORT,       driveUrl: 'http://localhost:3000',       headless: false,
  • Network accessline 705
    driveUrl: 'http://localhost:3000',
  • Network accessline 861
    it('still parses --expect and its JSON predicate', () => {     const parsed = parseCliArgs(       ['verify', 'http://localhost:3000', '--expect', '{"kind":"console"}'],
  • Network accessline 862
    const parsed = parseCliArgs(       ['verify', 'http://localhost:3000', '--expect', '{"kind":"console"}'],       4400,
  • Network accessline 863
    ['verify', 'http://localhost:3000', '--expect', '{"kind":"console"}'],

server/src/command/cli-onboarding.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli.ts

  • Executable scriptline 1
    #!/usr/bin/env node
  • Dangerous shell operationline 609
    // The agent's prompt hook, FIRST: before the version re-exec (it must not start a second CLI on

server/src/command/cli/adhoc-suite.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 218
    runAdhocExplore({       port: 4400,       url: 'http://localhost:5190/',
  • Network accessline 219
    port: 4400,       url: 'http://localhost:5190/',       persona: 'a visitor',
  • Network accessline 220
    url: 'http://localhost:5190/',
  • Network accessline 239
    it('drives the tab already open on that origin, and leases nothing', async () => {     const c = recording();     await explore(c.tool, [{ url: 'http://localhost:5190/' }]);
  • Network accessline 240
    const c = recording();     await explore(c.tool, [{ url: 'http://localhost:5190/' }]);     expect(c.actions()).toEqual(['explore', 'flows']);
  • Network accessline 241
    await explore(c.tool, [{ url: 'http://localhost:5190/' }]);
  • Network accessline 248
    const result = await runAdhocSuite({       port: 4400,       url: 'http://localhost:5190/',
  • Network accessline 249
    port: 4400,       url: 'http://localhost:5190/',       sessions: () => Promise.resolve([]),
  • Network accessline 250
    url: 'http://localhost:5190/',
  • Network accessline 261
    explore: { structuredContent: { stopReason: 'done', savedFlows: [], note: 'nothing saved' } },     });     const result = await explore(c.tool, [{ url: 'http://localhost:5190/' }]);
  • Network accessline 262
    });     const result = await explore(c.tool, [{ url: 'http://localhost:5190/' }]);     expect(result.code).toBe(1);
  • Network accessline 263
    const result = await explore(c.tool, [{ url: 'http://localhost:5190/' }]);
  • Network accessline 274
    },     });     const result = await explore(c.tool, [{ url: 'http://localhost:5190/' }]);
  • Network accessline 275
    });     const result = await explore(c.tool, [{ url: 'http://localhost:5190/' }]);     expect(result.code).toBe(1);
  • Network accessline 276
    const result = await explore(c.tool, [{ url: 'http://localhost:5190/' }]);
  • Network accessline 286
    },     });     const result = await explore(c.tool, [{ url: 'http://localhost:5190/' }]);
  • Network accessline 287
    });     const result = await explore(c.tool, [{ url: 'http://localhost:5190/' }]);     expect(result.code).toBe(1);
  • Network accessline 288
    const result = await explore(c.tool, [{ url: 'http://localhost:5190/' }]);

server/src/command/cli/adhoc-suite.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/adhoc-verdict.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 48
    return runAdhocVerdict({     port: 4400,     url: 'http://localhost:3000/',
  • Network accessline 49
    port: 4400,     url: 'http://localhost:3000/',     predicate: { kind: 'text', contains: 'Dashboard' },
  • Network accessline 50
    url: 'http://localhost:3000/',
  • Network accessline 229
    const result = await runAdhocVerdict({       port: 4400,       url: 'http://localhost:5190/',
  • Network accessline 230
    port: 4400,       url: 'http://localhost:5190/',       predicate: { kind: 'text', contains: 'count is 0' },
  • Network accessline 231
    url: 'http://localhost:5190/',
  • Network accessline 247
    await runAdhocVerdict({       port: 4400,       url: 'http://localhost:5190/cart',
  • Network accessline 248
    port: 4400,       url: 'http://localhost:5190/cart',       predicate: { kind: 'text', contains: 'x' },
  • Network accessline 249
    url: 'http://localhost:5190/cart',
  • Network accessline 250
    predicate: { kind: 'text', contains: 'x' },       connect: () => Promise.resolve(c.tool),       sessions: () => Promise.resolve([{ url: 'http://localhost:5190/' }]),
  • Network accessline 251
    connect: () => Promise.resolve(c.tool),       sessions: () => Promise.resolve([{ url: 'http://localhost:5190/' }]),     });
  • Network accessline 252
    sessions: () => Promise.resolve([{ url: 'http://localhost:5190/' }]),
  • Network accessline 261
    await runAdhocVerdict({       port: 4400,       url: 'http://localhost:5190',
  • Network accessline 262
    port: 4400,       url: 'http://localhost:5190',       predicate: { kind: 'text', contains: 'x' },
  • Network accessline 263
    url: 'http://localhost:5190',
  • Network accessline 264
    predicate: { kind: 'text', contains: 'x' },       connect: () => Promise.resolve(c.tool),       sessions: () => Promise.resolve([{ url: 'http://localhost:5190/' }]),
  • Network accessline 265
    connect: () => Promise.resolve(c.tool),       sessions: () => Promise.resolve([{ url: 'http://localhost:5190/' }]),     });
  • Network accessline 266
    sessions: () => Promise.resolve([{ url: 'http://localhost:5190/' }]),
  • Network accessline 290
    it('asserts a pinned tab already on the url without navigating it', async () => {       const { c, run } = pinned([         { sessionId: 'tab-1', url: 'http://localhost:5190/other' },
  • Network accessline 291
    const { c, run } = pinned([         { sessionId: 'tab-1', url: 'http://localhost:5190/other' },         { sessionId: 'tab-2', url: 'http://localhost:5190/list?page=2#top' },
  • Network accessline 292
    { sessionId: 'tab-1', url: 'http://localhost:5190/other' },
  • Network accessline 293
    { sessionId: 'tab-2', url: 'http://localhost:5190/list?page=2#top' },
  • Network accessline 294
    ]);       await run('http://localhost:5190/list/?page=2');       expect(c.calls.map((x) => x.name)).toEqual([ReticleTool.ASSERT]);
  • Network accessline 295
    await run('http://localhost:5190/list/?page=2');
  • Network accessline 300
    it('still navigates a pinned tab on a different url', async () => {       const { c, run } = pinned([{ sessionId: 'tab-2', url: 'http://localhost:5190/list?page=1' }]);
  • Network accessline 301
    const { c, run } = pinned([{ sessionId: 'tab-2', url: 'http://localhost:5190/list?page=1' }]);
  • Network accessline 302
    await run('http://localhost:5190/list?page=2');
  • Network accessline 307
    it('does not borrow another tab that is on the url', async () => {       const { c, run } = pinned([         { sessionId: 'tab-1', url: 'http://localhost:5190/list?page=2' },
  • Network accessline 308
    const { c, run } = pinned([         { sessionId: 'tab-1', url: 'http://localhost:5190/list?page=2' },         { sessionId: 'tab-2', url: 'http://localhost:5190/' },
  • Network accessline 309
    { sessionId: 'tab-1', url: 'http://localhost:5190/list?page=2' },
  • Network accessline 310
    { sessionId: 'tab-2', url: 'http://localhost:5190/' },
  • Network accessline 311
    ]);       await run('http://localhost:5190/list?page=2');       expect(c.calls.map((x) => x.name)).toEqual([ReticleTool.NAVIGATE, ReticleTool.ASSERT]);
  • Network accessline 312
    await run('http://localhost:5190/list?page=2');
  • Network accessline 318
    await runAdhocVerdict({         port: 4400,         url: 'http://localhost:5190/list',
  • Network accessline 319
    port: 4400,         url: 'http://localhost:5190/list',         sessionId: 'tab-2',
  • Network accessline 320
    url: 'http://localhost:5190/list',
  • Network accessline 332
    const result = await runAdhocVerdict({       port: 4400,       url: 'http://localhost:5190/',
  • Network accessline 333
    port: 4400,       url: 'http://localhost:5190/',       predicate: { kind: 'text', contains: 'x' },
  • Network accessline 334
    url: 'http://localhost:5190/',
  • Network accessline 353
    it('says so', async () => {     const got = await acquireLease(answering({ sessionId: 's', zeroInstall: true }), 'http://x/');
  • Network accessline 354
    const got = await acquireLease(answering({ sessionId: 's', zeroInstall: true }), 'http://x/');
  • Network accessline 358
    it('is not one when the app dialled in itself', async () => {     const got = await acquireLease(answering({ sessionId: 's' }), 'http://x/');
  • Network accessline 359
    const got = await acquireLease(answering({ sessionId: 's' }), 'http://x/');
  • Network accessline 388
    it('opens the lease again without `root`', async () => {     const daemon = olderDaemon();     const got = await acquireLease(daemon.tool, 'http://x/', undefined, '/project');
  • Network accessline 390
    const got = await acquireLease(daemon.tool, 'http://x/', undefined, '/project');
  • Network accessline 408
    const got = await acquireLease(tool, 'http://x/', undefined, '/project');
  • Network accessline 439
    it('is a failed open that gives the reason and the hint, not a lease id', async () => {     const c = acquiring(notReady);     const got = await acquireLease(c.tool, 'http://localhost:5190/');
  • Network accessline 440
    const c = acquiring(notReady);     const got = await acquireLease(c.tool, 'http://localhost:5190/');     expect(got).toEqual({
  • Network accessline 441
    const got = await acquireLease(c.tool, 'http://localhost:5190/');
  • Network accessline 442
    expect(got).toEqual({       failed: [         'could not open http://localhost:5190/ in a Reticle browser, so nothing was checked:',
  • Network accessline 443
    failed: [         'could not open http://localhost:5190/ in a Reticle browser, so nothing was checked:',         'the tab did not connect (sdk-never-dialled). The page did not connect to the bridge.',
  • Network accessline 444
    'could not open http://localhost:5190/ in a Reticle browser, so nothing was checked:',
  • Network accessline 450
    it('releases the lease it opened', async () => {     const c = acquiring(notReady);     await acquireLease(c.tool, 'http://localhost:5190/');
  • Network accessline 451
    const c = acquiring(notReady);     await acquireLease(c.tool, 'http://localhost:5190/');     const last = c.calls.at(-1)?.args;
  • Network accessline 452
    await acquireLease(c.tool, 'http://localhost:5190/');
  • Network accessline 460
    const result = await runAdhocVerdict({       port: 4400,       url: 'http://localhost:5190/',
  • Network accessline 461
    port: 4400,       url: 'http://localhost:5190/',       predicate: { kind: 'text', contains: 'x' },
  • Network accessline 462
    url: 'http://localhost:5190/',
  • Network accessline 474
    const c = acquiring({       ...notReady,       hint: leaseNotConnectedHint('http://localhost:5190/', 4400),
  • Network accessline 475
    ...notReady,       hint: leaseNotConnectedHint('http://localhost:5190/', 4400),     });
  • Network accessline 476
    hint: leaseNotConnectedHint('http://localhost:5190/', 4400),
  • Network accessline 477
    });     const got = await acquireLease(c.tool, 'http://localhost:5190/');     const said = 'failed' in got ? got.failed.join(' ') : '';
  • Network accessline 478
    const got = await acquireLease(c.tool, 'http://localhost:5190/');

server/src/command/cli/adhoc-verdict.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/answers/gate-exit.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/answers/gate-hook-message.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/answers/gate-hook-message.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/answers/gate-known-regression.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 55
    [Credential-related source omitted]
  • Access to secretsline 57
    [Credential-related source omitted]
  • Access to secretsline 81
    [Credential-related source omitted]

server/src/command/cli/answers/mcp-connection-hint.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 6
    export function mcpConnectionHint(port: number): string {   return `${MCP_CONNECTION_HINT} http://${LOOPBACK_HOST}:${String(port)}${MCP_SSE_PATH}`;
  • Network accessline 7
    return `${MCP_CONNECTION_HINT} http://${LOOPBACK_HOST}:${String(port)}${MCP_SSE_PATH}`;

server/src/command/cli/answers/open-note.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 38
    describe('reticle open, when the OS browser launcher fails', () => {   it('offers the Reticle-owned browser lease with the URL', () => {     const note = openLaunchFailureNote('http://localhost:5173', 'xdg-open');
  • Network accessline 39
    it('offers the Reticle-owned browser lease with the URL', () => {     const note = openLaunchFailureNote('http://localhost:5173', 'xdg-open');     expect(note).toContain('`xdg-open`');
  • Network accessline 40
    const note = openLaunchFailureNote('http://localhost:5173', 'xdg-open');
  • Network accessline 42
    expect(note).toContain(`${ReticleTool.RUN} { tool: "${ReticleTool.LEASE}"`);     expect(note).toContain('action: "acquire"');     expect(note).toContain('url: "http://localhost:5173"');
  • Network accessline 43
    expect(note).toContain('action: "acquire"');     expect(note).toContain('url: "http://localhost:5173"');   });
  • Network accessline 44
    expect(note).toContain('url: "http://localhost:5173"');

server/src/command/cli/answers/open-note.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/answers/status-next-action.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/answers/status-next-action.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/auth/cloud-keystore.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 19
    /** Trailing slashes are not identity: `https://x/` and `https://x` are one cloud. */

server/src/command/cli/auth/cloud-session.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 32
    /** Trailing slashes are not identity: `https://x/` and `https://x` are one host. */
  • Network accessline 35
    /**  * A filesystem-safe name for one host. `https://app.reticle.sh` → `app.reticle.sh`,
  • Network accessline 36
    * A filesystem-safe name for one host. `https://app.reticle.sh` → `app.reticle.sh`,
  • Network accessline 37
    * `http://localhost:8890` → `localhost_8890`. The scheme is dropped deliberately: nobody runs the

server/src/command/cli/auth/device-flow.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/ci-hint.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/ci-hint.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 24
    export const CI_HINT_URL = 'https://reticle.sh/ci';

server/src/command/cli/cli-cut-list.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/cli-doctor.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/cli-doctor.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 2
    [Credential-related source omitted]
  • Access to secretsline 391
    [Credential-related source omitted]
  • Access to secretsline 392
    [Credential-related source omitted]
  • Access to secretsline 393
    [Credential-related source omitted]

server/src/command/cli/cli-flow-commands.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/cli-gate-per-flow.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/cli-kill.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/cli-kill.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/cli-parse-compare.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 7
    describe('parseCompareArgs', () => {   it('takes the reference url, then the candidate url', () => {     expect(parseCompareArgs(['http://a/', 'http://b/'], PORT)).toEqual({
  • Network accessline 8
    it('takes the reference url, then the candidate url', () => {     expect(parseCompareArgs(['http://a/', 'http://b/'], PORT)).toEqual({       kind: 'ok',
  • Network accessline 9
    expect(parseCompareArgs(['http://a/', 'http://b/'], PORT)).toEqual({
  • Network accessline 10
    kind: 'ok',       reference: 'http://a/',       candidate: 'http://b/',
  • Network accessline 11
    reference: 'http://a/',
  • Network accessline 12
    candidate: 'http://b/',
  • Network accessline 19
    expect(       parseCompareArgs(         ['http://a/', '--base', 'http://c/', 'http://b/', '--json', '--port', String(TEST_PORT)],
  • Network accessline 20
    parseCompareArgs(         ['http://a/', '--base', 'http://c/', 'http://b/', '--json', '--port', String(TEST_PORT)],         PORT,
  • Network accessline 21
    ['http://a/', '--base', 'http://c/', 'http://b/', '--json', '--port', String(TEST_PORT)],
  • Network accessline 24
    ).toEqual({       kind: 'ok',       reference: 'http://a/',
  • Network accessline 25
    kind: 'ok',       reference: 'http://a/',       candidate: 'http://b/',
  • Network accessline 26
    reference: 'http://a/',
  • Network accessline 27
    candidate: 'http://b/',
  • Network accessline 28
    base: 'http://c/',
  • Network accessline 34
    it('refuses a missing url, a third url, an unknown flag and a flag with no value', () => {     expect(parseCompareArgs(['http://a/'], PORT).kind).toBe('error');
  • Network accessline 35
    expect(parseCompareArgs(['http://a/'], PORT).kind).toBe('error');
  • Network accessline 36
    expect(parseCompareArgs(['http://a/', 'http://b/', 'http://c/'], PORT).kind).toBe('error');
  • Network accessline 37
    expect(parseCompareArgs(['http://a/', 'http://b/', '--deep'], PORT).kind).toBe('error');
  • Network accessline 38
    expect(parseCompareArgs(['http://a/', 'http://b/', '--base'], PORT).kind).toBe('error');
  • Network accessline 39
    expect(parseCompareArgs(['http://a/', 'http://b/', '--port', 'x'], PORT).kind).toBe('error');

server/src/command/cli/cli-parse-feedback.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/cli-parse-grammar.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/cli-parse-serve.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/cli-parse-verify.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/cli-parse.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 249
    [Credential-related source omitted]

server/src/command/cli/cli-update-commands.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/cli-update-commands.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 25
    const WINDOWS_MANUAL_UPDATE =   'irm https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.ps1 | iex';
  • Network accessline 26
    'irm https://raw.githubusercontent.com/reticlehq/reticle/main/install/install.ps1 | iex';

server/src/command/cli/cli-usage.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 51
    [Credential-related source omitted]
  • Network accessline 74
    for it to come true. Exit 0 only on verified:"yes". For an                                 action --expect cannot do, use the HTTP MCP transport:                                 https://docs.reticle.sh/http-transport.md`;
  • Network accessline 76
    https://docs.reticle.sh/http-transport.md`;
  • Access to secretsline 121
    [Credential-related source omitted]

server/src/command/cli/cli-verify-linked.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 20
    [Credential-related source omitted]
  • Network accessline 21
    [Credential-related source omitted]
  • Network accessline 22
    [Credential-related source omitted]
  • Access to secretsline 26
    [Credential-related source omitted]

server/src/command/cli/cli-verify.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 45
    durationMs: 5,     profile: RunProfile.PROD_PREVIEW,     project: { name: 'demo', framework: RunFramework.OTHER, previewUrl: 'http://x' },
  • Network accessline 46
    profile: RunProfile.PROD_PREVIEW,     project: { name: 'demo', framework: RunFramework.OTHER, previewUrl: 'http://x' },     agent: { id: 'reticle-cli', kind: RunAgentKind.OEM_PIPELINE },
  • Network accessline 47
    project: { name: 'demo', framework: RunFramework.OTHER, previewUrl: 'http://x' },
  • Network accessline 97
    const ARGS = { url: 'http://localhost:3000', timeoutMs: 1000 };
  • Network accessline 100
    describe('urlParts', () => {   it('flags localhost / 127.0.0.1 / ::1 as loopback', () => {     expect(urlParts('http://localhost:4320').loopback).toBe(true);
  • Network accessline 101
    it('flags localhost / 127.0.0.1 / ::1 as loopback', () => {     expect(urlParts('http://localhost:4320').loopback).toBe(true);     expect(urlParts('http://127.0.0.1:4320').loopback).toBe(true);
  • Network accessline 102
    expect(urlParts('http://localhost:4320').loopback).toBe(true);
  • Network accessline 103
    expect(urlParts('http://127.0.0.1:4320').loopback).toBe(true);
  • Network accessline 104
    expect(urlParts('http://[::1]:4320').loopback).toBe(true);
  • Network accessline 107
    it('flags a hosted preview as non-loopback and returns its origin', () => {     const r = urlParts('https://app.lovable.app/x');
  • Network accessline 108
    const r = urlParts('https://app.lovable.app/x');
  • Network accessline 109
    expect(r.loopback).toBe(false);     expect(r.origin).toBe('https://app.lovable.app');   });
  • Network accessline 110
    expect(r.origin).toBe('https://app.lovable.app');
  • Network accessline 435
    [Credential-related source omitted]
  • Network accessline 436
    [Credential-related source omitted]
  • Network accessline 437
    [Credential-related source omitted]
  • Network accessline 438
    });     expect(calls).toContainEqual({       url: 'https://cloud.test/v1/runs',
  • Network accessline 439
    expect(calls).toContainEqual({       url: 'https://cloud.test/v1/runs',       auth: 'Bearer rk_live_stored',
  • Network accessline 440
    url: 'https://cloud.test/v1/runs',
  • Network accessline 489
    [Credential-related source omitted]
  • Network accessline 490
    [Credential-related source omitted]
  • Network accessline 491
    [Credential-related source omitted]

server/src/command/cli/cli-verify.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 372
    [Credential-related source omitted]
  • Access to secretsline 463
    [Credential-related source omitted]
  • Network accessline 676
    `  • Once that daemon is running, you can also drive its HTTP MCP transport for anything ` +     `${EXPECT_FLAG} cannot do — click, fill, press (${MCP_SSE_PATH}, then ${MCP_MESSAGE_PATH}). ` +     'See https://docs.reticle.sh/http-transport
  • Network accessline 677
    `${EXPECT_FLAG} cannot do — click, fill, press (${MCP_SSE_PATH}, then ${MCP_MESSAGE_PATH}). ` +     'See https://docs.reticle.sh/http-transport.md.'   );
  • Network accessline 678
    'See https://docs.reticle.sh/http-transport.md.'
  • Access to secretsline 688
    [Credential-related source omitted]

server/src/command/cli/cloud-cli-verbs.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 59
    const CREDENTIALS_FILE = 'credentials.json'; const CLOUD_LINK_FILE = 'cloud.json'; const TEST_URL = 'http://localhost:9999';
  • Network accessline 60
    const CLOUD_LINK_FILE = 'cloud.json'; const TEST_URL = 'http://localhost:9999'; const TEST_KEY = 'rk_live_test';
  • Network accessline 61
    const TEST_URL = 'http://localhost:9999';
  • Access to secretsline 114
    [Credential-related source omitted]
  • Access to secretsline 116
    [Credential-related source omitted]
  • Network accessline 133
    }       }       requests.push({
  • Network accessline 134
    }       requests.push({         url,
  • Network accessline 135
    requests.push({
  • Access to secretsline 165
    [Credential-related source omitted]
  • Access to secretsline 166
    [Credential-related source omitted]
  • Network accessline 186
    deviceCode: 'd',               userCode: 'U',               verificationUri: 'https://app.test/device',
  • Network accessline 187
    userCode: 'U',               verificationUri: 'https://app.test/device',               verificationUriComplete: 'https://app.test/device?code=U',
  • Network accessline 188
    verificationUri: 'https://app.test/device',
  • Network accessline 189
    verificationUriComplete: 'https://app.test/device?code=U',
  • Network accessline 206
    expect(requests.filter((r) => r.url.endsWith('/v1/keys'))).toEqual([]);
  • Network accessline 224
    expect(code).toBe(0);       expect(requests.filter((r) => r.url.endsWith('/v1/keys')).length).toBe(1);
  • Network accessline 225
    expect(requests.filter((r) => r.url.endsWith('/v1/keys')).length).toBe(1);
  • Network accessline 319
    expect(code).toBe(0);     expect(requests.some((r) => r.url.endsWith('/v1/auth/device/start'))).toBe(false);
  • Network accessline 320
    expect(requests.some((r) => r.url.endsWith('/v1/auth/device/start'))).toBe(false);
  • Network accessline 321
    expect(requests.find((r) => r.url.endsWith('/v1/me'))?.authorization).toBe(
  • Network accessline 322
    'Bearer person-token',     );     expect(requests.some((r) => r.url.endsWith('/v1/keys'))).toBe(true);
  • Network accessline 323
    );     expect(requests.some((r) => r.url.endsWith('/v1/keys'))).toBe(true);     expect(requests.some((r) => r.url.endsWith('/v1/sync/status'))).toBe(true);
  • Network accessline 324
    expect(requests.some((r) => r.url.endsWith('/v1/keys'))).toBe(true);
  • Network accessline 325
    expect(requests.some((r) => r.url.endsWith('/v1/sync/status'))).toBe(true);
  • Network accessline 326
    expect(requests.some((r) => r.url.endsWith('/v1/sync/pull'))).toBe(true);
  • Network accessline 375
    expect(code).toBe(0);       expect(activated).toEqual(['org_team']);       expect(requests.find((r) => r.url.endsWith('/v1/keys'))?.authorization).toBe(
  • Network accessline 376
    expect(activated).toEqual(['org_team']);       expect(requests.find((r) => r.url.endsWith('/v1/keys'))?.authorization).toBe(         'Bearer team-token',
  • Network accessline 377
    expect(requests.find((r) => r.url.endsWith('/v1/keys'))?.authorization).toBe(
  • Network accessline 410
    expect(requests[0]?.url).toBe('https://app.reticle.sh/v1/auth/device/start');
  • Network accessline 422
    process.env['RETICLE_CLOUD_URL'] = 'https://staging.reticle.sh';
  • Network accessline 425
    const code = await login(['--url', 'https://other.reticle.sh']);
  • Network accessline 427
    expect(code).toBe(1);     expect(requests[0]?.url).toBe('https://other.reticle.sh/v1/auth/device/start');
  • Network accessline 428
    expect(requests[0]?.url).toBe('https://other.reticle.sh/v1/auth/device/start');
  • Network accessline 432
    [Credential-related source omitted]
  • Network accessline 433
    [Credential-related source omitted]
  • Network accessline 434
    [Credential-related source omitted]
  • Network accessline 436
    [Credential-related source omitted]
  • Network accessline 437
    [Credential-related source omitted]
  • Network accessline 438
    [Credential-related source omitted]
  • Network accessline 440
    process.env['RETICLE_CLOUD_URL'] = 'https://staging.reticle.sh';
  • Network accessline 455
    [Credential-related source omitted]
  • Network accessline 456
    [Credential-related source omitted]
  • Network accessline 460
    expect(code).toBe(0);     expect(await readFile(join(home, RETICLE_DIR, SESSION_FILE), 'utf8')).toBe('');     expect(lastJsonOutput()).toEqual({ loggedOut: true, url: 'http://c' });
  • Network accessline 461
    expect(await readFile(join(home, RETICLE_DIR, SESSION_FILE), 'utf8')).toBe('');     expect(lastJsonOutput()).toEqual({ loggedOut: true, url: 'http://c' });     expect(requests).toHaveLength(0);
  • Network accessline 462
    expect(lastJsonOutput()).toEqual({ loggedOut: true, url: 'http://c' });     expect(requests).toHaveLength(0);   });
  • Network accessline 469
    [Credential-related source omitted]
  • Access to secretsline 469
    [Credential-related source omitted]
  • Network accessline 470
    responder = () => ({       body: { projectId: 'proj_1', projectName: 'Proj', dashboardUrl: 'https://app.test/p/proj_1' },     });
  • Network accessline 471
    body: { projectId: 'proj_1', projectName: 'Proj', dashboardUrl: 'https://app.test/p/proj_1' },
  • Network accessline 472
    });     expect(await cmdLink([])).toBe(0);     expect(stderrBuf).toContain('https://app.test/p/proj_1');
  • Network accessline 473
    expect(await cmdLink([])).toBe(0);     expect(stderrBuf).toContain('https://app.test/p/proj_1');   });
  • Network accessline 474
    expect(stderrBuf).toContain('https://app.test/p/proj_1');
  • Access to secretsline 479
    [Credential-related source omitted]
  • Access to secretsline 488
    [Credential-related source omitted]
  • Network accessline 527
    expect(code).toBe(0);     const created = requests.find((r) => 'POST' === r.method && r.url.endsWith('/v1/projects'));
  • Network accessline 528
    const created = requests.find((r) => 'POST' === r.method && r.url.endsWith('/v1/projects'));
  • Network accessline 574
    };     await cmdLink(['--project', 'web']);     const created = requests.find((r) => 'POST' === r.method && r.url.endsWith('/v1/projects'));
  • Network accessline 575
    await cmdLink(['--project', 'web']);     const created = requests.find((r) => 'POST' === r.method && r.url.endsWith('/v1/projects'));     expect(created?.body).toMatchObject({ name: 'web', repo: expect.any(String) as unknown });
  • Network accessline 576
    const created = requests.find((r) => 'POST' === r.method && r.url.endsWith('/v1/projects'));
  • Network accessline 596
    expect(requests.filter((r) => 'POST' === r.method && r.url.endsWith('/v1/projects'))).toEqual(
  • Access to secretsline 602
    [Credential-related source omitted]
  • Access to secretsline 624
    [Credential-related source omitted]
  • Network accessline 655
    expect(code).toBe(0);     expect(       requests.filter((r) => 'POST' === r.method && r.url.endsWith('/v1/keys')).length,
  • Network accessline 656
    expect(       requests.filter((r) => 'POST' === r.method && r.url.endsWith('/v1/keys')).length,       "a key of our own is minted rather than borrowing the other tenant's",
  • Network accessline 657
    requests.filter((r) => 'POST' === r.method && r.url.endsWith('/v1/keys')).length,
  • Network accessline 692
    expect(code).toBe(0);     expect(requests.filter((r) => 'POST' === r.method && r.url.endsWith('/v1/keys')).length).toBe(
  • Network accessline 693
    expect(requests.filter((r) => 'POST' === r.method && r.url.endsWith('/v1/keys')).length).toBe(
  • Network accessline 718
    expect(code).toBe(0);     expect(       requests.filter((r) => 'POST' === r.method && r.url.endsWith('/v1/keys')),
  • Network accessline 719
    expect(       requests.filter((r) => 'POST' === r.method && r.url.endsWith('/v1/keys')),       'no second key is minted for a project already linked on this machine',
  • Network accessline 720
    requests.filter((r) => 'POST' === r.method && r.url.endsWith('/v1/keys')),
  • Network accessline 752
    expect(code).toBe(0);     expect(requests.filter((r) => 'POST' === r.method && r.url.endsWith('/v1/keys')).length).toBe(
  • Network accessline 753
    expect(requests.filter((r) => 'POST' === r.method && r.url.endsWith('/v1/keys')).length).toBe(
  • Network accessline 763
    await writeRepoFile(       [CLOUD_LINK_FILE],       JSON.stringify({ projectId: 'proj_1', projectName: 'Proj', url: 'http://cloud.test' }),
  • Network accessline 764
    [CLOUD_LINK_FILE],       JSON.stringify({ projectId: 'proj_1', projectName: 'Proj', url: 'http://cloud.test' }),     );
  • Network accessline 765
    JSON.stringify({ projectId: 'proj_1', projectName: 'Proj', url: 'http://cloud.test' }),
  • Access to secretsline 790
    [Credential-related source omitted]
  • Network accessline 801
    const paths = requests.map((r) => r.url.replace(TEST_URL, ''));
  • Network accessline 804
    [Credential-related source omitted]
  • Network accessline 805
    [Credential-related source omitted]
  • Network accessline 806
    [Credential-related source omitted]
  • Access to secretsline 806
    [Credential-related source omitted]
  • Access to secretsline 866
    [Credential-related source omitted]
  • Network accessline 913
    const pushed = requests.find((r) => 'POST' === r.method && r.url.endsWith('/v1/sync'));
  • Access to secretsline 941
    [Credential-related source omitted]
  • Access to secretsline 950
    [Credential-related source omitted]
  • Access to secretsline 957
    [Credential-related source omitted]
  • Access to secretsline 969
    [Credential-related source omitted]
  • Access to secretsline 978
    [Credential-related source omitted]
  • Network accessline 983
    process.env['RETICLE_CLOUD_URL'] = TEST_URL;     process.env['RETICLE_CLOUD_KEY'] = TEST_KEY;     responder = () => ({ body: { shareUrl: 'https://cloud.test/s/abc' } });
  • Access to secretsline 984
    [Credential-related source omitted]
  • Network accessline 985
    responder = () => ({ body: { shareUrl: 'https://cloud.test/s/abc' } });
  • Network accessline 994
    expect(requests[0]?.url).toBe(`${TEST_URL}/v1/runs/run_abc/share`);     expect(requests[0]?.authorization).toBe(`Bearer ${TEST_KEY}`);     expect(lastJsonOutput()).toEqual({ shareUrl: 'https://cloud.test/s/abc' });
  • Network accessline 995
    [Credential-related source omitted]
  • Access to secretsline 995
    [Credential-related source omitted]
  • Network accessline 996
    expect(lastJsonOutput()).toEqual({ shareUrl: 'https://cloud.test/s/abc' });
  • Access to secretsline 1063
    [Credential-related source omitted]
  • Access to secretsline 1072
    [Credential-related source omitted]

server/src/command/cli/cloud-cli.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 14
    };     process.env['RETICLE_CLOUD_KEY'] = 'test-key';     process.env['RETICLE_CLOUD_URL'] = 'http://localhost:9999';
  • Network accessline 15
    [Credential-related source omitted]
  • Access to secretsline 15
    [Credential-related source omitted]
  • Network accessline 16
    process.env['RETICLE_CLOUD_URL'] = 'http://localhost:9999';
  • Access to secretsline 22
    [Credential-related source omitted]
  • Access to secretsline 87
    [Credential-related source omitted]
  • Network accessline 91
    it('writes the switch to the platform with the project key', async () => {     process.env['RETICLE_API_KEY'] = 'rk_live_test';     process.env['RETICLE_CLOUD_URL'] = 'http://localhost:9999';
  • Network accessline 92
    [Credential-related source omitted]
  • Access to secretsline 92
    [Credential-related source omitted]
  • Network accessline 93
    process.env['RETICLE_CLOUD_URL'] = 'http://localhost:9999';     const sent: { url: string; method: string; body: string }[] = [];     globalThis.fetch = ((url: string, init: { method: string; body: string }) => {
  • Network accessline 100
    expect(sent).toEqual([       {         url: 'http://localhost:9999/v1/model/config',
  • Network accessline 101
    {         url: 'http://localhost:9999/v1/model/config',         method: 'PUT',
  • Network accessline 102
    url: 'http://localhost:9999/v1/model/config',

server/src/command/cli/cloud-cli.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 6
    [Credential-related source omitted]
  • Network accessline 66
    * host for a user to know and one for us to configure.  *  * It used to be `http://localhost:8890`, which is correct for exactly one audience: whoever is
  • Network accessline 67
    *  * It used to be `http://localhost:8890`, which is correct for exactly one audience: whoever is  * developing the service itself. Every other user — the entire point of publishing the package —
  • Network accessline 68
    * It used to be `http://localhost:8890`, which is correct for exactly one audience: whoever is
  • Access to secretsline 221
    [Credential-related source omitted]
  • Access to secretsline 281
    [Credential-related source omitted]
  • Access to secretsline 381
    [Credential-related source omitted]

server/src/command/cli/cloud-kit-forbidden.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 23
    'Only a maintainer, an admin or the owner of this workspace can create a project. Ask one to create it on the dashboard (or run reticle connect), then connect to it.';     answer(403, { error: { code: 'forbidden', message: said } });     co
  • Network accessline 24
    answer(403, { error: { code: 'forbidden', message: said } });     const error = await api('POST', 'https://cloud.test/v1/projects', 'tok', { name: 'x' }).catch(       (e: unknown) => e,
  • Network accessline 25
    const error = await api('POST', 'https://cloud.test/v1/projects', 'tok', { name: 'x' }).catch(
  • Network accessline 32
    it('still reads a refused credential as one', async () => {     answer(401, { error: { code: 'unauthorized', message: 'sign in or API key required' } });     const error = await api('GET', 'https://cloud.test/v1/me', 'tok').catch((e: unknow
  • Network accessline 33
    answer(401, { error: { code: 'unauthorized', message: 'sign in or API key required' } });     const error = await api('GET', 'https://cloud.test/v1/me', 'tok').catch((e: unknown) => e);     expect(error).toBeInstanceOf(CredentialRefusedErro
  • Network accessline 34
    const error = await api('GET', 'https://cloud.test/v1/me', 'tok').catch((e: unknown) => e);

server/src/command/cli/cloud-kit.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 132
    [Credential-related source omitted]

server/src/command/cli/cloud-link.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 125
    [Credential-related source omitted]
  • Access to secretsline 285
    [Credential-related source omitted]

server/src/command/cli/cloud-login-hud.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 18
    () => undefined,       (open) => {         open('https://app.test/device?code=AB12');
  • Network accessline 19
    (open) => {         open('https://app.test/device?code=AB12');         return new Promise<number>(() => undefined);
  • Network accessline 20
    open('https://app.test/device?code=AB12');
  • Network accessline 26
    handler();     expect(opened).toEqual([       'https://app.test/device?code=AB12',
  • Network accessline 27
    expect(opened).toEqual([       'https://app.test/device?code=AB12',       'https://app.test/device?code=AB12',
  • Network accessline 28
    'https://app.test/device?code=AB12',
  • Network accessline 29
    'https://app.test/device?code=AB12',

server/src/command/cli/cloud-login-origin.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 22
    deviceCode: 'd',           userCode: 'U',           verificationUri: 'https://app.test/device',
  • Network accessline 23
    userCode: 'U',           verificationUri: 'https://app.test/device',           verificationUriComplete: 'https://app.test/device?code=U',
  • Network accessline 24
    verificationUri: 'https://app.test/device',
  • Network accessline 25
    verificationUriComplete: 'https://app.test/device?code=U',
  • Network accessline 39
    describe('where a sign-in started', () => {   it('appends `from`, keeping the query the cloud sent', () => {     expect(withLoginOrigin('https://app.test/device?code=U', LoginOrigin.TERMINAL)).toBe(
  • Network accessline 40
    it('appends `from`, keeping the query the cloud sent', () => {     expect(withLoginOrigin('https://app.test/device?code=U', LoginOrigin.TERMINAL)).toBe(       'https://app.test/device?code=U&from=terminal',
  • Network accessline 41
    expect(withLoginOrigin('https://app.test/device?code=U', LoginOrigin.TERMINAL)).toBe(
  • Network accessline 42
    'https://app.test/device?code=U&from=terminal',
  • Network accessline 43
    );     expect(withLoginOrigin('https://app.test/device', LoginOrigin.HUD)).toBe(       'https://app.test/device?from=hud',
  • Network accessline 44
    expect(withLoginOrigin('https://app.test/device', LoginOrigin.HUD)).toBe(
  • Network accessline 45
    'https://app.test/device?from=hud',
  • Network accessline 53
    it('`reticle connect` / `reticle login` opens the page as from=terminal', async () => {     deviceCloud();     await cmdLogin(['--url', 'https://api.test'], () => Promise.resolve(0), false);
  • Network accessline 54
    deviceCloud();     await cmdLogin(['--url', 'https://api.test'], () => Promise.resolve(0), false);     expect(opened).toEqual(['https://app.test/device?code=U&from=terminal']);
  • Network accessline 55
    await cmdLogin(['--url', 'https://api.test'], () => Promise.resolve(0), false);
  • Network accessline 56
    expect(opened).toEqual(['https://app.test/device?code=U&from=terminal']);
  • Network accessline 70
    )();     });     expect(seen).toEqual(['https://app.test/device?code=U&from=hud']);
  • Network accessline 71
    });     expect(seen).toEqual(['https://app.test/device?code=U&from=hud']);   });
  • Network accessline 72
    expect(seen).toEqual(['https://app.test/device?code=U&from=hud']);

server/src/command/cli/cloud-login.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 51
    [Credential-related source omitted]

server/src/command/cli/config/checkout.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/config/checkout.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/config/config-discovery.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/config/config-discovery.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/connect-exit.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/context-command.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/daemon-health-parity.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/daemon-link/daemon-client.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 117
    [Credential-related source omitted]
  • Network accessline 118
    const url = new URL(`http://${LOOPBACK_HOST}:${String(port)}${MCP_SSE_PATH}`);

server/src/command/cli/daemon-start-options.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 24
    it('carries it through with a drive url too', () => {     const o = daemonStartOptions(flags({ headless: false, driveUrl: 'http://localhost:3000' }));
  • Network accessline 25
    const o = daemonStartOptions(flags({ headless: false, driveUrl: 'http://localhost:3000' }));
  • Network accessline 26
    expect(o.headless).toBe(false);     expect(o.driveUrl).toBe('http://localhost:3000');   });
  • Network accessline 27
    expect(o.driveUrl).toBe('http://localhost:3000');
  • Network accessline 53
    it('forwards it alongside a drive url too', () => {     const a = daemonSpawnArgs(flags({ headless: false, driveUrl: 'http://localhost:3000' }));
  • Network accessline 54
    const a = daemonSpawnArgs(flags({ headless: false, driveUrl: 'http://localhost:3000' }));
  • Network accessline 55
    expect(a).toContain('--headed');     expect(a).toContain('http://localhost:3000');   });
  • Network accessline 56
    expect(a).toContain('http://localhost:3000');

server/src/command/cli/daemon-start-options.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/dials-the-daemon.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/doctor-repairs.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/doctor/browser/chromium-hint.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/doctor/browser/chromium-hint.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/doctor/doctor-agent-link.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/doctor/doctor-agent-link.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/doctor/doctor-coverage-line.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 7
    coverage: [         {           url: 'http://localhost:3000/',
  • Network accessline 8
    {           url: 'http://localhost:3000/',           covered: 6,
  • Network accessline 9
    url: 'http://localhost:3000/',
  • Network accessline 13
    notSeenYet: ['stable test ids'],           prompt:             'Read https://docs.reticle.sh/skill.md, then improve…\nReport the coverage line it prints.',
  • Network accessline 14
    prompt:             'Read https://docs.reticle.sh/skill.md, then improve…\nReport the coverage line it prints.',         },
  • Network accessline 15
    'Read https://docs.reticle.sh/skill.md, then improve…\nReport the coverage line it prints.',
  • Network accessline 17
    ],     });     expect(lines[0]).toContain('6/8 at http://localhost:3000/');
  • Network accessline 18
    });     expect(lines[0]).toContain('6/8 at http://localhost:3000/');     expect(lines[0]).toContain('missing: file:line source mapping');
  • Network accessline 19
    expect(lines[0]).toContain('6/8 at http://localhost:3000/');

server/src/command/cli/doctor/doctor-coverage-line.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/doctor/doctor-daemon-line.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 22
    it.each([4400, 5517])('shows the MCP connection URL on port %i (#1963)', (port) => {     const out = daemonLine(port, null, {}, SELF);     expect(out.text).toContain(`http://127.0.0.1:${port}/mcp/sse`);
  • Network accessline 23
    const out = daemonLine(port, null, {}, SELF);     expect(out.text).toContain(`http://127.0.0.1:${port}/mcp/sse`);     expect(out.text).toContain('If your agent has no reticle_* tools, connect over HTTP/SSE');
  • Network accessline 24
    expect(out.text).toContain(`http://127.0.0.1:${port}/mcp/sse`);

server/src/command/cli/doctor/doctor-daemon-line.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/doctor/doctor-fix.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/doctor/doctor-fix.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/doctor/doctor-launcher-line.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/doctor/doctor-launcher-line.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/doctor/doctor-project-line.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/doctor/doctor-project-line.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/doctor/doctor-rows.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/doctor/doctor-rows.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/doctor/doctor-sessions-line.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/doctor/doctor-sessions-line.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/doctor/doctor-signing-line.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 3
    [Credential-related source omitted]
  • Access to secretsline 4
    [Credential-related source omitted]
  • Access to secretsline 5
    [Credential-related source omitted]
  • Access to secretsline 14
    [Credential-related source omitted]
  • Access to secretsline 15
    [Credential-related source omitted]
  • Access to secretsline 43
    [Credential-related source omitted]
  • Access to secretsline 45
    [Credential-related source omitted]
  • Access to secretsline 47
    [Credential-related source omitted]
  • Access to secretsline 80
    [Credential-related source omitted]
  • Access to secretsline 90
    [Credential-related source omitted]
  • Access to secretsline 91
    [Credential-related source omitted]
  • Access to secretsline 93
    [Credential-related source omitted]
  • Access to secretsline 99
    [Credential-related source omitted]
  • Access to secretsline 102
    [Credential-related source omitted]
  • Access to secretsline 105
    [Credential-related source omitted]
  • Access to secretsline 112
    [Credential-related source omitted]
  • Access to secretsline 121
    [Credential-related source omitted]

server/src/command/cli/doctor/doctor-signing-line.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 2
    [Credential-related source omitted]
  • Access to secretsline 5
    [Credential-related source omitted]
  • Access to secretsline 7
    [Credential-related source omitted]
  • Access to secretsline 15
    [Credential-related source omitted]
  • Access to secretsline 21
    [Credential-related source omitted]
  • Access to secretsline 22
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 25
    [Credential-related source omitted]
  • Access to secretsline 51
    [Credential-related source omitted]
  • Access to secretsline 52
    [Credential-related source omitted]
  • Access to secretsline 101
    [Credential-related source omitted]
  • Access to secretsline 102
    [Credential-related source omitted]
  • Access to secretsline 135
    [Credential-related source omitted]
  • Access to secretsline 138
    [Credential-related source omitted]

server/src/command/cli/drive/drive-attach.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 41
    it('carries the daemon session id back to the caller', () => {     const result = readAttachResponse(4400, 'http://localhost:5173', { status: 200, body: ok });
  • Network accessline 42
    const result = readAttachResponse(4400, 'http://localhost:5173', { status: 200, body: ok });
  • Network accessline 50
    it('reports a tool-level refusal as the reason, naming the url that failed', () => {     const body = JSON.stringify({       error: 'could not open http://localhost:5173 — is the app running there?',
  • Network accessline 51
    const body = JSON.stringify({       error: 'could not open http://localhost:5173 — is the app running there?',     });
  • Network accessline 52
    error: 'could not open http://localhost:5173 — is the app running there?',
  • Network accessline 53
    });     const result = readAttachResponse(4400, 'http://localhost:5173', { status: 200, body });     expect(result.ok).toBe(false);
  • Network accessline 54
    const result = readAttachResponse(4400, 'http://localhost:5173', { status: 200, body });
  • Network accessline 56
    if (result.ok) return;     expect(result.reason).toContain('is the app running there?');     expect(result.reason).toContain('http://localhost:5173');
  • Network accessline 57
    expect(result.reason).toContain('is the app running there?');     expect(result.reason).toContain('http://localhost:5173');   });
  • Network accessline 58
    expect(result.reason).toContain('http://localhost:5173');
  • Network accessline 64
    const result = readAttachResponse(4400, 'http://localhost:5173', {
  • Network accessline 74
    it('never answers with an unexplained status code alone', () => {     const result = readAttachResponse(4400, 'http://localhost:5173', { status: 500, body: 'boom' });
  • Network accessline 75
    const result = readAttachResponse(4400, 'http://localhost:5173', { status: 500, body: 'boom' });
  • Network accessline 82
    it('treats an unparseable body as a failure rather than a session', () => {     const result = readAttachResponse(4400, 'http://localhost:5173', {
  • Network accessline 83
    const result = readAttachResponse(4400, 'http://localhost:5173', {
  • Network accessline 92
    it('posts the url to the daemon and returns the session it handed back', async () => {     const seen: { path: string; body: string }[] = [];     const result = await requestDriveSession(4400, 'http://localhost:5173', (port, path, body) => 
  • Network accessline 93
    const seen: { path: string; body: string }[] = [];     const result = await requestDriveSession(4400, 'http://localhost:5173', (port, path, body) => {       seen.push({ path, body });
  • Network accessline 94
    const result = await requestDriveSession(4400, 'http://localhost:5173', (port, path, body) => {
  • Network accessline 101
    });     expect(result.ok).toBe(true);     expect(JSON.parse(seen[0]?.body ?? '{}')).toEqual({ url: 'http://localhost:5173' });
  • Network accessline 102
    expect(result.ok).toBe(true);     expect(JSON.parse(seen[0]?.body ?? '{}')).toEqual({ url: 'http://localhost:5173' });   });
  • Network accessline 103
    expect(JSON.parse(seen[0]?.body ?? '{}')).toEqual({ url: 'http://localhost:5173' });
  • Network accessline 108
    it('reports a timeout as a busy daemon, not one that is shutting down', async () => {     const result = await requestDriveSession(4400, 'http://localhost:5173', () =>
  • Network accessline 109
    const result = await requestDriveSession(4400, 'http://localhost:5173', () =>
  • Network accessline 121
    it('still reports a refused connection as a daemon that has gone', async () => {     const result = await requestDriveSession(4400, 'http://localhost:5173', () =>
  • Network accessline 122
    const result = await requestDriveSession(4400, 'http://localhost:5173', () =>
  • Network accessline 130
    it('turns a dead socket into a sentence instead of a raw errno', async () => {     const result = await requestDriveSession(4400, 'http://localhost:5173', () =>
  • Network accessline 131
    const result = await requestDriveSession(4400, 'http://localhost:5173', () =>
  • Network accessline 143
    describe('what the user reads when drive cannot bind', () => {   it('the attach line names the session and the daemon it lives in', () => {     const line = describeAttached(4400, 'http://localhost:5173', {
  • Network accessline 144
    it('the attach line names the session and the daemon it lives in', () => {     const line = describeAttached(4400, 'http://localhost:5173', {       sessionId: 'lease-7',
  • Network accessline 145
    const line = describeAttached(4400, 'http://localhost:5173', {
  • Network accessline 154
    it('the attach line warns when the leased tab never connected', () => {     const line = describeAttached(4400, 'http://localhost:5173', {
  • Network accessline 155
    const line = describeAttached(4400, 'http://localhost:5173', {
  • Network accessline 162
    it('the not-ready line names the SDK package the page has to load', () => {     const line = describeAttached(4400, 'http://localhost:5173', {
  • Network accessline 163
    const line = describeAttached(4400, 'http://localhost:5173', {
  • Network accessline 174
    const message = driveRaceLost(4400, 'http://localhost:5173');
  • Network accessline 175
    expect(message).toContain('4400');     expect(message).toContain('reticle drive http://localhost:5173');     expect(message).not.toContain('EADDRINUSE');
  • Network accessline 176
    expect(message).toContain('reticle drive http://localhost:5173');
  • Network accessline 194
    */ describe('which app drive attached to', () => {   const url = 'http://localhost:5177';
  • Network accessline 195
    describe('which app drive attached to', () => {   const url = 'http://localhost:5177';   const session = { sessionId: 'lease-7', ready: true };
  • Network accessline 196
    const url = 'http://localhost:5177';
  • Network accessline 200
    sessionCount: 2,     sessions: [       { sessionId: 'tab-1', url: 'http://localhost:5173/', projectId: 'web' },
  • Network accessline 201
    sessions: [       { sessionId: 'tab-1', url: 'http://localhost:5173/', projectId: 'web' },       { sessionId: 'lease-7', url: `${url}/`, projectId: 'admin', title: 'Admin console' },
  • Network accessline 202
    { sessionId: 'tab-1', url: 'http://localhost:5173/', projectId: 'web' },
  • Network accessline 299
    describe('driveHeadlessOnAttach', () => {   it('says there is no window, and where the run can be watched instead', () => {     const line = driveHeadlessOnAttach(4400, 'http://localhost:3000');
  • Network accessline 300
    it('says there is no window, and where the run can be watched instead', () => {     const line = driveHeadlessOnAttach(4400, 'http://localhost:3000');     expect(line).toContain('headless');
  • Network accessline 301
    const line = driveHeadlessOnAttach(4400, 'http://localhost:3000');
  • Network accessline 302
    expect(line).toContain('headless');     expect(line).toContain('http://localhost:3000');     expect(line).toContain('4400');
  • Network accessline 303
    expect(line).toContain('http://localhost:3000');

server/src/command/cli/drive/drive-attach.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/drive/drive-command.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/expect-quoting.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 18
    const verify = (value: string): ReturnType<typeof parseVerifySuffix> =>   parseVerifySuffix(['http://localhost:3000', '--expect', value], 4400);
  • Network accessline 19
    parseVerifySuffix(['http://localhost:3000', '--expect', value], 4400);
  • Network accessline 60
    it('is accepted and carries the path', () => {     const parsed = parseVerifySuffix(       ['http://localhost:3000', '--expect-file', 'check.json'],
  • Network accessline 61
    const parsed = parseVerifySuffix(       ['http://localhost:3000', '--expect-file', 'check.json'],       4400,
  • Network accessline 62
    ['http://localhost:3000', '--expect-file', 'check.json'],
  • Network accessline 70
    it('refuses both at once rather than silently preferring one', () => {     const parsed = parseVerifySuffix(       ['http://localhost:3000', '--expect', PREDICATE, '--expect-file', 'check.json'],
  • Network accessline 71
    const parsed = parseVerifySuffix(       ['http://localhost:3000', '--expect', PREDICATE, '--expect-file', 'check.json'],       4400,
  • Network accessline 72
    ['http://localhost:3000', '--expect', PREDICATE, '--expect-file', 'check.json'],

server/src/command/cli/first-flow.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 10
    const URL = 'http://localhost:5173';
  • Network accessline 12
    "Read https://docs.reticle.sh/skill.md, then improve Reticle's coverage in this repo:\n- add a store";

server/src/command/cli/first-use-checks.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 39
    expect(line).toContain('20.11');     expect(line).toContain('20.10.0');     expect(line).toContain('https://nodejs.org');
  • Network accessline 40
    expect(line).toContain('20.10.0');     expect(line).toContain('https://nodejs.org');   });
  • Network accessline 41
    expect(line).toContain('https://nodejs.org');

server/src/command/cli/first-use-checks.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 48
    const WARNING_PREFIX = '⚠ '; const NODE_DOWNLOAD_URL = 'https://nodejs.org';
  • Network accessline 49
    const NODE_DOWNLOAD_URL = 'https://nodejs.org';
  • Access to secretsline 106
    [Credential-related source omitted]

server/src/command/cli/first-verdict-node.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 92
    const pinned = devCommand?.port;   const pinnedServing =     pinned !== undefined && (await probePage(`http://localhost:${String(pinned)}`)).served;
  • Network accessline 94
    pinned !== undefined && (await probePage(`http://localhost:${String(pinned)}`)).served;

server/src/command/cli/first-verdict.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 18
    const APP = 'http://localhost:5173/';
  • Network accessline 54
    it('uses the app folder pinned port when it already serves', () => {     expect(chooseApp({ devCommand: { port: 3001 }, pinnedServing: true, running: [5173] })).toEqual(       { action: AppChoice.USE, url: 'http://localhost:3001' },
  • Network accessline 55
    expect(chooseApp({ devCommand: { port: 3001 }, pinnedServing: true, running: [5173] })).toEqual(       { action: AppChoice.USE, url: 'http://localhost:3001' },     );
  • Network accessline 56
    { action: AppChoice.USE, url: 'http://localhost:3001' },
  • Network accessline 65
    expect(chooseApp({ pinnedServing: false, running: [5173] })).toEqual({       action: AppChoice.USE,       url: 'http://localhost:5173',
  • Network accessline 66
    action: AppChoice.USE,       url: 'http://localhost:5173',     });
  • Network accessline 67
    url: 'http://localhost:5173',
  • Network accessline 72
    expect(choice.action).toBe(AppChoice.NONE);     if (AppChoice.NONE === choice.action) {       expect(choice.lines.join('\n')).toContain('http://localhost:3000');
  • Network accessline 73
    if (AppChoice.NONE === choice.action) {       expect(choice.lines.join('\n')).toContain('http://localhost:3000');       expect(choice.lines.join('\n')).toContain('http://localhost:5173');
  • Network accessline 74
    expect(choice.lines.join('\n')).toContain('http://localhost:3000');
  • Network accessline 75
    expect(choice.lines.join('\n')).toContain('http://localhost:5173');
  • Network accessline 91
    event(EventType.NET_REQUEST, {         method: 'GET',         url: 'http://localhost:5173/api/a',
  • Network accessline 92
    method: 'GET',         url: 'http://localhost:5173/api/a',         status: 500,
  • Network accessline 93
    url: 'http://localhost:5173/api/a',
  • Network accessline 96
    event(EventType.NET_REQUEST, {         method: 'GET',         url: 'http://localhost:5173/api/b',
  • Network accessline 97
    method: 'GET',         url: 'http://localhost:5173/api/b',         status: 200,
  • Network accessline 98
    url: 'http://localhost:5173/api/b',
  • Network accessline 101
    event(EventType.NET_REQUEST, {         method: 'POST',         url: 'http://localhost:5173/api/c',
  • Network accessline 102
    method: 'POST',         url: 'http://localhost:5173/api/c',         status: 0,
  • Network accessline 103
    url: 'http://localhost:5173/api/c',         status: 0,         error: 'Failed to fetch',
  • Network accessline 112
    consoleErrors: ['boom', 'TypeError: x is undefined'],       failedRequests: [         'GET http://localhost:5173/api/a: HTTP 500',
  • Network accessline 113
    failedRequests: [         'GET http://localhost:5173/api/a: HTTP 500',         'POST http://localhost:5173/api/c: Failed to fetch',
  • Network accessline 114
    'GET http://localhost:5173/api/a: HTTP 500',         'POST http://localhost:5173/api/c: Failed to fetch',       ],
  • Network accessline 115
    'POST http://localhost:5173/api/c: Failed to fetch',
  • Network accessline 122
    event(EventType.NET_REQUEST, {         method: 'GET',         url: 'http://localhost:5173/api/slow',
  • Network accessline 123
    method: 'GET',         url: 'http://localhost:5173/api/slow',         status: 0,
  • Network accessline 124
    url: 'http://localhost:5173/api/slow',
  • Network accessline 133
    pageFactsOf(APP, [documentLoad(200)], {         arrived: false,         landedOn: 'http://localhost:5173/login',
  • Network accessline 134
    arrived: false,         landedOn: 'http://localhost:5173/login',       }),
  • Network accessline 135
    landedOn: 'http://localhost:5173/login',
  • Network accessline 136
    }),     ).toMatchObject({ arrived: false, landedOn: 'http://localhost:5173/login' });   });
  • Network accessline 137
    ).toMatchObject({ arrived: false, landedOn: 'http://localhost:5173/login' });
  • Network accessline 144
    { name: 'About', href: '/about' },     { name: 'About again', href: '/about#team' },     { name: 'Docs', href: 'https://docs.example.com/' },
  • Network accessline 145
    { name: 'About again', href: '/about#team' },     { name: 'Docs', href: 'https://docs.example.com/' },     { name: 'Mail', href: 'mailto:a@b.c' },
  • Network accessline 146
    { name: 'Docs', href: 'https://docs.example.com/' },
  • Network accessline 151
    it('opens each same-origin page once, and never one that ends the session', () => {     expect(linksToOpen(APP, links)).toEqual({       open: ['http://localhost:5173/about', 'http://localhost:5173/pricing?plan=pro'],
  • Network accessline 152
    expect(linksToOpen(APP, links)).toEqual({       open: ['http://localhost:5173/about', 'http://localhost:5173/pricing?plan=pro'],       found: 2,
  • Network accessline 153
    open: ['http://localhost:5173/about', 'http://localhost:5173/pricing?plan=pro'],
  • Network accessline 169
    const pass: SmokeFacts = {     start: cleanPage(APP),     links: [cleanPage('http://localhost:5173/about')],
  • Network accessline 170
    start: cleanPage(APP),     links: [cleanPage('http://localhost:5173/about')],     linksFound: 1,
  • Network accessline 171
    links: [cleanPage('http://localhost:5173/about')],
  • Network accessline 205
    const verdict = judgeSmoke({       ...pass,       links: [{ ...cleanPage('http://localhost:5173/about'), documentStatus: 404 }],
  • Network accessline 206
    ...pass,       links: [{ ...cleanPage('http://localhost:5173/about'), documentStatus: 404 }],     });
  • Network accessline 207
    links: [{ ...cleanPage('http://localhost:5173/about'), documentStatus: 404 }],
  • Network accessline 216
    const verdict = judgeSmoke({       ...pass,       start: { ...cleanPage(APP), arrived: false, landedOn: 'http://localhost:5173/login' },
  • Network accessline 217
    ...pass,       start: { ...cleanPage(APP), arrived: false, landedOn: 'http://localhost:5173/login' },     });
  • Network accessline 218
    start: { ...cleanPage(APP), arrived: false, landedOn: 'http://localhost:5173/login' },

server/src/command/cli/first-verdict.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 22
    const LOCALHOST = 'http://localhost';

server/src/command/cli/front-door.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/gate-accept-coverage.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/gate-completed.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/gate-exit-codes.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/gate-flows-without-sources.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/headless-by-default.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/help-reaches-every-command.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/hook/agent-tables.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/hook/codex-transcript.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 30
    [Credential-related source omitted]
  • Network accessline 31
    action: { type: 'search', query: 'vitest toBeCloseTo', queries: null },       results: [{ type: 'text_result', title: 'Expect', url: 'https://vitest.dev/api/expect' }],     },
  • Network accessline 32
    results: [{ type: 'text_result', title: 'Expect', url: 'https://vitest.dev/api/expect' }],
  • Network accessline 42
    type: 'web_search_call',     status: 'completed',     action: { type: 'open_page', url: 'https://example.org/a' },
  • Network accessline 43
    status: 'completed',     action: { type: 'open_page', url: 'https://example.org/a' },   },
  • Network accessline 44
    action: { type: 'open_page', url: 'https://example.org/a' },
  • Network accessline 105
    expect(JSON.stringify(searches[0])).not.toContain('sk-live-abcdefghijklmnop1234');     expect(searches[1]).toMatchObject({       args: { type: 'open_page', url: 'https://[redacted]' },
  • Network accessline 106
    expect(searches[1]).toMatchObject({       args: { type: 'open_page', url: 'https://[redacted]' },       endedAt: Date.parse(oldOpen.timestamp),
  • Network accessline 107
    args: { type: 'open_page', url: 'https://[redacted]' },

server/src/command/cli/hook/codex-transcript.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/hook/episode-structure.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/hook/episode-structure.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/hook/hook-command.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/hook/hook-command.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/hook/hook-fast.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/hook/hook-fast.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/hook/hook-status.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/hook/prompt-hook.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 104
    [Credential-related source omitted]

server/src/command/cli/hook/prompt-hook.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/hook/tool-hook.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 53
    [Credential-related source omitted]
  • Network accessline 54
    [Credential-related source omitted]
  • Network accessline 55
    [Credential-related source omitted]

server/src/command/cli/hook/tool-hook.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/init-app-files-only.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/init-new-id.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/keep-alive-turn.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 40
    [Credential-related source omitted]
  • Network accessline 41
    [Credential-related source omitted]
  • Network accessline 42
    [Credential-related source omitted]

server/src/command/cli/known-commands.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/known-regression.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/launch/cli-launch.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 12
    describe('decideOpen', () => {   it('with no url + a connected tab → reuse it (do not spawn a duplicate)', () => {     expect(decideOpen([{ url: 'http://localhost:4310/app' }], undefined)).toEqual({
  • Network accessline 13
    it('with no url + a connected tab → reuse it (do not spawn a duplicate)', () => {     expect(decideOpen([{ url: 'http://localhost:4310/app' }], undefined)).toEqual({       action: 'reuse',
  • Network accessline 14
    expect(decideOpen([{ url: 'http://localhost:4310/app' }], undefined)).toEqual({
  • Network accessline 15
    action: 'reuse',       url: 'http://localhost:4310/app',     });
  • Network accessline 16
    url: 'http://localhost:4310/app',
  • Network accessline 24
    it('with a url already open at exactly that url → reuse (idempotent, no pile-up)', () => {     expect(       decideOpen([{ url: 'http://localhost:4310/checkout' }], 'http://localhost:4310/checkout'),
  • Network accessline 25
    expect(       decideOpen([{ url: 'http://localhost:4310/checkout' }], 'http://localhost:4310/checkout'),     ).toEqual({ action: 'reuse', url: 'http://localhost:4310/checkout' });
  • Network accessline 26
    decideOpen([{ url: 'http://localhost:4310/checkout' }], 'http://localhost:4310/checkout'),
  • Network accessline 27
    ).toEqual({ action: 'reuse', url: 'http://localhost:4310/checkout' });
  • Network accessline 30
    /**    * Reusing the tab is still right — the origin match is what stops `reticle open` piling up a tab    * per run. Reporting it as `reusing` was not: `reticle open http://localhost:3000/settings` printed
  • Network accessline 31
    * Reusing the tab is still right — the origin match is what stops `reticle open` piling up a tab    * per run. Reporting it as `reusing` was not: `reticle open http://localhost:3000/settings` printed    * that it had reused a tab, exited 0,
  • Network accessline 32
    * per run. Reporting it as `reusing` was not: `reticle open http://localhost:3000/settings` printed
  • Network accessline 36
    it('with a url on the same origin but a DIFFERENT page → says the tab was left where it is', () => {     expect(       decideOpen([{ url: 'http://localhost:4310/dashboard' }], 'http://localhost:4310/checkout'),
  • Network accessline 37
    expect(       decideOpen([{ url: 'http://localhost:4310/dashboard' }], 'http://localhost:4310/checkout'),     ).toEqual({
  • Network accessline 38
    decideOpen([{ url: 'http://localhost:4310/dashboard' }], 'http://localhost:4310/checkout'),
  • Network accessline 39
    ).toEqual({       action: 'left-as-is',       url: 'http://localhost:4310/dashboard',
  • Network accessline 40
    action: 'left-as-is',       url: 'http://localhost:4310/dashboard',       requested: 'http://localhost:4310/checkout',
  • Network accessline 41
    url: 'http://localhost:4310/dashboard',
  • Network accessline 42
    requested: 'http://localhost:4310/checkout',
  • Network accessline 46
    it('with a url on a different origin → open it', () => {     expect(decideOpen([{ url: 'http://localhost:4310/app' }], 'http://localhost:3000/')).toEqual({
  • Network accessline 47
    expect(decideOpen([{ url: 'http://localhost:4310/app' }], 'http://localhost:3000/')).toEqual({
  • Network accessline 48
    action: 'open',       url: 'http://localhost:3000/',     });
  • Network accessline 49
    url: 'http://localhost:3000/',
  • Network accessline 53
    it('with a url + nothing connected → open it', () => {     expect(decideOpen([], 'http://localhost:5173/')).toEqual({
  • Network accessline 54
    expect(decideOpen([], 'http://localhost:5173/')).toEqual({
  • Network accessline 55
    action: 'open',       url: 'http://localhost:5173/',     });
  • Network accessline 56
    url: 'http://localhost:5173/',
  • Network accessline 68
    expect(       decideOpen(         [{ url: 'http://localhost:4310/checkout', hidden: true }],
  • Network accessline 69
    decideOpen(         [{ url: 'http://localhost:4310/checkout', hidden: true }],         'http://localhost:4310/checkout',
  • Network accessline 70
    [{ url: 'http://localhost:4310/checkout', hidden: true }],
  • Network accessline 71
    'http://localhost:4310/checkout',
  • Network accessline 72
    ),     ).toEqual({ action: 'open', url: 'http://localhost:4310/checkout' });   });
  • Network accessline 73
    ).toEqual({ action: 'open', url: 'http://localhost:4310/checkout' });
  • Network accessline 77
    expect(       decideOpen(         [{ url: 'http://localhost:4310/dashboard', hidden: true }],
  • Network accessline 78
    decideOpen(         [{ url: 'http://localhost:4310/dashboard', hidden: true }],         'http://localhost:4310/checkout',
  • Network accessline 79
    [{ url: 'http://localhost:4310/dashboard', hidden: true }],
  • Network accessline 80
    'http://localhost:4310/checkout',
  • Network accessline 81
    ),     ).toEqual({ action: 'open', url: 'http://localhost:4310/checkout' });   });
  • Network accessline 82
    ).toEqual({ action: 'open', url: 'http://localhost:4310/checkout' });
  • Network accessline 89
    */   it('with no url + the only tab hidden → open that tab\u2019s url (bring the app to the front)', () => {     expect(decideOpen([{ url: 'http://localhost:4310/app', hidden: true }], undefined)).toEqual({
  • Network accessline 90
    it('with no url + the only tab hidden → open that tab\u2019s url (bring the app to the front)', () => {     expect(decideOpen([{ url: 'http://localhost:4310/app', hidden: true }], undefined)).toEqual({       action: 'open',
  • Network accessline 91
    expect(decideOpen([{ url: 'http://localhost:4310/app', hidden: true }], undefined)).toEqual({
  • Network accessline 92
    action: 'open',       url: 'http://localhost:4310/app',     });
  • Network accessline 93
    url: 'http://localhost:4310/app',
  • Network accessline 98
    expect(       decideOpen(         [{ url: 'http://localhost:4310/app', hidden: true }, { url: 'http://localhost:4310/app' }],
  • Network accessline 99
    decideOpen(         [{ url: 'http://localhost:4310/app', hidden: true }, { url: 'http://localhost:4310/app' }],         'http://localhost:4310/app',
  • Network accessline 100
    [{ url: 'http://localhost:4310/app', hidden: true }, { url: 'http://localhost:4310/app' }],
  • Network accessline 101
    'http://localhost:4310/app',
  • Network accessline 102
    ),     ).toEqual({ action: 'reuse', url: 'http://localhost:4310/app' });   });
  • Network accessline 103
    ).toEqual({ action: 'reuse', url: 'http://localhost:4310/app' });
  • Network accessline 107
    expect(       decideOpen(         [{ url: 'http://localhost:4310/app', hidden: false }],
  • Network accessline 108
    decideOpen(         [{ url: 'http://localhost:4310/app', hidden: false }],         'http://localhost:4310/app',
  • Network accessline 109
    [{ url: 'http://localhost:4310/app', hidden: false }],
  • Network accessline 110
    'http://localhost:4310/app',
  • Network accessline 111
    ),     ).toEqual({ action: 'reuse', url: 'http://localhost:4310/app' });   });
  • Network accessline 112
    ).toEqual({ action: 'reuse', url: 'http://localhost:4310/app' });
  • Network accessline 121
    it('treats a tab silent past the staleness threshold as absent, and opens the url', async () => {     const { SESSION_HEALTH } = await import('@reticlehq/core');     const url = 'http://localhost:4310/';
  • Network accessline 122
    const { SESSION_HEALTH } = await import('@reticlehq/core');     const url = 'http://localhost:4310/';     const frozen = { url, lastSeenMs: SESSION_HEALTH.STALE_THRESHOLD_MS + 1 };
  • Network accessline 123
    const url = 'http://localhost:4310/';
  • Network accessline 129
    it('carries lastSeenMs through the status summary it decides on', () => {     const { sessions } = summarizeStatus({       sessions: [{ sessionId: 's1', url: 'http://localhost:4310/', lastSeenMs: 105_000 }],
  • Network accessline 130
    const { sessions } = summarizeStatus({       sessions: [{ sessionId: 's1', url: 'http://localhost:4310/', lastSeenMs: 105_000 }],     });
  • Network accessline 131
    sessions: [{ sessionId: 's1', url: 'http://localhost:4310/', lastSeenMs: 105_000 }],
  • Network accessline 138
    it('reads `hidden` off the daemon payload so decideOpen can see it', () => {     const { sessions } = summarizeStatus({       sessions: [{ sessionId: 'a', url: 'http://localhost:4310/', hidden: true }],
  • Network accessline 139
    const { sessions } = summarizeStatus({       sessions: [{ sessionId: 'a', url: 'http://localhost:4310/', hidden: true }],     });
  • Network accessline 140
    sessions: [{ sessionId: 'a', url: 'http://localhost:4310/', hidden: true }],
  • Network accessline 145
    it('a daemon too old to report `hidden` reads as visible, not hidden', () => {     const { sessions } = summarizeStatus({       sessions: [{ sessionId: 'a', url: 'http://localhost:4310/' }],
  • Network accessline 146
    const { sessions } = summarizeStatus({       sessions: [{ sessionId: 'a', url: 'http://localhost:4310/' }],     });
  • Network accessline 147
    sessions: [{ sessionId: 'a', url: 'http://localhost:4310/' }],
  • Network accessline 153
    describe('openCommand — per-platform OS open', () => {   it('macOS uses `open`', () => {     expect(openCommand('http://x', 'darwin')).toEqual({ cmd: 'open', args: ['http://x'] });
  • Network accessline 154
    it('macOS uses `open`', () => {     expect(openCommand('http://x', 'darwin')).toEqual({ cmd: 'open', args: ['http://x'] });   });
  • Network accessline 155
    expect(openCommand('http://x', 'darwin')).toEqual({ cmd: 'open', args: ['http://x'] });
  • Network accessline 156
    });   it('Windows uses `start`', () => {     expect(openCommand('http://x', 'win32')).toEqual({
  • Network accessline 157
    it('Windows uses `start`', () => {     expect(openCommand('http://x', 'win32')).toEqual({       cmd: 'cmd',
  • Network accessline 158
    expect(openCommand('http://x', 'win32')).toEqual({
  • Network accessline 159
    cmd: 'cmd',       args: ['/c', 'start', '', 'http://x'],     });
  • Network accessline 160
    args: ['/c', 'start', '', 'http://x'],
  • Network accessline 162
    });   it('Linux uses `xdg-open`', () => {     expect(openCommand('http://x', 'linux')).toEqual({ cmd: 'xdg-open', args: ['http://x'] });
  • Network accessline 163
    it('Linux uses `xdg-open`', () => {     expect(openCommand('http://x', 'linux')).toEqual({ cmd: 'xdg-open', args: ['http://x'] });   });
  • Network accessline 164
    expect(openCommand('http://x', 'linux')).toEqual({ cmd: 'xdg-open', args: ['http://x'] });
  • Network accessline 165
    });   it('Windows percent-encodes cmd metacharacters so a URL cannot break out of `start`', () => {     const { args } = openCommand('http://x/?a=1&b=2^c|calc', 'win32');
  • Network accessline 166
    it('Windows percent-encodes cmd metacharacters so a URL cannot break out of `start`', () => {     const { args } = openCommand('http://x/?a=1&b=2^c|calc', 'win32');     const encoded = args[3] ?? '';
  • Network accessline 167
    const { args } = openCommand('http://x/?a=1&b=2^c|calc', 'win32');
  • Network accessline 168
    const encoded = args[3] ?? '';     expect(encoded).toBe('http://x/?a=1%26b=2%5Ec%7Ccalc');     for (const dangerous of ['&', '^', '|', '<', '>']) {
  • Network accessline 169
    expect(encoded).toBe('http://x/?a=1%26b=2%5Ec%7Ccalc');
  • Network accessline 173
    });   it('Windows leaves existing percent-encoding intact (no double-encoding)', () => {     expect(openCommand('http://x/?q=a%20b', 'win32').args[3]).toBe('http://x/?q=a%20b');
  • Network accessline 174
    it('Windows leaves existing percent-encoding intact (no double-encoding)', () => {     expect(openCommand('http://x/?q=a%20b', 'win32').args[3]).toBe('http://x/?q=a%20b');   });
  • Network accessline 175
    expect(openCommand('http://x/?q=a%20b', 'win32').args[3]).toBe('http://x/?q=a%20b');
  • Network accessline 180
    it('runs the platform command with the url (spawn injected, hermetic)', async () => {     const calls: { cmd: string; args: string[] }[] = [];     const failure = await openInBrowser('http://localhost:4310', 'darwin', (cmd, args) => {
  • Network accessline 181
    const calls: { cmd: string; args: string[] }[] = [];     const failure = await openInBrowser('http://localhost:4310', 'darwin', (cmd, args) => {       calls.push({ cmd, args });
  • Network accessline 182
    const failure = await openInBrowser('http://localhost:4310', 'darwin', (cmd, args) => {
  • Network accessline 184
    return Promise.resolve(null);     });     expect(calls).toEqual([{ cmd: 'open', args: ['http://localhost:4310'] }]);
  • Network accessline 185
    });     expect(calls).toEqual([{ cmd: 'open', args: ['http://localhost:4310'] }]);     expect(failure).toBeNull();
  • Network accessline 186
    expect(calls).toEqual([{ cmd: 'open', args: ['http://localhost:4310'] }]);
  • Network accessline 196
    */   it('reports the reason when the launcher cannot be run at all', async () => {     const failure = await openInBrowser('http://localhost:4310', 'linux', () =>
  • Network accessline 197
    it('reports the reason when the launcher cannot be run at all', async () => {     const failure = await openInBrowser('http://localhost:4310', 'linux', () =>       Promise.resolve('spawn xdg-open ENOENT'),
  • Network accessline 198
    const failure = await openInBrowser('http://localhost:4310', 'linux', () =>

server/src/command/cli/launch/cli-launch.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 100
    *  * The origin match is why re-running this never piles up tabs, and it stays. What changed is the  * REPORT: matching by origin meant `reticle open http://localhost:3000/settings` answered `reusing`
  • Network accessline 101
    * The origin match is why re-running this never piles up tabs, and it stays. What changed is the  * REPORT: matching by origin meant `reticle open http://localhost:3000/settings` answered `reusing`  * for a tab sitting on `http://localhost:
  • Network accessline 102
    * REPORT: matching by origin meant `reticle open http://localhost:3000/settings` answered `reusing`
  • Network accessline 103
    * for a tab sitting on `http://localhost:3000/` and exited 0, so the caller read a success for a page

server/src/command/cli/launch/sdk-version-match.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 98
    it('does re-run the commands that serve the project', () => {     for (const argv of [[], ['mcp'], ['verify', 'http://localhost:5173'], ['setup', 'mcp']]) {
  • Network accessline 99
    for (const argv of [[], ['mcp'], ['verify', 'http://localhost:5173'], ['setup', 'mcp']]) {

server/src/command/cli/launch/sdk-version-match.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/lifecycle/daemon-lifecycle.serve-drive.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 15
    const PORT = 4400; const DRIVE_URL = 'http://localhost:5173';
  • Network accessline 16
    const DRIVE_URL = 'http://localhost:5173';

server/src/command/cli/lifecycle/daemon-lifecycle.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/mcp-command-headless.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/mcp-command.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/node-floor-bin.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/open-navigate.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 38
    describe('reticle open --navigate', () => {   it('parses as an opt-in, off by default', () => {     expect(parseCliArgs(['open', 'http://localhost:3000/b', '--navigate'], 4400)).toMatchObject({
  • Network accessline 39
    it('parses as an opt-in, off by default', () => {     expect(parseCliArgs(['open', 'http://localhost:3000/b', '--navigate'], 4400)).toMatchObject({       kind: 'open',
  • Network accessline 40
    expect(parseCliArgs(['open', 'http://localhost:3000/b', '--navigate'], 4400)).toMatchObject({
  • Network accessline 41
    kind: 'open',       url: 'http://localhost:3000/b',       navigate: true,
  • Network accessline 42
    url: 'http://localhost:3000/b',
  • Network accessline 43
    navigate: true,     });     expect(parseCliArgs(['open', 'http://localhost:3000/b'], 4400)).toMatchObject({
  • Network accessline 44
    });     expect(parseCliArgs(['open', 'http://localhost:3000/b'], 4400)).toMatchObject({       kind: 'open',
  • Network accessline 45
    expect(parseCliArgs(['open', 'http://localhost:3000/b'], 4400)).toMatchObject({
  • Network accessline 51
    it('names the tab it left, so --navigate moves that one', () => {     expect(       decideOpen([{ sessionId: 's-a', url: 'http://localhost:3000/a' }], 'http://localhost:3000/b'),
  • Network accessline 52
    expect(       decideOpen([{ sessionId: 's-a', url: 'http://localhost:3000/a' }], 'http://localhost:3000/b'),     ).toEqual({
  • Network accessline 53
    decideOpen([{ sessionId: 's-a', url: 'http://localhost:3000/a' }], 'http://localhost:3000/b'),
  • Network accessline 54
    ).toEqual({       action: 'left-as-is',       url: 'http://localhost:3000/a',
  • Network accessline 55
    action: 'left-as-is',       url: 'http://localhost:3000/a',       requested: 'http://localhost:3000/b',
  • Network accessline 56
    url: 'http://localhost:3000/a',
  • Network accessline 57
    requested: 'http://localhost:3000/b',
  • Network accessline 62
    it('sends reticle_navigate to that session and reports the arrival', async () => {     const daemon = fakeDaemon({ ok: true, url: 'http://localhost:3000/b', confirmed: true });
  • Network accessline 63
    const daemon = fakeDaemon({ ok: true, url: 'http://localhost:3000/b', confirmed: true });
  • Network accessline 66
    port: 4400,       sessionId: 's-a',       url: 'http://localhost:3000/b',
  • Network accessline 67
    sessionId: 's-a',       url: 'http://localhost:3000/b',       connect: daemon.connect,
  • Network accessline 68
    url: 'http://localhost:3000/b',
  • Network accessline 72
    expect(daemon.calls).toEqual([       { name: ReticleTool.NAVIGATE, args: { url: 'http://localhost:3000/b', sessionId: 's-a' } },
  • Network accessline 73
    { name: ReticleTool.NAVIGATE, args: { url: 'http://localhost:3000/b', sessionId: 's-a' } },
  • Network accessline 74
    ]);     expect(out).toEqual({ navigated: 'http://localhost:3000/b', sessionId: 's-a' });   });
  • Network accessline 75
    expect(out).toEqual({ navigated: 'http://localhost:3000/b', sessionId: 's-a' });
  • Network accessline 82
    port: 4400,       sessionId: 's-a',       url: 'http://localhost:3000/b',
  • Network accessline 83
    sessionId: 's-a',       url: 'http://localhost:3000/b',       connect: daemon.connect,
  • Network accessline 84
    url: 'http://localhost:3000/b',
  • Network accessline 89
    expect(out['error']).toBeUndefined();     expect(out).toMatchObject({       requested: 'http://localhost:3000/b',
  • Network accessline 90
    expect(out).toMatchObject({       requested: 'http://localhost:3000/b',       note: NAVIGATE_UNCONFIRMED_NOTE,
  • Network accessline 91
    requested: 'http://localhost:3000/b',
  • Network accessline 100
    port: 4400,       sessionId: 's-a',       url: 'http://localhost:3000/b',
  • Network accessline 101
    sessionId: 's-a',       url: 'http://localhost:3000/b',       connect: daemon.connect,
  • Network accessline 102
    url: 'http://localhost:3000/b',
  • Network accessline 106
    expect(out).toEqual({ navigated: 'http://localhost:3000/b', sessionId: 's-b' });
  • Network accessline 109
    it('passes on where a redirect landed', async () => {     const daemon = fakeDaemon({ ok: true, landedOn: 'http://localhost:3000/login' });
  • Network accessline 110
    const daemon = fakeDaemon({ ok: true, landedOn: 'http://localhost:3000/login' });
  • Network accessline 113
    port: 4400,       sessionId: 's-a',       url: 'http://localhost:3000/b',
  • Network accessline 114
    sessionId: 's-a',       url: 'http://localhost:3000/b',       connect: daemon.connect,
  • Network accessline 115
    url: 'http://localhost:3000/b',
  • Network accessline 119
    expect(out).toMatchObject({       navigated: 'http://localhost:3000/b',
  • Network accessline 120
    navigated: 'http://localhost:3000/b',
  • Network accessline 121
    landedOn: 'http://localhost:3000/login',
  • Network accessline 129
    port: 4400,       sessionId: 's-a',       url: 'http://localhost:3000/b',
  • Network accessline 130
    sessionId: 's-a',       url: 'http://localhost:3000/b',       connect: daemon.connect,
  • Network accessline 131
    url: 'http://localhost:3000/b',
  • Network accessline 141
    port: 4400,       sessionId: 's-a',       url: 'http://localhost:3000/b',
  • Network accessline 142
    sessionId: 's-a',       url: 'http://localhost:3000/b',       connect: () => Promise.reject(new Error('ECONNREFUSED')),
  • Network accessline 143
    url: 'http://localhost:3000/b',
  • Network accessline 153
    describe('the tabs open may pick from', () => {   const tabs = [     { url: 'http://localhost:3000/a', sessionId: 'mine', projectId: 'shop' },
  • Network accessline 154
    const tabs = [     { url: 'http://localhost:3000/a', sessionId: 'mine', projectId: 'shop' },     { url: 'http://localhost:3000/b', sessionId: 'theirs', projectId: 'admin' },
  • Network accessline 155
    { url: 'http://localhost:3000/a', sessionId: 'mine', projectId: 'shop' },
  • Network accessline 156
    { url: 'http://localhost:3000/b', sessionId: 'theirs', projectId: 'admin' },
  • Network accessline 157
    { url: 'http://localhost:3000/c', sessionId: 'unknown' },
  • Network accessline 168
    'shop',       ),       'http://localhost:3000/x',
  • Network accessline 169
    ),       'http://localhost:3000/x',     );
  • Network accessline 170
    'http://localhost:3000/x',

server/src/command/cli/open-navigate.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/ports/port-holder.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/ports/port-holder.ts

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 170
    const out = exec('lsof', ['-nP', `-iTCP:${String(port)}`, '-sTCP:LISTEN', '-F', 'pc']);
  • Dangerous shell operationline 212
    const out = exec('lsof', ['-nP', '-iTCP', '-sTCP:LISTEN', '-Fn']);
  • Dangerous shell operationline 264
    const line = exec('powershell', args, WINDOWS_LOOKUP_TIMEOUT_MS);
  • Dangerous shell operationline 271
    const out = exec('lsof', ['-a', '-p', String(holder.pid), '-d', 'cwd', '-Fn']);

server/src/command/cli/ports/resolve/cli-port.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/ports/resolve/cli-port.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/ports/sibling-ports.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/ports/sibling-ports.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/project-name.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/project-name.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/project-one-id.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 33
    it("asks the platform for the folder's own id, beside the name people look for", async () => {     const id = await resolveProjectId(       'https://p.test',
  • Network accessline 34
    const id = await resolveProjectId(       'https://p.test',       't',
  • Network accessline 35
    'https://p.test',
  • Network accessline 50
    projects = [{ projectId: 'nina-app-ef9029ee', name: 'Nina' }];     const id = await resolveProjectId(       'https://p.test',
  • Network accessline 51
    const id = await resolveProjectId(       'https://p.test',       't',
  • Network accessline 52
    'https://p.test',

server/src/command/cli/report-command.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/report-command.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/retire-older-daemon.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 20
    it('keeps it when a tab is attached, and the skew is described as before', () => {     const tab = { sessionId: 's1', url: 'http://localhost:5173/' };
  • Network accessline 21
    const tab = { sessionId: 's1', url: 'http://localhost:5173/' };

server/src/command/cli/setup-mcp-cli.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/setup-mcp-cli.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/setup-wait-agents.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/status-dev-servers.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/status-fields.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/status/report-status.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/status/status-lines.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 15
    it.each([4400, 5517])('shows the MCP connection URL on port %i (#1963)', (port) => {     const out = statusLines({ port, running: true, sessionCount: 0 }).join('\n');     expect(out).toContain(`http://127.0.0.1:${port}/mcp/sse`);
  • Network accessline 16
    const out = statusLines({ port, running: true, sessionCount: 0 }).join('\n');     expect(out).toContain(`http://127.0.0.1:${port}/mcp/sse`);     expect(out).toContain('If your agent has no reticle_* tools, connect over HTTP/SSE');
  • Network accessline 17
    expect(out).toContain(`http://127.0.0.1:${port}/mcp/sse`);
  • Network accessline 38
    {           sessionId: 'sa308f09a',           url: 'http://localhost:7699/',
  • Network accessline 39
    sessionId: 'sa308f09a',           url: 'http://localhost:7699/',           throttled: true,
  • Network accessline 40
    url: 'http://localhost:7699/',
  • Network accessline 50
    expect(out.join('\n')).toContain('running on :4400 (pid 90790)');     expect(out.join('\n')).toContain('1 page connected');     expect(out.join('\n')).toContain('http://localhost:7699/');
  • Network accessline 52
    expect(out.join('\n')).toContain('http://localhost:7699/');

server/src/command/cli/status/status-lines.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/status/workspace-links.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/status/workspace-links.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/suggested-commands-exist.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/try-command.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 14
    [Credential-related source omitted]
  • Network accessline 15
    const URL_UNDER_TEST = 'https://shop.example';
  • Network accessline 40
    return Promise.resolve(over.sync ?? true);       },       dashboardUrl: () => Promise.resolve('https://app.reticle.test/p/shop'),
  • Network accessline 41
    },       dashboardUrl: () => Promise.resolve('https://app.reticle.test/p/shop'),       out: (line) => seen.out.push(line),
  • Network accessline 42
    dashboardUrl: () => Promise.resolve('https://app.reticle.test/p/shop'),
  • Network accessline 76
    'Your free drives are used up.',       'Add a card to keep driving.',       'Plans: https://app.reticle.test/settings?group=billing',
  • Network accessline 77
    'Add a card to keep driving.',       'Plans: https://app.reticle.test/settings?group=billing',     ]);
  • Network accessline 78
    'Plans: https://app.reticle.test/settings?group=billing',
  • Network accessline 100
    '  ✗ broken: Shopper: applies a coupon',       '  ? not proved (blocked): Admin: refunds',       'See it in your dashboard: https://app.reticle.test/runs/harness-1',
  • Network accessline 101
    '  ? not proved (blocked): Admin: refunds',       'See it in your dashboard: https://app.reticle.test/runs/harness-1',     ]);
  • Network accessline 102
    'See it in your dashboard: https://app.reticle.test/runs/harness-1',
  • Network accessline 158
    describe('parseTryArgs', () => {   it('takes a url and an optional persona, and refuses anything else', () => {     expect(parseTryArgs(['https://a', '--persona', 'a buyer'])).toEqual({
  • Network accessline 159
    it('takes a url and an optional persona, and refuses anything else', () => {     expect(parseTryArgs(['https://a', '--persona', 'a buyer'])).toEqual({       url: 'https://a',
  • Network accessline 160
    expect(parseTryArgs(['https://a', '--persona', 'a buyer'])).toEqual({
  • Network accessline 161
    url: 'https://a',
  • Network accessline 163
    });     expect(parseTryArgs([])).toHaveProperty('error');     expect(parseTryArgs(['https://a', '--persona'])).toHaveProperty('error');
  • Network accessline 164
    expect(parseTryArgs([])).toHaveProperty('error');     expect(parseTryArgs(['https://a', '--persona'])).toHaveProperty('error');     expect(parseTryArgs(['https://a', '--port', '1'])).toHaveProperty('error');
  • Network accessline 165
    expect(parseTryArgs(['https://a', '--persona'])).toHaveProperty('error');
  • Network accessline 166
    expect(parseTryArgs(['https://a', '--port', '1'])).toHaveProperty('error');

server/src/command/cli/try-command.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/tutorial.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/two-builds/compare-command.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 30
    const page = leasedPage(       caller({ [ReticleTool.SNAPSHOT]: text({ tree: '- button "A" (ref=e1)' }) }, calls),       'http://a/',
  • Network accessline 31
    caller({ [ReticleTool.SNAPSHOT]: text({ tree: '- button "A" (ref=e1)' }) }, calls),       'http://a/',       's1',
  • Network accessline 32
    'http://a/',
  • Network accessline 44
    const page = leasedPage(       caller({ [ReticleTool.NAVIGATE]: text({ ok: true, sessionId: 's2' }) }, calls),       'http://a/',
  • Network accessline 45
    caller({ [ReticleTool.NAVIGATE]: text({ ok: true, sessionId: 's2' }) }, calls),       'http://a/',       's1',
  • Network accessline 46
    'http://a/',
  • Network accessline 59
    await leasedPage(       caller({ [ReticleTool.ACT]: text({ dispatched: true }) }, local),       'http://127.0.0.1:4310/',
  • Network accessline 60
    caller({ [ReticleTool.ACT]: text({ dispatched: true }) }, local),       'http://127.0.0.1:4310/',       's1',
  • Network accessline 61
    'http://127.0.0.1:4310/',
  • Network accessline 68
    await leasedPage(       caller({ [ReticleTool.ACT]: text({ dispatched: true }) }, preview),       'https://pr-12.app.example.com/',
  • Network accessline 69
    caller({ [ReticleTool.ACT]: text({ dispatched: true }) }, preview),       'https://pr-12.app.example.com/',       's1',
  • Network accessline 70
    'https://pr-12.app.example.com/',
  • Network accessline 77
    const page = leasedPage(       caller({ [ReticleTool.ACT]: text({ dispatched: true, since: 41 }) }),       'http://a/',
  • Network accessline 78
    caller({ [ReticleTool.ACT]: text({ dispatched: true, since: 41 }) }),       'http://a/',       's1',
  • Network accessline 79
    'http://a/',
  • Network accessline 89
    {           [ReticleTool.NETWORK]: text({             calls: [{ method: 'POST', url: 'http://a/api/x?k=1', status: 500, requestBody: '{}' }],
  • Network accessline 90
    [ReticleTool.NETWORK]: text({             calls: [{ method: 'POST', url: 'http://a/api/x?k=1', status: 500, requestBody: '{}' }],           }),
  • Network accessline 91
    calls: [{ method: 'POST', url: 'http://a/api/x?k=1', status: 500, requestBody: '{}' }],
  • Network accessline 95
    calls,       ),       'http://a/',
  • Network accessline 96
    ),       'http://a/',       's1',
  • Network accessline 97
    'http://a/',
  • Network accessline 108
    const page = leasedPage(       caller({ [ReticleTool.NETWORK]: refused('window_ms is not allowed here') }),       'http://a/',
  • Network accessline 109
    caller({ [ReticleTool.NETWORK]: refused('window_ms is not allowed here') }),       'http://a/',       's1',
  • Network accessline 110
    'http://a/',
  • Network accessline 119
    const page = leasedPage(       caller({ [ReticleTool.ACT]: refused('ref e9 no longer resolves') }),       'http://a/',
  • Network accessline 120
    caller({ [ReticleTool.ACT]: refused('ref e9 no longer resolves') }),       'http://a/',       's1',
  • Network accessline 121
    'http://a/',
  • Network accessline 128
    const page = leasedPage(       caller({ [ReticleTool.ACT]: refused("sessionId 's1' names no session") }),       'http://a/',
  • Network accessline 129
    caller({ [ReticleTool.ACT]: refused("sessionId 's1' names no session") }),       'http://a/',       's1',
  • Network accessline 130
    'http://a/',
  • Network accessline 139
    it('exits 2 and says why when the daemon cannot be reached', async () => {     const out = await runCompareCommand({       reference: 'http://a/',
  • Network accessline 140
    const out = await runCompareCommand({       reference: 'http://a/',       candidate: 'http://b/',
  • Network accessline 141
    reference: 'http://a/',
  • Network accessline 142
    candidate: 'http://b/',
  • Network accessline 151
    it('prints one JSON object with --json', async () => {     const out = await runCompareCommand({       reference: 'http://a/',
  • Network accessline 152
    const out = await runCompareCommand({       reference: 'http://a/',       candidate: 'http://b/',
  • Network accessline 153
    reference: 'http://a/',
  • Network accessline 154
    candidate: 'http://b/',

server/src/command/cli/two-builds/compare-command.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 166
    async function fetchText(url: string): Promise<string | undefined> {   try {     const response = await fetch(url, { signal: AbortSignal.timeout(FETCH_MS) });
  • Network accessline 167
    try {     const response = await fetch(url, { signal: AbortSignal.timeout(FETCH_MS) });     return response.ok ? await response.text() : undefined;
  • Network accessline 168
    const response = await fetch(url, { signal: AbortSignal.timeout(FETCH_MS) });

server/src/command/cli/verify-against.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 29
    [ReticleTool.SNAPSHOT]: { tree: '- button "Save" (ref=e1)', status: { route: '/x' } },     });     const driver = daemonDriver(caller, { url: 'http://a', sessionId: 's1', closeLease: false });
  • Network accessline 30
    });     const driver = daemonDriver(caller, { url: 'http://a', sessionId: 's1', closeLease: false });     expect(await driver.look()).toEqual({ tree: '- button "Save" (ref=e1)', route: '/x' });
  • Network accessline 31
    const driver = daemonDriver(caller, { url: 'http://a', sessionId: 's1', closeLease: false });
  • Network accessline 41
    [ReticleTool.SNAPSHOT]: { tree: '' },     });     const driver = daemonDriver(ok.caller, { url: 'http://a', sessionId: 's1', closeLease: false });
  • Network accessline 42
    });     const driver = daemonDriver(ok.caller, { url: 'http://a', sessionId: 's1', closeLease: false });     expect(await driver.reset()).toBe(true);
  • Network accessline 43
    const driver = daemonDriver(ok.caller, { url: 'http://a', sessionId: 's1', closeLease: false });
  • Network accessline 47
    const lost = fakeCaller({ [ReticleTool.NAVIGATE]: { ok: true, confirmed: false } });     const other = daemonDriver(lost.caller, {       url: 'http://a',
  • Network accessline 48
    const other = daemonDriver(lost.caller, {       url: 'http://a',       sessionId: 's1',
  • Network accessline 49
    url: 'http://a',
  • Network accessline 57
    const yes = fakeCaller({ [ReticleTool.ACT]: { dispatched: true } });     const no = fakeCaller({ [ReticleTool.ACT]: { dispatched: false } });     const open = { url: 'http://a', sessionId: 's1', closeLease: false };
  • Network accessline 58
    const no = fakeCaller({ [ReticleTool.ACT]: { dispatched: false } });     const open = { url: 'http://a', sessionId: 's1', closeLease: false };     expect((await daemonDriver(yes.caller, open).act('e1', 'fill', 'v')).ok).toBe(true);
  • Network accessline 59
    const open = { url: 'http://a', sessionId: 's1', closeLease: false };
  • Network accessline 67
    [ReticleTool.FLOW_REPLAY]: { status: 'ok', steps: [{ step: 1, ok: true, anchor: 'save' }] },     });     const driver = daemonDriver(caller, { url: 'http://a', sessionId: 's1', closeLease: false });
  • Network accessline 68
    });     const driver = daemonDriver(caller, { url: 'http://a', sessionId: 's1', closeLease: false });     await driver.replayStep('checkout', 0);
  • Network accessline 69
    const driver = daemonDriver(caller, { url: 'http://a', sessionId: 's1', closeLease: false });
  • Network accessline 95
    },     });     const open = { url: 'http://a', sessionId: 's1', closeLease: false };
  • Network accessline 96
    });     const open = { url: 'http://a', sessionId: 's1', closeLease: false };     expect((await daemonDriver(checked.caller, open).replayStep('f', 0)).done).toBe(true);
  • Network accessline 97
    const open = { url: 'http://a', sessionId: 's1', closeLease: false };
  • Network accessline 105
    const parsed = parseVerifySuffix(       [         'http://pr.test',
  • Network accessline 106
    [         'http://pr.test',         '--against',
  • Network accessline 107
    'http://pr.test',
  • Network accessline 108
    '--against',         'http://prod.test',         '--select',
  • Network accessline 109
    'http://prod.test',
  • Network accessline 117
    expect(parsed).toMatchObject({       kind: 'ok',       url: 'http://pr.test',
  • Network accessline 118
    kind: 'ok',       url: 'http://pr.test',       against: 'http://prod.test',
  • Network accessline 119
    url: 'http://pr.test',
  • Network accessline 120
    against: 'http://prod.test',
  • Network accessline 122
    resultsJson: 'o.json',     });     expect(parseVerifySuffix(['http://pr.test'], 4400)).not.toHaveProperty('against');
  • Network accessline 123
    });     expect(parseVerifySuffix(['http://pr.test'], 4400)).not.toHaveProperty('against');   });
  • Network accessline 124
    expect(parseVerifySuffix(['http://pr.test'], 4400)).not.toHaveProperty('against');
  • Network accessline 127
    it('needs a url, and refuses a predicate or a model drive beside it', () => {     expect(parseVerifySuffix(['http://pr.test', '--against'], 4400)).toMatchObject({
  • Network accessline 128
    expect(parseVerifySuffix(['http://pr.test', '--against'], 4400)).toMatchObject({
  • Network accessline 131
    for (const extra of [['--expect', '{"kind":"signal","name":"x"}'], ['--explore']]) {       expect(         parseVerifySuffix(['http://pr.test', '--against', 'http://prod.test', ...extra], 4400),
  • Network accessline 132
    expect(         parseVerifySuffix(['http://pr.test', '--against', 'http://prod.test', ...extra], 4400),       ).toMatchObject({ kind: 'error' });
  • Network accessline 133
    parseVerifySuffix(['http://pr.test', '--against', 'http://prod.test', ...extra], 4400),

server/src/command/cli/verify-against.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/verify-confirm-dangerous.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    describe('reticle verify --confirm-dangerous', () => {   it('is read off the command line, and absent unless given', () => {     const given = parseVerifySuffix(['http://localhost:3000', '--confirm-dangerous'], 4400);
  • Network accessline 17
    it('is read off the command line, and absent unless given', () => {     const given = parseVerifySuffix(['http://localhost:3000', '--confirm-dangerous'], 4400);     expect(given).toMatchObject({ kind: 'ok', confirmDangerous: true });
  • Network accessline 18
    const given = parseVerifySuffix(['http://localhost:3000', '--confirm-dangerous'], 4400);
  • Network accessline 19
    expect(given).toMatchObject({ kind: 'ok', confirmDangerous: true });     const plain = parseVerifySuffix(['http://localhost:3000'], 4400);     expect(plain).not.toHaveProperty('confirmDangerous');
  • Network accessline 20
    const plain = parseVerifySuffix(['http://localhost:3000'], 4400);

server/src/command/cli/verify-no-session.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/verify-port-busy-message.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/verify-require-start-control.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 17
    describe('reticle verify --require-start-control', () => {   it('is read off the command line, and absent unless given', () => {     const given = parseVerifySuffix(['http://localhost:3000', '--require-start-control'], 4400);
  • Network accessline 18
    it('is read off the command line, and absent unless given', () => {     const given = parseVerifySuffix(['http://localhost:3000', '--require-start-control'], 4400);     expect(given).toMatchObject({ kind: 'ok', requireStartControl: true });
  • Network accessline 19
    const given = parseVerifySuffix(['http://localhost:3000', '--require-start-control'], 4400);
  • Network accessline 20
    expect(given).toMatchObject({ kind: 'ok', requireStartControl: true });     const plain = parseVerifySuffix(['http://localhost:3000'], 4400);     expect(plain).not.toHaveProperty('requireStartControl');
  • Network accessline 21
    const plain = parseVerifySuffix(['http://localhost:3000'], 4400);
  • Network accessline 27
    expect(       parseCliArgs(['verify', 'http://localhost:3000', '--require-start-control'], 4400),
  • Network accessline 28
    parseCliArgs(['verify', 'http://localhost:3000', '--require-start-control'], 4400),

server/src/command/cli/verify-results.score.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/verify-results.ts

  • Executable scriptline 1
    Executable file

server/src/command/cli/verify-sweep.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 15
    describe('reticle verify --sweep', () => {   it('survives the whole command line, and is absent unless given', () => {     expect(parseCliArgs(['verify', 'http://localhost:3000', '--sweep'], 4400)).toMatchObject({
  • Network accessline 16
    it('survives the whole command line, and is absent unless given', () => {     expect(parseCliArgs(['verify', 'http://localhost:3000', '--sweep'], 4400)).toMatchObject({       sweep: true,
  • Network accessline 17
    expect(parseCliArgs(['verify', 'http://localhost:3000', '--sweep'], 4400)).toMatchObject({
  • Network accessline 18
    sweep: true,     });     expect(parseCliArgs(['verify', 'http://localhost:3000'], 4400)).not.toHaveProperty('sweep');
  • Network accessline 19
    });     expect(parseCliArgs(['verify', 'http://localhost:3000'], 4400)).not.toHaveProperty('sweep');   });
  • Network accessline 20
    expect(parseCliArgs(['verify', 'http://localhost:3000'], 4400)).not.toHaveProperty('sweep');

server/src/command/cli/verify-unsupported-flags.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 3
    *  * Two flags were dropped on the floor, and each one produced a different kind of wrong answer  * ([#993](https://github.com/reticlehq/reticle/issues/993)):
  • Network accessline 4
    * Two flags were dropped on the floor, and each one produced a different kind of wrong answer  * ([#993](https://github.com/reticlehq/reticle/issues/993)):  *
  • Network accessline 5
    * ([#993](https://github.com/reticlehq/reticle/issues/993)):
  • Network accessline 29
    const URL_ = 'http://localhost:3000';

server/src/command/daemon/binding/daemon-status-probe.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/binding/daemon-status-probe.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/binding/free-port.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/binding/free-port.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/binding/held-port.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/binding/loopback-alias.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/binding/loopback-alias.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/binding/loopback-reach.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/binding/loopback-reach.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/binding/port-presence.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/binding/port-presence.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/crash-cause-wiring.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/daemon-argv.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/daemon-children-hide-console.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/daemon-is-alive.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/daemon-log-rotation.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/daemon-log-runaway.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/daemon-outlives-spawner.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 6
    * `reticle_daemon_signalled {"signal":"SIGTERM"}` within a second of each such command finishing,  * and from the outside it reads as "the daemon keeps dying" with no visible cause. That is named in  * [#126](https://github.com/reticlehq/re
  • Network accessline 7
    * and from the outside it reads as "the daemon keeps dying" with no visible cause. That is named in  * [#126](https://github.com/reticlehq/reticle/issues/126) as the mechanism behind most such reports.  *
  • Network accessline 8
    * [#126](https://github.com/reticlehq/reticle/issues/126) as the mechanism behind most such reports.

server/src/command/daemon/daemon-reclaim.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/daemon-resilience.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/daemon-resilience.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/daemon-resolve.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/daemon-resolve.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/daemon-spawn.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/daemon-state-home.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/daemon-win32-escape.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/daemon.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/dev-servers.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 24
    pid,     root: `/repo/app-${String(port)}`,     url: `http://localhost:${String(port)}/`,
  • Network accessline 25
    root: `/repo/app-${String(port)}`,     url: `http://localhost:${String(port)}/`,     sdkVersion: '2.13.0',
  • Network accessline 26
    url: `http://localhost:${String(port)}/`,

server/src/command/daemon/dev-servers.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/exit-trace.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/idle-shutdown.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/idle-shutdown.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/lifetime/daemon-exit.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/lifetime/daemon-exit.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/lifetime/daemon-usefulness.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/lifetime/daemon-usefulness.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/lifetime/death-cause.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/lifetime/death-cause.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/lifetime/heartbeat.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/lifetime/heartbeat.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/lifetime/idle-grace.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/lifetime/idle-grace.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/lifetime/log-cap.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/lifetime/startup-failure.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/lifetime/startup-failure.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/lifetime/unclean-predecessor.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/lifetime/unclean-predecessor.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/port-state.ts

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 29
    const commandLine = exec('ps', ['-o', 'command=', '-p', String(holder.pid)]);

server/src/command/daemon/proxy-disconnect-storm.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/state-dir.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/state-dir.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/wake-decision.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/wake-decision.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/win32-escape.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/daemon/win32-escape.ts

  • Executable scriptline 1
    Executable file

server/src/command/dev/pending-release-check.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/dev/vitest-worktree-exclude.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/agent-configs.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/agent-configs.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 280
    [Credential-related source omitted]

server/src/command/setup/agent-io.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/agent-next-steps.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/agent-next-steps.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/agent-notice-memory.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/agent-notice-memory.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 6
    * does it because that is where the project gets wired. Both then narrate the clients whose config  * we refuse to rewrite -- a Zed settings file with comments in it, a Continue YAML somebody  * formatted -- so a `curl | sh` followed by `re
  • Network accessline 7
    * we refuse to rewrite -- a Zed settings file with comments in it, a Continue YAML somebody  * formatted -- so a `curl | sh` followed by `reticle init` prints the same two paragraphs twice in  * one sitting, and prints them again on every r
  • Dangerous shell operationline 8
    * formatted -- so a `curl | sh` followed by `reticle init` prints the same two paragraphs twice in
  • Network accessline 8
    * formatted -- so a `curl | sh` followed by `reticle init` prints the same two paragraphs twice in

server/src/command/setup/agent-writer.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/agent-writer.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 39
    [Credential-related source omitted]

server/src/command/setup/approval-migration.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/approval-migration.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/auto-approve.test.ts

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 54
    permissions: { allow: ['WebSearch'], deny: ['Bash(rm *)'] },
  • Dangerous shell operationline 60
    permissions: { allow: ['WebSearch', 'mcp__reticle'], deny: ['Bash(rm *)'] },

server/src/command/setup/auto-approve.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 83
    [Credential-related source omitted]
  • Access to secretsline 127
    [Credential-related source omitted]
  • Access to secretsline 142
    [Credential-related source omitted]
  • Access to secretsline 169
    [Credential-related source omitted]
  • Access to secretsline 173
    [Credential-related source omitted]
  • Access to secretsline 242
    [Credential-related source omitted]

server/src/command/setup/bounded-run.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/bringup/bridge-port.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/bringup/bridge-port.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/bringup/connect-lease.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/bringup/dev-server-files.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 14
    const APP = '/work/next-app'; const URL = 'http://localhost:3000';
  • Network accessline 15
    const URL = 'http://localhost:3000';

server/src/command/setup/bringup/dev-server-files.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/bringup/dev-server-log-cap.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/bringup/dev-server-log-cap.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/bringup/dev-server-wait.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 55
    describe('which url to watch', () => {   it('reads the url the tool announced rather than composing one', () => {     expect(announcedUrl('  ➜  Local:   http://localhost:5173/')).toBe('http://localhost:5173');
  • Network accessline 56
    it('reads the url the tool announced rather than composing one', () => {     expect(announcedUrl('  ➜  Local:   http://localhost:5173/')).toBe('http://localhost:5173');   });
  • Network accessline 57
    expect(announcedUrl('  ➜  Local:   http://localhost:5173/')).toBe('http://localhost:5173');
  • Network accessline 60
    it('finds an announcement among noise', () => {     expect(urlToWatch('warn: something\n- Local: http://127.0.0.1:3000\nready', [])).toBe(
  • Network accessline 61
    expect(urlToWatch('warn: something\n- Local: http://127.0.0.1:3000\nready', [])).toBe(
  • Network accessline 62
    'http://127.0.0.1:3000',
  • Network accessline 68
    it('falls back to a port our own process group was seen binding', () => {     expect(urlToWatch('Compiled successfully.', [3200])).toBe('http://localhost:3200');
  • Network accessline 69
    expect(urlToWatch('Compiled successfully.', [3200])).toBe('http://localhost:3200');
  • Network accessline 72
    it('prefers what the tool said over what we observed', () => {     expect(urlToWatch('- Local: http://localhost:5173', [3200])).toBe('http://localhost:5173');
  • Network accessline 73
    expect(urlToWatch('- Local: http://localhost:5173', [3200])).toBe('http://localhost:5173');

server/src/command/setup/bringup/dev-server-wait.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 92
    return (     `port ${port} is already in use — something else is serving there, so this launcher did not ` +     `bind. Pass --url http://localhost:${port} if that process is this app, or free the port and re-run.`
  • Network accessline 93
    `port ${port} is already in use — something else is serving there, so this launcher did not ` +     `bind. Pass --url http://localhost:${port} if that process is this app, or free the port and re-run.`   );
  • Network accessline 94
    `bind. Pass --url http://localhost:${port} if that process is this app, or free the port and re-run.`
  • Network accessline 136
    if (undefined !== announced) return announced;   const port = observedPorts[0];   return undefined === port ? undefined : `http://localhost:${port}`;
  • Network accessline 137
    const port = observedPorts[0];   return undefined === port ? undefined : `http://localhost:${port}`; }
  • Network accessline 138
    return undefined === port ? undefined : `http://localhost:${port}`;

server/src/command/setup/bringup/ensure-daemon.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 76
    version: '2.14.0',         sessionCount: 1,         sessions: [{ sessionId: 's1', url: 'http://localhost:3000/' }],
  • Network accessline 77
    sessionCount: 1,         sessions: [{ sessionId: 's1', url: 'http://localhost:3000/' }],       },
  • Network accessline 78
    sessions: [{ sessionId: 's1', url: 'http://localhost:3000/' }],

server/src/command/setup/bringup/ensure-daemon.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/bringup/relaunch.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/bringup/relaunch.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/bringup/static-page-server.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 28
    it('serves index.html at / and a file below it, each with its type', async () => {     running = await startStaticPageServer({ root: site(), port: 0 });     const home = await fetch(`${running.url}`);
  • Network accessline 29
    running = await startStaticPageServer({ root: site(), port: 0 });     const home = await fetch(`${running.url}`);     expect(home.status).toBe(200);
  • Network accessline 30
    const home = await fetch(`${running.url}`);
  • Network accessline 32
    expect(home.headers.get('content-type')).toContain('text/html');     expect(await home.text()).toContain('home');     const js = await fetch(`${running.url}js/app.js`);
  • Network accessline 33
    expect(await home.text()).toContain('home');     const js = await fetch(`${running.url}js/app.js`);     expect(js.headers.get('content-type')).toContain('text/javascript');
  • Network accessline 34
    const js = await fetch(`${running.url}js/app.js`);
  • Network accessline 39
    const root = site();     running = await startStaticPageServer({ root: join(root, 'js'), port: 0 });     const escaped = await fetch(`${running.url}..%2F${STATIC_PAGE_INDEX}`);
  • Network accessline 40
    running = await startStaticPageServer({ root: join(root, 'js'), port: 0 });     const escaped = await fetch(`${running.url}..%2F${STATIC_PAGE_INDEX}`);     expect(escaped.status).toBe(404);
  • Network accessline 41
    const escaped = await fetch(`${running.url}..%2F${STATIC_PAGE_INDEX}`);
  • Network accessline 45
    it('answers 404 for a missing file rather than the index', async () => {     running = await startStaticPageServer({ root: site(), port: 0 });     expect((await fetch(`${running.url}nope.css`)).status).toBe(404);
  • Network accessline 46
    running = await startStaticPageServer({ root: site(), port: 0 });     expect((await fetch(`${running.url}nope.css`)).status).toBe(404);   });
  • Network accessline 47
    expect((await fetch(`${running.url}nope.css`)).status).toBe(404);
  • Network accessline 83
    const before = readFileSync(join(root, STATIC_PAGE_INDEX));     running = await startStaticPageServer({ root, port: 0, connect: CONNECT });     const page = await (await fetch(running.url)).text();
  • Network accessline 84
    running = await startStaticPageServer({ root, port: 0, connect: CONNECT });     const page = await (await fetch(running.url)).text();     expect(page).toContain(MARKER);
  • Network accessline 85
    const page = await (await fetch(running.url)).text();
  • Network accessline 93
    const root = site();     running = await startStaticPageServer({ root, port: 0, connect: CONNECT });     expect(await (await fetch(`${running.url}js/app.js`)).text()).toBe('window.loaded = 1;');
  • Network accessline 94
    running = await startStaticPageServer({ root, port: 0, connect: CONNECT });     expect(await (await fetch(`${running.url}js/app.js`)).text()).toBe('window.loaded = 1;');     const once = await (await fetch(running.url)).text();
  • Network accessline 95
    expect(await (await fetch(`${running.url}js/app.js`)).text()).toBe('window.loaded = 1;');
  • Network accessline 96
    const once = await (await fetch(running.url)).text();
  • Network accessline 97
    writeFileSync(join(root, STATIC_PAGE_INDEX), once);     expect(await (await fetch(running.url)).text()).toBe(once);   });
  • Network accessline 98
    expect(await (await fetch(running.url)).text()).toBe(once);
  • Network accessline 101
    it('is not added when the server has no connect', async () => {     running = await startStaticPageServer({ root: site(), port: 0 });     expect(await (await fetch(running.url)).text()).toBe('<html><body>home</body></html>');
  • Network accessline 102
    running = await startStaticPageServer({ root: site(), port: 0 });     expect(await (await fetch(running.url)).text()).toBe('<html><body>home</body></html>');   });
  • Network accessline 103
    expect(await (await fetch(running.url)).text()).toBe('<html><body>home</body></html>');

server/src/command/setup/bringup/static-page-server.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 66
    let path: string;   try {     path = decodeURIComponent(new URL(rawUrl, 'http://x').pathname);
  • Network accessline 67
    try {     path = decodeURIComponent(new URL(rawUrl, 'http://x').pathname);   } catch {
  • Network accessline 68
    path = decodeURIComponent(new URL(rawUrl, 'http://x').pathname);
  • Network accessline 168
    );   return {     url: `http://${ANNOUNCED_HOST}:${String(bound)}/`,
  • Network accessline 169
    return {     url: `http://${ANNOUNCED_HOST}:${String(bound)}/`,     close: async () => {
  • Network accessline 170
    url: `http://${ANNOUNCED_HOST}:${String(bound)}/`,

server/src/command/setup/confirm-dev-server.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 22
    it('turns NO_SESSION into NO_PAGE when an instrumented dev server is running', () => {     expect(       sharpenWithDevServers(InitConfirmation.NO_SESSION, [server(5173, 'http://localhost:5173/')]),
  • Network accessline 23
    expect(       sharpenWithDevServers(InitConfirmation.NO_SESSION, [server(5173, 'http://localhost:5173/')]),     ).toBe(InitConfirmation.NO_PAGE);
  • Network accessline 24
    sharpenWithDevServers(InitConfirmation.NO_SESSION, [server(5173, 'http://localhost:5173/')]),
  • Network accessline 37
    */   it('never overrides a confirmation that already means something', () => {     const running = [server(5173, 'http://localhost:5173/')];
  • Network accessline 38
    it('never overrides a confirmation that already means something', () => {     const running = [server(5173, 'http://localhost:5173/')];     expect(sharpenWithDevServers(InitConfirmation.CONNECTED, running)).toBe(
  • Network accessline 39
    const running = [server(5173, 'http://localhost:5173/')];
  • Network accessline 50
    it('names the URL the dev server reported, and does not ask for a restart', () => {     const message = confirmationMessage(InitConfirmation.NO_PAGE, PORT, [       server(5173, 'http://localhost:5173/'),
  • Network accessline 51
    const message = confirmationMessage(InitConfirmation.NO_PAGE, PORT, [       server(5173, 'http://localhost:5173/'),     ]);
  • Network accessline 52
    server(5173, 'http://localhost:5173/'),
  • Network accessline 53
    ]);     expect(message).toContain('http://localhost:5173/');     expect(message.toLowerCase()).not.toContain('restart');
  • Network accessline 54
    expect(message).toContain('http://localhost:5173/');
  • Network accessline 62
    it('names every announced app in a monorepo', () => {     const message = confirmationMessage(InitConfirmation.NO_PAGE, PORT, [       server(5173, 'http://localhost:5173/'),
  • Network accessline 63
    const message = confirmationMessage(InitConfirmation.NO_PAGE, PORT, [       server(5173, 'http://localhost:5173/'),       server(3000, 'http://localhost:3000/'),
  • Network accessline 64
    server(5173, 'http://localhost:5173/'),
  • Network accessline 65
    server(3000, 'http://localhost:3000/'),
  • Network accessline 66
    ]);     expect(message).toContain('http://localhost:5173/');     expect(message).toContain('http://localhost:3000/');
  • Network accessline 67
    expect(message).toContain('http://localhost:5173/');
  • Network accessline 68
    expect(message).toContain('http://localhost:3000/');

server/src/command/setup/desktop-shape.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 69
    it('recognises both platforms, because Windows differs', () => {     expect(isDesktopOrigin('tauri://localhost/index.html')).toBe(true);     expect(isDesktopOrigin('http://tauri.localhost/')).toBe(true);
  • Network accessline 70
    expect(isDesktopOrigin('tauri://localhost/index.html')).toBe(true);     expect(isDesktopOrigin('http://tauri.localhost/')).toBe(true);   });
  • Network accessline 71
    expect(isDesktopOrigin('http://tauri.localhost/')).toBe(true);
  • Network accessline 74
    it('does not mistake a dev server for one', () => {     expect(isDesktopOrigin('http://localhost:1420/')).toBe(false);
  • Network accessline 75
    expect(isDesktopOrigin('http://localhost:1420/')).toBe(false);

server/src/command/setup/desktop-shape.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 10
    *    session that is not the app, and the session picker would then have to choose between them —  *    which is exactly the stale-tab false green, arranged deliberately.  * 2. **Do not wait for an HTTP port.** Tauri serves `tauri://localho
  • Network accessline 11
    *    which is exactly the stale-tab false green, arranged deliberately.  * 2. **Do not wait for an HTTP port.** Tauri serves `tauri://localhost` (`http://tauri.localhost`  *    on Windows) from inside the webview; there is nothing for `fetc
  • Network accessline 12
    * 2. **Do not wait for an HTTP port.** Tauri serves `tauri://localhost` (`http://tauri.localhost  *    on Windows) from inside the webview; there is nothing for `fetch` to probe. Electron under
  • Network accessline 50
    const TAURI_ORIGINS = ['tauri://localhost', 'http://tauri.localhost'] as const;

server/src/command/setup/finding-before-open.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/flags-named-exist.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/init/agent-restart.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/init/agent-restart.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/init/init-host.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/init/init-host.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/init/init-port.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/init/init-port.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/init/init-runtime.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/init/init-runtime.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 186
    [Credential-related source omitted]
  • Network accessline 263
    // told to do something by hand and told nothing about whether their server was even up, whether   // the snippet had landed, or which url was checked. The runtime phase answers all three, and its   // answers are the actionable ones: "noth
  • Network accessline 264
    // the snippet had landed, or which url was checked. The runtime phase answers all three, and its   // answers are the actionable ones: "nothing is serving http://…", "the SDK is NOT in the page".   //
  • Network accessline 265
    // answers are the actionable ones: "nothing is serving http://…", "the SDK is NOT in the page".

server/src/command/setup/install-launcher.test.ts

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 12
    * the install on cases a user meets every day. A global npm folder that needs sudo (EACCES) died with
  • Network accessline 82
    `if [ "$1 $2" = "prefix -g" ]; then echo "${prefix}"; exit 0; fi`,       ...(box.npmError === undefined ? [] : [`echo "npm error code ${box.npmError}" >&2; exit 1`]),       `if [ "$1 $2" = "config get" ]; then echo "https://registry.npmjs.o
  • Network accessline 83
    ...(box.npmError === undefined ? [] : [`echo "npm error code ${box.npmError}" >&2; exit 1`]),       `if [ "$1 $2" = "config get" ]; then echo "https://registry.npmjs.org/"; exit 0; fi`,       `p="${prefix}"`,
  • Network accessline 84
    `if [ "$1 $2" = "config get" ]; then echo "https://registry.npmjs.org/"; exit 0; fi`,

server/src/command/setup/license-key.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 24
    [Credential-related source omitted]
  • Access to secretsline 28
    [Credential-related source omitted]
  • Network accessline 31
    it('appends without disturbing what is already there', () => {     const io = disk({ '/p/.env': 'API_URL=http://localhost:8000\n' });
  • Network accessline 32
    [Credential-related source omitted]
  • Access to secretsline 32
    [Credential-related source omitted]
  • Network accessline 33
    writeLicenseKey('/p', KEY, io);     expect(io.files['/p/.env']).toContain('API_URL=http://localhost:8000');     expect(io.files['/p/.env']).toContain(`RETICLE_LICENSE_KEY=${KEY}`);
  • Network accessline 34
    [Credential-related source omitted]
  • Access to secretsline 34
    [Credential-related source omitted]
  • Access to secretsline 35
    [Credential-related source omitted]
  • Access to secretsline 40
    [Credential-related source omitted]
  • Access to secretsline 43
    [Credential-related source omitted]
  • Access to secretsline 44
    [Credential-related source omitted]
  • Access to secretsline 45
    [Credential-related source omitted]
  • Access to secretsline 49
    [Credential-related source omitted]
  • Access to secretsline 56
    [Credential-related source omitted]
  • Access to secretsline 60
    [Credential-related source omitted]
  • Access to secretsline 71
    [Credential-related source omitted]

server/src/command/setup/license-key.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 13
    [Credential-related source omitted]
  • Access to secretsline 15
    [Credential-related source omitted]
  • Access to secretsline 45
    [Credential-related source omitted]

server/src/command/setup/mcp-launcher.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/mcp-launcher.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/node-effects.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 150
    it('reports what the server printed, and how long it has been quiet', async () => {     const server = new OwnedDevServer(LOG_DIR);     server.start('echo "  Local: http://localhost:1234"', process.cwd(), {});
  • Network accessline 152
    server.start('echo "  Local: http://localhost:1234"', process.cwd(), {});
  • Network accessline 155
    while (!server.output().includes('http://localhost:1234')) {
  • Network accessline 156
    await sleep(50);     }     expect(server.output()).toContain('http://localhost:1234');
  • Network accessline 157
    }     expect(server.output()).toContain('http://localhost:1234');     expect(server.quietForMs()).toBeGreaterThanOrEqual(0);
  • Network accessline 158
    expect(server.output()).toContain('http://localhost:1234');
  • Network accessline 176
    const server = new OwnedDevServer(dir);     server.start('node -e "setTimeout(() => {}, 5000)"', dir, {});     server.handOver('http://localhost:3000');
  • Network accessline 177
    server.start('node -e "setTimeout(() => {}, 5000)"', dir, {});     server.handOver('http://localhost:3000');     const record = readdirSync(dir).find((f) => f.endsWith('.json'));
  • Network accessline 178
    server.handOver('http://localhost:3000');
  • Network accessline 181
    expect(JSON.parse(readFileSync(join(dir, record ?? ''), 'utf8'))).toMatchObject({       pid: server.pid(),       url: 'http://localhost:3000',
  • Network accessline 182
    pid: server.pid(),       url: 'http://localhost:3000',       appDir: dir,
  • Network accessline 183
    url: 'http://localhost:3000',
  • Network accessline 227
    describe('probing the page', () => {   it('reports nothing answering as not served', async () => {     expect(await probePage('http://127.0.0.1:59233/')).toMatchObject({ served: false });
  • Network accessline 228
    it('reports nothing answering as not served', async () => {     expect(await probePage('http://127.0.0.1:59233/')).toMatchObject({ served: false });   });
  • Network accessline 229
    expect(await probePage('http://127.0.0.1:59233/')).toMatchObject({ served: false });
  • Network accessline 256
    });     try {       const admin = await probePage(`http://127.0.0.1:${String(port)}/admin`);
  • Network accessline 257
    try {       const admin = await probePage(`http://127.0.0.1:${String(port)}/admin`);       const root = await probePage(`http://127.0.0.1:${String(port)}/`);
  • Network accessline 258
    const admin = await probePage(`http://127.0.0.1:${String(port)}/admin`);
  • Network accessline 259
    const root = await probePage(`http://127.0.0.1:${String(port)}/`);
  • Network accessline 290
    });     try {       const announced = `http://127.0.0.1:${String(port)}/`;
  • Network accessline 291
    try {       const announced = `http://127.0.0.1:${String(port)}/`;       const probe = await probePage(announced);
  • Network accessline 292
    const announced = `http://127.0.0.1:${String(port)}/`;
  • Network accessline 336
    });     try {       const probe = await probePage(`http://127.0.0.1:${String(port)}/`, 300);
  • Network accessline 337
    try {       const probe = await probePage(`http://127.0.0.1:${String(port)}/`, 300);       expect(probe.served).toBe(false);
  • Network accessline 338
    const probe = await probePage(`http://127.0.0.1:${String(port)}/`, 300);

server/src/command/setup/node-effects.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 317
    for (const candidate of candidates) {     try {       const res = await fetch(candidate, { signal: AbortSignal.timeout(timeoutMs) });
  • Network accessline 318
    try {       const res = await fetch(candidate, { signal: AbortSignal.timeout(timeoutMs) });       const body = await res.text();
  • Network accessline 319
    const res = await fetch(candidate, { signal: AbortSignal.timeout(timeoutMs) });

server/src/command/setup/probe/dev-port.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 87
    expect(note).toContain('127.0.0.1:5173');     expect(note).toContain('[::1]:5173');     expect(note).toContain('--url http://localhost:5173');
  • Network accessline 88
    expect(note).toContain('[::1]:5173');     expect(note).toContain('--url http://localhost:5173');   });
  • Network accessline 89
    expect(note).toContain('--url http://localhost:5173');

server/src/command/setup/probe/dev-port.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 76
    'error, and then localhost and 127.0.0.1 would serve two different apps, so which one a browser ' +     'or a lease reaches would be luck. If it is this app already running, re-run with ' +     `--url http://localhost:${String(port)} to att
  • Network accessline 77
    'or a lease reaches would be luck. If it is this app already running, re-run with ' +     `--url http://localhost:${String(port)} to attach to it. Otherwise stop whatever holds the ` +     'port, or give the dev server another one.'
  • Network accessline 78
    `--url http://localhost:${String(port)} to attach to it. Otherwise stop whatever holds the ` +

server/src/command/setup/probe/existing-app.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 7
    pid: port,   root,   url: `http://localhost:${String(port)}/`,
  • Network accessline 8
    root,   url: `http://localhost:${String(port)}/`,   sdkVersion: '2.13.0',
  • Network accessline 9
    url: `http://localhost:${String(port)}/`,
  • Network accessline 23
    it("returns this project's URL", () => {     expect(urlOfExistingApp([web, admin], { projectId: 'web-1', root: '/repo/apps/web' })).toBe(       'http://localhost:5173/',
  • Network accessline 24
    expect(urlOfExistingApp([web, admin], { projectId: 'web-1', root: '/repo/apps/web' })).toBe(       'http://localhost:5173/',     );
  • Network accessline 25
    'http://localhost:5173/',
  • Access to secretsline 43
    [Credential-related source omitted]

server/src/command/setup/probe/existing-app.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 24
    [Credential-related source omitted]

server/src/command/setup/probe/loopback-probe-urls.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 8
    describe('loopbackProbeUrls', () => {   it('keeps a non-loopback URL as a single candidate', () => {     expect(loopbackProbeUrls('https://app.example:443/path')).toEqual([
  • Network accessline 9
    it('keeps a non-loopback URL as a single candidate', () => {     expect(loopbackProbeUrls('https://app.example:443/path')).toEqual([       'https://app.example:443/path',
  • Network accessline 10
    expect(loopbackProbeUrls('https://app.example:443/path')).toEqual([
  • Network accessline 11
    'https://app.example:443/path',
  • Network accessline 15
    it('tries IPv4, localhost, and IPv6 when the announcement is IPv4-only', () => {     expect(loopbackProbeUrls('http://127.0.0.1:5173/')).toEqual([
  • Network accessline 16
    expect(loopbackProbeUrls('http://127.0.0.1:5173/')).toEqual([
  • Network accessline 17
    'http://127.0.0.1:5173/',
  • Network accessline 18
    'http://localhost:5173/',
  • Network accessline 19
    'http://[::1]:5173/',
  • Network accessline 23
    it("keeps the caller's host first when it announced localhost", () => {     expect(loopbackProbeUrls('http://localhost:3000')).toEqual([
  • Network accessline 24
    expect(loopbackProbeUrls('http://localhost:3000')).toEqual([
  • Network accessline 25
    'http://localhost:3000/',
  • Network accessline 26
    'http://127.0.0.1:3000/',
  • Network accessline 27
    'http://[::1]:3000/',

server/src/command/setup/probe/loopback-probe-urls.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 2
    * Alternate loopback URLs to try when a readiness probe misses on the announced host.  *  * Vite (and friends) sometimes print `http://127.0.0.1:PORT` even when the process only accepted
  • Network accessline 3
    *  * Vite (and friends) sometimes print `http://127.0.0.1:PORT` even when the process only accepted  * on `[::1]`. Node `fetch` of that announcement then fails forever while `http://localhost:PORT`
  • Network accessline 4
    * Vite (and friends) sometimes print `http://127.0.0.1:PORT` even when the process only accepted  * on `[::1]`. Node `fetch` of that announcement then fails forever while `http://localhost:PORT`  * and `http://[::1]:PORT` answer — which is 
  • Network accessline 5
    * on `[::1]`. Node `fetch` of that announcement then fails forever while `http://localhost:PORT`
  • Network accessline 6
    * and `http://[::1]:PORT` answer — which is how `init` sat in the wait loop until something killed

server/src/command/setup/probe/page-probe.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 4
    const URL = 'http://localhost:5173/';
  • Network accessline 73
    describe('the diagnosis says what the break-matrix asserts', () => {   it('leads with "nothing is serving" and names the url', () => {     const line = describePage(PageFinding.NOT_SERVED, 'http://127.0.0.1:59985/');
  • Network accessline 74
    it('leads with "nothing is serving" and names the url', () => {     const line = describePage(PageFinding.NOT_SERVED, 'http://127.0.0.1:59985/');     expect(line).toContain('nothing is serving');
  • Network accessline 75
    const line = describePage(PageFinding.NOT_SERVED, 'http://127.0.0.1:59985/');
  • Network accessline 76
    expect(line).toContain('nothing is serving');     expect(line).toContain('http://127.0.0.1:59985/');   });
  • Network accessline 77
    expect(line).toContain('http://127.0.0.1:59985/');
  • Network accessline 82
    it('says the certificate is one this process WILL not accept', () => {     const line = describePage(PageFinding.TLS_REFUSED, 'https://127.0.0.1:59993/');
  • Network accessline 83
    const line = describePage(PageFinding.TLS_REFUSED, 'https://127.0.0.1:59993/');
  • Network accessline 87
    it('still names the two readable outcomes distinctly', () => {     expect(describePage(PageFinding.SDK_MISSING, 'http://x/')).toContain('SDK is NOT in the page');
  • Network accessline 88
    expect(describePage(PageFinding.SDK_MISSING, 'http://x/')).toContain('SDK is NOT in the page');
  • Network accessline 89
    expect(describePage(PageFinding.SDK_PRESENT, 'http://x/')).toContain('references the SDK');

server/src/command/setup/probe/page-probe.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 112
    *  * Measured on the install gate's Nuxt scaffold: "nothing is serving" and "Not opening a  * browser", then two lines later "http://localhost:3000/ is served". The dev server came up
  • Network accessline 113
    * Measured on the install gate's Nuxt scaffold: "nothing is serving" and "Not opening a  * browser", then two lines later "http://localhost:3000/ is served". The dev server came up  * during the phase, the window was never opened, no sessio
  • Network accessline 114
    * browser", then two lines later "http://localhost:3000/ is served". The dev server came up

server/src/command/setup/relaunch-reaches-files-only.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/remaining-steps.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 35
    it('does not tell a caller who supplied a url to start a server', () => {     const steps = remainingSteps(       at({ initDone: true, urlSuppliedByCaller: true, url: 'http://localhost:3000/' }),
  • Network accessline 36
    const steps = remainingSteps(       at({ initDone: true, urlSuppliedByCaller: true, url: 'http://localhost:3000/' }),     );
  • Network accessline 37
    at({ initDone: true, urlSuppliedByCaller: true, url: 'http://localhost:3000/' }),
  • Network accessline 57
    it('names the url in the session step when there is one', () => {     expect(       remainingSteps(at({ initDone: true, devServerUp: true, url: 'http://localhost:5173/' })).join(
  • Network accessline 58
    expect(       remainingSteps(at({ initDone: true, devServerUp: true, url: 'http://localhost:5173/' })).join(         ' ',
  • Network accessline 59
    remainingSteps(at({ initDone: true, devServerUp: true, url: 'http://localhost:5173/' })).join(
  • Network accessline 60
    ' ',       ),     ).toContain('http://localhost:5173/');
  • Network accessline 61
    ),     ).toContain('http://localhost:5173/');   });
  • Network accessline 62
    ).toContain('http://localhost:5173/');

server/src/command/setup/remaining-steps.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 33
    const DOCS_INDEX = 'https://docs.reticle.sh/llms.txt';
  • Network accessline 79
    const somethingIsOutstanding = 0 < steps.length;   steps.push(`The whole procedure, if you need it: \`curl ${DOCS_INDEX}\`.`);
  • Network accessline 80
    steps.push(`The whole procedure, if you need it: \`curl ${DOCS_INDEX}\`.`);

server/src/command/setup/run-setup.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 32
    let clock = 0;   const opened: string[] = [];   const url = opts.url ?? 'http://localhost:5173';
  • Network accessline 33
    const opened: string[] = [];   const url = opts.url ?? 'http://localhost:5173';   const base: SetupEffects = {
  • Network accessline 34
    const url = opts.url ?? 'http://localhost:5173';
  • Network accessline 101
    it('opens the url the dev server announced, never one it composed', async () => {     const fx = world({ devServerOutput: () => '  ➜  Local: http://127.0.0.1:4321/' });
  • Network accessline 102
    const fx = world({ devServerOutput: () => '  ➜  Local: http://127.0.0.1:4321/' });
  • Network accessline 103
    const r = await runSetupPhases(INPUT, fx);     expect(fx.opened).toEqual(['http://127.0.0.1:4321']);     expect(r.url).toBe('http://127.0.0.1:4321');
  • Network accessline 104
    expect(fx.opened).toEqual(['http://127.0.0.1:4321']);
  • Network accessline 105
    expect(r.url).toBe('http://127.0.0.1:4321');
  • Network accessline 114
    },     });     await runSetupPhases({ ...INPUT, suppliedUrl: 'http://localhost:3000' }, fx);
  • Network accessline 115
    });     await runSetupPhases({ ...INPUT, suppliedUrl: 'http://localhost:3000' }, fx);     expect(started).toBe(false);
  • Network accessline 116
    await runSetupPhases({ ...INPUT, suppliedUrl: 'http://localhost:3000' }, fx);
  • Network accessline 125
    */ describe('it never starts a second server for this project', () => {   const EXISTING = 'http://localhost:5173';
  • Network accessline 127
    const EXISTING = 'http://localhost:5173';
  • Network accessline 180
    const fx = world({       existingAppUrl: () => Promise.resolve(EXISTING),       listSessions: () => Promise.resolve([{ sessionId: 'other', url: 'http://localhost:9999/' }]),
  • Network accessline 181
    existingAppUrl: () => Promise.resolve(EXISTING),       listSessions: () => Promise.resolve([{ sessionId: 'other', url: 'http://localhost:9999/' }]),     });
  • Network accessline 182
    listSessions: () => Promise.resolve([{ sessionId: 'other', url: 'http://localhost:9999/' }]),
  • Network accessline 195
    describe('a plain page gets Reticle’s static server only with a word about --url', () => {   const STATIC_INPUT: SetupInput = { ...INPUT, devCommandIsStaticPage: true };   const STATIC_URL = 'http://localhost:5500/';
  • Network accessline 197
    const STATIC_URL = 'http://localhost:5500/';
  • Network accessline 222
    expect(r.ok).toBe(true);     const success = r.notes.find((line) => line.startsWith('✓'));     expect(success).toContain('http://localhost:5500');
  • Network accessline 223
    const success = r.notes.find((line) => line.startsWith('✓'));     expect(success).toContain('http://localhost:5500');     expect(success).toContain(ServerStartedBy.RETICLE_STATIC);
  • Network accessline 224
    expect(success).toContain('http://localhost:5500');
  • Network accessline 233
    it('credits the caller, not Reticle, when the url was supplied', async () => {     const r = await runSetupPhases(       { ...STATIC_INPUT, suppliedUrl: 'http://localhost:8000' },
  • Network accessline 234
    const r = await runSetupPhases(       { ...STATIC_INPUT, suppliedUrl: 'http://localhost:8000' },       world({}, { url: 'http://localhost:8000' }),
  • Network accessline 235
    { ...STATIC_INPUT, suppliedUrl: 'http://localhost:8000' },
  • Network accessline 236
    world({}, { url: 'http://localhost:8000' }),
  • Network accessline 237
    );     const success = r.notes.find((line) => line.startsWith('✓'));     expect(success).toContain('http://localhost:8000');
  • Network accessline 238
    const success = r.notes.find((line) => line.startsWith('✓'));     expect(success).toContain('http://localhost:8000');     expect(success).toContain(ServerStartedBy.CALLER);
  • Network accessline 239
    expect(success).toContain('http://localhost:8000');
  • Network accessline 245
    STATIC_INPUT,       world(         { existingAppUrl: () => Promise.resolve('http://localhost:8000') },
  • Network accessline 246
    world(         { existingAppUrl: () => Promise.resolve('http://localhost:8000') },         { url: 'http://localhost:8000' },
  • Network accessline 247
    { existingAppUrl: () => Promise.resolve('http://localhost:8000') },
  • Network accessline 248
    { url: 'http://localhost:8000' },
  • Network accessline 250
    );     const success = r.notes.find((line) => line.startsWith('✓'));     expect(success).toContain('http://localhost:8000');
  • Network accessline 251
    const success = r.notes.find((line) => line.startsWith('✓'));     expect(success).toContain('http://localhost:8000');     expect(success).toContain(ServerStartedBy.ALREADY_RUNNING);
  • Network accessline 252
    expect(success).toContain('http://localhost:8000');
  • Network accessline 262
    */ describe('it reuses a live tab of this project rather than opening another', () => {   const URL = 'http://localhost:5173';
  • Network accessline 263
    describe('it reuses a live tab of this project rather than opening another', () => {   const URL = 'http://localhost:5173';   const MINE = { ...INPUT, projectId: 'mine' };
  • Network accessline 264
    const URL = 'http://localhost:5173';
  • Network accessline 369
    it("never accepts somebody else's session", async () => {     const fx = world({       listSessions: () => Promise.resolve([{ sessionId: 'other', url: 'http://localhost:9999/' }]),
  • Network accessline 370
    const fx = world({       listSessions: () => Promise.resolve([{ sessionId: 'other', url: 'http://localhost:9999/' }]),     });
  • Network accessline 371
    listSessions: () => Promise.resolve([{ sessionId: 'other', url: 'http://localhost:9999/' }]),
  • Network accessline 490
    await runSetupPhases({ ...BUNDLED, suppliedUrl: 'http://localhost:5173' }, fx);
  • Network accessline 567
    */ describe('the connect proof without a system browser', () => {   const URL_ = 'http://localhost:5173';
  • Network accessline 569
    const URL_ = 'http://localhost:5173';
  • Network accessline 824
    await runSetupPhases({ ...INPUT, suppliedUrl: 'http://localhost:5173', ...over }, fx);
  • Network accessline 846
    const onUrl = (sessionId: string, runtime?: string): CandidateSession => ({     sessionId,     url: 'http://localhost:5173',
  • Network accessline 847
    sessionId,     url: 'http://localhost:5173',     ...(runtime === undefined ? {} : { runtime }),
  • Network accessline 848
    url: 'http://localhost:5173',
  • Network accessline 901
    await runSetupPhases({ ...INPUT }, fx);     expect(fx.opened, 'a window that would have worked was never opened').toEqual([       'http://localhost:5173',
  • Network accessline 902
    expect(fx.opened, 'a window that would have worked was never opened').toEqual([       'http://localhost:5173',     ]);
  • Network accessline 903
    'http://localhost:5173',
  • Network accessline 919
    const outcome = await runSetupPhases(INPUT, fx);     expect(fx.opened, 'the window that loads the bundle was never opened').toEqual([       'http://localhost:5173',
  • Network accessline 920
    expect(fx.opened, 'the window that loads the bundle was never opened').toEqual([       'http://localhost:5173',     ]);
  • Network accessline 921
    'http://localhost:5173',
  • Network accessline 936
    const outcome = await runSetupPhases(       { ...INPUT, suppliedUrl: 'http://localhost:5173', connectBudgetMs: 600_000 },
  • Network accessline 937
    { ...INPUT, suppliedUrl: 'http://localhost:5173', connectBudgetMs: 600_000 },

server/src/command/setup/run-setup.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/session-pick.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 14
    describe('choosing the session to drive', () => {   it('has nothing to pick when the daemon holds nothing', () => {     expect(pickSession([], 'http://localhost:5173')).toBeNull();
  • Network accessline 15
    it('has nothing to pick when the daemon holds nothing', () => {     expect(pickSession([], 'http://localhost:5173')).toBeNull();   });
  • Network accessline 16
    expect(pickSession([], 'http://localhost:5173')).toBeNull();
  • Network accessline 20
    it("never picks somebody else's tab", () => {     expect(pickSession([S('other', 'http://localhost:9999/')], 'http://localhost:5173')).toBeNull();
  • Network accessline 21
    expect(pickSession([S('other', 'http://localhost:9999/')], 'http://localhost:5173')).toBeNull();
  • Network accessline 24
    it('matches despite a trailing slash on either side', () => {     expect(       pickSession([S('a', 'http://localhost:5173/x')], 'http://localhost:5173/')?.sessionId,
  • Network accessline 25
    expect(       pickSession([S('a', 'http://localhost:5173/x')], 'http://localhost:5173/')?.sessionId,     ).toBe('a');
  • Network accessline 26
    pickSession([S('a', 'http://localhost:5173/x')], 'http://localhost:5173/')?.sessionId,
  • Network accessline 31
    it('prefers a session that is new since this run opened one', () => {     const picked = pickSession(       [S('old', 'http://localhost:5173/'), S('new', 'http://localhost:5173/')],
  • Network accessline 32
    const picked = pickSession(       [S('old', 'http://localhost:5173/'), S('new', 'http://localhost:5173/')],       'http://localhost:5173',
  • Network accessline 33
    [S('old', 'http://localhost:5173/'), S('new', 'http://localhost:5173/')],
  • Network accessline 34
    'http://localhost:5173',
  • Network accessline 41
    const picked = pickSession(       [         S('hidden', 'http://localhost:5173/', { hidden: true }),
  • Network accessline 42
    [         S('hidden', 'http://localhost:5173/', { hidden: true }),         S('shown', 'http://localhost:5173/'),
  • Network accessline 43
    S('hidden', 'http://localhost:5173/', { hidden: true }),
  • Network accessline 44
    S('shown', 'http://localhost:5173/'),
  • Network accessline 45
    ],       'http://localhost:5173',     );
  • Network accessline 46
    'http://localhost:5173',
  • Network accessline 52
    const picked = pickSession(       [         S('throttled', 'http://localhost:5173/', { throttled: true }),
  • Network accessline 53
    [         S('throttled', 'http://localhost:5173/', { throttled: true }),         S('shown', 'http://localhost:5173/'),
  • Network accessline 54
    S('throttled', 'http://localhost:5173/', { throttled: true }),
  • Network accessline 55
    S('shown', 'http://localhost:5173/'),
  • Network accessline 56
    ],       'http://localhost:5173',     );
  • Network accessline 57
    'http://localhost:5173',
  • Network accessline 64
    it('takes a fresh hidden tab over an old visible one', () => {     const picked = pickSession(       [S('old', 'http://localhost:5173/'), S('new', 'http://localhost:5173/', { hidden: true })],
  • Network accessline 65
    const picked = pickSession(       [S('old', 'http://localhost:5173/'), S('new', 'http://localhost:5173/', { hidden: true })],       'http://localhost:5173',
  • Network accessline 66
    [S('old', 'http://localhost:5173/'), S('new', 'http://localhost:5173/', { hidden: true })],
  • Network accessline 67
    'http://localhost:5173',
  • Network accessline 74
    const picked = pickSession(       [         S('stale', 'http://localhost:5173/', { hidden: true, lastSeenMs: 90_000 }),
  • Network accessline 75
    [         S('stale', 'http://localhost:5173/', { hidden: true, lastSeenMs: 90_000 }),         S('recent', 'http://localhost:5173/', { hidden: true, lastSeenMs: 200 }),
  • Network accessline 76
    S('stale', 'http://localhost:5173/', { hidden: true, lastSeenMs: 90_000 }),
  • Network accessline 77
    S('recent', 'http://localhost:5173/', { hidden: true, lastSeenMs: 200 }),
  • Network accessline 78
    ],       'http://localhost:5173',     );
  • Network accessline 79
    'http://localhost:5173',
  • Network accessline 96
    * SDK too old to report one must not be excluded from its own install.  */ const URL = 'http://localhost:5173/';
  • Network accessline 98
    const URL = 'http://localhost:5173/';

server/src/command/setup/session-pick.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/setup-command.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 185
    // A format we will not rewrite is somebody's to edit, so it has to be said rather than skipped --   // but said ONCE. Two commands call this function by design, so a `curl | sh` followed by
  • Dangerous shell operationline 186
    // but said ONCE. Two commands call this function by design, so a `curl | sh` followed by
  • Network accessline 186
    // but said ONCE. Two commands call this function by design, so a `curl | sh` followed by
  • Access to secretsline 397
    [Credential-related source omitted]

server/src/command/setup/setup-install.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/setup-mcp.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 333
    const WIRED = '[mcp_servers.reticle]\ncommand = "npx"\nargs = ["@reticlehq/server", "mcp"]\n';   const OWN_BUILD = '[mcp_servers.reticle]\ncommand = "node"\nargs = ["/opt/local/reticle.js"]\n';   const URL_SHAPED = '[mcp_servers.reticle]\nu
  • Network accessline 334
    const OWN_BUILD = '[mcp_servers.reticle]\ncommand = "node"\nargs = ["/opt/local/reticle.js"]\n';   const URL_SHAPED = '[mcp_servers.reticle]\nurl = "https://example.test/mcp"\n';   const OTHER = '[mcp_servers.other]\ncommand = "foo"\n';
  • Network accessline 335
    const URL_SHAPED = '[mcp_servers.reticle]\nurl = "https://example.test/mcp"\n';

server/src/command/setup/setup-mcp.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/setup-options.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 4
    describe('the environment an agent supplies', () => {   it('reads a plain assignment', () => {     expect(parseEnvAssignment('VITE_API=http://localhost:8000')).toEqual({
  • Network accessline 5
    it('reads a plain assignment', () => {     expect(parseEnvAssignment('VITE_API=http://localhost:8000')).toEqual({       key: 'VITE_API',
  • Network accessline 6
    expect(parseEnvAssignment('VITE_API=http://localhost:8000')).toEqual({
  • Network accessline 7
    key: 'VITE_API',       value: 'http://localhost:8000',     });
  • Network accessline 8
    value: 'http://localhost:8000',

server/src/command/setup/setup-options.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 55
    [Credential-related source omitted]

server/src/command/setup/start-dev-server.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/tauri-signing.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 3
    [Credential-related source omitted]

server/src/command/setup/tauri-signing.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 3
    [Credential-related source omitted]
  • Access to secretsline 5
    [Credential-related source omitted]
  • Access to secretsline 7
    [Credential-related source omitted]
  • Access to secretsline 43
    [Credential-related source omitted]
  • Access to secretsline 46
    [Credential-related source omitted]

server/src/command/setup/terminal/confirm.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/terminal/confirm.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/terminal/crash.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/terminal/crash.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/terminal/interrupt.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/terminal/interrupt.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/terminal/listeners.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 99
    // started by a process that once held our dev server's pid still names that pid as its parent, so a // walk by ppid alone adopts it. On a CI runner that was sshd: `init` reported port 22 as the dev // server ("watching http://localhost:22"
  • Network accessline 100
    // walk by ppid alone adopts it. On a CI runner that was sshd: `init` reported port 22 as the dev // server ("watching http://localhost:22") and waited for a page that could never come. A real child // is created after its parent, so an old
  • Network accessline 101
    // server ("watching http://localhost:22") and waited for a page that could never come. A real child

server/src/command/setup/terminal/listeners.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/terminal/transcripts.ts

  • Executable scriptline 1
    Executable file

server/src/command/setup/terminal/wait-progress.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 29
    it('speaks once the wait is long enough to need explaining', () => {     const line = waitProgressLine(WAIT_PROGRESS_EVERY_MS, 'http://localhost:5173', undefined);
  • Network accessline 30
    const line = waitProgressLine(WAIT_PROGRESS_EVERY_MS, 'http://localhost:5173', undefined);
  • Network accessline 31
    expect(line).toBeDefined();     expect(String(line)).toContain('http://localhost:5173');   });
  • Network accessline 32
    expect(String(line)).toContain('http://localhost:5173');
  • Network accessline 37
    const line = String(       waitProgressLine(WAIT_PROGRESS_EVERY_MS, 'http://localhost:4000', undefined),
  • Network accessline 38
    waitProgressLine(WAIT_PROGRESS_EVERY_MS, 'http://localhost:4000', undefined),
  • Network accessline 39
    );     expect(line).toContain('http://localhost:4000');     expect(line).toMatch(/watch/i);
  • Network accessline 40
    expect(line).toContain('http://localhost:4000');
  • Network accessline 53
    expect(       waitProgressLine(WAIT_PROGRESS_EVERY_MS * 2, 'http://x', WAIT_PROGRESS_EVERY_MS),
  • Network accessline 54
    waitProgressLine(WAIT_PROGRESS_EVERY_MS * 2, 'http://x', WAIT_PROGRESS_EVERY_MS),
  • Network accessline 55
    ).toBeDefined();     expect(       waitProgressLine(WAIT_PROGRESS_EVERY_MS + 1, 'http://x', WAIT_PROGRESS_EVERY_MS),
  • Network accessline 56
    expect(       waitProgressLine(WAIT_PROGRESS_EVERY_MS + 1, 'http://x', WAIT_PROGRESS_EVERY_MS),     ).toBeUndefined();
  • Network accessline 57
    waitProgressLine(WAIT_PROGRESS_EVERY_MS + 1, 'http://x', WAIT_PROGRESS_EVERY_MS),
  • Network accessline 61
    it('reports how long it has been waiting, in whole seconds', () => {     const line = String(waitProgressLine(90_000, 'http://x', undefined));
  • Network accessline 62
    const line = String(waitProgressLine(90_000, 'http://x', undefined));

server/src/command/setup/terminal/wait-progress.ts

  • Executable scriptline 1
    Executable file

server/src/command/update/nudge-credit.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/update/nudge-credit.ts

  • Executable scriptline 1
    Executable file

server/src/command/update/sdk-sync.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/update/sdk-sync.ts

  • Executable scriptline 1
    Executable file

server/src/command/update/update-checker.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/update/update-checker.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 13
    const NPM_REGISTRY = `https://registry.npmjs.org/${RETICLE_NPM_PACKAGE}/latest`;

server/src/command/update/update-nudge-content.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/update/update-nudge.arm.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/update/update-nudge.ts

  • Executable scriptline 1
    Executable file

server/src/command/update/updater-rollback.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/update/updater-spawn.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/update/updater.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/update/updater.ts

  • Executable scriptline 1
    Executable file

server/src/command/update/version-seen.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/update/version-seen.ts

  • Executable scriptline 1
    Executable file

server/src/command/version/additive-contract-is-not-skew.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 118
    protocolVersion: RETICLE_PROTOCOL_VERSION,       sessionId: 'demo',       url: 'http://localhost:5173/',
  • Network accessline 119
    sessionId: 'demo',       url: 'http://localhost:5173/',       title: 'demo',
  • Network accessline 120
    url: 'http://localhost:5173/',

server/src/command/version/daemon-skew-per-connection.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/version/identity/server-version.ts

  • Executable scriptline 1
    Executable file

server/src/command/version/peer-announce.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/version/peer-announce.ts

  • Executable scriptline 1
    Executable file

server/src/command/version/release-artifacts.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/version/retired-name-is-not-skew.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 120
    protocolVersion: RETICLE_PROTOCOL_VERSION,       sessionId: 'pinned-sdk',       url: 'http://localhost:5173/',
  • Network accessline 121
    sessionId: 'pinned-sdk',       url: 'http://localhost:5173/',       title: 'pinned',
  • Network accessline 122
    url: 'http://localhost:5173/',

server/src/command/version/sdk-fix.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/version/sdk-fix.ts

  • Executable scriptline 1
    Executable file

server/src/command/version/server-version-is-real.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/version/skew-remedy.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/version/subset-is-not-skew.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/version/version-lockstep.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/version/version-nudge.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/version/version-nudge.ts

  • Executable scriptline 1
    Executable file

server/src/command/version/version-skew.delivery.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 39
    return new Promise((resolve) => {     const sock = new WebSocket(`ws://${LOOPBACK_HOST}:${String(port)}${RETICLE_WS_PATH}`, {       origin: 'http://localhost',
  • Network accessline 40
    const sock = new WebSocket(`ws://${LOOPBACK_HOST}:${String(port)}${RETICLE_WS_PATH}`, {       origin: 'http://localhost',     });
  • Network accessline 41
    origin: 'http://localhost',
  • Network accessline 48
    protocolVersion: 1,           sessionId: opts.sessionId,           url: 'http://localhost:3000/',
  • Network accessline 49
    sessionId: opts.sessionId,           url: 'http://localhost:3000/',           title: opts.sessionId,
  • Network accessline 50
    url: 'http://localhost:3000/',

server/src/command/version/version-skew.test.ts

  • Executable scriptline 1
    Executable file

server/src/command/version/version-skew.ts

  • Executable scriptline 1
    Executable file

server/src/config-search-depth.test.ts

  • Executable scriptline 1
    Executable file

server/src/crashed-rule-integrity.test.ts

  • Executable scriptline 1
    Executable file

server/src/daemon-parity.test.ts

  • Executable scriptline 1
    Executable file

server/src/dev-tooling-settle.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 28
    const OVERLAY = 'http://localhost:3000/__nextjs_original-stack-frames';

server/src/directory-reach.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 151
    [Credential-related source omitted]

server/src/dispatch-attribution.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/compare/action-plan.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/compare/action-plan.ts

  • Executable scriptline 1
    Executable file

server/src/features/compare/behaviour-compare.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/compare/behaviour-compare.ts

  • Executable scriptline 1
    Executable file

server/src/features/compare/behaviour-diff.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/compare/behaviour-diff.ts

  • Executable scriptline 1
    Executable file

server/src/features/compare/behaviour-report.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 19
    const urls = { reference: 'http://ref/', candidate: 'http://cand/' };
  • Network accessline 77
    score: { score: 0.5, targets: 2, matched: 1, kept: 0, changed: 0 },     };     const text = compareReportLines({ ...urls, base: 'http://base/' }, scored).join('\n');
  • Network accessline 78
    };     const text = compareReportLines({ ...urls, base: 'http://base/' }, scored).join('\n');     expect(text).toContain('score 0.50: 1 of 2 targets matched, 0 of 0 kept sequences changed');
  • Network accessline 79
    const text = compareReportLines({ ...urls, base: 'http://base/' }, scored).join('\n');

server/src/features/compare/behaviour-report.ts

  • Executable scriptline 1
    Executable file

server/src/features/compare/build-readings.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/compare/build-readings.ts

  • Executable scriptline 1
    Executable file

server/src/features/compare/compare-diff.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/compare/compare-diff.ts

  • Executable scriptline 1
    Executable file

server/src/features/compare/compare-report.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 12
    explored: { states: 2, actions: 3, frontier: 0, budgetExhausted: false }, }; const urls = { reference: 'http://ref', candidate: 'http://cand' };
  • Network accessline 14
    const urls = { reference: 'http://ref', candidate: 'http://cand' };
  • Network accessline 55
    expect(compareExit(result)).toBe(1);     const json = compareJson(urls, result);     expect(json).toMatchObject({ identical: false, reference: 'http://ref' });
  • Network accessline 56
    const json = compareJson(urls, result);     expect(json).toMatchObject({ identical: false, reference: 'http://ref' });     expect(json.differences.map((d) => d.id)).toEqual(['abc123abc123', 'def456def456']);
  • Network accessline 57
    expect(json).toMatchObject({ identical: false, reference: 'http://ref' });

server/src/features/compare/compare-report.ts

  • Executable scriptline 1
    Executable file

server/src/features/compare/compare-run.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 69
    log,     result: compareBuilds({       reference: 'http://ref',
  • Network accessline 70
    result: compareBuilds({       reference: 'http://ref',       candidate: 'http://cand',
  • Network accessline 71
    reference: 'http://ref',
  • Network accessline 72
    candidate: 'http://cand',
  • Network accessline 73
    open: (url) => Promise.resolve(fakeDriver('http://ref' === url ? reference : candidate, log)),

server/src/features/compare/compare-run.ts

  • Executable scriptline 1
    Executable file

server/src/features/compare/outside/effect-lines.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 9
    {             method: 'POST',             url: 'http://localhost:8787/api/items?id=42&t=1700000000',
  • Network accessline 10
    method: 'POST',             url: 'http://localhost:8787/api/items?id=42&t=1700000000',             status: 500,
  • Network accessline 11
    url: 'http://localhost:8787/api/items?id=42&t=1700000000',

server/src/features/compare/outside/effect-lines.ts

  • Executable scriptline 1
    Executable file

server/src/features/compare/outside/value-dictionary.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 101
    it('fetches the page and follows its scripts like a browser, up to a cap', async () => {     const files: Record<string, string> = {       'http://app/': '<script src="/main.js"></script>',
  • Network accessline 102
    const files: Record<string, string> = {       'http://app/': '<script src="/main.js"></script>',       'http://app/main.js': 'import "./step.js"; if(v.route==="progress"){}',
  • Network accessline 103
    'http://app/': '<script src="/main.js"></script>',
  • Network accessline 104
    'http://app/main.js': 'import "./step.js"; if(v.route==="progress"){}',
  • Network accessline 105
    'http://app/step.js': 'if(v.plan==="pro"){}',
  • Network accessline 106
    };     const fetched: string[] = [];     const dict = await harvestDictionary('http://app/', (url) => {
  • Network accessline 107
    const fetched: string[] = [];     const dict = await harvestDictionary('http://app/', (url) => {       fetched.push(url);
  • Network accessline 108
    const dict = await harvestDictionary('http://app/', (url) => {

server/src/features/compare/outside/value-dictionary.ts

  • Executable scriptline 1
    Executable file

server/src/features/compare/visible-content.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/compare/visible-content.ts

  • Executable scriptline 1
    Executable file

server/src/features/crawl/crawl-dangerous-reveal.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/crawl/crawl-empty.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/crawl/crawl-empty.ts

  • Executable scriptline 1
    Executable file

server/src/features/crawl/crawl-exhaustive.test.ts

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 2
    import { mkdtemp, rm } from 'node:fs/promises';
  • Network accessline 46
    const session: PortSession = {       id: 's1',       url: 'http://h/form',
  • Network accessline 47
    id: 's1',       url: 'http://h/form',       elapsed: () => clock,
  • Network accessline 48
    url: 'http://h/form',
  • Network accessline 75
    data: {               method: 'POST',               url: 'http://h/api/notes',
  • Network accessline 76
    method: 'POST',               url: 'http://h/api/notes',               status: 201,
  • Network accessline 77
    url: 'http://h/api/notes',
  • Network accessline 108
    sessions: app.sessions,       session: app.session,       startUrl: 'http://h/form',
  • Network accessline 109
    session: app.session,       startUrl: 'http://h/form',       maxActions: 200,
  • Network accessline 110
    startUrl: 'http://h/form',
  • Network accessline 185
    sessions: app.sessions,       session: app.session,       startUrl: 'http://h/form',
  • Network accessline 186
    session: app.session,       startUrl: 'http://h/form',       settleMs: 0,
  • Network accessline 187
    startUrl: 'http://h/form',

server/src/features/crawl/crawl-exhaustive.ts

  • Executable scriptline 1
    Executable file

server/src/features/crawl/crawl-reconnect.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 41
    if (1 === clicks) {           return Promise.reject(new Error(sessionReplacedReason('s1', 'http://app/products')));
  • Network accessline 42
    return Promise.reject(new Error(sessionReplacedReason('s1', 'http://app/products')));
  • Network accessline 55
    finishAction: () => undefined,     elapsed: () => 0,     url: 'http://app/',
  • Network accessline 56
    elapsed: () => 0,     url: 'http://app/',   } as unknown as Parameters<typeof crawl>[0];
  • Network accessline 57
    url: 'http://app/',

server/src/features/crawl/crawl-revealed.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/crawl/crawl-tools.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 23
    const stub: Partial<Session> = {     id: 'demo',     url: 'http://localhost:3000/',
  • Network accessline 24
    id: 'demo',     url: 'http://localhost:3000/',     elapsed: () => clock,
  • Network accessline 25
    url: 'http://localhost:3000/',
  • Network accessline 80
    const session = {       id: 'demo',       url: 'https://example.test/',
  • Network accessline 81
    id: 'demo',       url: 'https://example.test/',       elapsed: () => clock,
  • Network accessline 82
    url: 'https://example.test/',
  • Network accessline 94
    sessionId: 'demo',             data: {               from: 'https://example.test/',
  • Network accessline 95
    data: {               from: 'https://example.test/',               to: 'https://example.test/deployments',
  • Network accessline 96
    from: 'https://example.test/',
  • Network accessline 97
    to: 'https://example.test/deployments',
  • Network accessline 211
    [Credential-related source omitted]
  • Network accessline 213
    [Credential-related source omitted]
  • Network accessline 215
    it('fills it on the starting origin', () => {     expect(secret('Password', 'http://localhost:3000/account')).toBe('hunter2');
  • Network accessline 216
    expect(secret('Password', 'http://localhost:3000/account')).toBe('hunter2');
  • Network accessline 219
    it('withholds it from any other origin, or a page it cannot place', () => {     expect(secret('Password', 'http://evil.test/login')).toBeUndefined();
  • Network accessline 220
    expect(secret('Password', 'http://evil.test/login')).toBeUndefined();
  • Network accessline 221
    expect(secret('Password', 'http://localhost:4000/login')).toBeUndefined();
  • Network accessline 241
    } as unknown as ToolDeps;     const setMocks = exhaustiveMocks(deps, 'lease-1');     expect(await setMocks?.('http://h/', [{ urlContains: '/api/login', abort: true }])).toBe(true);
  • Network accessline 242
    const setMocks = exhaustiveMocks(deps, 'lease-1');     expect(await setMocks?.('http://h/', [{ urlContains: '/api/login', abort: true }])).toBe(true);     expect(leased).toEqual([{ id: 'lease-1', count: 1 }]);
  • Network accessline 243
    expect(await setMocks?.('http://h/', [{ urlContains: '/api/login', abort: true }])).toBe(true);

server/src/features/crawl/crawl-tools.ts

  • Executable scriptline 1
    Executable file

server/src/features/crawl/crawl-unnamed.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/crawl/crawl.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 97
    type: EventType.ROUTE_CHANGE,             data: {               from: 'http://localhost:5173/app',
  • Network accessline 98
    data: {               from: 'http://localhost:5173/app',               to: 'http://localhost:5173/app#main-content',
  • Network accessline 99
    from: 'http://localhost:5173/app',
  • Network accessline 100
    to: 'http://localhost:5173/app#main-content',
  • Network accessline 278
    message:                 'Rendered more hooks than during the previous render' +                 '\n    at LoadsPage (http://localhost:5173/src/routes/loads.tsx?t=123:37:9)' +
  • Network accessline 279
    'Rendered more hooks than during the previous render' +                 '\n    at LoadsPage (http://localhost:5173/src/routes/loads.tsx?t=123:37:9)' +                 '\n    at RenderedRoute (http://localhost:5173/node_modules/react-router.
  • Network accessline 280
    '\n    at LoadsPage (http://localhost:5173/src/routes/loads.tsx?t=123:37:9)' +
  • Network accessline 281
    '\n    at RenderedRoute (http://localhost:5173/node_modules/react-router.js:10:2)',
  • Network accessline 282
    stack:                 'Error: Rendered more hooks than during the previous render' +                 '\n    at onClick (http://localhost:5173/src/components/app-sidebar.tsx:24:5)',
  • Network accessline 283
    'Error: Rendered more hooks than during the previous render' +                 '\n    at onClick (http://localhost:5173/src/components/app-sidebar.tsx:24:5)',             },
  • Network accessline 284
    '\n    at onClick (http://localhost:5173/src/components/app-sidebar.tsx:24:5)',
  • Network accessline 308
    stack:                 'Error: Rendered more hooks than during the previous render' +                 '\n    at updateHook (http://localhost:5173/node_modules/react-dom.js:100:2)' +
  • Network accessline 309
    'Error: Rendered more hooks than during the previous render' +                 '\n    at updateHook (http://localhost:5173/node_modules/react-dom.js:100:2)' +                 '\n    at LoadsPage (http://localhost:5173/src/routes/loads.tsx?t
  • Network accessline 310
    '\n    at updateHook (http://localhost:5173/node_modules/react-dom.js:100:2)' +
  • Network accessline 311
    '\n    at LoadsPage (http://localhost:5173/src/routes/loads.tsx?t=456:41:7)',
  • Network accessline 330
    data: {               message: 'Rendered more hooks than during the previous render',               source: 'http://localhost:5173/src/routes/loads.tsx?t=789',
  • Network accessline 331
    message: 'Rendered more hooks than during the previous render',               source: 'http://localhost:5173/src/routes/loads.tsx?t=789',               line: 46,
  • Network accessline 332
    source: 'http://localhost:5173/src/routes/loads.tsx?t=789',

server/src/features/crawl/crawl.ts

  • Executable scriptline 1
    Executable file

server/src/features/crawl/inert-roles.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/exhaust/app-coverage.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 8
    const session = (acted: string[], proved: string[]) => ({   url: 'http://h/cart',
  • Network accessline 9
    url: 'http://h/cart',
  • Network accessline 61
    Promise.resolve([           {             url: 'http://h/src/Cart.tsx',
  • Network accessline 62
    {             url: 'http://h/src/Cart.tsx',             functions: [
  • Network accessline 63
    url: 'http://h/src/Cart.tsx',

server/src/features/exhaust/app-coverage.ts

  • Executable scriptline 1
    Executable file

server/src/features/exhaust/code-coverage.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 14
    describe('appFileOf — which scripts are the app', () => {   it('keeps app source and drops dependencies, dev-server internals and the SDK', () => {     expect(appFileOf('http://localhost:5173/src/App.tsx?t=123')).toBe('src/App.tsx');
  • Network accessline 15
    it('keeps app source and drops dependencies, dev-server internals and the SDK', () => {     expect(appFileOf('http://localhost:5173/src/App.tsx?t=123')).toBe('src/App.tsx');     expect(appFileOf('http://localhost:5173/node_modules/.vite/dep
  • Network accessline 16
    expect(appFileOf('http://localhost:5173/src/App.tsx?t=123')).toBe('src/App.tsx');
  • Network accessline 17
    expect(appFileOf('http://localhost:5173/node_modules/.vite/deps/react.js')).toBeUndefined();
  • Network accessline 18
    expect(appFileOf('http://localhost:5173/@vite/client')).toBeUndefined();
  • Network accessline 19
    expect(appFileOf('http://localhost:5173/@react-refresh')).toBeUndefined();
  • Network accessline 20
    expect(       appFileOf('http://localhost:5173/@fs/Users/x/node_modules/@reticlehq/browser/dist/i.js'),     ).toBeUndefined();
  • Network accessline 21
    appFileOf('http://localhost:5173/@fs/Users/x/node_modules/@reticlehq/browser/dist/i.js'),
  • Network accessline 23
    expect(appFileOf('http://localhost:5173/assets/index-abc.css')).toBeUndefined();
  • Network accessline 25
    expect(       appFileOf('http://h/@fs/Users/x/adapters/realm/browser/dist/reticle.js'),
  • Network accessline 26
    appFileOf('http://h/@fs/Users/x/adapters/realm/browser/dist/reticle.js'),
  • Network accessline 32
    const take = [     {       url: 'http://localhost:5173/src/Cart.tsx',
  • Network accessline 33
    {       url: 'http://localhost:5173/src/Cart.tsx',       functions: [
  • Network accessline 34
    url: 'http://localhost:5173/src/Cart.tsx',
  • Network accessline 40
    ],     },     { url: 'http://localhost:5173/node_modules/.vite/deps/react.js', functions: [fn('x', 5, 1)] },
  • Network accessline 41
    },     { url: 'http://localhost:5173/node_modules/.vite/deps/react.js', functions: [fn('x', 5, 1)] },   ];
  • Network accessline 42
    { url: 'http://localhost:5173/node_modules/.vite/deps/react.js', functions: [fn('x', 5, 1)] },
  • Network accessline 54
    it('is a union across takes: a function that ran once stays run', () => {     const later = [       { url: 'http://localhost:5173/src/Cart.tsx', functions: [fn('removeItem', 60, 2)] },
  • Network accessline 55
    const later = [       { url: 'http://localhost:5173/src/Cart.tsx', functions: [fn('removeItem', 60, 2)] },     ];
  • Network accessline 56
    { url: 'http://localhost:5173/src/Cart.tsx', functions: [fn('removeItem', 60, 2)] },

server/src/features/exhaust/code-coverage.ts

  • Executable scriptline 1
    Executable file

server/src/features/exhaust/edge-cases.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 95
    [FieldKind.DATE]: '2026-01-01',   [FieldKind.TIME]: '12:00',   [FieldKind.URL]: 'https://example.com',
  • Network accessline 96
    [FieldKind.TIME]: '12:00',   [FieldKind.URL]: 'https://example.com',   [FieldKind.TEL]: '5550100',
  • Network accessline 97
    [FieldKind.URL]: 'https://example.com',

server/src/features/exhaust/edge-inputs.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/exhaust/edge-interactions.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/exhaust/edges/edge-drive.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 116
    data: {             method: 'POST',             url: 'http://h/api/notes',
  • Network accessline 117
    method: 'POST',             url: 'http://h/api/notes',             status: fault ? 500 : 201,
  • Network accessline 118
    url: 'http://h/api/notes',
  • Network accessline 307
    type: 'net.request',           t: 1,           data: { method: 'POST', url: 'http://h/api/login', status: good ? 200 : 401 },
  • Network accessline 308
    t: 1,           data: { method: 'POST', url: 'http://h/api/login', status: good ? 200 : 401 },         } as unknown as ReticleEvent);
  • Network accessline 309
    data: { method: 'POST', url: 'http://h/api/login', status: good ? 200 : 401 },
  • Network accessline 357
    type: 'net.request',           t: 1,           data: { method: 'POST', url: `http://h/api/${label.length}`, status: 200 },
  • Network accessline 358
    t: 1,           data: { method: 'POST', url: `http://h/api/${label.length}`, status: 200 },         } as unknown as ReticleEvent);
  • Network accessline 359
    data: { method: 'POST', url: `http://h/api/${label.length}`, status: 200 },

server/src/features/exhaust/edges/edge-drive.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 95
    for (const surface of surfaces) {     for (const control of surface.order) {       if (seen.has(control) || (!surface.requests.includes(control) && !looksLikeSubmit(control))) {
  • Network accessline 96
    for (const control of surface.order) {       if (seen.has(control) || (!surface.requests.includes(control) && !looksLikeSubmit(control))) {         continue;
  • Network accessline 97
    if (seen.has(control) || (!surface.requests.includes(control) && !looksLikeSubmit(control))) {

server/src/features/exhaust/edges/edge-run.ts

  • Executable scriptline 1
    Executable file

server/src/features/exhaust/explorer.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 90
    type: 'net.request',           t: 1,           data: { method: 'POST', url: 'http://h/api/pay', status: mocked ? 0 : 200 },
  • Network accessline 91
    t: 1,           data: { method: 'POST', url: 'http://h/api/pay', status: mocked ? 0 : 200 },         } as unknown as ReticleEvent);
  • Network accessline 92
    data: { method: 'POST', url: 'http://h/api/pay', status: mocked ? 0 : 200 },
  • Network accessline 213
    type: 'net.request',               t: 1,               data: { method: 'POST', url: 'http://h/api/items', status: 0 },
  • Network accessline 214
    t: 1,               data: { method: 'POST', url: 'http://h/api/items', status: 0 },             } as unknown as ReticleEvent,
  • Network accessline 215
    data: { method: 'POST', url: 'http://h/api/items', status: 0 },
  • Network accessline 255
    type: 'net.request',               t: 1,               data: { method: 'POST', url: 'http://h/api/login', status: mocked ? 0 : 502 },
  • Network accessline 256
    t: 1,               data: { method: 'POST', url: 'http://h/api/login', status: mocked ? 0 : 502 },             } as unknown as ReticleEvent,
  • Network accessline 257
    data: { method: 'POST', url: 'http://h/api/login', status: mocked ? 0 : 502 },
  • Network accessline 337
    let broken = false;       if (c.send !== undefined) {         const url = `http://h${c.send}`;
  • Network accessline 338
    if (c.send !== undefined) {         const url = `http://h${c.send}`;         const matched = rules.some((r) => url.includes(r.urlContains));
  • Network accessline 339
    const url = `http://h${c.send}`;
  • Network accessline 557
    type: 'net.request',             t: 1,             data: { method: 'POST', url: 'http://h/api/generate', status },
  • Network accessline 558
    t: 1,             data: { method: 'POST', url: 'http://h/api/generate', status },           } as unknown as ReticleEvent);
  • Network accessline 559
    data: { method: 'POST', url: 'http://h/api/generate', status },
  • Network accessline 628
    type: 'net.pending',       t: 1,       data: { id, method: 'POST', url: 'http://h/api/generate', initiator: 'fetch' },
  • Network accessline 629
    t: 1,       data: { id, method: 'POST', url: 'http://h/api/generate', initiator: 'fetch' },     }) as unknown as ReticleEvent;
  • Network accessline 630
    data: { id, method: 'POST', url: 'http://h/api/generate', initiator: 'fetch' },
  • Network accessline 634
    type: 'net.request',       t: 2,       data: { id, method: 'POST', url: 'http://h/api/generate', status: 200 },
  • Network accessline 635
    t: 2,       data: { id, method: 'POST', url: 'http://h/api/generate', status: 200 },     }) as unknown as ReticleEvent;
  • Network accessline 636
    data: { id, method: 'POST', url: 'http://h/api/generate', status: 200 },

server/src/features/exhaust/explorer.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 342
    noteWrites(result.events, path, key, next, writes);       if (result.events.some((e) => EventType.NET_REQUEST === e.type)) {         surface.requests.push(target);
  • Network accessline 343
    if (result.events.some((e) => EventType.NET_REQUEST === e.type)) {         surface.requests.push(target);       }
  • Network accessline 344
    surface.requests.push(target);
  • Network accessline 423
    const [method = '', urlPath = ''] = key.split(' ');     const url = event.data['url'];     const concrete = 'string' === typeof url ? new URL(url, 'http://localhost').pathname : urlPath;
  • Network accessline 424
    const url = event.data['url'];     const concrete = 'string' === typeof url ? new URL(url, 'http://localhost').pathname : urlPath;     const status = asNumber(event.data['status']);
  • Network accessline 425
    const concrete = 'string' === typeof url ? new URL(url, 'http://localhost').pathname : urlPath;

server/src/features/exhaust/failure-branches.ts

  • Executable scriptline 1
    Executable file

server/src/features/exhaust/holes.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/exhaust/invariants.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/exhaust/invariants.ts

  • Executable scriptline 1
    Executable file

server/src/features/exhaust/ledger.test.ts

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 2
    import { mkdtemp, rm } from 'node:fs/promises';

server/src/features/exhaust/ledger.ts

  • Executable scriptline 1
    Executable file

server/src/features/exhaust/session-fold.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 8
    describe('writeKeyOf — one key per endpoint, not per record', () => {   it('names a write by method and path, with ids collapsed', () => {     expect(writeKeyOf(req('POST', 'http://h/api/orders/42/refund?x=1'))).toBe(
  • Network accessline 9
    it('names a write by method and path, with ids collapsed', () => {     expect(writeKeyOf(req('POST', 'http://h/api/orders/42/refund?x=1'))).toBe(       'POST /api/orders/:id/refund',
  • Network accessline 10
    expect(writeKeyOf(req('POST', 'http://h/api/orders/42/refund?x=1'))).toBe(
  • Network accessline 12
    );     expect(       writeKeyOf(req('DELETE', 'http://h/api/items/3f2a9c1e-aaaa-bbbb-cccc-1234567890ab')),
  • Network accessline 13
    expect(       writeKeyOf(req('DELETE', 'http://h/api/items/3f2a9c1e-aaaa-bbbb-cccc-1234567890ab')),     ).toBe('DELETE /api/items/:id');
  • Network accessline 14
    writeKeyOf(req('DELETE', 'http://h/api/items/3f2a9c1e-aaaa-bbbb-cccc-1234567890ab')),
  • Network accessline 15
    ).toBe('DELETE /api/items/:id');     expect(writeKeyOf(req('GET', 'http://h/api/orders'))).toBeUndefined();   });
  • Network accessline 16
    expect(writeKeyOf(req('GET', 'http://h/api/orders'))).toBeUndefined();
  • Network accessline 24
    acted: ['button "Add"'],       proved: ['button "Add"'],       url: 'http://h/cart?x=1',
  • Network accessline 25
    proved: ['button "Add"'],       url: 'http://h/cart?x=1',       events: [req('POST', 'http://h/api/cart'), req('GET', 'http://h/api/cart')],
  • Network accessline 26
    url: 'http://h/cart?x=1',
  • Network accessline 27
    events: [req('POST', 'http://h/api/cart'), req('GET', 'http://h/api/cart')],

server/src/features/exhaust/session-fold.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 36
    let path: string;   try {     path = new URL(url, 'http://localhost').pathname;
  • Network accessline 37
    try {     path = new URL(url, 'http://localhost').pathname;   } catch {
  • Network accessline 38
    path = new URL(url, 'http://localhost').pathname;

server/src/features/exhaust/session-port.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 15
    return {       id: 's1',       url: 'http://h/start',
  • Network accessline 16
    id: 's1',       url: 'http://h/start',       elapsed: () => 0,
  • Network accessline 17
    url: 'http://h/start',
  • Network accessline 43
    sessions: { get: () => current },     start: current,     startUrl: 'http://h/start',
  • Network accessline 44
    start: current,     startUrl: 'http://h/start',     settleMs: 0,
  • Network accessline 45
    startUrl: 'http://h/start',
  • Network accessline 88
    },   });   current = make('http://h/form');
  • Network accessline 89
    });   current = make('http://h/form');   const port = sessionPort({
  • Network accessline 90
    current = make('http://h/form');
  • Network accessline 92
    sessions: { get: () => current },     start: current,     startUrl: 'http://h/start',
  • Network accessline 93
    start: current,     startUrl: 'http://h/start',     settleMs: 5,
  • Network accessline 94
    startUrl: 'http://h/start',
  • Network accessline 124
    await port.act('e1', 'click');     expect(await port.back?.()).toBe(true);     expect(sent.at(-1)).toEqual({ name: 'navigate', args: { url: 'http://h/form' } });
  • Network accessline 125
    expect(await port.back?.()).toBe(true);     expect(sent.at(-1)).toEqual({ name: 'navigate', args: { url: 'http://h/form' } });   });
  • Network accessline 126
    expect(sent.at(-1)).toEqual({ name: 'navigate', args: { url: 'http://h/form' } });
  • Network accessline 163
    const session: PortSession = {       id: 's1',       url: 'http://h/',
  • Network accessline 164
    id: 's1',       url: 'http://h/',       elapsed: () => 0,
  • Network accessline 165
    url: 'http://h/',
  • Network accessline 178
    sessions: { get: () => session },       start: session,       startUrl: 'http://h/',
  • Network accessline 179
    start: session,       startUrl: 'http://h/',       settleMs: 300,
  • Network accessline 180
    startUrl: 'http://h/',

server/src/features/exhaust/session-port.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/app-findings.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/app-findings.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/drive-report.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 168
    it('names a navigation by where it went', () => {     const summary = describeDrive(       [call('reticle_navigate', { url: 'http://localhost:4312/orders' }, { verified: 'yes' })],
  • Network accessline 169
    const summary = describeDrive(       [call('reticle_navigate', { url: 'http://localhost:4312/orders' }, { verified: 'yes' })],       [],
  • Network accessline 170
    [call('reticle_navigate', { url: 'http://localhost:4312/orders' }, { verified: 'yes' })],
  • Network accessline 171
    [],     );     expect(summary).toContain('navigate http://localhost:4312/orders');
  • Network accessline 172
    );     expect(summary).toContain('navigate http://localhost:4312/orders');   });
  • Network accessline 173
    expect(summary).toContain('navigate http://localhost:4312/orders');

server/src/features/harness/drive-report.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/drive-runs-hud.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 62
    it('links the run once the drive has ended', async () => {     const run = drive('b', 's1', { runUrl: 'http://localhost:5173/runs/harness-b' });
  • Network accessline 63
    const run = drive('b', 's1', { runUrl: 'http://localhost:5173/runs/harness-b' });
  • Network accessline 67
    const snap = withRunningDrive(SNAPSHOT, 's1');     expect(snap?.harnessDrive).toBeUndefined();     expect(snap?.lastDrive?.runUrl).toBe('http://localhost:5173/runs/harness-b');
  • Network accessline 68
    expect(snap?.harnessDrive).toBeUndefined();     expect(snap?.lastDrive?.runUrl).toBe('http://localhost:5173/runs/harness-b');   });
  • Network accessline 69
    expect(snap?.lastDrive?.runUrl).toBe('http://localhost:5173/runs/harness-b');
  • Network accessline 99
    type: EventType.NET_REQUEST,       t: 1,       data: { initiator: NetInitiator.DOCUMENT, navigationType, url: 'http://localhost:4612/' },
  • Network accessline 100
    t: 1,       data: { initiator: NetInitiator.DOCUMENT, navigationType, url: 'http://localhost:4612/' },     }) as unknown as ReticleEvent;
  • Network accessline 101
    data: { initiator: NetInitiator.DOCUMENT, navigationType, url: 'http://localhost:4612/' },

server/src/features/harness/drive-runs.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/drive-runs.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/drivers.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/explore/console-pages.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/explore/disparity.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/explore/disparity.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/explore/fake-app.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/explore/goal-search.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/explore/goal-search.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/explore/page-tree.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/explore/site-map.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/explore/site-map.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/fill-values.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/fill-values.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 9
    if (l.includes('email')) return 'harness@reticle.dev';   if (l.includes('password')) return 'password';   if (l.includes('url') || l.includes('link')) return 'https://example.com';
  • Network accessline 10
    if (l.includes('password')) return 'password';   if (l.includes('url') || l.includes('link')) return 'https://example.com';   if (l.includes('phone') || l.includes('tel')) return '5550100';
  • Network accessline 11
    if (l.includes('url') || l.includes('link')) return 'https://example.com';

server/src/features/harness/goals.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/goals.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/harness-stops-at-end.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/harness.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/harness.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/platform-config.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 10
    [Credential-related source omitted]
  • Access to secretsline 10
    [Credential-related source omitted]
  • Network accessline 26
    harnessEntitled: true,       providerReady: true,       platformUrl: 'https://app.reticle.sh',
  • Network accessline 27
    providerReady: true,       platformUrl: 'https://app.reticle.sh',     });
  • Network accessline 28
    platformUrl: 'https://app.reticle.sh',
  • Network accessline 32
    [Credential-related source omitted]
  • Network accessline 33
    [Credential-related source omitted]
  • Network accessline 34
    [Credential-related source omitted]
  • Access to secretsline 34
    [Credential-related source omitted]
  • Network accessline 35
    answering({ provider: 'jev' }),     );     expect(got?.platformUrl).toBe('http://localhost:4100');
  • Network accessline 36
    );     expect(got?.platformUrl).toBe('http://localhost:4100');   });
  • Network accessline 37
    expect(got?.platformUrl).toBe('http://localhost:4100');
  • Network accessline 42
    await fetchPlatformConfig(LINKED, doFetch);     expect(doFetch).toHaveBeenCalledWith(       'https://app.reticle.sh/v1/model/config',
  • Network accessline 43
    [Credential-related source omitted]
  • Network accessline 44
    'https://app.reticle.sh/v1/model/config',
  • Network accessline 52
    [Credential-related source omitted]
  • Access to secretsline 52
    [Credential-related source omitted]
  • Network accessline 53
    [Credential-related source omitted]
  • Network accessline 54
    'https://app.reticle.sh/v1/model/config',
  • Network accessline 99
    harnessEntitled: false,       providerReady: true,       platformUrl: 'https://app.reticle.sh',
  • Network accessline 100
    providerReady: true,       platformUrl: 'https://app.reticle.sh',     });
  • Network accessline 101
    platformUrl: 'https://app.reticle.sh',
  • Network accessline 152
    it('tolerates a trailing slash on the configured host', async () => {     const doFetch = answering({ provider: 'jev' });     await fetchPlatformConfig({ ...LINKED, RETICLE_CLOUD_URL: 'https://app.reticle.sh/' }, doFetch);
  • Network accessline 153
    const doFetch = answering({ provider: 'jev' });     await fetchPlatformConfig({ ...LINKED, RETICLE_CLOUD_URL: 'https://app.reticle.sh/' }, doFetch);     expect(doFetch).toHaveBeenCalledWith(
  • Network accessline 154
    await fetchPlatformConfig({ ...LINKED, RETICLE_CLOUD_URL: 'https://app.reticle.sh/' }, doFetch);
  • Network accessline 155
    expect(doFetch).toHaveBeenCalledWith(       'https://app.reticle.sh/v1/model/config',       expect.anything(),
  • Network accessline 156
    'https://app.reticle.sh/v1/model/config',

server/src/features/harness/platform-config.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 219
    export async function fetchPlatformConfig(   env: Record<string, string | undefined>,   doFetch: ConfigFetch = (url, init) => fetch(url, init),
  • Network accessline 220
    env: Record<string, string | undefined>,   doFetch: ConfigFetch = (url, init) => fetch(url, init),   timeoutMs: number = TIMEOUT_MS,
  • Network accessline 221
    doFetch: ConfigFetch = (url, init) => fetch(url, init),

server/src/features/harness/platform/drive-target.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 41
    const p = ports();     const prepared = await prepareDrive(       { target: 'headed', hud: 'removed', url: 'http://localhost:3000/cart', mode: 'platform' },
  • Network accessline 42
    const prepared = await prepareDrive(       { target: 'headed', hud: 'removed', url: 'http://localhost:3000/cart', mode: 'platform' },       'http://localhost:3000/',
  • Network accessline 43
    { target: 'headed', hud: 'removed', url: 'http://localhost:3000/cart', mode: 'platform' },
  • Network accessline 44
    'http://localhost:3000/',
  • Network accessline 45
    p.all,     );     expect(p.opened).toEqual([['http://localhost:3000/cart', true, 'removed']]);
  • Network accessline 46
    );     expect(p.opened).toEqual([['http://localhost:3000/cart', true, 'removed']]);     expect(p.tuned).toEqual([['lease-headed', 'removed']]);
  • Network accessline 47
    expect(p.opened).toEqual([['http://localhost:3000/cart', true, 'removed']]);
  • Network accessline 50
    target: DriveTarget.HEADED,       mode: DriveMode.PLATFORM,       url: 'http://localhost:3000/cart',
  • Network accessline 51
    mode: DriveMode.PLATFORM,       url: 'http://localhost:3000/cart',       hud: HudVisibility.REMOVED,
  • Network accessline 52
    url: 'http://localhost:3000/cart',
  • Network accessline 61
    headed ? Promise.reject(new Error('no display')) : Promise.resolve('lease-headless'),     });     const prepared = await prepareDrive({ target: 'headed' }, 'http://localhost:3000/', p.all);
  • Network accessline 62
    });     const prepared = await prepareDrive({ target: 'headed' }, 'http://localhost:3000/', p.all);     expect(prepared.sessionId).toBe('lease-headless');
  • Network accessline 63
    const prepared = await prepareDrive({ target: 'headed' }, 'http://localhost:3000/', p.all);

server/src/features/harness/platform/drive-target.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/platform/local-apps.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 23
    [Credential-related source omitted]
  • Network accessline 24
    [Credential-related source omitted]
  • Network accessline 73
    const groups = await appsByPlatform(       [         tab('s1', 'http://localhost:3000/', { channels: ['ui', 'net'] }),
  • Network accessline 74
    [         tab('s1', 'http://localhost:3000/', { channels: ['ui', 'net'] }),         tab('s3', 'http://localhost:3000/compose', { channels: ['ui', 'net', 'source', 'testid'] }),
  • Network accessline 75
    tab('s1', 'http://localhost:3000/', { channels: ['ui', 'net'] }),
  • Network accessline 76
    tab('s3', 'http://localhost:3000/compose', { channels: ['ui', 'net', 'source', 'testid'] }),
  • Network accessline 81
    );     expect(groups[0]?.apps).toHaveLength(1);     expect(groups[0]?.apps[0]?.url).toBe('http://localhost:3000/compose');
  • Network accessline 82
    expect(groups[0]?.apps).toHaveLength(1);     expect(groups[0]?.apps[0]?.url).toBe('http://localhost:3000/compose');   });
  • Network accessline 83
    expect(groups[0]?.apps[0]?.url).toBe('http://localhost:3000/compose');
  • Network accessline 93
    const groups = await appsByPlatform(       [         tab('s1', 'http://localhost:3000/', { channels: ['ui', 'testid'], gaps: [gapA] }),
  • Network accessline 94
    [         tab('s1', 'http://localhost:3000/', { channels: ['ui', 'testid'], gaps: [gapA] }),         tab('s3', 'http://localhost:3000/compose', {
  • Network accessline 95
    tab('s1', 'http://localhost:3000/', { channels: ['ui', 'testid'], gaps: [gapA] }),
  • Network accessline 96
    tab('s3', 'http://localhost:3000/compose', {
  • Network accessline 113
    const groups = await appsByPlatform(       [         tab('s1', 'http://localhost:3000/cart', {
  • Network accessline 114
    [         tab('s1', 'http://localhost:3000/cart', {           title: 'Shop',
  • Network accessline 115
    tab('s1', 'http://localhost:3000/cart', {
  • Network accessline 118
    sdkVersion: '9.1.0',         }),         tab('s2', 'http://localhost:3000/', { adapters: ['vue'], runtime: 'electron' }),
  • Network accessline 119
    }),         tab('s2', 'http://localhost:3000/', { adapters: ['vue'], runtime: 'electron' }),         tab('s3', 'http://localhost:3000/other', { hidden: true }),
  • Network accessline 120
    tab('s2', 'http://localhost:3000/', { adapters: ['vue'], runtime: 'electron' }),
  • Network accessline 121
    tab('s3', 'http://localhost:3000/other', { hidden: true }),
  • Network accessline 132
    key: appKeyOf(MACHINE.id, '/code/shop', undefined),             name: 'shop',             url: 'http://localhost:3000/cart',
  • Network accessline 133
    name: 'shop',             url: 'http://localhost:3000/cart',             title: 'Shop',
  • Network accessline 134
    url: 'http://localhost:3000/cart',
  • Network accessline 146
    key: appKeyOf(MACHINE.id, '/code/admin', undefined),             name: 'admin',             url: 'http://localhost:3000/',
  • Network accessline 147
    name: 'admin',             url: 'http://localhost:3000/',             stack: ['vue', 'electron'],
  • Network accessline 148
    url: 'http://localhost:3000/',
  • Network accessline 168
    const groups = await appsByPlatform(       [         tab('s1', 'http://localhost:3000/', { projectId: 'shop-1a2b3c4d' }),
  • Network accessline 169
    [         tab('s1', 'http://localhost:3000/', { projectId: 'shop-1a2b3c4d' }),         tab('s2', 'http://localhost:3000/', { projectId: 'admin-5e6f7a8b' }),
  • Network accessline 170
    tab('s1', 'http://localhost:3000/', { projectId: 'shop-1a2b3c4d' }),
  • Network accessline 171
    tab('s2', 'http://localhost:3000/', { projectId: 'admin-5e6f7a8b' }),
  • Network accessline 180
    it("reports an app's address without the marks Reticle put on it", async () => {     const groups = await appsByPlatform(       [tab('s1', 'http://localhost:5301/cart?q=1&__reticle_session=lease-1&__reticle_project=p')],
  • Network accessline 181
    const groups = await appsByPlatform(       [tab('s1', 'http://localhost:5301/cart?q=1&__reticle_session=lease-1&__reticle_project=p')],       undefined,
  • Network accessline 182
    [tab('s1', 'http://localhost:5301/cart?q=1&__reticle_session=lease-1&__reticle_project=p')],
  • Network accessline 185
    describeTab,     );     expect(groups[0]?.apps[0]?.url).toBe('http://localhost:5301/cart?q=1');
  • Network accessline 186
    );     expect(groups[0]?.apps[0]?.url).toBe('http://localhost:5301/cart?q=1');   });
  • Network accessline 187
    expect(groups[0]?.apps[0]?.url).toBe('http://localhost:5301/cart?q=1');
  • Network accessline 196
    it('leaves out a tab of a project that is not linked', async () => {     const groups = await appsByPlatform(       [tab('s1', 'http://localhost:3000/')],
  • Network accessline 197
    const groups = await appsByPlatform(       [tab('s1', 'http://localhost:3000/')],       undefined,
  • Network accessline 198
    [tab('s1', 'http://localhost:3000/')],
  • Network accessline 218
    return { calls, fetch };   };   const shop = { key: 'k_shop', name: 'shop', url: 'http://localhost:3000/', stack: [] };
  • Network accessline 220
    const shop = { key: 'k_shop', name: 'shop', url: 'http://localhost:3000/', stack: [] };
  • Network accessline 222
    it('sends the machine, its version and its apps, and opens an app it was asked to wake', async () => {     const p = platform({       wake: [{ key: 'k_admin', url: 'http://localhost:4000/' }],
  • Network accessline 223
    const p = platform({       wake: [{ key: 'k_admin', url: 'http://localhost:4000/' }],       pendingDrive: false,
  • Network accessline 224
    wake: [{ key: 'k_admin', url: 'http://localhost:4000/' }],
  • Network accessline 241
    await running.tick();     expect(p.calls[0]).toEqual({       url: 'https://p.test/v1/harness/local-apps',
  • Network accessline 242
    expect(p.calls[0]).toEqual({       url: 'https://p.test/v1/harness/local-apps',       body: {
  • Network accessline 243
    url: 'https://p.test/v1/harness/local-apps',
  • Network accessline 251
    auth: 'Bearer key-a',     });     expect(opened).toEqual(['http://localhost:4000/']);
  • Network accessline 252
    });     expect(opened).toEqual(['http://localhost:4000/']);   });
  • Network accessline 253
    expect(opened).toEqual(['http://localhost:4000/']);
  • Network accessline 314
    it('drives only that app, never another on the same port', async () => {     const tabs = [tab('s1', 'http://localhost:3000/'), tab('s2', 'http://localhost:3000/')];
  • Network accessline 315
    const tabs = [tab('s1', 'http://localhost:3000/'), tab('s2', 'http://localhost:3000/')];
  • Network accessline 330
    const opened: string[] = [];     const picked = await pickAppTab(       { key: 'k_shop', url: 'http://localhost:3000/' },
  • Network accessline 331
    const picked = await pickAppTab(       { key: 'k_shop', url: 'http://localhost:3000/' },       'x',
  • Network accessline 332
    { key: 'k_shop', url: 'http://localhost:3000/' },
  • Network accessline 341
    1_000,     );     expect(opened).toEqual(['http://localhost:3000/']);
  • Network accessline 342
    );     expect(opened).toEqual(['http://localhost:3000/']);     expect(picked).toBe('s1');
  • Network accessline 343
    expect(opened).toEqual(['http://localhost:3000/']);
  • Network accessline 361
    describe('an address the platform asks this machine to open', () => {   it('is a web page here, or on an app already open, and nothing else', () => {     const open = ['https://staging.example.com/cart'];
  • Network accessline 362
    it('is a web page here, or on an app already open, and nothing else', () => {     const open = ['https://staging.example.com/cart'];     expect(mayOpen('http://localhost:5173/', [])).toBe(true);
  • Network accessline 363
    const open = ['https://staging.example.com/cart'];
  • Network accessline 364
    expect(mayOpen('http://localhost:5173/', [])).toBe(true);
  • Network accessline 365
    expect(mayOpen('http://127.0.0.1:3000/a', [])).toBe(true);
  • Network accessline 366
    expect(mayOpen('https://staging.example.com/login', open)).toBe(true);
  • Network accessline 367
    expect(mayOpen('file:///etc/passwd', open)).toBe(false);     expect(mayOpen('http://10.0.0.5/admin', open)).toBe(false);     expect(mayOpen('https://evil.example.com/', open)).toBe(false);
  • Network accessline 368
    expect(mayOpen('http://10.0.0.5/admin', open)).toBe(false);
  • Network accessline 369
    expect(mayOpen('https://evil.example.com/', open)).toBe(false);
  • Network accessline 406
    const [group] = await appsByPlatform(       [         tab('s1', 'http://localhost:3000/', {
  • Network accessline 407
    [         tab('s1', 'http://localhost:3000/', {           channels: ['ui', 'net'],
  • Network accessline 408
    tab('s1', 'http://localhost:3000/', {
  • Network accessline 436
    extras: () =>         Promise.resolve({           devServers: [{ url: 'http://localhost:5173', port: 5173 }],
  • Network accessline 437
    Promise.resolve({           devServers: [{ url: 'http://localhost:5173', port: 5173 }],           helloFailure: { reason: 'version skew', at: 9 },
  • Network accessline 438
    devServers: [{ url: 'http://localhost:5173', port: 5173 }],
  • Network accessline 450
    await running.tick();     expect(bodies[0]).toMatchObject({       [LinkReportKey.DEV_SERVERS]: [{ url: 'http://localhost:5173', port: 5173 }],
  • Network accessline 451
    expect(bodies[0]).toMatchObject({       [LinkReportKey.DEV_SERVERS]: [{ url: 'http://localhost:5173', port: 5173 }],       [LinkReportKey.HELLO_FAILURE]: { reason: 'version skew', at: 9 },
  • Network accessline 452
    [LinkReportKey.DEV_SERVERS]: [{ url: 'http://localhost:5173', port: 5173 }],

server/src/features/harness/platform/local-apps.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 288
    export function startAppReports(deps: AppReportDeps): AppReports {   const doFetch: FetchLike = deps.fetch ?? ((url, init) => fetch(url, init));
  • Network accessline 289
    const doFetch: FetchLike = deps.fetch ?? ((url, init) => fetch(url, init));

server/src/features/harness/platform/persona-credentials.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/platform/persona-credentials.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/platform/platform-drives.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 11
    [Credential-related source omitted]
  • Network accessline 28
    );     expect(grant).toEqual({ granted: true, driveId: 'drv_9' });     expect(seen.url).toBe('https://app.reticle.test/v1/harness/free-drive');
  • Network accessline 29
    expect(grant).toEqual({ granted: true, driveId: 'drv_9' });     expect(seen.url).toBe('https://app.reticle.test/v1/harness/free-drive');     expect(seen.init).toMatchObject({
  • Network accessline 30
    expect(seen.url).toBe('https://app.reticle.test/v1/harness/free-drive');
  • Network accessline 74
    answering(200, { runId: 'harness-1', status: 'done' }, seen),     );     expect(seen.url).toBe('https://app.reticle.test/v1/runs/harness-1');
  • Network accessline 75
    );     expect(seen.url).toBe('https://app.reticle.test/v1/runs/harness-1');     expect(answer).toEqual({ run: { runId: 'harness-1', status: 'done' } });
  • Network accessline 76
    expect(seen.url).toBe('https://app.reticle.test/v1/runs/harness-1');
  • Network accessline 118
    describe('where a trial starts', () => {   it("is the billing settings at the dashboard's origin, whatever path the link carried", () => {     expect(planUrl('https://app.reticle.test/p/123')).toBe(
  • Network accessline 119
    it("is the billing settings at the dashboard's origin, whatever path the link carried", () => {     expect(planUrl('https://app.reticle.test/p/123')).toBe(       'https://app.reticle.test/settings?group=billing',
  • Network accessline 120
    expect(planUrl('https://app.reticle.test/p/123')).toBe(
  • Network accessline 121
    'https://app.reticle.test/settings?group=billing',

server/src/features/harness/platform/platform-drives.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 42
    const defaultFetch: PlatformFetch = (url, init) => fetch(url, init);

server/src/features/harness/platform/refusal.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/platform/remote-drive.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 15
    [Credential-related source omitted]
  • Access to secretsline 15
    [Credential-related source omitted]
  • Network accessline 59
    expect(goals).toEqual(['sign up works']);     expect(p.calls[0]).toMatchObject({       url: 'https://p.test/v1/harness/local-drives/next',
  • Network accessline 60
    expect(p.calls[0]).toMatchObject({       url: 'https://p.test/v1/harness/local-drives/next',       method: 'GET',
  • Network accessline 61
    url: 'https://p.test/v1/harness/local-drives/next',
  • Network accessline 64
    });     expect(p.calls[1]).toMatchObject({       url: 'https://p.test/v1/harness/local-drives/ld_1',
  • Network accessline 65
    expect(p.calls[1]).toMatchObject({       url: 'https://p.test/v1/harness/local-drives/ld_1',       method: 'POST',
  • Network accessline 66
    url: 'https://p.test/v1/harness/local-drives/ld_1',
  • Network accessline 122
    it('drives only a tab of the project whose credential claimed the drive', async () => {     const tabs = [       { sessionId: 'b', url: 'http://localhost:5174/', lastSeenMs: 0, hidden: false },
  • Network accessline 123
    const tabs = [       { sessionId: 'b', url: 'http://localhost:5174/', lastSeenMs: 0, hidden: false },       { sessionId: 'a', url: 'http://localhost:5173/', lastSeenMs: 1, hidden: false },
  • Network accessline 124
    { sessionId: 'b', url: 'http://localhost:5174/', lastSeenMs: 0, hidden: false },
  • Network accessline 125
    { sessionId: 'a', url: 'http://localhost:5173/', lastSeenMs: 1, hidden: false },
  • Network accessline 131
    expect(await pickOwnDriveSession(tabs, 'on http://localhost:5174', 'key-a', keyOf)).toBe('a');
  • Network accessline 139
    */   it("opens the project's app when no tab of it is connected, and drives that", async () => {     const tabs = [{ sessionId: 'b', url: 'http://localhost:5174/', lastSeenMs: 0, hidden: false }];
  • Network accessline 140
    it("opens the project's app when no tab of it is connected, and drives that", async () => {     const tabs = [{ sessionId: 'b', url: 'http://localhost:5174/', lastSeenMs: 0, hidden: false }];     const keyOf = (id: string): Promise<string |
  • Network accessline 141
    const tabs = [{ sessionId: 'b', url: 'http://localhost:5174/', lastSeenMs: 0, hidden: false }];
  • Network accessline 187
    [Credential-related source omitted]
  • Network accessline 188
    [Credential-related source omitted]
  • Network accessline 189
    [Credential-related source omitted]
  • Network accessline 190
    expect(goals).toEqual(['pay']);     expect(p.calls[0]).toMatchObject({       url: 'https://other.test/v1/harness/local-drives/next',
  • Network accessline 191
    expect(p.calls[0]).toMatchObject({       url: 'https://other.test/v1/harness/local-drives/next',       auth: 'Bearer key-b',
  • Network accessline 192
    url: 'https://other.test/v1/harness/local-drives/next',
  • Network accessline 200
    goal: 'pay',       appKey: 'k_shop',       appUrl: 'http://localhost:3000/',
  • Network accessline 201
    appKey: 'k_shop',       appUrl: 'http://localhost:3000/',     });
  • Network accessline 202
    appUrl: 'http://localhost:3000/',
  • Network accessline 210
    },     }).tick();     expect(asked).toEqual([{ key: 'k_shop', url: 'http://localhost:3000/' }]);
  • Network accessline 211
    }).tick();     expect(asked).toEqual([{ key: 'k_shop', url: 'http://localhost:3000/' }]);   });
  • Network accessline 212
    expect(asked).toEqual([{ key: 'k_shop', url: 'http://localhost:3000/' }]);
  • Network accessline 340
    it('takes the tab whose address the request names', () => {     const tabs = [tab('a', 'http://localhost:3000/', 5), tab('b', 'http://localhost:4313/x', 50)];
  • Network accessline 341
    const tabs = [tab('a', 'http://localhost:3000/', 5), tab('b', 'http://localhost:4313/x', 50)];
  • Network accessline 342
    expect(pickDriveSession(tabs, 'On http://localhost:4313, sign in works')).toBe('b');
  • Network accessline 345
    it('otherwise takes a visible tab over a hidden one, then the one heard from last', () => {     const tabs = [       tab('hidden', 'http://localhost:4313/', 1, true),
  • Network accessline 346
    const tabs = [       tab('hidden', 'http://localhost:4313/', 1, true),       tab('old', 'http://localhost:4313/', 900),
  • Network accessline 347
    tab('hidden', 'http://localhost:4313/', 1, true),
  • Network accessline 348
    tab('old', 'http://localhost:4313/', 900),
  • Network accessline 349
    tab('fresh', 'http://localhost:4313/', 10),

server/src/features/harness/platform/remote-drive.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 175
    export function startRemoteDrives(deps: RemoteDriveDeps): RemoteDrives {   const doFetch: FetchLike = deps.fetch ?? ((url, init) => fetch(url, init));
  • Network accessline 176
    const doFetch: FetchLike = deps.fetch ?? ((url, init) => fetch(url, init));

server/src/features/harness/platform/script.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 58
    [Credential-related source omitted]
  • Network accessline 59
    [Credential-related source omitted]
  • Network accessline 60
    [Credential-related source omitted]
  • Network accessline 72
    [Credential-related source omitted]
  • Network accessline 73
    [Credential-related source omitted]
  • Network accessline 74
    [Credential-related source omitted]
  • Network accessline 79
    [Credential-related source omitted]
  • Network accessline 80
    [Credential-related source omitted]
  • Network accessline 81
    [Credential-related source omitted]
  • Network accessline 97
    [Credential-related source omitted]
  • Network accessline 98
    [Credential-related source omitted]
  • Network accessline 99
    [Credential-related source omitted]
  • Network accessline 109
    [Credential-related source omitted]
  • Network accessline 110
    [Credential-related source omitted]
  • Network accessline 111
    [Credential-related source omitted]
  • Network accessline 120
    [Credential-related source omitted]
  • Network accessline 121
    [Credential-related source omitted]
  • Network accessline 151
    [Credential-related source omitted]
  • Network accessline 152
    [Credential-related source omitted]
  • Network accessline 153
    [Credential-related source omitted]
  • Network accessline 241
    [Credential-related source omitted]
  • Network accessline 242
    [Credential-related source omitted]
  • Network accessline 243
    [Credential-related source omitted]
  • Network accessline 252
    );     expect(ok).toBe(true);     expect(asked).toBe('https://p/v1/harness/scripts/hp_1/results');
  • Network accessline 253
    expect(ok).toBe(true);     expect(asked).toBe('https://p/v1/harness/scripts/hp_1/results');     expect(JSON.parse(body)).toEqual({
  • Network accessline 254
    expect(asked).toBe('https://p/v1/harness/scripts/hp_1/results');
  • Network accessline 271
    [Credential-related source omitted]
  • Network accessline 272
    [Credential-related source omitted]
  • Network accessline 273
    [Credential-related source omitted]
  • Network accessline 274
    expect(asked).toBe('https://p/v1/harness/scripts/hp_1');
  • Network accessline 276
    [Credential-related source omitted]
  • Network accessline 277
    [Credential-related source omitted]
  • Network accessline 278
    [Credential-related source omitted]
  • Network accessline 286
    [Credential-related source omitted]
  • Network accessline 287
    [Credential-related source omitted]
  • Network accessline 288
    [Credential-related source omitted]
  • Network accessline 333
    [Credential-related source omitted]
  • Network accessline 334
    [Credential-related source omitted]
  • Network accessline 335
    [Credential-related source omitted]
  • Network accessline 343
    );     expect(posted).toHaveLength(1);     expect(posted[0]?.url).toBe('https://p/v1/harness/scripts/hp_1/results');
  • Network accessline 344
    expect(posted).toHaveLength(1);     expect(posted[0]?.url).toBe('https://p/v1/harness/scripts/hp_1/results');     expect(JSON.parse(posted[0]?.body ?? '{}')).toEqual({
  • Network accessline 345
    expect(posted[0]?.url).toBe('https://p/v1/harness/scripts/hp_1/results');

server/src/features/harness/platform/script.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 100
    platform: PlatformCredential,   ask: ScriptAsk,   doFetch: FetchLike = (url, init) => fetch(url, init),
  • Network accessline 101
    ask: ScriptAsk,   doFetch: FetchLike = (url, init) => fetch(url, init), ): Promise<
  • Network accessline 102
    doFetch: FetchLike = (url, init) => fetch(url, init),
  • Network accessline 164
    platform: PlatformCredential,   planId: string,   doFetch: FetchLike = (url, init) => fetch(url, init),
  • Network accessline 165
    planId: string,   doFetch: FetchLike = (url, init) => fetch(url, init), ): Promise<DriveScript | undefined> {
  • Network accessline 166
    doFetch: FetchLike = (url, init) => fetch(url, init),
  • Network accessline 272
    platform: PlatformCredential,   planId: string,   doFetch: FetchLike = (url, init) => fetch(url, init),
  • Network accessline 273
    planId: string,   doFetch: FetchLike = (url, init) => fetch(url, init), ): Promise<boolean> {
  • Network accessline 274
    doFetch: FetchLike = (url, init) => fetch(url, init),
  • Network accessline 287
    planId: string,   reason: string,   doFetch: FetchLike = (url, init) => fetch(url, init),
  • Network accessline 288
    reason: string,   doFetch: FetchLike = (url, init) => fetch(url, init), ): Promise<boolean> {
  • Network accessline 289
    doFetch: FetchLike = (url, init) => fetch(url, init),
  • Network accessline 347
    results: readonly JourneyResult[],   runIds: readonly string[] = [],   doFetch: FetchLike = (url, init) => fetch(url, init),
  • Network accessline 348
    runIds: readonly string[] = [],   doFetch: FetchLike = (url, init) => fetch(url, init), ): Promise<boolean> {
  • Network accessline 349
    doFetch: FetchLike = (url, init) => fetch(url, init),

server/src/features/harness/platform/server-driver.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 64
    [Credential-related source omitted]
  • Network accessline 65
    [Credential-related source omitted]
  • Network accessline 66
    [Credential-related source omitted]
  • Network accessline 93
    [Credential-related source omitted]
  • Network accessline 94
    [Credential-related source omitted]
  • Network accessline 95
    [Credential-related source omitted]
  • Network accessline 112
    [Credential-related source omitted]
  • Network accessline 113
    [Credential-related source omitted]
  • Network accessline 114
    [Credential-related source omitted]
  • Network accessline 136
    [Credential-related source omitted]
  • Network accessline 137
    [Credential-related source omitted]
  • Network accessline 138
    [Credential-related source omitted]
  • Network accessline 173
    await runHarness(       serverDriver({         url: 'https://p.test',
  • Network accessline 174
    [Credential-related source omitted]
  • Network accessline 175
    [Credential-related source omitted]
  • Network accessline 189
    const result = await runHarness(       serverDriver({         url: 'https://p.test',
  • Network accessline 190
    [Credential-related source omitted]
  • Network accessline 191
    [Credential-related source omitted]
  • Network accessline 220
    ];     return serverDriver({       url: 'https://p.test',
  • Network accessline 221
    [Credential-related source omitted]
  • Network accessline 222
    [Credential-related source omitted]
  • Network accessline 271
    [Credential-related source omitted]
  • Network accessline 272
    [Credential-related source omitted]
  • Network accessline 273
    [Credential-related source omitted]
  • Network accessline 287
    ];     const driver = serverDriver({       url: 'https://p.test',
  • Network accessline 288
    [Credential-related source omitted]
  • Network accessline 289
    [Credential-related source omitted]
  • Network accessline 319
    [Credential-related source omitted]
  • Network accessline 320
    [Credential-related source omitted]
  • Access to secretsline 320
    [Credential-related source omitted]
  • Network accessline 321
    RETICLE_CLOUD_URL: 'https://p.test',
  • Network accessline 354
    [Credential-related source omitted]
  • Network accessline 355
    [Credential-related source omitted]
  • Network accessline 356
    [Credential-related source omitted]

server/src/features/harness/platform/server-driver.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 89
    [Credential-related source omitted]
  • Network accessline 121
    export function serverDriver(options: ServerDriverOptions): ModelDriver {   const doFetch: FetchLike = options.fetch ?? ((url, init) => fetch(url, init));
  • Network accessline 122
    const doFetch: FetchLike = options.fetch ?? ((url, init) => fetch(url, init));

server/src/features/harness/route-guess.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/script/app-controls.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/script/app-controls.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/script/lane-ids.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/script/lane-ids.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/script/script-run.early-look.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/script/script-run.replay-first.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/script/script-run.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/script/script-run.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/with-timeout.ts

  • Executable scriptline 1
    Executable file

server/src/features/harness/writing-rule.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/license/license-env.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 28
    [Credential-related source omitted]
  • Access to secretsline 31
    [Credential-related source omitted]
  • Access to secretsline 39
    [Credential-related source omitted]
  • Access to secretsline 46
    [Credential-related source omitted]
  • Access to secretsline 59
    [Credential-related source omitted]
  • Access to secretsline 65
    [Credential-related source omitted]
  • Access to secretsline 77
    [Credential-related source omitted]
  • Access to secretsline 86
    [Credential-related source omitted]
  • Access to secretsline 118
    [Credential-related source omitted]
  • Access to secretsline 153
    [Credential-related source omitted]

server/src/features/license/license-env.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 25
    [Credential-related source omitted]

server/src/features/license/license.test.ts

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 135
    // there: prepack starts with `rm -rf dist && tsc -b --force`, so a stamp applied anywhere earlier in

server/src/features/license/license.ts

  • Executable scriptline 1
    Executable file

server/src/features/visual/capture-cleanup.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/visual/capture-cleanup.ts

  • Executable scriptline 1
    Executable file

server/src/features/visual/capture-path.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/visual/desktop-capture.ts

  • Executable scriptline 1
    Executable file

server/src/features/visual/drive-frame.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 44
    const session = {     id: 's1',     url: 'http://localhost:5175/',
  • Network accessline 45
    id: 's1',     url: 'http://localhost:5175/',     command: (name: string) =>
  • Network accessline 46
    url: 'http://localhost:5175/',

server/src/features/visual/screenshot-names-its-session.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 30
    const now = (): number => 0; const DRIVEN = { id: 'driven', url: 'http://localhost:3000/' } as Session;
  • Network accessline 31
    const DRIVEN = { id: 'driven', url: 'http://localhost:3000/' } as Session;
  • Network accessline 32
    const OTHER = { id: 'other', url: 'http://localhost:3000/trade' } as Session;

server/src/features/visual/step-shots.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 84
    const session = {     id: sessionId,     url: 'http://localhost:5173/',
  • Network accessline 85
    id: sessionId,     url: 'http://localhost:5173/',     artifactRoot: root,
  • Network accessline 86
    url: 'http://localhost:5173/',

server/src/features/visual/step-shots.ts

  • Executable scriptline 1
    Executable file

server/src/features/visual/visual-diff.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/visual/visual-diff.ts

  • Executable scriptline 1
    Executable file

server/src/features/visual/visual-store.test.ts

  • Executable scriptline 1
    Executable file

server/src/features/visual/visual-store.ts

  • Executable scriptline 1
    Executable file

server/src/features/visual/visual-tools.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 21
    const now = (): number => 0; const SESSION_URL = 'http://localhost:3100/';
  • Network accessline 22
    const SESSION_URL = 'http://localhost:3100/';

server/src/features/visual/visual-tools.ts

  • Executable scriptline 1
    Executable file

server/src/gate-coverage.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/ci/ci-gate-completeness.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/ci/ci-run-decision.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 17
    *  * Tested from this package because `scripts/` has no test setup of its own and this is the gate that  * always runs. See https://github.com/reticlehq/reticle/issues/273.
  • Network accessline 18
    * Tested from this package because `scripts/` has no test setup of its own and this is the gate that  * always runs. See https://github.com/reticlehq/reticle/issues/273.  */
  • Network accessline 19
    * always runs. See https://github.com/reticlehq/reticle/issues/273.

server/src/guards/ci/ci-sends-no-telemetry.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/ci/dco-failure-is-actionable.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 11
    * the message they got said:  *  *   See https://developercertificate.org and CONTRIBUTING.md.
  • Network accessline 12
    *  *   See https://developercertificate.org and CONTRIBUTING.md.  *
  • Network accessline 13
    *   See https://developercertificate.org and CONTRIBUTING.md.

server/src/guards/ci/guards-are-cache-invalidated.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 18
    *  * The fix is `inputs` on the task using `$TURBO_ROOT$`, which turbo 2.x supports and which  * [#282](https://github.com/reticlehq/reticle/issues/282) doubted would work. It does; it was
  • Network accessline 19
    * The fix is `inputs` on the task using `$TURBO_ROOT$`, which turbo 2.x supports and which  * [#282](https://github.com/reticlehq/reticle/issues/282) doubted would work. It does; it was  * measured. That beats `globalDependencies` (busts ev
  • Network accessline 20
    * [#282](https://github.com/reticlehq/reticle/issues/282) doubted would work. It does; it was

server/src/guards/ci/heavy-browser-tests-declare-a-timeout.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/ci/job-timeout-fits-steps.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/ci/matrix-freshness.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/ci/post-merge-parity.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/docs/doc-paths-resolve.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/docs/docs-code-blocks.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/docs/docs-commands-run.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/docs/docs-version-drift.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/docs/every-published-package-is-documented.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/docs/guidance-commands-run.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/docs/layout-map-is-real.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/docs/skill-file-size.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/docs/skill-local-docs.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/docs/telemetry-events-are-documented.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/harness/bench-scenarios-live.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/harness/bench-scripts-resolve.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/harness/directory-reach-detects-a-pair.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/harness/directory-reach-every-package.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/harness/e2e-dist-exports.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/harness/e2e-retry-waits-for-ports.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/harness/false-green-oracle-independence.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/harness/false-green-rows.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/harness/fixture-api-reachability.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 11
    * **status 200**. The request does not error. It succeeds, with the wrong body, silently.  *  * That is not hypothetical. `Hostile.tsx` fired `fetch('/api/broken/500')` behind a button labelled
  • Network accessline 12
    *  * That is not hypothetical. `Hostile.tsx` fired `fetch('/api/broken/500')` behind a button labelled  * "Fire failing request", and the fixture's own docstring named the acceptance it exists to prove:
  • Network accessline 13
    * That is not hypothetical. `Hostile.tsx` fired `fetch('/api/broken/500')` behind a button labelled
  • Network accessline 33
    /**  * `fetch('/api/…')` in any quote style — the shape that silently resolves to the SPA fallback.
  • Network accessline 34
    * `fetch('/api/…')` in any quote style — the shape that silently resolves to the SPA fallback.
  • Network accessline 76
    expect(RELATIVE_API_FETCH.test("void fetch('/api/broken/500')")).toBe(true);
  • Network accessline 77
    expect(RELATIVE_API_FETCH.test('await fetch(`${API_BASE}/api/broken/500`)')).toBe(false);
  • Network accessline 84
    const offender = "void fetch('/api/broken/500')";

server/src/guards/harness/flat-directories-are-recorded.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/harness/harness-kills-only-listeners.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/harness/integration-coverage.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/harness/mock-specifiers-resolve.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/harness/orphan-scan-is-not-vacuous.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/harness/safe-to-group-answers-everywhere.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/harness/safe-to-group-predicts.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/harness/script-paths-exist.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/harness/source-read-by-path-exists.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/harness/the-hub-is-not-imported-back.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/release/changelog-freshness.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/release/changelog-structure.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/release/committed-assets-are-referenced.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/release/crate-version-lockstep.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/release/every-build-resolves-its-aliases.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/release/every-package-ships-its-licence.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/release/imports-are-declared.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/release/issuer-key-stamp.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 110
    RETICLE_ISSUER_PUBLIC_KEY: '',         npm_command: 'publish',         npm_config_registry: 'http://localhost:4873/',
  • Network accessline 111
    npm_command: 'publish',         npm_config_registry: 'http://localhost:4873/',       }).code,
  • Network accessline 112
    npm_config_registry: 'http://localhost:4873/',
  • Network accessline 118
    RETICLE_ISSUER_PUBLIC_KEY: '',         npm_command: 'publish',         npm_config_registry: 'https://registry.npmjs.org/',
  • Network accessline 119
    npm_command: 'publish',         npm_config_registry: 'https://registry.npmjs.org/',       }).code,
  • Network accessline 120
    npm_config_registry: 'https://registry.npmjs.org/',

server/src/guards/release/package-payload.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 191
    `is copied into server/, so a link that is correct in the repo is dead in the ` +           `tarball — and the pruned asset directories kill the rest. pack-docs.mjs is supposed to ` +           `repoint them at ${'https://github.com/reticle
  • Network accessline 192
    `tarball — and the pruned asset directories kill the rest. pack-docs.mjs is supposed to ` +           `repoint them at ${'https://github.com/reticlehq/reticle/blob/main/'}; fix it there, not ` +           `in the source docs, which are corr
  • Network accessline 193
    `repoint them at ${'https://github.com/reticlehq/reticle/blob/main/'}; fix it there, not ` +

server/src/guards/release/prepack-keeps-stdout-clean.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/release/protocol-version-is-not-lockstepped.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/release/public-subpaths-are-pinned.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/release/published-schema-names-are-pinned.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    * Schema for every noun, generated from the source. Implement in any language by validating against  * these; you need none of this code." Somebody taking that offer writes the filename down. And each  * open-verification schema carries `$i
  • Network accessline 17
    * these; you need none of this code." Somebody taking that offer writes the filename down. And each  * open-verification schema carries `$id: https://open-verification.dev/schema/v1/<name>.json`, which is the  * identifier a validator deref
  • Network accessline 18
    * open-verification schema carries `$id: https://open-verification.dev/schema/v1/<name>.json`, which is the
  • Network accessline 43
    {     package: 'open-verification',     idBase: 'https://open-verification.dev/schema/v1',
  • Network accessline 44
    package: 'open-verification',     idBase: 'https://open-verification.dev/schema/v1',     files: [
  • Network accessline 45
    idBase: 'https://open-verification.dev/schema/v1',

server/src/guards/release/published-skill-artifacts.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/release/release-gates-are-listed.test.ts

  • Executable scriptline 1
    Executable file

server/src/guards/release/scoped-packages-publish-public.test.ts

  • Executable scriptline 1
    Executable file

server/src/hooks/client-directory.test.ts

  • Executable scriptline 1
    Executable file

server/src/hooks/client-directory.ts

  • Executable scriptline 1
    Executable file

server/src/hooks/coding-agents.test.ts

  • Executable scriptline 1
    Executable file

server/src/hooks/coding-agents.ts

  • Executable scriptline 1
    Executable file

server/src/hooks/driven-by-bind.test.ts

  • Executable scriptline 1
    Executable file

server/src/hooks/driven-by.test.ts

  • Executable scriptline 1
    Executable file

server/src/hooks/driven-by.ts

  • Executable scriptline 1
    Executable file

server/src/hooks/episode-stamp.ts

  • Executable scriptline 1
    Executable file

server/src/hooks/hook-bus.test.ts

  • Executable scriptline 1
    Executable file

server/src/hooks/hook-bus.ts

  • Executable scriptline 1
    Executable file

server/src/hooks/hook-commands.test.ts

  • Executable scriptline 1
    Executable file

server/src/hooks/hook-commands.ts

  • Executable scriptline 1
    Executable file

server/src/hooks/hook-emit.ts

  • Executable scriptline 1
    Executable file

server/src/hooks/hooks-reach-a-subscriber.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 41
    const session: Partial<Session> = {     id: 'demo',     url: 'http://localhost:5173/app',
  • Network accessline 42
    id: 'demo',     url: 'http://localhost:5173/app',     eventsSince: () => [],
  • Network accessline 43
    url: 'http://localhost:5173/app',
  • Network accessline 87
    verified: 'yes',         because: 'the cart count went 0 -> 1',         url: 'http://localhost:5173/app',
  • Network accessline 88
    because: 'the cart count went 0 -> 1',         url: 'http://localhost:5173/app',       }),
  • Network accessline 89
    url: 'http://localhost:5173/app',

server/src/hooks/tool-log.test.ts

  • Executable scriptline 1
    Executable file

server/src/hooks/tool-log.ts

  • Executable scriptline 1
    Executable file

server/src/http-server.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 53
    running: true,       sessionCount: 1,       sessions: [{ sessionId: 'demo', url: 'http://localhost:5173', throttled: false }],
  • Network accessline 54
    sessionCount: 1,       sessions: [{ sessionId: 'demo', url: 'http://localhost:5173', throttled: false }],     }));
  • Network accessline 55
    sessions: [{ sessionId: 'demo', url: 'http://localhost:5173', throttled: false }],
  • Network accessline 91
    shared = createSharedServer();     const port = await listen(shared);     const res = await get(port, STATUS_PATH, { origin: 'http://evil.com' });
  • Network accessline 92
    const port = await listen(shared);     const res = await get(port, STATUS_PATH, { origin: 'http://evil.com' });     expect(res.status).toBe(401);
  • Network accessline 93
    const res = await get(port, STATUS_PATH, { origin: 'http://evil.com' });
  • Network accessline 98
    shared = createSharedServer();     const port = await listen(shared);     const res = await get(port, STATUS_PATH, { origin: `http://localhost:${String(port)}` });
  • Network accessline 99
    const port = await listen(shared);     const res = await get(port, STATUS_PATH, { origin: `http://localhost:${String(port)}` });     expect(res.status).toBe(200);
  • Network accessline 100
    const res = await get(port, STATUS_PATH, { origin: `http://localhost:${String(port)}` });
  • Network accessline 298
    for (const url of ['http://localhost:5173/', 'https://example.com/app']) {
  • Network accessline 300
    expect(res.status, url).toBe(200);     }     expect(seen).toEqual(['http://localhost:5173/', 'https://example.com/app']);
  • Network accessline 301
    }     expect(seen).toEqual(['http://localhost:5173/', 'https://example.com/app']);   });
  • Network accessline 302
    expect(seen).toEqual(['http://localhost:5173/', 'https://example.com/app']);
  • Network accessline 311
    });     const port = await listen(shared);     const res = await post(port, DRIVE_PATH, JSON.stringify({ url: 'http://localhost:5173' }));
  • Network accessline 312
    const port = await listen(shared);     const res = await post(port, DRIVE_PATH, JSON.stringify({ url: 'http://localhost:5173' }));     expect(res.status).toBe(200);
  • Network accessline 313
    const res = await post(port, DRIVE_PATH, JSON.stringify({ url: 'http://localhost:5173' }));
  • Network accessline 314
    expect(res.status).toBe(200);     expect(JSON.parse(res.body)).toEqual({ sessionId: 'lease-1', ready: true });     expect(seen).toEqual(['http://localhost:5173']);
  • Network accessline 315
    expect(JSON.parse(res.body)).toEqual({ sessionId: 'lease-1', ready: true });     expect(seen).toEqual(['http://localhost:5173']);   });
  • Network accessline 316
    expect(seen).toEqual(['http://localhost:5173']);
  • Network accessline 337
    });     const port = await listen(shared);     const res = await post(port, DRIVE_PATH, JSON.stringify({ url: 'http://evil.example/' }), {
  • Network accessline 338
    const port = await listen(shared);     const res = await post(port, DRIVE_PATH, JSON.stringify({ url: 'http://evil.example/' }), {       'Content-Type': contentType,
  • Network accessline 339
    const res = await post(port, DRIVE_PATH, JSON.stringify({ url: 'http://evil.example/' }), {
  • Network accessline 348
    shared.attachDrive(() => Promise.resolve({ sessionId: 'lease-1', ready: true }));     const port = await listen(shared);     const res = await post(port, DRIVE_PATH, JSON.stringify({ url: 'http://localhost:5173' }), {
  • Network accessline 349
    const port = await listen(shared);     const res = await post(port, DRIVE_PATH, JSON.stringify({ url: 'http://localhost:5173' }), {       'Content-Type': 'application/json; charset=utf-8',
  • Network accessline 350
    const res = await post(port, DRIVE_PATH, JSON.stringify({ url: 'http://localhost:5173' }), {
  • Network accessline 360
    shared = createSharedServer();     shared.attachDrive(() => Promise.reject(new Error('could not open http://localhost:5173')));
  • Network accessline 361
    shared.attachDrive(() => Promise.reject(new Error('could not open http://localhost:5173')));
  • Network accessline 362
    const port = await listen(shared);     const res = await post(port, DRIVE_PATH, JSON.stringify({ url: 'http://localhost:5173' }));     expect(res.status).toBe(200);
  • Network accessline 363
    const res = await post(port, DRIVE_PATH, JSON.stringify({ url: 'http://localhost:5173' }));
  • Network accessline 364
    expect(res.status).toBe(200);     expect(JSON.parse(res.body)).toEqual({ error: 'could not open http://localhost:5173' });   });
  • Network accessline 365
    expect(JSON.parse(res.body)).toEqual({ error: 'could not open http://localhost:5173' });
  • Network accessline 377
    shared = createSharedServer();     const port = await listen(shared);     const res = await post(port, DRIVE_PATH, JSON.stringify({ url: 'http://localhost:5173' }));
  • Network accessline 378
    const port = await listen(shared);     const res = await post(port, DRIVE_PATH, JSON.stringify({ url: 'http://localhost:5173' }));     expect(res.status).toBe(404);
  • Network accessline 379
    const res = await post(port, DRIVE_PATH, JSON.stringify({ url: 'http://localhost:5173' }));
  • Network accessline 385
    shared.attachDrive(() => Promise.resolve({ sessionId: 'lease-1', ready: true }));     const port = await listen(shared);     const res = await post(port, DRIVE_PATH, JSON.stringify({ url: 'http://localhost:5173' }), {
  • Network accessline 386
    const port = await listen(shared);     const res = await post(port, DRIVE_PATH, JSON.stringify({ url: 'http://localhost:5173' }), {       host: 'evil.com',
  • Network accessline 387
    const res = await post(port, DRIVE_PATH, JSON.stringify({ url: 'http://localhost:5173' }), {

server/src/import-graph.test.ts

  • Executable scriptline 1
    Executable file

server/src/import-graph.ts

  • Executable scriptline 1
    Executable file

server/src/inconclusive.test.ts

  • Executable scriptline 1
    Executable file

server/src/index.daemon.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 31
    it('falls back to the environment, parsing the origin allow-list', () => {     process.env[ReticleEnv.TOKEN] = 'sek';     process.env[ReticleEnv.ALLOWED_ORIGINS] = 'http://a.test, http://b.test ,';
  • Network accessline 32
    process.env[ReticleEnv.TOKEN] = 'sek';     process.env[ReticleEnv.ALLOWED_ORIGINS] = 'http://a.test, http://b.test ,';     const out = resolveBridgeSecurity({});
  • Network accessline 33
    process.env[ReticleEnv.ALLOWED_ORIGINS] = 'http://a.test, http://b.test ,';
  • Network accessline 34
    const out = resolveBridgeSecurity({});     expect(out.token).toBe('sek');     expect(out.allowedOrigins).toEqual(['http://a.test', 'http://b.test']);
  • Network accessline 35
    expect(out.token).toBe('sek');     expect(out.allowedOrigins).toEqual(['http://a.test', 'http://b.test']);   });
  • Network accessline 36
    expect(out.allowedOrigins).toEqual(['http://a.test', 'http://b.test']);

server/src/index.drive.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 30
    const DRIVE_URL = 'http://localhost:3000/app';
  • Network accessline 216
    it('driveUrl takes precedence and CDP is not connected when both are set', async () => {     const prev = process.env['RETICLE_CDP_URL'];     process.env['RETICLE_CDP_URL'] = 'http://localhost:9222';
  • Network accessline 217
    const prev = process.env['RETICLE_CDP_URL'];     process.env['RETICLE_CDP_URL'] = 'http://localhost:9222';     const fake = makeFakeLaunched();
  • Network accessline 218
    process.env['RETICLE_CDP_URL'] = 'http://localhost:9222';

server/src/index.exit-sync.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 14
    [Credential-related source omitted]
  • Network accessline 38
    await new Promise<void>((resolve) => server.listen(0, '127.0.0.1', resolve));   const address = server.address();   cloudUrl = `http://127.0.0.1:${String('object' === typeof address && address !== null ? address.port : 0)}`;
  • Network accessline 39
    const address = server.address();   cloudUrl = `http://127.0.0.1:${String('object' === typeof address && address !== null ? address.port : 0)}`; });
  • Network accessline 40
    cloudUrl = `http://127.0.0.1:${String('object' === typeof address && address !== null ? address.port : 0)}`;

server/src/index.mcp-live-session.test.ts

  • Executable scriptline 1
    Executable file

server/src/index.replay-verdict.test.ts

  • Executable scriptline 1
    Executable file

server/src/index.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 678
    [Credential-related source omitted]

server/src/judgement/app-graph/journal-steps.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/app-graph/journal-steps.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/capsule/capsule-dedup.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/capsule/capsule-store.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/capsule/capsule-store.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/capsule/capsule.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/capsule/capsule.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/capsule/causal-summary.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/capsule/causal-summary.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 198
    let path: string;   try {     path = new URL(raw, 'http://local.invalid').pathname;
  • Network accessline 199
    try {     path = new URL(raw, 'http://local.invalid').pathname;   } catch {
  • Network accessline 200
    path = new URL(raw, 'http://local.invalid').pathname;
  • Network accessline 248
    netTotal += 1;         const status = data['status'];         requests.push(requestLine(data));
  • Network accessline 249
    const status = data['status'];         requests.push(requestLine(data));         const failed = false === data['ok'] || ('number' === typeof status && status >= 400);
  • Network accessline 250
    requests.push(requestLine(data));

server/src/judgement/capsule/divergence.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    ];     const observed = [       e(EventType.NET_REQUEST, { url: 'http://x/api/order', status: 200 }),
  • Network accessline 17
    const observed = [       e(EventType.NET_REQUEST, { url: 'http://x/api/order', status: 200 }),       e(EventType.SIGNAL, { name: 'order:placed' }),
  • Network accessline 18
    e(EventType.NET_REQUEST, { url: 'http://x/api/order', status: 200 }),
  • Network accessline 27
    { kind: 'signal', name: 'order:placed' },     ];     const observed = [e(EventType.NET_REQUEST, { url: 'http://x/api/order', status: 500 })];
  • Network accessline 28
    ];     const observed = [e(EventType.NET_REQUEST, { url: 'http://x/api/order', status: 500 })];     const divergence = firstDivergence(expected, observed);
  • Network accessline 29
    const observed = [e(EventType.NET_REQUEST, { url: 'http://x/api/order', status: 500 })];

server/src/judgement/capsule/divergence.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/capsule/field-summary.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/capsule/truncated-window.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 67
    type: EventType.NET_REQUEST,         t: 1,         data: { url: 'https://api.test/apply', status: 500 },
  • Network accessline 68
    t: 1,         data: { url: 'https://api.test/apply', status: 500 },       } as unknown as ReticleEvent,
  • Network accessline 69
    data: { url: 'https://api.test/apply', status: 500 },

server/src/judgement/capsule/wire-capsule-does-not-repeat-summary.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/domain/domain-model.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/domain/domain-model.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/domain/domain-tools.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/domain/flow-risk.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/domain/flow-risk.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/oracles/flow-instrument-gaps.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/oracles/flow-instrument-gaps.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/oracles/gap-kind-is-core.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/oracles/propose-consequences.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 14
    const events = [       e(EventType.DOM_ADDED, { role: 'alert', name: 'Saved' }),       e(EventType.NET_REQUEST, { method: 'POST', url: 'http://x/api/order', status: 200 }),
  • Network accessline 15
    e(EventType.DOM_ADDED, { role: 'alert', name: 'Saved' }),       e(EventType.NET_REQUEST, { method: 'POST', url: 'http://x/api/order', status: 200 }),       e(EventType.SIGNAL, { name: 'order:placed' }),
  • Network accessline 16
    e(EventType.NET_REQUEST, { method: 'POST', url: 'http://x/api/order', status: 200 }),
  • Network accessline 30
    e(EventType.NET_REQUEST, {         method: 'GET',         url: 'http://host:3000/api/cart?x=1',
  • Network accessline 31
    method: 'GET',         url: 'http://host:3000/api/cart?x=1',         status: 200,
  • Network accessline 32
    url: 'http://host:3000/api/cart?x=1',
  • Network accessline 77
    type: EventType.NET_REQUEST,         sessionId: 's',         data: { method: 'GET', url: 'http://localhost/api/x', status: 200, ok: true },
  • Network accessline 78
    sessionId: 's',         data: { method: 'GET', url: 'http://localhost/api/x', status: 200, ok: true },       },
  • Network accessline 79
    data: { method: 'GET', url: 'http://localhost/api/x', status: 200, ok: true },

server/src/judgement/oracles/propose-consequences.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 27
    if (typeof url !== 'string') return undefined;   try {     return new URL(url, 'http://x').pathname;
  • Network accessline 28
    try {     return new URL(url, 'http://x').pathname;   } catch {
  • Network accessline 29
    return new URL(url, 'http://x').pathname;

server/src/judgement/oracles/self-instrument.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/oracles/self-instrument.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/outcome/assertion-integrity.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/outcome/assertion-integrity.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/outcome/attributed-failure.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/outcome/attributed-failure.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/outcome/expect-round-trip.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/outcome/role-drift-reason.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/outcome/role-drift-reason.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/outcome/verify-change-verdict.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/artifact-carries-the-differentiators.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/artifact/build-verification-run.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/artifact/build-verification-run.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/artifact/gap-report.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/artifact/gap-report.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/artifact/gap-summary.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/artifact/gap-summary.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/artifact/profile-redact.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/artifact/profile-redact.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/artifact/render-report.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/artifact/render-report.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/artifact/replay-mapping.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 178
    claim: 'the UI moved forward and the action reported done',     counter: '1 request(s) were still in flight',     detail: 'POST http://localhost:8787/api/login',
  • Network accessline 179
    counter: '1 request(s) were still in flight',     detail: 'POST http://localhost:8787/api/login',   };
  • Network accessline 180
    detail: 'POST http://localhost:8787/api/login',

server/src/judgement/runs/artifact/replay-mapping.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/artifact/run-context.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/artifact/run-context.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/artifact/run-diff.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/artifact/run-diff.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/artifact/run-episode-stamp.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/artifact/run-store-screenshots.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/artifact/run-store.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/artifact/run-store.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/artifact/to-artifact.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/artifact/to-artifact.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/context-tools.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/context-tools.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/default-run-id.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/default-run-id.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/differentiators-survive-the-journey.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/drive-run.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/drive-run.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/false-green.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/generated-app-bugs.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/late-answer.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/late-answer.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/repair-prompt.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 79
    const packet = buildRepairPacket(       replay(ReplayStatus.ERROR, {         decision: decision({ whatChanged: 'x', whereInSource: 'http://localhost:3000' }),
  • Network accessline 80
    replay(ReplayStatus.ERROR, {         decision: decision({ whatChanged: 'x', whereInSource: 'http://localhost:3000' }),       }),
  • Network accessline 81
    decision: decision({ whatChanged: 'x', whereInSource: 'http://localhost:3000' }),

server/src/judgement/runs/repair-prompt.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/resume.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/resume.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/reticle-runner.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/reticle-runner.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/risk-classify.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/risk-classify.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/run-ledger.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/run-ledger.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/run-tools.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/run-tools.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/runner-port.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/verification-sync.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 88
    it('pushes the artifact to POST /v1/runs when cloud creds are set', async () => {     process.env[URL_ENV] = 'https://cloud.test';
  • Network accessline 89
    process.env[URL_ENV] = 'https://cloud.test';
  • Network accessline 102
    if (first === undefined) return;     const [url, init] = first;     expect(url).toBe('https://cloud.test/v1/runs');
  • Network accessline 103
    const [url, init] = first;     expect(url).toBe('https://cloud.test/v1/runs');     expect(init.method).toBe('POST');
  • Network accessline 104
    expect(url).toBe('https://cloud.test/v1/runs');
  • Network accessline 117
    it('never throws on a cloud failure and returns the runId (verdict unaffected)', async () => {     process.env[URL_ENV] = 'https://cloud.test';
  • Network accessline 118
    process.env[URL_ENV] = 'https://cloud.test';
  • Network accessline 225
    await fs.writeFile(       join(root, 'cloud.json'),       JSON.stringify({ url: 'https://cloud.test', projectId: 'bench-checkout' }),
  • Network accessline 226
    join(root, 'cloud.json'),       JSON.stringify({ url: 'https://cloud.test', projectId: 'bench-checkout' }),     );
  • Network accessline 227
    JSON.stringify({ url: 'https://cloud.test', projectId: 'bench-checkout' }),

server/src/judgement/runs/verification-sync.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/verify-daemon.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 38
    expect(server.verifyPort).toBeGreaterThan(0);     const base = `http://127.0.0.1:${server.verifyPort}`;
  • Network accessline 39
    const base = `http://127.0.0.1:${server.verifyPort}`;
  • Network accessline 41
    const unauthorized = await fetch(`${base}/verify`, { method: 'POST', body: '{}' });
  • Network accessline 44
    const res = await fetch(`${base}/verify`, {

server/src/judgement/runs/verify-flow-start-state.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 18
    const PAGE = 'http://localhost:3000/';

server/src/judgement/runs/verify-http.test.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/verify-http.ts

  • Executable scriptline 1
    Executable file

server/src/judgement/runs/verify-server.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 29
    const started = await startVerifyServer({ runner: new ReticleRunner(fakePort()), token }, 0);     server = started.server;     return `http://127.0.0.1:${started.port}`;
  • Network accessline 30
    server = started.server;     return `http://127.0.0.1:${started.port}`;   }
  • Network accessline 31
    return `http://127.0.0.1:${started.port}`;
  • Network accessline 34
    it('POST /verify returns a 200 verdict over HTTP', async () => {     const base = await start('');     const res = await fetch(`${base}${VERIFY_PATH}`, {
  • Network accessline 35
    const base = await start('');     const res = await fetch(`${base}${VERIFY_PATH}`, {       method: 'POST',
  • Network accessline 36
    const res = await fetch(`${base}${VERIFY_PATH}`, {
  • Network accessline 46
    it('rejects a request with the wrong token (401)', async () => {     const base = await start('secret');     const res = await fetch(`${base}${VERIFY_PATH}`, {
  • Network accessline 47
    const base = await start('secret');     const res = await fetch(`${base}${VERIFY_PATH}`, {       method: 'POST',
  • Network accessline 48
    const res = await fetch(`${base}${VERIFY_PATH}`, {
  • Network accessline 56
    it('accepts the right token and 404s an unknown path', async () => {     const base = await start('secret');     const ok = await fetch(`${base}${VERIFY_PATH}`, {
  • Network accessline 57
    const base = await start('secret');     const ok = await fetch(`${base}${VERIFY_PATH}`, {       method: 'POST',
  • Network accessline 58
    const ok = await fetch(`${base}${VERIFY_PATH}`, {
  • Network accessline 62
    });     expect(ok.status).toBe(200);     const missing = await fetch(`${base}/nope`, {
  • Network accessline 63
    expect(ok.status).toBe(200);     const missing = await fetch(`${base}/nope`, {       method: 'POST',
  • Network accessline 64
    const missing = await fetch(`${base}/nope`, {

server/src/judgement/runs/verify-server.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/act-sequence-replay.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/affected-flows-one-folder.test.ts

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 15
    import { mkdir, mkdtemp, rm } from 'node:fs/promises';
  • Network accessline 56
    const sessions: Partial<SessionManager> = {       resolve: () =>         ({ id: LEASE, url: 'http://localhost:5173/', projectId: PROJECT }) as ReturnType<
  • Network accessline 57
    resolve: () =>         ({ id: LEASE, url: 'http://localhost:5173/', projectId: PROJECT }) as ReturnType<           SessionManager['resolve']
  • Network accessline 58
    ({ id: LEASE, url: 'http://localhost:5173/', projectId: PROJECT }) as ReturnType<

server/src/language/flows/affected-session-project.test.ts

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 9
    import { mkdir, mkdtemp, rm } from 'node:fs/promises';
  • Network accessline 21
    const B = asProjectId('project-b'); const GONE = asProjectId('project-with-no-folder'); const WORKTREE_ORIGIN = 'http://localhost:5174';
  • Network accessline 23
    const WORKTREE_ORIGIN = 'http://localhost:5174';
  • Network accessline 107
    const a = { id: 's-a', url: 'http://localhost:5173/', projectId: A };
  • Network accessline 108
    const b = { id: 's-b', url: 'http://localhost:3000/', projectId: B };
  • Network accessline 134
    it('says a project with no folder has no flows, and names where its evidence goes', async () => {     const tab = { id: 's-u', url: 'http://localhost:4000/', projectId: GONE };
  • Network accessline 135
    const tab = { id: 's-u', url: 'http://localhost:4000/', projectId: GONE };

server/src/language/flows/affected-tools.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/ambient-recording-is-automatic.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/ambient-tape-crosses-page-load.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/anchor-settle.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/annotate-console-default.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/annotate-notes/annotate-net-settle.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/annotate-notes/annotate-target.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/annotate-notes/annotate-target.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/annotate-notes/annotate.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/annotate-text-success.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/annotate-tools.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/annotate-tools.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/annotate.assert-net.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/annotate.compile.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/annotate.schema.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/change/affected.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/change/affected.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/change/flow-sources-from-step.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/change/flow-sources.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/change/flow-sources.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/change/gate.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/change/gate.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/change/git-changed.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/change/git-changed.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/classify-invoke.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/component-anchor-position.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/component-anchor-role.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/component-anchor-text.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/decision-contradictions.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/decision-expect-drift.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/decision-precondition.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/decision-unreached.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/decision.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/decision.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/destructive-replay-hint.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/document-key-press.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/empty-flow.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/empty-flow.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/empty-suite.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/every-replay-learns.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/fields/flow-secret-call.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/fields/flow-secret-field.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/fields/flow-upload-resolve.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/fields/flow-upload-resolve.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/fields/unsupplied-secret.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-anchor.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-author.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-classify.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-classify.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-cross-step.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-cross-step.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-expect-grammar.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-expect-grammar.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-intent-gap.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-intent.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-intent.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-journey.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 208
    let parsed: URL;   try {     parsed = new URL(path, 'http://localhost');
  • Network accessline 209
    try {     parsed = new URL(path, 'http://localhost');   } catch {
  • Network accessline 210
    parsed = new URL(path, 'http://localhost');

server/src/language/flows/flow-learning.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-lease.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-memory-consult.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-memory-consult.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-mutate-tools.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-mutate-tools.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-repeated-secrets.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 76
    [Credential-related source omitted]
  • Access to secretsline 77
    [Credential-related source omitted]
  • Access to secretsline 80
    [Credential-related source omitted]
  • Access to secretsline 144
    [Credential-related source omitted]
  • Access to secretsline 145
    [Credential-related source omitted]
  • Access to secretsline 165
    [Credential-related source omitted]
  • Access to secretsline 166
    [Credential-related source omitted]
  • Access to secretsline 200
    [Credential-related source omitted]
  • Access to secretsline 325
    [Credential-related source omitted]
  • Access to secretsline 337
    [Credential-related source omitted]
  • Access to secretsline 338
    [Credential-related source omitted]
  • Access to secretsline 339
    [Credential-related source omitted]
  • Access to secretsline 349
    [Credential-related source omitted]

server/src/language/flows/flow-replay-run.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 309
    /** The path a `navigate` step expects to land on: `/u07` for `/u07?x=1` or `http://host/u07`. */
  • Network accessline 310
    function pathOfUrl(url: string): string {   try {     return new URL(url, 'http://localhost').pathname;
  • Network accessline 311
    try {     return new URL(url, 'http://localhost').pathname;   } catch {
  • Network accessline 312
    return new URL(url, 'http://localhost').pathname;

server/src/language/flows/flow-replay-types.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-replay-upload-root.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 79
    const session: Partial<Session> = {       id: 'wt-b',       url: 'http://localhost:15999/',
  • Network accessline 80
    id: 'wt-b',       url: 'http://localhost:15999/',       command: (name, args): Promise<CommandResult> => {
  • Network accessline 81
    url: 'http://localhost:15999/',

server/src/language/flows/flow-replay-waits-for-session.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 71
    const session: Partial<Session> = {       id: 'tab',       url: 'http://localhost:15999/',
  • Network accessline 72
    id: 'tab',       url: 'http://localhost:15999/',       command: (name): Promise<CommandResult> => {
  • Network accessline 73
    url: 'http://localhost:15999/',

server/src/language/flows/flow-replay.also-roles.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-replay.before-reading.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-replay.console-absent.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-replay.document-lost.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 167
    const dying = {       id: 'old',       url: 'http://localhost:3000/home',
  • Network accessline 168
    id: 'old',       url: 'http://localhost:3000/home',       command: () => Promise.reject(new Error(SESSION_DISCONNECTED_REASON)),
  • Network accessline 169
    url: 'http://localhost:3000/home',
  • Network accessline 170
    command: () => Promise.reject(new Error(SESSION_DISCONNECTED_REASON)),     };     const fresh = { id: 'fresh', url: 'http://localhost:3000/login', eventsSince: () => [] };
  • Network accessline 171
    };     const fresh = { id: 'fresh', url: 'http://localhost:3000/login', eventsSince: () => [] };     let look = 0;
  • Network accessline 172
    const fresh = { id: 'fresh', url: 'http://localhost:3000/login', eventsSince: () => [] };
  • Network accessline 192
    sessions,       dying,       'http://localhost:3000/login',
  • Network accessline 193
    dying,       'http://localhost:3000/login',       '/login',
  • Network accessline 194
    'http://localhost:3000/login',
  • Network accessline 206
    const dying = {       id: 'old',       url: 'http://localhost:3000/home',
  • Network accessline 207
    id: 'old',       url: 'http://localhost:3000/home',       command: () => Promise.reject(new Error(SESSION_DISCONNECTED_REASON)),
  • Network accessline 208
    url: 'http://localhost:3000/home',
  • Network accessline 226
    expect(await navigateAndAwait(sessions, dying, 'http://x/login', '/login', 300, clock)).toEqual(

server/src/language/flows/flow-replay.dynamic.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-replay.expect-element.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-replay.navigate.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 34
    onEvent: () => () => undefined,     elapsed: () => 0,     url: `http://localhost:3000/${text}`,
  • Network accessline 35
    elapsed: () => 0,     url: `http://localhost:3000/${text}`,   };
  • Network accessline 36
    url: `http://localhost:3000/${text}`,
  • Network accessline 106
    const dying = {       id: 'old',       url: 'http://localhost:3000/',
  • Network accessline 107
    id: 'old',       url: 'http://localhost:3000/',       command: () => Promise.reject(new Error(SESSION_DISCONNECTED_REASON)),
  • Network accessline 108
    url: 'http://localhost:3000/',
  • Network accessline 109
    command: () => Promise.reject(new Error(SESSION_DISCONNECTED_REASON)),     };     const landed = { id: 'new', url: 'http://localhost:3000/404', eventsSince: () => [] };
  • Network accessline 110
    };     const landed = { id: 'new', url: 'http://localhost:3000/404', eventsSince: () => [] };     const sessions = { resolve: () => landed as unknown as Session } as unknown as SessionManager;
  • Network accessline 111
    const landed = { id: 'new', url: 'http://localhost:3000/404', eventsSince: () => [] };

server/src/language/flows/flow-replay.net-in-flight.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 41
    it('is reported as in flight, not as a signal that never fired', async () => {     const drift = await assertStepExpect(       sessionWith([netPending('POST', 'https://app.test/api/save', 'r-1')]),
  • Network accessline 42
    const drift = await assertStepExpect(       sessionWith([netPending('POST', 'https://app.test/api/save', 'r-1')]),       { kind: 'net', urlContains: '/api/save', method: 'POST' },
  • Network accessline 43
    sessionWith([netPending('POST', 'https://app.test/api/save', 'r-1')]),
  • Network accessline 48
    );     expect(drift?.reasonKind).toBe(DriftReason.NET_STILL_IN_FLIGHT);     expect(drift?.reason).toContain('POST https://app.test/api/save');
  • Network accessline 49
    expect(drift?.reasonKind).toBe(DriftReason.NET_STILL_IN_FLIGHT);     expect(drift?.reason).toContain('POST https://app.test/api/save');   });
  • Network accessline 50
    expect(drift?.reason).toContain('POST https://app.test/api/save');
  • Network accessline 53
    it('an unrelated open request does not pardon one that never started', async () => {     const drift = await assertStepExpect(       sessionWith([netPending('GET', 'https://app.test/api/poll', 'r-2')]),
  • Network accessline 54
    const drift = await assertStepExpect(       sessionWith([netPending('GET', 'https://app.test/api/poll', 'r-2')]),       { kind: 'net', urlContains: '/api/save', method: 'POST' },
  • Network accessline 55
    sessionWith([netPending('GET', 'https://app.test/api/poll', 'r-2')]),
  • Network accessline 64
    it('a signal expect is unaffected', async () => {     const drift = await assertStepExpect(       sessionWith([netPending('POST', 'https://app.test/api/save', 'r-3')]),
  • Network accessline 65
    const drift = await assertStepExpect(       sessionWith([netPending('POST', 'https://app.test/api/save', 'r-3')]),       { kind: 'signal', name: 'order:placed' },
  • Network accessline 66
    sessionWith([netPending('POST', 'https://app.test/api/save', 'r-3')]),

server/src/language/flows/flow-replay.request.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-replay.step-pacing.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-replay.step-timeout.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-replay.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 245
    routeEvent('/deployments'),       signalEvent('modal:opened'),       netEvent('POST', 'http://localhost/api/deploys?x=1', 201),
  • Network accessline 246
    signalEvent('modal:opened'),       netEvent('POST', 'http://localhost/api/deploys?x=1', 201),     ]);
  • Network accessline 247
    netEvent('POST', 'http://localhost/api/deploys?x=1', 201),

server/src/language/flows/flow-replay.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 122
    function trimUrl(url: string): string {   try {     return new URL(url, 'http://x').pathname;
  • Network accessline 123
    try {     return new URL(url, 'http://x').pathname;   } catch {
  • Network accessline 124
    return new URL(url, 'http://x').pathname;

server/src/language/flows/flow-replay.unreachable.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-replay.unreached-step.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-replayable.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 183
    it("does not count the dev server's own requests as the app's writes", () => {     expect(wroteIn([request('POST', 'http://localhost:5173/@vite/client')] as never)).toBe(false);
  • Network accessline 184
    expect(wroteIn([request('POST', 'http://localhost:5173/@vite/client')] as never)).toBe(false);

server/src/language/flows/flow-replayable.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-result.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-save-nudges-sync.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-save-recording.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-save-root.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-scope.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-scope.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-secret-redaction.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-secret-supply.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 70
    [Credential-related source omitted]
  • Access to secretsline 91
    [Credential-related source omitted]
  • Access to secretsline 121
    [Credential-related source omitted]

server/src/language/flows/flow-start-path.same-document.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 53
    it('reloads when the destination is the current URL with its fragment', async () => {     expect(       await commandsFor('http://localhost:5173/#/orders', 'http://localhost:5173/#/orders'),
  • Network accessline 54
    expect(       await commandsFor('http://localhost:5173/#/orders', 'http://localhost:5173/#/orders'),     ).toEqual([ReticleCommand.NAVIGATE, ReticleCommand.REFRESH]);
  • Network accessline 55
    await commandsFor('http://localhost:5173/#/orders', 'http://localhost:5173/#/orders'),
  • Network accessline 60
    expect(       await commandsFor(         'http://localhost:5173/index.html#/orders?tab=2',
  • Network accessline 61
    await commandsFor(         'http://localhost:5173/index.html#/orders?tab=2',         'http://localhost:5173/index.html#/orders',
  • Network accessline 62
    'http://localhost:5173/index.html#/orders?tab=2',
  • Network accessline 63
    'http://localhost:5173/index.html#/orders',
  • Network accessline 68
    it('does not reload a navigation to another path, which loads a page by itself', async () => {     expect(       await commandsFor('http://localhost:5173/#/orders', 'http://localhost:5173/settings#/a'),
  • Network accessline 69
    expect(       await commandsFor('http://localhost:5173/#/orders', 'http://localhost:5173/settings#/a'),     ).toEqual([ReticleCommand.NAVIGATE]);
  • Network accessline 70
    await commandsFor('http://localhost:5173/#/orders', 'http://localhost:5173/settings#/a'),
  • Network accessline 74
    it('does not reload the same URL with no fragment, which a browser already reloads', async () => {     expect(       await commandsFor('http://localhost:5173/orders', 'http://localhost:5173/orders'),
  • Network accessline 75
    expect(       await commandsFor('http://localhost:5173/orders', 'http://localhost:5173/orders'),     ).toEqual([ReticleCommand.NAVIGATE]);
  • Network accessline 76
    await commandsFor('http://localhost:5173/orders', 'http://localhost:5173/orders'),

server/src/language/flows/flow-start-path.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-startpath-hint.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 44
    it('falls back to the session URL when no route event was observed (hard-loaded tab)', () => {     const session = { url: 'http://localhost:3000/reset-password', eventsSince: () => [] };
  • Network accessline 45
    const session = { url: 'http://localhost:3000/reset-password', eventsSince: () => [] };
  • Network accessline 51
    it('is silent when the session URL already sits on the start page', () => {     const session = { url: 'http://localhost:3000/login?next=%2F', eventsSince: () => [] };
  • Network accessline 52
    const session = { url: 'http://localhost:3000/login?next=%2F', eventsSince: () => [] };
  • Network accessline 56
    it('treats a trailing slash as the same page, not as elsewhere', () => {     const session = { url: 'http://localhost:3000/login/', eventsSince: () => [] };
  • Network accessline 57
    const session = { url: 'http://localhost:3000/login/', eventsSince: () => [] };
  • Network accessline 121
    startPathMismatchHint(         flow('/admin/events/7?tab=wrap'),         onUrl('http://localhost:3000/admin/events/7?tab=wrap'),
  • Network accessline 122
    flow('/admin/events/7?tab=wrap'),         onUrl('http://localhost:3000/admin/events/7?tab=wrap'),       ),
  • Network accessline 123
    onUrl('http://localhost:3000/admin/events/7?tab=wrap'),
  • Network accessline 130
    const hint = startPathMismatchHint(       flow('/admin/events/7?tab=wrap'),       onUrl('http://localhost:3000/admin/events/7?tab=summary'),
  • Network accessline 131
    flow('/admin/events/7?tab=wrap'),       onUrl('http://localhost:3000/admin/events/7?tab=summary'),     );
  • Network accessline 132
    onUrl('http://localhost:3000/admin/events/7?tab=summary'),
  • Network accessline 139
    startPathMismatchHint(         flow('/admin/events/7?tab=wrap'),         onUrl('http://localhost:3000/admin/events/8?tab=wrap'),
  • Network accessline 140
    flow('/admin/events/7?tab=wrap'),         onUrl('http://localhost:3000/admin/events/8?tab=wrap'),       ),
  • Network accessline 141
    onUrl('http://localhost:3000/admin/events/8?tab=wrap'),
  • Network accessline 154
    it('ignores a query the flow never asked about', () => {     expect(       startPathMismatchHint(flow('/cart'), onUrl('http://localhost:3000/cart?coupon=X')),
  • Network accessline 155
    expect(       startPathMismatchHint(flow('/cart'), onUrl('http://localhost:3000/cart?coupon=X')),       'the flow said /cart and the tab is on /cart; the coupon is not the flow being elsewhere',
  • Network accessline 156
    startPathMismatchHint(flow('/cart'), onUrl('http://localhost:3000/cart?coupon=X')),

server/src/language/flows/flow-startpath-navigate.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 138
    describe('arriveAtStartPath — replay navigates to the flow start page before step 1', () => {   it('dispatches the navigation and returns the session the SDK reconnects as', async () => {     const { calls, session } = tab('http://localhost
  • Network accessline 139
    it('dispatches the navigation and returns the session the SDK reconnects as', async () => {     const { calls, session } = tab('http://localhost:3000/reset-password');     const fresh = successor('http://localhost:3000/login');
  • Network accessline 140
    const { calls, session } = tab('http://localhost:3000/reset-password');
  • Network accessline 141
    const fresh = successor('http://localhost:3000/login');
  • Network accessline 152
    expect(calls).toEqual([       { name: ReticleCommand.QUERY, args: { by: QueryBy.TESTID, value: 'submit' } },       { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/login' } },
  • Network accessline 153
    { name: ReticleCommand.QUERY, args: { by: QueryBy.TESTID, value: 'submit' } },       { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/login' } },     ]);
  • Network accessline 154
    { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/login' } },
  • Network accessline 169
    */   it('reloads when the tab already sits on the start page, so step 1 starts from a known state', async () => {     const { calls, session } = tab('http://localhost:3000/login');
  • Network accessline 170
    it('reloads when the tab already sits on the start page, so step 1 starts from a known state', async () => {     const { calls, session } = tab('http://localhost:3000/login');     const fresh = successor('http://localhost:3000/login');
  • Network accessline 171
    const { calls, session } = tab('http://localhost:3000/login');
  • Network accessline 172
    const fresh = successor('http://localhost:3000/login');
  • Network accessline 180
    expect(arrived.session).toBe(fresh);     expect(calls.filter((c) => c.name === ReticleCommand.NAVIGATE)).toEqual([       { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/login' } },
  • Network accessline 181
    expect(calls.filter((c) => c.name === ReticleCommand.NAVIGATE)).toEqual([       { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/login' } },     ]);
  • Network accessline 182
    { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/login' } },
  • Network accessline 194
    */   it('keeps a query the flow did not record when it reloads in place', async () => {     const { calls, session } = tab('http://localhost:3000/login?next=%2Fdash');
  • Network accessline 195
    it('keeps a query the flow did not record when it reloads in place', async () => {     const { calls, session } = tab('http://localhost:3000/login?next=%2Fdash');     const fresh = successor('http://localhost:3000/login?next=%2Fdash');
  • Network accessline 196
    const { calls, session } = tab('http://localhost:3000/login?next=%2Fdash');
  • Network accessline 197
    const fresh = successor('http://localhost:3000/login?next=%2Fdash');
  • Network accessline 204
    );     expect(calls.filter((c) => c.name === ReticleCommand.NAVIGATE)).toEqual([       { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/login?next=%2Fdash' } },
  • Network accessline 205
    expect(calls.filter((c) => c.name === ReticleCommand.NAVIGATE)).toEqual([       { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/login?next=%2Fdash' } },     ]);
  • Network accessline 206
    { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/login?next=%2Fdash' } },
  • Network accessline 217
    */   it('drops a query that the previous replay left on the same tab', async () => {     const left = 'http://localhost:3000/tags?search=o&unused=true';
  • Network accessline 218
    it('drops a query that the previous replay left on the same tab', async () => {     const left = 'http://localhost:3000/tags?search=o&unused=true';     const { calls, session } = tab(left);
  • Network accessline 219
    const left = 'http://localhost:3000/tags?search=o&unused=true';
  • Network accessline 221
    noteReplayEnded(session);     await arriveAtStartPath(       manager([session, successor('http://localhost:3000/tags')]),
  • Network accessline 222
    await arriveAtStartPath(       manager([session, successor('http://localhost:3000/tags')]),       session,
  • Network accessline 223
    manager([session, successor('http://localhost:3000/tags')]),
  • Network accessline 228
    );     expect(calls.filter((c) => c.name === ReticleCommand.NAVIGATE)).toEqual([       { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/tags' } },
  • Network accessline 229
    expect(calls.filter((c) => c.name === ReticleCommand.NAVIGATE)).toEqual([       { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/tags' } },     ]);
  • Network accessline 230
    { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/tags' } },
  • Network accessline 234
    it('keeps the query when a new page loaded after the previous replay', async () => {     const url = 'http://localhost:3000/login?next=%2Fdash';
  • Network accessline 235
    const url = 'http://localhost:3000/login?next=%2Fdash';
  • Network accessline 256
    */   it('does not reset a flow that declares `requires`', async () => {     const { calls, session } = tab('http://localhost:3000/login');
  • Network accessline 257
    it('does not reset a flow that declares `requires`', async () => {     const { calls, session } = tab('http://localhost:3000/login');     const arrived = await arriveAtStartPath(manager([]), session, continues('/login'));
  • Network accessline 258
    const { calls, session } = tab('http://localhost:3000/login');
  • Network accessline 264
    it('does not navigate a flow that declares `requires` even from the wrong page', async () => {     const { calls, session } = tab('http://localhost:3000/elsewhere');
  • Network accessline 265
    const { calls, session } = tab('http://localhost:3000/elsewhere');
  • Network accessline 277
    */   it('accepts a successor that reconnects under the same id (a leased tab)', async () => {     const { session } = tab('http://localhost:4312/compose', { id: 'lease-1' });
  • Network accessline 278
    it('accepts a successor that reconnects under the same id (a leased tab)', async () => {     const { session } = tab('http://localhost:4312/compose', { id: 'lease-1' });     const fresh = tab('http://localhost:4312/compose', { id: 'lease-1'
  • Network accessline 279
    const { session } = tab('http://localhost:4312/compose', { id: 'lease-1' });
  • Network accessline 280
    const fresh = tab('http://localhost:4312/compose', { id: 'lease-1' }).session;
  • Network accessline 298
    */   it('says so when the reload itself cost step 1 its anchor', async () => {     const { session } = tab('http://localhost:3000/login', { stepOnPage: true });
  • Network accessline 299
    it('says so when the reload itself cost step 1 its anchor', async () => {     const { session } = tab('http://localhost:3000/login', { stepOnPage: true });     const fresh = tab('http://localhost:3000/login', { stepOnPage: false, id: 'fresh
  • Network accessline 300
    const { session } = tab('http://localhost:3000/login', { stepOnPage: true });
  • Network accessline 301
    const fresh = tab('http://localhost:3000/login', { stepOnPage: false, id: 'fresh' }).session;
  • Network accessline 318
    it('is silent when the anchor survives the reload', async () => {     const { session } = tab('http://localhost:3000/login', { stepOnPage: true });
  • Network accessline 319
    const { session } = tab('http://localhost:3000/login', { stepOnPage: true });
  • Network accessline 320
    const fresh = tab('http://localhost:3000/login', { stepOnPage: true, id: 'fresh' }).session;
  • Network accessline 331
    it('does nothing for a flow with no startPath (back-compat)', async () => {     const { calls, session } = tab('http://localhost:3000/anywhere');
  • Network accessline 332
    const { calls, session } = tab('http://localhost:3000/anywhere');
  • Network accessline 345
    it('falls back (undefined) when the browser refuses the navigation', async () => {     const { calls, session } = tab('http://localhost:3000/reset-password', { accepted: false });
  • Network accessline 346
    const { calls, session } = tab('http://localhost:3000/reset-password', { accepted: false });
  • Network accessline 354
    it('gives up after the window rather than hanging when the SDK never reconnects', async () => {     const { session } = tab('http://localhost:3000/reset-password');
  • Network accessline 355
    const { session } = tab('http://localhost:3000/reset-password');
  • Network accessline 374
    it('names the setting that gives a slow start page more time', async () => {     const { session } = tab('http://localhost:3000/reset-password');
  • Network accessline 375
    const { session } = tab('http://localhost:3000/reset-password');
  • Network accessline 389
    it('uses a live successor on an auth redirect instead of calling the page lost', async () => {     const { session } = tab('http://localhost:3000/home');
  • Network accessline 390
    const { session } = tab('http://localhost:3000/home');
  • Network accessline 391
    const login = successor('http://localhost:3000/auth');
  • Network accessline 404
    it('keeps waiting when a redirect later reaches the requested page', async () => {     const { session } = tab('http://localhost:3000/home');
  • Network accessline 405
    const { session } = tab('http://localhost:3000/home');
  • Network accessline 406
    const login = successor('http://localhost:3000/auth');
  • Network accessline 407
    const checkout = successor('http://localhost:3000/checkout');
  • Network accessline 419
    it('does not reuse a redirected handle that disconnected before the deadline', async () => {     const { session } = tab('http://localhost:3000/home');
  • Network accessline 420
    const { session } = tab('http://localhost:3000/home');
  • Network accessline 421
    const login = successor('http://localhost:3000/auth');
  • Network accessline 433
    it('keeps waiting through the teardown gap where the old id resolves to nothing yet', async () => {     const { session } = tab('http://localhost:3000/reset-password');
  • Network accessline 434
    const { session } = tab('http://localhost:3000/reset-password');
  • Network accessline 435
    const fresh = successor('http://localhost:3000/login');
  • Network accessline 455
    it('does not navigate when step 1 can already start from this page', async () => {     const { calls, session } = tab('http://localhost:3000/diagnostics', { stepOnPage: true });
  • Network accessline 456
    const { calls, session } = tab('http://localhost:3000/diagnostics', { stepOnPage: true });
  • Network accessline 469
    */   it('navigates when step 1 matches here only by role and name', async () => {     const { calls, session } = tab('http://localhost:3000/bookmarks', { stepOnPage: true });
  • Network accessline 470
    it('navigates when step 1 matches here only by role and name', async () => {     const { calls, session } = tab('http://localhost:3000/bookmarks', { stepOnPage: true });     const byName: FlowFile = {
  • Network accessline 471
    const { calls, session } = tab('http://localhost:3000/bookmarks', { stepOnPage: true });
  • Network accessline 477
    };     await arriveAtStartPath(       manager([session, successor('http://localhost:3000/tags')]),
  • Network accessline 478
    await arriveAtStartPath(       manager([session, successor('http://localhost:3000/tags')]),       session,
  • Network accessline 479
    manager([session, successor('http://localhost:3000/tags')]),
  • Network accessline 484
    );     expect(calls.filter((c) => c.name === ReticleCommand.NAVIGATE)).toEqual([       { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/tags' } },
  • Network accessline 485
    expect(calls.filter((c) => c.name === ReticleCommand.NAVIGATE)).toEqual([       { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/tags' } },     ]);
  • Network accessline 486
    { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/tags' } },
  • Network accessline 492
    it('still navigates when the page cannot be asked', async () => {     const { calls, session } = tab('http://localhost:3000/elsewhere');
  • Network accessline 493
    const { calls, session } = tab('http://localhost:3000/elsewhere');
  • Network accessline 494
    const fresh = successor('http://localhost:3000/login');
  • Network accessline 506
    it('carries a leased tab’s identity params so the navigation cannot strand the lease', async () => {     const leased = `http://localhost:3000/?${RETICLE_URL_PARAM.SESSION}=lease-1`;
  • Network accessline 507
    const leased = `http://localhost:3000/?${RETICLE_URL_PARAM.SESSION}=lease-1`;
  • Network accessline 508
    const { calls, session } = tab(leased);     const fresh = successor(`http://localhost:3000/checkout?${RETICLE_URL_PARAM.SESSION}=lease-1`);     const sessions = manager([session, fresh]);
  • Network accessline 509
    const fresh = successor(`http://localhost:3000/checkout?${RETICLE_URL_PARAM.SESSION}=lease-1`);
  • Network accessline 532
    const clock = instantClock(100);     const { session } = tab(undefined, { id: 'gone' });     const fresh = successor('http://localhost:3000/login');
  • Network accessline 533
    const { session } = tab(undefined, { id: 'gone' });     const fresh = successor('http://localhost:3000/login');     const sessions = {
  • Network accessline 534
    const fresh = successor('http://localhost:3000/login');
  • Network accessline 553
    const arrived = await arriveAtStartPath(       sessions,       { ...session, url: 'http://localhost:3000/reset-password' },
  • Network accessline 554
    sessions,       { ...session, url: 'http://localhost:3000/reset-password' },       slow,
  • Network accessline 555
    { ...session, url: 'http://localhost:3000/reset-password' },
  • Network accessline 570
    describe('arriveAtStartPath keeps waiting past the budget while the page is still loading', () => {   it('continues on a page that loads after the budget and before the cap, and says so', async () => {     const { session } = tab('http://lo
  • Network accessline 572
    const { session } = tab('http://localhost:3000/reset-password');
  • Network accessline 574
    const sessions = manager([       ...Array<Partial<Session>>(10).fill(session),       successor('http://localhost:3000/login'),
  • Network accessline 575
    ...Array<Partial<Session>>(10).fill(session),       successor('http://localhost:3000/login'),     ]);
  • Network accessline 576
    successor('http://localhost:3000/login'),
  • Network accessline 591
    it('fails at the 30 s cap when the page never finishes loading, and says it was still loading', async () => {     const { session } = tab('http://localhost:3000/reset-password');
  • Network accessline 592
    const { session } = tab('http://localhost:3000/reset-password');
  • Network accessline 607
    it('fails at the budget once the page has finished loading', async () => {     const { session } = tab('http://localhost:3000/reset-password');
  • Network accessline 608
    const { session } = tab('http://localhost:3000/reset-password');
  • Network accessline 627
    it('fails at the budget on a page that connected on another route, loading or not', async () => {     const { session } = tab('http://localhost:3000/home');
  • Network accessline 628
    const { session } = tab('http://localhost:3000/home');
  • Network accessline 629
    const login = successor('http://localhost:3000/auth');
  • Network accessline 643
    it('counts a probe that fails as loaded, so it cannot stretch the wait', async () => {     const { session } = tab('http://localhost:3000/reset-password');
  • Network accessline 644
    const { session } = tab('http://localhost:3000/reset-password');
  • Network accessline 686
    it('navigates when this page has the name but not the recorded number of them', async () => {     const { calls, session } = tab('http://localhost:3000/bookmarks', { matches: 30 });
  • Network accessline 687
    const { calls, session } = tab('http://localhost:3000/bookmarks', { matches: 30 });
  • Network accessline 688
    const fresh = successor('http://localhost:3000/tags');
  • Network accessline 702
    it('navigates even when another page has exactly the recorded number of them', async () => {     const { calls, session } = tab('http://localhost:3000/other', { matches: 10 });
  • Network accessline 703
    const { calls, session } = tab('http://localhost:3000/other', { matches: 10 });
  • Network accessline 704
    const fresh = successor('http://localhost:3000/tags');
  • Network accessline 765
    it('runs flow B on /orders after flow A ended on /settings', async () => {     const app = browser('http://localhost:3000/');
  • Network accessline 766
    const app = browser('http://localhost:3000/');
  • Network accessline 784
    it('navigates to a declared route that differs from the startPath', async () => {     const app = browser('http://localhost:3000/settings');
  • Network accessline 785
    const app = browser('http://localhost:3000/settings');
  • Network accessline 791
    instantClock(100),     );     expect(app.navigations).toEqual(['http://localhost:3000/orders']);
  • Network accessline 792
    );     expect(app.navigations).toEqual(['http://localhost:3000/orders']);     expect(arrived.unreached).toBeUndefined();
  • Network accessline 793
    expect(app.navigations).toEqual(['http://localhost:3000/orders']);
  • Network accessline 797
    it('goes to the route even when a testid of step 1 is on the wrong page', async () => {     const { calls, session } = tab('http://localhost:3000/settings', { stepOnPage: true });
  • Network accessline 798
    const { calls, session } = tab('http://localhost:3000/settings', { stepOnPage: true });
  • Network accessline 799
    const arrived = await arriveAtStartPath(       manager([session, successor('http://localhost:3000/orders')]),       session,
  • Network accessline 800
    manager([session, successor('http://localhost:3000/orders')]),
  • Network accessline 805
    );     expect(calls.filter((c) => c.name === ReticleCommand.NAVIGATE)).toEqual([       { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/orders' } },
  • Network accessline 806
    expect(calls.filter((c) => c.name === ReticleCommand.NAVIGATE)).toEqual([       { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/orders' } },     ]);
  • Network accessline 807
    { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/orders' } },
  • Network accessline 812
    it('keeps the persistent-anchor shortcut for a route claim that is the startPath', async () => {     const { calls, session } = tab('http://localhost:3000/diagnostics', { stepOnPage: true });
  • Network accessline 813
    const { calls, session } = tab('http://localhost:3000/diagnostics', { stepOnPage: true });
  • Network accessline 819
    it('says the route was not reached when the browser refuses to open it', async () => {     const { session } = tab('http://localhost:3000/settings', { accepted: false });
  • Network accessline 820
    const { session } = tab('http://localhost:3000/settings', { accepted: false });
  • Network accessline 827
    it('says the route was not reached when the app sends the tab elsewhere', async () => {     const { session } = tab('http://localhost:3000/settings');
  • Network accessline 828
    const { session } = tab('http://localhost:3000/settings');
  • Network accessline 829
    const arrived = await arriveAtStartPath(       manager([session, successor('http://localhost:3000/login')]),       session,
  • Network accessline 830
    manager([session, successor('http://localhost:3000/login')]),
  • Network accessline 849
    it('does not move a flow that also declares other state, and says the route was not reached', async () => {     const { calls, session } = tab('http://localhost:3000/settings');
  • Network accessline 850
    const { calls, session } = tab('http://localhost:3000/settings');
  • Network accessline 863
    it('leaves a flow that also declares other state alone when it is already on the route', async () => {     const { calls, session } = tab('http://localhost:3000/orders');
  • Network accessline 864
    const { calls, session } = tab('http://localhost:3000/orders');
  • Network accessline 876
    it('goes to the declared route when the startPath claim comes first', async () => {     const app = browser('http://localhost:3000/settings');
  • Network accessline 877
    const app = browser('http://localhost:3000/settings');
  • Network accessline 889
    instantClock(100),     );     expect(app.navigations).toEqual(['http://localhost:3000/orders']);
  • Network accessline 890
    );     expect(app.navigations).toEqual(['http://localhost:3000/orders']);     expect(arrived.unreached).toBeUndefined();
  • Network accessline 891
    expect(app.navigations).toEqual(['http://localhost:3000/orders']);
  • Network accessline 895
    it('says the route was not reached when two declared routes cannot both hold', async () => {     const app = browser('http://localhost:3000/settings');
  • Network accessline 896
    const app = browser('http://localhost:3000/settings');
  • Network accessline 908
    instantClock(100),     );     expect(app.navigations).toEqual(['http://localhost:3000/orders']);
  • Network accessline 909
    );     expect(app.navigations).toEqual(['http://localhost:3000/orders']);     expect(arrived.unreached).toContain('it is not on /invoices');
  • Network accessline 910
    expect(app.navigations).toEqual(['http://localhost:3000/orders']);
  • Network accessline 918
    requires: [{ kind: PredicateKind.ROUTE, pathname: '/orders', contains: 'tab=open' }],     });     const missing = browser('http://localhost:3000/settings');
  • Network accessline 919
    });     const missing = browser('http://localhost:3000/settings');     const unmet = await arriveAtStartPath(
  • Network accessline 920
    const missing = browser('http://localhost:3000/settings');
  • Network accessline 927
    );     expect(unmet.unreached).toContain('does not contain "tab=open"');     const present = browser('http://localhost:3000/orders?tab=open');
  • Network accessline 928
    expect(unmet.unreached).toContain('does not contain "tab=open"');     const present = browser('http://localhost:3000/orders?tab=open');     const met = await arriveAtStartPath(
  • Network accessline 929
    const present = browser('http://localhost:3000/orders?tab=open');
  • Network accessline 935
    instantClock(100),     );     expect(present.navigations).toEqual(['http://localhost:3000/orders?tab=open']);
  • Network accessline 936
    );     expect(present.navigations).toEqual(['http://localhost:3000/orders?tab=open']);     expect(met.unreached).toBeUndefined();
  • Network accessline 937
    expect(present.navigations).toEqual(['http://localhost:3000/orders?tab=open']);
  • Network accessline 941
    it('checks the declared route where the tab is when replay continues mid-flow', () => {     expect(       routeClaimsWhereTheTabIs(needs('/orders'), tab('http://localhost:3000/settings').session)
  • Network accessline 942
    expect(       routeClaimsWhereTheTabIs(needs('/orders'), tab('http://localhost:3000/settings').session)         .unreached,
  • Network accessline 943
    routeClaimsWhereTheTabIs(needs('/orders'), tab('http://localhost:3000/settings').session)
  • Network accessline 945
    ).toContain('it is not on /orders');     expect(       routeClaimsWhereTheTabIs(needs('/orders'), tab('http://localhost:3000/orders').session),
  • Network accessline 946
    expect(       routeClaimsWhereTheTabIs(needs('/orders'), tab('http://localhost:3000/orders').session),     ).toEqual({});
  • Network accessline 947
    routeClaimsWhereTheTabIs(needs('/orders'), tab('http://localhost:3000/orders').session),
  • Network accessline 948
    ).toEqual({});     expect(       routeClaimsWhereTheTabIs(flow('/settings'), tab('http://localhost:3000/elsewhere').session),
  • Network accessline 949
    expect(       routeClaimsWhereTheTabIs(flow('/settings'), tab('http://localhost:3000/elsewhere').session),     ).toEqual({});
  • Network accessline 950
    routeClaimsWhereTheTabIs(flow('/settings'), tab('http://localhost:3000/elsewhere').session),
  • Network accessline 967
    it('keeps the id of the page the tab is on, not the recorded id', async () => {     const { calls, session } = tab('http://localhost:3000/cases/c-42/notes');
  • Network accessline 968
    const { calls, session } = tab('http://localhost:3000/cases/c-42/notes');
  • Network accessline 969
    const arrived = await arriveAtStartPath(       manager([session, successor('http://localhost:3000/cases/c-42/notes')]),       session,
  • Network accessline 970
    manager([session, successor('http://localhost:3000/cases/c-42/notes')]),
  • Network accessline 975
    );     expect(calls.filter((c) => c.name === ReticleCommand.NAVIGATE)).toEqual([       { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/cases/c-42/notes' } },
  • Network accessline 976
    expect(calls.filter((c) => c.name === ReticleCommand.NAVIGATE)).toEqual([       { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/cases/c-42/notes' } },     ]);
  • Network accessline 977
    { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/cases/c-42/notes' } },
  • Network accessline 983
    it('keeps the id under a hash router', async () => {     const { calls, session } = tab('http://localhost:3000/#/cases/c-42/notes');
  • Network accessline 984
    const { calls, session } = tab('http://localhost:3000/#/cases/c-42/notes');
  • Network accessline 985
    await arriveAtStartPath(       manager([session, successor('http://localhost:3000/#/cases/c-42/notes')]),       session,
  • Network accessline 986
    manager([session, successor('http://localhost:3000/#/cases/c-42/notes')]),
  • Network accessline 995
    );     expect(calls.filter((c) => c.name === ReticleCommand.NAVIGATE)).toEqual([       { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/#/cases/c-42/notes' } },
  • Network accessline 996
    expect(calls.filter((c) => c.name === ReticleCommand.NAVIGATE)).toEqual([       { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/#/cases/c-42/notes' } },     ]);
  • Network accessline 997
    { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/#/cases/c-42/notes' } },
  • Network accessline 1001
    it('navigates to the recorded address from a page off the route', async () => {     const { calls, session } = tab('http://localhost:3000/settings');
  • Network accessline 1002
    const { calls, session } = tab('http://localhost:3000/settings');
  • Network accessline 1003
    await arriveAtStartPath(       manager([session, successor('http://localhost:3000/cases/c-deleted/notes')]),       session,
  • Network accessline 1004
    manager([session, successor('http://localhost:3000/cases/c-deleted/notes')]),
  • Network accessline 1011
    {         name: ReticleCommand.NAVIGATE,         args: { url: 'http://localhost:3000/cases/c-deleted/notes' },
  • Network accessline 1012
    name: ReticleCommand.NAVIGATE,         args: { url: 'http://localhost:3000/cases/c-deleted/notes' },       },
  • Network accessline 1013
    args: { url: 'http://localhost:3000/cases/c-deleted/notes' },
  • Network accessline 1018
    it('says the route was not reached when the recorded case is gone and the app redirects', async () => {     const { session } = tab('http://localhost:3000/settings');
  • Network accessline 1019
    const { session } = tab('http://localhost:3000/settings');
  • Network accessline 1020
    const arrived = await arriveAtStartPath(       manager([session, successor('http://localhost:3000/cases')]),       session,
  • Network accessline 1021
    manager([session, successor('http://localhost:3000/cases')]),
  • Network accessline 1031
    it('does not navigate to a pattern it has no address for', async () => {     const { calls, session } = tab('http://localhost:3000/settings');
  • Network accessline 1032
    const { calls, session } = tab('http://localhost:3000/settings');
  • Network accessline 1043
    it('takes the id from another section of the same case, not the recorded id', async () => {     const { calls, session } = tab('http://localhost:3000/cases/c-42/files');
  • Network accessline 1044
    const { calls, session } = tab('http://localhost:3000/cases/c-42/files');
  • Network accessline 1045
    const arrived = await arriveAtStartPath(       manager([session, successor('http://localhost:3000/cases/c-42/notes')]),       session,
  • Network accessline 1046
    manager([session, successor('http://localhost:3000/cases/c-42/notes')]),
  • Network accessline 1051
    );     expect(calls.filter((c) => c.name === ReticleCommand.NAVIGATE)).toEqual([       { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/cases/c-42/notes' } },
  • Network accessline 1052
    expect(calls.filter((c) => c.name === ReticleCommand.NAVIGATE)).toEqual([       { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/cases/c-42/notes' } },     ]);
  • Network accessline 1053
    { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/cases/c-42/notes' } },
  • Network accessline 1061
    requires: [{ kind: PredicateKind.ROUTE, pathname: '/orgs/:org/cases/:id/notes' }],     });     const inCase = tab('http://localhost:3000/orgs/o-1/cases/c-42/files');
  • Network accessline 1062
    });     const inCase = tab('http://localhost:3000/orgs/o-1/cases/c-42/files');     await arriveAtStartPath(
  • Network accessline 1063
    const inCase = tab('http://localhost:3000/orgs/o-1/cases/c-42/files');
  • Network accessline 1064
    await arriveAtStartPath(       manager([inCase.session, successor('http://localhost:3000/orgs/o-1/cases/c-42/notes')]),       inCase.session,
  • Network accessline 1065
    manager([inCase.session, successor('http://localhost:3000/orgs/o-1/cases/c-42/notes')]),
  • Network accessline 1072
    {         name: ReticleCommand.NAVIGATE,         args: { url: 'http://localhost:3000/orgs/o-1/cases/c-42/notes' },
  • Network accessline 1073
    name: ReticleCommand.NAVIGATE,         args: { url: 'http://localhost:3000/orgs/o-1/cases/c-42/notes' },       },
  • Network accessline 1074
    args: { url: 'http://localhost:3000/orgs/o-1/cases/c-42/notes' },
  • Network accessline 1078
    const inOrg = tab('http://localhost:3000/orgs/o-1/settings');
  • Network accessline 1080
    manager([         inOrg.session,         successor('http://localhost:3000/orgs/o-deleted/cases/c-deleted/notes'),
  • Network accessline 1081
    inOrg.session,         successor('http://localhost:3000/orgs/o-deleted/cases/c-deleted/notes'),       ]),
  • Network accessline 1082
    successor('http://localhost:3000/orgs/o-deleted/cases/c-deleted/notes'),
  • Network accessline 1090
    {         name: ReticleCommand.NAVIGATE,         args: { url: 'http://localhost:3000/orgs/o-deleted/cases/c-deleted/notes' },
  • Network accessline 1091
    name: ReticleCommand.NAVIGATE,         args: { url: 'http://localhost:3000/orgs/o-deleted/cases/c-deleted/notes' },       },
  • Network accessline 1092
    args: { url: 'http://localhost:3000/orgs/o-deleted/cases/c-deleted/notes' },
  • Network accessline 1097
    it('takes the id from another section under a hash router', async () => {     const { calls, session } = tab('http://localhost:3000/#/cases/c-42/files');
  • Network accessline 1098
    const { calls, session } = tab('http://localhost:3000/#/cases/c-42/files');
  • Network accessline 1099
    await arriveAtStartPath(       manager([session, successor('http://localhost:3000/#/cases/c-42/notes')]),       session,
  • Network accessline 1100
    manager([session, successor('http://localhost:3000/#/cases/c-42/notes')]),
  • Network accessline 1109
    );     expect(calls.filter((c) => c.name === ReticleCommand.NAVIGATE)).toEqual([       { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/#/cases/c-42/notes' } },
  • Network accessline 1110
    expect(calls.filter((c) => c.name === ReticleCommand.NAVIGATE)).toEqual([       { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/#/cases/c-42/notes' } },     ]);
  • Network accessline 1111
    { name: ReticleCommand.NAVIGATE, args: { url: 'http://localhost:3000/#/cases/c-42/notes' } },

server/src/language/flows/flow-step-runners.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-store-for-session.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-store-for-session.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-success.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-success.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-tools.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-verify-parallel.run.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 70
    reticleRoot: '/tmp/reticle-test/.reticle',       sessions: {         resolve: () => ({ url: 'http://localhost:3000/app', projectId: 'proj-123' }),
  • Network accessline 71
    sessions: {         resolve: () => ({ url: 'http://localhost:3000/app', projectId: 'proj-123' }),         get: () => ({}),
  • Network accessline 72
    resolve: () => ({ url: 'http://localhost:3000/app', projectId: 'proj-123' }),
  • Network accessline 112
    });       try {         await pool.acquire('https://localhost:3000/app', {
  • Network accessline 113
    try {         await pool.acquire('https://localhost:3000/app', {           sessionId: 'source',
  • Network accessline 114
    await pool.acquire('https://localhost:3000/app', {
  • Network accessline 121
    ({             id: 'source-alias',             url: 'https://localhost:3000/app',
  • Network accessline 122
    id: 'source-alias',             url: 'https://localhost:3000/app',             projectId: 'proj-123',
  • Network accessline 123
    url: 'https://localhost:3000/app',
  • Network accessline 195
    expect(target).toEqual({ projectId: 'proj-123', origin: 'http://localhost:3000' });
  • Network accessline 240
    const deps = {       now: () => 1000,       sessions: { resolve: () => ({ url: 'http://localhost:3000/', projectId: 'proj-123' }) },
  • Network accessline 241
    now: () => 1000,       sessions: { resolve: () => ({ url: 'http://localhost:3000/', projectId: 'proj-123' }) },     } as unknown as ToolDeps;
  • Network accessline 242
    sessions: { resolve: () => ({ url: 'http://localhost:3000/', projectId: 'proj-123' }) },

server/src/language/flows/flow-verify.bounded.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 65
    throw new Error('session lost');           }           return { id: 's1', url: 'http://localhost:3000/app', projectId: 'proj-123' };
  • Network accessline 66
    }           return { id: 's1', url: 'http://localhost:3000/app', projectId: 'proj-123' };         },
  • Network accessline 67
    return { id: 's1', url: 'http://localhost:3000/app', projectId: 'proj-123' };

server/src/language/flows/flow-verify.flaky.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flow-verify.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 34
    expect(leasableAppUrl(depsWithSessionUrl('http://localhost:3000/checkout?step=2'), 's1')).toBe(
  • Network accessline 35
    'http://localhost:3000',
  • Network accessline 54
    for (const runtime of ['tauri', 'electron']) {       expect(         leasableAppUrl(depsWithSessionUrl('http://127.0.0.1:3100/', runtime), 's1'),
  • Network accessline 55
    expect(         leasableAppUrl(depsWithSessionUrl('http://127.0.0.1:3100/', runtime), 's1'),       ).toBeUndefined();
  • Network accessline 56
    leasableAppUrl(depsWithSessionUrl('http://127.0.0.1:3100/', runtime), 's1'),
  • Network accessline 57
    ).toBeUndefined();     }     expect(leasableAppUrl(depsWithSessionUrl('http://127.0.0.1:3100/', 'web'), 's1')).toBe(
  • Network accessline 58
    }     expect(leasableAppUrl(depsWithSessionUrl('http://127.0.0.1:3100/', 'web'), 's1')).toBe(       'http://127.0.0.1:3100',
  • Network accessline 59
    expect(leasableAppUrl(depsWithSessionUrl('http://127.0.0.1:3100/', 'web'), 's1')).toBe(
  • Network accessline 60
    'http://127.0.0.1:3100',

server/src/language/flows/flow-wrong-version.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flows.heal.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flows.journey.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flows.recorded.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flows.scope.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flows.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flows.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/flows.worktree.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/git-since-honesty.test.ts

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 23
    import { mkdtemp, rm } from 'node:fs/promises';

server/src/language/flows/heal-not-a-rebind.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/heal-precondition.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/heal-precondition.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/heal-proposal.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/heal-provenance.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/heal-run.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/heal.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/hud-steps-not-recorded.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/learned-sources.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/learned-sources.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/learning-reaches-the-flow.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/mutation-run.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/mutation-run.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/narrow-write.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/non-english-secret-fill.test.ts

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 10
    import { mkdtemp, readFile, rm } from 'node:fs/promises';

server/src/language/flows/recorded-assertion-fidelity.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 114
    const stub: Partial<Session> = {     id: SESSION,     url: 'http://localhost:5173/app',
  • Network accessline 115
    id: SESSION,     url: 'http://localhost:5173/app',     elapsed: () => (page.clock += 10),
  • Network accessline 116
    url: 'http://localhost:5173/app',

server/src/language/flows/recording/flake.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/recording/flake.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/recording/recording-backtrack.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/recording/recording-backtrack.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/recording/replay-halt.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/recording/tape/always-recording.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/recording/tape/nested-recording.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/recording/tape/recordings.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/recording/tape/recordings.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/regression-reaches-the-caller.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/replay-ambiguous-anchor.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/replay-ambiguous-component-anchor.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/replay-ambiguous-role-anchor.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/replay-contradictions.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/replay-from-hud.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/replay-from.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 261
    describe('the page a replayed step ran on', () => {   it('is the loaded URL when the page has not navigated yet', async () => {     const session = Object.assign(new FakeSession(ALL), { url: 'http://localhost:4501/issues/7' });
  • Network accessline 262
    it('is the loaded URL when the page has not navigated yet', async () => {     const session = Object.assign(new FakeSession(ALL), { url: 'http://localhost:4501/issues/7' });     const results = await replayFlow(session, flow(['one']), waitF
  • Network accessline 263
    const session = Object.assign(new FakeSession(ALL), { url: 'http://localhost:4501/issues/7' });

server/src/language/flows/replay-halt-is-reported.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/replay-invoke.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/replay-nameless-role-anchor.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/replay-stale-ref.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/replay-stale-target.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/replay-verdict-effect.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/replay-window.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/replay.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/role-anchor-nearest.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/role-anchor-nearest.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/role-anchor-position.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/role-anchor-within.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/route-expect-roundtrip.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/save-invoke.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/sequence-ambiguous-anchor.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/sequence-burst-gap.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/sequence-expect-enforced.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/sequence-expect.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/sequence-late-anchor.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/sequence-stale-ref.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/sequence-sub-step-anchor.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/sequence-substep-own-window.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/sequence-substep-window.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/sequence-unreachable-target.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/single-replay.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/step-consequence.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/steps/page-steps.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 24
    server.listen(0, '127.0.0.1', resolve);   });   origin = `http://127.0.0.1:${String((server.address() as AddressInfo).port)}`;
  • Network accessline 25
    });   origin = `http://127.0.0.1:${String((server.address() as AddressInfo).port)}`; });
  • Network accessline 26
    origin = `http://127.0.0.1:${String((server.address() as AddressInfo).port)}`;
  • Network accessline 67
    const before = seen.length;     const send = requestSender(() => `${origin}/`, provider);     const answer = await send({ method: 'GET', url: 'http://example.com/steal' });
  • Network accessline 68
    const send = requestSender(() => `${origin}/`, provider);     const answer = await send({ method: 'GET', url: 'http://example.com/steal' });     expect('error' in answer).toBe(true);
  • Network accessline 69
    const answer = await send({ method: 'GET', url: 'http://example.com/steal' });

server/src/language/flows/steps/page-steps.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 35
    [Credential-related source omitted]
  • Network accessline 254
    }     try {       const answer = await fetch(target, {
  • Network accessline 255
    try {       const answer = await fetch(target, {         method: request.method,
  • Network accessline 256
    const answer = await fetch(target, {

server/src/language/flows/stores/annotation-store.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/stores/assertion-tiers-store.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/stores/assertion-tiers-store.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/stores/flake-store.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/stores/flake-store.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/suite-coverage.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/suite-isolation.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/suite-selection.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/suite-unknown-name.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/suite/coverage.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/suite/coverage.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/suite/parallel-suite.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/suite/parallel-suite.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/suite/sequential-run.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/suite/sequential-run.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/suite/server-verify.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 10
    [Credential-related source omitted]
  • Network accessline 13
    it('returns null when not attached (no config) — caller falls back to local', async () => {     const out = await submitServerVerification(       { previewUrl: 'https://app.test', flows: ['a'], source: 's' },
  • Network accessline 14
    const out = await submitServerVerification(       { previewUrl: 'https://app.test', flows: ['a'], source: 's' },       null,
  • Network accessline 15
    { previewUrl: 'https://app.test', flows: ['a'], source: 's' },
  • Network accessline 28
    };     const out = await submitServerVerification(       { previewUrl: 'https://app.test', flows: ['checkout'], source: 's' },
  • Network accessline 29
    const out = await submitServerVerification(       { previewUrl: 'https://app.test', flows: ['checkout'], source: 's' },       CONFIG,
  • Network accessline 30
    { previewUrl: 'https://app.test', flows: ['checkout'], source: 's' },
  • Network accessline 38
    it('returns null on a non-ok response (best-effort, never throws)', async () => {     const out = await submitServerVerification(       { previewUrl: 'https://app.test', flows: [], source: 's' },
  • Network accessline 39
    const out = await submitServerVerification(       { previewUrl: 'https://app.test', flows: [], source: 's' },       CONFIG,
  • Network accessline 40
    { previewUrl: 'https://app.test', flows: [], source: 's' },
  • Network accessline 47
    it('returns null when the response shape is unexpected (boundary-validated)', async () => {     const out = await submitServerVerification(       { previewUrl: 'https://app.test', flows: [], source: 's' },
  • Network accessline 48
    const out = await submitServerVerification(       { previewUrl: 'https://app.test', flows: [], source: 's' },       CONFIG,
  • Network accessline 49
    { previewUrl: 'https://app.test', flows: [], source: 's' },

server/src/language/flows/suite/server-verify.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/suite/suite-flakes.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/suite/suite-flakes.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/sweep-continues-past-consequence.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/testid-position.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/tools.flow-replay.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 393
    const session: Partial<Session> = {       id: 'old',       url: 'http://localhost:3000/home',
  • Network accessline 394
    id: 'old',       url: 'http://localhost:3000/home',       elapsed: () => 0,
  • Network accessline 395
    url: 'http://localhost:3000/home',
  • Network accessline 586
    const session: Partial<Session> = {       id: 'old',       url: 'http://localhost:3000/settings',
  • Network accessline 587
    id: 'old',       url: 'http://localhost:3000/settings',       elapsed: () => 0,
  • Network accessline 588
    url: 'http://localhost:3000/settings',

server/src/language/flows/tools.flows.test.ts

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 350
    * as a successful cleanup. That is the behaviour worth pinning — a `rm -f` shape would have been

server/src/language/flows/verdicted-capture.test.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/verify-change-project-scope.test.ts

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 27
    import { mkdtemp, rm } from 'node:fs/promises';

server/src/language/flows/verify-change-tools.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 275
    data: {         method: 'POST',         url: 'https://app.test/api/background',
  • Network accessline 276
    method: 'POST',         url: 'https://app.test/api/background',         status: 200,
  • Network accessline 277
    url: 'https://app.test/api/background',

server/src/language/flows/verify-change-tools.ts

  • Executable scriptline 1
    Executable file

server/src/language/flows/verify-change-unverifiable.test.ts

  • Executable scriptline 1
    Executable file

server/src/launch-chromium.test.ts

  • Executable scriptline 1
    Executable file

server/src/launch-chromium.ts

  • Executable scriptline 1
    Executable file

server/src/library-path-boundary.test.ts

  • Executable scriptline 1
    Executable file

server/src/log.test.ts

  • Executable scriptline 1
    Executable file

server/src/log.ts

  • Executable scriptline 1
    Executable file

server/src/loopback-agent.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 46
    const port = (server.address() as AddressInfo).port;   const started: Started = {     url: `http://127.0.0.1:${String(port)}/message`,
  • Network accessline 47
    const started: Started = {     url: `http://127.0.0.1:${String(port)}/message`,     connections: () => connections,
  • Network accessline 48
    url: `http://127.0.0.1:${String(port)}/message`,     connections: () => connections,     requests: () => requests,

server/src/loose-scripts.test.ts

  • Executable scriptline 1
    Executable file

server/src/machine/clock.ts

  • Executable scriptline 1
    Executable file

server/src/machine/git-tracks.ts

  • Executable scriptline 1
    Executable file

server/src/machine/platform.ts

  • Executable scriptline 1
    Executable file

server/src/machine/repo-root.ts

  • Executable scriptline 1
    Executable file

server/src/machine/temp-dir.ts

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 21
    import { rm } from 'node:fs/promises';

server/src/mcp-http-transport.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 213
    expect(frame.data.startsWith(MCP_MESSAGE_PATH)).toBe(true);     const sessionId = new URL(frame.data, 'http://127.0.0.1').searchParams.get('sessionId');
  • Network accessline 214
    const sessionId = new URL(frame.data, 'http://127.0.0.1').searchParams.get('sessionId');

server/src/memory/cloud/account-state.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 34
    const SESSION = {   url: 'https://app.reticle.sh',
  • Network accessline 35
    url: 'https://app.reticle.sh',
  • Network accessline 47
    expect(state.signedIn).toBe(true);     expect(state.org).toBe('Acme');     expect(state.host).toBe('https://app.reticle.sh');
  • Network accessline 48
    expect(state.org).toBe('Acme');     expect(state.host).toBe('https://app.reticle.sh');   });
  • Network accessline 49
    expect(state.host).toBe('https://app.reticle.sh');
  • Access to secretsline 52
    [Credential-related source omitted]
  • Network accessline 53
    [Credential-related source omitted]
  • Network accessline 54
    [Credential-related source omitted]
  • Access to secretsline 54
    [Credential-related source omitted]
  • Network accessline 55
    RETICLE_CLOUD_URL: 'https://reticle.internal',
  • Network accessline 57
    expect(state.signedIn).toBe(true);     expect(state.host, 'a self-hosted install is not app.reticle.sh').toBe(       'https://reticle.internal',
  • Network accessline 58
    expect(state.host, 'a self-hosted install is not app.reticle.sh').toBe(       'https://reticle.internal',     );
  • Network accessline 59
    'https://reticle.internal',
  • Network accessline 66
    [Credential-related source omitted]
  • Network accessline 67
    [Credential-related source omitted]
  • Network accessline 68
    [Credential-related source omitted]
  • Access to secretsline 68
    [Credential-related source omitted]
  • Network accessline 79
    expect(       readAccountState(tempHome({ url: 'https://app.reticle.sh', orgName: 'Acme' }), {}),
  • Network accessline 80
    readAccountState(tempHome({ url: 'https://app.reticle.sh', orgName: 'Acme' }), {}),
  • Network accessline 94
    [Credential-related source omitted]
  • Network accessline 95
    [Credential-related source omitted]
  • Access to secretsline 95
    [Credential-related source omitted]
  • Network accessline 96
    RETICLE_CLOUD_URL: 'https://reticle.internal',
  • Network accessline 97
    });     expect(state.host).toBe('https://reticle.internal');   });
  • Network accessline 98
    expect(state.host).toBe('https://reticle.internal');
  • Network accessline 111
    const state = readAccountState('/home', {       RETICLE_CLOUD_KEY: 'rk_live_legacy',       RETICLE_CLOUD_URL: 'https://app.reticle.sh',
  • Network accessline 112
    RETICLE_CLOUD_KEY: 'rk_live_legacy',       RETICLE_CLOUD_URL: 'https://app.reticle.sh',     });
  • Network accessline 113
    RETICLE_CLOUD_URL: 'https://app.reticle.sh',
  • Network accessline 114
    });     expect(state.signedIn).toBe(true);     expect(state.host).toBe('https://app.reticle.sh');
  • Network accessline 115
    expect(state.signedIn).toBe(true);     expect(state.host).toBe('https://app.reticle.sh');   });
  • Network accessline 116
    expect(state.host).toBe('https://app.reticle.sh');

server/src/memory/cloud/account-state.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 5
    [Credential-related source omitted]

server/src/memory/cloud/background-sync.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 25
    const URL_LINKED = 'http://localhost:8890';
  • Network accessline 217
    [Credential-related source omitted]
  • Access to secretsline 217
    [Credential-related source omitted]
  • Access to secretsline 309
    [Credential-related source omitted]
  • Access to secretsline 314
    [Credential-related source omitted]

server/src/memory/cloud/background-sync.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 13
    [Credential-related source omitted]
  • Access to secretsline 110
    [Credential-related source omitted]

server/src/memory/cloud/cloud-config.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 53
    describe('a project that opted out of run sync', () => {     it('gives verify no cloud to push runs to, while the credential itself still resolves', async () => {       await writeLink({ projectId: 'web', url: 'https://cloud.test', sync: { 
  • Network accessline 54
    it('gives verify no cloud to push runs to, while the credential itself still resolves', async () => {       await writeLink({ projectId: 'web', url: 'https://cloud.test', sync: { runs: false } });       await writeCreds({ 'https://cloud.tes
  • Network accessline 55
    await writeLink({ projectId: 'web', url: 'https://cloud.test', sync: { runs: false } });
  • Network accessline 56
    await writeCreds({ 'https://cloud.test::web': 'rk_live_web' });
  • Network accessline 61
    it("resolves a tab's own .reticle when asked for it, not the daemon's", async () => {       await writeLink({ projectId: 'web', url: 'https://cloud.test' });
  • Network accessline 62
    await writeLink({ projectId: 'web', url: 'https://cloud.test' });
  • Network accessline 63
    await writeCreds({ 'https://cloud.test::web': 'rk_live_web' });
  • Network accessline 70
    it('keeps pushing runs for a project that did not opt out', async () => {       await writeLink({ projectId: 'web', url: 'https://cloud.test' });
  • Network accessline 71
    await writeLink({ projectId: 'web', url: 'https://cloud.test' });
  • Network accessline 72
    await writeCreds({ 'https://cloud.test::web': 'rk_live_web' });
  • Network accessline 91
    `gitdir: ${join(dir, 'proj', '.git', 'worktrees', 'wt')}\n`,       );       await writeLink({ projectId: 'web', url: 'https://cloud.test' });
  • Network accessline 92
    );       await writeLink({ projectId: 'web', url: 'https://cloud.test' });       await writeCreds({ 'https://cloud.test::web': 'rk_live_web' });
  • Network accessline 93
    await writeLink({ projectId: 'web', url: 'https://cloud.test' });
  • Network accessline 94
    await writeCreds({ 'https://cloud.test::web': 'rk_live_web' });
  • Network accessline 102
    describe('two tenants on one cloud', () => {     const URL = 'https://cloud.test';
  • Network accessline 103
    const URL = 'https://cloud.test';
  • Network accessline 136
    it('falls back to env creds when the project has no cloud.json (single-project / CI)', async () => {     const withEnv = { RETICLE_CLOUD_URL: 'https://cloud.test', RETICLE_CLOUD_KEY: 'rk_live_env' };
  • Network accessline 137
    const withEnv = { RETICLE_CLOUD_URL: 'https://cloud.test', RETICLE_CLOUD_KEY: 'rk_live_env' };
  • Network accessline 138
    [Credential-related source omitted]
  • Network accessline 139
    [Credential-related source omitted]
  • Network accessline 151
    it('resolves url from cloud.json + key from the user keystore (secret stays out of the repo)', async () => {     await writeLink({ projectId: 'shop', url: 'https://cloud.test/' });
  • Network accessline 152
    await writeLink({ projectId: 'shop', url: 'https://cloud.test/' });
  • Network accessline 153
    [Credential-related source omitted]
  • Network accessline 154
    [Credential-related source omitted]
  • Network accessline 155
    [Credential-related source omitted]
  • Network accessline 159
    it('reports cloud NOT attached when linked but no credential exists for the project', async () => {     await writeLink({ projectId: 'shop', url: 'https://cloud.test' });
  • Network accessline 160
    await writeLink({ projectId: 'shop', url: 'https://cloud.test' });
  • Network accessline 168
    await writeLink({       projectId: 'shop',       url: 'https://cloud.test',
  • Network accessline 169
    projectId: 'shop',       url: 'https://cloud.test',       sync: { runs: false, memory: false, flows: true },
  • Network accessline 170
    url: 'https://cloud.test',
  • Network accessline 190
    it('sends screenshots with runs unless the link turns them off on their own', async () => {     await writeLink({ projectId: 'shop', url: 'https://cloud.test', sync: { screenshots: false } });
  • Network accessline 191
    await writeLink({ projectId: 'shop', url: 'https://cloud.test', sync: { screenshots: false } });
  • Network accessline 197
    it('sends the frames between steps unless the link turns video off, and follows screenshots', async () => {     await writeLink({ projectId: 'shop', url: 'https://cloud.test', sync: { video: false } });
  • Network accessline 198
    await writeLink({ projectId: 'shop', url: 'https://cloud.test', sync: { video: false } });
  • Network accessline 200
    const off = await resolveProjectCloud(fs, reticleRoot, homeDir, env);     expect(off.policy).toMatchObject({ screenshots: true, video: false });     await writeLink({ projectId: 'shop', url: 'https://cloud.test', sync: { screenshots: false 
  • Network accessline 201
    expect(off.policy).toMatchObject({ screenshots: true, video: false });     await writeLink({ projectId: 'shop', url: 'https://cloud.test', sync: { screenshots: false } });     const quiet = await resolveProjectCloud(fs, reticleRoot, homeDir
  • Network accessline 202
    await writeLink({ projectId: 'shop', url: 'https://cloud.test', sync: { screenshots: false } });
  • Network accessline 207
    it('parses verify:server and defaults verify to local otherwise', async () => {     await writeLink({ projectId: 'shop', url: 'https://cloud.test', verify: 'server' });
  • Network accessline 208
    await writeLink({ projectId: 'shop', url: 'https://cloud.test', verify: 'server' });
  • Network accessline 212
    await writeLink({ projectId: 'shop', url: 'https://cloud.test' });
  • Network accessline 216
    it('a malformed cloud.json degrades to the env fallback (never throws)', async () => {     await writeFile(join(reticleRoot, CLOUD_LINK_FILE), '{ not valid json');     const withEnv = { RETICLE_CLOUD_URL: 'https://cloud.test', RETICLE_CLOUD
  • Network accessline 217
    await writeFile(join(reticleRoot, CLOUD_LINK_FILE), '{ not valid json');     const withEnv = { RETICLE_CLOUD_URL: 'https://cloud.test', RETICLE_CLOUD_KEY: 'rk_live_env' };     const cloud = await resolveProjectCloud(fs, reticleRoot, homeDir
  • Network accessline 218
    const withEnv = { RETICLE_CLOUD_URL: 'https://cloud.test', RETICLE_CLOUD_KEY: 'rk_live_env' };
  • Network accessline 219
    [Credential-related source omitted]
  • Network accessline 220
    [Credential-related source omitted]
  • Network accessline 236
    */     it('refuses a key stamped with a different cloud, even when the project ids match', async () => {       await writeLink({ projectId: 'default', url: 'http://localhost:8890' });
  • Network accessline 237
    it('refuses a key stamped with a different cloud, even when the project ids match', async () => {       await writeLink({ projectId: 'default', url: 'http://localhost:8890' });       await writeCreds({ default: { key: 'rk_live_prod', url: '
  • Network accessline 238
    await writeLink({ projectId: 'default', url: 'http://localhost:8890' });
  • Network accessline 239
    await writeCreds({ default: { key: 'rk_live_prod', url: 'https://app.reticle.sh' } });
  • Network accessline 246
    it('uses a key stamped with the SAME cloud', async () => {       await writeLink({ projectId: 'default', url: 'http://localhost:8890' });
  • Network accessline 247
    await writeLink({ projectId: 'default', url: 'http://localhost:8890' });
  • Network accessline 248
    await writeCreds({ default: { key: 'rk_live_local', url: 'http://localhost:8890' } });
  • Network accessline 255
    it('ignores a trailing slash when comparing clouds', async () => {       await writeLink({ projectId: 'default', url: 'https://app.reticle.sh' });
  • Network accessline 256
    await writeLink({ projectId: 'default', url: 'https://app.reticle.sh' });
  • Network accessline 257
    await writeCreds({ default: { key: 'rk_live_prod', url: 'https://app.reticle.sh/' } });
  • Network accessline 267
    await writeLink({ projectId: 'default', url: 'http://localhost:8890' });
  • Network accessline 268
    await writeCreds({         'http://localhost:8890::default': 'rk_live_local',         'https://app.reticle.sh::default': 'rk_live_prod',
  • Network accessline 269
    'http://localhost:8890::default': 'rk_live_local',
  • Network accessline 270
    'https://app.reticle.sh::default': 'rk_live_prod',
  • Network accessline 278
    it('prefers the composite slot over an ambiguous legacy one', async () => {       await writeLink({ projectId: 'default', url: 'http://localhost:8890' });
  • Network accessline 279
    await writeLink({ projectId: 'default', url: 'http://localhost:8890' });
  • Network accessline 280
    await writeCreds({         'http://localhost:8890::default': 'rk_live_right',         default: 'rk_live_ambiguous',
  • Network accessline 281
    'http://localhost:8890::default': 'rk_live_right',
  • Network accessline 293
    await writeLink({ projectId: 'default', url: 'http://localhost:8890' });
  • Access to secretsline 304
    [Credential-related source omitted]
  • Network accessline 306
    */   describe('the environment key, for a machine with no keystore', () => {     const HOSTED = 'https://app.reticle.sh';
  • Network accessline 308
    const HOSTED = 'https://app.reticle.sh';
  • Access to secretsline 310
    [Credential-related source omitted]
  • Access to secretsline 313
    [Credential-related source omitted]
  • Access to secretsline 320
    [Credential-related source omitted]
  • Network accessline 321
    it('says the exported key is for another host when that is why it did not attach', async () => {       await writeLink({ projectId: 'shop', url: 'http://localhost:8890' });
  • Network accessline 322
    await writeLink({ projectId: 'shop', url: 'http://localhost:8890' });
  • Access to secretsline 324
    [Credential-related source omitted]
  • Network accessline 325
    });       expect(cloud.config).toBeNull();       expect(cloud.reason).toContain('http://localhost:8890');
  • Network accessline 326
    expect(cloud.config).toBeNull();       expect(cloud.reason).toContain('http://localhost:8890');       expect(cloud.reason).toContain(HOSTED);
  • Network accessline 327
    expect(cloud.reason).toContain('http://localhost:8890');
  • Network accessline 328
    expect(cloud.reason).toContain(HOSTED);       expect(cloud.reason).toContain('RETICLE_CLOUD_URL=http://localhost:8890');     });
  • Network accessline 329
    expect(cloud.reason).toContain('RETICLE_CLOUD_URL=http://localhost:8890');
  • Access to secretsline 332
    [Credential-related source omitted]
  • Access to secretsline 337
    [Credential-related source omitted]
  • Access to secretsline 340
    [Credential-related source omitted]
  • Access to secretsline 342
    [Credential-related source omitted]
  • Access to secretsline 352
    [Credential-related source omitted]
  • Access to secretsline 359
    [Credential-related source omitted]
  • Access to secretsline 364
    [Credential-related source omitted]
  • Network accessline 370
    [Credential-related source omitted]
  • Network accessline 371
    [Credential-related source omitted]
  • Access to secretsline 371
    [Credential-related source omitted]
  • Network accessline 372
    RETICLE_URL: 'https://self.test/',
  • Network accessline 373
    [Credential-related source omitted]
  • Network accessline 374
    [Credential-related source omitted]
  • Access to secretsline 381
    [Credential-related source omitted]
  • Network accessline 388
    await writeLink({ projectId: 'shop', url: 'http://localhost:8890' });
  • Access to secretsline 390
    [Credential-related source omitted]
  • Network accessline 395
    it('uses the environment key for a self-hosted link when the URL names that host', async () => {       await writeLink({ projectId: 'shop', url: 'http://localhost:8890/' });
  • Network accessline 396
    await writeLink({ projectId: 'shop', url: 'http://localhost:8890/' });
  • Network accessline 397
    [Credential-related source omitted]
  • Network accessline 398
    [Credential-related source omitted]
  • Access to secretsline 398
    [Credential-related source omitted]
  • Network accessline 399
    RETICLE_CLOUD_URL: 'http://localhost:8890',
  • Network accessline 400
    [Credential-related source omitted]
  • Network accessline 401
    [Credential-related source omitted]
  • Network accessline 410
    describe('the environment the platform readers are handed', () => {     it("fills in the linked repo's stored credential", async () => {       await writeLink({ projectId: 'shop', url: 'https://cloud.test' });
  • Network accessline 411
    it("fills in the linked repo's stored credential", async () => {       await writeLink({ projectId: 'shop', url: 'https://cloud.test' });       await writeCreds({ shop: 'rk_stored' });
  • Network accessline 412
    await writeLink({ projectId: 'shop', url: 'https://cloud.test' });
  • Network accessline 416
    [Credential-related source omitted]
  • Network accessline 417
    [Credential-related source omitted]
  • Access to secretsline 417
    [Credential-related source omitted]
  • Network accessline 418
    RETICLE_CLOUD_URL: 'https://cloud.test',

server/src/memory/cloud/cloud-config.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 223
    /** Trailing slashes are not identity: `https://x/` and `https://x` are one cloud. */
  • Access to secretsline 261
    [Credential-related source omitted]
  • Access to secretsline 296
    [Credential-related source omitted]
  • Access to secretsline 299
    [Credential-related source omitted]
  • Access to secretsline 303
    [Credential-related source omitted]
  • Access to secretsline 368
    [Credential-related source omitted]

server/src/memory/cloud/cloud-sync.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 52
    it('returns null (sync disabled) without a key', () => {     expect(resolveCloudConfig({})).toBeNull();     expect(resolveCloudConfig({ [CloudEnv.URL]: 'https://cloud.test' })).toBeNull();
  • Network accessline 53
    expect(resolveCloudConfig({})).toBeNull();     expect(resolveCloudConfig({ [CloudEnv.URL]: 'https://cloud.test' })).toBeNull();   });
  • Network accessline 54
    expect(resolveCloudConfig({ [CloudEnv.URL]: 'https://cloud.test' })).toBeNull();
  • Network accessline 64
    it('resolves + trims a trailing slash when both are set (logged in)', () => {     const cfg = resolveCloudConfig({       [CloudEnv.URL]: 'https://cloud.test/',
  • Network accessline 65
    const cfg = resolveCloudConfig({       [CloudEnv.URL]: 'https://cloud.test/',       [CloudEnv.KEY]: 'rk_live_x',
  • Network accessline 66
    [CloudEnv.URL]: 'https://cloud.test/',
  • Network accessline 67
    [Credential-related source omitted]
  • Network accessline 68
    [Credential-related source omitted]
  • Network accessline 69
    [Credential-related source omitted]
  • Network accessline 72
    it('accepts RETICLE_URL as the host', () => {     const cfg = resolveCloudConfig({       RETICLE_URL: 'https://short.test',
  • Network accessline 73
    const cfg = resolveCloudConfig({       RETICLE_URL: 'https://short.test',       [CloudEnv.KEY]: 'rk_live_x',
  • Network accessline 74
    RETICLE_URL: 'https://short.test',
  • Network accessline 75
    [Credential-related source omitted]
  • Network accessline 76
    [Credential-related source omitted]
  • Network accessline 77
    [Credential-related source omitted]
  • Network accessline 91
    [Credential-related source omitted]
  • Network accessline 92
    [Credential-related source omitted]
  • Network accessline 93
    [Credential-related source omitted]
  • Network accessline 97
    expect(res.outcome).toBe(SyncOutcome.SYNCED);     const [url, init] = fetchImpl.mock.calls[0] ?? [];     expect(url).toBe('https://cloud.test/v1/flows');
  • Network accessline 98
    const [url, init] = fetchImpl.mock.calls[0] ?? [];     expect(url).toBe('https://cloud.test/v1/flows');     expect(init?.headers.authorization).toBe('Bearer rk_live_x');
  • Network accessline 99
    expect(url).toBe('https://cloud.test/v1/flows');
  • Network accessline 105
    [Credential-related source omitted]
  • Network accessline 106
    [Credential-related source omitted]
  • Network accessline 107
    [Credential-related source omitted]
  • Network accessline 108
    [Credential-related source omitted]
  • Network accessline 109
    [Credential-related source omitted]
  • Network accessline 110
    [Credential-related source omitted]
  • Network accessline 126
    [Credential-related source omitted]
  • Network accessline 127
    [Credential-related source omitted]
  • Network accessline 128
    [Credential-related source omitted]
  • Network accessline 131
    expect(res.outcome).toBe(SyncOutcome.SYNCED);     const [url, init] = fetchImpl.mock.calls[0] ?? [];     expect(url).toBe('https://cloud.test/v1/runs');
  • Network accessline 132
    const [url, init] = fetchImpl.mock.calls[0] ?? [];     expect(url).toBe('https://cloud.test/v1/runs');     expect(init?.headers.authorization).toBe('Bearer rk_live_x');
  • Network accessline 133
    expect(url).toBe('https://cloud.test/v1/runs');
  • Network accessline 139
    [Credential-related source omitted]
  • Network accessline 140
    [Credential-related source omitted]
  • Network accessline 141
    [Credential-related source omitted]
  • Network accessline 143
    [Credential-related source omitted]
  • Network accessline 144
    [Credential-related source omitted]
  • Network accessline 145
    [Credential-related source omitted]
  • Network accessline 170
    [Credential-related source omitted]
  • Network accessline 171
    [Credential-related source omitted]
  • Network accessline 172
    [Credential-related source omitted]
  • Network accessline 175
    expect(res.outcome).toBe(SyncOutcome.SYNCED);     const [url, init] = fetchImpl.mock.calls[0] ?? [];     expect(url).toBe('https://cloud.test/v1/project/runs');
  • Network accessline 176
    const [url, init] = fetchImpl.mock.calls[0] ?? [];     expect(url).toBe('https://cloud.test/v1/project/runs');     expect(init?.headers.authorization).toBe('Bearer rk_live_x');
  • Network accessline 177
    expect(url).toBe('https://cloud.test/v1/project/runs');
  • Network accessline 189
    [Credential-related source omitted]
  • Network accessline 190
    [Credential-related source omitted]
  • Network accessline 191
    [Credential-related source omitted]
  • Network accessline 194
    [Credential-related source omitted]
  • Network accessline 195
    [Credential-related source omitted]
  • Network accessline 196
    [Credential-related source omitted]
  • Network accessline 213
    [Credential-related source omitted]
  • Network accessline 214
    [Credential-related source omitted]
  • Network accessline 215
    [Credential-related source omitted]
  • Network accessline 219
    expect(got).toEqual(report);     const [url, init] = fetchImpl.mock.calls[0] ?? [];     expect(url).toBe('https://cloud.test/v1/project/regression?projectId=proj-1');
  • Network accessline 220
    const [url, init] = fetchImpl.mock.calls[0] ?? [];     expect(url).toBe('https://cloud.test/v1/project/regression?projectId=proj-1');     expect(init?.method).toBe('GET');
  • Network accessline 221
    expect(url).toBe('https://cloud.test/v1/project/regression?projectId=proj-1');
  • Network accessline 229
    [Credential-related source omitted]
  • Network accessline 230
    [Credential-related source omitted]
  • Network accessline 231
    [Credential-related source omitted]
  • Network accessline 233
    [Credential-related source omitted]
  • Network accessline 234
    [Credential-related source omitted]
  • Network accessline 235
    [Credential-related source omitted]
  • Network accessline 266
    const error: unknown = await cloudFetch('https://app.reticle.sh/v1/keys', {
  • Access to secretsline 277
    [Credential-related source omitted]
  • Network accessline 286
    return Promise.resolve(new Response('{}', { status: 200 }));     });     await cloudFetch('https://cloud.example/v1/flows', { method: 'GET', headers: {} });
  • Network accessline 287
    });     await cloudFetch('https://cloud.example/v1/flows', { method: 'GET', headers: {} });     expect(seen.signal).toBeInstanceOf(AbortSignal);
  • Network accessline 288
    await cloudFetch('https://cloud.example/v1/flows', { method: 'GET', headers: {} });
  • Network accessline 294
    vi.stubGlobal('fetch', stalledFetch);     await expect(       cloudFetch('https://cloud.example/v1/verifications', { method: 'GET', headers: {} }, 1),
  • Network accessline 295
    await expect(       cloudFetch('https://cloud.example/v1/verifications', { method: 'GET', headers: {} }, 1),     ).rejects.toThrow();
  • Network accessline 296
    cloudFetch('https://cloud.example/v1/verifications', { method: 'GET', headers: {} }, 1),
  • Network accessline 301
    vi.stubGlobal('fetch', stalledFetch);     const error: unknown = await cloudFetch(       'https://cloud.example/v1/runs',
  • Network accessline 302
    const error: unknown = await cloudFetch(       'https://cloud.example/v1/runs',       { method: 'POST', headers: {}, body: '{}' },
  • Network accessline 303
    'https://cloud.example/v1/runs',
  • Network accessline 307
    const message = error instanceof Error ? error.message : String(error);     expect(message).toMatch(/timed out/);     expect(message).toContain('https://cloud.example/v1/runs');
  • Network accessline 308
    expect(message).toMatch(/timed out/);     expect(message).toContain('https://cloud.example/v1/runs');     expect(message).toContain(CloudEnv.URL);
  • Network accessline 309
    expect(message).toContain('https://cloud.example/v1/runs');
  • Network accessline 315
    vi.stubGlobal('fetch', () => Promise.reject(new Error('getaddrinfo ENOTFOUND cloud.example')));     await expect(       cloudFetch('https://cloud.example/v1/runs', { method: 'GET', headers: {} }),
  • Network accessline 316
    await expect(       cloudFetch('https://cloud.example/v1/runs', { method: 'GET', headers: {} }),     ).rejects.toThrow('getaddrinfo ENOTFOUND cloud.example');
  • Network accessline 317
    cloudFetch('https://cloud.example/v1/runs', { method: 'GET', headers: {} }),

server/src/memory/cloud/cloud-sync.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 31
    [Credential-related source omitted]
  • Network accessline 115
    assertSendableHeaders(init.headers);   try {     return await fetch(url, { ...init, signal: AbortSignal.timeout(timeoutMs) });
  • Network accessline 116
    try {     return await fetch(url, { ...init, signal: AbortSignal.timeout(timeoutMs) });   } catch (err) {
  • Network accessline 117
    return await fetch(url, { ...init, signal: AbortSignal.timeout(timeoutMs) });
  • Network accessline 165
    /** GET-shaped fetch (no body, reads back JSON), injected so the read is testable without a network. */

server/src/memory/cloud/harness-config.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/cloud/harness-config.ts

  • Executable scriptline 1
    Executable file

server/src/memory/cloud/harness-switch.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 18
    [Credential-related source omitted]
  • Access to secretsline 18
    [Credential-related source omitted]
  • Network accessline 24
    await writeHarnessSwitch(ENV, false, doFetch);     expect(doFetch).toHaveBeenCalledWith(       'https://api.test/v1/model/config',
  • Network accessline 25
    expect(doFetch).toHaveBeenCalledWith(       'https://api.test/v1/model/config',       expect.objectContaining({ method: 'PUT' }),
  • Network accessline 26
    'https://api.test/v1/model/config',
  • Access to secretsline 58
    [Credential-related source omitted]
  • Network accessline 62
    it.each([['there is no key', { [ReticleEnv.CLOUD_URL]: 'https://api.test' }]])(

server/src/memory/cloud/harness-switch.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 39
    env: Record<string, string | undefined>,   enabled: boolean,   doFetch: SwitchFetch = (url, init) => fetch(url, init),
  • Network accessline 40
    enabled: boolean,   doFetch: SwitchFetch = (url, init) => fetch(url, init),   timeoutMs: number = TIMEOUT_MS,
  • Network accessline 41
    doFetch: SwitchFetch = (url, init) => fetch(url, init),

server/src/memory/cloud/hud-notices-source.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/cloud/hud-notices-source.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 59
    const defaultLoad: NoticesLoad = async (url, etag) => {   const res = await fetch(url, {
  • Network accessline 60
    const res = await fetch(url, {

server/src/memory/cloud/memory-read-headers.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/cloud/memory-scope.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 23
    const BASE = 'https://cloud.test';
  • Network accessline 280
    c2: page(['d']),     };     const body = await readMemoryPages('https://cloud.test', { projectId: 'p1' }, (url) => {
  • Network accessline 281
    };     const body = await readMemoryPages('https://cloud.test', { projectId: 'p1' }, (url) => {       asked.push(url);
  • Network accessline 282
    const body = await readMemoryPages('https://cloud.test', { projectId: 'p1' }, (url) => {
  • Network accessline 293
    it('reads once from a server that does not page', async () => {     let calls = 0;     const body = await readMemoryPages('https://cloud.test', { projectId: 'p1' }, () => {
  • Network accessline 294
    let calls = 0;     const body = await readMemoryPages('https://cloud.test', { projectId: 'p1' }, () => {       calls += 1;
  • Network accessline 295
    const body = await readMemoryPages('https://cloud.test', { projectId: 'p1' }, () => {
  • Network accessline 303
    it('hands back a page that is not this project, so the reader refuses it', async () => {     const body = await readMemoryPages('https://cloud.test', { projectId: 'p1' }, (url) =>
  • Network accessline 304
    const body = await readMemoryPages('https://cloud.test', { projectId: 'p1' }, (url) =>

server/src/memory/cloud/memory-scope.ts

  • Executable scriptline 1
    Executable file

server/src/memory/cloud/progress-reporter.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 28
    [Credential-related source omitted]
  • Network accessline 50
    const res = await syncProgressToCloud('s1', [event(VerifyPhase.GRADING)], CONFIG, fetchImpl);     expect(res.outcome).toBe(SyncOutcome.SYNCED);     expect(sent[0]?.url).toBe('https://cloud.test/v1/connect/progress');
  • Network accessline 51
    expect(res.outcome).toBe(SyncOutcome.SYNCED);     expect(sent[0]?.url).toBe('https://cloud.test/v1/connect/progress');     expect(sent[0]?.init.headers['authorization']).toBe('Bearer rk_live_x');
  • Network accessline 52
    expect(sent[0]?.url).toBe('https://cloud.test/v1/connect/progress');

server/src/memory/cloud/run-closing-claim.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/cloud/sync-answer.ts

  • Executable scriptline 1
    Executable file

server/src/memory/cloud/sync-cycle.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 117
    [Credential-related source omitted]
  • Network accessline 118
    [Credential-related source omitted]
  • Network accessline 119
    [Credential-related source omitted]
  • Network accessline 989
    const { report } = await cycle({ throwOn: '/v1/sync/status' });     expect(report.error).toContain('https://cloud.test');
  • Network accessline 990
    expect(report.error).toContain('https://cloud.test');
  • Network accessline 1000
    [Credential-related source omitted]
  • Network accessline 1001
    [Credential-related source omitted]
  • Network accessline 1002
    [Credential-related source omitted]
  • Network accessline 1017
    [Credential-related source omitted]
  • Network accessline 1018
    [Credential-related source omitted]
  • Network accessline 1019
    [Credential-related source omitted]
  • Network accessline 1029
    ),     });     expect(report.error).toBe('fetch failed — ENOTFOUND (https://cloud.test)');
  • Network accessline 1030
    });     expect(report.error).toBe('fetch failed — ENOTFOUND (https://cloud.test)');   });
  • Network accessline 1031
    expect(report.error).toBe('fetch failed — ENOTFOUND (https://cloud.test)');
  • Network accessline 1083
    [Credential-related source omitted]
  • Network accessline 1084
    [Credential-related source omitted]
  • Network accessline 1085
    [Credential-related source omitted]
  • Network accessline 1520
    source({ runs: () => [run], screenshot: () => image }),     );     const paths = calls.map((c) => c.url.replace('https://cloud.test', ''));
  • Network accessline 1521
    );     const paths = calls.map((c) => c.url.replace('https://cloud.test', ''));     expect(paths.indexOf('/v1/runs/a/screenshots')).toBeGreaterThan(paths.indexOf('/v1/sync'));
  • Network accessline 1522
    const paths = calls.map((c) => c.url.replace('https://cloud.test', ''));
  • Network accessline 1537
    */ describe('a folder re-linked to another workspace', () => {   const OLD = 'https://cloud.test::org::dana::app';
  • Network accessline 1538
    describe('a folder re-linked to another workspace', () => {   const OLD = 'https://cloud.test::org::dana::app';   const NEW = 'https://cloud.test::org::bigco::bigco-console';
  • Network accessline 1539
    const OLD = 'https://cloud.test::org::dana::app';
  • Network accessline 1540
    const NEW = 'https://cloud.test::org::bigco::bigco-console';
  • Network accessline 1545
    [Credential-related source omitted]
  • Network accessline 1546
    [Credential-related source omitted]
  • Network accessline 1547
    [Credential-related source omitted]
  • Network accessline 1595
    [Credential-related source omitted]
  • Network accessline 1596
    [Credential-related source omitted]
  • Network accessline 1597
    [Credential-related source omitted]
  • Network accessline 1615
    [Credential-related source omitted]
  • Network accessline 1616
    [Credential-related source omitted]
  • Network accessline 1617
    [Credential-related source omitted]
  • Network accessline 1665
    [Credential-related source omitted]
  • Network accessline 1666
    [Credential-related source omitted]
  • Network accessline 1667
    [Credential-related source omitted]
  • Network accessline 1683
    const after = await run(first.written.state ?? {}, [A], 'shop');     const deletes = after.calls.filter((c) => 'DELETE' === c.method).map((c) => c.url);     expect(deletes).toEqual(['https://cloud.test/v1/flows/checkout?projectId=shop']);
  • Network accessline 1684
    const deletes = after.calls.filter((c) => 'DELETE' === c.method).map((c) => c.url);     expect(deletes).toEqual(['https://cloud.test/v1/flows/checkout?projectId=shop']);     expect(after.written.state?.sentFlowNames).toEqual(['sign-in']);
  • Network accessline 1685
    expect(deletes).toEqual(['https://cloud.test/v1/flows/checkout?projectId=shop']);

server/src/memory/cloud/sync-cycle.ts

  • Executable scriptline 1
    Executable file

server/src/memory/cloud/sync-daemon.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 17
    [Credential-related source omitted]
  • Network accessline 18
    [Credential-related source omitted]
  • Access to secretsline 334
    [Credential-related source omitted]
  • Network accessline 955
    [Credential-related source omitted]
  • Network accessline 956
    [Credential-related source omitted]
  • Network accessline 957
    [Credential-related source omitted]
  • Network accessline 988
    [Credential-related source omitted]
  • Network accessline 989
    [Credential-related source omitted]
  • Network accessline 990
    [Credential-related source omitted]

server/src/memory/cloud/sync-daemon.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 553
    [Credential-related source omitted]

server/src/memory/cloud/sync-describe.ts

  • Executable scriptline 1
    Executable file

server/src/memory/cloud/sync-disk.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/cloud/sync-disk.ts

  • Executable scriptline 1
    Executable file

server/src/memory/cloud/sync-flow-conflict.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 34
    [Credential-related source omitted]
  • Network accessline 35
    [Credential-related source omitted]
  • Network accessline 36
    [Credential-related source omitted]

server/src/memory/cloud/sync-flow-versions.ts

  • Executable scriptline 1
    Executable file

server/src/memory/cloud/sync-hash.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/cloud/sync-hash.ts

  • Executable scriptline 1
    Executable file

server/src/memory/cloud/sync-hostile-server.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 63
    [Credential-related source omitted]
  • Network accessline 64
    [Credential-related source omitted]
  • Network accessline 65
    [Credential-related source omitted]

server/src/memory/cloud/sync-intent-shards.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/cloud/sync-memory-poll.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 15
    [Credential-related source omitted]
  • Network accessline 16
    [Credential-related source omitted]

server/src/memory/cloud/sync-request.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 25
    await expect(       syncRequest(         `http://127.0.0.1:${String(port)}/v1/sync/status`,
  • Network accessline 26
    syncRequest(         `http://127.0.0.1:${String(port)}/v1/sync/status`,         { method: 'GET', headers: {} },
  • Network accessline 27
    `http://127.0.0.1:${String(port)}/v1/sync/status`,
  • Network accessline 36
    await new Promise<void>((resolve) => server?.listen(0, '127.0.0.1', resolve));     const { port } = server.address() as AddressInfo;     const answer = await syncRequest(`http://127.0.0.1:${String(port)}/v1/sync/status`, {
  • Network accessline 37
    const { port } = server.address() as AddressInfo;     const answer = await syncRequest(`http://127.0.0.1:${String(port)}/v1/sync/status`, {       method: 'GET',
  • Network accessline 38
    const answer = await syncRequest(`http://127.0.0.1:${String(port)}/v1/sync/status`, {

server/src/memory/cloud/sync-screenshots.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/cloud/sync-screenshots.ts

  • Executable scriptline 1
    Executable file

server/src/memory/cloud/unsynced-roots.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 186
    writeFileSync(       join(linked, ReticleDir.CLOUD_LINK_FILE),       JSON.stringify({ projectId: 'acme-web', url: 'https://api.test' }),
  • Network accessline 187
    join(linked, ReticleDir.CLOUD_LINK_FILE),       JSON.stringify({ projectId: 'acme-web', url: 'https://api.test' }),     );
  • Network accessline 188
    JSON.stringify({ projectId: 'acme-web', url: 'https://api.test' }),

server/src/memory/cloud/unsynced-roots.ts

  • Executable scriptline 1
    Executable file

server/src/memory/impact/account-watch.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/impact/account-watch.ts

  • Executable scriptline 1
    Executable file

server/src/memory/impact/hud-refresh.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/impact/impact-defect.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/impact/impact-global-merge.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/impact/impact-recorder.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/impact/impact-recorder.ts

  • Executable scriptline 1
    Executable file

server/src/memory/impact/impact-store.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 225
    JSON.stringify({         projectId: 'web',         url: 'https://api.test',
  • Network accessline 226
    projectId: 'web',         url: 'https://api.test',         dashboardUrl: 'https://console.test/issues?project=web',
  • Network accessline 227
    url: 'https://api.test',
  • Network accessline 228
    dashboardUrl: 'https://console.test/issues?project=web',
  • Network accessline 231
    );     expect(new ImpactStore({ reticleRoot: dir }).snapshot().dashboardUrl).toBe(       'https://console.test/issues?project=web',
  • Network accessline 232
    expect(new ImpactStore({ reticleRoot: dir }).snapshot().dashboardUrl).toBe(       'https://console.test/issues?project=web',     );
  • Network accessline 233
    'https://console.test/issues?project=web',
  • Network accessline 246
    writeFileSync(       join(dir, 'cloud.json'),       JSON.stringify({ dashboardUrl: 'https://c.test/p/web' }),
  • Network accessline 247
    join(dir, 'cloud.json'),       JSON.stringify({ dashboardUrl: 'https://c.test/p/web' }),     );
  • Network accessline 248
    JSON.stringify({ dashboardUrl: 'https://c.test/p/web' }),
  • Network accessline 249
    );     expect(store.snapshot().dashboardUrl).toBe('https://c.test/p/web');   });
  • Network accessline 250
    expect(store.snapshot().dashboardUrl).toBe('https://c.test/p/web');
  • Network accessline 270
    writeFileSync(       join(reticleRoot, 'cloud.json'),       JSON.stringify({ dashboardUrl: 'https://app.reticle.sh/p/x' }),
  • Network accessline 271
    join(reticleRoot, 'cloud.json'),       JSON.stringify({ dashboardUrl: 'https://app.reticle.sh/p/x' }),     );
  • Network accessline 272
    JSON.stringify({ dashboardUrl: 'https://app.reticle.sh/p/x' }),
  • Network accessline 311
    writeFileSync(       join(reticleRoot, 'cloud.json'),       JSON.stringify({ dashboardUrl: 'https://app.reticle.sh/p/x' }),
  • Network accessline 312
    join(reticleRoot, 'cloud.json'),       JSON.stringify({ dashboardUrl: 'https://app.reticle.sh/p/x' }),     );
  • Network accessline 313
    JSON.stringify({ dashboardUrl: 'https://app.reticle.sh/p/x' }),
  • Network accessline 322
    notices: { read: () => [] },     }).snapshot();     expect(snap.sync?.['runUrl']).toBe('https://app.reticle.sh/runs/r9');
  • Network accessline 323
    }).snapshot();     expect(snap.sync?.['runUrl']).toBe('https://app.reticle.sh/runs/r9');   });
  • Network accessline 324
    expect(snap.sync?.['runUrl']).toBe('https://app.reticle.sh/runs/r9');
  • Network accessline 330
    writeFileSync(       join(reticleRoot, 'cloud.json'),       JSON.stringify({ dashboardUrl: 'https://app.reticle.sh/p/x' }),
  • Network accessline 331
    join(reticleRoot, 'cloud.json'),       JSON.stringify({ dashboardUrl: 'https://app.reticle.sh/p/x' }),     );
  • Network accessline 332
    JSON.stringify({ dashboardUrl: 'https://app.reticle.sh/p/x' }),

server/src/memory/impact/impact-store.ts

  • Executable scriptline 1
    Executable file

server/src/memory/intent/inline-intent.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 59
    protocolVersion: RETICLE_PROTOCOL_VERSION,     sessionId: 'demo',     url: 'http://localhost/',
  • Network accessline 60
    sessionId: 'demo',     url: 'http://localhost/',     title: 'Demo',
  • Network accessline 61
    url: 'http://localhost/',
  • Network accessline 102
    const stub: Partial<Session> = {     id: 'demo',     url: 'http://localhost/',
  • Network accessline 103
    id: 'demo',     url: 'http://localhost/',     elapsed: () => 1_000,
  • Network accessline 104
    url: 'http://localhost/',

server/src/memory/intent/inline-intent.ts

  • Executable scriptline 1
    Executable file

server/src/memory/intent/inline-surface.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 15
    describe('the surface an inline intent is captured on', () => {   it('takes the pathname from the session URL', () => {     expect(surfaceForInlineIntent('http://localhost:4320/issues', undefined)).toEqual({
  • Network accessline 16
    it('takes the pathname from the session URL', () => {     expect(surfaceForInlineIntent('http://localhost:4320/issues', undefined)).toEqual({       route: '/issues',
  • Network accessline 17
    expect(surfaceForInlineIntent('http://localhost:4320/issues', undefined)).toEqual({
  • Network accessline 23
    it('drops the query and hash, which are not what a record is about', () => {     expect(       surfaceForInlineIntent('http://localhost:4320/issues?category=severe#top', undefined),
  • Network accessline 24
    expect(       surfaceForInlineIntent('http://localhost:4320/issues?category=severe#top', undefined),     ).toEqual({ route: '/issues' });
  • Network accessline 25
    surfaceForInlineIntent('http://localhost:4320/issues?category=severe#top', undefined),
  • Network accessline 30
    it('carries the flow name when one is running, alongside the route', () => {     expect(surfaceForInlineIntent('http://localhost:4320/checkout', 'checkout-pay')).toEqual({
  • Network accessline 31
    expect(surfaceForInlineIntent('http://localhost:4320/checkout', 'checkout-pay')).toEqual({
  • Network accessline 47
    it('is undefined for a bare origin', () => {     expect(surfaceForInlineIntent('http://localhost:4320/', undefined)).toBeUndefined();
  • Network accessline 48
    expect(surfaceForInlineIntent('http://localhost:4320/', undefined)).toBeUndefined();
  • Network accessline 64
    it('records the acted element’s file', () => {     expect(       surfaceForInlineIntent('http://localhost:4320/cart', undefined, 'src/cart/total.tsx'),
  • Network accessline 65
    expect(       surfaceForInlineIntent('http://localhost:4320/cart', undefined, 'src/cart/total.tsx'),     ).toEqual({ route: '/cart', files: ['src/cart/total.tsx'] });
  • Network accessline 66
    surfaceForInlineIntent('http://localhost:4320/cart', undefined, 'src/cart/total.tsx'),
  • Network accessline 71
    it('keeps the path and drops the line number', () => {     expect(       surfaceForInlineIntent('http://localhost:4320/cart', undefined, 'src/cart/total.tsx:168'),
  • Network accessline 72
    expect(       surfaceForInlineIntent('http://localhost:4320/cart', undefined, 'src/cart/total.tsx:168'),     ).toEqual({ route: '/cart', files: ['src/cart/total.tsx'] });
  • Network accessline 73
    surfaceForInlineIntent('http://localhost:4320/cart', undefined, 'src/cart/total.tsx:168'),
  • Network accessline 84
    it('omits files entirely when the verdict had no element to point at', () => {     expect(surfaceForInlineIntent('http://localhost:4320/cart', undefined, undefined)).toEqual({
  • Network accessline 85
    expect(surfaceForInlineIntent('http://localhost:4320/cart', undefined, undefined)).toEqual({

server/src/memory/intent/intent-actions-name-their-arguments.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 20
    reticleRoot: '/repo/.reticle',     now: () => 1,     sessions: { resolve: () => ({ id: 's1', url: 'http://app.test/', projectId: undefined }) },
  • Network accessline 21
    now: () => 1,     sessions: { resolve: () => ({ id: 's1', url: 'http://app.test/', projectId: undefined }) },   } as unknown as ToolDeps;
  • Network accessline 22
    sessions: { resolve: () => ({ id: 's1', url: 'http://app.test/', projectId: undefined }) },

server/src/memory/intent/intent-debt.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/intent/intent-labels-refused.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/intent/intent-ledger-is-one.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 29
    now: () => 1,     sessions: {       resolve: () => ({ id: 's1', url: 'http://app.test/', projectId: undefined }),
  • Network accessline 30
    sessions: {       resolve: () => ({ id: 's1', url: 'http://app.test/', projectId: undefined }),     },
  • Network accessline 31
    resolve: () => ({ id: 's1', url: 'http://app.test/', projectId: undefined }),

server/src/memory/intent/intent-request.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/intent/intent-shard-store.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/intent/intent-shard-store.ts

  • Executable scriptline 1
    Executable file

server/src/memory/intent/intent-shard.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/intent/intent-shard.ts

  • Executable scriptline 1
    Executable file

server/src/memory/intent/intent-store.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/intent/intent-store.ts

  • Executable scriptline 1
    Executable file

server/src/memory/intent/intent-subject.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/intent/intent-subject.ts

  • Executable scriptline 1
    Executable file

server/src/memory/intent/intent-tools.ts

  • Executable scriptline 1
    Executable file

server/src/memory/intent/intent-wrong-project-write.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/intent/open-intents.ts

  • Executable scriptline 1
    Executable file

server/src/memory/intent/record-request.ts

  • Executable scriptline 1
    Executable file

server/src/memory/intent/settled-words.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/intent/settled-words.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/ambient-store.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/ambient-store.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/attach-journal.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/attach-journal.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/bridge-journal.integration.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/deviation-report.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/deviation-report.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/deviation-service.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/deviation-service.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/drive-flow.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/drive-flow.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/drive-run-flush.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/drive-run-flush.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/envelope-store.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/envelope-store.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/envelope.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/envelope.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/episode-log.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 190
    [Credential-related source omitted]
  • Network accessline 191
    [Credential-related source omitted]

server/src/memory/journal/episode-log.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/journal-query.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/journal-query.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/journal-recorder.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/journal-recorder.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/on-disk/ambient-file.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/on-disk/retain-policy.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/on-disk/retain-policy.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/on-disk/retention.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/on-disk/retention.ts

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 199
    * so a stat/rm failure on one dir (or a missing sessions/ dir) is swallowed, never crashing a session.

server/src/memory/journal/on-disk/startup-maintenance.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/on-disk/startup-maintenance.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/on-disk/workspace-gitignore.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/on-disk/workspace-gitignore.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/on-disk/workspace-tiers.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/on-disk/workspace-tiers.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/rollups.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/rollups.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/route-template.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/route-template.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/self-observation.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 34
    net(         EventType.NET_REQUEST,         'http://localhost:5173/node_modules/@reticlehq/browser/dist/index.js',
  • Network accessline 35
    EventType.NET_REQUEST,         'http://localhost:5173/node_modules/@reticlehq/browser/dist/index.js',         0,
  • Network accessline 36
    'http://localhost:5173/node_modules/@reticlehq/browser/dist/index.js',
  • Network accessline 48
    net(         EventType.NET_REQUEST,         'http://localhost:5173/node_modules/.vite/deps/@reticlehq_browser.js?v=1',
  • Network accessline 49
    EventType.NET_REQUEST,         'http://localhost:5173/node_modules/.vite/deps/@reticlehq_browser.js?v=1',         0,
  • Network accessline 50
    'http://localhost:5173/node_modules/.vite/deps/@reticlehq_browser.js?v=1',
  • Network accessline 59
    const sink = fakeSink();     const rec = new JournalRecorder(sink, { now: () => 0, flushAt: 100 });     const url = 'https://cdn.jsdelivr.net/npm/@reticlehq/browser/dist/index.js';
  • Network accessline 60
    const rec = new JournalRecorder(sink, { now: () => 0, flushAt: 100 });     const url = 'https://cdn.jsdelivr.net/npm/@reticlehq/browser/dist/index.js';     rec.observe(net(EventType.NET_PENDING, url, 0));
  • Network accessline 61
    const url = 'https://cdn.jsdelivr.net/npm/@reticlehq/browser/dist/index.js';
  • Network accessline 72
    const rec = new JournalRecorder(sink, { now: () => 0, flushAt: 100 });     const kept = [       'http://localhost:5173/src/main.tsx',
  • Network accessline 73
    const kept = [       'http://localhost:5173/src/main.tsx',       'http://localhost:5173/api/reticlehq/orders',
  • Network accessline 74
    'http://localhost:5173/src/main.tsx',
  • Network accessline 75
    'http://localhost:5173/api/reticlehq/orders',
  • Network accessline 76
    'http://localhost:5173/vendor/reticle-browser.js',
  • Network accessline 77
    'http://localhost:5173/core/dist/index.js',
  • Network accessline 78
    'http://localhost:5173/adapters/realm/browser/dist/index.js',
  • Network accessline 79
    'http://localhost:5173/api/search?q=%40reticlehq%2Fbrowser',
  • Network accessline 92
    type: EventType.DOM_TEXT,       sessionId: SESSION,       data: { url: 'http://localhost:5173/node_modules/@reticlehq/browser/dist/index.js' },
  • Network accessline 93
    sessionId: SESSION,       data: { url: 'http://localhost:5173/node_modules/@reticlehq/browser/dist/index.js' },     });
  • Network accessline 94
    data: { url: 'http://localhost:5173/node_modules/@reticlehq/browser/dist/index.js' },

server/src/memory/journal/self-observation.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 58
    const RELATIVE_BASE = 'http://reticle.invalid';

server/src/memory/journal/session-attribution.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 17
    protocolVersion: RETICLE_PROTOCOL_VERSION,     sessionId: 'demo',     url: 'http://localhost/',
  • Network accessline 18
    sessionId: 'demo',     url: 'http://localhost/',     title: 'Demo',
  • Network accessline 19
    url: 'http://localhost/',

server/src/memory/journal/session-end-live.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/session-end-logs.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/session-end.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 571
    const mock = NETWORK_MOCK_TOOLS.find((t) => t.name === ReticleTool.NETWORK_MOCK);     const deps = {       sessions: { resolve: () => ({ id: 'tab-1', url: 'http://localhost:5173/checkout' }) },
  • Network accessline 572
    const deps = {       sessions: { resolve: () => ({ id: 'tab-1', url: 'http://localhost:5173/checkout' }) },       pool: { setMocksLease: () => Promise.resolve(true) },
  • Network accessline 573
    sessions: { resolve: () => ({ id: 'tab-1', url: 'http://localhost:5173/checkout' }) },

server/src/memory/journal/session-end.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/session-journal-cap.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/session-journal-loss.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 42
    protocolVersion: RETICLE_PROTOCOL_VERSION,     sessionId: 'demo',     url: 'http://localhost/',
  • Network accessline 43
    sessionId: 'demo',     url: 'http://localhost/',     title: 'Demo',
  • Network accessline 44
    url: 'http://localhost/',

server/src/memory/journal/session-journal.lossy-conformance.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/session-journal.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/session-journal.ts

  • Executable scriptline 1
    Executable file

server/src/memory/journal/session-query.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 17
    protocolVersion: RETICLE_PROTOCOL_VERSION,     sessionId: 'demo',     url: 'http://localhost/',
  • Network accessline 18
    sessionId: 'demo',     url: 'http://localhost/',     title: 'Demo',
  • Network accessline 19
    url: 'http://localhost/',

server/src/memory/project/artifact-root-resolver.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 168
    */ describe('a project two checkouts declare, served from one of them', () => {   const ORIGIN = 'http://localhost:5174';
  • Network accessline 169
    describe('a project two checkouts declare, served from one of them', () => {   const ORIGIN = 'http://localhost:5174';   const both = (): ProjectCandidate[] => [
  • Network accessline 170
    const ORIGIN = 'http://localhost:5174';
  • Network accessline 223
    */ describe('a project one checkout declares, served from a linked worktree', () => {   const ORIGIN = 'http://localhost:5175';
  • Network accessline 224
    describe('a project one checkout declares, served from a linked worktree', () => {   const ORIGIN = 'http://localhost:5175';   const WT = join(sep, 'wt', 'feat-x');
  • Network accessline 225
    const ORIGIN = 'http://localhost:5175';
  • Network accessline 317
    pid: 1,         root: app,         url: 'http://localhost:5273',
  • Network accessline 318
    root: app,         url: 'http://localhost:5273',         startedAt: 1,
  • Network accessline 319
    url: 'http://localhost:5273',
  • Network accessline 353
    daemonIsProject: () => true,       servingDirectory: () => CLONE,     })(asProjectId(WEB_ID), 'http://localhost:16599');
  • Network accessline 354
    servingDirectory: () => CLONE,     })(asProjectId(WEB_ID), 'http://localhost:16599');     expect(resolved.root).not.toBe(join(MONO, ReticleDir.ROOT));
  • Network accessline 355
    })(asProjectId(WEB_ID), 'http://localhost:16599');

server/src/memory/project/artifact-root-resolver.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/artifact-root.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 541
    it('separates two apps that never stamped a project id', () => {     const a = unmatchedRoot({ ...base, origin: 'http://localhost:3000' });
  • Network accessline 542
    const a = unmatchedRoot({ ...base, origin: 'http://localhost:3000' });
  • Network accessline 543
    const b = unmatchedRoot({ ...base, origin: 'http://localhost:5173' });
  • Network accessline 547
    it('is stable for one origin, so a project keeps its own memory across sessions', () => {     expect(unmatchedRoot({ ...base, origin: 'http://localhost:3000' })).toBe(
  • Network accessline 548
    expect(unmatchedRoot({ ...base, origin: 'http://localhost:3000' })).toBe(
  • Network accessline 549
    unmatchedRoot({ ...base, origin: 'http://localhost:3000' }),
  • Network accessline 569
    ...base,       projectId: asProjectId('abc123'),       origin: 'http://localhost:3000',
  • Network accessline 570
    projectId: asProjectId('abc123'),       origin: 'http://localhost:3000',     });
  • Network accessline 571
    origin: 'http://localhost:3000',

server/src/memory/project/artifact-root.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/artifact-roots-complete.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/baselines.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/baselines.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/contract-governance.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/dir/empty-baselines.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/dir/id-guards-are-not-flow-names.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/dir/reticle-dir.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/dir/reticle-dir.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/file-lock.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/file-lock.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/fs/fs-port-read-bounds.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/fs/fs-port.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/fs/fs-port.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/fs/write-atomic.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/fs/write-atomic.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/learned-routes.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 24
    it('uses pathname route identities without persisting origins, searches, or hashes', () => {     expect(routeFromEvent(routeEvent('/search', '?q=reticle', '#results'))).toBe('/search');     expect(routeFromUrl('https://example.test/deployme
  • Network accessline 25
    expect(routeFromEvent(routeEvent('/search', '?q=reticle', '#results'))).toBe('/search');     expect(routeFromUrl('https://example.test/deployments?region=us#latest')).toBe('/deployments');   });
  • Network accessline 26
    expect(routeFromUrl('https://example.test/deployments?region=us#latest')).toBe('/deployments');
  • Network accessline 47
    );     const session: TestSession = {       url: 'https://example.test/',
  • Network accessline 48
    const session: TestSession = {       url: 'https://example.test/',       onEvent: (handler) => {
  • Network accessline 49
    url: 'https://example.test/',
  • Network accessline 94
    const sessions: TestSession[] = [       {         url: 'https://a.test/checkout',
  • Network accessline 95
    {         url: 'https://a.test/checkout',         artifactRoot: '/repo/web/.reticle',
  • Network accessline 96
    url: 'https://a.test/checkout',
  • Network accessline 99
    },       {         url: 'https://b.test/admin',
  • Network accessline 100
    {         url: 'https://b.test/admin',         artifactRoot: '/repo/admin/.reticle',
  • Network accessline 101
    url: 'https://b.test/admin',

server/src/memory/project/learned-routes.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/link-directory.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/link-directory.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/machine-unsynced.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 35
    [Credential-related source omitted]
  • Access to secretsline 35
    [Credential-related source omitted]

server/src/memory/project/memory-fs.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/project-directory-for.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/project-for-root.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/project-store.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/project-store.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/project-tools.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 209
    [Credential-related source omitted]
  • Network accessline 210
    [Credential-related source omitted]
  • Network accessline 211
    [Credential-related source omitted]

server/src/memory/project/project-tools.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/project-version-refusal.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/reticle-deps.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/root-claims.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 20
    it('gives the session registered under the lease id the claimed root', () => {     claimArtifactRoot('lease-1', ROOT);     expect(claimedArtifactRoot('lease-1', 'http://localhost:3000/')).toBe(ROOT);
  • Network accessline 21
    claimArtifactRoot('lease-1', ROOT);     expect(claimedArtifactRoot('lease-1', 'http://localhost:3000/')).toBe(ROOT);   });
  • Network accessline 22
    expect(claimedArtifactRoot('lease-1', 'http://localhost:3000/')).toBe(ROOT);
  • Network accessline 25
    it('follows the lease marker on the url when the app named its own session', () => {     claimArtifactRoot('lease-1', ROOT);     expect(claimedArtifactRoot('app-own', 'http://localhost:3000/?__reticle_session=lease-1')).toBe(
  • Network accessline 26
    claimArtifactRoot('lease-1', ROOT);     expect(claimedArtifactRoot('app-own', 'http://localhost:3000/?__reticle_session=lease-1')).toBe(       ROOT,
  • Network accessline 27
    expect(claimedArtifactRoot('app-own', 'http://localhost:3000/?__reticle_session=lease-1')).toBe(
  • Network accessline 32
    it('claims nothing for a session no lease opened', () => {     claimArtifactRoot('lease-1', ROOT);     expect(claimedArtifactRoot('tab-9', 'http://localhost:3000/')).toBeUndefined();
  • Network accessline 33
    claimArtifactRoot('lease-1', ROOT);     expect(claimedArtifactRoot('tab-9', 'http://localhost:3000/')).toBeUndefined();   });
  • Network accessline 34
    expect(claimedArtifactRoot('tab-9', 'http://localhost:3000/')).toBeUndefined();
  • Network accessline 44
    mkdirSync(join(project, '.reticle'));       claimArtifactRoot('lease-1', project);       expect(claimedArtifactRoot('lease-1', 'http://localhost:3000/')).toBe(
  • Network accessline 45
    claimArtifactRoot('lease-1', project);       expect(claimedArtifactRoot('lease-1', 'http://localhost:3000/')).toBe(         join(project, '.reticle'),
  • Network accessline 46
    expect(claimedArtifactRoot('lease-1', 'http://localhost:3000/')).toBe(
  • Network accessline 56
    try {       claimArtifactRoot('lease-1', project);       expect(claimedArtifactRoot('lease-1', 'http://localhost:3000/')).toBe(
  • Network accessline 57
    claimArtifactRoot('lease-1', project);       expect(claimedArtifactRoot('lease-1', 'http://localhost:3000/')).toBe(         join(project, '.reticle'),
  • Network accessline 58
    expect(claimedArtifactRoot('lease-1', 'http://localhost:3000/')).toBe(
  • Network accessline 71
    `Pass ${join(missing, '.reticle')}`,       );       expect(claimedArtifactRoot('lease-1', 'http://localhost:3000/')).toBeUndefined();
  • Network accessline 72
    );       expect(claimedArtifactRoot('lease-1', 'http://localhost:3000/')).toBeUndefined();     } finally {
  • Network accessline 73
    expect(claimedArtifactRoot('lease-1', 'http://localhost:3000/')).toBeUndefined();
  • Network accessline 80
    claimArtifactRoot('lease-1', ROOT);     dropArtifactRootClaim('lease-1');     expect(claimedArtifactRoot('lease-1', 'http://localhost:3000/')).toBeUndefined();
  • Network accessline 81
    dropArtifactRootClaim('lease-1');     expect(claimedArtifactRoot('lease-1', 'http://localhost:3000/')).toBeUndefined();   });
  • Network accessline 82
    expect(claimedArtifactRoot('lease-1', 'http://localhost:3000/')).toBeUndefined();

server/src/memory/project/root-claims.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/session-root.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 249
    const origins: (string | undefined)[] = [];     sessionRoot(       deps({ projectId: 'acme-9f3c', url: 'http://localhost:5174/checkout?x=1', origins }),
  • Network accessline 250
    sessionRoot(       deps({ projectId: 'acme-9f3c', url: 'http://localhost:5174/checkout?x=1', origins }),       undefined,
  • Network accessline 251
    deps({ projectId: 'acme-9f3c', url: 'http://localhost:5174/checkout?x=1', origins }),
  • Network accessline 255
    expect(origins).toEqual(['http://localhost:5174']);

server/src/memory/project/session-root.ts

  • Executable scriptline 1
    Executable file

server/src/memory/project/sync-status.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 83
    it('links the console’s run page at the dashboard’s origin', () => {     expect(seeRunLine('https://app.reticle.sh/projects/shop', 'run 1')).toBe(
  • Network accessline 84
    expect(seeRunLine('https://app.reticle.sh/projects/shop', 'run 1')).toBe(
  • Network accessline 85
    'See it in your dashboard: https://app.reticle.sh/runs/run%201',
  • Network accessline 86
    );     expect(dashboardRunUrl('https://app.reticle.sh/', 'r2')).toBe('https://app.reticle.sh/runs/r2');   });
  • Network accessline 87
    expect(dashboardRunUrl('https://app.reticle.sh/', 'r2')).toBe('https://app.reticle.sh/runs/r2');
  • Network accessline 93
    expect(       dashboardPlanUrl({         dashboardUrl: 'https://app.reticle.sh/x',
  • Network accessline 94
    dashboardPlanUrl({         dashboardUrl: 'https://app.reticle.sh/x',         planId: 'hp_1',
  • Network accessline 95
    dashboardUrl: 'https://app.reticle.sh/x',
  • Network accessline 97
    projectId: 'shop-7f',       }),     ).toBe('https://app.reticle.sh/plans/hp_1?project=shop-7f');
  • Network accessline 98
    }),     ).toBe('https://app.reticle.sh/plans/hp_1?project=shop-7f');     expect(dashboardPlanUrl({ dashboardUrl: 'https://app.reticle.sh/', planId: 'hp_1' })).toBe(
  • Network accessline 99
    ).toBe('https://app.reticle.sh/plans/hp_1?project=shop-7f');
  • Network accessline 100
    expect(dashboardPlanUrl({ dashboardUrl: 'https://app.reticle.sh/', planId: 'hp_1' })).toBe(
  • Network accessline 101
    'https://app.reticle.sh/plans/hp_1',

server/src/memory/project/sync-status.ts

  • Executable scriptline 1
    Executable file

server/src/memory/recall/looks-like-dev-server.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/recall/looks-like-dev-server.ts

  • Executable scriptline 1
    Executable file

server/src/memory/recall/memory-not-linked.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/recall/memory-tools.ts

  • Executable scriptline 1
    Executable file

server/src/memory/recall/platform-memory.ts

  • Executable scriptline 1
    Executable file

server/src/memory/recall/platform-round-trip.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 27
    const CLOUD = 'https://cloud.test';
  • Access to secretsline 152
    [Credential-related source omitted]

server/src/memory/recall/prior/connection-memory.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/recall/prior/connection-memory.ts

  • Executable scriptline 1
    Executable file

server/src/memory/recall/project-memory.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 56
    const CLOUD = 'https://cloud.test';
  • Access to secretsline 242
    [Credential-related source omitted]

server/src/memory/recall/project-memory.ts

  • Executable scriptline 1
    Executable file

server/src/memory/recall/registered-projects.test.ts

  • Executable scriptline 1
    Executable file

server/src/memory/recall/registered-projects.ts

  • Executable scriptline 1
    Executable file

server/src/multi-project.test.ts

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 17
    import { mkdtemp, rm } from 'node:fs/promises';
  • Network accessline 418
    return new Promise((resolve) => {         const sock = new ws.WebSocket(`ws://${LOOPBACK_HOST}:${String(port)}${RETICLE_WS_PATH}`, {           origin: 'http://localhost',
  • Network accessline 419
    const sock = new ws.WebSocket(`ws://${LOOPBACK_HOST}:${String(port)}${RETICLE_WS_PATH}`, {           origin: 'http://localhost',         });
  • Network accessline 420
    origin: 'http://localhost',
  • Network accessline 441
    await Promise.all([       connectWithUrl('next-app', 'http://localhost:3000'),
  • Network accessline 442
    connectWithUrl('next-app', 'http://localhost:3000'),
  • Network accessline 443
    connectWithUrl('vite-app', 'http://localhost:5173'),
  • Network accessline 444
    connectWithUrl('other-app', 'http://localhost:8080'),
  • Network accessline 455
    const urls = result.sessions.map((s) => s.url).sort();     expect(urls).toEqual([       'http://localhost:3000',
  • Network accessline 456
    expect(urls).toEqual([       'http://localhost:3000',       'http://localhost:5173',
  • Network accessline 457
    'http://localhost:3000',
  • Network accessline 458
    'http://localhost:5173',
  • Network accessline 459
    'http://localhost:8080',

server/src/on-disk-versions.test.ts

  • Executable scriptline 1
    Executable file

server/src/orphan-modules.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/bridge/auth-failure-reason.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/bridge/auth-failure-reason.ts

  • Executable scriptline 1
    Executable file

server/src/portal/bridge/bridge-security.ts

  • Executable scriptline 1
    Executable file

server/src/portal/bridge/bridge.act-and-wait-repeatable.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/bridge/bridge.act-and-wait.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/bridge/bridge.follow-navigation.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 17
    [Credential-related source omitted]
  • Network accessline 18
    const WWW = 'https://www.example.org';
  • Network accessline 19
    const EN = 'https://en.example.org';
  • Network accessline 119
    const onDe = await openSocket(port, 'https://de.example.org');
  • Network accessline 120
    onDe.send(hello('drive-1', 'https://de.example.org/'));
  • Network accessline 121
    await until(() => bridge.sessions.get('drive-1') !== undefined);     expect(follow).toHaveBeenLastCalledWith(       expect.objectContaining({ from: EN, to: 'https://de.example.org' }),
  • Network accessline 122
    expect(follow).toHaveBeenLastCalledWith(       expect.objectContaining({ from: EN, to: 'https://de.example.org' }),     );
  • Network accessline 123
    expect.objectContaining({ from: EN, to: 'https://de.example.org' }),
  • Network accessline 130
    const follow = vi.fn(() => true);     const { bridge, port } = await makeBridge(follow);     const stranger = await openSocket(port, 'https://evil.example');
  • Network accessline 131
    const { bridge, port } = await makeBridge(follow);     const stranger = await openSocket(port, 'https://evil.example');     const code = closed(stranger);
  • Network accessline 132
    const stranger = await openSocket(port, 'https://evil.example');
  • Network accessline 133
    const code = closed(stranger);     stranger.send(hello('never-seen', 'https://evil.example/'));     expect(await code).toBe(1008);
  • Network accessline 134
    stranger.send(hello('never-seen', 'https://evil.example/'));
  • Network accessline 178
    const next = await openSocket(port, EN);     const code = closed(next);     next.send(hello('drive-1', 'https://other.example.org/'));
  • Network accessline 179
    const code = closed(next);     next.send(hello('drive-1', 'https://other.example.org/'));     expect(await code).toBe(1008);
  • Network accessline 180
    next.send(hello('drive-1', 'https://other.example.org/'));

server/src/portal/bridge/bridge.gap-source.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/bridge/bridge.hello-clears-gaps.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/bridge/bridge.invalid-frame.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 74
    it('is still closed with 1008', async () => {     const sock = new WebSocket(`ws://${LOOPBACK_HOST}:${String(port)}${RETICLE_WS_PATH}`, {       origin: 'http://localhost',
  • Network accessline 75
    const sock = new WebSocket(`ws://${LOOPBACK_HOST}:${String(port)}${RETICLE_WS_PATH}`, {       origin: 'http://localhost',     });
  • Network accessline 76
    origin: 'http://localhost',

server/src/portal/bridge/bridge.nonce.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 15
    [Credential-related source omitted]
  • Network accessline 16
    const PROD_ORIGIN = 'https://app.example.com';

server/src/portal/bridge/bridge.rate-window.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 37
    const socket = await new Promise<WebSocket>((resolve, reject) => {     const s = new WebSocket(`ws://127.0.0.1:${String(port)}${RETICLE_WS_PATH}`, {       origin: 'http://localhost',
  • Network accessline 38
    const s = new WebSocket(`ws://127.0.0.1:${String(port)}${RETICLE_WS_PATH}`, {       origin: 'http://localhost',     });
  • Network accessline 39
    origin: 'http://localhost',
  • Network accessline 48
    protocolVersion: 1,       sessionId: 'burst',       url: 'http://localhost:3000/',
  • Network accessline 49
    sessionId: 'burst',       url: 'http://localhost:3000/',       title: 'burst',
  • Network accessline 50
    url: 'http://localhost:3000/',

server/src/portal/bridge/bridge.record-replay.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/bridge/bridge.replay.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 28
    const host = '127.0.0.1';     this.#ws = new WebSocket(`ws://${host}:${String(port)}${RETICLE_WS_PATH}`, {       origin: 'http://localhost',
  • Network accessline 29
    this.#ws = new WebSocket(`ws://${host}:${String(port)}${RETICLE_WS_PATH}`, {       origin: 'http://localhost',     });
  • Network accessline 30
    origin: 'http://localhost',
  • Network accessline 38
    protocolVersion: 1,           sessionId: this.sessionId,           url: 'http://localhost:3000/checkout',
  • Network accessline 39
    sessionId: this.sessionId,           url: 'http://localhost:3000/checkout',           title: 'Checkout',
  • Network accessline 40
    url: 'http://localhost:3000/checkout',

server/src/portal/bridge/bridge.security.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 21
    protocolVersion: RETICLE_PROTOCOL_VERSION,     sessionId,     url: 'http://localhost/',
  • Network accessline 22
    sessionId,     url: 'http://localhost/',     title: 'Security test',
  • Network accessline 23
    url: 'http://localhost/',
  • Network accessline 38
    function openSocket(port: number, origin: string | null = 'http://localhost'): Promise<WebSocket> {   return new Promise((resolve, reject) => {     const socket = new WebSocket(`ws://127.0.0.1:${String(port)}${RETICLE_WS_PATH}`, {
  • Network accessline 77
    it('rejects non-local browser origins by default', async () => {     const { port } = await makeBridge();     await expect(openSocket(port, 'https://evil.example')).rejects.toThrow(
  • Network accessline 78
    const { port } = await makeBridge();     await expect(openSocket(port, 'https://evil.example')).rejects.toThrow(       /Unexpected server response: 403/,
  • Network accessline 79
    await expect(openSocket(port, 'https://evil.example')).rejects.toThrow(
  • Network accessline 80
    /Unexpected server response: 403/,     );     await expect(openSocket(port, 'http://127.evil.example')).rejects.toThrow(
  • Network accessline 81
    );     await expect(openSocket(port, 'http://127.evil.example')).rejects.toThrow(       /Unexpected server response: 403/,
  • Network accessline 82
    await expect(openSocket(port, 'http://127.evil.example')).rejects.toThrow(
  • Network accessline 87
    // Tauri on WINDOWS is the one desktop origin that is NOT opaque: the webview needs a real http   // origin, so Tauri serves `http://tauri.localhost` there while macOS/Linux get `tauri://localhost`.
  • Network accessline 88
    // origin, so Tauri serves `http://tauri.localhost` there while macOS/Linux get `tauri://localhost`.
  • Network accessline 93
    it('accepts the Tauri Windows http origin, which is loopback by RFC 6761', async () => {     const { bridge, port } = await makeBridge();     const socket = await openSocket(port, 'http://tauri.localhost');
  • Network accessline 94
    const { bridge, port } = await makeBridge();     const socket = await openSocket(port, 'http://tauri.localhost');     socket.send(JSON.stringify(hello('tauri-win')));
  • Network accessline 95
    const socket = await openSocket(port, 'http://tauri.localhost');
  • Network accessline 103
    it('accepts a worktree page served on a .localhost name', async () => {     const { bridge, port } = await makeBridge();     const socket = await openSocket(port, 'https://feat-x.app.localhost');
  • Network accessline 104
    const { bridge, port } = await makeBridge();     const socket = await openSocket(port, 'https://feat-x.app.localhost');     socket.send(JSON.stringify(hello('portless-wt')));
  • Network accessline 105
    const socket = await openSocket(port, 'https://feat-x.app.localhost');
  • Network accessline 111
    it('still rejects a lookalike that merely ENDS with the Tauri hostname', async () => {     const { port } = await makeBridge();     await expect(openSocket(port, 'http://evil-tauri.localhost.example')).rejects.toThrow(
  • Network accessline 112
    const { port } = await makeBridge();     await expect(openSocket(port, 'http://evil-tauri.localhost.example')).rejects.toThrow(       /Unexpected server response: 403/,
  • Network accessline 113
    await expect(openSocket(port, 'http://evil-tauri.localhost.example')).rejects.toThrow(
  • Network accessline 119
    [Credential-related source omitted]
  • Network accessline 120
    [Credential-related source omitted]
  • Network accessline 121
    allowedOrigins: ['https://app.example'],
  • Network accessline 122
    });     const bad = await openSocket(port, 'https://app.example');     const badClosed = waitForClose(bad);
  • Network accessline 123
    const bad = await openSocket(port, 'https://app.example');
  • Network accessline 129
    const good = await openSocket(port, 'https://app.example');
  • Network accessline 199
    let port: number;     try {       ({ port } = await makeBridge({ allowedOrigins: ['myapp.test', 'https://app.example'] }));
  • Network accessline 200
    try {       ({ port } = await makeBridge({ allowedOrigins: ['myapp.test', 'https://app.example'] }));     } finally {
  • Network accessline 201
    ({ port } = await makeBridge({ allowedOrigins: ['myapp.test', 'https://app.example'] }));
  • Network accessline 207
    const parsed = JSON.parse(line ?? '{}') as Record<string, unknown>;     expect(parsed['entry']).toBe('myapp.test');     expect(String(parsed['warning'])).toContain('http://myapp.test');
  • Network accessline 209
    expect(String(parsed['warning'])).toContain('http://myapp.test');
  • Network accessline 211
    await expect(openSocket(port, 'http://myapp.test')).rejects.toThrow(
  • Network accessline 215
    const socket = await openSocket(port, 'https://app.example');

server/src/portal/bridge/bridge.skew-fix-project.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 33
    function hello(sessionId: string, projectId?: string): void {   const sock = new WebSocket(`ws://${LOOPBACK_HOST}:${String(port)}${RETICLE_WS_PATH}`, {     origin: 'http://localhost',
  • Network accessline 34
    const sock = new WebSocket(`ws://${LOOPBACK_HOST}:${String(port)}${RETICLE_WS_PATH}`, {     origin: 'http://localhost',   });
  • Network accessline 35
    origin: 'http://localhost',
  • Network accessline 42
    protocolVersion: 1,         sessionId,         url: 'http://localhost:3000/',
  • Network accessline 43
    sessionId,         url: 'http://localhost:3000/',         title: sessionId,
  • Network accessline 44
    url: 'http://localhost:3000/',
  • Network accessline 75
    const before = asked.length;     const sock = new WebSocket(`ws://${LOOPBACK_HOST}:${String(port)}${RETICLE_WS_PATH}`, {       origin: 'http://localhost',
  • Network accessline 76
    const sock = new WebSocket(`ws://${LOOPBACK_HOST}:${String(port)}${RETICLE_WS_PATH}`, {       origin: 'http://localhost',     });
  • Network accessline 77
    origin: 'http://localhost',
  • Network accessline 84
    protocolVersion: 1,           sessionId: 'compatible',           url: 'http://localhost:3000/',
  • Network accessline 85
    sessionId: 'compatible',           url: 'http://localhost:3000/',           title: 'compatible',
  • Network accessline 86
    url: 'http://localhost:3000/',

server/src/portal/bridge/bridge.test-harness.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 70
    this.#ws = new WebSocket(`ws://${LOOPBACK_HOST}:${String(port)}${RETICLE_WS_PATH}`, {       origin: 'http://localhost',
  • Network accessline 71
    origin: 'http://localhost',
  • Network accessline 80
    protocolVersion: 1,           sessionId: this.sessionId,           url: 'http://localhost:3000/checkout',
  • Network accessline 81
    sessionId: this.sessionId,           url: 'http://localhost:3000/checkout',           title: 'Checkout',
  • Network accessline 82
    url: 'http://localhost:3000/checkout',
  • Network accessline 108
    sessionId: overrides.sessionId ?? this.sessionId,       ...(overrides.projectId === undefined ? {} : { projectId: overrides.projectId }),       url: 'http://localhost:3000/checkout',
  • Network accessline 109
    ...(overrides.projectId === undefined ? {} : { projectId: overrides.projectId }),       url: 'http://localhost:3000/checkout',       title: 'Checkout',
  • Network accessline 110
    url: 'http://localhost:3000/checkout',

server/src/portal/bridge/bridge.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/bridge/bridge.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 318
    warning:             `${ReticleEnv.ALLOWED_ORIGINS} entry "${entry}" is not a valid origin and was ` +             `IGNORED — an origin needs a scheme, e.g. "http://${entry}" (scheme://host[:port]).`,
  • Network accessline 319
    `${ReticleEnv.ALLOWED_ORIGINS} entry "${entry}" is not a valid origin and was ` +             `IGNORED — an origin needs a scheme, e.g. "http://${entry}" (scheme://host[:port]).`,         });
  • Network accessline 320
    `IGNORED — an origin needs a scheme, e.g. "http://${entry}" (scheme://host[:port]).`,
  • Network accessline 902
    // They had drifted, and the drift made a whole platform unreachable. Tauri v2 uses an opaque     // `tauri://localhost` on macOS/Linux, but on WINDOWS the webview needs a real http origin and     // Tauri serves `http://tauri.localhost`. `
  • Network accessline 903
    // `tauri://localhost` on macOS/Linux, but on WINDOWS the webview needs a real http origin and     // Tauri serves `http://tauri.localhost`. `isLocalPage` was taught that hostname; this check was     // not. So a Windows Tauri app passed it
  • Network accessline 904
    // Tauri serves `http://tauri.localhost`. `isLocalPage` was taught that hostname; this check was

server/src/portal/bridge/harness-request.ts

  • Executable scriptline 1
    Executable file

server/src/portal/bridge/hello-refused.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 25
    const PAGE_URL = 'http://localhost:5173/';
  • Network accessline 33
    return new Promise((resolve) => {     const socket = new WebSocket(`ws://127.0.0.1:${String(port)}${RETICLE_WS_PATH}`, {       origin: 'http://localhost',
  • Network accessline 34
    const socket = new WebSocket(`ws://127.0.0.1:${String(port)}${RETICLE_WS_PATH}`, {       origin: 'http://localhost',     });
  • Network accessline 35
    origin: 'http://localhost',     });     socket.once('open', () => {

server/src/portal/bridge/origin/origin-follow.ts

  • Executable scriptline 1
    Executable file

server/src/portal/bridge/pairing-token.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/bridge/pairing-token.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 73
    [Credential-related source omitted]

server/src/portal/bridge/protocol-skew.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/bridge/protocol-skew.ts

  • Executable scriptline 1
    Executable file

server/src/portal/bridge/refused-dial.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 48
    await dial(port, 'https://evil.example');
  • Network accessline 61
    await dial(port, 'http://tenant.myapp.test');
  • Network accessline 72
    await dial(port, 'http://localhost');
  • Network accessline 80
    const sessions = new SessionManager();     sessions.setNoSessionHint(() => 'THE FULL DIAGNOSIS, which took a port scan to produce.');     sessions.noteClosure('refused: origin https://evil.example is not allowed', 1000);
  • Network accessline 82
    sessions.noteClosure('refused: origin https://evil.example is not allowed', 1000);

server/src/portal/bridge/session-nonces.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 4
    const ORIGIN = 'https://app.example.com';
  • Network accessline 63
    nonces.mint({ origin: ORIGIN, ttlMs: 1_000 });     expect(nonces.admitsOrigin(ORIGIN)).toBe(true);     expect(nonces.admitsOrigin('https://evil.example')).toBe(false);
  • Network accessline 64
    expect(nonces.admitsOrigin(ORIGIN)).toBe(true);     expect(nonces.admitsOrigin('https://evil.example')).toBe(false);     advance(1_000);
  • Network accessline 65
    expect(nonces.admitsOrigin('https://evil.example')).toBe(false);

server/src/portal/bridge/session-nonces.ts

  • Executable scriptline 1
    Executable file

server/src/portal/bridge/token-auth.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 28
    [Credential-related source omitted]
  • Network accessline 29
    [Credential-related source omitted]
  • Network accessline 30
    [Credential-related source omitted]
  • Network accessline 34
    [Credential-related source omitted]
  • Network accessline 35
    [Credential-related source omitted]
  • Network accessline 38
    it('is undefined when neither is present', () => {     expect(requestToken(reqWith({}), new URL('http://x/mcp/sse'))).toBeUndefined();
  • Network accessline 39
    expect(requestToken(reqWith({}), new URL('http://x/mcp/sse'))).toBeUndefined();
  • Network accessline 79
    it('passes for loopback Origin/Referer', () => {     expect(isLocalWebOrigin('http://localhost:5173', undefined)).toBe(true);
  • Network accessline 80
    expect(isLocalWebOrigin('http://localhost:5173', undefined)).toBe(true);
  • Network accessline 81
    expect(isLocalWebOrigin(undefined, 'http://127.0.0.1:9000/page')).toBe(true);
  • Network accessline 84
    it('fails for any non-loopback Origin or Referer (a rebound attacker page)', () => {     expect(isLocalWebOrigin('http://evil.com', undefined)).toBe(false);
  • Network accessline 85
    expect(isLocalWebOrigin('http://evil.com', undefined)).toBe(false);
  • Network accessline 86
    expect(isLocalWebOrigin(undefined, 'http://evil.com/x')).toBe(false);

server/src/portal/bridge/token-auth.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 47
    function hostnameOf(value: string): string | undefined {   const direct = value.includes('://') ? value : `http://${value}`;
  • Network accessline 48
    const direct = value.includes('://') ? value : `http://${value}`;
  • Network accessline 69
    * True when neither `Origin` nor `Referer` betrays a non-loopback web origin. Absent headers pass —  * non-browser local clients (the stdio MCP proxy, `reticle status`) send neither. Any present-but-  * non-loopback value fails, which is wh
  • Network accessline 70
    * non-browser local clients (the stdio MCP proxy, `reticle status`) send neither. Any present-but-  * non-loopback value fails, which is what kills a rebound `http://evil.com` page reading the plane.  */
  • Network accessline 71
    * non-loopback value fails, which is what kills a rebound `http://evil.com` page reading the plane.

server/src/portal/bridge/token-source.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 31
    [Credential-related source omitted]
  • Access to secretsline 32
    [Credential-related source omitted]
  • Access to secretsline 46
    [Credential-related source omitted]
  • Access to secretsline 54
    [Credential-related source omitted]
  • Access to secretsline 58
    [Credential-related source omitted]
  • Access to secretsline 62
    [Credential-related source omitted]
  • Access to secretsline 77
    [Credential-related source omitted]

server/src/portal/bridge/wrong-path.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 25
    const APP_ORIGIN = 'http://localhost:5173';
  • Network accessline 51
    expect(reason).toContain('asked for /ws ');     expect(reason).toContain(`listens on ${RETICLE_WS_PATH} only`);     expect(reason).toContain('http://localhost:5173');
  • Network accessline 52
    expect(reason).toContain(`listens on ${RETICLE_WS_PATH} only`);     expect(reason).toContain('http://localhost:5173');     expect(reason).not.toContain('pairing-secret-123');
  • Network accessline 53
    expect(reason).toContain('http://localhost:5173');
  • Network accessline 100
    await dial(port, '/ws', 'https://evil.example');

server/src/portal/bridge/wrong-path.ts

  • Executable scriptline 1
    Executable file

server/src/portal/input/download-capture.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 17
    body = 'short_url,target\r\nhttp://x/u02,"Sale, 50% off"\r\n';
  • Network accessline 45
    return {     requestId: 'r1',     request: { url: 'http://localhost:3500/api/links/export?search=u0', method: 'GET' },
  • Network accessline 46
    requestId: 'r1',     request: { url: 'http://localhost:3500/api/links/export?search=u0', method: 'GET' },     resourceType: 'Document',
  • Network accessline 47
    request: { url: 'http://localhost:3500/api/links/export?search=u0', method: 'GET' },
  • Network accessline 58
    cdp,     (d) => details.push(d),     () => 'http://localhost:3500/',
  • Network accessline 59
    (d) => details.push(d),     () => 'http://localhost:3500/',   );
  • Network accessline 60
    () => 'http://localhost:3500/',
  • Network accessline 102
    throw new Error('sink failed');       },       () => 'http://localhost:3500/',
  • Network accessline 103
    },       () => 'http://localhost:3500/',     );
  • Network accessline 104
    () => 'http://localhost:3500/',
  • Network accessline 143
    cdp,       (d) => details.push(d),       () => 'http://localhost:3500/',
  • Network accessline 144
    (d) => details.push(d),       () => 'http://localhost:3500/',     );
  • Network accessline 145
    () => 'http://localhost:3500/',

server/src/portal/input/download-capture.ts

  • Executable scriptline 1
    Executable file

server/src/portal/input/drive-error.ts

  • Executable scriptline 1
    Executable file

server/src/portal/input/drive-url-stamp.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    describe('the URL a drive opens', () => {   it('carries the opened stamp, so the page knows Reticle opened it', () => {     const url = new URL(stampedDriveUrl('http://localhost:3100/'));
  • Network accessline 17
    it('carries the opened stamp, so the page knows Reticle opened it', () => {     const url = new URL(stampedDriveUrl('http://localhost:3100/'));     expect(url.searchParams.get(RETICLE_URL_PARAM.OPENED)).toBe('1');
  • Network accessline 18
    const url = new URL(stampedDriveUrl('http://localhost:3100/'));
  • Network accessline 25
    const url = new URL(stampedDriveUrl('http://localhost:3100/'));
  • Network accessline 29
    it('keeps the app’s own query params and hash untouched', () => {     const url = new URL(stampedDriveUrl('http://localhost:3100/x?a=1&b=2#frag'));
  • Network accessline 30
    const url = new URL(stampedDriveUrl('http://localhost:3100/x?a=1&b=2#frag'));
  • Network accessline 37
    it('leaves a session the caller named exactly as it was', () => {     const already = `http://localhost:3100/?${RETICLE_URL_PARAM.SESSION}=mine`;
  • Network accessline 38
    const already = `http://localhost:3100/?${RETICLE_URL_PARAM.SESSION}=mine`;

server/src/portal/input/drive-url-stamp.ts

  • Executable scriptline 1
    Executable file

server/src/portal/input/driven-redaction.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 24
    const raw = { url: 'http://x/api', status: 200, headers: {} };
  • Network accessline 39
    const detail = buildNetworkDetail(       {         url: 'http://x/api',
  • Network accessline 40
    {         url: 'http://x/api',         status: 200,
  • Network accessline 41
    url: 'http://x/api',
  • Network accessline 53
    declareDrivenRedactionKeys('s1', ['x-tenant-licence']);     const detail = buildNetworkDetail(       { url: 'http://x', status: 200, headers: { 'X-Tenant-Licence': 'LK-9' } },
  • Network accessline 54
    const detail = buildNetworkDetail(       { url: 'http://x', status: 200, headers: { 'X-Tenant-Licence': 'LK-9' } },       drivenRedactionPolicy(),
  • Network accessline 55
    { url: 'http://x', status: 200, headers: { 'X-Tenant-Licence': 'LK-9' } },
  • Network accessline 63
    it('builds an identical detail with no declarations, policy or not', () => {     const raw = {       url: 'http://x/api',
  • Network accessline 64
    const raw = {       url: 'http://x/api',       status: 200,
  • Network accessline 65
    url: 'http://x/api',
  • Network accessline 75
    const detail = buildNetworkDetail(       {         url: 'http://x/api',
  • Network accessline 76
    {         url: 'http://x/api',         status: 200,
  • Network accessline 77
    url: 'http://x/api',
  • Network accessline 128
    protocolVersion: RETICLE_PROTOCOL_VERSION,     sessionId,     url: 'http://localhost/',
  • Network accessline 129
    sessionId,     url: 'http://localhost/',     title: 'App',
  • Network accessline 130
    url: 'http://localhost/',

server/src/portal/input/driven-redaction.ts

  • Executable scriptline 1
    Executable file

server/src/portal/input/js-coverage.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/input/js-coverage.ts

  • Executable scriptline 1
    Executable file

server/src/portal/input/launched-chromium.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/input/launched-early-capture.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 23
    };     const provider = new LaunchedRealInputProvider({       driveUrl: 'http://localhost:4312/',
  • Network accessline 24
    const provider = new LaunchedRealInputProvider({       driveUrl: 'http://localhost:4312/',       headless: true,
  • Network accessline 25
    driveUrl: 'http://localhost:4312/',

server/src/portal/input/launched-real-input.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 6
    const DRIVE_URL = 'http://localhost:3000/app';
  • Network accessline 339
    expect(await provider.isAvailableFor('http://other.example/')).toBe(false);

server/src/portal/input/launched-storage.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    * survived: it looked identical to "this subject has nothing worth seeding".  */ const pageStub = (url = 'http://localhost:4312/') => {
  • Network accessline 17
    */ const pageStub = (url = 'http://localhost:4312/') => {   const context = {
  • Network accessline 18
    const pageStub = (url = 'http://localhost:4312/') => {
  • Network accessline 33
    const providerWith = (page: unknown): LaunchedRealInputProvider => {   const p = new LaunchedRealInputProvider({     driveUrl: 'http://localhost:4312/',
  • Network accessline 34
    const p = new LaunchedRealInputProvider({     driveUrl: 'http://localhost:4312/',     headless: true,
  • Network accessline 35
    driveUrl: 'http://localhost:4312/',
  • Network accessline 54
    perform: vi.fn(),     };     expect(await fixturePortFor(halfProvider as never, 'http://x/')).toBeUndefined();
  • Network accessline 55
    };     expect(await fixturePortFor(halfProvider as never, 'http://x/')).toBeUndefined();   });
  • Network accessline 56
    expect(await fixturePortFor(halfProvider as never, 'http://x/')).toBeUndefined();
  • Network accessline 66
    const closed: string[] = [];     const tab = (name: string) => ({       url: () => `http://localhost:4312/${name}`,
  • Network accessline 67
    const tab = (name: string) => ({       url: () => `http://localhost:4312/${name}`,       isClosed: () => false,
  • Network accessline 68
    url: () => `http://localhost:4312/${name}`,
  • Network accessline 81
    };     const p = new LaunchedRealInputProvider({       driveUrl: 'http://localhost:4312/',
  • Network accessline 82
    const p = new LaunchedRealInputProvider({       driveUrl: 'http://localhost:4312/',       headless: true,
  • Network accessline 83
    driveUrl: 'http://localhost:4312/',

server/src/portal/input/network-detail.lossy-conformance.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 25
    it('reports the truncation when the body is cut', () => {     const detail = buildNetworkDetail({       url: 'https://api.example/save',
  • Network accessline 26
    const detail = buildNetworkDetail({       url: 'https://api.example/save',       method: 'POST',
  • Network accessline 27
    url: 'https://api.example/save',
  • Network accessline 37
    it('says nothing when the whole body fits, so the caveat means something when it appears', () => {     const detail = buildNetworkDetail({       url: 'https://api.example/save',
  • Network accessline 38
    const detail = buildNetworkDetail({       url: 'https://api.example/save',       method: 'POST',
  • Network accessline 39
    url: 'https://api.example/save',

server/src/portal/input/network-detail.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 13
    it('shapes an authoritative response into a NET_DETAIL payload, lower-casing header names', () => {     const detail = buildNetworkDetail({       url: 'https://api.example/order',
  • Network accessline 14
    const detail = buildNetworkDetail({       url: 'https://api.example/order',       method: 'POST',
  • Network accessline 15
    url: 'https://api.example/order',
  • Network accessline 20
    });     expect(detail).toEqual({       url: 'https://api.example/order',
  • Network accessline 21
    expect(detail).toEqual({       url: 'https://api.example/order',       method: 'POST',
  • Network accessline 22
    url: 'https://api.example/order',
  • Network accessline 30
    it('redacts credential headers — set-cookie/cookie/authorization never reach the journal or the agent', () => {     const detail = buildNetworkDetail({       url: 'https://api.example/login',
  • Network accessline 31
    const detail = buildNetworkDetail({       url: 'https://api.example/login',       method: 'POST',
  • Network accessline 32
    url: 'https://api.example/login',
  • Network accessline 51
    it('scrubs a known secret SHAPE echoed in an otherwise-benign header', () => {     const detail = buildNetworkDetail({       url: 'https://api.example/x',
  • Network accessline 52
    const detail = buildNetworkDetail({       url: 'https://api.example/x',       method: 'GET',
  • Network accessline 53
    url: 'https://api.example/x',
  • Network accessline 110
    let handler: ((res: ResponseLike) => void) | undefined;     const page: PageLike = {       url: () => 'http://app.test/',
  • Network accessline 111
    const page: PageLike = {       url: () => 'http://app.test/',       on: (event: 'response', fn: (res: ResponseLike) => void) => {
  • Network accessline 112
    url: () => 'http://app.test/',
  • Network accessline 119
    handler?.({       url: () => 'https://api/x',
  • Network accessline 120
    url: () => 'https://api/x',
  • Network accessline 125
    await Promise.resolve(); // flush the async headers → emit microtask     await Promise.resolve();     expect(events[0]).toMatchObject({ url: 'https://api/x', status: 200, method: 'GET' });
  • Network accessline 126
    await Promise.resolve();     expect(events[0]).toMatchObject({ url: 'https://api/x', status: 200, method: 'GET' });   });
  • Network accessline 127
    expect(events[0]).toMatchObject({ url: 'https://api/x', status: 200, method: 'GET' });
  • Network accessline 152
    it('carries the wire body onto the detail', () => {     const d = buildNetworkDetail({       url: 'https://api.test/generate',
  • Network accessline 153
    const d = buildNetworkDetail({       url: 'https://api.test/generate',       method: 'POST',
  • Network accessline 154
    url: 'https://api.test/generate',
  • Network accessline 163
    it('redacts credentials in the wire body — it is raw and unscrubbed from Playwright', () => {     const d = buildNetworkDetail({       url: 'https://api.test/login',
  • Network accessline 164
    const d = buildNetworkDetail({       url: 'https://api.test/login',       method: 'POST',
  • Network accessline 165
    url: 'https://api.test/login',
  • Network accessline 179
    const d = buildNetworkDetail({       url: 'https://api.test/login',
  • Network accessline 180
    url: 'https://api.test/login',
  • Network accessline 197
    const long = 'x'.repeat(9000);     const d = buildNetworkDetail({       url: 'https://api.test/login',
  • Network accessline 198
    const d = buildNetworkDetail({       url: 'https://api.test/login',       method: 'POST',
  • Network accessline 199
    url: 'https://api.test/login',
  • Network accessline 212
    const d = buildNetworkDetail({       url: 'https://api.test/login',
  • Network accessline 213
    url: 'https://api.test/login',
  • Network accessline 223
    it('bounds an enormous wire body rather than journaling it whole', () => {     const d = buildNetworkDetail({       url: 'https://api.test/upload',
  • Network accessline 224
    const d = buildNetworkDetail({       url: 'https://api.test/upload',       method: 'POST',
  • Network accessline 225
    url: 'https://api.test/upload',
  • Network accessline 235
    it('omits the field entirely when there is no body (a GET)', () => {     const d = buildNetworkDetail({       url: 'https://api.test/x',
  • Network accessline 236
    const d = buildNetworkDetail({       url: 'https://api.test/x',       method: 'GET',
  • Network accessline 237
    url: 'https://api.test/x',
  • Network accessline 251
    const merged = mergeNetworkDetail([       ev(EventType.NET_REQUEST, {         url: 'https://api.test/generate',
  • Network accessline 252
    ev(EventType.NET_REQUEST, {         url: 'https://api.test/generate',         method: 'POST',
  • Network accessline 253
    url: 'https://api.test/generate',
  • Network accessline 256
    }),       ev(EventType.NET_DETAIL, {         url: 'https://api.test/generate',
  • Network accessline 257
    ev(EventType.NET_DETAIL, {         url: 'https://api.test/generate',         method: 'POST',
  • Network accessline 258
    url: 'https://api.test/generate',
  • Network accessline 269
    const merged = mergeNetworkDetail([       ev(EventType.NET_REQUEST, {         url: 'https://api.test/a',
  • Network accessline 270
    ev(EventType.NET_REQUEST, {         url: 'https://api.test/a',         method: 'POST',
  • Network accessline 271
    url: 'https://api.test/a',
  • Network accessline 274
    }),       ev(EventType.NET_DETAIL, {         url: 'https://api.test/a',
  • Network accessline 275
    ev(EventType.NET_DETAIL, {         url: 'https://api.test/a',         method: 'POST',
  • Network accessline 276
    url: 'https://api.test/a',
  • Network accessline 297
    it('records the page url the request was issued from', () => {     const d = buildNetworkDetail({       url: 'http://localhost:8787/api/generate',
  • Network accessline 298
    const d = buildNetworkDetail({       url: 'http://localhost:8787/api/generate',       method: 'POST',
  • Network accessline 299
    url: 'http://localhost:8787/api/generate',
  • Network accessline 301
    status: 200,       headers: {},       pageUrl: 'http://localhost:4312/?reticle-bug=x',
  • Network accessline 302
    headers: {},       pageUrl: 'http://localhost:4312/?reticle-bug=x',     });
  • Network accessline 303
    pageUrl: 'http://localhost:4312/?reticle-bug=x',
  • Network accessline 304
    });     expect(d.pageUrl).toBe('http://localhost:4312/?reticle-bug=x');   });
  • Network accessline 305
    expect(d.pageUrl).toBe('http://localhost:4312/?reticle-bug=x');
  • Network accessline 308
    it('omits it when the driver could not say', () => {     const d = buildNetworkDetail({ url: 'http://x/y', status: 200, headers: {} });
  • Network accessline 309
    const d = buildNetworkDetail({ url: 'http://x/y', status: 200, headers: {} });
  • Network accessline 314
    const seen: NetworkDetail[] = [];     const page: PageLike = {       url: () => 'http://localhost:4312/dashboard',
  • Network accessline 315
    const page: PageLike = {       url: () => 'http://localhost:4312/dashboard',       on: (_e, handler) => {
  • Network accessline 316
    url: () => 'http://localhost:4312/dashboard',
  • Network accessline 317
    on: (_e, handler) => {         void handler({           url: () => 'http://localhost:8787/api/generate',
  • Network accessline 318
    void handler({           url: () => 'http://localhost:8787/api/generate',           status: () => 200,
  • Network accessline 319
    url: () => 'http://localhost:8787/api/generate',
  • Network accessline 326
    attachNetworkDetail(page, (d) => seen.push(d));     await new Promise((r) => setTimeout(r, 10));     expect(seen[0]?.pageUrl).toBe('http://localhost:4312/dashboard');
  • Network accessline 327
    await new Promise((r) => setTimeout(r, 10));     expect(seen[0]?.pageUrl).toBe('http://localhost:4312/dashboard');     expect(seen[0]?.requestBody).toBe('{"prompt":"hi"}');
  • Network accessline 328
    expect(seen[0]?.pageUrl).toBe('http://localhost:4312/dashboard');

server/src/portal/input/network-detail.ts

  • Executable scriptline 1
    Executable file

server/src/portal/input/network-detail.url.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    [Credential-related source omitted]
  • Network accessline 17
    [Credential-related source omitted]
  • Access to secretsline 17
    [Credential-related source omitted]
  • Network accessline 18
    [Credential-related source omitted]
  • Access to secretsline 18
    [Credential-related source omitted]
  • Network accessline 22
    it('redacts a presigned upload URL', () => {     const out = detailFor(       'https://bucket.s3.amazonaws.com/f.png?X-Amz-Credential=AKIAIOSFODNN7EXAMPLE%2F20260906&X-Amz-Signature=deadbeef&X-Amz-Expires=900',
  • Network accessline 23
    const out = detailFor(       'https://bucket.s3.amazonaws.com/f.png?X-Amz-Credential=AKIAIOSFODNN7EXAMPLE%2F20260906&X-Amz-Signature=deadbeef&X-Amz-Expires=900',     );
  • Network accessline 24
    'https://bucket.s3.amazonaws.com/f.png?X-Amz-Credential=AKIAIOSFODNN7EXAMPLE%2F20260906&X-Amz-Signature=deadbeef&X-Amz-Expires=900',
  • Network accessline 30
    it('redacts a single-use token embedded in the path', () => {     expect(detailFor('https://app.example/reset/AbC123deadbeef99')).toBe(
  • Network accessline 31
    expect(detailFor('https://app.example/reset/AbC123deadbeef99')).toBe(
  • Network accessline 32
    `https://app.example/reset/${REDACTED_VALUE}`,
  • Network accessline 36
    it('redacts userinfo credentials in the authority', () => {     expect(detailFor('https://alice:s3cr3t@api.example/data')).not.toContain('s3cr3t');
  • Network accessline 37
    expect(detailFor('https://alice:s3cr3t@api.example/data')).not.toContain('s3cr3t');
  • Network accessline 40
    it('leaves an ordinary URL byte-for-byte, and carries no urlRaw for it', () => {     const detail = buildNetworkDetail({       url: 'https://api.example/orders?page=2',
  • Network accessline 41
    const detail = buildNetworkDetail({       url: 'https://api.example/orders?page=2',       method: 'GET',
  • Network accessline 42
    url: 'https://api.example/orders?page=2',
  • Network accessline 45
    headers: {},     });     expect(detail.url).toBe('https://api.example/orders?page=2');
  • Network accessline 46
    });     expect(detail.url).toBe('https://api.example/orders?page=2');     expect(URL_RAW in detail).toBe(false);
  • Network accessline 47
    expect(detail.url).toBe('https://api.example/orders?page=2');
  • Network accessline 51
    [Credential-related source omitted]
  • Network accessline 52
    [Credential-related source omitted]
  • Network accessline 53
    [Credential-related source omitted]
  • Access to secretsline 53
    [Credential-related source omitted]
  • Network accessline 56
    [Credential-related source omitted]
  • Network accessline 57
    [Credential-related source omitted]
  • Network accessline 58
    [Credential-related source omitted]
  • Access to secretsline 58
    [Credential-related source omitted]
  • Network accessline 67
    */ describe('mergeNetworkDetail: a redacted request still finds its detail', () => {   const RAW = 'https://api.example/upload?X-Amz-Signature=deadbeef';
  • Network accessline 68
    describe('mergeNetworkDetail: a redacted request still finds its detail', () => {   const RAW = 'https://api.example/upload?X-Amz-Signature=deadbeef';   const REQUEST: ReticleEvent = {
  • Network accessline 69
    const RAW = 'https://api.example/upload?X-Amz-Signature=deadbeef';
  • Network accessline 73
    data: {       method: 'PUT',       url: `https://api.example/upload?X-Amz-Signature=${encodeURIComponent(REDACTED_VALUE)}`,
  • Network accessline 74
    method: 'PUT',       url: `https://api.example/upload?X-Amz-Signature=${encodeURIComponent(REDACTED_VALUE)}`,       [URL_RAW]: RAW,
  • Network accessline 75
    url: `https://api.example/upload?X-Amz-Signature=${encodeURIComponent(REDACTED_VALUE)}`,
  • Network accessline 106
    describe('buildNetworkDetail: a pathological fragment does not blow up the redaction pass', () => {   it('returns a long delimiter-free fragment unchanged, in linear time', () => {     const url = `https://app.example/page#${'-'.repeat(60_0
  • Network accessline 108
    const url = `https://app.example/page#${'-'.repeat(60_000)}`;
  • Network accessline 117
    [Credential-related source omitted]
  • Network accessline 118
    [Credential-related source omitted]
  • Network accessline 119
    [Credential-related source omitted]
  • Access to secretsline 119
    [Credential-related source omitted]
  • Network accessline 129
    it('leaves a plain anchor alone', () => {     const url = 'https://app.example/page#section-two';
  • Network accessline 130
    const url = 'https://app.example/page#section-two';

server/src/portal/input/network-mock-malformed.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/input/network-mock-tools.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 21
    ): ToolDeps {   const sessions: Partial<SessionManager> = {     resolve: () => ({ id: 'lease-1', url: 'http://localhost:5173/checkout' }) as never,
  • Network accessline 22
    const sessions: Partial<SessionManager> = {     resolve: () => ({ id: 'lease-1', url: 'http://localhost:5173/checkout' }) as never,   };
  • Network accessline 23
    resolve: () => ({ id: 'lease-1', url: 'http://localhost:5173/checkout' }) as never,
  • Network accessline 127
    expect(res.applied).toBe(true);     expect(res.count).toBe(1);     expect(captured?.url).toBe('http://localhost:5173/checkout');
  • Network accessline 129
    expect(captured?.url).toBe('http://localhost:5173/checkout');

server/src/portal/input/network-mock-tools.ts

  • Executable scriptline 1
    Executable file

server/src/portal/input/network-mock.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 6
    it('fulfills the first rule whose url substring matches, with defaults', () => {     const rules: MockRule[] = [{ urlContains: '/api/pay', status: 500 }];     expect(matchMock(rules, { url: 'https://app/api/pay', method: 'POST' })).toEqual(
  • Network accessline 7
    const rules: MockRule[] = [{ urlContains: '/api/pay', status: 500 }];     expect(matchMock(rules, { url: 'https://app/api/pay', method: 'POST' })).toEqual({       kind: 'fulfill',
  • Network accessline 8
    expect(matchMock(rules, { url: 'https://app/api/pay', method: 'POST' })).toEqual({
  • Network accessline 156
    const { route, calls } = recordingRoute('https://app/api/pay', 'POST');
  • Network accessline 187
    it('continues to the network rather than fulfilling an empty body', () => {     const out = matchMock([{ urlContains: '/api/save', delayMs: 300 }], {       url: 'https://app.test/api/save',
  • Network accessline 188
    const out = matchMock([{ urlContains: '/api/save', delayMs: 300 }], {       url: 'https://app.test/api/save',       method: 'POST',
  • Network accessline 189
    url: 'https://app.test/api/save',
  • Network accessline 196
    it('still fulfills when the rule actually says WHAT to return', () => {     const out = matchMock([{ urlContains: '/api/save', delayMs: 300, status: 500 }], {       url: 'https://app.test/api/save',
  • Network accessline 197
    const out = matchMock([{ urlContains: '/api/save', delayMs: 300, status: 500 }], {       url: 'https://app.test/api/save',       method: 'POST',
  • Network accessline 198
    url: 'https://app.test/api/save',
  • Network accessline 205
    it('a body alone still fulfills — saying WHAT is what makes it a substitution', () => {     const out = matchMock([{ urlContains: '/api/save', body: '{"ok":true}' }], {       url: 'https://app.test/api/save',
  • Network accessline 206
    const out = matchMock([{ urlContains: '/api/save', body: '{"ok":true}' }], {       url: 'https://app.test/api/save',       method: 'POST',
  • Network accessline 207
    url: 'https://app.test/api/save',
  • Network accessline 213
    it('abort still wins over everything — a failure is not a delay', () => {     const out = matchMock([{ urlContains: '/api/save', delayMs: 300, abort: true }], {       url: 'https://app.test/api/save',
  • Network accessline 214
    const out = matchMock([{ urlContains: '/api/save', delayMs: 300, abort: true }], {       url: 'https://app.test/api/save',       method: 'POST',
  • Network accessline 215
    url: 'https://app.test/api/save',

server/src/portal/input/network-mock.ts

  • Executable scriptline 1
    Executable file

server/src/portal/input/network-mutation.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 20
    const URL = 'http://localhost:4312/';
  • Network accessline 115
    perform: () => Promise.resolve({ ok: true }),       } as never,       'http://app.test/',
  • Network accessline 116
    } as never,       'http://app.test/',     );
  • Network accessline 117
    'http://app.test/',

server/src/portal/input/network-mutation.ts

  • Executable scriptline 1
    Executable file

server/src/portal/input/page-capture.ts

  • Executable scriptline 1
    Executable file

server/src/portal/input/real-input-click.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/input/real-input-press.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/input/real-input-press.ts

  • Executable scriptline 1
    Executable file

server/src/portal/input/real-input.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 105
    it('prefers an exact URL match, query string included', () => {     const list = pages('http://app/', 'http://app/?reticle-bug=paint-filter');
  • Network accessline 106
    const list = pages('http://app/', 'http://app/?reticle-bug=paint-filter');
  • Network accessline 107
    expect(selectPage(list, 'http://app/?reticle-bug=paint-filter')?.url()).toBe(
  • Network accessline 108
    'http://app/?reticle-bug=paint-filter',
  • Network accessline 112
    it('falls back to a stripped match when it is the only candidate (pushState case)', () => {     const list = pages('http://app/overview');
  • Network accessline 113
    const list = pages('http://app/overview');
  • Network accessline 114
    expect(selectPage(list, 'http://app/overview?session=x')?.url()).toBe('http://app/overview');
  • Network accessline 117
    it('REFUSES when the stripped match is ambiguous — two pages differing only by query', () => {     const list = pages(       'http://app/?reticle-bug=paint-filter',
  • Network accessline 118
    const list = pages(       'http://app/?reticle-bug=paint-filter',       'http://app/?reticle-bug=paint-invert',
  • Network accessline 119
    'http://app/?reticle-bug=paint-filter',
  • Network accessline 120
    'http://app/?reticle-bug=paint-invert',
  • Network accessline 123
    expect(selectPage(list, 'http://app/?reticle-bug=something-else')).toBeUndefined();
  • Network accessline 126
    it('returns undefined when nothing is close', () => {     expect(selectPage(pages('http://other/'), 'http://app/')).toBeUndefined();
  • Network accessline 127
    expect(selectPage(pages('http://other/'), 'http://app/')).toBeUndefined();
  • Network accessline 130
    it('an exact match wins even when other pages would strip to the same path', () => {     const list = pages('http://app/?a=1', 'http://app/?b=2', 'http://app/?c=3');
  • Network accessline 131
    const list = pages('http://app/?a=1', 'http://app/?b=2', 'http://app/?c=3');
  • Network accessline 132
    expect(selectPage(list, 'http://app/?b=2')?.url()).toBe('http://app/?b=2');
  • Network accessline 162
    ) =>     new CdpRealInputProvider({       cdpUrl: 'http://127.0.0.1:9222',
  • Network accessline 163
    new CdpRealInputProvider({       cdpUrl: 'http://127.0.0.1:9222',       connect: () =>
  • Network accessline 164
    cdpUrl: 'http://127.0.0.1:9222',
  • Network accessline 173
    it('attaches a response listener to the correlated page', async () => {     const page = fakePage('http://app/');
  • Network accessline 174
    const page = fakePage('http://app/');
  • Network accessline 175
    const provider = providerWith([page], () => undefined);     await provider.isAvailableFor('http://app/');     expect(page.handlers.length).toBe(1);
  • Network accessline 176
    await provider.isAvailableFor('http://app/');
  • Network accessline 183
    let connects = 0;     let live = true;     const page = fakePage('http://app/');
  • Network accessline 184
    let live = true;     const page = fakePage('http://app/');     const provider = new CdpRealInputProvider({
  • Network accessline 185
    const page = fakePage('http://app/');
  • Network accessline 186
    const provider = new CdpRealInputProvider({       cdpUrl: 'http://127.0.0.1:9222',       connect: () => {
  • Network accessline 187
    cdpUrl: 'http://127.0.0.1:9222',
  • Network accessline 195
    },     });     expect(await provider.isAvailableFor('http://app/')).toBe(true);
  • Network accessline 196
    });     expect(await provider.isAvailableFor('http://app/')).toBe(true);     expect(connects).toBe(1);
  • Network accessline 197
    expect(await provider.isAvailableFor('http://app/')).toBe(true);
  • Network accessline 200
    await provider.isAvailableFor('http://app/');
  • Network accessline 203
    live = false;     await provider.isAvailableFor('http://app/');
  • Network accessline 204
    await provider.isAvailableFor('http://app/');
  • Network accessline 208
    it('attaches ONCE per page, however many times the page is resolved', async () => {     const page = fakePage('http://app/');
  • Network accessline 209
    const page = fakePage('http://app/');
  • Network accessline 210
    const provider = providerWith([page], () => undefined);     await provider.isAvailableFor('http://app/');     await provider.isAvailableFor('http://app/');
  • Network accessline 211
    await provider.isAvailableFor('http://app/');
  • Network accessline 212
    await provider.isAvailableFor('http://app/');
  • Network accessline 213
    await provider.isAvailableFor('http://app/');
  • Network accessline 217
    it('does nothing when no callback was supplied — the feature stays opt-in', async () => {     const page = fakePage('http://app/');
  • Network accessline 218
    const page = fakePage('http://app/');
  • Network accessline 219
    const provider = providerWith([page]);     await provider.isAvailableFor('http://app/');     expect(page.handlers.length).toBe(0);
  • Network accessline 220
    await provider.isAvailableFor('http://app/');

server/src/portal/input/real-input.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 126
    [Credential-related source omitted]

server/src/portal/input/scroll-find.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/input/scroll-find.ts

  • Executable scriptline 1
    Executable file

server/src/portal/input/scroll-tools.ts

  • Executable scriptline 1
    Executable file

server/src/portal/input/storage-fixture.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 19
    const URL = 'http://localhost:4312/';
  • Network accessline 110
    cookies: [{ name: 'sid', value: 'abc', domain: 'localhost', path: '/' }],     origins: [       { origin: 'http://localhost:4312', localStorage: [{ name: 'token', value: 'xyz' }] },
  • Network accessline 111
    origins: [       { origin: 'http://localhost:4312', localStorage: [{ name: 'token', value: 'xyz' }] },       { origin: 'https://elsewhere.test', localStorage: [{ name: 'other', value: 'nope' }] },
  • Network accessline 112
    { origin: 'http://localhost:4312', localStorage: [{ name: 'token', value: 'xyz' }] },
  • Network accessline 113
    { origin: 'https://elsewhere.test', localStorage: [{ name: 'other', value: 'nope' }] },

server/src/portal/input/storage-fixture.ts

  • Executable scriptline 1
    Executable file

server/src/portal/input/tools.real-input.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 37
    const SESSION_URL = 'http://localhost:5173/app';

server/src/portal/input/viewport-tools.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 22
    function depsWith(realInput: RealInputProvider | undefined, pool?: ToolDeps['pool']): ToolDeps {   const sessions: Partial<SessionManager> = {     resolve: () => ({ url: 'http://localhost:5173/app' }) as never,
  • Network accessline 23
    const sessions: Partial<SessionManager> = {     resolve: () => ({ url: 'http://localhost:5173/app' }) as never,   };
  • Network accessline 24
    resolve: () => ({ url: 'http://localhost:5173/app' }) as never,
  • Network accessline 141
    })) as ViewportResult;     expect(res).toMatchObject({ applied: true, width: 1280, height: 800 });     expect(captured?.url).toBe('http://localhost:5173/app');
  • Network accessline 142
    expect(res).toMatchObject({ applied: true, width: 1280, height: 800 });     expect(captured?.url).toBe('http://localhost:5173/app');     expect(captured?.size).toEqual({ width: 1280, height: 800 });
  • Network accessline 143
    expect(captured?.url).toBe('http://localhost:5173/app');
  • Network accessline 255
    ): ToolDeps {     const sessions: Partial<SessionManager> = {       resolve: () => ({ id: LEASE, url: 'http://localhost:5173/app' }) as never,
  • Network accessline 256
    const sessions: Partial<SessionManager> = {       resolve: () => ({ id: LEASE, url: 'http://localhost:5173/app' }) as never,     };
  • Network accessline 257
    resolve: () => ({ id: LEASE, url: 'http://localhost:5173/app' }) as never,
  • Network accessline 258
    };     const pool = {       leaseUrl: (id: string) => (id === LEASE ? 'http://localhost:5173/app' : undefined),
  • Network accessline 259
    const pool = {       leaseUrl: (id: string) => (id === LEASE ? 'http://localhost:5173/app' : undefined),       setViewportLease: (id: string) => {
  • Network accessline 260
    leaseUrl: (id: string) => (id === LEASE ? 'http://localhost:5173/app' : undefined),

server/src/portal/input/viewport-tools.ts

  • Executable scriptline 1
    Executable file

server/src/portal/pool/bounded-close.ts

  • Executable scriptline 1
    Executable file

server/src/portal/pool/browser-pool.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 170
    const lease = await pool.acquire('http://localhost:3000/dashboard');
  • Network accessline 172
    expect(lease.sessionId).toBe('s1');     expect(lease.url).toBe('http://localhost:3000/dashboard');
  • Network accessline 173
    expect(lease.url).toBe('http://localhost:3000/dashboard');
  • Network accessline 175
    expect(browsers).toHaveLength(1);     expect(browsers[0]?.contexts[0]?.pages[0]?.gotoUrls).toEqual([       'http://localhost:3000/dashboard',
  • Network accessline 176
    expect(browsers[0]?.contexts[0]?.pages[0]?.gotoUrls).toEqual([       'http://localhost:3000/dashboard',     ]);
  • Network accessline 177
    'http://localhost:3000/dashboard',
  • Network accessline 188
    zeroInstallScript: () => '/* reader */',     });     const lease = await pool.acquire('http://localhost:3000/');
  • Network accessline 189
    });     const lease = await pool.acquire('http://localhost:3000/');     expect(await lease.injectReader?.()).toBe(true);
  • Network accessline 190
    const lease = await pool.acquire('http://localhost:3000/');
  • Network accessline 203
    zeroInstallScript: () => '/* reader */',     });     const lease = await pool.acquire('http://localhost:3000/icon.svg');
  • Network accessline 204
    });     const lease = await pool.acquire('http://localhost:3000/icon.svg');     const page = browsers[0]?.contexts[0]?.pages[0];
  • Network accessline 205
    const lease = await pool.acquire('http://localhost:3000/icon.svg');
  • Network accessline 214
    const { launch, browsers } = fakeLauncher();     const pool = new BrowserPool(launch, { maxContexts: 4, genSessionId: counterIds() });     const lease = await pool.acquire('http://localhost:3000/');
  • Network accessline 215
    const pool = new BrowserPool(launch, { maxContexts: 4, genSessionId: counterIds() });     const lease = await pool.acquire('http://localhost:3000/');     expect(await lease.injectReader?.()).toBe(false);
  • Network accessline 216
    const lease = await pool.acquire('http://localhost:3000/');
  • Network accessline 223
    const { launch, browsers } = fakeLauncher();     const pool = new BrowserPool(launch, { maxContexts: 4, genSessionId: counterIds() });     const lease = await pool.acquire('http://localhost:3000/');
  • Network accessline 224
    const pool = new BrowserPool(launch, { maxContexts: 4, genSessionId: counterIds() });     const lease = await pool.acquire('http://localhost:3000/');     const page = browsers[0]?.contexts[0]?.pages[0];
  • Network accessline 225
    const lease = await pool.acquire('http://localhost:3000/');
  • Network accessline 248
    const { launch, browsers } = fakeLauncher();     const pool = new BrowserPool(launch, { maxContexts: 4, genSessionId: counterIds() });     const lease = await pool.acquire('http://localhost:3000/');
  • Network accessline 249
    const pool = new BrowserPool(launch, { maxContexts: 4, genSessionId: counterIds() });     const lease = await pool.acquire('http://localhost:3000/');     pool.alias('app-named', lease.sessionId);
  • Network accessline 250
    const lease = await pool.acquire('http://localhost:3000/');
  • Network accessline 268
    const a = await pool.acquire('http://localhost:3000/a');
  • Network accessline 269
    const b = await pool.acquire('http://localhost:3000/b');
  • Network accessline 281
    const a = await pool.acquire('http://localhost:3000/a', { owner: 'agent-1' });
  • Network accessline 282
    await pool.acquire('http://localhost:4000/other', { owner: 'agent-1' });
  • Network accessline 283
    expect(pool.leaseIdOnOrigin('http://localhost:3000', 'agent-1')).toBe(a.sessionId);
  • Network accessline 284
    expect(pool.leaseIdOnOrigin('http://localhost:4000', 'agent-1')).toBe('s2');
  • Network accessline 285
    expect(pool.leaseIdOnOrigin('http://localhost:9999', 'agent-1')).toBeUndefined();
  • Network accessline 287
    pool.alias('app-name', a.sessionId);     expect(pool.leaseIdOnOrigin('http://localhost:3000', 'agent-1')).toBe('app-name');
  • Network accessline 288
    expect(pool.leaseIdOnOrigin('http://localhost:3000', 'agent-1')).toBe('app-name');
  • Network accessline 297
    const a = await pool.acquire('http://localhost:3000/a', { owner: 'agent-1' });
  • Network accessline 314
    const a = await pool.acquire('http://localhost:3000/a', { owner: 'agent-1' });
  • Network accessline 315
    expect(pool.leaseIdOnOrigin('http://localhost:3000', 'agent-1')).toBe(a.sessionId);
  • Network accessline 316
    expect(pool.leaseIdOnOrigin('http://localhost:3000', 'agent-2')).toBeUndefined();
  • Network accessline 318
    expect(pool.leaseIdOnOrigin('http://localhost:3000', undefined)).toBeUndefined();
  • Network accessline 319
    await pool.acquire('http://localhost:3000/b');
  • Network accessline 320
    expect(pool.leaseIdOnOrigin('http://localhost:3000', undefined)).toBeUndefined();
  • Network accessline 327
    const lease = await pool.acquire('http://localhost:3000/');
  • Network accessline 339
    const l1 = await pool.acquire('http://localhost:3000/1');
  • Network accessline 340
    const l2 = await pool.acquire('http://localhost:3000/2');
  • Network accessline 344
    const third = pool.acquire('http://localhost:3000/3');
  • Network accessline 364
    const { launch } = fakeLauncher();     const pool = new BrowserPool(launch, { maxContexts: 2, genSessionId: counterIds() });     const l1 = await pool.acquire('http://localhost:3000/1');
  • Network accessline 365
    const pool = new BrowserPool(launch, { maxContexts: 2, genSessionId: counterIds() });     const l1 = await pool.acquire('http://localhost:3000/1');     const l2 = await pool.acquire('http://localhost:3000/2', { whenFull: 'refuse' });
  • Network accessline 366
    const l1 = await pool.acquire('http://localhost:3000/1');
  • Network accessline 367
    const l2 = await pool.acquire('http://localhost:3000/2', { whenFull: 'refuse' });
  • Network accessline 369
    const refused = pool.acquire('http://localhost:3000/3', { whenFull: 'refuse' });
  • Network accessline 379
    await l2.release();     const l3 = await pool.acquire('http://localhost:3000/3', { whenFull: 'refuse' });
  • Network accessline 380
    const l3 = await pool.acquire('http://localhost:3000/3', { whenFull: 'refuse' });
  • Network accessline 384
    const queued = pool.acquire('http://localhost:3000/4');
  • Network accessline 399
    const acquires = Array.from({ length: 6 }, () => pool.acquire('http://localhost:3000/'));
  • Network accessline 427
    await pool.acquire('http://localhost:3000/');
  • Network accessline 433
    await pool.acquire('http://localhost:3000/again');
  • Network accessline 468
    await pool.acquire('http://x/a'); // browser up, one live lease
  • Network accessline 470
    await expect(pool.acquire('http://x/b')).rejects.toThrow(/crashed/);
  • Network accessline 476
    crashDuringGoto = false;     const lease = await pool.acquire('http://x/c');
  • Network accessline 477
    const lease = await pool.acquire('http://x/c');
  • Network accessline 491
    leaseTtlMs: 300_000,     });     const gone = await pool.acquire('http://localhost:3000/a', { owner: 'agent-1' });
  • Network accessline 492
    });     const gone = await pool.acquire('http://localhost:3000/a', { owner: 'agent-1' });     const back = await pool.acquire('http://localhost:3000/b', { owner: 'agent-1' });
  • Network accessline 493
    const gone = await pool.acquire('http://localhost:3000/a', { owner: 'agent-1' });
  • Network accessline 494
    const back = await pool.acquire('http://localhost:3000/b', { owner: 'agent-1' });
  • Network accessline 495
    const other = await pool.acquire('http://localhost:3000/c', { owner: 'agent-2' });
  • Network accessline 516
    leaseTtlMs: 300_000,     });     const lease = await pool.acquire('http://localhost:3000/a', { owner: 'agent-1' });
  • Network accessline 518
    const lease = await pool.acquire('http://localhost:3000/a', { owner: 'agent-1' });
  • Network accessline 530
    const { launch, browsers } = fakeLauncher();     const pool = new BrowserPool(launch, { maxContexts: 4, genSessionId: counterIds() });     const a = await pool.acquire('http://localhost:3000/a');
  • Network accessline 531
    const pool = new BrowserPool(launch, { maxContexts: 4, genSessionId: counterIds() });     const a = await pool.acquire('http://localhost:3000/a');     const b = await pool.acquire('http://localhost:3000/b');
  • Network accessline 532
    const a = await pool.acquire('http://localhost:3000/a');
  • Network accessline 533
    const b = await pool.acquire('http://localhost:3000/b');
  • Network accessline 539
    await pool.acquire('http://localhost:3000/c');
  • Network accessline 554
    const stale = await pool.acquire('http://localhost:3000/stale');
  • Network accessline 555
    const fresh = await pool.acquire('http://localhost:3000/fresh');
  • Network accessline 577
    * Without an alias those touches hit nothing. The lease then ages out at the TTL despite continuous    * activity and the reaper closes the context mid-flow, which is exactly the failure reported in    * https://github.com/reticlehq/reticle
  • Network accessline 578
    * activity and the reaper closes the context mid-flow, which is exactly the failure reported in    * https://github.com/reticlehq/reticle/issues/157: a session dying on the very next call that would    * have read a computed value, with the
  • Network accessline 579
    * https://github.com/reticlehq/reticle/issues/157: a session dying on the very next call that would
  • Network accessline 592
    const lease = await pool.acquire('http://localhost:3100/', { sessionId: 'lease-abc' });
  • Network accessline 607
    const { launch } = fakeLauncher();     const pool = new BrowserPool(launch, { maxContexts: 4, genSessionId: counterIds() });     const lease = await pool.acquire('http://localhost:3100/', { sessionId: 'lease-xyz' });
  • Network accessline 608
    const pool = new BrowserPool(launch, { maxContexts: 4, genSessionId: counterIds() });     const lease = await pool.acquire('http://localhost:3100/', { sessionId: 'lease-xyz' });     pool.alias('next-smoke', lease.sessionId);
  • Network accessline 609
    const lease = await pool.acquire('http://localhost:3100/', { sessionId: 'lease-xyz' });
  • Network accessline 632
    await pool.acquire('http://localhost:3000/1');
  • Network accessline 633
    const queued = pool.acquire('http://localhost:3000/2'); // waits for a slot
  • Network accessline 645
    const { launch, browsers } = fakeLauncher();     const pool = new BrowserPool(launch, { maxContexts: 2, genSessionId: counterIds() });     await pool.acquire('http://localhost:3000/');
  • Network accessline 646
    const pool = new BrowserPool(launch, { maxContexts: 2, genSessionId: counterIds() });     await pool.acquire('http://localhost:3000/');     await pool.shutdown();
  • Network accessline 647
    await pool.acquire('http://localhost:3000/');
  • Network accessline 648
    await pool.shutdown();     await expect(pool.acquire('http://localhost:3000/')).rejects.toThrow(/shut down/);     expect(browsers).toHaveLength(1); // no second browser launched after shutdown
  • Network accessline 649
    await expect(pool.acquire('http://localhost:3000/')).rejects.toThrow(/shut down/);
  • Network accessline 654
    const { launch } = fakeLauncher();     const pool = new BrowserPool(launch, { maxContexts: 1, genSessionId: counterIds() });     await pool.acquire('http://localhost:3000/1'); // fills the single slot
  • Network accessline 655
    const pool = new BrowserPool(launch, { maxContexts: 1, genSessionId: counterIds() });     await pool.acquire('http://localhost:3000/1'); // fills the single slot     const queued = pool.acquire('http://localhost:3000/2'); // waits
  • Network accessline 656
    await pool.acquire('http://localhost:3000/1'); // fills the single slot
  • Network accessline 657
    const queued = pool.acquire('http://localhost:3000/2'); // waits
  • Network accessline 666
    const { launch } = fakeLauncher();     const pool = new BrowserPool(launch, { maxContexts: 1, genSessionId: counterIds() });     const held = await pool.acquire('http://localhost:3000/held');
  • Network accessline 667
    const pool = new BrowserPool(launch, { maxContexts: 1, genSessionId: counterIds() });     const held = await pool.acquire('http://localhost:3000/held');     const controller = new AbortController();
  • Network accessline 668
    const held = await pool.acquire('http://localhost:3000/held');
  • Network accessline 669
    const controller = new AbortController();     const aborted = pool.acquire('http://localhost:3000/aborted', { signal: controller.signal });     expect(pool.queuedCount()).toBe(1);
  • Network accessline 670
    const aborted = pool.acquire('http://localhost:3000/aborted', { signal: controller.signal });
  • Network accessline 678
    await held.release();     const fresh = await pool.acquire('http://localhost:3000/fresh');
  • Network accessline 679
    const fresh = await pool.acquire('http://localhost:3000/fresh');
  • Network accessline 685
    const { launch } = fakeLauncher();     const pool = new BrowserPool(launch, { maxContexts: 1, genSessionId: counterIds() });     const held = await pool.acquire('http://localhost:3000/held');
  • Network accessline 687
    const held = await pool.acquire('http://localhost:3000/held');
  • Network accessline 689
    const controller = new AbortController();     const queued = pool.acquire('http://localhost:3000/queued', { signal: controller.signal });
  • Network accessline 690
    const queued = pool.acquire('http://localhost:3000/queued', { signal: controller.signal });
  • Network accessline 700
    const { launch } = fakeLauncher();     const pool = new BrowserPool(launch, { maxContexts: 1, genSessionId: counterIds() });     await pool.acquire('http://localhost:3000/held');
  • Network accessline 702
    await pool.acquire('http://localhost:3000/held');
  • Network accessline 704
    const controller = new AbortController();     const queued = pool.acquire('http://localhost:3000/queued', { signal: controller.signal });
  • Network accessline 705
    const queued = pool.acquire('http://localhost:3000/queued', { signal: controller.signal });
  • Network accessline 714
    const { launch, browsers } = fakeLauncher();     const pool = new BrowserPool(launch, { maxContexts: 4, genSessionId: counterIds() });     await pool.acquire('http://localhost:3000/a');
  • Network accessline 715
    const pool = new BrowserPool(launch, { maxContexts: 4, genSessionId: counterIds() });     await pool.acquire('http://localhost:3000/a');     const b = await pool.acquire('http://localhost:3000/b');
  • Network accessline 716
    await pool.acquire('http://localhost:3000/a');
  • Network accessline 717
    const b = await pool.acquire('http://localhost:3000/b');
  • Network accessline 732
    const { launch, browsers } = fakeLauncher();     const pool = new BrowserPool(launch, { maxContexts: 2, genSessionId: counterIds() });     await pool.acquire('http://localhost:3000/ok'); // launches the browser, succeeds
  • Network accessline 734
    await pool.acquire('http://localhost:3000/ok'); // launches the browser, succeeds
  • Network accessline 738
    browser.failNav = true;     }     await expect(pool.acquire('http://localhost:3000/hangs')).rejects.toThrow('nav timeout');
  • Network accessline 739
    }     await expect(pool.acquire('http://localhost:3000/hangs')).rejects.toThrow('nav timeout');     expect(pool.activeCount()).toBe(1); // the good lease is untouched; the bad one didn't leak a slot
  • Network accessline 740
    await expect(pool.acquire('http://localhost:3000/hangs')).rejects.toThrow('nav timeout');
  • Network accessline 744
    browser.failNav = false;     }     const ok = await pool.acquire('http://localhost:3000/ok2'); // the freed slot is reusable
  • Network accessline 745
    }     const ok = await pool.acquire('http://localhost:3000/ok2'); // the freed slot is reusable     expect(ok.sessionId).toBeDefined();
  • Network accessline 746
    const ok = await pool.acquire('http://localhost:3000/ok2'); // the freed slot is reusable
  • Network accessline 768
    await expect(pool.acquire('http://localhost:3000/')).rejects.toThrow('context boom');
  • Network accessline 771
    const ok = await pool.acquire('http://localhost:3000/ok');
  • Network accessline 786
    const acquiring = pool.acquire('http://localhost:3000/slow');
  • Network accessline 805
    const lease = await pool.acquire('http://localhost:3000/checkout');
  • Network accessline 835
    const acquiring = pool.acquire('http://localhost:3000/onload-confirm');
  • Network accessline 872
    const lease = await pool.acquire('http://localhost:3000/no-dialog-support');
  • Network accessline 883
    await pool.acquire('http://localhost:3000/');
  • Network accessline 885
    const page = browsers[0]?.contexts[0]?.pages[0];     expect(page?.callOrder).toEqual(['goto:http://localhost:3000/', 'bringToFront']);
  • Network accessline 886
    expect(page?.callOrder).toEqual(['goto:http://localhost:3000/', 'bringToFront']);
  • Network accessline 906
    const lease = await pool.acquire('http://localhost:3000/');
  • Access to secretsline 917
    [Credential-related source omitted]
  • Network accessline 922
    const lease = await pool.acquire('http://localhost:3000/dashboard', { seedStorage });
  • Network accessline 929
    expect(context?.cookies).toEqual([       { name: 'session_id', value: 'sess-abc', url: 'http://localhost:3000/' },
  • Network accessline 930
    { name: 'session_id', value: 'sess-abc', url: 'http://localhost:3000/' },
  • Network accessline 937
    local: seedStorage.local,       session: seedStorage.session,       targetOrigin: 'http://localhost:3000',
  • Network accessline 938
    session: seedStorage.session,       targetOrigin: 'http://localhost:3000',     });
  • Network accessline 939
    targetOrigin: 'http://localhost:3000',
  • Network accessline 941
    expect(page?.callOrder).toEqual([       'addInitScript',       'goto:http://localhost:3000/dashboard',
  • Network accessline 942
    'addInitScript',       'goto:http://localhost:3000/dashboard',       'disposeInitScript',
  • Network accessline 943
    'goto:http://localhost:3000/dashboard',
  • Network accessline 954
    await expect(       pool.acquire('http://localhost:3000/fail', {
  • Network accessline 955
    pool.acquire('http://localhost:3000/fail', {
  • Network accessline 973
    await pool.acquire('http://localhost:3000/dashboard');
  • Network accessline 978
    expect(context?.cookies).toHaveLength(0);     expect(page?.initScripts).toHaveLength(0);     expect(page?.callOrder).toEqual(['goto:http://localhost:3000/dashboard', 'bringToFront']);
  • Network accessline 979
    expect(page?.initScripts).toHaveLength(0);     expect(page?.callOrder).toEqual(['goto:http://localhost:3000/dashboard', 'bringToFront']);   });
  • Network accessline 980
    expect(page?.callOrder).toEqual(['goto:http://localhost:3000/dashboard', 'bringToFront']);
  • Network accessline 987
    const lease1 = await pool.acquire('http://localhost:3000/app', {
  • Network accessline 988
    seedStorage: { local: { user: 'user-1' } },     });     const lease2 = await pool.acquire('http://localhost:3000/app', {
  • Network accessline 989
    });     const lease2 = await pool.acquire('http://localhost:3000/app', {       seedStorage: { local: { user: 'user-2' } },
  • Network accessline 990
    const lease2 = await pool.acquire('http://localhost:3000/app', {
  • Network accessline 1000
    local: { user: 'user-1' },       session: undefined,       targetOrigin: 'http://localhost:3000',
  • Network accessline 1001
    session: undefined,       targetOrigin: 'http://localhost:3000',     });
  • Network accessline 1002
    targetOrigin: 'http://localhost:3000',
  • Network accessline 1005
    local: { user: 'user-2' },       session: undefined,       targetOrigin: 'http://localhost:3000',
  • Network accessline 1006
    session: undefined,       targetOrigin: 'http://localhost:3000',     });
  • Network accessline 1007
    targetOrigin: 'http://localhost:3000',
  • Network accessline 1026
    const lease = await pool.acquire('http://localhost:3000/books', { initScript: STUB });
  • Network accessline 1031
    expect(page?.callOrder.indexOf('addInitScript')).toBeLessThan(       page?.callOrder.indexOf('goto:http://localhost:3000/books') ?? -1,
  • Network accessline 1032
    page?.callOrder.indexOf('goto:http://localhost:3000/books') ?? -1,
  • Network accessline 1041
    const lease = await pool.acquire('http://localhost:3000/books', { initScript: STUB });
  • Network accessline 1055
    const lease = await pool.acquire('http://localhost:3000/books', { initScript: STUB });
  • Network accessline 1066
    const lease = await pool.acquire('http://localhost:3000/');
  • Network accessline 1076
    const lease = await pool.acquire('http://localhost:3000/books', { initScript: STUB });
  • Network accessline 1083
    const plain = await pool.acquire('http://localhost:3001/');
  • Network accessline 1111
    await expect(pool.acquire('http://localhost:3000/books', { initScript: STUB })).rejects.toThrow(
  • Network accessline 1129
    launchHeaded: headed.launch,     });     await pool.acquire('http://localhost:3000/');
  • Network accessline 1130
    });     await pool.acquire('http://localhost:3000/');     expect([headless.browsers.length, headed.browsers.length]).toEqual([1, 0]);
  • Network accessline 1131
    await pool.acquire('http://localhost:3000/');
  • Network accessline 1132
    expect([headless.browsers.length, headed.browsers.length]).toEqual([1, 0]);     const lease = await pool.acquire('http://localhost:3000/cart', { headed: true });     expect([headless.browsers.length, headed.browsers.length]).toEqual([1, 1])
  • Network accessline 1133
    const lease = await pool.acquire('http://localhost:3000/cart', { headed: true });
  • Network accessline 1134
    expect([headless.browsers.length, headed.browsers.length]).toEqual([1, 1]);     expect(headed.browsers[0]?.contexts[0]?.pages[0]?.gotoUrls).toEqual([       'http://localhost:3000/cart',
  • Network accessline 1135
    expect(headed.browsers[0]?.contexts[0]?.pages[0]?.gotoUrls).toEqual([       'http://localhost:3000/cart',     ]);
  • Network accessline 1136
    'http://localhost:3000/cart',
  • Network accessline 1147
    launchHeaded: headed.launch,     });     const kept = await pool.acquire('http://localhost:3000/');
  • Network accessline 1148
    });     const kept = await pool.acquire('http://localhost:3000/');     await pool.acquire('http://localhost:3000/', { headed: true });
  • Network accessline 1149
    const kept = await pool.acquire('http://localhost:3000/');
  • Network accessline 1150
    await pool.acquire('http://localhost:3000/', { headed: true });
  • Network accessline 1155
    await pool.acquire('http://localhost:3000/', { headed: true });
  • Network accessline 1162
    genSessionId: counterIds(),     });     await expect(pool.acquire('http://localhost:3000/', { headed: true })).rejects.toThrow(
  • Network accessline 1163
    });     await expect(pool.acquire('http://localhost:3000/', { headed: true })).rejects.toThrow(       /no headed browser/,
  • Network accessline 1164
    await expect(pool.acquire('http://localhost:3000/', { headed: true })).rejects.toThrow(

server/src/portal/pool/browser-pool.ts

  • Executable scriptline 1
    Executable file

server/src/portal/pool/context-permissions.ts

  • Executable scriptline 1
    Executable file

server/src/portal/pool/csp-widen.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 14
    describe('allowDaemonInCsp', () => {   it('appends the daemon origin to connect-src and keeps every other directive', () => {     const policy = "default-src 'self'; connect-src 'self' https://api.example.com; img-src *";
  • Network accessline 15
    it('appends the daemon origin to connect-src and keeps every other directive', () => {     const policy = "default-src 'self'; connect-src 'self' https://api.example.com; img-src *";     expect(allowDaemonInCsp(policy, DAEMON)).toEqual({
  • Network accessline 16
    const policy = "default-src 'self'; connect-src 'self' https://api.example.com; img-src *";
  • Network accessline 17
    expect(allowDaemonInCsp(policy, DAEMON)).toEqual({       policy: `default-src 'self'; connect-src 'self' https://api.example.com ${DAEMON}; img-src *`,       changed: true,
  • Network accessline 18
    policy: `default-src 'self'; connect-src 'self' https://api.example.com ${DAEMON}; img-src *`,
  • Network accessline 23
    it('adds a connect-src that copies default-src when the policy has only default-src', () => {     const policy = "default-src 'self' https://cdn.example.com; script-src 'self'";
  • Network accessline 24
    const policy = "default-src 'self' https://cdn.example.com; script-src 'self'";
  • Network accessline 25
    expect(allowDaemonInCsp(policy, DAEMON)).toEqual({       policy: `${policy}; connect-src 'self' https://cdn.example.com ${DAEMON}`,       changed: true,
  • Network accessline 26
    policy: `${policy}; connect-src 'self' https://cdn.example.com ${DAEMON}`,

server/src/portal/pool/csp-widen.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 94
    request(): { resourceType(): string; frame(): { parentFrame(): unknown } };   fallback(): Promise<void>;   fetch(opts: { maxRedirects: number }): Promise<R>;
  • Network accessline 95
    fallback(): Promise<void>;   fetch(opts: { maxRedirects: number }): Promise<R>;   fulfill(opts: { response: R; headers?: Record<string, string>; body?: string }): Promise<void>;
  • Network accessline 96
    fetch(opts: { maxRedirects: number }): Promise<R>;
  • Network accessline 137
    response = await route.fetch({ maxRedirects: 0 });

server/src/portal/pool/lease-alias-capabilities.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 59
    installMocks = vi.fn(() => Promise.resolve());   pool = new BrowserPool(launcher({ installMocks }), { maxContexts: 2, genSessionId: ids });   const lease = await pool.acquire('http://app.test/');
  • Network accessline 60
    pool = new BrowserPool(launcher({ installMocks }), { maxContexts: 2, genSessionId: ids });   const lease = await pool.acquire('http://app.test/');   leaseId = lease.sessionId;
  • Network accessline 61
    const lease = await pool.acquire('http://app.test/');

server/src/portal/pool/lease-close-bound.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 71
    leaseTtlMs: TTL_MS,     });     const lease = await pool.acquire('http://localhost:3000/');
  • Network accessline 72
    });     const lease = await pool.acquire('http://localhost:3000/');     clock += TTL_MS + 1;
  • Network accessline 73
    const lease = await pool.acquire('http://localhost:3000/');
  • Network accessline 89
    const next = await pool.acquire('http://localhost:3000/', { whenFull: 'refuse' });

server/src/portal/pool/lease-emulation.ts

  • Executable scriptline 1
    Executable file

server/src/portal/pool/lease-https-errors.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 43
    await pool.acquire('https://app.test:5173/', { sessionId: 'plain' });
  • Network accessline 44
    await pool.acquire('https://app.test:5173/', { sessionId: 'opted', ignoreHTTPSErrors: true });
  • Network accessline 51
    describe('a navigation the certificate stopped', () => {   const err = new Error(     'page.goto: net::ERR_CERT_AUTHORITY_INVALID at https://app.test:5173/?__reticle_session=x\nCall log:',
  • Network accessline 52
    const err = new Error(     'page.goto: net::ERR_CERT_AUTHORITY_INVALID at https://app.test:5173/?__reticle_session=x\nCall log:',   );
  • Network accessline 53
    'page.goto: net::ERR_CERT_AUTHORITY_INVALID at https://app.test:5173/?__reticle_session=x\nCall log:',
  • Network accessline 56
    it('is reported as a certificate error that names the opt-in, not as a missing app', () => {     const message = navFailureMessage('https://app.test:5173/', err);
  • Network accessline 57
    const message = navFailureMessage('https://app.test:5173/', err);
  • Network accessline 63
    it('leaves a refused connection asking whether the app is running', () => {     const refused = new Error('page.goto: net::ERR_CONNECTION_REFUSED at https://app.test:5173/');
  • Network accessline 64
    const refused = new Error('page.goto: net::ERR_CONNECTION_REFUSED at https://app.test:5173/');
  • Network accessline 65
    expect(navFailureMessage('https://app.test:5173/', refused)).toContain(NAV_FAILED_QUESTION);

server/src/portal/pool/lease-marker-stamp.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 14
    const SESSION = RETICLE_URL_PARAM.SESSION; const ORIGIN = 'http://localhost:3000';
  • Network accessline 15
    const ORIGIN = 'http://localhost:3000';
  • Network accessline 80
    it('does not write the lease id into another origin (an identity provider) or a child frame', () => {     const idp = fakeDocument('https://idp.example.com/sso');
  • Network accessline 81
    const idp = fakeDocument('https://idp.example.com/sso');
  • Network accessline 82
    stampLeaseMarker(arg('lease-a'));     expect(idp.href()).toBe('https://idp.example.com/sso');     const framed = fakeDocument(`${ORIGIN}/embed`, true);
  • Network accessline 83
    expect(idp.href()).toBe('https://idp.example.com/sso');
  • Network accessline 131
    stampLeaseMarker(arg('lease-a'));     expect(framed.stored.size).toBe(0);     const idp = fakeDocument('https://idp.example.com/sso');
  • Network accessline 132
    expect(framed.stored.size).toBe(0);     const idp = fakeDocument('https://idp.example.com/sso');     stampLeaseMarker(arg('lease-a'));
  • Network accessline 133
    const idp = fakeDocument('https://idp.example.com/sso');

server/src/portal/pool/lease-marker-stamp.ts

  • Executable scriptline 1
    Executable file

server/src/portal/pool/lease-off-loopback-reader.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 72
    await pool.acquire('http://localhost:5173/');
  • Network accessline 73
    await pool.acquire('https://preview.example.com/');
  • Network accessline 90
    await pool.acquire('https://preview.example.com/');
  • Network accessline 91
    await pool.acquire('http://localhost:5173/');
  • Network accessline 112
    const lease = await pool.acquire('https://preview.example.com/a');
  • Network accessline 115
    expect(asked).toEqual(['https://preview.example.com/a']);
  • Network accessline 132
    const script = load('https://preview.example.com/a') ?? '';
  • Network accessline 134
    expect(minted).toEqual(['https://preview.example.com']);
  • Network accessline 148
    expect(load('http://localhost:5173/')).toContain('machine-pairing-token');

server/src/portal/pool/lease-page-error.early-capture.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/pool/lease-page-error.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 48
    onPageError: sink,     });     const lease = await pool.acquire('http://app.test/');
  • Network accessline 50
    const lease = await pool.acquire('http://app.test/');
  • Network accessline 78
    await pool.acquire('http://app.test/');
  • Network accessline 84
    it('works when the page fake has no onPageError at all', async () => {     const pool = new BrowserPool(launcher(), { maxContexts: 2, genSessionId: ids });     const lease = await pool.acquire('http://app.test/');
  • Network accessline 85
    const pool = new BrowserPool(launcher(), { maxContexts: 2, genSessionId: ids });     const lease = await pool.acquire('http://app.test/');     expect(lease.sessionId).toContain('lease-');
  • Network accessline 86
    const lease = await pool.acquire('http://app.test/');
  • Network accessline 96
    onLeaseClosed,     });     const lease = await pool.acquire('http://app.test/');
  • Network accessline 98
    const lease = await pool.acquire('http://app.test/');

server/src/portal/pool/lease-page-error.ts

  • Executable scriptline 1
    Executable file

server/src/portal/pool/lease-page-reads.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/pool/lease-permissions.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 23
    const APP = 'http://localhost:5173/dashboard?__reticle_session=x';
  • Network accessline 24
    const ORIGIN = 'http://localhost:5173';
  • Network accessline 188
    const PREVIEW = 'https://preview.example.app/orders';
  • Network accessline 191
    const calls: string[] = [];     await poolOn(recordingContext(calls)).acquire(PREVIEW);     expect(calls).toEqual([`grant ${LOCAL_NETWORK_ACCESS} @ https://preview.example.app`, 'goto']);
  • Network accessline 192
    await poolOn(recordingContext(calls)).acquire(PREVIEW);     expect(calls).toEqual([`grant ${LOCAL_NETWORK_ACCESS} @ https://preview.example.app`, 'goto']);   });
  • Network accessline 193
    expect(calls).toEqual([`grant ${LOCAL_NETWORK_ACCESS} @ https://preview.example.app`, 'goto']);

server/src/portal/pool/lease-reaper.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/pool/lease-reaper.ts

  • Executable scriptline 1
    Executable file

server/src/portal/pool/lease-screenshot-hides-chrome.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/pool/lease-viewport.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 51
    const setViewport = vi.fn(() => Promise.resolve());     const pool = poolWith({ setViewport });     const lease = await pool.acquire('http://app.test/');
  • Network accessline 52
    const pool = poolWith({ setViewport });     const lease = await pool.acquire('http://app.test/');     expect(await pool.setViewportLease(lease.sessionId, MOBILE)).toBe(true);
  • Network accessline 53
    const lease = await pool.acquire('http://app.test/');
  • Network accessline 58
    it('answers to the id the SDK registered, not only the lease key', async () => {     const pool = poolWith();     const lease = await pool.acquire('http://app.test/');
  • Network accessline 59
    const pool = poolWith();     const lease = await pool.acquire('http://app.test/');     pool.alias('s-registered', lease.sessionId);
  • Network accessline 60
    const lease = await pool.acquire('http://app.test/');
  • Network accessline 68
    it('reports FALSE for a page that cannot resize, rather than claiming it did', async () => {     const pool = poolWith({ setViewport: undefined });     const lease = await pool.acquire('http://app.test/');
  • Network accessline 69
    const pool = poolWith({ setViewport: undefined });     const lease = await pool.acquire('http://app.test/');     expect(await pool.setViewportLease(lease.sessionId, MOBILE)).toBe(false);
  • Network accessline 70
    const lease = await pool.acquire('http://app.test/');
  • Network accessline 76
    setViewport: () => Promise.reject(new Error('target closed')),     });     const lease = await pool.acquire('http://app.test/');
  • Network accessline 77
    });     const lease = await pool.acquire('http://app.test/');     expect(await pool.setViewportLease(lease.sessionId, MOBILE)).toBe(false);
  • Network accessline 78
    const lease = await pool.acquire('http://app.test/');
  • Network accessline 88
    it('reports the size the page itself reports', async () => {     const pool = poolWith({ evaluate: () => Promise.resolve([390, 844]) });     const lease = await pool.acquire('http://app.test/');
  • Network accessline 89
    const pool = poolWith({ evaluate: () => Promise.resolve([390, 844]) });     const lease = await pool.acquire('http://app.test/');     expect(await pool.viewportOfLease(lease.sessionId)).toEqual(MOBILE);
  • Network accessline 90
    const lease = await pool.acquire('http://app.test/');
  • Network accessline 94
    it('reports nothing when the page cannot be read, rather than a size it did not report', async () => {     const pool = poolWith({ evaluate: () => Promise.reject(new Error('target closed')) });     const lease = await pool.acquire('http://a
  • Network accessline 95
    const pool = poolWith({ evaluate: () => Promise.reject(new Error('target closed')) });     const lease = await pool.acquire('http://app.test/');     expect(await pool.viewportOfLease(lease.sessionId)).toBeUndefined();
  • Network accessline 96
    const lease = await pool.acquire('http://app.test/');

server/src/portal/pool/loopback-csp-probe.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 31
    const result = await widenLeaseCsp(       contextRecording(origins),       'http://127.0.0.1:3194/',
  • Network accessline 32
    contextRecording(origins),       'http://127.0.0.1:3194/',       DAEMON,
  • Network accessline 33
    'http://127.0.0.1:3194/',
  • Network accessline 43
    await widenLeaseCsp(       contextRecording(origins),       'http://localhost:3194/',
  • Network accessline 44
    contextRecording(origins),       'http://localhost:3194/',       DAEMON,
  • Network accessline 45
    'http://localhost:3194/',
  • Network accessline 57
    const result = await widenLeaseCsp(       contextRecording(origins),       'http://127.0.0.1:5173/',
  • Network accessline 58
    contextRecording(origins),       'http://127.0.0.1:5173/',       DAEMON,
  • Network accessline 59
    'http://127.0.0.1:5173/',
  • Network accessline 69
    await widenLeaseCsp(       contextRecording(origins),       'http://127.0.0.1:5173/',
  • Network accessline 70
    contextRecording(origins),       'http://127.0.0.1:5173/',       DAEMON,
  • Network accessline 71
    'http://127.0.0.1:5173/',
  • Network accessline 78
    it('installs no route when the page cannot be probed', async () => {     const origins: string[] = [];     await widenLeaseCsp(contextRecording(origins), 'http://127.0.0.1:5173/', DAEMON, () =>
  • Network accessline 79
    const origins: string[] = [];     await widenLeaseCsp(contextRecording(origins), 'http://127.0.0.1:5173/', DAEMON, () =>       Promise.reject(new Error('ECONNREFUSED')),
  • Network accessline 80
    await widenLeaseCsp(contextRecording(origins), 'http://127.0.0.1:5173/', DAEMON, () =>

server/src/portal/pool/max-contexts.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/pool/nav-options.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 3
    *  * Measured on the sveltekit fixture with RETICLE_TRACE: `reticle_lease` took 30,501ms and failed  * with "could not open http://localhost:5180/ — is the app running?". The app WAS running. Playwright's
  • Network accessline 4
    * Measured on the sveltekit fixture with RETICLE_TRACE: `reticle_lease` took 30,501ms and failed  * with "could not open http://localhost:5180/ — is the app running?". The app WAS running. Playwright's  * `page.goto` defaults to `waitUntil:
  • Network accessline 5
    * with "could not open http://localhost:5180/ — is the app running?". The app WAS running. Playwright's

server/src/portal/pool/page-error-journal.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 45
    const MODULE_ERROR: PooledPageError = {   message: 'boom at module evaluation',   stack: 'Error: boom at module evaluation\n    at http://app.test/main.js:1:7',
  • Network accessline 46
    message: 'boom at module evaluation',   stack: 'Error: boom at module evaluation\n    at http://app.test/main.js:1:7', };
  • Network accessline 47
    stack: 'Error: boom at module evaluation\n    at http://app.test/main.js:1:7',
  • Network accessline 66
    const session = fakeSession('sess-1', 'http://app.test/?__reticle_session=lease-1');
  • Network accessline 78
    expect(event.data['message']).toBe('boom at module evaluation');     expect(event.data['kind']).toBe('pageerror');     expect(event.data['stack']).toContain('http://app.test/main.js:1:7');
  • Network accessline 80
    expect(event.data['stack']).toContain('http://app.test/main.js:1:7');
  • Network accessline 82
    expect(event.data['source']).toBe('http://app.test/main.js');
  • Network accessline 108
    data: {         message: 'Uncaught Error: boom at module evaluation',         source: 'http://app.test/main.js',
  • Network accessline 109
    message: 'Uncaught Error: boom at module evaluation',         source: 'http://app.test/main.js',         line: 1,
  • Network accessline 110
    source: 'http://app.test/main.js',
  • Network accessline 128
    const session = fakeSession('sess-1', 'http://app.test/?__reticle_session=lease-1');
  • Network accessline 147
    state.session = fakeSession('sess-1', 'http://app.test/?__reticle_session=lease-1');

server/src/portal/pool/page-error-journal.ts

  • Executable scriptline 1
    Executable file

server/src/portal/pool/playwright-launcher.https-errors.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/pool/playwright-launcher.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/pool/playwright-launcher.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 91
    [Credential-related source omitted]
  • Access to secretsline 92
    [Credential-related source omitted]

server/src/portal/pool/playwright-launcher.viewport.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/pool/pool-contract.ts

  • Executable scriptline 1
    Executable file

server/src/portal/pool/pool-hover.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 46
    const hover = vi.fn(() => Promise.resolve());     const pool = poolWith({ hover });     const lease = await pool.acquire('http://app.test/');
  • Network accessline 47
    const pool = poolWith({ hover });     const lease = await pool.acquire('http://app.test/');     expect(await pool.hoverLease(lease.sessionId, 120, 40)).toBe(true);
  • Network accessline 48
    const lease = await pool.acquire('http://app.test/');
  • Network accessline 60
    it('answers false when the page cannot move a pointer, rather than claiming the hover landed', async () => {     const pool = poolWith({ hover: undefined });     const lease = await pool.acquire('http://app.test/');
  • Network accessline 61
    const pool = poolWith({ hover: undefined });     const lease = await pool.acquire('http://app.test/');     expect(await pool.hoverLease(lease.sessionId, 10, 10)).toBe(false);
  • Network accessline 62
    const lease = await pool.acquire('http://app.test/');
  • Network accessline 73
    },     });     const lease = await pool.acquire('http://app.test/');
  • Network accessline 74
    });     const lease = await pool.acquire('http://app.test/');     expect(await pool.hoverLease(lease.sessionId, 1, 1)).toBe(false);
  • Network accessline 75
    const lease = await pool.acquire('http://app.test/');
  • Network accessline 87
    leaseTtlMs: 500,     });     const lease = await pool.acquire('http://app.test/');
  • Network accessline 88
    });     const lease = await pool.acquire('http://app.test/');     now += 400;
  • Network accessline 89
    const lease = await pool.acquire('http://app.test/');
  • Network accessline 101
    const press = vi.fn(() => Promise.resolve({ performed: true, inputMode: 'real' as const }));     const pool = poolWith({ press });     const lease = await pool.acquire('http://app.test/');
  • Network accessline 102
    const pool = poolWith({ press });     const lease = await pool.acquire('http://app.test/');     expect(pool.hasKeyboard(lease.sessionId)).toBe(true);
  • Network accessline 103
    const lease = await pool.acquire('http://app.test/');
  • Network accessline 112
    it('has no keyboard for a session that is not a lease, or a page without one', async () => {     const pool = poolWith({ press: undefined });     const lease = await pool.acquire('http://app.test/');
  • Network accessline 113
    const pool = poolWith({ press: undefined });     const lease = await pool.acquire('http://app.test/');     expect(pool.hasKeyboard('s-somebody-elses-tab')).toBe(false);
  • Network accessline 114
    const lease = await pool.acquire('http://app.test/');
  • Network accessline 138
    { maxContexts: 1, genSessionId: ids },     );     await pool.acquire('http://localhost:5173/', {
  • Network accessline 139
    );     await pool.acquire('http://localhost:5173/', {       emulate: {
  • Network accessline 140
    await pool.acquire('http://localhost:5173/', {
  • Network accessline 156
    const emulateMedia = vi.fn(() => Promise.resolve());     const pool = poolWith({ emulateMedia });     const lease = await pool.acquire('http://app.test/');
  • Network accessline 157
    const pool = poolWith({ emulateMedia });     const lease = await pool.acquire('http://app.test/');     expect(await pool.emulateLease(lease.sessionId, { reducedMotion: 'reduce' })).toBe(true);
  • Network accessline 158
    const lease = await pool.acquire('http://app.test/');

server/src/portal/pool/pool-lease.ts

  • Executable scriptline 1
    Executable file

server/src/portal/pool/pool-mocks.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 46
    const installMocks = vi.fn(() => Promise.resolve());     const pool = poolWith({ installMocks });     const lease = await pool.acquire('http://app.test/');
  • Network accessline 47
    const pool = poolWith({ installMocks });     const lease = await pool.acquire('http://app.test/');     const rules = [{ urlContains: '/api/pay', status: 500 }];
  • Network accessline 48
    const lease = await pool.acquire('http://app.test/');
  • Network accessline 61
    it('answers false when the page cannot intercept, rather than claiming the stub applied', async () => {     const pool = poolWith({ installMocks: undefined });     const lease = await pool.acquire('http://app.test/');
  • Network accessline 62
    const pool = poolWith({ installMocks: undefined });     const lease = await pool.acquire('http://app.test/');     expect(await pool.setMocksLease(lease.sessionId, [{ urlContains: '/x' }])).toBe(false);
  • Network accessline 63
    const lease = await pool.acquire('http://app.test/');
  • Network accessline 74
    },     });     const lease = await pool.acquire('http://app.test/');
  • Network accessline 75
    });     const lease = await pool.acquire('http://app.test/');     expect(await pool.setMocksLease(lease.sessionId, [])).toBe(false);
  • Network accessline 76
    const lease = await pool.acquire('http://app.test/');
  • Network accessline 88
    leaseTtlMs: 500,     });     const lease = await pool.acquire('http://app.test/');
  • Network accessline 89
    });     const lease = await pool.acquire('http://app.test/');     now += 400;
  • Network accessline 90
    const lease = await pool.acquire('http://app.test/');
  • Network accessline 101
    const guardRequests = vi.fn(() => Promise.resolve());     const pool = poolWith({ guardRequests });     const lease = await pool.acquire('http://app.test/');
  • Network accessline 102
    const pool = poolWith({ guardRequests });     const lease = await pool.acquire('http://app.test/');     const decide = (method: string): string | undefined =>
  • Network accessline 103
    const lease = await pool.acquire('http://app.test/');
  • Network accessline 111
    it('answers false when the page cannot guard, never a guard that applied to nothing', async () => {     const pool = poolWith({ guardRequests: undefined });     const lease = await pool.acquire('http://app.test/');
  • Network accessline 112
    const pool = poolWith({ guardRequests: undefined });     const lease = await pool.acquire('http://app.test/');     expect(await pool.guardLease(lease.sessionId, () => undefined)).toBe(false);
  • Network accessline 113
    const lease = await pool.acquire('http://app.test/');
  • Network accessline 130
    },     });     const lease = await pool.acquire('http://app.test/');
  • Network accessline 131
    });     const lease = await pool.acquire('http://app.test/');     await pool.guardLease(lease.sessionId, () => undefined);
  • Network accessline 132
    const lease = await pool.acquire('http://app.test/');

server/src/portal/pool/pool-screenshot.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 45
    it('returns the page’s pixels', async () => {     const pool = poolWith();     const lease = await pool.acquire('http://app.test/');
  • Network accessline 46
    const pool = poolWith();     const lease = await pool.acquire('http://app.test/');     expect(await pool.screenshotLease(lease.sessionId)).toEqual(PNG);
  • Network accessline 47
    const lease = await pool.acquire('http://app.test/');
  • Network accessline 53
    const screenshot = vi.fn(() => Promise.resolve(PNG));     const pool = poolWith({ screenshot });     const lease = await pool.acquire('http://app.test/');
  • Network accessline 54
    const pool = poolWith({ screenshot });     const lease = await pool.acquire('http://app.test/');     await pool.screenshotLease(lease.sessionId, { fullPage: true });
  • Network accessline 55
    const lease = await pool.acquire('http://app.test/');
  • Network accessline 69
    const pool = poolWith({ screenshot: undefined });     const lease = await pool.acquire('http://app.test/');
  • Network accessline 70
    const lease = await pool.acquire('http://app.test/');
  • Network accessline 82
    },     });     const lease = await pool.acquire('http://app.test/');
  • Network accessline 83
    });     const lease = await pool.acquire('http://app.test/');     expect(await pool.screenshotLease(lease.sessionId)).toBeUndefined();
  • Network accessline 84
    const lease = await pool.acquire('http://app.test/');
  • Network accessline 99
    leaseTtlMs: 500,     });     const lease = await pool.acquire('http://app.test/');
  • Network accessline 100
    });     const lease = await pool.acquire('http://app.test/');     now += 400;
  • Network accessline 101
    const lease = await pool.acquire('http://app.test/');

server/src/portal/pool/storage-seed.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 6
    describe('normalizeCookies', () => {     it('returns empty array when cookies is undefined', () => {       expect(normalizeCookies(undefined, 'http://localhost:3000')).toEqual([]);
  • Network accessline 7
    it('returns empty array when cookies is undefined', () => {       expect(normalizeCookies(undefined, 'http://localhost:3000')).toEqual([]);     });
  • Network accessline 8
    expect(normalizeCookies(undefined, 'http://localhost:3000')).toEqual([]);
  • Access to secretsline 13
    [Credential-related source omitted]
  • Network accessline 14
    theme: 'dark',       };       const normalized = normalizeCookies(cookies, 'http://localhost:3000/dashboard?a=1');
  • Network accessline 15
    };       const normalized = normalizeCookies(cookies, 'http://localhost:3000/dashboard?a=1');       expect(normalized).toEqual([
  • Network accessline 16
    const normalized = normalizeCookies(cookies, 'http://localhost:3000/dashboard?a=1');
  • Network accessline 17
    expect(normalized).toEqual([         { name: 'auth_token', value: 'secret-123', url: 'http://localhost:3000/' },         { name: 'theme', value: 'dark', url: 'http://localhost:3000/' },
  • Network accessline 18
    [Credential-related source omitted]
  • Access to secretsline 18
    [Credential-related source omitted]
  • Network accessline 19
    { name: 'theme', value: 'dark', url: 'http://localhost:3000/' },
  • Network accessline 29
    },       ];       const normalized = normalizeCookies(cookies, 'http://localhost:3000');
  • Network accessline 30
    ];       const normalized = normalizeCookies(cookies, 'http://localhost:3000');       expect(normalized).toEqual([
  • Network accessline 31
    const normalized = normalizeCookies(cookies, 'http://localhost:3000');
  • Network accessline 57
    },       ];       const normalized = normalizeCookies(cookies, 'http://localhost:3000/login');
  • Network accessline 58
    ];       const normalized = normalizeCookies(cookies, 'http://localhost:3000/login');       expect(normalized).toEqual([
  • Network accessline 59
    const normalized = normalizeCookies(cookies, 'http://localhost:3000/login');
  • Network accessline 72
    name: 'tracker',           value: 'no',           url: 'http://localhost:3000/',
  • Network accessline 73
    value: 'no',           url: 'http://localhost:3000/',         },
  • Network accessline 74
    url: 'http://localhost:3000/',
  • Network accessline 85
    describe('targetOriginOf', () => {     it('extracts origin from standard URLs', () => {       expect(targetOriginOf('http://localhost:3000/app?x=1')).toBe('http://localhost:3000');
  • Network accessline 86
    it('extracts origin from standard URLs', () => {       expect(targetOriginOf('http://localhost:3000/app?x=1')).toBe('http://localhost:3000');       expect(targetOriginOf('https://example.com:8080/path')).toBe('https://example.com:8080');
  • Network accessline 87
    expect(targetOriginOf('http://localhost:3000/app?x=1')).toBe('http://localhost:3000');
  • Network accessline 88
    expect(targetOriginOf('https://example.com:8080/path')).toBe('https://example.com:8080');
  • Network accessline 152
    fakeContext,         fakePage,         'http://localhost:3000/app',
  • Network accessline 153
    fakePage,         'http://localhost:3000/app',         seed,
  • Network accessline 154
    'http://localhost:3000/app',
  • Network accessline 158
    expect(cookiesAdded).toEqual([         { name: 'auth', value: 'cookie-secret', url: 'http://localhost:3000/' },
  • Network accessline 159
    { name: 'auth', value: 'cookie-secret', url: 'http://localhost:3000/' },
  • Network accessline 163
    [Credential-related source omitted]
  • Network accessline 164
    session: { tab: '42' },         targetOrigin: 'http://localhost:3000',       });
  • Network accessline 165
    targetOrigin: 'http://localhost:3000',
  • Network accessline 180
    const mockSession: Record<string, string> = {};       const mockWindow: Record<string, unknown> = {         location: { origin: 'http://localhost:3000' },
  • Network accessline 181
    const mockWindow: Record<string, unknown> = {         location: { origin: 'http://localhost:3000' },         localStorage: {
  • Network accessline 182
    location: { origin: 'http://localhost:3000' },
  • Network accessline 200
    local: seed.local,           session: seed.session,           targetOrigin: 'http://localhost:3000',
  • Network accessline 201
    session: seed.session,           targetOrigin: 'http://localhost:3000',         });
  • Network accessline 202
    targetOrigin: 'http://localhost:3000',
  • Network accessline 216
    void seedStorageInto(fakeContext, fakePage, 'http://localhost:3000/app', seed);
  • Network accessline 223
    const childWindow: Record<string, unknown> = {         top: {}, // top is different object -> child iframe!         location: { origin: 'http://localhost:3000' },
  • Network accessline 224
    top: {}, // top is different object -> child iframe!         location: { origin: 'http://localhost:3000' },         localStorage: {
  • Network accessline 225
    location: { origin: 'http://localhost:3000' },
  • Network accessline 236
    initFn({           local: seed.local,           targetOrigin: 'http://localhost:3000',
  • Network accessline 237
    local: seed.local,           targetOrigin: 'http://localhost:3000',         });
  • Network accessline 238
    targetOrigin: 'http://localhost:3000',
  • Network accessline 251
    void seedStorageInto(fakeContext, fakePage, 'http://localhost:3000/app', seed);
  • Network accessline 257
    const mockLocal: Record<string, string> = {};       const externalWindow: Record<string, unknown> = {         location: { origin: 'https://auth.external.com' }, // external OAuth origin!
  • Network accessline 258
    const externalWindow: Record<string, unknown> = {         location: { origin: 'https://auth.external.com' }, // external OAuth origin!         localStorage: {
  • Network accessline 259
    location: { origin: 'https://auth.external.com' }, // external OAuth origin!
  • Network accessline 271
    initFn({           local: seed.local,           targetOrigin: 'http://localhost:3000',
  • Network accessline 272
    local: seed.local,           targetOrigin: 'http://localhost:3000',         });
  • Network accessline 273
    targetOrigin: 'http://localhost:3000',
  • Network accessline 287
    fakeContext,         fakePage,         'http://localhost:3000/app',
  • Network accessline 288
    fakePage,         'http://localhost:3000/app',         seed,
  • Network accessline 289
    'http://localhost:3000/app',
  • Network accessline 299
    quotaErr.name = 'QuotaExceededError';       const failingWindow: Record<string, unknown> = {         location: { origin: 'http://localhost:3000' },
  • Network accessline 300
    const failingWindow: Record<string, unknown> = {         location: { origin: 'http://localhost:3000' },         localStorage: {
  • Network accessline 301
    location: { origin: 'http://localhost:3000' },
  • Network accessline 319
    initFn({           local: seed.local,           targetOrigin: 'http://localhost:3000',
  • Network accessline 320
    local: seed.local,           targetOrigin: 'http://localhost:3000',         });
  • Network accessline 321
    targetOrigin: 'http://localhost:3000',
  • Network accessline 345
    await expect(         seedStorageInto(bareContext, fakePage, 'http://localhost:3000/', {
  • Network accessline 346
    seedStorageInto(bareContext, fakePage, 'http://localhost:3000/', {
  • Access to secretsline 349
    [Credential-related source omitted]
  • Network accessline 360
    await expect(         seedStorageInto(fakeContext, barePage, 'http://localhost:3000/', {
  • Network accessline 361
    seedStorageInto(fakeContext, barePage, 'http://localhost:3000/', {
  • Network accessline 377
    await expect(         seedStorageInto(fakeContext, nonDisposablePage, 'http://localhost:3000/', {
  • Network accessline 378
    seedStorageInto(fakeContext, nonDisposablePage, 'http://localhost:3000/', {
  • Network accessline 395
    await expect(         seedStorageInto(bareContext, barePage, 'http://localhost:3000/', {}),
  • Network accessline 396
    seedStorageInto(bareContext, barePage, 'http://localhost:3000/', {}),
  • Network accessline 415
    try {         await seedStorageInto(failingContext, fakePage, 'http://localhost:3000/', {
  • Network accessline 416
    await seedStorageInto(failingContext, fakePage, 'http://localhost:3000/', {

server/src/portal/pool/storage-seed.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 73
    [Credential-related source omitted]
  • Access to secretsline 96
    [Credential-related source omitted]

server/src/portal/pool/zero-install.test.ts

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 15
    runInNewContext(zeroInstallScript(FAKE_BUNDLE, OPTS), sandbox);
  • Dangerous shell operationline 56
    expect(runInNewContext(zeroInstallScript(FAKE_BUNDLE, OPTS), page)).toBe(READER_NOT_HTML);
  • Dangerous shell operationline 90
    runInNewContext(zeroInstallScript(SEEING_BUNDLE, OPTS), page);
  • Dangerous shell operationline 200
    runInNewContext(zeroInstallScript(RECORDING_BUNDLE, OPTS), page);
  • Dangerous shell operationline 237
    runInNewContext(readReaderBundle() ?? '', { module: mod });

server/src/portal/pool/zero-install.ts

  • Executable scriptline 1
    Executable file

server/src/portal/production/production-activation.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 21
    [Credential-related source omitted]
  • Network accessline 22
    const SITE = 'https://app.example.com/overview';
  • Network accessline 65
    expect(fake.calls).toHaveLength(1);     const call = fake.calls[0];     expect(call?.url).toBe(`https://cloud.example.com${PRODUCTION_TICKET_PATH}`);
  • Network accessline 66
    const call = fake.calls[0];     expect(call?.url).toBe(`https://cloud.example.com${PRODUCTION_TICKET_PATH}`);     expect(call?.headers['authorization']).toBe('Bearer rk_live_test');
  • Network accessline 67
    expect(call?.url).toBe(`https://cloud.example.com${PRODUCTION_TICKET_PATH}`);
  • Network accessline 76
    origin: 'https://app.example.com',
  • Network accessline 83
    expect(registry.redeem('nonce-1', 'tab-1')?.production?.scope).toBe(HelloScope.ACT);     expect(registry.admitsOrigin('https://app.example.com')).toBe(true);
  • Network accessline 84
    expect(registry.admitsOrigin('https://app.example.com')).toBe(true);

server/src/portal/production/production-activation.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 33
    [Credential-related source omitted]
  • Network accessline 132
    [Credential-related source omitted]
  • Network accessline 133
    request: ProductionTicketRequest,   doFetch: TicketFetch = (url, init) => fetch(url, init), ): Promise<ProductionTicketResponse> {
  • Network accessline 134
    doFetch: TicketFetch = (url, init) => fetch(url, init),
  • Access to secretsline 251
    [Credential-related source omitted]

server/src/portal/production/production-drive.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 20
    const ORIGIN = 'https://app.example.com';
  • Network accessline 128
    const plain = showing({});     expect(       await d.refuseCommand(ReticleCommand.NAVIGATE, { url: 'https://pay.example.org/' }, plain),
  • Network accessline 129
    expect(       await d.refuseCommand(ReticleCommand.NAVIGATE, { url: 'https://pay.example.org/' }, plain),     ).toContain(refusalOf(ProductionRule.OFF_ORIGIN));
  • Network accessline 130
    await d.refuseCommand(ReticleCommand.NAVIGATE, { url: 'https://pay.example.org/' }, plain),
  • Network accessline 157
    it('never lets an intent lift observe, leaving the origin, or an expired nonce', async () => {     const intent = 'invite a teammate, pay for the upgrade, then go to https://pay.example.org/';
  • Network accessline 158
    const intent = 'invite a teammate, pay for the upgrade, then go to https://pay.example.org/';
  • Network accessline 162
    refusalOf(ProductionRule.OBSERVE_ONLY),     );     const away = { url: 'https://pay.example.org/' };
  • Network accessline 163
    );     const away = { url: 'https://pay.example.org/' };     expect(await drive({ intent }).refuseCommand(ReticleCommand.NAVIGATE, away, plain)).toContain(
  • Network accessline 164
    const away = { url: 'https://pay.example.org/' };

server/src/portal/production/production-drive.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 129
    let pathname: string;   try {     pathname = new URL(url, base ?? 'http://localhost').pathname;
  • Network accessline 130
    try {     pathname = new URL(url, base ?? 'http://localhost').pathname;   } catch {
  • Network accessline 131
    pathname = new URL(url, base ?? 'http://localhost').pathname;

server/src/portal/production/production-hello.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/production/production-hello.ts

  • Executable scriptline 1
    Executable file

server/src/portal/realm/conformance-client.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/realm/conformance-client.ts

  • Executable scriptline 1
    Executable file

server/src/portal/realm/every-event-is-placed.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/realm/http-witness.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 22
    it('cannot act — it is a Realm minus dispatch and locate', () => {     const w: Record<string, unknown> = new HttpWitness({       url: 'http://api.test/orders',
  • Network accessline 23
    const w: Record<string, unknown> = new HttpWitness({       url: 'http://api.test/orders',       fetch: okFetch([]),
  • Network accessline 24
    url: 'http://api.test/orders',       fetch: okFetch([]),       now: () => 0,
  • Network accessline 33
    it('declares itself INDEPENDENT — that is the whole reason to ask it', () => {     const w = new HttpWitness({       url: 'http://api.test/o',
  • Network accessline 34
    const w = new HttpWitness({       url: 'http://api.test/o',       fetch: okFetch([]),
  • Network accessline 35
    url: 'http://api.test/o',       fetch: okFetch([]),       now: () => 0,
  • Network accessline 44
    it('reports what it saw, on the net channel', async () => {     const w = new HttpWitness({       url: 'http://api.test/o',
  • Network accessline 45
    const w = new HttpWitness({       url: 'http://api.test/o',       fetch: okFetch([{ id: 1 }]),
  • Network accessline 46
    url: 'http://api.test/o',       fetch: okFetch([{ id: 1 }]),       now: () => 7,
  • Network accessline 56
    it('a UI claiming success that this witness cannot corroborate is a DISAGREEMENT', async () => {     const w = new HttpWitness({       url: 'http://api.test/o',
  • Network accessline 57
    const w = new HttpWitness({       url: 'http://api.test/o',       fetch: vi.fn(() =>
  • Network accessline 58
    url: 'http://api.test/o',       fetch: vi.fn(() =>         Promise.resolve({ ok: true, status: 204, text: () => Promise.resolve('') }),
  • Network accessline 84
    it('an unreachable endpoint is a BLIND SPOT, never evidence of absence', async () => {     const w = new HttpWitness({       url: 'http://api.test/o',
  • Network accessline 85
    const w = new HttpWitness({       url: 'http://api.test/o',       fetch: vi.fn(() => Promise.reject(new Error('ECONNREFUSED'))),
  • Network accessline 86
    url: 'http://api.test/o',       fetch: vi.fn(() => Promise.reject(new Error('ECONNREFUSED'))),       now: () => 0,

server/src/portal/realm/http-witness.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 111
    const pending = (async (): Promise<{ body: string; status: number; failure?: string }> => {       try {         const res = await this.#fetch(this.#url);
  • Network accessline 112
    try {         const res = await this.#fetch(this.#url);         return { body: await res.text(), status: res.status };
  • Network accessline 113
    const res = await this.#fetch(this.#url);

server/src/portal/realm/protocol-reaches-production.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/realm/spi-is-exercised.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/realm/web-realm-fixture.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/realm/web-realm.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/realm/web-realm.ts

  • Executable scriptline 1
    Executable file

server/src/portal/realm/witness-reaches-production.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 82
    await reconcile().handler(reconcileDeps({ '': { tree: '- text "on_hold"' } }), {       sessionId: 's1',       witness: { url: 'http://localhost:9/rows' },
  • Network accessline 83
    sessionId: 's1',       witness: { url: 'http://localhost:9/rows' },     });
  • Network accessline 84
    witness: { url: 'http://localhost:9/rows' },

server/src/portal/session/action-attribution-ambient.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 13
    protocolVersion: RETICLE_PROTOCOL_VERSION,   sessionId: 's1',   url: 'http://localhost/app',
  • Network accessline 14
    sessionId: 's1',   url: 'http://localhost/app',   title: 'App',
  • Network accessline 15
    url: 'http://localhost/app',

server/src/portal/session/agent-link.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/agent-link.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/command-payload.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/command-payload.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/control-envelope.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 15
    protocolVersion: RETICLE_PROTOCOL_VERSION,   sessionId: 'demo',   url: 'http://localhost/',
  • Network accessline 16
    sessionId: 'demo',   url: 'http://localhost/',   title: 'Demo',
  • Network accessline 17
    url: 'http://localhost/',

server/src/portal/session/control-envelope.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/current-document.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 20
    protocolVersion: RETICLE_PROTOCOL_VERSION,   sessionId: 'demo',   url: 'http://localhost/',
  • Network accessline 21
    sessionId: 'demo',   url: 'http://localhost/',   title: 'Demo',
  • Network accessline 22
    url: 'http://localhost/',

server/src/portal/session/daemon-answers.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/desktop-windows.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 32
    protocolVersion: RETICLE_PROTOCOL_VERSION,     sessionId: id,     url: `http://127.0.0.1:3100${path}`,
  • Network accessline 33
    sessionId: id,     url: `http://127.0.0.1:3100${path}`,     title: id,
  • Network accessline 34
    url: `http://127.0.0.1:3100${path}`,

server/src/portal/session/dev-server/dev-command.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/dev-server/dev-command.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/dev-server/dev-server-probe.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 104
    * The probe asks `[::1]` by address, and Node then names that address in the Host header. Angular's  * SSR dev server validates Host and answers `[::1]:4200` with a 400, printing  * `ERROR: Bad Request ("http://[::1]:4200/")` into the user'
  • Network accessline 105
    * SSR dev server validates Host and answers `[::1]:4200` with a 400, printing  * `ERROR: Bad Request ("http://[::1]:4200/")` into the user's own dev terminal on every sweep — every  * few seconds, for as long as the daemon ran. The address 
  • Network accessline 106
    * `ERROR: Bad Request ("http://[::1]:4200/")` into the user's own dev terminal on every sweep — every

server/src/portal/session/dev-server/dev-server-probe.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 78
    *  * Node names the dialled address, so the `::1` probe sent `Host: [::1]:4200`. Angular's SSR dev  * server validates Host, answered 400, and printed `ERROR: Bad Request ("http://[::1]:4200/")` into
  • Network accessline 79
    * Node names the dialled address, so the `::1` probe sent `Host: [::1]:4200`. Angular's SSR dev  * server validates Host, answered 400, and printed `ERROR: Bad Request ("http://[::1]:4200/")` into  * the user's dev terminal on every sweep, 
  • Network accessline 80
    * server validates Host, answered 400, and printed `ERROR: Bad Request ("http://[::1]:4200/")` into

server/src/portal/session/dev-server/project-ports.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 21
    [Credential-related source omitted]
  • Network accessline 22
    [Credential-related source omitted]
  • Access to secretsline 22
    [Credential-related source omitted]
  • Network accessline 23
    const dir = tempDir();     writeFileSync(join(dir, '.env'), 'API_URL=http://localhost:8000\nPORT=3020\n', 'utf8');     expect(envFilePorts(dir)).toEqual([3020]);
  • Network accessline 24
    [Credential-related source omitted]
  • Access to secretsline 24
    [Credential-related source omitted]
  • Access to secretsline 28
    [Credential-related source omitted]
  • Access to secretsline 37
    [Credential-related source omitted]
  • Access to secretsline 41
    [Credential-related source omitted]

server/src/portal/session/dev-server/project-ports.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 19
    [Credential-related source omitted]

server/src/portal/session/dev-server/route-status-probe.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 26
    const address = server?.address();       const port = 'object' === typeof address && address !== null ? address.port : 0;       resolve(`http://127.0.0.1:${String(port)}`);
  • Network accessline 27
    const port = 'object' === typeof address && address !== null ? address.port : 0;       resolve(`http://127.0.0.1:${String(port)}`);     });
  • Network accessline 28
    resolve(`http://127.0.0.1:${String(port)}`);
  • Network accessline 59
    expect(await probeRouteStatus('http://example.com/orders')).toBeUndefined();
  • Network accessline 60
    expect(await probeRouteStatus('http://10.0.0.5:3000/orders')).toBeUndefined();
  • Network accessline 63
    it('skips https rather than fetching with verification off', async () => {     expect(await probeRouteStatus('https://localhost:3000/orders')).toBeUndefined();
  • Network accessline 64
    expect(await probeRouteStatus('https://localhost:3000/orders')).toBeUndefined();
  • Network accessline 90
    expect(await probeRouteStatus(`http://127.0.0.1:${String(port)}/slow`, 100)).toBeUndefined();

server/src/portal/session/dev-server/route-status-probe.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/dev-server/served-document.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    await expect(observeWebDocument('http://localhost:3000/', request)).resolves.toEqual({
  • Network accessline 17
    url: 'http://localhost:3000/',
  • Network accessline 23
    it('refuses a non-loopback URL rather than turning doctor into an HTTP client', async () => {     const request = vi.fn();     await expect(observeWebDocument('https://example.com/', request)).resolves.toBeUndefined();
  • Network accessline 24
    const request = vi.fn();     await expect(observeWebDocument('https://example.com/', request)).resolves.toBeUndefined();     expect(request).not.toHaveBeenCalled();
  • Network accessline 25
    await expect(observeWebDocument('https://example.com/', request)).resolves.toBeUndefined();
  • Network accessline 29
    it('degrades an unreachable development page to no observation', async () => {     const request = vi.fn(async () => Promise.reject(new Error('offline')));     await expect(observeWebDocument('http://127.0.0.1:5173/', request)).resolves.toB
  • Network accessline 30
    const request = vi.fn(async () => Promise.reject(new Error('offline')));     await expect(observeWebDocument('http://127.0.0.1:5173/', request)).resolves.toBeUndefined();   });
  • Network accessline 31
    await expect(observeWebDocument('http://127.0.0.1:5173/', request)).resolves.toBeUndefined();
  • Network accessline 36
    it('matches another path on the same development origin', () => {     expect(       hasConnectedDocument([{ url: 'http://localhost:3000/settings' }], ['http://localhost:3000/']),
  • Network accessline 37
    expect(       hasConnectedDocument([{ url: 'http://localhost:3000/settings' }], ['http://localhost:3000/']),     ).toBe(true);
  • Network accessline 38
    hasConnectedDocument([{ url: 'http://localhost:3000/settings' }], ['http://localhost:3000/']),
  • Network accessline 42
    it(`does not let a different local app suppress this project's finding`, () => {     expect(       hasConnectedDocument([{ url: 'http://localhost:5173/' }], ['http://localhost:3000/']),
  • Network accessline 43
    expect(       hasConnectedDocument([{ url: 'http://localhost:5173/' }], ['http://localhost:3000/']),     ).toBe(false);
  • Network accessline 44
    hasConnectedDocument([{ url: 'http://localhost:5173/' }], ['http://localhost:3000/']),
  • Network accessline 48
    it('uses the build-stamped project identity even without a dev-server registry entry', () => {     expect(       hasConnectedDocument([{ url: 'http://localhost:3000/', projectId: 'shop' }], [], 'shop'),
  • Network accessline 49
    expect(       hasConnectedDocument([{ url: 'http://localhost:3000/', projectId: 'shop' }], [], 'shop'),     ).toBe(true);
  • Network accessline 50
    hasConnectedDocument([{ url: 'http://localhost:3000/', projectId: 'shop' }], [], 'shop'),
  • Network accessline 51
    ).toBe(true);     expect(       hasConnectedDocument([{ url: 'http://localhost:3000/', projectId: 'blog' }], [], 'shop'),
  • Network accessline 52
    expect(       hasConnectedDocument([{ url: 'http://localhost:3000/', projectId: 'blog' }], [], 'shop'),     ).toBe(false);
  • Network accessline 53
    hasConnectedDocument([{ url: 'http://localhost:3000/', projectId: 'blog' }], [], 'shop'),

server/src/portal/session/dev-server/served-document.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 26
    const requestPage: PageRequest = (url, init) => fetch(url, init);

server/src/portal/session/end-session-named-id.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 30
    const successor = {     id: SUCCESSOR,     url: 'http://localhost:5173/app',
  • Network accessline 31
    id: SUCCESSOR,     url: 'http://localhost:5173/app',     setState: (state: SessionState) => {
  • Network accessline 32
    url: 'http://localhost:5173/app',
  • Network accessline 130
    const successor = {     id: SUCCESSOR,     url: 'http://localhost:5173/app',
  • Network accessline 131
    id: SUCCESSOR,     url: 'http://localhost:5173/app',     autoEnd: () => {
  • Network accessline 132
    url: 'http://localhost:5173/app',
  • Network accessline 201
    const successor = {     id: SUCCESSOR,     url: 'http://localhost:5173/app',
  • Network accessline 202
    id: SUCCESSOR,     url: 'http://localhost:5173/app',     setState: (state: SessionState) => {
  • Network accessline 203
    url: 'http://localhost:5173/app',

server/src/portal/session/end-session-releases-lease.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/engine-blind-spots.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/engine-host-is-supplied.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 27
    protocolVersion: RETICLE_PROTOCOL_VERSION,     sessionId: 'demo',     url: 'http://localhost/',
  • Network accessline 28
    sessionId: 'demo',     url: 'http://localhost/',     title: 'Demo',
  • Network accessline 29
    url: 'http://localhost/',

server/src/portal/session/facts/background-traffic.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/facts/background-traffic.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/facts/departure-note.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    it('keeps the latest navigation target', () => {     const note = new DepartureNote();     note.observe(navigationPending('http://localhost:5173/login'), 100);
  • Network accessline 17
    const note = new DepartureNote();     note.observe(navigationPending('http://localhost:5173/login'), 100);     note.observe(navigationPending('https://example.com/'), 200);
  • Network accessline 18
    note.observe(navigationPending('http://localhost:5173/login'), 100);
  • Network accessline 19
    note.observe(navigationPending('https://example.com/'), 200);
  • Network accessline 20
    expect(note.read(200)).toBe('https://example.com/');
  • Network accessline 26
    {         type: EventType.NET_PENDING,         data: { id: 'f-1', url: 'http://localhost:5173/api/slow' },
  • Network accessline 27
    type: EventType.NET_PENDING,         data: { id: 'f-1', url: 'http://localhost:5173/api/slow' },       } as unknown as ReticleEvent,
  • Network accessline 28
    data: { id: 'f-1', url: 'http://localhost:5173/api/slow' },
  • Network accessline 42
    it('a stale note is not this departure', () => {     const note = new DepartureNote();     note.observe(navigationPending('http://localhost:5173/login'), 100);
  • Network accessline 43
    const note = new DepartureNote();     note.observe(navigationPending('http://localhost:5173/login'), 100);     expect(note.read(100 + 29_999)).toBe('http://localhost:5173/login');
  • Network accessline 44
    note.observe(navigationPending('http://localhost:5173/login'), 100);
  • Network accessline 45
    expect(note.read(100 + 29_999)).toBe('http://localhost:5173/login');
  • Network accessline 55
    id: 'nav-1',           method: 'GET',           url: 'http://localhost:5173/export.pdf',
  • Network accessline 56
    method: 'GET',           url: 'http://localhost:5173/export.pdf',           initiator: 'navigation',
  • Network accessline 57
    url: 'http://localhost:5173/export.pdf',           initiator: 'navigation',           download: true,

server/src/portal/session/facts/departure-note.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/facts/handshake-facts.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/facts/observed-state.rate-window.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/facts/observed-state.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/facts/observed-state.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/facts/ref-provenance.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 26
    const connected = [   { sessionId: 'sA', url: 'http://localhost:3000/' },
  • Network accessline 27
    { sessionId: 'sA', url: 'http://localhost:3000/' },
  • Network accessline 28
    { sessionId: 'sB', url: 'http://localhost:3000/settings' },
  • Network accessline 65
    connected: () => connected,     });     expect(refusal).toContain('http://localhost:3000/settings');
  • Network accessline 66
    });     expect(refusal).toContain('http://localhost:3000/settings');   });
  • Network accessline 67
    expect(refusal).toContain('http://localhost:3000/settings');

server/src/portal/session/facts/ref-provenance.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/facts/session-replaced.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    expect(isSessionReplacedError(new Error(sessionReplacedReason('s1', 'http://app/page')))).toBe(
  • Network accessline 21
    it('recognises it from a bare string as well as an Error', () => {     expect(isSessionReplacedError(sessionReplacedReason('s1', 'http://app/'))).toBe(true);
  • Network accessline 22
    expect(isSessionReplacedError(sessionReplacedReason('s1', 'http://app/'))).toBe(true);
  • Network accessline 35
    it('names the id and the url, which is what turns it into a diagnosis', () => {     const reason = sessionReplacedReason('s-42', 'http://app/checkout');
  • Network accessline 36
    const reason = sessionReplacedReason('s-42', 'http://app/checkout');
  • Network accessline 37
    expect(reason).toContain('s-42');     expect(reason).toContain('http://app/checkout');     expect(reason.startsWith(SESSION_REPLACED_PREFIX)).toBe(true);
  • Network accessline 38
    expect(reason).toContain('http://app/checkout');

server/src/portal/session/facts/session-replaced.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/fake-session.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 55
    it('takes handshake fields separately from behaviour', () => {     const session = createFakeSession({}, { url: 'http://localhost:5173/app', sessionId: 's-2' });
  • Network accessline 56
    const session = createFakeSession({}, { url: 'http://localhost:5173/app', sessionId: 's-2' });
  • Network accessline 57
    expect(session.url).toBe('http://localhost:5173/app');

server/src/portal/session/fake-session.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 40
    protocolVersion: RETICLE_PROTOCOL_VERSION,     sessionId: 'demo',     url: 'http://localhost/',
  • Network accessline 41
    sessionId: 'demo',     url: 'http://localhost/',     title: 'Demo',
  • Network accessline 42
    url: 'http://localhost/',

server/src/portal/session/first-run-wiring.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/first-run-wiring.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/first-session-offer.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/handshake-facts-are-read.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/hud-mirror.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 54
    it('mirrors narration and impact to another tab of the same project', () => {     const manager = new SessionManager();     const [driven] = open('lease-1', 'http://localhost:3000/', 'app');
  • Network accessline 55
    const manager = new SessionManager();     const [driven] = open('lease-1', 'http://localhost:3000/', 'app');     const [watcher, watched] = open('tab-1', 'http://localhost:3000/dashboard', 'app');
  • Network accessline 56
    const [driven] = open('lease-1', 'http://localhost:3000/', 'app');
  • Network accessline 57
    const [watcher, watched] = open('tab-1', 'http://localhost:3000/dashboard', 'app');
  • Network accessline 69
    it('keeps a notice about this page on this page, once', () => {     const manager = new SessionManager();     const [first, firstSent] = open('tab-1', 'http://localhost:3000/', 'app');
  • Network accessline 70
    const manager = new SessionManager();     const [first, firstSent] = open('tab-1', 'http://localhost:3000/', 'app');     const [second, secondSent] = open('tab-2', 'http://localhost:3000/', 'app');
  • Network accessline 71
    const [first, firstSent] = open('tab-1', 'http://localhost:3000/', 'app');
  • Network accessline 72
    const [second, secondSent] = open('tab-2', 'http://localhost:3000/', 'app');
  • Network accessline 85
    it('names the session the mirrored row came from, so the watcher is not lied to', () => {     const manager = new SessionManager();     const [driven] = open('lease-1', 'http://localhost:3000/', 'app');
  • Network accessline 86
    const manager = new SessionManager();     const [driven] = open('lease-1', 'http://localhost:3000/', 'app');     const [watcher, watched] = open('tab-1', 'http://localhost:3000/', 'app');
  • Network accessline 87
    const [driven] = open('lease-1', 'http://localhost:3000/', 'app');
  • Network accessline 88
    const [watcher, watched] = open('tab-1', 'http://localhost:3000/', 'app');
  • Network accessline 98
    it('does NOT mirror presenter lifecycle — only the driven tab is being driven', () => {     const manager = new SessionManager();     const [driven] = open('lease-1', 'http://localhost:3000/', 'app');
  • Network accessline 99
    const manager = new SessionManager();     const [driven] = open('lease-1', 'http://localhost:3000/', 'app');     const [watcher, watched] = open('tab-1', 'http://localhost:3000/', 'app');
  • Network accessline 100
    const [driven] = open('lease-1', 'http://localhost:3000/', 'app');
  • Network accessline 101
    const [watcher, watched] = open('tab-1', 'http://localhost:3000/', 'app');
  • Network accessline 110
    it('does not mirror to a tab of a different project', () => {     const manager = new SessionManager();     const [driven] = open('lease-1', 'http://localhost:3000/', 'app');
  • Network accessline 111
    const manager = new SessionManager();     const [driven] = open('lease-1', 'http://localhost:3000/', 'app');     const [other, otherSent] = open('tab-1', 'http://localhost:5173/', 'other-app');
  • Network accessline 112
    const [driven] = open('lease-1', 'http://localhost:3000/', 'app');
  • Network accessline 113
    const [other, otherSent] = open('tab-1', 'http://localhost:5173/', 'other-app');
  • Network accessline 122
    it('mirrors by origin when neither tab stamped a projectId', () => {     const manager = new SessionManager();     const [driven] = open('lease-1', 'http://localhost:3000/');
  • Network accessline 123
    const manager = new SessionManager();     const [driven] = open('lease-1', 'http://localhost:3000/');     const [watcher, watched] = open('tab-1', 'http://localhost:3000/settings');
  • Network accessline 124
    const [driven] = open('lease-1', 'http://localhost:3000/');
  • Network accessline 125
    const [watcher, watched] = open('tab-1', 'http://localhost:3000/settings');
  • Network accessline 126
    const [elsewhere, elsewhereSent] = open('tab-2', 'http://localhost:5173/');
  • Network accessline 137
    it('a mirrored row is not itself mirrored (no echo between two watchers)', () => {     const manager = new SessionManager();     const [driven] = open('lease-1', 'http://localhost:3000/', 'app');
  • Network accessline 138
    const manager = new SessionManager();     const [driven] = open('lease-1', 'http://localhost:3000/', 'app');     const [a, aSent] = open('tab-1', 'http://localhost:3000/', 'app');
  • Network accessline 139
    const [driven] = open('lease-1', 'http://localhost:3000/', 'app');
  • Network accessline 140
    const [a, aSent] = open('tab-1', 'http://localhost:3000/', 'app');
  • Network accessline 141
    const [b, bSent] = open('tab-2', 'http://localhost:3000/', 'app');
  • Network accessline 155
    const manager = new SessionManager();     const [driven] = open('lease-1', 'http://localhost:3000/', 'app');
  • Network accessline 156
    const [driven] = open('lease-1', 'http://localhost:3000/', 'app');
  • Network accessline 157
    const [watcher, watched] = open('tab-1', 'http://localhost:3000/', 'app');
  • Network accessline 169
    describe('every impact push carries the drive running on its tab', () => {   it('a push from any caller keeps the running drive', () => {     const [tab, sent] = open('tab-drive', 'http://localhost:3000/', 'app');
  • Network accessline 170
    it('a push from any caller keeps the running drive', () => {     const [tab, sent] = open('tab-drive', 'http://localhost:3000/', 'app');     startDrive({
  • Network accessline 171
    const [tab, sent] = open('tab-drive', 'http://localhost:3000/', 'app');

server/src/portal/session/hud-use-is-not-evidence.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 23
    protocolVersion: RETICLE_PROTOCOL_VERSION,   sessionId: 'demo',   url: 'http://localhost/',
  • Network accessline 24
    sessionId: 'demo',   url: 'http://localhost/',   title: 'Demo',
  • Network accessline 25
    url: 'http://localhost/',

server/src/portal/session/human/live-control.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/human/notes-ledger.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/human/notes-ledger.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/human/presenter-args.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/human/presenter-args.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/human/review-store.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/human/review-store.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/inbox-history.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/last-act.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/last-act.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/lease-expiry-attribution.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 100
    it('names the last URL of a vanished human tab', () => {     const text = hintFor('human-tab', [], 'http://localhost:3000/orders/explode');
  • Network accessline 101
    const text = hintFor('human-tab', [], 'http://localhost:3000/orders/explode');
  • Network accessline 102
    expect(text).toContain('http://localhost:3000/orders/explode');

server/src/portal/session/lease-visibility.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/lease-visibility.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/ledger-notice.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/live-control-tools.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/narration-args.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/no-session-auto-attach.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 106
    await settle();       stop();       expect(opened).toEqual(['http://localhost:5173']);
  • Network accessline 107
    stop();       expect(opened).toEqual(['http://localhost:5173']);     },
  • Network accessline 108
    expect(opened).toEqual(['http://localhost:5173']);
  • Network accessline 200
    const withHistory = {         ...manager,         lastKnown: () => ({ id: 's-1', url: 'http://localhost:5173/cart', projectId: 'app-1' }),
  • Network accessline 201
    ...manager,         lastKnown: () => ({ id: 's-1', url: 'http://localhost:5173/cart', projectId: 'app-1' }),       } as unknown as SessionManager;
  • Network accessline 202
    lastKnown: () => ({ id: 's-1', url: 'http://localhost:5173/cart', projectId: 'app-1' }),
  • Network accessline 217
    await settle();       stop();       expect(opened).toEqual(['http://localhost:5173']);
  • Network accessline 218
    stop();       expect(opened).toEqual(['http://localhost:5173']);     },
  • Network accessline 219
    expect(opened).toEqual(['http://localhost:5173']);

server/src/portal/session/no-session-brevity.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/no-session-causes.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/no-session-claims.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/no-session-diagnosis.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 56
    expect(msg).toMatch(/serving a page/i);     expect(msg).toMatch(/may not be this app/i);     expect(msg).toContain('http://localhost:5173');
  • Network accessline 57
    expect(msg).toMatch(/may not be this app/i);     expect(msg).toContain('http://localhost:5173');     expect(msg).toMatch(/second stack/i);
  • Network accessline 58
    expect(msg).toContain('http://localhost:5173');
  • Network accessline 383
    listening: [3000],     port: 4400,     lastKnownUrl: 'http://localhost:3000/orders/explode',
  • Network accessline 384
    port: 4400,     lastKnownUrl: 'http://localhost:3000/orders/explode',   });
  • Network accessline 385
    lastKnownUrl: 'http://localhost:3000/orders/explode',
  • Network accessline 388
    it('names the last route, so this is not an empty session list', () => {     expect(torn).toContain('http://localhost:3000/orders/explode');
  • Network accessline 389
    expect(torn).toContain('http://localhost:3000/orders/explode');
  • Network accessline 420
    listening: [],       port: 4400,       lastKnownUrl: 'http://127.0.0.1:44549/orders',
  • Network accessline 421
    port: 4400,       lastKnownUrl: 'http://127.0.0.1:44549/orders',     });
  • Network accessline 422
    lastKnownUrl: 'http://127.0.0.1:44549/orders',
  • Network accessline 433
    listening: [3000],       port: 4400,       lastKnownUrl: 'http://127.0.0.1:44549/orders',
  • Network accessline 434
    port: 4400,       lastKnownUrl: 'http://127.0.0.1:44549/orders',     });
  • Network accessline 435
    lastKnownUrl: 'http://127.0.0.1:44549/orders',
  • Network accessline 447
    slowListeners: [44549],       port: 4400,       lastKnownUrl: 'http://127.0.0.1:44549/orders',
  • Network accessline 448
    port: 4400,       lastKnownUrl: 'http://127.0.0.1:44549/orders',     });
  • Network accessline 449
    lastKnownUrl: 'http://127.0.0.1:44549/orders',
  • Network accessline 464
    listening: [3000],     port: 4400,     lastKnownUrl: 'http://localhost:3000/',
  • Network accessline 465
    port: 4400,     lastKnownUrl: 'http://localhost:3000/',     departedTo: 'http://localhost:3000/login',
  • Network accessline 466
    lastKnownUrl: 'http://localhost:3000/',
  • Network accessline 467
    departedTo: 'http://localhost:3000/login',
  • Network accessline 487
    listening: [3000],       port: 4400,       lastKnownUrl: 'http://localhost:3000/',
  • Network accessline 488
    port: 4400,       lastKnownUrl: 'http://localhost:3000/',     });
  • Network accessline 489
    lastKnownUrl: 'http://localhost:3000/',
  • Network accessline 499
    listening: [3000],       port: 4400,       lastKnownUrl: 'http://localhost:3000/',
  • Network accessline 500
    [Credential-related source omitted]
  • Network accessline 501
    lastKnownUrl: 'http://localhost:3000/',
  • Network accessline 502
    [Credential-related source omitted]

server/src/portal/session/no-session-diagnosis.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 44
    * Never a place to send the agent, so never in `listening`: agent tools run in this folder and    * listen too, and one serves a page. An agent-browser viewer in `listening` produced "just open    * http://localhost:<port>" while the app wa
  • Network accessline 45
    * listen too, and one serves a page. An agent-browser viewer in `listening` produced "just open    * http://localhost:<port>" while the app was not running (reticle#1543). What these ports prove    * is less: the answer cannot say that noth
  • Network accessline 46
    * http://localhost:<port>" while the app was not running (reticle#1543). What these ports prove
  • Network accessline 617
    return (       ` Something is serving a page on :${String(port)}; it may not be this app — just open ` +       `http://localhost:${String(port)} rather than starting a second stack.`
  • Network accessline 618
    ` Something is serving a page on :${String(port)}; it may not be this app — just open ` +       `http://localhost:${String(port)} rather than starting a second stack.`     );
  • Network accessline 619
    `http://localhost:${String(port)} rather than starting a second stack.`

server/src/portal/session/no-session-elsewhere.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/no-session-next-action.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 153
    });     expect(next.action).toBe(NoSessionAction.OPEN_APP);     expect(next.command).toBe('npx @reticlehq/server open http://localhost:5173');
  • Network accessline 154
    expect(next.action).toBe(NoSessionAction.OPEN_APP);     expect(next.command).toBe('npx @reticlehq/server open http://localhost:5173');     expect(next.port).toBe(5173);
  • Network accessline 155
    expect(next.command).toBe('npx @reticlehq/server open http://localhost:5173');
  • Network accessline 264
    expect(next.reason).toMatch(/may not be this app/i);     expect(next.reason).toMatch(/second stack/i);     expect(next.command).toBe('npx @reticlehq/server open http://localhost:5173');
  • Network accessline 265
    expect(next.reason).toMatch(/second stack/i);     expect(next.command).toBe('npx @reticlehq/server open http://localhost:5173');     expect(next.port).toBe(5173);
  • Network accessline 266
    expect(next.command).toBe('npx @reticlehq/server open http://localhost:5173');
  • Network accessline 278
    listening: [5173, 5190],       dev: DEV,       lastKnownUrl: 'http://localhost:5190/counter?__reticle_session=lease-1&tab=2',
  • Network accessline 279
    dev: DEV,       lastKnownUrl: 'http://localhost:5190/counter?__reticle_session=lease-1&tab=2',     });
  • Network accessline 280
    lastKnownUrl: 'http://localhost:5190/counter?__reticle_session=lease-1&tab=2',
  • Network accessline 281
    });     expect(next.action).toBe(NoSessionAction.REOPEN_APP);     expect(next.command).toBe('npx @reticlehq/server open http://localhost:5190/counter?tab=2');
  • Network accessline 282
    expect(next.action).toBe(NoSessionAction.REOPEN_APP);     expect(next.command).toBe('npx @reticlehq/server open http://localhost:5190/counter?tab=2');     expect(next.port).toBe(5190);
  • Network accessline 283
    expect(next.command).toBe('npx @reticlehq/server open http://localhost:5190/counter?tab=2');
  • Network accessline 294
    listening: [],       dev: DEV,       lastKnownUrl: 'http://127.0.0.1:44549/orders',
  • Network accessline 295
    dev: DEV,       lastKnownUrl: 'http://127.0.0.1:44549/orders',     });
  • Network accessline 296
    lastKnownUrl: 'http://127.0.0.1:44549/orders',
  • Network accessline 310
    listening: [3000],       dev: DEV,       lastKnownUrl: 'http://127.0.0.1:44549/orders',
  • Network accessline 311
    dev: DEV,       lastKnownUrl: 'http://127.0.0.1:44549/orders',     });
  • Network accessline 312
    lastKnownUrl: 'http://127.0.0.1:44549/orders',
  • Network accessline 328
    expect(next.action).toBe(NoSessionAction.OPEN_APP);     expect(next.port).toBe(3000);     expect(next.command).toBe('npx @reticlehq/server open http://localhost:3000');
  • Network accessline 329
    expect(next.port).toBe(3000);     expect(next.command).toBe('npx @reticlehq/server open http://localhost:3000');     expect(next.reason).toMatch(/do not start a second/i);
  • Network accessline 330
    expect(next.command).toBe('npx @reticlehq/server open http://localhost:3000');
  • Network accessline 339
    slowListeners: [44549],       dev: DEV,       lastKnownUrl: 'http://127.0.0.1:44549/orders',
  • Network accessline 340
    dev: DEV,       lastKnownUrl: 'http://127.0.0.1:44549/orders',     });
  • Network accessline 341
    lastKnownUrl: 'http://127.0.0.1:44549/orders',
  • Network accessline 342
    });     expect(next.action).toBe(NoSessionAction.REOPEN_APP);     expect(next.command).toBe('npx @reticlehq/server open http://127.0.0.1:44549/orders');
  • Network accessline 343
    expect(next.action).toBe(NoSessionAction.REOPEN_APP);     expect(next.command).toBe('npx @reticlehq/server open http://127.0.0.1:44549/orders');   });
  • Network accessline 344
    expect(next.command).toBe('npx @reticlehq/server open http://127.0.0.1:44549/orders');
  • Network accessline 351
    listening: [44549],       dev: DEV,       lastKnownUrl: 'http://127.0.0.1:44549/orders',
  • Network accessline 352
    dev: DEV,       lastKnownUrl: 'http://127.0.0.1:44549/orders',     });
  • Network accessline 353
    lastKnownUrl: 'http://127.0.0.1:44549/orders',
  • Network accessline 354
    });     expect(next.action).toBe(NoSessionAction.REOPEN_APP);     expect(next.command).toBe('npx @reticlehq/server open http://127.0.0.1:44549/orders');
  • Network accessline 355
    expect(next.action).toBe(NoSessionAction.REOPEN_APP);     expect(next.command).toBe('npx @reticlehq/server open http://127.0.0.1:44549/orders');   });
  • Network accessline 356
    expect(next.command).toBe('npx @reticlehq/server open http://127.0.0.1:44549/orders');
  • Network accessline 530
    listening: [3000],     dev: undefined,     lastKnownUrl: 'http://localhost:3000/',
  • Network accessline 531
    dev: undefined,     lastKnownUrl: 'http://localhost:3000/',   } as const;
  • Network accessline 532
    lastKnownUrl: 'http://localhost:3000/',
  • Network accessline 535
    it('the reason says navigated away, not closed', () => {     const next = nextActionFor({ ...base, departedTo: 'http://localhost:3000/login' });
  • Network accessline 536
    const next = nextActionFor({ ...base, departedTo: 'http://localhost:3000/login' });
  • Network accessline 549
    [Credential-related source omitted]
  • Network accessline 550
    [Credential-related source omitted]
  • Network accessline 551
    [Credential-related source omitted]
  • Network accessline 567
    const LEASE_5173 =     'reticle_run { tool: "reticle_lease", args: { action: "acquire", url: "http://localhost:5173" } }';
  • Network accessline 568
    'reticle_run { tool: "reticle_lease", args: { action: "acquire", url: "http://localhost:5173" } }';
  • Network accessline 604
    init: INIT,     });     expect(next.reason).not.toContain('url:"http://localhost:');
  • Network accessline 605
    });     expect(next.reason).not.toContain('url:"http://localhost:');     expect(next.reason).toContain('reticle_lease');
  • Network accessline 606
    expect(next.reason).not.toContain('url:"http://localhost:');

server/src/portal/session/no-session-next-action.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 207
    const OPEN_COMMAND = `${CLI} open`; const LOCALHOST = 'http://localhost';
  • Network accessline 208
    const LOCALHOST = 'http://localhost';

server/src/portal/session/no-session-reason.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 43
    facts({         everConnected: true,         lastKnownUrl: 'http://localhost:3000/orders/explode',
  • Network accessline 44
    everConnected: true,         lastKnownUrl: 'http://localhost:3000/orders/explode',         lastKnownStatus: 500,
  • Network accessline 45
    lastKnownUrl: 'http://localhost:3000/orders/explode',
  • Network accessline 48
    );     expect(got.reason).toBe(NoSessionReason.ROUTE_SERVER_ERROR);     expect(got.message).toContain('http://localhost:3000/orders/explode');
  • Network accessline 49
    expect(got.reason).toBe(NoSessionReason.ROUTE_SERVER_ERROR);     expect(got.message).toContain('http://localhost:3000/orders/explode');     expect(got.message).toMatch(/HTTP 500/);
  • Network accessline 50
    expect(got.message).toContain('http://localhost:3000/orders/explode');
  • Network accessline 59
    const got = explainNoSession(       facts({ everConnected: true, lastKnownUrl: 'http://localhost:3000/x', lastKnownStatus: 503 }),
  • Network accessline 60
    facts({ everConnected: true, lastKnownUrl: 'http://localhost:3000/x', lastKnownStatus: 503 }),
  • Network accessline 70
    facts({           everConnected: true,           lastKnownUrl: 'http://localhost:3000/x',
  • Network accessline 71
    everConnected: true,           lastKnownUrl: 'http://localhost:3000/x',           lastKnownStatus: status,
  • Network accessline 72
    lastKnownUrl: 'http://localhost:3000/x',
  • Network accessline 84
    everConnected: true,         leaseExpired: true,         lastKnownUrl: 'http://localhost:3000/x',
  • Network accessline 85
    leaseExpired: true,         lastKnownUrl: 'http://localhost:3000/x',         lastKnownStatus: 500,
  • Network accessline 86
    lastKnownUrl: 'http://localhost:3000/x',

server/src/portal/session/no-session-restart-wiring.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 100
    id: 's1',       projectId: 'app-abc',       url: 'http://localhost:3000/',
  • Network accessline 101
    projectId: 'app-abc',       url: 'http://localhost:3000/',       redactKeys: [],
  • Network accessline 102
    url: 'http://localhost:3000/',

server/src/portal/session/no-session-watch.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 161
    it('fetches the last-known URL in the background and the hint reads the status', async () => {     const dir = projectDir(JSON.stringify({ framework: 'next', projectId: 'app-1' }));     const { manager, hint } = stubWithLastKnown('http://lo
  • Network accessline 162
    const dir = projectDir(JSON.stringify({ framework: 'next', projectId: 'app-1' }));     const { manager, hint } = stubWithLastKnown('http://localhost:3000/orders/explode');     const asked: string[] = [];
  • Network accessline 163
    const { manager, hint } = stubWithLastKnown('http://localhost:3000/orders/explode');
  • Network accessline 179
    const message = hint();     stop();     expect(asked).toEqual(['http://localhost:3000/orders/explode']);
  • Network accessline 180
    stop();     expect(asked).toEqual(['http://localhost:3000/orders/explode']);     expect(message).toMatch(/HTTP 500/);
  • Network accessline 181
    expect(asked).toEqual(['http://localhost:3000/orders/explode']);
  • Network accessline 186
    it('a fetch that fails is no fact — the diagnosis is unchanged, not wrong', async () => {     const dir = projectDir(JSON.stringify({ framework: 'next', projectId: 'app-1' }));     const { manager, hint } = stubWithLastKnown('http://localho
  • Network accessline 187
    const dir = projectDir(JSON.stringify({ framework: 'next', projectId: 'app-1' }));     const { manager, hint } = stubWithLastKnown('http://localhost:3000/orders/explode');     const stop = startNoSessionWatch({
  • Network accessline 188
    const { manager, hint } = stubWithLastKnown('http://localhost:3000/orders/explode');
  • Network accessline 270
    const dir = projectDir(undefined);     const seen: (readonly number[])[] = [];     const { manager } = stubWithLastKnown('http://localhost:4311/orders');
  • Network accessline 271
    const seen: (readonly number[])[] = [];     const { manager } = stubWithLastKnown('http://localhost:4311/orders');     const stop = startNoSessionWatch({
  • Network accessline 272
    const { manager } = stubWithLastKnown('http://localhost:4311/orders');
  • Access to secretsline 295
    [Credential-related source omitted]
  • Access to secretsline 297
    [Credential-related source omitted]
  • Network accessline 420
    });     await new Promise<void>((resolve) => setImmediate(resolve));     state.url = 'http://localhost:4394/';
  • Network accessline 421
    await new Promise<void>((resolve) => setImmediate(resolve));     state.url = 'http://localhost:4394/';     const message = hint();
  • Network accessline 422
    state.url = 'http://localhost:4394/';
  • Network accessline 428
    it('is still called stopped once a scan after the departure found nothing there', async () => {     const dir = projectDir(JSON.stringify({ framework: 'vite', projectId: 'app-1' }));     const state: { live: number; url?: string } = { live:
  • Network accessline 429
    const dir = projectDir(JSON.stringify({ framework: 'vite', projectId: 'app-1' }));     const state: { live: number; url?: string } = { live: 0, url: 'http://localhost:4394/' };     const { manager, hint } = stubWith(state);
  • Network accessline 430
    const state: { live: number; url?: string } = { live: 0, url: 'http://localhost:4394/' };
  • Network accessline 448
    /*  * A re-drive: after its lease was reaped, `reticle_session {list}` said "this daemon has never seen  * one" while a call on the old id answered "Last seen on http://localhost:17609/". A tab that
  • Network accessline 449
    * A re-drive: after its lease was reaped, `reticle_session {list}` said "this daemon has never seen  * one" while a call on the old id answered "Last seen on http://localhost:17609/". A tab that  * reported no project cannot be another proj
  • Network accessline 450
    * one" while a call on the old id answered "Last seen on http://localhost:17609/". A tab that
  • Network accessline 458
    everConnected: () => true,       everConnectedTo: () => false,       lastKnown: () => ({ id: 'lease-1', url: 'http://localhost:17609/' }),
  • Network accessline 459
    everConnectedTo: () => false,       lastKnown: () => ({ id: 'lease-1', url: 'http://localhost:17609/' }),       lastKnownFor: () => undefined,
  • Network accessline 460
    lastKnown: () => ({ id: 'lease-1', url: 'http://localhost:17609/' }),
  • Network accessline 535
    * names is found only through the processes in its folder. Agent tools run in that folder too, and  * some serve a page: an agent-browser viewer read as the app, and the answer said "just open  * http://localhost:<port>" while the app was n
  • Network accessline 536
    * some serve a page: an agent-browser viewer read as the app, and the answer said "just open  * http://localhost:<port>" while the app was not running. So a listener ends "nothing is listening"  * and names a port, and it is never a place t
  • Network accessline 537
    * http://localhost:<port>" while the app was not running. So a listener ends "nothing is listening"

server/src/portal/session/no-session-watch.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 65
    const LOCALHOST = 'http://localhost';

server/src/portal/session/output-budget.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/output-budget.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/page-commands/pending-commands.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/page-commands/pending-commands.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/page-commands/undeclared-command.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/presence/attachment-history.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/presence/attachment-history.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/presence/lease-availability.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/presence/lease-availability.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/presence/session-lease.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/presence/session-lease.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/presence/session-mirror.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/presence/session-recommendation.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/presence/session-recommendation.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/rebind.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/recorded-gaps.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 49
    const tab = {     id: 's1',     url: 'http://localhost:3000/',
  • Network accessline 50
    id: 's1',     url: 'http://localhost:3000/',     channels: ['ui', 'net', 'log'],
  • Network accessline 51
    url: 'http://localhost:3000/',
  • Network accessline 93
    const open = {     id: 's1',     url: 'http://localhost:3000/',
  • Network accessline 94
    id: 's1',     url: 'http://localhost:3000/',     channels: ['ui', 'net', 'log', 'state', 'signal'],
  • Network accessline 95
    url: 'http://localhost:3000/',
  • Network accessline 104
    const prompt = instrumentationOf(open).prompt ?? '';     expect(prompt).toContain('missing: e1');     expect(prompt).toContain('@reticlehq/server verify http://localhost:3000/');
  • Network accessline 105
    expect(prompt).toContain('missing: e1');     expect(prompt).toContain('@reticlehq/server verify http://localhost:3000/');   });
  • Network accessline 106
    expect(prompt).toContain('@reticlehq/server verify http://localhost:3000/');
  • Network accessline 121
    describe('an app with several tabs', () => {   it('counts what any of its tabs has seen, and every gap any of them recorded', () => {     const fresh = { id: 's1', url: 'http://localhost:3000/', channels: ['ui', 'net'] };
  • Network accessline 122
    it('counts what any of its tabs has seen, and every gap any of them recorded', () => {     const fresh = { id: 's1', url: 'http://localhost:3000/', channels: ['ui', 'net'] };     const driven = { id: 's2', url: 'http://localhost:3000/x', ch
  • Network accessline 123
    const fresh = { id: 's1', url: 'http://localhost:3000/', channels: ['ui', 'net'] };
  • Network accessline 124
    const driven = { id: 's2', url: 'http://localhost:3000/x', channels: ['ui', 'net', 'log'] };
  • Network accessline 136
    */   it('keeps what an ended tab of the app showed for the next fresh tab of it', () => {     const before = { id: 's1', url: 'http://localhost:3000/a', projectId: 'shop' };
  • Network accessline 137
    it('keeps what an ended tab of the app showed for the next fresh tab of it', () => {     const before = { id: 's1', url: 'http://localhost:3000/a', projectId: 'shop' };     noteActedElement(before, { testid: 'save', source: { file: 'src/a.t
  • Network accessline 138
    const before = { id: 's1', url: 'http://localhost:3000/a', projectId: 'shop' };
  • Network accessline 141
    const fresh = {       id: 's2',       url: 'http://localhost:3000/404',
  • Network accessline 142
    id: 's2',       url: 'http://localhost:3000/404',       projectId: 'shop',
  • Network accessline 143
    url: 'http://localhost:3000/404',
  • Network accessline 149
    const other = { ...fresh, id: 's3', url: 'http://localhost:4000/', projectId: 'blog' };
  • Network accessline 153
    it('keys an app with no project by its origin', () => {     noteActedElement({ id: 's1', url: 'http://localhost:3000/a' }, { testid: 'save' });
  • Network accessline 154
    noteActedElement({ id: 's1', url: 'http://localhost:3000/a' }, { testid: 'save' });
  • Network accessline 155
    expect(announcedChannels({ id: 's2', url: 'http://localhost:3000/b' })).toContain(
  • Network accessline 156
    CoverageMarker.TESTID,     );     expect(announcedChannels({ id: 's3', url: 'http://localhost:3001/' })).not.toContain(
  • Network accessline 157
    );     expect(announcedChannels({ id: 's3', url: 'http://localhost:3001/' })).not.toContain(       CoverageMarker.TESTID,
  • Network accessline 158
    expect(announcedChannels({ id: 's3', url: 'http://localhost:3001/' })).not.toContain(
  • Network accessline 179
    it('unlocks an app whose page carries test ids and file:line stamps before anything acted', async () => {     const tab = { id: 's1', url: 'http://localhost:4312/', projectId: 'bench', channels: FULL };
  • Network accessline 180
    const tab = { id: 's1', url: 'http://localhost:4312/', projectId: 'bench', channels: FULL };
  • Network accessline 186
    it("is the app's: a hidden tab of the same project that was never asked reports it too", async () => {     await probeMarkers([       { id: 's1', url: 'http://localhost:4312/', projectId: 'bench', ...answering(['testid']) },
  • Network accessline 187
    await probeMarkers([       { id: 's1', url: 'http://localhost:4312/', projectId: 'bench', ...answering(['testid']) },     ]);
  • Network accessline 188
    { id: 's1', url: 'http://localhost:4312/', projectId: 'bench', ...answering(['testid']) },
  • Network accessline 189
    ]);     expect(       announcedChannels({ id: 's9', url: 'http://localhost:4312/login', projectId: 'bench' }),
  • Network accessline 190
    expect(       announcedChannels({ id: 's9', url: 'http://localhost:4312/login', projectId: 'bench' }),     ).toContain(CoverageMarker.TESTID);
  • Network accessline 191
    announcedChannels({ id: 's9', url: 'http://localhost:4312/login', projectId: 'bench' }),
  • Network accessline 197
    it('leaves file:line out of a plain-HTML app, which unlocks the gate', async () => {     const tab = { id: 's1', url: 'http://localhost:8080/', projectId: 'plain', channels: FULL };
  • Network accessline 198
    const tab = { id: 's1', url: 'http://localhost:8080/', projectId: 'plain', channels: FULL };
  • Network accessline 213
    it('asks a page once both are known, and survives a page that cannot answer', async () => {     const asked: string[] = [];     const tab = { id: 's1', url: 'http://localhost:4312/', projectId: 'bench' };
  • Network accessline 214
    const asked: string[] = [];     const tab = { id: 's1', url: 'http://localhost:4312/', projectId: 'bench' };     await probeMarkers([{ ...tab, ...answering(['source', 'testid'], asked) }]);
  • Network accessline 215
    const tab = { id: 's1', url: 'http://localhost:4312/', projectId: 'bench' };
  • Network accessline 219
    await expect(       probeMarkers([         { id: 's2', url: 'http://x/', command: () => Promise.reject(new Error('gone')) },
  • Network accessline 220
    probeMarkers([         { id: 's2', url: 'http://x/', command: () => Promise.reject(new Error('gone')) },       ]),
  • Network accessline 221
    { id: 's2', url: 'http://x/', command: () => Promise.reject(new Error('gone')) },

server/src/portal/session/recorded-gaps.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/refusal-is-current-or-remembered.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 27
    protocolVersion: RETICLE_PROTOCOL_VERSION,     sessionId: id,     url: 'http://localhost:5173/',
  • Network accessline 28
    sessionId: id,     url: 'http://localhost:5173/',     title: id,
  • Network accessline 29
    url: 'http://localhost:5173/',

server/src/portal/session/refused-dial-is-not-an-uninstalled-app.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/refuses-undeclared.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/review-mark-identity.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/second-project-first-call.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 28
    const APP_A_URL = 'http://localhost:5173/orders';
  • Network accessline 153
    };     depart('tab-a', 'app-a', APP_A_URL);     depart('tab-b', 'app-b', 'http://localhost:5174/inbox');
  • Network accessline 154
    depart('tab-a', 'app-a', APP_A_URL);     depart('tab-b', 'app-b', 'http://localhost:5174/inbox');     const stop = startNoSessionWatch({
  • Network accessline 155
    depart('tab-b', 'app-b', 'http://localhost:5174/inbox');
  • Network accessline 167
    const fromB = runWithClientDirectory(appB, () => sessions.noSessionNextAction());     expect(fromB?.action).toBe(NoSessionAction.REOPEN_APP);     expect(fromB?.command).toContain('http://localhost:5174/inbox');
  • Network accessline 168
    expect(fromB?.action).toBe(NoSessionAction.REOPEN_APP);     expect(fromB?.command).toContain('http://localhost:5174/inbox');     expect(fromB?.command ?? '').not.toContain(APP_A_URL);
  • Network accessline 169
    expect(fromB?.command).toContain('http://localhost:5174/inbox');
  • Network accessline 184
    };     expect(listedA.lastKnown?.url).toBe(APP_A_URL);     expect(listedB.lastKnown?.url).toBe('http://localhost:5174/inbox');
  • Network accessline 186
    expect(listedB.lastKnown?.url).toBe('http://localhost:5174/inbox');
  • Network accessline 273
    sessions.remove(tab);     };     const appBUrl = 'http://localhost:3005/inbox';
  • Network accessline 274
    };     const appBUrl = 'http://localhost:3005/inbox';     depart('tab-b', 'app-b', appBUrl);
  • Network accessline 275
    const appBUrl = 'http://localhost:3005/inbox';

server/src/portal/session/serving-directory.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 22
    pid: 1,     root,     url: `http://localhost:${String(port)}`,
  • Network accessline 23
    root,     url: `http://localhost:${String(port)}`,     startedAt: 0,
  • Network accessline 24
    url: `http://localhost:${String(port)}`,
  • Network accessline 28
    it('prefers the dev server that announced this port', () => {     let shelledOut = false;     const dir = servingDirectoryOf('http://localhost:5174', {
  • Network accessline 29
    let shelledOut = false;     const dir = servingDirectoryOf('http://localhost:5174', {       devServers: () => [entry(5173, MAIN), entry(5174, CLONE)],
  • Network accessline 30
    const dir = servingDirectoryOf('http://localhost:5174', {
  • Network accessline 49
    url,     });     const dir = servingDirectoryOf('https://feat-x.app.localhost', {
  • Network accessline 50
    });     const dir = servingDirectoryOf('https://feat-x.app.localhost', {       devServers: () => [
  • Network accessline 51
    const dir = servingDirectoryOf('https://feat-x.app.localhost', {
  • Network accessline 52
    devServers: () => [         behindProxy(4101, MAIN, 'https://app.localhost'),         behindProxy(4102, CLONE, 'https://feat-x.app.localhost'),
  • Network accessline 53
    behindProxy(4101, MAIN, 'https://app.localhost'),
  • Network accessline 54
    behindProxy(4102, CLONE, 'https://feat-x.app.localhost'),
  • Network accessline 67
    it('follows a dev proxy route to the dev server behind it', () => {     const ports: number[] = [];     const dir = servingDirectoryOf('http://feat-x.app.localhost:1355', {
  • Network accessline 68
    const ports: number[] = [];     const dir = servingDirectoryOf('http://feat-x.app.localhost:1355', {       devServers: () => [],
  • Network accessline 69
    const dir = servingDirectoryOf('http://feat-x.app.localhost:1355', {
  • Network accessline 85
    it('places no page on the proxy port that no route names', () => {     const dir = servingDirectoryOf('http://gone.app.localhost:1355', {
  • Network accessline 86
    const dir = servingDirectoryOf('http://gone.app.localhost:1355', {
  • Network accessline 95
    it('falls back to the working directory of whatever listens on the port', () => {     const ports: number[] = [];     const dir = servingDirectoryOf('http://127.0.0.1:3001', {
  • Network accessline 96
    const ports: number[] = [];     const dir = servingDirectoryOf('http://127.0.0.1:3001', {       devServers: () => [],
  • Network accessline 97
    const dir = servingDirectoryOf('http://127.0.0.1:3001', {
  • Network accessline 109
    it('reads the default port when the origin names none', () => {     const ports: number[] = [];     servingDirectoryOf('http://localhost', {
  • Network accessline 110
    const ports: number[] = [];     servingDirectoryOf('http://localhost', {       devServers: () => [],
  • Network accessline 111
    servingDirectoryOf('http://localhost', {
  • Network accessline 136
    expect(servingDirectoryOf('https://staging.example.com', io)).toBeUndefined();
  • Network accessline 155
    return served;     });     const first = { id: 's', url: 'http://localhost:5173/' };
  • Network accessline 157
    const first = { id: 's', url: 'http://localhost:5173/' };
  • Network accessline 160
    served = at(CLONE);     expect(source.ofTab(first)?.root).toBe(MAIN);     expect(source.ofTab({ id: 's', url: 'http://localhost:5173/' })?.root).toBe(CLONE);
  • Network accessline 161
    expect(source.ofTab(first)?.root).toBe(MAIN);     expect(source.ofTab({ id: 's', url: 'http://localhost:5173/' })?.root).toBe(CLONE);     expect(lookups).toBe(2);
  • Network accessline 162
    expect(source.ofTab({ id: 's', url: 'http://localhost:5173/' })?.root).toBe(CLONE);

server/src/portal/session/serving-directory.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/session-buffer-health.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 34
    protocolVersion: RETICLE_PROTOCOL_VERSION,     sessionId: 'demo',     url: 'http://localhost/',
  • Network accessline 35
    sessionId: 'demo',     url: 'http://localhost/',     title: 'Demo',
  • Network accessline 36
    url: 'http://localhost/',

server/src/portal/session/session-end-gap.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/session-health-skew.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/session-health-starved.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/session-health.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/session-info.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 20
    const view = (title: string) => ({   id: 's1',   url: 'http://localhost:4321/docs/intro',
  • Network accessline 21
    id: 's1',   url: 'http://localhost:4321/docs/intro',   projectId: undefined,
  • Network accessline 22
    url: 'http://localhost:4321/docs/intro',
  • Network accessline 58
    it('still carries url, which is what a reader falls back to', () => {     expect(buildSessionInfo(view('')).url).toBe('http://localhost:4321/docs/intro');
  • Network accessline 59
    expect(buildSessionInfo(view('')).url).toBe('http://localhost:4321/docs/intro');

server/src/portal/session/session-info.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/session-journal-loss.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/session-manager-successor.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 52
    const mgr = new SessionManager();     const a = new Session(       hello('a', 'http://localhost:3000/?tab=A', 'shop'),
  • Network accessline 53
    const a = new Session(       hello('a', 'http://localhost:3000/?tab=A', 'shop'),       fakeSocket,
  • Network accessline 54
    hello('a', 'http://localhost:3000/?tab=A', 'shop'),
  • Network accessline 58
    clock.t = 500;     const b = new Session(       hello('b', 'http://localhost:3000/?tab=B', 'shop'),
  • Network accessline 59
    const b = new Session(       hello('b', 'http://localhost:3000/?tab=B', 'shop'),       fakeSocket,
  • Network accessline 60
    hello('b', 'http://localhost:3000/?tab=B', 'shop'),
  • Network accessline 75
    const mgr = new SessionManager();     const a = new Session(       hello('a', 'http://localhost:3000/?tab=A', 'shop'),
  • Network accessline 76
    const a = new Session(       hello('a', 'http://localhost:3000/?tab=A', 'shop'),       fakeSocket,
  • Network accessline 77
    hello('a', 'http://localhost:3000/?tab=A', 'shop'),
  • Network accessline 80
    );     const b = new Session(       hello('b', 'http://localhost:3000/?tab=B', 'shop'),
  • Network accessline 81
    const b = new Session(       hello('b', 'http://localhost:3000/?tab=B', 'shop'),       fakeSocket,
  • Network accessline 82
    hello('b', 'http://localhost:3000/?tab=B', 'shop'),
  • Network accessline 93
    mgr.add(       new Session(         hello('a2', 'http://localhost:3000/?tab=A&step=3', 'shop'),
  • Network accessline 94
    new Session(         hello('a2', 'http://localhost:3000/?tab=A&step=3', 'shop'),         fakeSocket,
  • Network accessline 95
    hello('a2', 'http://localhost:3000/?tab=A&step=3', 'shop'),
  • Network accessline 105
    it('rebinds the departed id to the one live session at that origin', () => {     const mgr = new SessionManager();     const old = session('old', 'http://localhost:3000/orders', 'shop');
  • Network accessline 106
    const mgr = new SessionManager();     const old = session('old', 'http://localhost:3000/orders', 'shop');     mgr.add(old);
  • Network accessline 107
    const old = session('old', 'http://localhost:3000/orders', 'shop');
  • Network accessline 108
    mgr.add(old);     mgr.remove(old);     const next = session('new', 'http://localhost:3000/orders/42', 'shop');
  • Network accessline 109
    mgr.remove(old);     const next = session('new', 'http://localhost:3000/orders/42', 'shop');     mgr.add(next);
  • Network accessline 110
    const next = session('new', 'http://localhost:3000/orders/42', 'shop');
  • Network accessline 116
    it('does not rebind an id that was never connected', () => {     const mgr = new SessionManager();     mgr.add(session('live', 'http://localhost:3000/', 'shop'));
  • Network accessline 117
    const mgr = new SessionManager();     mgr.add(session('live', 'http://localhost:3000/', 'shop'));     expect(() => mgr.resolve('ghost')).toThrow(/ghost/);
  • Network accessline 118
    mgr.add(session('live', 'http://localhost:3000/', 'shop'));
  • Network accessline 122
    it('does not guess when two tabs share the origin', () => {     const mgr = new SessionManager();     const old = session('old', 'http://localhost:3000/a', 'shop');
  • Network accessline 123
    const mgr = new SessionManager();     const old = session('old', 'http://localhost:3000/a', 'shop');     mgr.add(old);
  • Network accessline 124
    const old = session('old', 'http://localhost:3000/a', 'shop');
  • Network accessline 125
    mgr.add(old);     mgr.remove(old);     mgr.add(session('a', 'http://localhost:3000/a', 'shop'));
  • Network accessline 126
    mgr.remove(old);     mgr.add(session('a', 'http://localhost:3000/a', 'shop'));     mgr.add(session('b', 'http://localhost:3000/b', 'shop'));
  • Network accessline 127
    mgr.add(session('a', 'http://localhost:3000/a', 'shop'));
  • Network accessline 128
    mgr.add(session('b', 'http://localhost:3000/b', 'shop'));
  • Network accessline 132
    it('does not rebind across origins', () => {     const mgr = new SessionManager();     const old = session('old', 'http://localhost:3000/a', 'shop');
  • Network accessline 133
    const mgr = new SessionManager();     const old = session('old', 'http://localhost:3000/a', 'shop');     mgr.add(old);
  • Network accessline 134
    const old = session('old', 'http://localhost:3000/a', 'shop');
  • Network accessline 135
    mgr.add(old);     mgr.remove(old);     mgr.add(session('other', 'http://localhost:9999/a', 'shop'));
  • Network accessline 136
    mgr.remove(old);     mgr.add(session('other', 'http://localhost:9999/a', 'shop'));     expect(() => mgr.resolve('old')).toThrow(/old/);
  • Network accessline 137
    mgr.add(session('other', 'http://localhost:9999/a', 'shop'));
  • Network accessline 151
    it('names the id and URL of the session that just disappeared', () => {     const mgr = new SessionManager();     const old = session('torn', 'http://localhost:3000/orders/explode', 'shop');
  • Network accessline 152
    const mgr = new SessionManager();     const old = session('torn', 'http://localhost:3000/orders/explode', 'shop');     mgr.add(old);
  • Network accessline 153
    const old = session('torn', 'http://localhost:3000/orders/explode', 'shop');
  • Network accessline 157
    expect(mgr.lastKnown()).toEqual({       id: 'torn',       url: 'http://localhost:3000/orders/explode',
  • Network accessline 158
    id: 'torn',       url: 'http://localhost:3000/orders/explode',       projectId: 'shop',
  • Network accessline 159
    url: 'http://localhost:3000/orders/explode',
  • Network accessline 164
    it('a vanished id with no live successor names the last URL rather than only the missing id', () => {     const mgr = new SessionManager();     const old = session('torn', 'http://localhost:3000/orders/explode', 'shop');
  • Network accessline 165
    const mgr = new SessionManager();     const old = session('torn', 'http://localhost:3000/orders/explode', 'shop');     mgr.add(old);
  • Network accessline 166
    const old = session('torn', 'http://localhost:3000/orders/explode', 'shop');
  • Network accessline 172
    it('carries the navigation target the SDK reported before the socket closed', () => {     const mgr = new SessionManager();     const old = session('torn', 'http://localhost:3000/', 'shop');
  • Network accessline 173
    const mgr = new SessionManager();     const old = session('torn', 'http://localhost:3000/', 'shop');     mgr.add(old);
  • Network accessline 174
    const old = session('torn', 'http://localhost:3000/', 'shop');
  • Network accessline 179
    id: 'nav-1',         method: 'GET',         url: 'http://localhost:3000/login',
  • Network accessline 180
    method: 'GET',         url: 'http://localhost:3000/login',         initiator: 'navigation',
  • Network accessline 181
    url: 'http://localhost:3000/login',
  • Network accessline 187
    expect(mgr.lastKnown()).toEqual({       id: 'torn',       url: 'http://localhost:3000/',
  • Network accessline 188
    id: 'torn',       url: 'http://localhost:3000/',       projectId: 'shop',
  • Network accessline 189
    url: 'http://localhost:3000/',
  • Network accessline 190
    projectId: 'shop',       departedTo: 'http://localhost:3000/login',     });
  • Network accessline 191
    departedTo: 'http://localhost:3000/login',
  • Network accessline 197
    const mgr = new SessionManager();     const old = new Session(       hello('torn', 'http://localhost:3000/', 'shop'),
  • Network accessline 198
    const old = new Session(       hello('torn', 'http://localhost:3000/', 'shop'),       fakeSocket,
  • Network accessline 199
    hello('torn', 'http://localhost:3000/', 'shop'),
  • Network accessline 207
    id: 'nav-1',         method: 'GET',         url: 'http://localhost:3000/login',
  • Network accessline 208
    method: 'GET',         url: 'http://localhost:3000/login',         initiator: 'navigation',
  • Network accessline 209
    url: 'http://localhost:3000/login',
  • Network accessline 217
    expect(mgr.lastKnown()).toEqual({       id: 'torn',       url: 'http://localhost:3000/',
  • Network accessline 218
    id: 'torn',       url: 'http://localhost:3000/',       projectId: 'shop',
  • Network accessline 219
    url: 'http://localhost:3000/',

server/src/portal/session/session-manager.checkout.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 28
    const tab = (id: string, url: string) => ({ id, url }); const servedBy: Record<string, Checkout> = {   'http://localhost:5173/': MAIN,
  • Network accessline 29
    const servedBy: Record<string, Checkout> = {   'http://localhost:5173/': MAIN,   'http://localhost:5174/': WT_A,
  • Network accessline 30
    'http://localhost:5173/': MAIN,
  • Network accessline 31
    'http://localhost:5174/': WT_A,
  • Network accessline 32
    'http://localhost:5175/': WT_B,
  • Network accessline 38
    it('keeps only the tabs served from the agent’s own worktree', () => {     const tabs = [tab('s-main', 'http://localhost:5173/'), tab('s-a', 'http://localhost:5174/')];
  • Network accessline 39
    const tabs = [tab('s-main', 'http://localhost:5173/'), tab('s-a', 'http://localhost:5174/')];
  • Network accessline 49
    it('refuses when every tab is served from another worktree, and names them', () => {     const result = scopeToCallerCheckout(       [tab('s-b', 'http://localhost:5175/')],
  • Network accessline 50
    const result = scopeToCallerCheckout(       [tab('s-b', 'http://localhost:5175/')],       WT_A,
  • Network accessline 51
    [tab('s-b', 'http://localhost:5175/')],
  • Network accessline 65
    */   it('drops the tabs of other worktrees and keeps the ones it cannot place', () => {     const tabs = [tab('s-b', 'http://localhost:5175/'), tab('s-x', 'http://localhost:9999/')];
  • Network accessline 66
    it('drops the tabs of other worktrees and keeps the ones it cannot place', () => {     const tabs = [tab('s-b', 'http://localhost:5175/'), tab('s-x', 'http://localhost:9999/')];     expect(scopeToCallerCheckout(tabs, WT_A, checkoutOfTab)).t
  • Network accessline 67
    const tabs = [tab('s-b', 'http://localhost:5175/'), tab('s-x', 'http://localhost:9999/')];
  • Network accessline 92
    it('keeps every tab when the agent is outside git', () => {     const tabs = [tab('s-b', 'http://localhost:5175/')];
  • Network accessline 93
    const tabs = [tab('s-b', 'http://localhost:5175/')];
  • Network accessline 102
    linked: false,     };     const tabs = [tab('s-b', 'http://localhost:5175/')];
  • Network accessline 103
    };     const tabs = [tab('s-b', 'http://localhost:5175/')];     expect(scopeToCallerCheckout(tabs, other, checkoutOfTab)).toEqual({ sessions: tabs });
  • Network accessline 104
    const tabs = [tab('s-b', 'http://localhost:5175/')];
  • Network accessline 114
    linked: true,     });     const tabs = [tab('s-a', 'http://localhost:5174/'), tab('s-b', 'http://localhost:5175/')];
  • Network accessline 115
    });     const tabs = [tab('s-a', 'http://localhost:5174/'), tab('s-b', 'http://localhost:5175/')];     const served: Record<string, Checkout> = {
  • Network accessline 116
    const tabs = [tab('s-a', 'http://localhost:5174/'), tab('s-b', 'http://localhost:5175/')];
  • Network accessline 117
    const served: Record<string, Checkout> = {       'http://localhost:5174/': wtA('C:/wt/a', 'C:/repo/.git'),       'http://localhost:5175/': wtA('C:/wt/b', 'C:/repo/.git'),
  • Network accessline 118
    'http://localhost:5174/': wtA('C:/wt/a', 'C:/repo/.git'),
  • Network accessline 119
    'http://localhost:5175/': wtA('C:/wt/b', 'C:/repo/.git'),

server/src/portal/session/session-manager.scope.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 31
    return new Promise((resolve) => {     const sock = new WebSocket(`ws://${LOOPBACK_HOST}:${String(port)}${RETICLE_WS_PATH}`, {       origin: 'http://localhost',
  • Network accessline 32
    const sock = new WebSocket(`ws://${LOOPBACK_HOST}:${String(port)}${RETICLE_WS_PATH}`, {       origin: 'http://localhost',     });
  • Network accessline 33
    origin: 'http://localhost',
  • Network accessline 61
    describe('project-scoped resolve()', () => {   it('two apps on the same origin, different projectId → scope picks the right one', async () => {     await connect({ sessionId: 'tab-a', url: 'http://localhost:3000/', projectId: 'app-a' });
  • Network accessline 62
    it('two apps on the same origin, different projectId → scope picks the right one', async () => {     await connect({ sessionId: 'tab-a', url: 'http://localhost:3000/', projectId: 'app-a' });     await connect({ sessionId: 'tab-b', url: 'htt
  • Network accessline 63
    await connect({ sessionId: 'tab-a', url: 'http://localhost:3000/', projectId: 'app-a' });
  • Network accessline 64
    await connect({ sessionId: 'tab-b', url: 'http://localhost:3000/', projectId: 'app-b' });
  • Network accessline 73
    await connect({ sessionId: 'a', url: 'http://localhost:3001/', projectId: 'app-a' });
  • Network accessline 74
    await connect({ sessionId: 'b', url: 'http://localhost:3000/', projectId: 'app-b' });
  • Network accessline 81
    it('a stray tab from another project is never auto-selected', async () => {     await connect({ sessionId: 'mine', url: 'http://localhost:3000/', projectId: 'mine' });
  • Network accessline 82
    await connect({ sessionId: 'mine', url: 'http://localhost:3000/', projectId: 'mine' });
  • Network accessline 84
    await connect({ sessionId: 'stray', url: 'http://localhost:4310/', projectId: 'showcase' });
  • Network accessline 90
    it('sessions exist but none match the scope → honest scoped error, no foreign fallback', async () => {     await connect({ sessionId: 'stray', url: 'http://localhost:4310/', projectId: 'showcase' });
  • Network accessline 91
    await connect({ sessionId: 'stray', url: 'http://localhost:4310/', projectId: 'showcase' });
  • Network accessline 102
    */   it('names the sessions that ARE connected, and how to target one', async () => {     await connect({ sessionId: 'stray', url: 'http://localhost:4310/', projectId: 'showcase' });
  • Network accessline 103
    it('names the sessions that ARE connected, and how to target one', async () => {     await connect({ sessionId: 'stray', url: 'http://localhost:4310/', projectId: 'showcase' });     await waitForSessions(1);
  • Network accessline 104
    await connect({ sessionId: 'stray', url: 'http://localhost:4310/', projectId: 'showcase' });
  • Network accessline 114
    expect(message).toContain('showcase'); // the project that IS connected     expect(message).toContain('stray'); // the sessionId to pass     expect(message).toContain('http://localhost:4310/'); // where it came from
  • Network accessline 115
    expect(message).toContain('stray'); // the sessionId to pass     expect(message).toContain('http://localhost:4310/'); // where it came from     expect(message).not.toContain('is that app running');
  • Network accessline 116
    expect(message).toContain('http://localhost:4310/'); // where it came from
  • Network accessline 120
    it('origin scope works for legacy SDKs that send no projectId', async () => {     await connect({ sessionId: 'next', url: 'http://localhost:3000/' });
  • Network accessline 121
    await connect({ sessionId: 'next', url: 'http://localhost:3000/' });
  • Network accessline 122
    await connect({ sessionId: 'vite', url: 'http://localhost:5173/' });
  • Network accessline 125
    expect(bridge.sessions.resolve(undefined, { url: 'http://localhost:5173/dashboard' }).id).toBe(
  • Network accessline 130
    it('no scope → legacy behavior unchanged (single session resolves)', async () => {     await connect({ sessionId: 'solo', url: 'http://localhost:3000/' });
  • Network accessline 131
    await connect({ sessionId: 'solo', url: 'http://localhost:3000/' });
  • Network accessline 137
    it('a default scope (from .reticle.json) is applied when no per-call scope is given', async () => {     bridge.sessions.setDefaultScope({ projectId: 'mine' });     await connect({ sessionId: 'mine-tab', url: 'http://localhost:3000/', projec
  • Network accessline 138
    bridge.sessions.setDefaultScope({ projectId: 'mine' });     await connect({ sessionId: 'mine-tab', url: 'http://localhost:3000/', projectId: 'mine' });     await connect({ sessionId: 'stray', url: 'http://localhost:4310/', projectId: 'showc
  • Network accessline 139
    await connect({ sessionId: 'mine-tab', url: 'http://localhost:3000/', projectId: 'mine' });
  • Network accessline 140
    await connect({ sessionId: 'stray', url: 'http://localhost:4310/', projectId: 'showcase' });
  • Network accessline 165
    describe('a dead sessionId names the live ones instead of sending the agent away', () => {   it('names the connected sessions in the error', async () => {     await connect({ sessionId: 'alive-1', url: 'http://localhost:3000/', projectId: '
  • Network accessline 166
    it('names the connected sessions in the error', async () => {     await connect({ sessionId: 'alive-1', url: 'http://localhost:3000/', projectId: 'p' });     await connect({ sessionId: 'alive-2', url: 'http://localhost:3001/', projectId: 'p
  • Network accessline 167
    await connect({ sessionId: 'alive-1', url: 'http://localhost:3000/', projectId: 'p' });
  • Network accessline 168
    await connect({ sessionId: 'alive-2', url: 'http://localhost:3001/', projectId: 'p' });
  • Network accessline 186
    it("never names another agent's leased tab, and says an ended lease ended", async () => {     await connect({ sessionId: 'mine', url: 'http://localhost:3000/', projectId: 'p' });
  • Network accessline 187
    await connect({ sessionId: 'mine', url: 'http://localhost:3000/', projectId: 'p' });
  • Network accessline 188
    await connect({       sessionId: 'lease-theirs',       url: 'http://localhost:3000/settings?__reticle_session=lease-theirs',
  • Network accessline 189
    sessionId: 'lease-theirs',       url: 'http://localhost:3000/settings?__reticle_session=lease-theirs',       projectId: 'p',
  • Network accessline 190
    url: 'http://localhost:3000/settings?__reticle_session=lease-theirs',
  • Network accessline 228
    describe('reticle_sessions reports whether a session stayed attached', () => {   it('a freshly connected session reports zero outages', async () => {     await connect({ sessionId: 'fresh', url: 'http://localhost:3000/', projectId: 'p' });
  • Network accessline 229
    it('a freshly connected session reports zero outages', async () => {     await connect({ sessionId: 'fresh', url: 'http://localhost:3000/', projectId: 'p' });     await waitForSessions(1);
  • Network accessline 230
    await connect({ sessionId: 'fresh', url: 'http://localhost:3000/', projectId: 'p' });
  • Network accessline 240
    it('exposes continuity per session id', async () => {     await connect({ sessionId: 'a', url: 'http://localhost:3000/', projectId: 'p' });
  • Network accessline 241
    await connect({ sessionId: 'a', url: 'http://localhost:3000/', projectId: 'p' });
  • Network accessline 272
    describe('an unscoped call across two projects refuses instead of guessing', () => {   it('refuses when two projects are connected and nothing disambiguates', async () => {     await connect({ sessionId: 'a', url: 'http://localhost:3000/', 
  • Network accessline 273
    it('refuses when two projects are connected and nothing disambiguates', async () => {     await connect({ sessionId: 'a', url: 'http://localhost:3000/', projectId: 'next-app-router' });     await connect({ sessionId: 'b', url: 'http://local
  • Network accessline 274
    await connect({ sessionId: 'a', url: 'http://localhost:3000/', projectId: 'next-app-router' });
  • Network accessline 275
    await connect({ sessionId: 'b', url: 'http://localhost:7699/', projectId: 'rowy-d30b4137' });
  • Network accessline 293
    await connect({ sessionId: 'one', url: 'http://localhost:3000/a', projectId: 'same' });
  • Network accessline 298
    it('an explicit scope still wins, so nothing that already worked changes', async () => {     await connect({ sessionId: 'a', url: 'http://localhost:3000/', projectId: 'app-a' });
  • Network accessline 299
    await connect({ sessionId: 'a', url: 'http://localhost:3000/', projectId: 'app-a' });
  • Network accessline 300
    await connect({ sessionId: 'b', url: 'http://localhost:3001/', projectId: 'app-b' });
  • Network accessline 305
    it('an explicit sessionId still wins', async () => {     await connect({ sessionId: 'a', url: 'http://localhost:3000/', projectId: 'app-a' });
  • Network accessline 306
    await connect({ sessionId: 'a', url: 'http://localhost:3000/', projectId: 'app-a' });
  • Network accessline 307
    await connect({ sessionId: 'b', url: 'http://localhost:3001/', projectId: 'app-b' });
  • Network accessline 339
    };   const servedBy: Record<string, typeof MAIN> = {     'http://localhost:5173/': MAIN,
  • Network accessline 340
    const servedBy: Record<string, typeof MAIN> = {     'http://localhost:5173/': MAIN,     'http://localhost:5174/': WT_A,
  • Network accessline 341
    'http://localhost:5173/': MAIN,
  • Network accessline 342
    'http://localhost:5174/': WT_A,
  • Network accessline 343
    'http://localhost:5175/': WT_B,
  • Network accessline 350
    await connect({ sessionId: 'tab-a', url: 'http://localhost:5174/', projectId: 'app' });
  • Network accessline 351
    await connect({ sessionId: 'tab-b', url: 'http://localhost:5175/', projectId: 'app' });
  • Network accessline 360
    it('names the worktree and branch of each tab in the session list', async () => {     bridge.sessions.setCheckoutScope({ caller: () => WT_A, ofTab: (t) => servedBy[t.url] });     await connect({ sessionId: 'tab-main', url: 'http://localhost
  • Network accessline 361
    bridge.sessions.setCheckoutScope({ caller: () => WT_A, ofTab: (t) => servedBy[t.url] });     await connect({ sessionId: 'tab-main', url: 'http://localhost:5173/', projectId: 'app' });     await connect({ sessionId: 'tab-b', url: 'http://loc
  • Network accessline 362
    await connect({ sessionId: 'tab-main', url: 'http://localhost:5173/', projectId: 'app' });
  • Network accessline 363
    await connect({ sessionId: 'tab-b', url: 'http://localhost:5175/', projectId: 'app' });
  • Network accessline 371
    it('refuses another worktree’s only tab, and an explicit sessionId still reaches it', async () => {     bridge.sessions.setCheckoutScope({ caller: () => WT_A, ofTab: (t) => servedBy[t.url] });     await connect({ sessionId: 'tab-b', url: 'h
  • Network accessline 372
    bridge.sessions.setCheckoutScope({ caller: () => WT_A, ofTab: (t) => servedBy[t.url] });     await connect({ sessionId: 'tab-b', url: 'http://localhost:5175/', projectId: 'app' });     await waitForSessions(1);
  • Network accessline 373
    await connect({ sessionId: 'tab-b', url: 'http://localhost:5175/', projectId: 'app' });

server/src/portal/session/session-manager.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/session-pending-navigation.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/session-reaper.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 29
    protocolVersion: RETICLE_PROTOCOL_VERSION,     sessionId: id,     url: 'http://localhost/',
  • Network accessline 30
    sessionId: id,     url: 'http://localhost/',     title: 'Demo',
  • Network accessline 31
    url: 'http://localhost/',

server/src/portal/session/session-reaper.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/session-rebind.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 26
    protocolVersion: RETICLE_PROTOCOL_VERSION,   sessionId: 'demo',   url: 'http://localhost/',
  • Network accessline 27
    sessionId: 'demo',   url: 'http://localhost/',   title: 'Demo',
  • Network accessline 28
    url: 'http://localhost/',

server/src/portal/session/session-reconnect.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/session-reconnect.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/session-successor-lease.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    const leased = (id: string, url = 'http://localhost:4321/issues') => ({
  • Network accessline 18
    url: `${url}?${RETICLE_URL_PARAM.SESSION}=${id}`, }); const plain = (id: string, url = 'http://localhost:4321/issues') => ({ id, url });
  • Network accessline 20
    const plain = (id: string, url = 'http://localhost:4321/issues') => ({ id, url });
  • Network accessline 53
    it('does not follow across origins, claimed or not', () => {     const departed = leased('lease-a', 'http://localhost:4321/x');
  • Network accessline 54
    const departed = leased('lease-a', 'http://localhost:4321/x');
  • Network accessline 55
    const elsewhere = {       id: 's-new',       url: `http://localhost:9999/x?${RETICLE_URL_PARAM.SESSION}=lease-a`,
  • Network accessline 56
    id: 's-new',       url: `http://localhost:9999/x?${RETICLE_URL_PARAM.SESSION}=lease-a`,     };
  • Network accessline 57
    url: `http://localhost:9999/x?${RETICLE_URL_PARAM.SESSION}=lease-a`,

server/src/portal/session/session-successor.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 15
    const departed = {   id: 'old',   url: 'http://localhost:3000/orders',
  • Network accessline 16
    id: 'old',   url: 'http://localhost:3000/orders',   projectId: 'shop',
  • Network accessline 17
    url: 'http://localhost:3000/orders',
  • Network accessline 23
    expect(       pickDocumentSuccessor(         [{ id: 'new', url: 'http://localhost:3000/orders/42', projectId: 'shop' }],
  • Network accessline 24
    pickDocumentSuccessor(         [{ id: 'new', url: 'http://localhost:3000/orders/42', projectId: 'shop' }],         departed,
  • Network accessline 25
    [{ id: 'new', url: 'http://localhost:3000/orders/42', projectId: 'shop' }],
  • Network accessline 32
    expect(       pickDocumentSuccessor(         [{ id: 'old', url: 'http://localhost:3000/orders/42', projectId: 'shop' }],
  • Network accessline 33
    pickDocumentSuccessor(         [{ id: 'old', url: 'http://localhost:3000/orders/42', projectId: 'shop' }],         departed,
  • Network accessline 34
    [{ id: 'old', url: 'http://localhost:3000/orders/42', projectId: 'shop' }],
  • Network accessline 42
    pickDocumentSuccessor(         [           { id: 'a', url: 'http://localhost:3000/a', projectId: 'shop' },
  • Network accessline 43
    [           { id: 'a', url: 'http://localhost:3000/a', projectId: 'shop' },           { id: 'b', url: 'http://localhost:3000/b', projectId: 'shop' },
  • Network accessline 44
    { id: 'a', url: 'http://localhost:3000/a', projectId: 'shop' },
  • Network accessline 45
    { id: 'b', url: 'http://localhost:3000/b', projectId: 'shop' },
  • Network accessline 53
    expect(       pickDocumentSuccessor(         [{ id: 'other', url: 'http://localhost:9999/orders', projectId: 'shop' }],
  • Network accessline 54
    pickDocumentSuccessor(         [{ id: 'other', url: 'http://localhost:9999/orders', projectId: 'shop' }],         departed,
  • Network accessline 55
    [{ id: 'other', url: 'http://localhost:9999/orders', projectId: 'shop' }],
  • Network accessline 62
    expect(       pickDocumentSuccessor(         [{ id: 'stray', url: 'http://localhost:3000/admin', projectId: 'admin' }],
  • Network accessline 63
    pickDocumentSuccessor(         [{ id: 'stray', url: 'http://localhost:3000/admin', projectId: 'admin' }],         departed,
  • Network accessline 64
    [{ id: 'stray', url: 'http://localhost:3000/admin', projectId: 'admin' }],
  • Network accessline 76
    expect(       pickDocumentSuccessor(         [{ id: 'old', url: 'http://localhost:3000/admin', projectId: 'admin' }],
  • Network accessline 77
    pickDocumentSuccessor(         [{ id: 'old', url: 'http://localhost:3000/admin', projectId: 'admin' }],         departed,
  • Network accessline 78
    [{ id: 'old', url: 'http://localhost:3000/admin', projectId: 'admin' }],
  • Network accessline 89
    pickDocumentSuccessor(         [           { id: 'old', url: 'http://localhost:3000/admin', projectId: 'admin' },
  • Network accessline 90
    [           { id: 'old', url: 'http://localhost:3000/admin', projectId: 'admin' },           { id: 'fresh', url: 'http://localhost:3000/orders/42', projectId: 'shop' },
  • Network accessline 91
    { id: 'old', url: 'http://localhost:3000/admin', projectId: 'admin' },
  • Network accessline 92
    { id: 'fresh', url: 'http://localhost:3000/orders/42', projectId: 'shop' },
  • Network accessline 109
    expect(       pickDocumentSuccessor(         [{ id: 'lease-7', url: 'http://localhost:3000/orders', projectId: 'shop' }],
  • Network accessline 110
    pickDocumentSuccessor(         [{ id: 'lease-7', url: 'http://localhost:3000/orders', projectId: 'shop' }],         {
  • Network accessline 111
    [{ id: 'lease-7', url: 'http://localhost:3000/orders', projectId: 'shop' }],
  • Network accessline 112
    {           id: 'lease-7',           url: 'http://localhost:3000/orders?__reticle_session=lease-7',
  • Network accessline 113
    id: 'lease-7',           url: 'http://localhost:3000/orders?__reticle_session=lease-7',           projectId: 'shop',
  • Network accessline 114
    url: 'http://localhost:3000/orders?__reticle_session=lease-7',
  • Network accessline 125
    expect(       pickDocumentSuccessor(         [{ id: 'human-tab', url: 'http://localhost:3000/orders', projectId: 'shop' }],
  • Network accessline 126
    pickDocumentSuccessor(         [{ id: 'human-tab', url: 'http://localhost:3000/orders', projectId: 'shop' }],         {
  • Network accessline 127
    [{ id: 'human-tab', url: 'http://localhost:3000/orders', projectId: 'shop' }],
  • Network accessline 128
    {           id: 'lease-7',           url: 'http://localhost:3000/orders?__reticle_session=lease-7',
  • Network accessline 129
    id: 'lease-7',           url: 'http://localhost:3000/orders?__reticle_session=lease-7',           projectId: 'shop',
  • Network accessline 130
    url: 'http://localhost:3000/orders?__reticle_session=lease-7',
  • Network accessline 137
    it('with no projectId, origin alone is the match', () => {     expect(       pickDocumentSuccessor([{ id: 'new', url: 'http://localhost:3000/done' }], {
  • Network accessline 138
    expect(       pickDocumentSuccessor([{ id: 'new', url: 'http://localhost:3000/done' }], {         id: 'old',
  • Network accessline 139
    pickDocumentSuccessor([{ id: 'new', url: 'http://localhost:3000/done' }], {
  • Network accessline 140
    id: 'old',         url: 'http://localhost:3000/start',       })?.id,
  • Network accessline 141
    url: 'http://localhost:3000/start',
  • Network accessline 167
    describe('awaitDocumentSuccessor', () => {   it('returns the session that arrives a few polls later', async () => {     const departed = stub('old', 'http://localhost:3000/a');
  • Network accessline 168
    it('returns the session that arrives a few polls later', async () => {     const departed = stub('old', 'http://localhost:3000/a');     const next = stub('new', 'http://localhost:3000/b');
  • Network accessline 169
    const departed = stub('old', 'http://localhost:3000/a');
  • Network accessline 170
    const next = stub('new', 'http://localhost:3000/b');
  • Network accessline 186
    it('finds the successor even while the departed session is still listed', async () => {     const departed = stub('old', 'http://localhost:3000/a');
  • Network accessline 187
    const departed = stub('old', 'http://localhost:3000/a');
  • Network accessline 188
    const next = stub('new', 'http://localhost:3000/b');
  • Network accessline 202
    */   it('never follows a sibling that was open before the agent last drove the departed tab', async () => {     const departed = stub('a', 'http://localhost:3000/?tab=A', { ageMs: 60_000, idleMs: 20 });
  • Network accessline 203
    it('never follows a sibling that was open before the agent last drove the departed tab', async () => {     const departed = stub('a', 'http://localhost:3000/?tab=A', { ageMs: 60_000, idleMs: 20 });     const sibling = stub('b', 'http://loca
  • Network accessline 204
    const departed = stub('a', 'http://localhost:3000/?tab=A', { ageMs: 60_000, idleMs: 20 });
  • Network accessline 205
    const sibling = stub('b', 'http://localhost:3000/?tab=B', { ageMs: 59_500 });
  • Network accessline 215
    it('waits past that sibling for the departed tab coming back under its own id', async () => {     const departed = stub('a', 'http://localhost:3000/?tab=A', { ageMs: 60_000, idleMs: 20 });
  • Network accessline 216
    const departed = stub('a', 'http://localhost:3000/?tab=A', { ageMs: 60_000, idleMs: 20 });
  • Network accessline 217
    const sibling = stub('b', 'http://localhost:3000/?tab=B', { ageMs: 59_500 });
  • Network accessline 218
    const back = stub('a', 'http://localhost:3000/?tab=A&step=3', { ageMs: 5 });
  • Network accessline 232
    it('gives up with null rather than hanging when nobody arrives', async () => {     const departed = stub('old', 'http://localhost:3000/a');
  • Network accessline 233
    const departed = stub('old', 'http://localhost:3000/a');

server/src/portal/session/session-successor.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/session-tools.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/session-tools.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/session-unresponsive.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 22
    protocolVersion: RETICLE_PROTOCOL_VERSION,   sessionId: 'wedged',   url: 'http://localhost:4321/',
  • Network accessline 23
    sessionId: 'wedged',   url: 'http://localhost:4321/',   title: 'Demo',
  • Network accessline 24
    url: 'http://localhost:4321/',
  • Network accessline 77
    */   it('reticle open opens a fresh tab instead of reusing a wedged one', () => {     const url = 'http://localhost:4321/';
  • Network accessline 78
    it('reticle open opens a fresh tab instead of reusing a wedged one', () => {     const url = 'http://localhost:4321/';     expect(decideOpen([{ url, unresponsive: true }], url)).toEqual({ action: 'open', url });
  • Network accessline 79
    const url = 'http://localhost:4321/';
  • Network accessline 85
    it('does not reuse a wedged tab when no url was named either', () => {     expect(decideOpen([{ url: 'http://localhost:4321/', unresponsive: true }], undefined)).toEqual({
  • Network accessline 86
    expect(decideOpen([{ url: 'http://localhost:4321/', unresponsive: true }], undefined)).toEqual({
  • Network accessline 105
    it('carries the flag off the daemon /status wire so the CLI can see it', () => {     const { sessions } = summarizeStatus({       sessions: [{ sessionId: 's1', url: 'http://localhost:4321/', unresponsive: true }],
  • Network accessline 106
    const { sessions } = summarizeStatus({       sessions: [{ sessionId: 's1', url: 'http://localhost:4321/', unresponsive: true }],     });
  • Network accessline 107
    sessions: [{ sessionId: 's1', url: 'http://localhost:4321/', unresponsive: true }],

server/src/portal/session/session-verdict-facts.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/session-verdict-facts.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/session.control.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 17
    protocolVersion: RETICLE_PROTOCOL_VERSION,   sessionId: 'demo',   url: 'http://localhost/',
  • Network accessline 18
    sessionId: 'demo',   url: 'http://localhost/',   title: 'Demo',
  • Network accessline 19
    url: 'http://localhost/',

server/src/portal/session/session.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 22
    protocolVersion: RETICLE_PROTOCOL_VERSION,   sessionId: 'demo',   url: 'http://localhost/',
  • Network accessline 23
    sessionId: 'demo',   url: 'http://localhost/',   title: 'Demo',
  • Network accessline 24
    url: 'http://localhost/',
  • Network accessline 50
    it('updates url on a ROUTE_CHANGE event (so CDP page correlation tracks SPA nav)', () => {     const { session } = makeSession();     expect(session.url).toBe('http://localhost/');
  • Network accessline 51
    const { session } = makeSession();     expect(session.url).toBe('http://localhost/');     session.pushEvent(routeEvent('http://localhost/workspace?script=42'));
  • Network accessline 52
    expect(session.url).toBe('http://localhost/');
  • Network accessline 53
    session.pushEvent(routeEvent('http://localhost/workspace?script=42'));
  • Network accessline 54
    expect(session.url).toBe('http://localhost/workspace?script=42');
  • Network accessline 55
    expect(session.info().url).toBe('http://localhost/workspace?script=42');
  • Network accessline 58
    it('ignores a route event with a missing/empty/non-string `to` (keeps the last good url)', () => {     const { session } = makeSession();     session.pushEvent(routeEvent('http://localhost/a'));
  • Network accessline 59
    const { session } = makeSession();     session.pushEvent(routeEvent('http://localhost/a'));     session.pushEvent({
  • Network accessline 60
    session.pushEvent(routeEvent('http://localhost/a'));
  • Network accessline 64
    } as unknown as ReticleEvent);     session.pushEvent({ type: EventType.ROUTE_CHANGE, data: {} } as unknown as ReticleEvent);     expect(session.url).toBe('http://localhost/a');
  • Network accessline 65
    session.pushEvent({ type: EventType.ROUTE_CHANGE, data: {} } as unknown as ReticleEvent);     expect(session.url).toBe('http://localhost/a');   });
  • Network accessline 66
    expect(session.url).toBe('http://localhost/a');
  • Network accessline 269
    const mgr = new SessionManager();     const untagged = new Session(       { ...HELLO, sessionId: 's-untagged', projectId: undefined, url: 'http://localhost:3000' },
  • Network accessline 270
    const untagged = new Session(       { ...HELLO, sessionId: 's-untagged', projectId: undefined, url: 'http://localhost:3000' },       fakeSocket,
  • Network accessline 271
    { ...HELLO, sessionId: 's-untagged', projectId: undefined, url: 'http://localhost:3000' },
  • Network accessline 303
    const mgr = new SessionManager();     const tagged = new Session(       { ...HELLO, sessionId: 's-tagged', projectId: 'atlas', url: 'http://localhost:4310' },
  • Network accessline 304
    const tagged = new Session(       { ...HELLO, sessionId: 's-tagged', projectId: 'atlas', url: 'http://localhost:4310' },       fakeSocket,
  • Network accessline 305
    { ...HELLO, sessionId: 's-tagged', projectId: 'atlas', url: 'http://localhost:4310' },
  • Network accessline 326
    const mgr = new SessionManager();     const untagged = new Session(       { ...HELLO, sessionId: 's-untagged', projectId: undefined, url: 'http://localhost:3000' },
  • Network accessline 327
    const untagged = new Session(       { ...HELLO, sessionId: 's-untagged', projectId: undefined, url: 'http://localhost:3000' },       fakeSocket,
  • Network accessline 328
    { ...HELLO, sessionId: 's-untagged', projectId: undefined, url: 'http://localhost:3000' },
  • Network accessline 331
    );     const tagged = new Session(       { ...HELLO, sessionId: 's-tagged', projectId: 'atlas', url: 'http://localhost:4310' },
  • Network accessline 332
    const tagged = new Session(       { ...HELLO, sessionId: 's-tagged', projectId: 'atlas', url: 'http://localhost:4310' },       fakeSocket,
  • Network accessline 333
    { ...HELLO, sessionId: 's-tagged', projectId: 'atlas', url: 'http://localhost:4310' },
  • Network accessline 419
    ({       type: EventType.ROUTE_CHANGE,       data: { from: 'x', to: 'http://localhost/next', pathname: '', search: '', hash: '' },
  • Network accessline 420
    type: EventType.ROUTE_CHANGE,       data: { from: 'x', to: 'http://localhost/next', pathname: '', search: '', hash: '' },     }) as unknown as ReticleEvent;
  • Network accessline 421
    data: { from: 'x', to: 'http://localhost/next', pathname: '', search: '', hash: '' },
  • Network accessline 471
    const { session } = makeSession();     expect(session.departedTo()).toBeUndefined();     session.pushEvent(navigationPending('http://localhost:5173/login'));
  • Network accessline 472
    expect(session.departedTo()).toBeUndefined();     session.pushEvent(navigationPending('http://localhost:5173/login'));     expect(session.departedTo()).toBe('http://localhost:5173/login');
  • Network accessline 473
    session.pushEvent(navigationPending('http://localhost:5173/login'));
  • Network accessline 474
    expect(session.departedTo()).toBe('http://localhost:5173/login');
  • Network accessline 479
    session.pushEvent({       type: EventType.NET_PENDING,       data: { id: 'f-1', method: 'GET', url: 'http://localhost:5173/api/slow' },
  • Network accessline 480
    type: EventType.NET_PENDING,       data: { id: 'f-1', method: 'GET', url: 'http://localhost:5173/api/slow' },     } as unknown as ReticleEvent);
  • Network accessline 481
    data: { id: 'f-1', method: 'GET', url: 'http://localhost:5173/api/slow' },
  • Network accessline 486
    it('a stale note is not this departure — the document survived it', () => {     const { session, tick } = makeSession();     session.pushEvent(navigationPending('http://localhost:5173/login'));
  • Network accessline 488
    session.pushEvent(navigationPending('http://localhost:5173/login'));
  • Network accessline 495
    it('keeps the latest target when several navigations are reported', () => {     const { session } = makeSession();     session.pushEvent(navigationPending('http://localhost:5173/login'));
  • Network accessline 496
    const { session } = makeSession();     session.pushEvent(navigationPending('http://localhost:5173/login'));     session.pushEvent(navigationPending('https://accounts.google.com/o/oauth2/v2/auth'));
  • Network accessline 497
    session.pushEvent(navigationPending('http://localhost:5173/login'));
  • Network accessline 498
    session.pushEvent(navigationPending('https://accounts.google.com/o/oauth2/v2/auth'));
  • Network accessline 499
    expect(session.departedTo()).toBe('https://accounts.google.com/o/oauth2/v2/auth');

server/src/portal/session/session.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/stall-clock.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/stall-clock.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/state-select.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/state-select.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/timing/command-timeout.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 4
    const TAURI = 'http://localhost:5175/';
  • Network accessline 6
    const WEB = 'http://localhost:3000/dashboard';
  • Network accessline 142
    /**    * A Tauri dev server and a plain web app both live on http://localhost — the URL cannot tell them
  • Network accessline 143
    * A Tauri dev server and a plain web app both live on http://localhost — the URL cannot tell them
  • Network accessline 147
    it('does not guess Tauri from a localhost URL alone', () => {     const message = commandTimeoutMessage('snapshot', 8000, {       url: 'http://localhost:3000/',
  • Network accessline 148
    const message = commandTimeoutMessage('snapshot', 8000, {       url: 'http://localhost:3000/',       hidden: true,
  • Network accessline 149
    url: 'http://localhost:3000/',
  • Network accessline 182
    // A URL cannot tell a browser tab from a desktop dev server: both are http://localhost. With no

server/src/portal/session/timing/command-timeout.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 78
    /**  * True only when the SDK REPORTED an ordinary browser tab. Not guessed from the URL: a Tauri or  * Electron dev server is http://localhost too, and an older SDK that omits the runtime would turn a
  • Network accessline 79
    * True only when the SDK REPORTED an ordinary browser tab. Not guessed from the URL: a Tauri or  * Electron dev server is http://localhost too, and an older SDK that omits the runtime would turn a  * hidden desktop window into "bring the ta
  • Network accessline 80
    * Electron dev server is http://localhost too, and an older SDK that omits the runtime would turn a

server/src/portal/session/timing/resolve-within.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 8
    const SESSION = { id: 'live' }; const NO_SESSION =   'no browser session connected. NEXT ACTION: run `reticle open http://localhost:5173`';
  • Network accessline 10
    'no browser session connected. NEXT ACTION: run `reticle open http://localhost:5173`';

server/src/portal/session/timing/resolve-within.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/timing/wall-clock.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/tools.live-control.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 19
    const SESSION_URL = 'http://localhost:5173/app';

server/src/portal/session/tools.review.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 20
    protocolVersion: RETICLE_PROTOCOL_VERSION,   sessionId: 'demo',   url: 'http://localhost/checkout',
  • Network accessline 21
    sessionId: 'demo',   url: 'http://localhost/checkout',   title: 'Demo',
  • Network accessline 22
    url: 'http://localhost/checkout',

server/src/portal/session/tools.session-health.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    const SESSION_URL = 'http://localhost:5173/app';

server/src/portal/session/yield-takes-the-driven-session.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 39
    return new Promise((resolve) => {     const sock = new WebSocket(`ws://${LOOPBACK_HOST}:${String(port)}${RETICLE_WS_PATH}`, {       origin: 'http://localhost',
  • Network accessline 40
    const sock = new WebSocket(`ws://${LOOPBACK_HOST}:${String(port)}${RETICLE_WS_PATH}`, {       origin: 'http://localhost',     });
  • Network accessline 41
    origin: 'http://localhost',
  • Network accessline 49
    sessionId,           projectId,           url: `http://localhost:3000/${projectId}`,
  • Network accessline 50
    projectId,           url: `http://localhost:3000/${projectId}`,           title: sessionId,
  • Network accessline 51
    url: `http://localhost:3000/${projectId}`,

server/src/portal/session/yield-without-session.test.ts

  • Executable scriptline 1
    Executable file

server/src/portal/session/zero-install-first-call.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 45
    const ports = io({ 5173: APP, 3000: '/somewhere/else' });     const opened = await firstCallOpener(ports)();     expect(ports.leased).toEqual(['http://localhost:5173']);
  • Network accessline 46
    const opened = await firstCallOpener(ports)();     expect(ports.leased).toEqual(['http://localhost:5173']);     expect(opened?.url).toBe('http://localhost:5173');
  • Network accessline 47
    expect(ports.leased).toEqual(['http://localhost:5173']);
  • Network accessline 48
    expect(opened?.url).toBe('http://localhost:5173');
  • Network accessline 57
    it('accepts a server running in a folder inside the project (a workspace app)', async () => {     const ports = io({ 5173: join(APP, 'apps', 'web') });     expect((await firstCallOpener(ports)())?.url).toBe('http://localhost:5173');
  • Network accessline 58
    const ports = io({ 5173: join(APP, 'apps', 'web') });     expect((await firstCallOpener(ports)())?.url).toBe('http://localhost:5173');   });
  • Network accessline 59
    expect((await firstCallOpener(ports)())?.url).toBe('http://localhost:5173');
  • Network accessline 111
    expect(await open()).toBeUndefined();     up = true;     expect((await open())?.url).toBe('http://localhost:5173');
  • Network accessline 112
    up = true;     expect((await open())?.url).toBe('http://localhost:5173');   });
  • Network accessline 113
    expect((await open())?.url).toBe('http://localhost:5173');
  • Network accessline 118
    it("names the one dev server in this project's folder, and opens nothing", async () => {     const ports = io({ 5173: APP, 3000: '/somewhere/else' });     expect(await projectAppUrlFinder(ports)()).toBe('http://localhost:5173');
  • Network accessline 119
    const ports = io({ 5173: APP, 3000: '/somewhere/else' });     expect(await projectAppUrlFinder(ports)()).toBe('http://localhost:5173');     expect(ports.leased).toEqual([]);
  • Network accessline 120
    expect(await projectAppUrlFinder(ports)()).toBe('http://localhost:5173');

server/src/portal/session/zero-install-first-call.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 31
    const LOCALHOST = 'http://localhost';

server/src/predicate-param-typing.test.ts

  • Executable scriptline 1
    Executable file

server/src/publishable-packages.test.ts

  • Executable scriptline 1
    Executable file

server/src/scripts-documented.test.ts

  • Executable scriptline 1
    Executable file

server/src/start-options.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 60
    [Credential-related source omitted]

server/src/start-wiring.test.ts

  • Executable scriptline 1
    Executable file

server/src/start-wiring.ts

  • Executable scriptline 1
    Executable file

server/src/status-payload.test.ts

  • Executable scriptline 1
    Executable file

server/src/status-payload.ts

  • Executable scriptline 1
    Executable file

server/src/status-why.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 14
    const session = {   sessionId: 's1',   url: 'http://localhost:5173/',
  • Network accessline 15
    sessionId: 's1',   url: 'http://localhost:5173/',   adapters: [],
  • Network accessline 16
    url: 'http://localhost:5173/',

server/src/surface/agent-presence-grace.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/agent-presence-grace.ts

  • Executable scriptline 1
    Executable file

server/src/surface/http-server.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 413
    // real cause. The user's app is down and the message they read is "Server is not running",         // which blames Reticle for their dev server — traced live, where swallowing this turned the         // same failure back into "net::ERR_CON
  • Network accessline 415
    // same failure back into "net::ERR_CONNECTION_REFUSED at http://localhost:4312/".
  • Network accessline 562
    function parseRequestTarget(rawUrl: string): URL | null {   try {     return new URL(rawUrl, 'http://localhost');
  • Network accessline 563
    try {     return new URL(rawUrl, 'http://localhost');   } catch {
  • Network accessline 564
    return new URL(rawUrl, 'http://localhost');

server/src/surface/loopback-agent.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/attach-memory.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/attach-memory.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/consumer-verdict-guard.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/consumer-verdict-guard.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/consumer-verdict-wired.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/context-over-transport.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/degraded-handshake.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/detach-releases-leases.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/empty-catalog-names-http.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/faults/mcp-is-error.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/faults/mcp-is-error.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/faults/mcp-outage.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/faults/mcp-outage.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/foreign-port-holder.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/handshake-answered-once.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/mcp-composed-surface.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/mcp-proxy-chaos.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/mcp-proxy.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 206
    it('turns a path into a loopback URL on the daemon port, leaves an absolute URL untouched', () => {     expect(buildSessionUrl('/messages?sessionId=abc', 4460)).toBe(       'http://127.0.0.1:4460/messages?sessionId=abc',
  • Network accessline 207
    expect(buildSessionUrl('/messages?sessionId=abc', 4460)).toBe(       'http://127.0.0.1:4460/messages?sessionId=abc',     );
  • Network accessline 208
    'http://127.0.0.1:4460/messages?sessionId=abc',
  • Network accessline 209
    );     expect(buildSessionUrl('http://127.0.0.1:9/x', 4460)).toBe('http://127.0.0.1:9/x');   });
  • Network accessline 210
    expect(buildSessionUrl('http://127.0.0.1:9/x', 4460)).toBe('http://127.0.0.1:9/x');

server/src/surface/mcp/mcp-proxy.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/mcp.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/mcp.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/merged-name-dispatches.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/peer/agents-connected.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/peer/agents-connected.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/peer/client-identity.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/peer/client-identity.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/plugin-init-nudge.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/predicate-arg-error.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/predicate-param-string.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/proxy-answered-once.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 21
    * not handing a settled request to anybody, and that is a fact about its own outbound traffic.  *  * Reported in https://github.com/reticlehq/reticle/pull/300.
  • Network accessline 22
    *  * Reported in https://github.com/reticlehq/reticle/pull/300.  */
  • Network accessline 23
    * Reported in https://github.com/reticlehq/reticle/pull/300.

server/src/surface/mcp/proxy-cold-start.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/proxy-first-connect.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/proxy-idle-exit.integration.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/proxy-idle-exit.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/proxy-idle-exit.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/proxy-log-rotation.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/proxy-outage-honesty.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/proxy-post-failure.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/proxy-queue-expiry.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/proxy-reconnect-fanout.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/proxy-wake-relocates.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/proxy/drive-calls.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/proxy/mcp-post-transport.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 81
    await expect(postToSession('http://127.0.0.1:4400/session', '{}', request)).resolves.toBeNull();
  • Network accessline 107
    const result = postToSession('http://127.0.0.1:4400/session', '{}', request);
  • Network accessline 130
    await expect(postToSession('http://127.0.0.1:4400/session', '{}', request)).resolves.toEqual({
  • Network accessline 148
    return req;     }) satisfies Parameters<typeof postToSession>[2];     await postToSession('http://127.0.0.1:4400/session', '{}', httpRefuse);
  • Network accessline 149
    }) satisfies Parameters<typeof postToSession>[2];     await postToSession('http://127.0.0.1:4400/session', '{}', httpRefuse);     expect(getSessionMetrics().summarize(true).postSocketFailures).toBeUndefined();
  • Network accessline 150
    await postToSession('http://127.0.0.1:4400/session', '{}', httpRefuse);

server/src/surface/mcp/proxy/mcp-post-transport.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/proxy/proxy-backoff.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/proxy/proxy-boot.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/proxy/proxy-daemon-probe.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/proxy/proxy-daemon-probe.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/proxy/proxy-handshake.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/proxy/proxy-handshake.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/proxy/proxy-lifecycle.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/proxy/proxy-lifecycle.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/proxy/proxy-log-state.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/proxy/proxy-log.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/sdk-private-shape.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/server-instructions.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/server-instructions.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/shared-params.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/shared-params.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/sse-frame-parser.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 63
    return null;   }   return trimmed.startsWith('/') ? `http://${LOOPBACK_HOST}:${port}${trimmed}` : trimmed;
  • Network accessline 64
    }   return trimmed.startsWith('/') ? `http://${LOOPBACK_HOST}:${port}${trimmed}` : trimmed; }
  • Network accessline 65
    return trimmed.startsWith('/') ? `http://${LOOPBACK_HOST}:${port}${trimmed}` : trimmed;

server/src/surface/mcp/stream-loss-replies.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/surface-coherence.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/surface-vocabulary.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/tool-annotations.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/tool-call-progress.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/tool-catalog-cache.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/tool-catalog-cache.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/toolless-session-recovery.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/unadvertised-tool-over-transport.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/mcp/weakest-client-schemas.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/account-tool.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 33
    signedIn: true,       platform: null,       cloudUrl: 'http://localhost:8899',
  • Network accessline 34
    platform: null,       cloudUrl: 'http://localhost:8899',     });
  • Network accessline 35
    cloudUrl: 'http://localhost:8899',
  • Network accessline 36
    });     expect(facts['next']).toBe(ACCOUNT_NEXT.unreachable('http://localhost:8899'));     expect(facts['credits']).toBeUndefined();
  • Network accessline 37
    expect(facts['next']).toBe(ACCOUNT_NEXT.unreachable('http://localhost:8899'));
  • Network accessline 42
    it('unreachable names the cloud and what to do, never "link this project"', () => {     const said = ACCOUNT_NEXT.unreachable('http://localhost:8899');
  • Network accessline 43
    const said = ACCOUNT_NEXT.unreachable('http://localhost:8899');
  • Network accessline 44
    expect(said).toContain('http://localhost:8899');
  • Network accessline 69
    signedIn: true,       workspace: 'example',       dashboardUrl: 'http://localhost:16580/issues?project=shop',
  • Network accessline 70
    workspace: 'example',       dashboardUrl: 'http://localhost:16580/issues?project=shop',       platform: ready,
  • Network accessline 71
    dashboardUrl: 'http://localhost:16580/issues?project=shop',

server/src/surface/tools/account-tool.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 121
    if (null === platform) return undefined;   try {     const res = await fetch(`${platform.url.replace(/\/+$/, '')}${CONFIG_PATH}`, {
  • Network accessline 122
    try {     const res = await fetch(`${platform.url.replace(/\/+$/, '')}${CONFIG_PATH}`, {       method: 'GET',
  • Network accessline 123
    const res = await fetch(`${platform.url.replace(/\/+$/, '')}${CONFIG_PATH}`, {

server/src/surface/tools/act-and-wait-start-query.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 30
    const LEASED = `http://localhost:5173/?showModal=login&${RETICLE_URL_PARAM.SESSION}=lease-1`;
  • Network accessline 31
    const CLOSED = 'http://localhost:5173/';

server/src/surface/tools/act-capsule.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act-capsule.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act-command.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act-green-blast-radius.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 36
    const stub: Partial<Session> = {     id: 'demo',     url: 'http://localhost/',
  • Network accessline 37
    id: 'demo',     url: 'http://localhost/',     elapsed: () => 1000,
  • Network accessline 38
    url: 'http://localhost/',

server/src/surface/tools/act-hidden-match.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 77
    const stub: Partial<Session> = {     id: 'demo',     url: 'http://localhost:5173/form',
  • Network accessline 78
    id: 'demo',     url: 'http://localhost:5173/form',     elapsed: () => NOW,
  • Network accessline 79
    url: 'http://localhost:5173/form',
  • Network accessline 114
    type: EventType.NET_REQUEST,   t: NOW,   data: { id: 'r1', method: 'POST', url: 'http://localhost:5173/submit', status: 200 },
  • Network accessline 115
    t: NOW,   data: { id: 'r1', method: 'POST', url: 'http://localhost:5173/submit', status: 200 }, } as unknown as ReticleEvent;
  • Network accessline 116
    data: { id: 'r1', method: 'POST', url: 'http://localhost:5173/submit', status: 200 },

server/src/surface/tools/act-journal-reason.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 53
    const stub: Partial<Session> = {     id: 'journal-demo',     url: 'http://localhost:5173/app',
  • Network accessline 54
    id: 'journal-demo',     url: 'http://localhost:5173/app',     elapsed: () => 1000,
  • Network accessline 55
    url: 'http://localhost:5173/app',

server/src/surface/tools/act-leaves-origin.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 73
    const session = {     id: 'lease-1',     url: 'http://localhost:16581/settings',
  • Network accessline 74
    id: 'lease-1',     url: 'http://localhost:16581/settings',     elapsed: () => 1000,
  • Network accessline 75
    url: 'http://localhost:16581/settings',

server/src/surface/tools/act-merged.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act-sequence-burst.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 59
    const stub: Partial<Session> = {     id: 'demo',     url: 'http://localhost:5173/app',
  • Network accessline 61
    url: 'http://localhost:5173/app',

server/src/surface/tools/act-sequence-declared-failure.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 27
    const ROOT = '/tmp/reticle-act-sequence-declared-failure/.reticle'; const URL = 'http://localhost:4312/api/save';
  • Network accessline 28
    const URL = 'http://localhost:4312/api/save';
  • Network accessline 60
    const stub: Partial<Session> = {     id: 's1',     url: 'http://localhost:4312/compose',
  • Network accessline 61
    id: 's1',     url: 'http://localhost:4312/compose',     elapsed: clock,
  • Network accessline 62
    url: 'http://localhost:4312/compose',

server/src/surface/tools/act-sequence-journal.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 53
    const stub: Partial<Session> = {     id,     url: 'http://localhost:5173/shop',
  • Network accessline 54
    id,     url: 'http://localhost:5173/shop',     elapsed: () => 1000,
  • Network accessline 55
    url: 'http://localhost:5173/shop',

server/src/surface/tools/act-sequence-progress.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 56
    const stub: Partial<Session> = {     id: 'demo',     url: 'http://localhost:5173/app',
  • Network accessline 57
    id: 'demo',     url: 'http://localhost:5173/app',     elapsed: () => 1000,
  • Network accessline 58
    url: 'http://localhost:5173/app',

server/src/surface/tools/act-sequence-quiet-plan.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 46
    const session = {     id: 'tab',     url: 'http://localhost:5173/app',
  • Network accessline 47
    id: 'tab',     url: 'http://localhost:5173/app',     elapsed: () => 0,
  • Network accessline 48
    url: 'http://localhost:5173/app',

server/src/surface/tools/act-sequence-saved-claims.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 43
    const ORIGIN = 'http://localhost:5173';

server/src/surface/tools/act-sequence-session.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 36
    const stub: Partial<Session> = {     id,     url: `http://localhost:5173/${id}`,
  • Network accessline 37
    id,     url: `http://localhost:5173/${id}`,     elapsed: () => 0,
  • Network accessline 38
    url: `http://localhost:5173/${id}`,

server/src/surface/tools/act-sequence-step-window.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 30
    const ROOT = '/tmp/reticle-act-sequence-step-window/.reticle'; const URL = 'http://localhost:8787/api/generate-script';
  • Network accessline 31
    const URL = 'http://localhost:8787/api/generate-script';
  • Network accessline 68
    const stub: Partial<Session> = {     id: 's1',     url: 'http://localhost:4312/compose',
  • Network accessline 69
    id: 's1',     url: 'http://localhost:4312/compose',     elapsed: clock,
  • Network accessline 70
    url: 'http://localhost:4312/compose',

server/src/surface/tools/act-sequence-steps.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 157
    const session = {       id: 'demo',       url: 'http://localhost:5173/app',
  • Network accessline 158
    id: 'demo',       url: 'http://localhost:5173/app',       elapsed: () => 0,
  • Network accessline 159
    url: 'http://localhost:5173/app',

server/src/surface/tools/act-sequence-target.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 69
    const stub: Partial<Session> = {     id: 'demo',     url: 'http://localhost:5173/app',
  • Network accessline 70
    id: 'demo',     url: 'http://localhost:5173/app',     elapsed: () => 1000,
  • Network accessline 71
    url: 'http://localhost:5173/app',

server/src/surface/tools/act-sequence-tool.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act-state-already-true.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 113
    const stub: Partial<Session> = {     id: 'demo-state',     url: 'http://localhost:5173/app',
  • Network accessline 114
    id: 'demo-state',     url: 'http://localhost:5173/app',     elapsed: () => 1000,
  • Network accessline 115
    url: 'http://localhost:5173/app',

server/src/surface/tools/act-steps-verdict-counted.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 25
    const session: Partial<Session> = {     id: 'tab',     url: 'http://localhost:15999/',
  • Network accessline 26
    id: 'tab',     url: 'http://localhost:15999/',     elapsed: () => 0,
  • Network accessline 27
    url: 'http://localhost:15999/',

server/src/surface/tools/act-timeout-diagnosis.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act-tools.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act-truncated-window.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 46
    const stub: Partial<Session> = {     id: 'demo',     url: 'http://localhost:5173/app',
  • Network accessline 47
    id: 'demo',     url: 'http://localhost:5173/app',     elapsed: () => 1000,
  • Network accessline 48
    url: 'http://localhost:5173/app',

server/src/surface/tools/act-unreachable-target.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 83
    const stub: Partial<Session> = {     id: 'demo',     url: 'http://localhost:5173/form',
  • Network accessline 84
    id: 'demo',     url: 'http://localhost:5173/form',     elapsed: () => NOW,
  • Network accessline 85
    url: 'http://localhost:5173/form',

server/src/surface/tools/act-unwatched-state.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 36
    const stub: Partial<Session> = {     id: 'demo',     url: 'http://localhost:5173/app',
  • Network accessline 37
    id: 'demo',     url: 'http://localhost:5173/app',     elapsed: () => 1000,
  • Network accessline 38
    url: 'http://localhost:5173/app',

server/src/surface/tools/act-verdict-parity.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 73
    const session: Partial<Session> = {     id: 'demo',     url: 'http://localhost:5173/app',
  • Network accessline 74
    id: 'demo',     url: 'http://localhost:5173/app',     elapsed: () => 1000,
  • Network accessline 75
    url: 'http://localhost:5173/app',

server/src/surface/tools/act/act-danger.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 137
    ActionType.CLICK,           { confirmDangerous: true },           { text: 'Continue', role: 'link', href: 'https://checkout.stripe.com/c/pay/x' },
  • Network accessline 138
    { confirmDangerous: true },           { text: 'Continue', role: 'link', href: 'https://checkout.stripe.com/c/pay/x' },         ),
  • Network accessline 139
    { text: 'Continue', role: 'link', href: 'https://checkout.stripe.com/c/pay/x' },
  • Network accessline 143
    await expect(       drive('Sign up and look at the dashboard', () =>         assertNotPaymentNavigation('https://test.checkout.dodopayments.com/buy/p_1'),
  • Network accessline 144
    drive('Sign up and look at the dashboard', () =>         assertNotPaymentNavigation('https://test.checkout.dodopayments.com/buy/p_1'),       ),
  • Network accessline 145
    assertNotPaymentNavigation('https://test.checkout.dodopayments.com/buy/p_1'),
  • Network accessline 151
    await expect(       drive('She pays for the Pro plan', () =>         assertNotPaymentNavigation('https://checkout.stripe.com/c/pay/x'),
  • Network accessline 152
    drive('She pays for the Pro plan', () =>         assertNotPaymentNavigation('https://checkout.stripe.com/c/pay/x'),       ),
  • Network accessline 153
    assertNotPaymentNavigation('https://checkout.stripe.com/c/pay/x'),
  • Network accessline 154
    ),     ).resolves.toBeUndefined();     expect(() => assertNotPaymentNavigation('https://checkout.stripe.com/c/pay/x')).not.toThrow();
  • Network accessline 155
    ).resolves.toBeUndefined();     expect(() => assertNotPaymentNavigation('https://checkout.stripe.com/c/pay/x')).not.toThrow();   });
  • Network accessline 156
    expect(() => assertNotPaymentNavigation('https://checkout.stripe.com/c/pay/x')).not.toThrow();

server/src/surface/tools/act/act-danger.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/act-helpers.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/act-navigation-follow.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 33
    id: 'nav-1',     method: 'POST',     url: 'http://app.test/signin',
  • Network accessline 34
    method: 'POST',     url: 'http://app.test/signin',     initiator: NetInitiator.NAVIGATION,
  • Network accessline 35
    url: 'http://app.test/signin',
  • Network accessline 83
    const LOGIN = 'http://app.test/login?__reticle_session=lease-1';
  • Network accessline 84
    const TODAY = 'http://app.test/today';

server/src/surface/tools/act/act-observation-disabled.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/act-observation.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 65
    it('leaves a verdict that was actually observed untouched', async () => {     const session = sessionAt('a', 'http://app.test/', 0);
  • Network accessline 66
    const session = sessionAt('a', 'http://app.test/', 0);
  • Network accessline 79
    it('re-asks on the document that took over, so a green survives the navigation', async () => {     const departed = sessionAt('a', 'http://app.test/login', 10);
  • Network accessline 80
    const departed = sessionAt('a', 'http://app.test/login', 10);
  • Network accessline 81
    const next = sessionAt('b', 'http://app.test/home', 0);
  • Network accessline 99
    it('does not follow when no budget is left — a refunded budget is a wait nobody asked for', async () => {     const departed = sessionAt('a', 'http://app.test/login', 5000);
  • Network accessline 100
    const departed = sessionAt('a', 'http://app.test/login', 5000);
  • Network accessline 101
    const next = sessionAt('b', 'http://app.test/home', 0);
  • Network accessline 113
    it('refuses to guess between two live tabs at the same origin', async () => {     const departed = sessionAt('a', 'http://app.test/login', 0);
  • Network accessline 114
    const departed = sessionAt('a', 'http://app.test/login', 0);
  • Network accessline 116
    sessions: registry([         departed,         sessionAt('b', 'http://app.test/home', 0),
  • Network accessline 117
    departed,         sessionAt('b', 'http://app.test/home', 0),         sessionAt('c', 'http://app.test/other', 0),
  • Network accessline 118
    sessionAt('b', 'http://app.test/home', 0),
  • Network accessline 119
    sessionAt('c', 'http://app.test/other', 0),

server/src/surface/tools/act/act-observation.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/act-preflight-vacuous.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/act-preflight.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/act-sequence-retry.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/act-sequence-retry.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/act-target.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/act-target.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/act-view.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/act-view.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/after-match.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/already-true.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/durable.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/durable.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/navigation/navigate-arrival.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 103
    const TARGET = 'http://localhost:3000/dashboard';
  • Network accessline 107
    let navigatedSession = knownSessions.get(id);   if (navigatedSession === undefined) {     navigatedSession = fakeSession(id, 'http://localhost:3000/orders');
  • Network accessline 108
    if (navigatedSession === undefined) {     navigatedSession = fakeSession(id, 'http://localhost:3000/orders');     knownSessions.set(id, navigatedSession);
  • Network accessline 109
    navigatedSession = fakeSession(id, 'http://localhost:3000/orders');
  • Network accessline 112
    return {     navigatedSession,     navigatedFrom: 'http://localhost:3000/orders',
  • Network accessline 113
    navigatedSession,     navigatedFrom: 'http://localhost:3000/orders',     priorIds: new Set(),
  • Network accessline 114
    navigatedFrom: 'http://localhost:3000/orders',
  • Network accessline 150
    const { sessions } = fakeSessions([       [         { id: 'driven', url: 'http://localhost:3000/orders' },
  • Network accessline 151
    [         { id: 'driven', url: 'http://localhost:3000/orders' },         { id: 'other', url: 'http://localhost:3000/settings' },
  • Network accessline 152
    { id: 'driven', url: 'http://localhost:3000/orders' },
  • Network accessline 153
    { id: 'other', url: 'http://localhost:3000/settings' },
  • Network accessline 167
    it('confirms arrival when the app added a query string', async () => {     const { sessions } = fakeSessions([       [{ id: 's3', url: 'http://localhost:3000/dashboard?redirect=%2F' }],
  • Network accessline 168
    const { sessions } = fakeSessions([       [{ id: 's3', url: 'http://localhost:3000/dashboard?redirect=%2F' }],     ]);
  • Network accessline 169
    [{ id: 's3', url: 'http://localhost:3000/dashboard?redirect=%2F' }],
  • Network accessline 178
    it('and when only a trailing slash differs', async () => {     const { sessions } = fakeSessions([[{ id: 's4', url: 'http://localhost:3000/dashboard/' }]]);
  • Network accessline 179
    const { sessions } = fakeSessions([[{ id: 's4', url: 'http://localhost:3000/dashboard/' }]]);
  • Network accessline 192
    const { sessions } = fakeSessions([       [         { id: 'driven', url: 'http://localhost:3000/orders' },
  • Network accessline 193
    [         { id: 'driven', url: 'http://localhost:3000/orders' },         { id: 'zombie', url: TARGET },
  • Network accessline 194
    { id: 'driven', url: 'http://localhost:3000/orders' },
  • Network accessline 209
    const { sessions } = fakeSessions([[{ id: 'driven', url: TARGET }]]);     const scope: ArrivalScope = {       navigatedSession: fakeSession('driven', 'http://localhost:3000/orders'),
  • Network accessline 210
    const scope: ArrivalScope = {       navigatedSession: fakeSession('driven', 'http://localhost:3000/orders'),       navigatedFrom: 'http://localhost:3000/orders',
  • Network accessline 211
    navigatedSession: fakeSession('driven', 'http://localhost:3000/orders'),
  • Network accessline 212
    navigatedFrom: 'http://localhost:3000/orders',
  • Network accessline 309
    ]);     const scope: ArrivalScope = {       navigatedSession: fakeSession('driven', 'http://localhost:3000/orders'),
  • Network accessline 310
    const scope: ArrivalScope = {       navigatedSession: fakeSession('driven', 'http://localhost:3000/orders'),       navigatedFrom: 'http://localhost:3000/orders',
  • Network accessline 311
    navigatedSession: fakeSession('driven', 'http://localhost:3000/orders'),
  • Network accessline 312
    navigatedFrom: 'http://localhost:3000/orders',
  • Network accessline 334
    it('does not confirm a same-path page on a different origin', async () => {     const { sessions } = fakeSessions([[{ id: 'x', url: 'http://localhost:9999/dashboard' }]]);
  • Network accessline 335
    const { sessions } = fakeSessions([[{ id: 'x', url: 'http://localhost:9999/dashboard' }]]);
  • Network accessline 341
    it('reports where the navigated session landed when the app redirected it', async () => {     const { sessions } = fakeSessions([[{ id: 'driven', url: 'http://localhost:3000/login' }]]);
  • Network accessline 342
    const { sessions } = fakeSessions([[{ id: 'driven', url: 'http://localhost:3000/login' }]]);
  • Network accessline 346
    ).resolves.toEqual({       sessionId: 'driven',       landedOn: 'http://localhost:3000/login',
  • Network accessline 347
    sessionId: 'driven',       landedOn: 'http://localhost:3000/login',     });
  • Network accessline 348
    landedOn: 'http://localhost:3000/login',
  • Network accessline 352
    it('reports where a successor session landed when the app redirected it', async () => {     const { sessions } = fakeSessions([       [{ id: 'driven', url: 'http://localhost:3000/orders' }],
  • Network accessline 353
    const { sessions } = fakeSessions([       [{ id: 'driven', url: 'http://localhost:3000/orders' }],       [{ id: 'successor', url: 'http://localhost:3000/login' }],
  • Network accessline 354
    [{ id: 'driven', url: 'http://localhost:3000/orders' }],
  • Network accessline 355
    [{ id: 'successor', url: 'http://localhost:3000/login' }],
  • Network accessline 360
    ).resolves.toEqual({       sessionId: 'successor',       landedOn: 'http://localhost:3000/login',
  • Network accessline 361
    sessionId: 'successor',       landedOn: 'http://localhost:3000/login',     });
  • Network accessline 362
    landedOn: 'http://localhost:3000/login',
  • Network accessline 369
    */   describe('when the app sends the tab back to where it started', () => {     const FROM = 'http://localhost:3000/login';
  • Network accessline 370
    describe('when the app sends the tab back to where it started', () => {     const FROM = 'http://localhost:3000/login';     const scopeFor = (navigatedSession: Session): ArrivalScope => {
  • Network accessline 371
    const FROM = 'http://localhost:3000/login';
  • Network accessline 478
    {           id: 'driven',           url: 'http://localhost:3000/orders',
  • Network accessline 479
    id: 'driven',           url: 'http://localhost:3000/orders',         },
  • Network accessline 480
    url: 'http://localhost:3000/orders',
  • Network accessline 484
    {           id: 'driven',           url: 'http://localhost:3000/auth/check',
  • Network accessline 485
    id: 'driven',           url: 'http://localhost:3000/auth/check',         },
  • Network accessline 486
    url: 'http://localhost:3000/auth/check',
  • Network accessline 499
    TARGET,       {         navigatedSession: fakeSession('driven', 'http://localhost:3000/orders'),
  • Network accessline 500
    {         navigatedSession: fakeSession('driven', 'http://localhost:3000/orders'),         navigatedFrom: 'http://localhost:3000/orders',
  • Network accessline 501
    navigatedSession: fakeSession('driven', 'http://localhost:3000/orders'),
  • Network accessline 502
    navigatedFrom: 'http://localhost:3000/orders',
  • Network accessline 517
    {           id: 'driven',           url: 'http://localhost:3000/orders',
  • Network accessline 518
    id: 'driven',           url: 'http://localhost:3000/orders',         },
  • Network accessline 519
    url: 'http://localhost:3000/orders',
  • Network accessline 523
    {           id: 'driven',           url: 'http://localhost:3000/auth/check',
  • Network accessline 524
    id: 'driven',           url: 'http://localhost:3000/auth/check',         },
  • Network accessline 525
    url: 'http://localhost:3000/auth/check',
  • Network accessline 529
    {           id: 'driven',           url: 'http://localhost:3000/login',
  • Network accessline 530
    id: 'driven',           url: 'http://localhost:3000/login',         },
  • Network accessline 531
    url: 'http://localhost:3000/login',
  • Network accessline 538
    TARGET,       {         navigatedSession: fakeSession('driven', 'http://localhost:3000/orders'),
  • Network accessline 539
    {         navigatedSession: fakeSession('driven', 'http://localhost:3000/orders'),         navigatedFrom: 'http://localhost:3000/orders',
  • Network accessline 540
    navigatedSession: fakeSession('driven', 'http://localhost:3000/orders'),
  • Network accessline 541
    navigatedFrom: 'http://localhost:3000/orders',
  • Network accessline 548
    expect(result).toEqual({       sessionId: 'driven',       landedOn: 'http://localhost:3000/login',
  • Network accessline 549
    sessionId: 'driven',       landedOn: 'http://localhost:3000/login',     });
  • Network accessline 550
    landedOn: 'http://localhost:3000/login',
  • Network accessline 554
    it('confirms a cross-origin arrival after the original session disconnects', async () => {     const driven = fakeSession('driven', 'http://localhost:3000/orders');
  • Network accessline 555
    const driven = fakeSession('driven', 'http://localhost:3000/orders');
  • Network accessline 557
    const arriving = fakeSession('arriving', 'http://localhost:5173/dashboard');
  • Network accessline 583
    const result = await awaitArrival(       sessions,       'http://localhost:5173/dashboard',
  • Network accessline 584
    sessions,       'http://localhost:5173/dashboard',       {
  • Network accessline 585
    'http://localhost:5173/dashboard',
  • Network accessline 586
    {         navigatedSession: driven,         navigatedFrom: 'http://localhost:3000/orders',
  • Network accessline 587
    navigatedSession: driven,         navigatedFrom: 'http://localhost:3000/orders',         priorIds: new Set(),
  • Network accessline 588
    navigatedFrom: 'http://localhost:3000/orders',
  • Network accessline 600
    it('confirms arrival when another tab is already open on the same origin', async () => {     const driven = fakeSession('driven', 'http://localhost:3000/orders');
  • Network accessline 601
    const driven = fakeSession('driven', 'http://localhost:3000/orders');
  • Network accessline 603
    const otherTab = fakeSession('other-tab', 'http://localhost:3000/settings');
  • Network accessline 633
    {         navigatedSession: driven,         navigatedFrom: 'http://localhost:3000/orders',
  • Network accessline 634
    navigatedSession: driven,         navigatedFrom: 'http://localhost:3000/orders',         priorIds: new Set(),
  • Network accessline 635
    navigatedFrom: 'http://localhost:3000/orders',
  • Network accessline 647
    it('does not report a successor intermediate route as the final landing URL', async () => {     const driven = fakeSession('driven', 'http://localhost:3000/orders');
  • Network accessline 648
    const driven = fakeSession('driven', 'http://localhost:3000/orders');
  • Network accessline 650
    const loading = fakeSession('loading', 'http://localhost:3000/loading');
  • Network accessline 679
    {         navigatedSession: driven,         navigatedFrom: 'http://localhost:3000/orders',
  • Network accessline 680
    navigatedSession: driven,         navigatedFrom: 'http://localhost:3000/orders',         priorIds: new Set(),
  • Network accessline 681
    navigatedFrom: 'http://localhost:3000/orders',
  • Network accessline 693
    it('follows a successor through another document replacement before reporting its final redirect', async () => {     const driven = fakeSession('driven', 'http://localhost:3000/orders');
  • Network accessline 694
    const driven = fakeSession('driven', 'http://localhost:3000/orders');
  • Network accessline 695
    const successorA = fakeSession('successor-a', 'http://localhost:3000/auth/check');
  • Network accessline 696
    const successorB = fakeSession('successor-b', 'http://localhost:3000/login');
  • Network accessline 728
    {         navigatedSession: driven,         navigatedFrom: 'http://localhost:3000/orders',
  • Network accessline 729
    navigatedSession: driven,         navigatedFrom: 'http://localhost:3000/orders',         priorIds: new Set(),
  • Network accessline 730
    navigatedFrom: 'http://localhost:3000/orders',
  • Network accessline 737
    expect(result).toEqual({       sessionId: 'successor-b',       landedOn: 'http://localhost:3000/login',
  • Network accessline 738
    sessionId: 'successor-b',       landedOn: 'http://localhost:3000/login',     });
  • Network accessline 739
    landedOn: 'http://localhost:3000/login',
  • Network accessline 746
    const { sessions } = fakeSessions([       [         { id: 'here', url: 'http://localhost:3000/dashboard?x=1' },
  • Network accessline 747
    [         { id: 'here', url: 'http://localhost:3000/dashboard?x=1' },         { id: 'elsewhere', url: 'http://localhost:3000/settings' },
  • Network accessline 748
    { id: 'here', url: 'http://localhost:3000/dashboard?x=1' },
  • Network accessline 749
    { id: 'elsewhere', url: 'http://localhost:3000/settings' },
  • Network accessline 750
    { id: 'other-origin', url: 'http://localhost:9999/dashboard' },
  • Network accessline 767
    const { sessions: atDispatch } = fakeSessions([       [         { id: 'A', url: 'http://localhost:3000/orders' },
  • Network accessline 768
    [         { id: 'A', url: 'http://localhost:3000/orders' },         { id: 'lease', url: 'http://localhost:3000/faq' },
  • Network accessline 769
    { id: 'A', url: 'http://localhost:3000/orders' },
  • Network accessline 770
    { id: 'lease', url: 'http://localhost:3000/faq' },
  • Network accessline 774
    const { sessions } = fakeSessions([       [         { id: 'A', url: 'http://localhost:3000/orders' },
  • Network accessline 775
    [         { id: 'A', url: 'http://localhost:3000/orders' },         { id: 'lease', url: TARGET },
  • Network accessline 776
    { id: 'A', url: 'http://localhost:3000/orders' },
  • Network accessline 791
    const { sessions } = fakeSessions([       [         { id: 'A', url: 'http://localhost:3000/orders' },
  • Network accessline 792
    [         { id: 'A', url: 'http://localhost:3000/orders' },         { id: 'lease', url: LEASE_AT_TARGET },
  • Network accessline 793
    { id: 'A', url: 'http://localhost:3000/orders' },

server/src/surface/tools/act/navigation/navigate-arrival.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/navigation/navigate-result.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/navigation/reload-result.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/navigation/reload-result.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/proved-controls.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/react-grace.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/react-grace.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/resolve-target.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/resolve-target.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/screen-request-rule.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 5
    const post = (body: unknown) => ({   method: 'POST',   url: 'http://localhost:8787/api/keys?x=1',
  • Network accessline 6
    method: 'POST',   url: 'http://localhost:8787/api/keys?x=1',   body: JSON.stringify(body),
  • Network accessline 7
    url: 'http://localhost:8787/api/keys?x=1',

server/src/surface/tools/act/screen-request.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 11
    t: 1,   type: EventType.NET_REQUEST,   data: { method: 'POST', url: 'http://x/api/keys', requestBody: '{"projectId":"bench-app"}' },
  • Network accessline 12
    type: EventType.NET_REQUEST,   data: { method: 'POST', url: 'http://x/api/keys', requestBody: '{"projectId":"bench-app"}' }, } as unknown as ReticleEvent;
  • Network accessline 13
    data: { method: 'POST', url: 'http://x/api/keys', requestBody: '{"projectId":"bench-app"}' },

server/src/surface/tools/act/screen-request.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 66
    function pathOf(url: string): string {   try {     return new URL(url, 'http://local.invalid').pathname;
  • Network accessline 67
    try {     return new URL(url, 'http://local.invalid').pathname;   } catch {
  • Network accessline 68
    return new URL(url, 'http://local.invalid').pathname;

server/src/surface/tools/act/sequence-grade.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/sequence-grade.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/sequence-offer.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/settle-in-flight.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 36
    type: EventType.NET_PENDING,   t,   data: { id, url: `https://api.test/${id}`, method: 'POST' },
  • Network accessline 37
    t,   data: { id, url: `https://api.test/${id}`, method: 'POST' }, });
  • Network accessline 38
    data: { id, url: `https://api.test/${id}`, method: 'POST' },
  • Network accessline 41
    type: EventType.NET_REQUEST,   t,   data: { id, url: `https://api.test/${id}`, method: 'POST', status: 200 },
  • Network accessline 42
    t,   data: { id, url: `https://api.test/${id}`, method: 'POST', status: 200 }, });
  • Network accessline 43
    data: { id, url: `https://api.test/${id}`, method: 'POST', status: 200 },
  • Network accessline 64
    it('names them as METHOD url, because a correlation id is not something an agent can act on', () => {     expect(inFlightRequestLabels([pending('a'), pending('b'), settled('a')])).toEqual([       'POST https://api.test/b',
  • Network accessline 65
    expect(inFlightRequestLabels([pending('a'), pending('b'), settled('a')])).toEqual([       'POST https://api.test/b',     ]);
  • Network accessline 66
    'POST https://api.test/b',
  • Network accessline 76
    it('names an endpoint that fired more than once, which is what a retry loop looks like', () => {     const events = [settled('a', 1), settled('a', 2), settled('a', 3), settled('b', 4)];     expect(repeatedRequestLabels(events)).toEqual(['PO
  • Network accessline 77
    const events = [settled('a', 1), settled('a', 2), settled('a', 3), settled('b', 4)];     expect(repeatedRequestLabels(events)).toEqual(['POST https://api.test/a ×3']);   });
  • Network accessline 78
    expect(repeatedRequestLabels(events)).toEqual(['POST https://api.test/a ×3']);
  • Network accessline 142
    type: EventType.NET_PENDING,       t: 0,       data: { id: 'w', url: 'https://pulse.walletconnect.org/e', method: 'POST' },
  • Network accessline 143
    t: 0,       data: { id: 'w', url: 'https://pulse.walletconnect.org/e', method: 'POST' },     };
  • Network accessline 144
    data: { id: 'w', url: 'https://pulse.walletconnect.org/e', method: 'POST' },
  • Network accessline 147
    type: EventType.NET_PENDING,       t: 0,       data: { id: 's', url: 'http://localhost:4312/api/analytics/events', method: 'POST' },
  • Network accessline 148
    t: 0,       data: { id: 's', url: 'http://localhost:4312/api/analytics/events', method: 'POST' },     };
  • Network accessline 149
    data: { id: 's', url: 'http://localhost:4312/api/analytics/events', method: 'POST' },
  • Network accessline 151
    const f = fakeSession([[beacon, ownTelemetry]]);     const waited = await waitForInFlight(       { ...f.session, url: 'http://localhost:4312/', background: ['/api/analytics/events'] },
  • Network accessline 152
    const waited = await waitForInFlight(       { ...f.session, url: 'http://localhost:4312/', background: ['/api/analytics/events'] },       0,
  • Network accessline 153
    { ...f.session, url: 'http://localhost:4312/', background: ['/api/analytics/events'] },
  • Network accessline 220
    type: EventType.NET_REQUEST,       t: 2,       data: { id, url: `https://api.test/${id}`, method: 'POST', status: 500 },
  • Network accessline 221
    t: 2,       data: { id, url: `https://api.test/${id}`, method: 'POST', status: 500 },     });
  • Network accessline 222
    data: { id, url: `https://api.test/${id}`, method: 'POST', status: 500 },

server/src/surface/tools/act/settle-in-flight.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/act/settle-third-party.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 29
    const APP = 'http://localhost:4312/deployments';
  • Network accessline 41
    describe('a third-party request does not keep the window unsettled', () => {   it('ignores a vendor telemetry beacon that never comes back', () => {     const events = [pending('w1', 'https://pulse.walletconnect.org/e')];
  • Network accessline 42
    it('ignores a vendor telemetry beacon that never comes back', () => {     const events = [pending('w1', 'https://pulse.walletconnect.org/e')];     expect(inFlightRequestIds(events, APP)).toEqual([]);
  • Network accessline 43
    const events = [pending('w1', 'https://pulse.walletconnect.org/e')];
  • Network accessline 47
    it('ignores it in the labels too, so the verdict does not name it as the cause', () => {     const events = [pending('w1', 'https://pulse.walletconnect.org/e')];
  • Network accessline 48
    const events = [pending('w1', 'https://pulse.walletconnect.org/e')];
  • Network accessline 52
    it("still holds the window open for the APP's own in-flight request", () => {     const events = [pending('a1', 'http://localhost:4312/api/order')];
  • Network accessline 53
    const events = [pending('a1', 'http://localhost:4312/api/order')];
  • Network accessline 57
    it('keeps the app request and drops the beacon when both are in flight', () => {     const events = [       pending('w1', 'https://pulse.walletconnect.org/e'),
  • Network accessline 58
    const events = [       pending('w1', 'https://pulse.walletconnect.org/e'),       pending('a1', 'http://localhost:4312/api/order'),
  • Network accessline 59
    pending('w1', 'https://pulse.walletconnect.org/e'),
  • Network accessline 60
    pending('a1', 'http://localhost:4312/api/order'),
  • Network accessline 68
    */   it('does not guess that a same-origin analytics path is background', () => {     const events = [pending('s1', 'http://localhost:4312/api/analytics/events')];
  • Network accessline 69
    it('does not guess that a same-origin analytics path is background', () => {     const events = [pending('s1', 'http://localhost:4312/api/analytics/events')];     expect(inFlightRequestIds(events, APP)).toEqual(['s1']);
  • Network accessline 70
    const events = [pending('s1', 'http://localhost:4312/api/analytics/events')];
  • Network accessline 75
    it('drops a same-origin endpoint the project declared as background, and nothing else', () => {     const events = [       pending('s1', 'http://localhost:4312/api/analytics/events'),
  • Network accessline 76
    const events = [       pending('s1', 'http://localhost:4312/api/analytics/events'),       pending('a1', 'http://localhost:4312/api/order'),
  • Network accessline 77
    pending('s1', 'http://localhost:4312/api/analytics/events'),
  • Network accessline 78
    pending('a1', 'http://localhost:4312/api/order'),
  • Network accessline 81
    expect(inFlightRequestIds(events, APP, declared)).toEqual(['a1']);     expect(inFlightRequestLabels(events, APP, declared)).toEqual([       'POST http://localhost:4312/api/order',
  • Network accessline 82
    expect(inFlightRequestLabels(events, APP, declared)).toEqual([       'POST http://localhost:4312/api/order',     ]);
  • Network accessline 83
    'POST http://localhost:4312/api/order',
  • Network accessline 88
    it('suppresses nothing when the app origin is unknown', () => {     const events = [pending('w1', 'https://pulse.walletconnect.org/e')];
  • Network accessline 89
    const events = [pending('w1', 'https://pulse.walletconnect.org/e')];
  • Network accessline 94
    it('is unaffected when the beacon does come back', () => {     const events = [pending('w1', 'https://pulse.walletconnect.org/e'), done('w1')];
  • Network accessline 95
    const events = [pending('w1', 'https://pulse.walletconnect.org/e'), done('w1')];
  • Network accessline 124
    redacted(         't1',         'http://localhost:4312/verify/[REDACTED]',
  • Network accessline 125
    't1',         'http://localhost:4312/verify/[REDACTED]',         'http://localhost:4312/verify/refresh-token',
  • Network accessline 126
    'http://localhost:4312/verify/[REDACTED]',
  • Network accessline 127
    'http://localhost:4312/verify/refresh-token',
  • Network accessline 135
    redacted(         't1',         'http://localhost:4312/verify/[REDACTED]',
  • Network accessline 136
    't1',         'http://localhost:4312/verify/[REDACTED]',         'http://localhost:4312/verify/refresh-token',
  • Network accessline 137
    'http://localhost:4312/verify/[REDACTED]',
  • Network accessline 138
    'http://localhost:4312/verify/refresh-token',
  • Network accessline 146
    redacted(         't1',         'http://localhost:4312/verify/[REDACTED]',
  • Network accessline 147
    't1',         'http://localhost:4312/verify/[REDACTED]',         'http://localhost:4312/verify/refresh-token',
  • Network accessline 148
    'http://localhost:4312/verify/[REDACTED]',
  • Network accessline 149
    'http://localhost:4312/verify/refresh-token',

server/src/surface/tools/act/unsettled-find.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 31
    eventsSince: (c) => events.filter((e) => e.t >= c),     elapsed: () => now,     url: 'http://localhost:5173/',
  • Network accessline 32
    elapsed: () => now,     url: 'http://localhost:5173/',     background: [],
  • Network accessline 33
    url: 'http://localhost:5173/',
  • Network accessline 41
    id: 'r1',     method: 'GET',     url: 'http://localhost:5173/api/options',
  • Network accessline 42
    method: 'GET',     url: 'http://localhost:5173/api/options',   });
  • Network accessline 43
    url: 'http://localhost:5173/api/options',
  • Network accessline 47
    it('names the request the act started that has not come back', () => {     const u = unsettledFind(session([pending(110)], 400), ZERO);     expect(u?.inFlight).toEqual(['GET http://localhost:5173/api/options']);
  • Network accessline 48
    const u = unsettledFind(session([pending(110)], 400), ZERO);     expect(u?.inFlight).toEqual(['GET http://localhost:5173/api/options']);     expect(u?.reason).toContain('reticle_assert { action: "wait"');
  • Network accessline 49
    expect(u?.inFlight).toEqual(['GET http://localhost:5173/api/options']);
  • Network accessline 89
    id: 'r1',       method: 'GET',       url: 'http://localhost:5173/api/options',
  • Network accessline 90
    method: 'GET',       url: 'http://localhost:5173/api/options',       status: 200,
  • Network accessline 91
    url: 'http://localhost:5173/api/options',

server/src/surface/tools/act/unsettled-find.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/advertised-names-are-real.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/advertised-surface-cost.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 31
    const session = {     id: 'sess-1',     url: 'http://localhost:5173/',
  • Network accessline 32
    id: 'sess-1',     url: 'http://localhost:5173/',     ...('skewed-session' === state
  • Network accessline 33
    url: 'http://localhost:5173/',

server/src/surface/tools/agent/app-notes-learning.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/agent/app-notes-learning.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/agent/app-notes.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/agent/build-staleness.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/agent/build-staleness.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/agent/compact-envelope.contract.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 30
    return defined({     method: pick(r, ['GET', 'POST', 'DELETE']),     url: 'http://localhost:8787/api/keys?x=1',
  • Network accessline 31
    method: pick(r, ['GET', 'POST', 'DELETE']),     url: 'http://localhost:8787/api/keys?x=1',     status: pick(r, [200, 201, 400, 500]),
  • Network accessline 32
    url: 'http://localhost:8787/api/keys?x=1',
  • Network accessline 142
    blastRadius: ['net POST /a'],     }),     blastRadius: maybe(r, ['state app', 'net DELETE http://localhost:8787/api/keys']),
  • Network accessline 143
    }),     blastRadius: maybe(r, ['state app', 'net DELETE http://localhost:8787/api/keys']),     since: 4009,
  • Network accessline 144
    blastRadius: maybe(r, ['state app', 'net DELETE http://localhost:8787/api/keys']),

server/src/surface/tools/agent/compact-envelope.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 189
    if ('string' === typeof summary['route']) parts.push(`route ${summary['route']}`);   const requests = Array.isArray(summary['requests']) ? (summary['requests'] as unknown[]) : [];   if (requests.length > 0) parts.push(requests.map(String).j
  • Network accessline 190
    const requests = Array.isArray(summary['requests']) ? (summary['requests'] as unknown[]) : [];   if (requests.length > 0) parts.push(requests.map(String).join(', '));   const stateDiffs = Array.isArray(summary['stateDiffs'])
  • Network accessline 191
    if (requests.length > 0) parts.push(requests.map(String).join(', '));

server/src/surface/tools/agent/for-the-agent.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 19
    [Credential-related source omitted]
  • Access to secretsline 87
    [Credential-related source omitted]
  • Access to secretsline 90
    [Credential-related source omitted]
  • Access to secretsline 93
    [Credential-related source omitted]

server/src/surface/tools/agent/notices.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/agent/notices.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/agent/reteach.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/agent/reteach.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/alias-target-optional.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/args/alias-args.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/args/alias-args.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/args/confirm-dangerous-arg.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/args/numeric-bounds.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/args/numeric-bounds.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/assert-follows-document.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 21
    const SIGNAL_NAME = 'order:placed'; const DEPARTED_URL = 'http://app.test/checkout';
  • Network accessline 22
    const DEPARTED_URL = 'http://app.test/checkout';
  • Network accessline 23
    const SUCCESSOR_URL = 'http://app.test/thanks';
  • Network accessline 106
    const departed = departedSession();     const one = successorSession('one', SUCCESSOR_URL, true);     const two = successorSession('two', 'http://app.test/other', true);
  • Network accessline 107
    const one = successorSession('one', SUCCESSOR_URL, true);     const two = successorSession('two', 'http://app.test/other', true);     const result = await run(depsOver([departed, one, two], departed));
  • Network accessline 108
    const two = successorSession('two', 'http://app.test/other', true);

server/src/surface/tools/assert/assert-bare-getter-store.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/assert/assert-buffer-honesty.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 217
    type: EventType.NET_REQUEST,       sessionId: 'demo',       data: { method: 'GET', url: 'http://localhost/api/items', status: 200, ok: true },
  • Network accessline 218
    sessionId: 'demo',       data: { method: 'GET', url: 'http://localhost/api/items', status: 200, ok: true },     },
  • Network accessline 219
    data: { method: 'GET', url: 'http://localhost/api/items', status: 200, ok: true },
  • Network accessline 282
    type: EventType.NET_REQUEST,         sessionId: 'demo',         data: { method: 'POST', url: 'http://localhost/api/save', status: 200, ok: true },
  • Network accessline 283
    sessionId: 'demo',         data: { method: 'POST', url: 'http://localhost/api/save', status: 200, ok: true },       },
  • Network accessline 284
    data: { method: 'POST', url: 'http://localhost/api/save', status: 200, ok: true },
  • Network accessline 288
    type: EventType.NET_REQUEST,         sessionId: 'demo',         data: { method: 'POST', url: 'http://localhost/api/save', status: 200, ok: true },
  • Network accessline 289
    sessionId: 'demo',         data: { method: 'POST', url: 'http://localhost/api/save', status: 200, ok: true },       },
  • Network accessline 290
    data: { method: 'POST', url: 'http://localhost/api/save', status: 200, ok: true },

server/src/surface/tools/assert/assert-contradiction-plumbing.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 58
    ev(EventType.NET_REQUEST, {     method: 'POST',     url: 'http://localhost:8787/api/generate-script',
  • Network accessline 59
    method: 'POST',     url: 'http://localhost:8787/api/generate-script',     status: 500,
  • Network accessline 60
    url: 'http://localhost:8787/api/generate-script',
  • Network accessline 107
    ev(EventType.NET_REQUEST, {         method: 'POST',         url: 'http://localhost:8787/api/generate-script',
  • Network accessline 108
    method: 'POST',         url: 'http://localhost:8787/api/generate-script',         status: 200,
  • Network accessline 109
    url: 'http://localhost:8787/api/generate-script',

server/src/surface/tools/assert/assert-coverage-honesty.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 291
    data: {           method: 'POST',           url: 'https://analytics.other.test/collect',
  • Network accessline 292
    method: 'POST',           url: 'https://analytics.other.test/collect',           status: 202,
  • Network accessline 293
    url: 'https://analytics.other.test/collect',
  • Network accessline 354
    health: () => ({ lastSeenMs: 0, throttled: false, focused: true }),       },       { url: 'http://localhost:5173/app' },
  • Network accessline 355
    },       { url: 'http://localhost:5173/app' },     );
  • Network accessline 356
    { url: 'http://localhost:5173/app' },

server/src/surface/tools/assert/assert-gap-reads-own-source.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 65
    health: () => ({ lastSeenMs: 5, throttled: false, focused: true }),     },     { url: 'http://localhost:3000/' },
  • Network accessline 66
    },     { url: 'http://localhost:3000/' },   );
  • Network accessline 67
    { url: 'http://localhost:3000/' },
  • Network accessline 149
    type: 'console.error',       message: 'boom',       source: 'http://localhost:3000/main.js',
  • Network accessline 150
    message: 'boom',       source: 'http://localhost:3000/main.js',     };
  • Network accessline 151
    source: 'http://localhost:3000/main.js',

server/src/surface/tools/assert/assert-grade-empty-combinator.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/assert/assert-grade.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/assert/assert-grade.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/assert/assert-journal-loss.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 123
    type: EventType.NET_REQUEST,         sessionId: 'demo',         data: { method: 'GET', url: 'http://localhost/api/items', status: 200, ok: true },
  • Network accessline 124
    sessionId: 'demo',         data: { method: 'GET', url: 'http://localhost/api/items', status: 200, ok: true },       },
  • Network accessline 125
    data: { method: 'GET', url: 'http://localhost/api/items', status: 200, ok: true },

server/src/surface/tools/assert/assert-journal-verdict.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 29
    protocolVersion: RETICLE_PROTOCOL_VERSION,     sessionId: 'demo',     url: 'http://localhost/',
  • Network accessline 30
    sessionId: 'demo',     url: 'http://localhost/',     title: 'Demo',
  • Network accessline 31
    url: 'http://localhost/',

server/src/surface/tools/assert/assert-repeatable-read.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 36
    const socket = await new Promise<WebSocket>((resolve, reject) => {     const s = new WebSocket(`ws://127.0.0.1:${String(port)}${RETICLE_WS_PATH}`, {       origin: 'http://localhost',
  • Network accessline 37
    const s = new WebSocket(`ws://127.0.0.1:${String(port)}${RETICLE_WS_PATH}`, {       origin: 'http://localhost',     });
  • Network accessline 38
    origin: 'http://localhost',
  • Network accessline 47
    protocolVersion: 1,     sessionId: 'reads',     url: 'http://localhost:3000/',
  • Network accessline 48
    sessionId: 'reads',     url: 'http://localhost:3000/',     title: 'reads',
  • Network accessline 49
    url: 'http://localhost:3000/',
  • Network accessline 66
    id,           method: 'POST',           url: 'http://localhost:3000/graphql',
  • Network accessline 67
    method: 'POST',           url: 'http://localhost:3000/graphql',           status: 200,
  • Network accessline 68
    url: 'http://localhost:3000/graphql',

server/src/surface/tools/assert/assert-source-attribution.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 76
    health: () => ({ lastSeenMs: 5, throttled: false, focused: true }),     },     { url: 'http://localhost:3000/' },
  • Network accessline 77
    },     { url: 'http://localhost:3000/' },   );
  • Network accessline 78
    { url: 'http://localhost:3000/' },
  • Network accessline 205
    elapsed: () => 1000,       },       { url: 'http://localhost:3000/' },
  • Network accessline 206
    },       { url: 'http://localhost:3000/' },     );
  • Network accessline 207
    { url: 'http://localhost:3000/' },

server/src/surface/tools/assert/assert-source.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/assert/assert-source.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/assert/assert-throttled-window.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/assert/assert-timeout-diagnosis.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/assert/assert-transport-gap.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/assert/assert-verdict.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/assert/assert-wait-is-graded.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/assert/verdict-attribution.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/authored-errors-are-ours.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 60
    [Credential-related source omitted]
  • Access to secretsline 71
    [Credential-related source omitted]

server/src/surface/tools/baseline-roundtrip.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/bench-inject-dirty-guard.test.mjs

  • Executable scriptline 1
    Executable file

server/src/surface/tools/blocking-wait-ceiling.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/body-clause-refusal-envelope.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/browser-tools.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 81
    const EXAMPLE_ORIGIN = 'http://localhost:3000';

server/src/surface/tools/chat-drives.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 166
    return last.ports       .filter((port) => !connected.has(port))       .map((port) => ({ url: `http://${LOCALHOST_HOST}:${String(port)}`, port }));
  • Network accessline 167
    .filter((port) => !connected.has(port))       .map((port) => ({ url: `http://${LOCALHOST_HOST}:${String(port)}`, port }));   };
  • Network accessline 168
    .map((port) => ({ url: `http://${LOCALHOST_HOST}:${String(port)}`, port }));

server/src/surface/tools/cheatsheet-accuracy.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/compare-tools.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 44
    it('refuses a call without both urls', async () => {     const tool = compareTool(controlled().run, noWait);     expect(await tool.handler(deps, { reference: 'http://a/' })).toMatchObject({
  • Network accessline 45
    const tool = compareTool(controlled().run, noWait);     expect(await tool.handler(deps, { reference: 'http://a/' })).toMatchObject({       error: expect.stringContaining('candidate') as unknown,
  • Network accessline 46
    expect(await tool.handler(deps, { reference: 'http://a/' })).toMatchObject({
  • Network accessline 54
    const tool = compareTool(c.run, noWait);     const result = await tool.handler(deps, {       reference: 'http://a/',
  • Network accessline 55
    const result = await tool.handler(deps, {       reference: 'http://a/',       candidate: 'http://b/',
  • Network accessline 56
    reference: 'http://a/',
  • Network accessline 57
    candidate: 'http://b/',
  • Network accessline 58
    base: 'http://c/',
  • Network accessline 60
    expect(result).toEqual(SAME);     expect(c.asked[0]).toMatchObject({       reference: 'http://a/',
  • Network accessline 61
    expect(c.asked[0]).toMatchObject({       reference: 'http://a/',       candidate: 'http://b/',
  • Network accessline 62
    reference: 'http://a/',
  • Network accessline 63
    candidate: 'http://b/',
  • Network accessline 64
    base: 'http://c/',
  • Network accessline 72
    const tool = compareTool(c.run, noWait);     const first = (await tool.handler(deps, {       reference: 'http://a/',
  • Network accessline 73
    const first = (await tool.handler(deps, {       reference: 'http://a/',       candidate: 'http://b/',
  • Network accessline 74
    reference: 'http://a/',
  • Network accessline 75
    candidate: 'http://b/',

server/src/surface/tools/compare-tools.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/connect-spelling.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/console-empty-read.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/contract-tools.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/coverage-tools.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/coverage-tools.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/dispatch-chokepoint.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/dispatch-episode.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 50
    const root = join(mkdtempSync(join(tmpdir(), 'dispatch-episode-')), ReticleDir.ROOT);     mkdirSync(root, { recursive: true });     const tab = createFakeSession({}, { sessionId: 'tab-1', url: 'http://localhost:5173/' });
  • Network accessline 51
    mkdirSync(root, { recursive: true });     const tab = createFakeSession({}, { sessionId: 'tab-1', url: 'http://localhost:5173/' });     tab.artifactRoot = root;
  • Network accessline 52
    const tab = createFakeSession({}, { sessionId: 'tab-1', url: 'http://localhost:5173/' });

server/src/surface/tools/dispatch-opens-unwired-app.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 24
    const ROOT = '/tmp/reticle-dispatch-opens-unwired/.reticle'; const NOTICE = 'opened http://localhost:5173 zero-install';
  • Network accessline 25
    const NOTICE = 'opened http://localhost:5173 zero-install';
  • Network accessline 34
    bufferHealth: () => ({ total: 0, dropped: 0 }),     },     { sessionId: 'lease-1', url: 'http://localhost:5173/' },
  • Network accessline 35
    },     { sessionId: 'lease-1', url: 'http://localhost:5173/' },   );
  • Network accessline 36
    { sessionId: 'lease-1', url: 'http://localhost:5173/' },
  • Network accessline 67
    opens += 1;       tab = leased();       return Promise.resolve({ url: 'http://localhost:5173', notice: NOTICE });
  • Network accessline 68
    tab = leased();       return Promise.resolve({ url: 'http://localhost:5173', notice: NOTICE });     },
  • Network accessline 69
    return Promise.resolve({ url: 'http://localhost:5173', notice: NOTICE });

server/src/surface/tools/dispatch-session-pin.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 73
    bufferHealth: () => ({ total: 0, dropped: 0 }),     },     { sessionId: id, url: `http://localhost:5173/${id}` },
  • Network accessline 74
    },     { sessionId: id, url: `http://localhost:5173/${id}` },   );
  • Network accessline 75
    { sessionId: id, url: `http://localhost:5173/${id}` },

server/src/surface/tools/docs-index-coverage.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/documented-names.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/dynamic-tools.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/dynamic-tools.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/e2e-surface-drift.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/empty-session-list.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 40
    NoSessionAction.OPEN_APP, ]); const LOCALHOST = 'http://localhost';
  • Network accessline 42
    const LOCALHOST = 'http://localhost';

server/src/surface/tools/empty-session-talk-to-us.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 28
    it('carries nothing extra when a session is connected', async () => {     const out = (await listTool?.handler(       deps([{ sessionId: 's1', url: 'http://localhost:3000/' }]),
  • Network accessline 29
    const out = (await listTool?.handler(       deps([{ sessionId: 's1', url: 'http://localhost:3000/' }]),       {},
  • Network accessline 30
    deps([{ sessionId: 's1', url: 'http://localhost:3000/' }]),

server/src/surface/tools/envelope-keys-declared.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/error-recovery.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 137
    it.each([     'Your 10 free credits are used. Add a card to start your 14-day trial: https://app.test/settings?group=billing',
  • Network accessline 138
    'Your 10 free credits are used. Add a card to start your 14-day trial: https://app.test/settings?group=billing',
  • Network accessline 139
    'Your 500 trial credits are used. Pro starts when your trial ends. Plan: https://app.test/x',
  • Network accessline 608
    'a scope mismatch',       "no browser session for project 'shop', but 1 session(s) ARE connected under a different " +         "project: 'atlas' (http://localhost:4310/, sessionId 's1'). The daemon scopes to the " +
  • Network accessline 609
    "no browser session for project 'shop', but 1 session(s) ARE connected under a different " +         "project: 'atlas' (http://localhost:4310/, sessionId 's1'). The daemon scopes to the " +         '.reticle.json of the directory it was sta
  • Network accessline 610
    "project: 'atlas' (http://localhost:4310/, sessionId 's1'). The daemon scopes to the " +
  • Network accessline 616
    'a scope mismatch with an untagged session',       "no browser session for project 'shop', but 1 session(s) ARE connected with no " +         "projectId: (no projectId: the page's connect() carries none) (http://localhost:3000/, sessionId '
  • Network accessline 617
    "no browser session for project 'shop', but 1 session(s) ARE connected with no " +         "projectId: (no projectId: the page's connect() carries none) (http://localhost:3000/, sessionId 's1'). " +         'The daemon scopes to the .reticl
  • Network accessline 618
    "projectId: (no projectId: the page's connect() carries none) (http://localhost:3000/, sessionId 's1'). " +
  • Network accessline 625
    'a scope mismatch with mixed tagged and untagged sessions',       "no browser session for project 'shop', but 2 session(s) ARE connected under a different project or with no " +         "projectId: (no projectId: the page's connect() carrie
  • Network accessline 626
    "no browser session for project 'shop', but 2 session(s) ARE connected under a different project or with no " +         "projectId: (no projectId: the page's connect() carries none) (http://localhost:3000/, sessionId 's1'), " +         "'at
  • Network accessline 627
    "projectId: (no projectId: the page's connect() carries none) (http://localhost:3000/, sessionId 's1'), " +
  • Network accessline 628
    "'atlas' (http://localhost:4310/, sessionId 's2'). " +
  • Network accessline 731
    it('adds no generic hint when the message names connected sessions', () => {     const message =       "no connected session with id 'ghost'. Connected right now: 'a' (http://localhost:3000/). " +
  • Network accessline 732
    const message =       "no connected session with id 'ghost'. Connected right now: 'a' (http://localhost:3000/). " +       'Retry with one of those, or omit sessionId entirely and let Reticle scope to your project.';
  • Network accessline 733
    "no connected session with id 'ghost'. Connected right now: 'a' (http://localhost:3000/). " +

server/src/surface/tools/error-recovery.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 585
    [Credential-related source omitted]

server/src/surface/tools/every-retired-name-redirects.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/explore-runs.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 30
    [Credential-related source omitted]
  • Network accessline 31
    [Credential-related source omitted]
  • Network accessline 32
    [Credential-related source omitted]

server/src/surface/tools/explore-tools.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/feedback-ask-names-live-tool.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/feedback-invite.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/feedback-invite.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/feedback-tools.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/feedback-tools.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/first-sentence.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/first-sentence.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/gap-novelty.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/gap-novelty.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/gaps/capability-absences.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/gaps/capability-absences.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/gaps/coverage-identity.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/gaps/coverage-identity.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/gaps/observed-nothing.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/gaps/observed-nothing.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/gaps/sdk-marker-probe.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 37
    await expect(probeSdkMarker('http://127.0.0.1:1/')).resolves.toBeUndefined();

server/src/surface/tools/gaps/sdk-marker-probe.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 45
    const timer = setTimeout(() => controller.abort(), PROBE_TIMEOUT_MS);   try {     const res = await fetch(url, { signal: controller.signal });
  • Network accessline 46
    try {     const res = await fetch(url, { signal: controller.signal });     if (!res.ok) return undefined;
  • Network accessline 47
    const res = await fetch(url, { signal: controller.signal });

server/src/surface/tools/harness-explore.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 161
    writeFileSync(       join(root, '.reticle', 'cloud.json'),       JSON.stringify({ dashboardUrl: 'http://localhost:16580/issues?project=shop' }),
  • Network accessline 162
    join(root, '.reticle', 'cloud.json'),       JSON.stringify({ dashboardUrl: 'http://localhost:16580/issues?project=shop' }),     );
  • Network accessline 163
    JSON.stringify({ dashboardUrl: 'http://localhost:16580/issues?project=shop' }),
  • Network accessline 169
    { driver: finishing(''), skipPlatformConfig: true },     );     expect(result.runUrl).toBe(`http://localhost:16580/runs/${result.runIds?.[0] ?? ''}`);
  • Network accessline 170
    );     expect(result.runUrl).toBe(`http://localhost:16580/runs/${result.runIds?.[0] ?? ''}`);     const unlinked = await exploreApp(
  • Network accessline 171
    expect(result.runUrl).toBe(`http://localhost:16580/runs/${result.runIds?.[0] ?? ''}`);
  • Network accessline 289
    expect(harnessAvailable({ [ReticleEnv.HARNESS_KEY]: 'sk-x' })).toBe(false);     expect(       harnessAvailable({ [ReticleEnv.API_KEY]: 'rk_live_x', [ReticleEnv.CLOUD_URL]: 'https://p' }),
  • Network accessline 290
    expect(       harnessAvailable({ [ReticleEnv.API_KEY]: 'rk_live_x', [ReticleEnv.CLOUD_URL]: 'https://p' }),     ).toBe(true);
  • Network accessline 291
    [Credential-related source omitted]
  • Access to secretsline 291
    [Credential-related source omitted]
  • Network accessline 409
    [Credential-related source omitted]
  • Network accessline 412
    const env = await withLinkedCredential(linked(FILED), {});     expect(env['RETICLE_API_KEY']).toBe('rk_live_filed');     expect(env['RETICLE_CLOUD_URL']).toBe('https://app.reticle.sh');
  • Network accessline 413
    [Credential-related source omitted]
  • Access to secretsline 413
    [Credential-related source omitted]
  • Network accessline 414
    expect(env['RETICLE_CLOUD_URL']).toBe('https://app.reticle.sh');
  • Access to secretsline 423
    [Credential-related source omitted]
  • Access to secretsline 424
    [Credential-related source omitted]
  • Access to secretsline 428
    [Credential-related source omitted]
  • Access to secretsline 429
    [Credential-related source omitted]
  • Network accessline 439
    const deps = {       linkedCloud: (root?: string) => Promise.resolve(root === undefined ? FILED : null),       sessions: { resolve: () => ({ id: 'lease-1', url: 'http://localhost:5173/' }) },
  • Network accessline 440
    linkedCloud: (root?: string) => Promise.resolve(root === undefined ? FILED : null),       sessions: { resolve: () => ({ id: 'lease-1', url: 'http://localhost:5173/' }) },       artifactRootFor: () => ({ root: '/repo/.reticle/unmatched/local
  • Network accessline 441
    sessions: { resolve: () => ({ id: 'lease-1', url: 'http://localhost:5173/' }) },
  • Access to secretsline 446
    [Credential-related source omitted]
  • Network accessline 449
    it('keeps an explicitly named host, so a proxy is not overridden by the linked one', async () => {     const env = await withLinkedCredential(linked(FILED), {       RETICLE_CLOUD_URL: 'http://localhost:1',
  • Network accessline 450
    const env = await withLinkedCredential(linked(FILED), {       RETICLE_CLOUD_URL: 'http://localhost:1',     });
  • Network accessline 451
    RETICLE_CLOUD_URL: 'http://localhost:1',
  • Network accessline 452
    });     expect(env['RETICLE_CLOUD_URL']).toBe('http://localhost:1');   });
  • Network accessline 453
    expect(env['RETICLE_CLOUD_URL']).toBe('http://localhost:1');
  • Access to secretsline 458
    [Credential-related source omitted]
  • Access to secretsline 464
    [Credential-related source omitted]
  • Network accessline 473
    [Credential-related source omitted]
  • Network accessline 474
    [Credential-related source omitted]
  • Network accessline 475
    [Credential-related source omitted]
  • Network accessline 478
    reticleRoot: '/work/daemon/.reticle',       sessions: {         resolve: () => ({ id: 'tab-1', projectId: 'shop', url: 'http://localhost:4397/' }),
  • Network accessline 479
    sessions: {         resolve: () => ({ id: 'tab-1', projectId: 'shop', url: 'http://localhost:4397/' }),       },
  • Network accessline 480
    resolve: () => ({ id: 'tab-1', projectId: 'shop', url: 'http://localhost:4397/' }),
  • Access to secretsline 486
    [Credential-related source omitted]
  • Access to secretsline 490
    [Credential-related source omitted]
  • Access to secretsline 492
    [Credential-related source omitted]
  • Network accessline 576
    [Credential-related source omitted]
  • Access to secretsline 576
    [Credential-related source omitted]
  • Network accessline 614
    harnessUnlocked: true,         credits: { used: 10, limit: 10, kind: 'free' },         planUrl: 'https://console.test/settings?group=billing',
  • Network accessline 615
    credits: { used: 10, limit: 10, kind: 'free' },         planUrl: 'https://console.test/settings?group=billing',       }),
  • Network accessline 616
    planUrl: 'https://console.test/settings?group=billing',
  • Network accessline 617
    }),     });     expect(refusal?.text).toContain('https://console.test/settings?group=billing');
  • Network accessline 618
    });     expect(refusal?.text).toContain('https://console.test/settings?group=billing');     expect(refusal?.reason).toBe(HarnessRunReason.NO_CREDITS);
  • Network accessline 619
    expect(refusal?.text).toContain('https://console.test/settings?group=billing');
  • Network accessline 647
    harnessEntitled: false,   });   const linked = { [ReticleEnv.API_KEY]: 'rk_live_x', [ReticleEnv.CLOUD_URL]: 'https://api.test' };
  • Network accessline 649
    [Credential-related source omitted]
  • Access to secretsline 649
    [Credential-related source omitted]
  • Network accessline 676
    });     await expect(spent('free', 25)).rejects.toThrow(       'Your 25 free credits are used. Add a card to start your 14-day trial: https://api.test/settings?group=billing',
  • Network accessline 677
    await expect(spent('free', 25)).rejects.toThrow(       'Your 25 free credits are used. Add a card to start your 14-day trial: https://api.test/settings?group=billing',     );
  • Network accessline 678
    'Your 25 free credits are used. Add a card to start your 14-day trial: https://api.test/settings?group=billing',
  • Access to secretsline 731
    [Credential-related source omitted]
  • Network accessline 739
    */ describe('a saved plan the platform refuses', () => {   const linked = { [ReticleEnv.API_KEY]: 'rk_live_x', [ReticleEnv.CLOUD_URL]: 'https://api.test' };
  • Network accessline 740
    describe('a saved plan the platform refuses', () => {   const linked = { [ReticleEnv.API_KEY]: 'rk_live_x', [ReticleEnv.CLOUD_URL]: 'https://api.test' };   const off = () =>
  • Network accessline 741
    [Credential-related source omitted]
  • Access to secretsline 741
    [Credential-related source omitted]
  • Network accessline 793
    'fetch',       vi.fn((url: string, init: RequestInit) => {         calls.push(`${String(init.method)} ${url.replace('https://api.test', '')}`);
  • Network accessline 794
    vi.fn((url: string, init: RequestInit) => {         calls.push(`${String(init.method)} ${url.replace('https://api.test', '')}`);         return Promise.resolve(
  • Network accessline 795
    calls.push(`${String(init.method)} ${url.replace('https://api.test', '')}`);

server/src/surface/tools/harness-explore.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/harness-gate.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 105
    [Credential-related source omitted]

server/src/surface/tools/harness-hunt.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/harness-hunt.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/harness-lanes.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 12
    const URL_ = 'http://localhost:4391/settings';
  • Network accessline 22
    applyStorageState: () => Promise.resolve(true),     };     expect(await laneSeed(deps(realInput), 's1', 'http://localhost:4391')).toEqual({ cookies });
  • Network accessline 23
    };     expect(await laneSeed(deps(realInput), 's1', 'http://localhost:4391')).toEqual({ cookies });   });
  • Network accessline 24
    expect(await laneSeed(deps(realInput), 's1', 'http://localhost:4391')).toEqual({ cookies });
  • Network accessline 27
    it('take turns in the caller tab when its sign-in cannot be copied', async () => {     expect(await laneSeed(deps(undefined), 's1', 'http://localhost:4391')).toBeUndefined();
  • Network accessline 28
    expect(await laneSeed(deps(undefined), 's1', 'http://localhost:4391')).toBeUndefined();

server/src/surface/tools/harness-not-linked.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 39
    const tab = {     id: 's1',     url: 'http://localhost:5173/',
  • Network accessline 40
    id: 's1',     url: 'http://localhost:5173/',     channels: ['ui', 'net', 'log', 'state', 'signal'],
  • Network accessline 41
    url: 'http://localhost:5173/',

server/src/surface/tools/harness-plan.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/harness-plan.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/harness-request-share.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/harness-script.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/harness-tab-guard.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/harness-tab-guard.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/harness-toolset.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/harness-toolset.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/hud-drive-word.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 19
    const tab = {     id: 's1',     url: 'http://localhost:5173/',
  • Network accessline 20
    id: 's1',     url: 'http://localhost:5173/',     channels: ['ui', 'net', 'log', 'state', 'signal'],
  • Network accessline 21
    url: 'http://localhost:5173/',
  • Network accessline 25
    [Credential-related source omitted]
  • Network accessline 26
    [Credential-related source omitted]
  • Network accessline 27
    [Credential-related source omitted]
  • Network accessline 37
    [Credential-related source omitted]
  • Network accessline 38
    [Credential-related source omitted]
  • Network accessline 39
    [Credential-related source omitted]
  • Network accessline 54
    [Credential-related source omitted]
  • Network accessline 55
    [Credential-related source omitted]
  • Network accessline 56
    [Credential-related source omitted]

server/src/surface/tools/hud-drive.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    [Credential-related source omitted]
  • Network accessline 17
    [Credential-related source omitted]
  • Network accessline 18
    [Credential-related source omitted]
  • Network accessline 32
    const tab = {     id: 's1',     url: 'http://localhost:5173/',
  • Network accessline 33
    id: 's1',     url: 'http://localhost:5173/',     channels,
  • Network accessline 34
    url: 'http://localhost:5173/',
  • Network accessline 38
    [Credential-related source omitted]
  • Network accessline 39
    [Credential-related source omitted]
  • Network accessline 40
    [Credential-related source omitted]
  • Network accessline 84
    const tab = {       id: 's1',       url: 'http://localhost:5173/',
  • Network accessline 85
    id: 's1',       url: 'http://localhost:5173/',       channels: ABOVE,
  • Network accessline 86
    url: 'http://localhost:5173/',
  • Network accessline 90
    [Credential-related source omitted]
  • Network accessline 91
    [Credential-related source omitted]
  • Network accessline 92
    [Credential-related source omitted]
  • Network accessline 112
    const tab = {       id: 'bench',       url: 'http://localhost:4312/',
  • Network accessline 113
    id: 'bench',       url: 'http://localhost:4312/',       projectId: 'bench-app',
  • Network accessline 114
    url: 'http://localhost:4312/',
  • Network accessline 153
    expect(said).toEqual([       'Your trial has ended.',       'Start your trial: https://app.reticle.test/settings?group=billing',
  • Network accessline 154
    'Your trial has ended.',       'Start your trial: https://app.reticle.test/settings?group=billing',     ]);
  • Network accessline 155
    'Start your trial: https://app.reticle.test/settings?group=billing',

server/src/surface/tools/hud-harness-link.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/human-notes.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/human-notes.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/init-guidance-names.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/init-guidance-surface.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/inspect-tool.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/invoke-tool-notices.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/invoke-tool.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 29
    const stub: Partial<Session> = {     id: 'demo',     url: 'http://localhost:5173/app',
  • Network accessline 30
    id: 'demo',     url: 'http://localhost:5173/app',     command: () => Promise.resolve({ kind: 'command_result', id: 'c', ok: true, result: {} }),
  • Network accessline 31
    url: 'http://localhost:5173/app',

server/src/surface/tools/invoke-tool.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/lean-surface.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/lease-adopted-id.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 41
    describe('a lease resolves to the session its tab actually registered', () => {   it('uses the lease id when the SDK adopted it', () => {     const live = sessions([{ id: LEASE_ID, url: leaseUrl('http://localhost:3000/') }]);
  • Network accessline 42
    it('uses the lease id when the SDK adopted it', () => {     const live = sessions([{ id: LEASE_ID, url: leaseUrl('http://localhost:3000/') }]);     expect(resolveLeasedSessionId(live, LEASE_ID)).toBe(LEASE_ID);
  • Network accessline 43
    const live = sessions([{ id: LEASE_ID, url: leaseUrl('http://localhost:3000/') }]);
  • Network accessline 50
    const live = sessions([{ id: 'next-smoke', url: leaseUrl('http://localhost:3100/') }]);
  • Network accessline 60
    const live = sessions([       { id: 'other', url: `http://localhost:3100/?${RETICLE_URL_PARAM.SESSION}=lease-zzz` },
  • Network accessline 61
    { id: 'other', url: `http://localhost:3100/?${RETICLE_URL_PARAM.SESSION}=lease-zzz` },
  • Network accessline 76
    const live = sessions([       { id: 'app', url: `http://localhost:3100/?${RETICLE_URL_PARAM.SESSION}=lease-abcdef` },
  • Network accessline 77
    { id: 'app', url: `http://localhost:3100/?${RETICLE_URL_PARAM.SESSION}=lease-abcdef` },

server/src/surface/tools/lease-hint-evidence.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    describe('the lease hint is ranked by evidence, not by a static differential', () => {   it('leads with a recorded refusal, which is the only certain cause there is', () => {     const hint = leaseNotConnectedHint('http://localhost:5173/', 
  • Network accessline 17
    it('leads with a recorded refusal, which is the only certain cause there is', () => {     const hint = leaseNotConnectedHint('http://localhost:5173/', 4400, {       refusal: 'a browser dialled this daemon and was REFUSED at the origin gate'
  • Network accessline 18
    const hint = leaseNotConnectedHint('http://localhost:5173/', 4400, {
  • Network accessline 27
    it('does not blame the port on a project that has demonstrably connected on it', () => {     const hint = leaseNotConnectedHint('http://localhost:5173/', 4400, {
  • Network accessline 28
    const hint = leaseNotConnectedHint('http://localhost:5173/', 4400, {
  • Network accessline 35
    it('does not recommend init on an app that is already wired', () => {     const hint = leaseNotConnectedHint('http://localhost:5173/', 4400, { initialized: true });
  • Network accessline 36
    const hint = leaseNotConnectedHint('http://localhost:5173/', 4400, { initialized: true });
  • Network accessline 40
    it('leads with the dev-server restart for Nuxt, where HMR does not register a new plugin', () => {     const hint = leaseNotConnectedHint('http://localhost:3000/', 4400, {
  • Network accessline 41
    const hint = leaseNotConnectedHint('http://localhost:3000/', 4400, {
  • Network accessline 49
    it('reports that no Reticle marker was found in the served page, when that was checked', () => {     const hint = leaseNotConnectedHint('http://localhost:5173/', 4400, { sdkMarker: false });
  • Network accessline 50
    const hint = leaseNotConnectedHint('http://localhost:5173/', 4400, { sdkMarker: false });
  • Network accessline 54
    it('reports that a marker WAS found, which rules out "the app ships no SDK"', () => {     const hint = leaseNotConnectedHint('http://localhost:5173/', 4400, { sdkMarker: true });
  • Network accessline 55
    const hint = leaseNotConnectedHint('http://localhost:5173/', 4400, { sdkMarker: true });
  • Network accessline 61
    it('says nothing about a marker when it could not be checked, rather than guessing', () => {     const hint = leaseNotConnectedHint('http://localhost:5173/', 4400, {});
  • Network accessline 62
    const hint = leaseNotConnectedHint('http://localhost:5173/', 4400, {});
  • Network accessline 66
    it('keeps the port differential when there is genuinely no other evidence', () => {     expect(leaseNotConnectedHint('http://localhost:5173/', 4400)).toContain('PORT MISMATCH');
  • Network accessline 67
    expect(leaseNotConnectedHint('http://localhost:5173/', 4400)).toContain('PORT MISMATCH');
  • Network accessline 82
    * known, which is exactly the case a monorepo or a second app never lands in.    */   const hint = leaseNotConnectedHint('http://localhost:4320/', 4400, {
  • Network accessline 83
    */   const hint = leaseNotConnectedHint('http://localhost:4320/', 4400, {     previouslyConnected: true,
  • Network accessline 84
    const hint = leaseNotConnectedHint('http://localhost:4320/', 4400, {
  • Network accessline 107
    describe('leaseStillLoadingHint', () => {   it('says how long the page was still loading and does not blame the install', () => {     const hint = leaseStillLoadingHint('http://localhost:4200/', 40_200);
  • Network accessline 108
    it('says how long the page was still loading and does not blame the install', () => {     const hint = leaseStillLoadingHint('http://localhost:4200/', 40_200);     expect(hint).toContain('http://localhost:4200/ was still loading after 40s')
  • Network accessline 109
    const hint = leaseStillLoadingHint('http://localhost:4200/', 40_200);
  • Network accessline 110
    expect(hint).toContain('http://localhost:4200/ was still loading after 40s');

server/src/surface/tools/lease-hint.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 26
    describe('leaseNotConnectedHint', () => {   const hint = leaseNotConnectedHint('http://localhost:5173/', 4400);
  • Network accessline 27
    const hint = leaseNotConnectedHint('http://localhost:5173/', 4400);
  • Network accessline 33
    it('names the url that was opened', () => {     expect(hint).toContain('http://localhost:5173/');
  • Network accessline 34
    expect(hint).toContain('http://localhost:5173/');
  • Network accessline 66
    describe('a page that dialled somewhere else', () => {   it('names both ports instead of listing causes that assume the port is right', () => {     const hint = leaseNotConnectedHint('http://localhost:4312/', 4400, {
  • Network accessline 67
    it('names both ports instead of listing causes that assume the port is right', () => {     const hint = leaseNotConnectedHint('http://localhost:4312/', 4400, {       dialledUrl: 'ws://localhost:4460/reticle',
  • Network accessline 68
    const hint = leaseNotConnectedHint('http://localhost:4312/', 4400, {
  • Network accessline 81
    it('outranks every inferred cause, because it is the only one with proof', () => {     const hint = leaseNotConnectedHint('http://localhost:4312/', 4400, {
  • Network accessline 82
    const hint = leaseNotConnectedHint('http://localhost:4312/', 4400, {
  • Network accessline 91
    it('says nothing when the page dialled this very daemon — then the port is exonerated', () => {     const hint = leaseNotConnectedHint('http://localhost:4312/', 4400, {
  • Network accessline 92
    const hint = leaseNotConnectedHint('http://localhost:4312/', 4400, {
  • Network accessline 112
    it('names the policy and the fix, and says init cannot help', () => {     const hint = leaseNotConnectedHint('http://localhost:4455/', 4400, {
  • Network accessline 113
    const hint = leaseNotConnectedHint('http://localhost:4455/', 4400, {
  • Network accessline 122
    it('outranks the guessed causes, but not a page that dialled the wrong port', () => {     const wrongPort = leaseNotConnectedHint('http://localhost:4455/', 4400, {
  • Network accessline 123
    const wrongPort = leaseNotConnectedHint('http://localhost:4455/', 4400, {
  • Network accessline 131
    describe('a production build whose SDK was stubbed', () => {   it('points an initialized project at the dev server, not back at init', () => {     const hint = leaseNotConnectedHint('http://localhost:4173/', 4400, {
  • Network accessline 132
    it('points an initialized project at the dev server, not back at init', () => {     const hint = leaseNotConnectedHint('http://localhost:4173/', 4400, {       initialized: true,
  • Network accessline 133
    const hint = leaseNotConnectedHint('http://localhost:4173/', 4400, {
  • Network accessline 143
    it('treats a non-localhost URL as likely production even without a marker check', () => {     const hint = leaseNotConnectedHint('https://app.example.com/', 4400);
  • Network accessline 144
    const hint = leaseNotConnectedHint('https://app.example.com/', 4400);
  • Network accessline 151
    it('keeps the init advice for an unwired project whose page carried no marker', () => {     const hint = leaseNotConnectedHint('http://localhost:4173/', 4400, { sdkMarker: false });
  • Network accessline 152
    const hint = leaseNotConnectedHint('http://localhost:4173/', 4400, { sdkMarker: false });
  • Network accessline 161
    { sdkMarker: true },     ]) {       const hint = leaseNotConnectedHint('https://app.example.com/', 4400, evidence);
  • Network accessline 162
    ]) {       const hint = leaseNotConnectedHint('https://app.example.com/', 4400, evidence);       expect(hint).toMatch(/marker WAS found/);
  • Network accessline 163
    const hint = leaseNotConnectedHint('https://app.example.com/', 4400, evidence);
  • Network accessline 169
    it('does not treat every loopback address as production', () => {     const hint = leaseNotConnectedHint('http://127.0.0.2:5173/', 4400);
  • Network accessline 170
    const hint = leaseNotConnectedHint('http://127.0.0.2:5173/', 4400);
  • Network accessline 174
    it('keeps production as an extra possibility when another app may have connected before', () => {     const hint = leaseNotConnectedHint('http://localhost:4173/', 4400, {
  • Network accessline 175
    const hint = leaseNotConnectedHint('http://localhost:4173/', 4400, {
  • Network accessline 185
    it('does not attach the production explanation to a refused dial', () => {     const hint = leaseNotConnectedHint('http://localhost:4173/', 4400, {
  • Network accessline 186
    const hint = leaseNotConnectedHint('http://localhost:4173/', 4400, {
  • Network accessline 194
    it('does not attach the production explanation to a proven port mismatch', () => {     const hint = leaseNotConnectedHint('http://localhost:4173/', 4400, {
  • Network accessline 195
    const hint = leaseNotConnectedHint('http://localhost:4173/', 4400, {
  • Network accessline 205
    describe('leaseReaderFailedHint', () => {   it('sends a page that is not HTML to an HTML page of the app', () => {     const hint = leaseReaderFailedHint('http://localhost:3000/icon.svg', {
  • Network accessline 206
    it('sends a page that is not HTML to an HTML page of the app', () => {     const hint = leaseReaderFailedHint('http://localhost:3000/icon.svg', {       reason: LeaseNotReadyReason.NOT_HTML_DOCUMENT,
  • Network accessline 207
    const hint = leaseReaderFailedHint('http://localhost:3000/icon.svg', {
  • Network accessline 209
    cause: 'not html',     });     expect(hint).toContain('http://localhost:3000/icon.svg is not an HTML page');
  • Network accessline 210
    });     expect(hint).toContain('http://localhost:3000/icon.svg is not an HTML page');     expect(hint).toContain('The lease is released.');
  • Network accessline 211
    expect(hint).toContain('http://localhost:3000/icon.svg is not an HTML page');
  • Network accessline 215
    it('gives the cause of a reader that failed', () => {     const hint = leaseReaderFailedHint('http://localhost:3000/', {
  • Network accessline 216
    const hint = leaseReaderFailedHint('http://localhost:3000/', {
  • Network accessline 237
    ];   it.each(branches)('ends with the kept-lease sentence: %s', (_name, evidence) => {     const hint = leaseNotConnectedHint('http://localhost:5173/', 4400, evidence);
  • Network accessline 238
    it.each(branches)('ends with the kept-lease sentence: %s', (_name, evidence) => {     const hint = leaseNotConnectedHint('http://localhost:5173/', 4400, evidence);     expect(hint.endsWith(LEASE_KEPT_SENTENCE)).toBe(true);
  • Network accessline 239
    const hint = leaseNotConnectedHint('http://localhost:5173/', 4400, evidence);

server/src/surface/tools/lease-hint.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/lease-navigate.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 10
    it('carries the lease marker onto the destination, so the lease is not orphaned', () => {     const out = carryReticleIdentity(       `http://app.test/login?__reticle_session=${SESSION}`,
  • Network accessline 11
    const out = carryReticleIdentity(       `http://app.test/login?__reticle_session=${SESSION}`,       'http://app.test/issues?category=severe',
  • Network accessline 12
    `http://app.test/login?__reticle_session=${SESSION}`,
  • Network accessline 13
    'http://app.test/issues?category=severe',
  • Network accessline 20
    it('carries the project too, so a stamped tab stays attributed', () => {     const out = carryReticleIdentity(       `http://app.test/?__reticle_session=${SESSION}&__reticle_project=proj_1`,
  • Network accessline 21
    const out = carryReticleIdentity(       `http://app.test/?__reticle_session=${SESSION}&__reticle_project=proj_1`,       'http://app.test/settings',
  • Network accessline 22
    `http://app.test/?__reticle_session=${SESSION}&__reticle_project=proj_1`,
  • Network accessline 23
    'http://app.test/settings',
  • Network accessline 28
    it("leaves a human's own tab completely alone", () => {     const to = 'http://app.test/issues';
  • Network accessline 29
    const to = 'http://app.test/issues';
  • Network accessline 30
    expect(carryReticleIdentity('http://app.test/login', to)).toBe(to);
  • Network accessline 34
    it('does not double-stamp a destination that already claims an identity', () => {     const to = `http://app.test/x?__reticle_session=${SESSION}`;
  • Network accessline 35
    const to = `http://app.test/x?__reticle_session=${SESSION}`;
  • Network accessline 36
    expect(carryReticleIdentity(`http://app.test/?__reticle_session=other`, to)).toBe(to);
  • Network accessline 39
    it('survives a source URL that is not parseable at all', () => {     const to = 'http://app.test/issues';
  • Network accessline 40
    const to = 'http://app.test/issues';

server/src/surface/tools/lease-permissions.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    const APP = 'http://localhost:3000/settings';

server/src/surface/tools/lease-permissions.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/lease-production.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 23
    const SITE = 'https://app.example.com/overview';
  • Network accessline 81
    [Credential-related source omitted]
  • Network accessline 82
    [Credential-related source omitted]
  • Network accessline 83
    [Credential-related source omitted]
  • Network accessline 112
    })) as { production?: { scope: string } };     const opened = new URL(recorded.acquired[0] ?? '');     expect(opened.origin).toBe('https://app.example.com');
  • Network accessline 113
    const opened = new URL(recorded.acquired[0] ?? '');     expect(opened.origin).toBe('https://app.example.com');     expect(opened.searchParams.get(PRODUCTION_ACTIVATE_PARAM)).toBe('signed-ticket');
  • Network accessline 114
    expect(opened.origin).toBe('https://app.example.com');
  • Network accessline 115
    expect(opened.searchParams.get(PRODUCTION_ACTIVATE_PARAM)).toBe('signed-ticket');     expect(recorded.guard?.('POST', 'https://app.example.com/v1/invites')).toContain(       PRODUCTION_REFUSAL_PREFIX,
  • Network accessline 116
    expect(recorded.guard?.('POST', 'https://app.example.com/v1/invites')).toContain(
  • Network accessline 117
    PRODUCTION_REFUSAL_PREFIX,     );     expect(recorded.guard?.('GET', 'https://app.example.com/v1/runs')).toBeUndefined();
  • Network accessline 118
    );     expect(recorded.guard?.('GET', 'https://app.example.com/v1/runs')).toBeUndefined();     expect(result.production?.scope).toBe(HelloScope.ACT);
  • Network accessline 119
    expect(recorded.guard?.('GET', 'https://app.example.com/v1/runs')).toBeUndefined();
  • Network accessline 129
    [Credential-related source omitted]
  • Network accessline 130
    [Credential-related source omitted]
  • Network accessline 131
    [Credential-related source omitted]
  • Network accessline 136
    { headers: Record<string, string>; body: string },     ];     expect(call[0]).toBe(`https://api.host.example${PRODUCTION_TICKET_PATH}`);
  • Network accessline 137
    ];     expect(call[0]).toBe(`https://api.host.example${PRODUCTION_TICKET_PATH}`);     expect(call[1].headers['authorization']).toBe('Bearer rk_host');
  • Network accessline 138
    expect(call[0]).toBe(`https://api.host.example${PRODUCTION_TICKET_PATH}`);
  • Network accessline 139
    expect(call[1].headers['authorization']).toBe('Bearer rk_host');     expect(JSON.parse(call[1].body)).toMatchObject({       origin: 'https://app.example.com',
  • Network accessline 140
    expect(JSON.parse(call[1].body)).toMatchObject({       origin: 'https://app.example.com',       bridge: `ws://${LOOPBACK_HOST}:51234${RETICLE_WS_PATH}`,
  • Network accessline 141
    origin: 'https://app.example.com',

server/src/surface/tools/lease-readiness.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/lease-seed.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/lease-tools.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 186
    describe('appendReticleParams', () => {   it('adds the namespaced session (and project) params to a normal url', () => {     const out = appendReticleParams('http://localhost:3000/dash', 'lease-1', 'acme');
  • Network accessline 187
    it('adds the namespaced session (and project) params to a normal url', () => {     const out = appendReticleParams('http://localhost:3000/dash', 'lease-1', 'acme');     const u = new URL(out);
  • Network accessline 188
    const out = appendReticleParams('http://localhost:3000/dash', 'lease-1', 'acme');
  • Network accessline 195
    it('preserves existing query params', () => {     const out = appendReticleParams('http://localhost:3000/?tab=2', 'lease-9');
  • Network accessline 196
    const out = appendReticleParams('http://localhost:3000/?tab=2', 'lease-9');
  • Network accessline 205
    it('says on its address how the HUD starts, so it never paints one it was asked not to', () => {     const u = new URL(       appendReticleParams('http://localhost:3000/', 'lease-1', undefined, 'hidden'),
  • Network accessline 206
    const u = new URL(       appendReticleParams('http://localhost:3000/', 'lease-1', undefined, 'hidden'),     );
  • Network accessline 207
    appendReticleParams('http://localhost:3000/', 'lease-1', undefined, 'hidden'),
  • Network accessline 209
    expect(u.searchParams.get(RETICLE_URL_PARAM.HUD)).toBe('hidden');     expect(       new URL(appendReticleParams('http://localhost:3000/', 'l')).searchParams.has(
  • Network accessline 210
    expect(       new URL(appendReticleParams('http://localhost:3000/', 'l')).searchParams.has(         RETICLE_URL_PARAM.HUD,
  • Network accessline 211
    new URL(appendReticleParams('http://localhost:3000/', 'l')).searchParams.has(
  • Network accessline 219
    const headless = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool },       { url: 'http://localhost:3000/' },
  • Network accessline 220
    { ...baseDeps, pool },       { url: 'http://localhost:3000/' },     )) as { sessionId: string };
  • Network accessline 221
    { url: 'http://localhost:3000/' },
  • Network accessline 223
    const headed = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool },       { url: 'http://localhost:3000/', headed: true, hud: 'removed' },
  • Network accessline 224
    { ...baseDeps, pool },       { url: 'http://localhost:3000/', headed: true, hud: 'removed' },     )) as { sessionId: string; reused?: boolean };
  • Network accessline 225
    { url: 'http://localhost:3000/', headed: true, hud: 'removed' },
  • Network accessline 241
    await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool },       { url: 'http://localhost:3100/', root: '/work/shop/.reticle' },
  • Network accessline 242
    { ...baseDeps, pool },       { url: 'http://localhost:3100/', root: '/work/shop/.reticle' },     );
  • Network accessline 243
    { url: 'http://localhost:3100/', root: '/work/shop/.reticle' },
  • Network accessline 252
    describe('cleanNavError', () => {   it('extracts the net:: code from a noisy Playwright goto error (ANSI + call log stripped)', () => {     const raw = `page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5999/?__reticle_session=leas
  • Network accessline 253
    it('extracts the net:: code from a noisy Playwright goto error (ANSI + call log stripped)', () => {     const raw = `page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5999/?__reticle_session=lease-x\nCall log:\n\u001b[2m  - navigat
  • Network accessline 254
    const raw = `page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:5999/?__reticle_session=lease-x\nCall log:\n\u001b[2m  - navigating\u001b[22m`;
  • Network accessline 264
    it('falls back to a trimmed first line without the url tail', () => {     expect(cleanNavError(new Error('page.goto: something odd at http://x/y?z'))).toBe(
  • Network accessline 265
    expect(cleanNavError(new Error('page.goto: something odd at http://x/y?z'))).toBe(
  • Network accessline 273
    const pool = {       acquire: () =>         Promise.reject(new Error('page.goto: net::ERR_CONNECTION_REFUSED at http://x/')),
  • Network accessline 274
    acquire: () =>         Promise.reject(new Error('page.goto: net::ERR_CONNECTION_REFUSED at http://x/')),       leaseIdOnOrigin: () => undefined,
  • Network accessline 275
    Promise.reject(new Error('page.goto: net::ERR_CONNECTION_REFUSED at http://x/')),
  • Network accessline 279
    } as unknown as BrowserPool;     await expect(       tool(ReticleTool.LEASE_ACQUIRE)({ ...baseDeps, pool }, { url: 'http://localhost:3000/' }),
  • Network accessline 280
    await expect(       tool(ReticleTool.LEASE_ACQUIRE)({ ...baseDeps, pool }, { url: 'http://localhost:3000/' }),     ).rejects.toThrow(
  • Network accessline 281
    tool(ReticleTool.LEASE_ACQUIRE)({ ...baseDeps, pool }, { url: 'http://localhost:3000/' }),
  • Network accessline 293
    Promise.reject(           new Error(             'page.goto: Timeout 30000ms exceeded.\nCall log:\n  - navigating to "http://localhost:3000/", waiting until "load"',
  • Network accessline 294
    new Error(             'page.goto: Timeout 30000ms exceeded.\nCall log:\n  - navigating to "http://localhost:3000/", waiting until "load"',           ),
  • Network accessline 295
    'page.goto: Timeout 30000ms exceeded.\nCall log:\n  - navigating to "http://localhost:3000/", waiting until "load"',
  • Network accessline 302
    const acquire = tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool },       { url: 'http://localhost:3000/' },
  • Network accessline 303
    { ...baseDeps, pool },       { url: 'http://localhost:3000/' },     );
  • Network accessline 304
    { url: 'http://localhost:3000/' },
  • Network accessline 327
    const acquire = tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool: timedOutPool, portAccepts },       { url: 'http://localhost:3000/' },
  • Network accessline 328
    { ...baseDeps, pool: timedOutPool, portAccepts },       { url: 'http://localhost:3000/' },     );
  • Network accessline 329
    { url: 'http://localhost:3000/' },
  • Network accessline 339
    const acquire = tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool: timedOutPool, portAccepts: () => Promise.resolve(false) },       { url: 'http://localhost:3000/' },
  • Network accessline 340
    { ...baseDeps, pool: timedOutPool, portAccepts: () => Promise.resolve(false) },       { url: 'http://localhost:3000/' },     );
  • Network accessline 341
    { url: 'http://localhost:3000/' },
  • Network accessline 358
    const asked: number[] = [];     expect(       await serverAcceptedAfterTimeout('http://127.0.0.1:5173/a', timeout, undefined, yes(asked)),
  • Network accessline 359
    expect(       await serverAcceptedAfterTimeout('http://127.0.0.1:5173/a', timeout, undefined, yes(asked)),     ).toBe(true);
  • Network accessline 360
    await serverAcceptedAfterTimeout('http://127.0.0.1:5173/a', timeout, undefined, yes(asked)),
  • Network accessline 361
    ).toBe(true);     expect(       await serverAcceptedAfterTimeout('https://localhost/', timeout, undefined, yes(asked)),
  • Network accessline 362
    expect(       await serverAcceptedAfterTimeout('https://localhost/', timeout, undefined, yes(asked)),     ).toBe(true);
  • Network accessline 363
    await serverAcceptedAfterTimeout('https://localhost/', timeout, undefined, yes(asked)),
  • Network accessline 368
    it('does not probe a remote host, a non-timeout failure, or without a probe', async () => {     const asked: number[] = [];     const refused = new Error('page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:3000/');
  • Network accessline 369
    const asked: number[] = [];     const refused = new Error('page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:3000/');     expect(
  • Network accessline 370
    const refused = new Error('page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:3000/');
  • Network accessline 371
    expect(       await serverAcceptedAfterTimeout('https://app.example.com/', timeout, undefined, yes(asked)),     ).toBe(false);
  • Network accessline 372
    await serverAcceptedAfterTimeout('https://app.example.com/', timeout, undefined, yes(asked)),
  • Network accessline 373
    ).toBe(false);     expect(       await serverAcceptedAfterTimeout('http://localhost:3000/', refused, undefined, yes(asked)),
  • Network accessline 374
    expect(       await serverAcceptedAfterTimeout('http://localhost:3000/', refused, undefined, yes(asked)),     ).toBe(false);
  • Network accessline 375
    await serverAcceptedAfterTimeout('http://localhost:3000/', refused, undefined, yes(asked)),
  • Network accessline 376
    ).toBe(false);     expect(       await serverAcceptedAfterTimeout('http://localhost:3000/', timeout, undefined, undefined),
  • Network accessline 377
    expect(       await serverAcceptedAfterTimeout('http://localhost:3000/', timeout, undefined, undefined),     ).toBe(false);
  • Network accessline 378
    await serverAcceptedAfterTimeout('http://localhost:3000/', timeout, undefined, undefined),
  • Network accessline 384
    const failing = (): Promise<boolean> => Promise.reject(new Error('EPERM'));     expect(       await serverAcceptedAfterTimeout('http://localhost:3000/', timeout, undefined, failing),
  • Network accessline 385
    expect(       await serverAcceptedAfterTimeout('http://localhost:3000/', timeout, undefined, failing),     ).toBe(false);
  • Network accessline 386
    await serverAcceptedAfterTimeout('http://localhost:3000/', timeout, undefined, failing),
  • Network accessline 402
    } as unknown as BrowserPool;     await expect(       tool(ReticleTool.LEASE_ACQUIRE)({ ...baseDeps, pool }, { url: 'http://localhost:3000/' }),
  • Network accessline 403
    await expect(       tool(ReticleTool.LEASE_ACQUIRE)({ ...baseDeps, pool }, { url: 'http://localhost:3000/' }),     ).rejects.toThrow(
  • Network accessline 404
    tool(ReticleTool.LEASE_ACQUIRE)({ ...baseDeps, pool }, { url: 'http://localhost:3000/' }),
  • Network accessline 416
    tool(ReticleTool.LEASE_ACQUIRE)(         { ...baseDeps, pool, browserProbe: () => Promise.resolve({ exists: false }) },         { url: 'http://localhost:3000/' },
  • Network accessline 417
    { ...baseDeps, pool, browserProbe: () => Promise.resolve({ exists: false }) },         { url: 'http://localhost:3000/' },       ),
  • Network accessline 418
    { url: 'http://localhost:3000/' },
  • Network accessline 435
    Promise.resolve({ exists: false, executablePath: '/opt/nope/chrome', configured: true }),       },       { url: 'http://localhost:3000/' },
  • Network accessline 436
    },       { url: 'http://localhost:3000/' },     );
  • Network accessline 437
    { url: 'http://localhost:3000/' },
  • Network accessline 446
    const result = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool, browserProbe: () => Promise.resolve({ exists: true }) },       { url: 'http://localhost:3000/' },
  • Network accessline 447
    { ...baseDeps, pool, browserProbe: () => Promise.resolve({ exists: true }) },       { url: 'http://localhost:3000/' },     )) as { sessionId: string };
  • Network accessline 448
    { url: 'http://localhost:3000/' },
  • Network accessline 454
    it('skips the preflight entirely when no probe is wired (unchanged default)', async () => {     const { pool, acquired } = fakePool();     await tool(ReticleTool.LEASE_ACQUIRE)({ ...baseDeps, pool }, { url: 'http://localhost:3000/' });
  • Network accessline 455
    const { pool, acquired } = fakePool();     await tool(ReticleTool.LEASE_ACQUIRE)({ ...baseDeps, pool }, { url: 'http://localhost:3000/' });     expect(acquired).toHaveLength(1);
  • Network accessline 456
    await tool(ReticleTool.LEASE_ACQUIRE)({ ...baseDeps, pool }, { url: 'http://localhost:3000/' });
  • Network accessline 585
    const result = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool, sessions } as unknown as ToolDeps,       { url: 'http://localhost:3000/' },
  • Network accessline 586
    { ...baseDeps, pool, sessions } as unknown as ToolDeps,       { url: 'http://localhost:3000/' },     )) as { ready: boolean; notReadyReason?: string };
  • Network accessline 587
    { url: 'http://localhost:3000/' },
  • Network accessline 598
    const result = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool, sessions } as unknown as ToolDeps,       { url: 'http://localhost:3000/', timeout_ms: 3_000 },
  • Network accessline 599
    { ...baseDeps, pool, sessions } as unknown as ToolDeps,       { url: 'http://localhost:3000/', timeout_ms: 3_000 },     )) as { ready: boolean; notReadyReason?: string };
  • Network accessline 600
    { url: 'http://localhost:3000/', timeout_ms: 3_000 },
  • Network accessline 609
    const result = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool, sessions } as unknown as ToolDeps,       { url: 'http://localhost:3000/' },
  • Network accessline 610
    { ...baseDeps, pool, sessions } as unknown as ToolDeps,       { url: 'http://localhost:3000/' },     )) as { ready: boolean };
  • Network accessline 611
    { url: 'http://localhost:3000/' },
  • Network accessline 620
    const result = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool, sessions } as unknown as ToolDeps,       { url: 'http://localhost:3000/', timeout_ms: 0 },
  • Network accessline 621
    { ...baseDeps, pool, sessions } as unknown as ToolDeps,       { url: 'http://localhost:3000/', timeout_ms: 0 },     )) as { ready: boolean; notReadyReason?: string };
  • Network accessline 622
    { url: 'http://localhost:3000/', timeout_ms: 0 },
  • Network accessline 639
    { ...baseDeps, pool },       {         url: 'http://localhost:3000/dashboard',
  • Network accessline 640
    {         url: 'http://localhost:3000/dashboard',         projectId: 'acme',
  • Network accessline 641
    url: 'http://localhost:3000/dashboard',
  • Network accessline 646
    expect(result.sessionId).toMatch(/^lease-/);     expect(result.url).toBe('http://localhost:3000/dashboard'); // clean url returned to the agent
  • Network accessline 647
    expect(result.url).toBe('http://localhost:3000/dashboard'); // clean url returned to the agent
  • Network accessline 660
    const first = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool },       { url: 'http://localhost:3000/login' },
  • Network accessline 661
    { ...baseDeps, pool },       { url: 'http://localhost:3000/login' },     )) as { sessionId: string };
  • Network accessline 662
    { url: 'http://localhost:3000/login' },
  • Network accessline 664
    const other = { ...baseDeps, pool, attachId: 'agent-2' } as ToolDeps;     const second = (await tool(ReticleTool.LEASE_ACQUIRE)(other, {       url: 'http://localhost:3000/login',
  • Network accessline 665
    const second = (await tool(ReticleTool.LEASE_ACQUIRE)(other, {       url: 'http://localhost:3000/login',     })) as { sessionId: string; reused?: boolean };
  • Network accessline 666
    url: 'http://localhost:3000/login',
  • Network accessline 668
    [Credential-related source omitted]
  • Network accessline 669
    [Credential-related source omitted]
  • Network accessline 670
    [Credential-related source omitted]
  • Network accessline 686
    const first = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool },       { url: 'http://localhost:3000/dashboard' },
  • Network accessline 687
    { ...baseDeps, pool },       { url: 'http://localhost:3000/dashboard' },     )) as { sessionId: string };
  • Network accessline 688
    { url: 'http://localhost:3000/dashboard' },
  • Network accessline 690
    const second = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool },       { url: 'http://localhost:3000/settings', fresh: true },
  • Network accessline 691
    { ...baseDeps, pool },       { url: 'http://localhost:3000/settings', fresh: true },     )) as { sessionId: string; reused?: boolean };
  • Network accessline 692
    { url: 'http://localhost:3000/settings', fresh: true },
  • Network accessline 703
    await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool },       { url: 'http://localhost:3000/a' },
  • Network accessline 704
    { ...baseDeps, pool },       { url: 'http://localhost:3000/a' },     );
  • Network accessline 705
    { url: 'http://localhost:3000/a' },
  • Network accessline 707
    const again = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool },       { url: 'http://localhost:3000/b' },
  • Network accessline 708
    { ...baseDeps, pool },       { url: 'http://localhost:3000/b' },     )) as { hint?: string };
  • Network accessline 709
    { url: 'http://localhost:3000/b' },
  • Network accessline 718
    const first = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool },       { url: 'http://localhost:3000/dashboard' },
  • Network accessline 719
    { ...baseDeps, pool },       { url: 'http://localhost:3000/dashboard' },     )) as { sessionId: string; reused?: boolean };
  • Network accessline 720
    { url: 'http://localhost:3000/dashboard' },
  • Network accessline 722
    const second = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool },       { url: 'http://localhost:3000/settings' },
  • Network accessline 723
    { ...baseDeps, pool },       { url: 'http://localhost:3000/settings' },     )) as { sessionId: string; reused?: boolean; hint?: string; leased: number };
  • Network accessline 724
    { url: 'http://localhost:3000/settings' },
  • Network accessline 741
    const { pool } = fakePool();     const gotos: string[] = [];     const tab = { id: 'live', url: 'http://localhost:3000/a' };
  • Network accessline 742
    const gotos: string[] = [];     const tab = { id: 'live', url: 'http://localhost:3000/a' };     (pool as unknown as { gotoLease: (id: string, target: string) => Promise<boolean> }).gotoLease =
  • Network accessline 743
    const tab = { id: 'live', url: 'http://localhost:3000/a' };
  • Network accessline 763
    it('moves a reused lease to the requested page when its tab is on another one', async () => {     const { deps, tab, gotos } = reuseOnAnotherPage(() => Promise.resolve(true));     await tool(ReticleTool.LEASE_ACQUIRE)(deps, { url: 'http://l
  • Network accessline 764
    const { deps, tab, gotos } = reuseOnAnotherPage(() => Promise.resolve(true));     await tool(ReticleTool.LEASE_ACQUIRE)(deps, { url: 'http://localhost:3000/a' });     tab.url = 'http://localhost:3000/b';
  • Network accessline 765
    await tool(ReticleTool.LEASE_ACQUIRE)(deps, { url: 'http://localhost:3000/a' });
  • Network accessline 766
    tab.url = 'http://localhost:3000/b';
  • Network accessline 767
    const again = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/c',     })) as { url: string; reused?: boolean; ready: boolean; navigated?: boolean };
  • Network accessline 768
    url: 'http://localhost:3000/c',
  • Network accessline 777
    it('leaves a reused lease in place when its tab is already on the requested page', async () => {     const { deps, tab, gotos } = reuseOnAnotherPage(() => Promise.resolve(true));     await tool(ReticleTool.LEASE_ACQUIRE)(deps, { url: 'http:
  • Network accessline 778
    const { deps, tab, gotos } = reuseOnAnotherPage(() => Promise.resolve(true));     await tool(ReticleTool.LEASE_ACQUIRE)(deps, { url: 'http://localhost:3000/c' });     tab.url = `http://localhost:3000/c?${RETICLE_URL_PARAM.SESSION}=gen`;
  • Network accessline 779
    await tool(ReticleTool.LEASE_ACQUIRE)(deps, { url: 'http://localhost:3000/c' });
  • Network accessline 780
    tab.url = `http://localhost:3000/c?${RETICLE_URL_PARAM.SESSION}=gen`;
  • Network accessline 781
    const again = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/c',     })) as { reused?: boolean; navigated?: boolean };
  • Network accessline 782
    url: 'http://localhost:3000/c',
  • Network accessline 790
    it('says a moved lease is not ready when its SDK does not come back on the new page', async () => {     const { deps, tab } = reuseOnAnotherPage(() => Promise.resolve(true));     await tool(ReticleTool.LEASE_ACQUIRE)(deps, { url: 'http://lo
  • Network accessline 791
    const { deps, tab } = reuseOnAnotherPage(() => Promise.resolve(true));     await tool(ReticleTool.LEASE_ACQUIRE)(deps, { url: 'http://localhost:3000/a' });     tab.url = 'http://localhost:3000/b';
  • Network accessline 792
    await tool(ReticleTool.LEASE_ACQUIRE)(deps, { url: 'http://localhost:3000/a' });
  • Network accessline 793
    tab.url = 'http://localhost:3000/b';
  • Network accessline 803
    } as unknown as ToolDeps;     const again = (await tool(ReticleTool.LEASE_ACQUIRE)(silent, {       url: 'http://localhost:3000/c',
  • Network accessline 804
    const again = (await tool(ReticleTool.LEASE_ACQUIRE)(silent, {       url: 'http://localhost:3000/c',     })) as { ready: boolean; notReadyReason?: string; navigated?: boolean };
  • Network accessline 805
    url: 'http://localhost:3000/c',
  • Network accessline 815
    it('answers with the page a reused lease is on when it cannot be moved', async () => {     const { deps, tab, gotos } = reuseOnAnotherPage(() => Promise.resolve(false));     await tool(ReticleTool.LEASE_ACQUIRE)(deps, { url: 'http://localho
  • Network accessline 816
    const { deps, tab, gotos } = reuseOnAnotherPage(() => Promise.resolve(false));     await tool(ReticleTool.LEASE_ACQUIRE)(deps, { url: 'http://localhost:3000/a' });     tab.url = 'http://localhost:3000/b';
  • Network accessline 817
    await tool(ReticleTool.LEASE_ACQUIRE)(deps, { url: 'http://localhost:3000/a' });
  • Network accessline 818
    tab.url = 'http://localhost:3000/b';
  • Network accessline 819
    const again = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/c',     })) as { url: string; reused?: boolean; navigated?: boolean };
  • Network accessline 820
    url: 'http://localhost:3000/c',
  • Network accessline 823
    expect(gotos).toHaveLength(1);     expect(again).toMatchObject({ reused: true, navigated: false, url: 'http://localhost:3000/b' });
  • Network accessline 824
    expect(again).toMatchObject({ reused: true, navigated: false, url: 'http://localhost:3000/b' });
  • Network accessline 834
    tool(ReticleTool.LEASE_ACQUIRE)(         { ...baseDeps, pool },         { url: 'https://localhost:5173/', ...args },
  • Network accessline 835
    { ...baseDeps, pool },         { url: 'https://localhost:5173/', ...args },       ) as Promise<{ sessionId: string; reused?: boolean }>;
  • Network accessline 836
    { url: 'https://localhost:5173/', ...args },
  • Network accessline 854
    const first = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool },       { url: 'http://localhost:3000/' },
  • Network accessline 855
    { ...baseDeps, pool },       { url: 'http://localhost:3000/' },     )) as { sessionId: string };
  • Network accessline 856
    { url: 'http://localhost:3000/' },
  • Network accessline 858
    const second = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool },       { url: 'http://localhost:3001/' },
  • Network accessline 859
    { ...baseDeps, pool },       { url: 'http://localhost:3001/' },     )) as { sessionId: string; reused?: boolean };
  • Network accessline 860
    { url: 'http://localhost:3001/' },
  • Network accessline 871
    const first = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool },       { url: 'http://localhost:3000/' },
  • Network accessline 872
    { ...baseDeps, pool },       { url: 'http://localhost:3000/' },     )) as { sessionId: string };
  • Network accessline 873
    { url: 'http://localhost:3000/' },
  • Network accessline 882
    const second = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool, sessions } as unknown as ToolDeps,       { url: 'http://localhost:3000/' },
  • Network accessline 883
    { ...baseDeps, pool, sessions } as unknown as ToolDeps,       { url: 'http://localhost:3000/' },     )) as { sessionId: string; reused?: boolean };
  • Network accessline 884
    { url: 'http://localhost:3000/' },
  • Network accessline 904
    const first = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool },       { url: 'http://localhost:3000/' },
  • Network accessline 905
    { ...baseDeps, pool },       { url: 'http://localhost:3000/' },     )) as { sessionId: string };
  • Network accessline 906
    { url: 'http://localhost:3000/' },
  • Network accessline 908
    const appNamed = {       id: 'my-app',       url: `http://localhost:3000/?${RETICLE_URL_PARAM.SESSION}=${first.sessionId}`,
  • Network accessline 909
    id: 'my-app',       url: `http://localhost:3000/?${RETICLE_URL_PARAM.SESSION}=${first.sessionId}`,     };
  • Network accessline 910
    url: `http://localhost:3000/?${RETICLE_URL_PARAM.SESSION}=${first.sessionId}`,
  • Network accessline 917
    const second = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool, sessions } as unknown as ToolDeps,       { url: 'http://localhost:3000/checkout' },
  • Network accessline 918
    { ...baseDeps, pool, sessions } as unknown as ToolDeps,       { url: 'http://localhost:3000/checkout' },     )) as { sessionId: string; reused?: boolean; leased: number };
  • Network accessline 919
    { url: 'http://localhost:3000/checkout' },
  • Network accessline 936
    const first = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool },       { url: 'http://localhost:3000/' },
  • Network accessline 937
    { ...baseDeps, pool },       { url: 'http://localhost:3000/' },     )) as { sessionId: string };
  • Network accessline 938
    { url: 'http://localhost:3000/' },
  • Network accessline 940
    const appNamed = {       id: 'my-app',       url: `http://localhost:3000/?${RETICLE_URL_PARAM.SESSION}=${first.sessionId}`,
  • Network accessline 941
    id: 'my-app',       url: `http://localhost:3000/?${RETICLE_URL_PARAM.SESSION}=${first.sessionId}`,     };
  • Network accessline 942
    url: `http://localhost:3000/?${RETICLE_URL_PARAM.SESSION}=${first.sessionId}`,
  • Network accessline 949
    await tool(ReticleTool.LEASE_ACQUIRE)({ ...baseDeps, pool, sessions } as unknown as ToolDeps, {       url: 'http://localhost:3000/',
  • Network accessline 950
    url: 'http://localhost:3000/',
  • Network accessline 997
    const first = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool },       { url: 'http://localhost:3000/' },
  • Network accessline 998
    { ...baseDeps, pool },       { url: 'http://localhost:3000/' },     )) as { sessionId: string };
  • Network accessline 999
    { url: 'http://localhost:3000/' },
  • Network accessline 1003
    const second = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool, sessions } as unknown as ToolDeps,       { url: 'http://localhost:3000/' },
  • Network accessline 1004
    { ...baseDeps, pool, sessions } as unknown as ToolDeps,       { url: 'http://localhost:3000/' },     )) as { sessionId: string; ready: boolean; reused?: boolean; notReadyReason?: string };
  • Network accessline 1005
    { url: 'http://localhost:3000/' },
  • Network accessline 1020
    const first = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool },       { url: 'http://localhost:3000/' },
  • Network accessline 1021
    { ...baseDeps, pool },       { url: 'http://localhost:3000/' },     )) as { sessionId: string };
  • Network accessline 1022
    { url: 'http://localhost:3000/' },
  • Network accessline 1026
    const second = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool, sessions } as unknown as ToolDeps,       { url: 'http://localhost:3000/' },
  • Network accessline 1027
    { ...baseDeps, pool, sessions } as unknown as ToolDeps,       { url: 'http://localhost:3000/' },     )) as { ready: boolean; reused?: boolean; notReadyReason?: string };
  • Network accessline 1028
    { url: 'http://localhost:3000/' },
  • Network accessline 1042
    await tool(ReticleTool.LEASE_ACQUIRE)({ ...baseDeps, pool, sessions } as unknown as ToolDeps, {       url: 'http://localhost:3000/',
  • Network accessline 1043
    url: 'http://localhost:3000/',
  • Network accessline 1057
    const result = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool, sessions } as unknown as ToolDeps,       { url: 'http://localhost:3000/' },
  • Network accessline 1058
    { ...baseDeps, pool, sessions } as unknown as ToolDeps,       { url: 'http://localhost:3000/' },     )) as { ready: boolean; notReadyReason?: string };
  • Network accessline 1059
    { url: 'http://localhost:3000/' },
  • Network accessline 1078
    const result = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool, sessions } as unknown as ToolDeps,       { url: 'http://localhost:3000/' },
  • Network accessline 1079
    { ...baseDeps, pool, sessions } as unknown as ToolDeps,       { url: 'http://localhost:3000/' },     )) as { ready: boolean; notReadyReason?: string };
  • Network accessline 1080
    { url: 'http://localhost:3000/' },
  • Network accessline 1089
    const first = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool },       { url: 'http://localhost:3000/' },
  • Network accessline 1090
    { ...baseDeps, pool },       { url: 'http://localhost:3000/' },     )) as { sessionId: string };
  • Network accessline 1091
    { url: 'http://localhost:3000/' },
  • Network accessline 1102
    const second = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool, sessions } as unknown as ToolDeps,       { url: 'http://localhost:3000/' },
  • Network accessline 1103
    { ...baseDeps, pool, sessions } as unknown as ToolDeps,       { url: 'http://localhost:3000/' },     )) as { ready: boolean; reused?: boolean; notReadyReason?: string };
  • Network accessline 1104
    { url: 'http://localhost:3000/' },
  • Network accessline 1116
    const { pool, acquired } = fakePool();     await tool(ReticleTool.LEASE_ACQUIRE)({ ...baseDeps, pool }, { url: 'http://localhost:3000/' });
  • Network accessline 1117
    await tool(ReticleTool.LEASE_ACQUIRE)({ ...baseDeps, pool }, { url: 'http://localhost:3000/' });
  • Network accessline 1119
    const second = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool },       { url: 'http://localhost:3000/' },
  • Network accessline 1120
    { ...baseDeps, pool },       { url: 'http://localhost:3000/' },     )) as { ready: boolean; reused?: boolean; notReadyReason?: string };
  • Network accessline 1121
    { url: 'http://localhost:3000/' },
  • Network accessline 1132
    const result = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool },       { url: 'http://localhost:3000/' },
  • Network accessline 1133
    { ...baseDeps, pool },       { url: 'http://localhost:3000/' },     )) as { expiresInMs: number };
  • Network accessline 1134
    { url: 'http://localhost:3000/' },
  • Network accessline 1146
    const result = (await tool(ReticleTool.LEASE_ACQUIRE)(       { sessions, pool, now: () => Date.now() } as unknown as ToolDeps,       { url: 'http://localhost:3000/' },
  • Network accessline 1147
    { sessions, pool, now: () => Date.now() } as unknown as ToolDeps,       { url: 'http://localhost:3000/' },     )) as { ready: boolean; versionSkew?: string };
  • Network accessline 1148
    { url: 'http://localhost:3000/' },
  • Network accessline 1154
    it('throws a clear error when no pool is available', async () => {     await expect(       tool(ReticleTool.LEASE_ACQUIRE)(baseDeps, { url: 'http://localhost:3000/' }),
  • Network accessline 1155
    await expect(       tool(ReticleTool.LEASE_ACQUIRE)(baseDeps, { url: 'http://localhost:3000/' }),     ).rejects.toThrow(/pool unavailable/i);
  • Network accessline 1156
    tool(ReticleTool.LEASE_ACQUIRE)(baseDeps, { url: 'http://localhost:3000/' }),
  • Network accessline 1173
    const { pool, acquired } = fakePool();     const result = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool, projectAppUrl: () => Promise.resolve('http://localhost:5173') },
  • Network accessline 1174
    const result = (await tool(ReticleTool.LEASE_ACQUIRE)(       { ...baseDeps, pool, projectAppUrl: () => Promise.resolve('http://localhost:5173') },       {},
  • Network accessline 1175
    { ...baseDeps, pool, projectAppUrl: () => Promise.resolve('http://localhost:5173') },
  • Network accessline 1177
    )) as { sessionId: string };     expect(result.sessionId).toBeDefined();     expect(acquired.map((a) => new URL(a.url).origin)).toEqual(['http://localhost:5173']);
  • Network accessline 1178
    expect(result.sessionId).toBeDefined();     expect(acquired.map((a) => new URL(a.url).origin)).toEqual(['http://localhost:5173']);   });
  • Network accessline 1179
    expect(acquired.map((a) => new URL(a.url).origin)).toEqual(['http://localhost:5173']);
  • Network accessline 1184
    it('releases by sessionId and reports the new leased count', async () => {     const { pool } = fakePool();     await tool(ReticleTool.LEASE_ACQUIRE)({ ...baseDeps, pool }, { url: 'http://localhost:3000/' });
  • Network accessline 1185
    const { pool } = fakePool();     await tool(ReticleTool.LEASE_ACQUIRE)({ ...baseDeps, pool }, { url: 'http://localhost:3000/' });     const acq = (await tool(ReticleTool.LEASE_ACQUIRE)(
  • Network accessline 1186
    await tool(ReticleTool.LEASE_ACQUIRE)({ ...baseDeps, pool }, { url: 'http://localhost:3000/' });
  • Network accessline 1188
    { ...baseDeps, pool },       {         url: 'http://localhost:3001/',
  • Network accessline 1189
    {         url: 'http://localhost:3001/',       },
  • Network accessline 1190
    url: 'http://localhost:3001/',
  • Network accessline 1206
    it('refuses an id that holds no lease, instead of answering released: true', async () => {     const { pool, released } = fakePool();     await tool(ReticleTool.LEASE_ACQUIRE)({ ...baseDeps, pool }, { url: 'http://localhost:3000/' });
  • Network accessline 1207
    const { pool, released } = fakePool();     await tool(ReticleTool.LEASE_ACQUIRE)({ ...baseDeps, pool }, { url: 'http://localhost:3000/' });     await expect(
  • Network accessline 1208
    await tool(ReticleTool.LEASE_ACQUIRE)({ ...baseDeps, pool }, { url: 'http://localhost:3000/' });
  • Network accessline 1257
    ...pool,         leasedSessionIds: () => leasedIds,         leaseUrl: (id: string) => (leasedIds.includes(id) ? 'http://localhost:3000/' : undefined),
  • Network accessline 1258
    leasedSessionIds: () => leasedIds,         leaseUrl: (id: string) => (leasedIds.includes(id) ? 'http://localhost:3000/' : undefined),       },
  • Network accessline 1259
    leaseUrl: (id: string) => (leasedIds.includes(id) ? 'http://localhost:3000/' : undefined),
  • Network accessline 1266
    const { deps, narrations } = depsWithWatcher(['lease-1']);     await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/',
  • Network accessline 1267
    await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/',       projectId: 'acme',
  • Network accessline 1268
    url: 'http://localhost:3000/',
  • Network accessline 1296
    } as unknown as ToolDeps;     const out = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/',
  • Network accessline 1297
    const out = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/',     })) as Record<string, unknown>;
  • Network accessline 1298
    url: 'http://localhost:3000/',
  • Network accessline 1314
    url: 'http://localhost:3000/',
  • Network accessline 1324
    const out = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/',
  • Network accessline 1325
    url: 'http://localhost:3000/',
  • Network accessline 1342
    const out = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/',
  • Network accessline 1343
    url: 'http://localhost:3000/',
  • Network accessline 1352
    // every other test here does, which is why this was green while the tool was naming the wrong     // app. Without it the watcher filter admits EVERY non-leased session and `[0]` is whatever the     // map yields first. Measured against a r
  • Network accessline 1353
    // app. Without it the watcher filter admits EVERY non-leased session and `[0]` is whatever the     // map yields first. Measured against a real daemon: leasing http://localhost:4312/ answered     // `preferExisting` with a Phanpy tab on :5
  • Network accessline 1354
    // map yields first. Measured against a real daemon: leasing http://localhost:4312/ answered
  • Network accessline 1359
    id: 's-other-app',       projectId: 'phanpy',       url: 'http://localhost:5173/',
  • Network accessline 1360
    projectId: 'phanpy',       url: 'http://localhost:5173/',       pushNarration: () => undefined,
  • Network accessline 1361
    url: 'http://localhost:5173/',
  • Network accessline 1371
    const out = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:4312/',
  • Network accessline 1372
    url: 'http://localhost:4312/',
  • Network accessline 1382
    id: 's-same-app',       projectId: 'bench',       url: 'http://localhost:4312/checkout',
  • Network accessline 1383
    projectId: 'bench',       url: 'http://localhost:4312/checkout',       pushNarration: () => undefined,
  • Network accessline 1384
    url: 'http://localhost:4312/checkout',
  • Network accessline 1394
    const out = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:4312/',
  • Network accessline 1395
    url: 'http://localhost:4312/',
  • Network accessline 1408
    id: 's-frozen',       projectId: 'bench',       url: 'http://localhost:4312/',
  • Network accessline 1409
    projectId: 'bench',       url: 'http://localhost:4312/',       lastSeenMs: () => SESSION_HEALTH.STALE_THRESHOLD_MS + 1,
  • Network accessline 1410
    url: 'http://localhost:4312/',
  • Network accessline 1421
    const out = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:4312/',
  • Network accessline 1422
    url: 'http://localhost:4312/',
  • Network accessline 1438
    const out = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/',
  • Network accessline 1439
    url: 'http://localhost:3000/',
  • Network accessline 1443
    expect(out['sessionId']).toBeDefined();     expect(out['url']).toBe('http://localhost:3000/');
  • Network accessline 1444
    expect(out['url']).toBe('http://localhost:3000/');
  • Network accessline 1471
    const out = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/books',
  • Network accessline 1472
    url: 'http://localhost:3000/books',
  • Network accessline 1485
    await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/',
  • Network accessline 1486
    url: 'http://localhost:3000/',
  • Network accessline 1501
    await expect(       tool(ReticleTool.LEASE_ACQUIRE)(deps, {         url: 'http://localhost:3000/',
  • Network accessline 1502
    tool(ReticleTool.LEASE_ACQUIRE)(deps, {         url: 'http://localhost:3000/',         emulate: { colorScheme: 'sepia' },
  • Network accessline 1503
    url: 'http://localhost:3000/',
  • Network accessline 1514
    const out = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/',
  • Network accessline 1515
    url: 'http://localhost:3000/',
  • Network accessline 1526
    const first = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/',
  • Network accessline 1527
    url: 'http://localhost:3000/',
  • Network accessline 1528
    })) as { sessionId: string };     const second = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/books',
  • Network accessline 1529
    const second = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/books',       initScript: STUB,
  • Network accessline 1530
    url: 'http://localhost:3000/books',
  • Network accessline 1545
    const first = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/',
  • Network accessline 1546
    url: 'http://localhost:3000/',
  • Network accessline 1548
    })) as { sessionId: string };     const second = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/books',
  • Network accessline 1549
    const second = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/books',       initScript: STUB,
  • Network accessline 1550
    url: 'http://localhost:3000/books',
  • Network accessline 1566
    const first = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/',
  • Network accessline 1567
    url: 'http://localhost:3000/',
  • Network accessline 1569
    })) as { sessionId: string };     const second = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/books',
  • Network accessline 1570
    const second = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/books',       initScript: otherStub,
  • Network accessline 1571
    url: 'http://localhost:3000/books',
  • Network accessline 1589
    const first = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/',
  • Network accessline 1590
    url: 'http://localhost:3000/',
  • Network accessline 1592
    })) as { sessionId: string };     const second = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/books',
  • Network accessline 1593
    const second = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/books',     })) as { sessionId: string; reused?: boolean; hostStub?: string };
  • Network accessline 1594
    url: 'http://localhost:3000/books',
  • Network accessline 1616
    const first = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'https://nextjs.org/',
  • Network accessline 1617
    url: 'https://nextjs.org/',
  • Network accessline 1618
    })) as { cspWidenedFor?: string };     const second = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'https://nextjs.org/docs',
  • Network accessline 1619
    const second = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'https://nextjs.org/docs',     })) as { cspWidenedFor?: string; reused?: boolean };
  • Network accessline 1620
    url: 'https://nextjs.org/docs',
  • Network accessline 1631
    const out = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'https://example.com/',
  • Network accessline 1632
    url: 'https://example.com/',
  • Access to secretsline 1660
    [Credential-related source omitted]
  • Network accessline 1665
    const out = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/app',
  • Network accessline 1666
    url: 'http://localhost:3000/app',
  • Network accessline 1687
    await expect(       tool(ReticleTool.LEASE_ACQUIRE)(deps, {         url: 'http://localhost:3000/',
  • Network accessline 1688
    tool(ReticleTool.LEASE_ACQUIRE)(deps, {         url: 'http://localhost:3000/',         seedStorage: { local: 12345 as unknown as Record<string, string> },
  • Network accessline 1689
    url: 'http://localhost:3000/',
  • Network accessline 1701
    try {       await tool(ReticleTool.LEASE_ACQUIRE)(deps, {         url: 'http://localhost:3000/',
  • Network accessline 1702
    await tool(ReticleTool.LEASE_ACQUIRE)(deps, {         url: 'http://localhost:3000/',         seedStorage: { localStorage: { a: '1' } },
  • Network accessline 1703
    url: 'http://localhost:3000/',
  • Network accessline 1721
    try {       await tool(ReticleTool.LEASE_ACQUIRE)(deps, {         url: 'http://localhost:3000/',
  • Network accessline 1722
    await tool(ReticleTool.LEASE_ACQUIRE)(deps, {         url: 'http://localhost:3000/',         seedStorage: { origins: [] },
  • Network accessline 1723
    url: 'http://localhost:3000/',
  • Network accessline 1743
    const first = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/',
  • Network accessline 1744
    url: 'http://localhost:3000/',
  • Network accessline 1749
    const second = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/',
  • Network accessline 1750
    url: 'http://localhost:3000/',
  • Network accessline 1766
    pool,       sessions,       'http://localhost:3000/test',
  • Network accessline 1767
    sessions,       'http://localhost:3000/test',       undefined,
  • Network accessline 1768
    'http://localhost:3000/test',
  • Network accessline 1781
    const first = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/',
  • Network accessline 1782
    url: 'http://localhost:3000/',
  • Network accessline 1786
    const second = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {       url: 'http://localhost:3000/',
  • Network accessline 1787
    url: 'http://localhost:3000/',
  • Network accessline 1804
    await expect(       tool(ReticleTool.LEASE_ACQUIRE)(deps, {         url: 'http://localhost:3000/',
  • Network accessline 1805
    [Credential-related source omitted]
  • Network accessline 1806
    url: 'http://localhost:3000/',
  • Network accessline 1813
    const { pool, acquired } = fakePool();     const trace: string[] = [];     const origin = 'http://localhost:3000';
  • Network accessline 1814
    const trace: string[] = [];     const origin = 'http://localhost:3000';     const originalAcquire = pool.acquire.bind(pool);
  • Network accessline 1815
    const origin = 'http://localhost:3000';
  • Network accessline 1861
    it('cleans up origin lock and allows subsequent acquires when an acquire fails', async () => {     const { pool } = fakePool();     const origin = 'http://localhost:3000';
  • Network accessline 1862
    const { pool } = fakePool();     const origin = 'http://localhost:3000';     let failFirst = true;
  • Network accessline 1863
    const origin = 'http://localhost:3000';
  • Network accessline 1926
    try {         await tool(ReticleTool.LEASE_ACQUIRE)(deps, {           url: 'http://localhost:3000/',
  • Network accessline 1927
    await tool(ReticleTool.LEASE_ACQUIRE)(deps, {           url: 'http://localhost:3000/',           seedStorage: { cookies: { auth: secretToken } },
  • Network accessline 1928
    url: 'http://localhost:3000/',
  • Network accessline 1940
    it('evaluateSeedPrecondition detects 401/403 status codes', () => {       const failure401 = evaluateSeedPrecondition(         'http://localhost:3000/dashboard',
  • Network accessline 1941
    const failure401 = evaluateSeedPrecondition(         'http://localhost:3000/dashboard',         'http://localhost:3000/dashboard',
  • Network accessline 1942
    'http://localhost:3000/dashboard',
  • Network accessline 1943
    'http://localhost:3000/dashboard',
  • Network accessline 1949
    const failure403 = evaluateSeedPrecondition(         'http://localhost:3000/dashboard',
  • Network accessline 1950
    'http://localhost:3000/dashboard',
  • Network accessline 1951
    'http://localhost:3000/dashboard',
  • Network accessline 1958
    it('evaluateSeedPrecondition detects cross-origin redirects when storage was seeded', () => {       const failure = evaluateSeedPrecondition(         'http://localhost:3000/app',
  • Network accessline 1959
    const failure = evaluateSeedPrecondition(         'http://localhost:3000/app',         'https://auth.external.com/login',
  • Network accessline 1960
    'http://localhost:3000/app',
  • Network accessline 1961
    'https://auth.external.com/login',
  • Network accessline 1969
    it('evaluateSeedPrecondition detects redirect to login endpoint when requested URL was not login', () => {       const failure = evaluateSeedPrecondition(         'http://localhost:3000/dashboard',
  • Network accessline 1970
    const failure = evaluateSeedPrecondition(         'http://localhost:3000/dashboard',         'http://localhost:3000/login',
  • Network accessline 1971
    'http://localhost:3000/dashboard',
  • Network accessline 1972
    'http://localhost:3000/login',
  • Network accessline 1979
    it('evaluateSeedPrecondition accepts normal application redirects (e.g. / -> /dashboard)', () => {       const ok = evaluateSeedPrecondition(         'http://localhost:3000/',
  • Network accessline 1980
    const ok = evaluateSeedPrecondition(         'http://localhost:3000/',         'http://localhost:3000/dashboard',
  • Network accessline 1981
    'http://localhost:3000/',
  • Network accessline 1982
    'http://localhost:3000/dashboard',
  • Network accessline 1991
    const fakeSession = {         id: 'lease-test-1',         url: 'http://localhost:3000/login', // redirected to login!
  • Network accessline 1992
    id: 'lease-test-1',         url: 'http://localhost:3000/login', // redirected to login!         setPreconditionFailure: (reason: string) => {
  • Network accessline 1993
    url: 'http://localhost:3000/login', // redirected to login!
  • Network accessline 2020
    const acquireResult = (await tool(ReticleTool.LEASE_ACQUIRE)(deps, {         url: 'http://localhost:3000/dashboard',
  • Network accessline 2021
    url: 'http://localhost:3000/dashboard',
  • Network accessline 2056
    const fakeSession = {         id: 'lease-test-2',         url: 'http://localhost:3000/dashboard', // stays on dashboard!
  • Network accessline 2057
    id: 'lease-test-2',         url: 'http://localhost:3000/dashboard', // stays on dashboard!         setPreconditionFailure: () => {},
  • Network accessline 2058
    url: 'http://localhost:3000/dashboard', // stays on dashboard!

server/src/surface/tools/lease-tools.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 369
    .optional()       .describe(         'URL of the already-running app to drive (e.g. http://localhost:3000/dashboard). Omit it to lease the one dev server that runs in this project folder.',
  • Network accessline 370
    .describe(         'URL of the already-running app to drive (e.g. http://localhost:3000/dashboard). Omit it to lease the one dev server that runs in this project folder.',       ),
  • Network accessline 371
    'URL of the already-running app to drive (e.g. http://localhost:3000/dashboard). Omit it to lease the one dev server that runs in this project folder.',

server/src/surface/tools/lineage-tools.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/live-call-text.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/live-call-text.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/map-tools.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/map-tools.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/merge-discriminator.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/merge-tools.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/merge-tools.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/merged-name-redirect.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/merged-name-redirect.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/merged-surface.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/meta-tool-discoverability.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/native-input-refusal.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/navigate-honesty.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 31
    it('keeps ok for existing callers', () => {     expect(       navigateResult({ ok: true, url: 'http://localhost:3000/x' }, null, WAITED),
  • Network accessline 32
    expect(       navigateResult({ ok: true, url: 'http://localhost:3000/x' }, null, WAITED),     ).toMatchObject({
  • Network accessline 33
    navigateResult({ ok: true, url: 'http://localhost:3000/x' }, null, WAITED),
  • Network accessline 34
    ).toMatchObject({       ok: true,       url: 'http://localhost:3000/x',
  • Network accessline 35
    ok: true,       url: 'http://localhost:3000/x',     });
  • Network accessline 36
    url: 'http://localhost:3000/x',
  • Network accessline 40
    it('says arrival is UNCONFIRMED, because the SDK cannot survive the navigation to report it', () => {     const out = navigateResult({ ok: true, url: 'http://x/y' }, null, WAITED);
  • Network accessline 41
    const out = navigateResult({ ok: true, url: 'http://x/y' }, null, WAITED);
  • Network accessline 75
    describe('an unconfirmed navigation says what the wait ended on', () => {   it('reports the budget that expired', () => {     const out = navigateResult({ ok: true, url: 'http://localhost:3000/dashboard' }, null, 30_000);
  • Network accessline 76
    it('reports the budget that expired', () => {     const out = navigateResult({ ok: true, url: 'http://localhost:3000/dashboard' }, null, 30_000);     expect(out['waitedMs']).toBe(30_000);
  • Network accessline 77
    const out = navigateResult({ ok: true, url: 'http://localhost:3000/dashboard' }, null, 30_000);
  • Network accessline 82
    it('names timeout_ms as the way to wait longer', () => {     const out = navigateResult({ ok: true, url: 'http://localhost:3000/dashboard' }, null, WAITED);
  • Network accessline 83
    const out = navigateResult({ ok: true, url: 'http://localhost:3000/dashboard' }, null, WAITED);
  • Network accessline 87
    it('does not report a budget on a confirmed arrival — nothing expired', () => {     const out = navigateResult(       { ok: true, url: 'http://localhost:3000/dashboard' },
  • Network accessline 88
    const out = navigateResult(       { ok: true, url: 'http://localhost:3000/dashboard' },       { sessionId: 's-new' },
  • Network accessline 89
    { ok: true, url: 'http://localhost:3000/dashboard' },
  • Network accessline 110
    it('is true, and carries the reconnected sessionId, when a session arrives', () => {     const out = navigateResult(       { ok: true, url: 'http://localhost:3000/dashboard' },
  • Network accessline 111
    const out = navigateResult(       { ok: true, url: 'http://localhost:3000/dashboard' },       { sessionId: 's-new' },
  • Network accessline 112
    { ok: true, url: 'http://localhost:3000/dashboard' },
  • Network accessline 120
    it('reports when the navigation arrived somewhere other than the requested URL', () => {     const out = navigateResult(       { ok: true, url: 'http://localhost:3000/dashboard' },
  • Network accessline 121
    const out = navigateResult(       { ok: true, url: 'http://localhost:3000/dashboard' },       {
  • Network accessline 122
    { ok: true, url: 'http://localhost:3000/dashboard' },
  • Network accessline 123
    {         sessionId: 's-new',         landedOn: 'http://localhost:3000/login',
  • Network accessline 124
    sessionId: 's-new',         landedOn: 'http://localhost:3000/login',       },
  • Network accessline 125
    landedOn: 'http://localhost:3000/login',
  • Network accessline 132
    confirmed: false,       sessionId: 's-new',       landedOn: 'http://localhost:3000/login',
  • Network accessline 133
    sessionId: 's-new',       landedOn: 'http://localhost:3000/login',     });
  • Network accessline 134
    landedOn: 'http://localhost:3000/login',
  • Network accessline 140
    it('does not report landedOn for a confirmed arrival', () => {     const out = navigateResult(       { ok: true, url: 'http://localhost:3000/dashboard' },
  • Network accessline 141
    const out = navigateResult(       { ok: true, url: 'http://localhost:3000/dashboard' },       { sessionId: 's-new' },
  • Network accessline 142
    { ok: true, url: 'http://localhost:3000/dashboard' },
  • Network accessline 152
    it('stays false, with the note, when nothing arrives in the window', () => {     const out = navigateResult({ ok: true, url: 'http://localhost:3000/dashboard' }, null, WAITED);
  • Network accessline 153
    const out = navigateResult({ ok: true, url: 'http://localhost:3000/dashboard' }, null, WAITED);

server/src/surface/tools/navigate-lease-off-app.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 11
    describe('navigating a lease whose page has no Reticle SDK', () => {   it('goes through the browser and reattaches when it is back on the app', async () => {     const leaseUrl = 'http://localhost:4391/?__reticle_session=lease-1';
  • Network accessline 12
    it('goes through the browser and reattaches when it is back on the app', async () => {     const leaseUrl = 'http://localhost:4391/?__reticle_session=lease-1';     const went: string[] = [];
  • Network accessline 13
    const leaseUrl = 'http://localhost:4391/?__reticle_session=lease-1';
  • Network accessline 30
    gotoLease: (_id: string, url: string) => {           went.push(url);           attached = url.startsWith('http://localhost:4391/');
  • Network accessline 31
    went.push(url);           attached = url.startsWith('http://localhost:4391/');           return Promise.resolve(true);
  • Network accessline 32
    attached = url.startsWith('http://localhost:4391/');
  • Network accessline 39
    const back = (await navigate?.handler(deps, {       sessionId: 'lease-1',       url: 'http://localhost:4391/settings',
  • Network accessline 40
    sessionId: 'lease-1',       url: 'http://localhost:4391/settings',       timeout_ms: 50,
  • Network accessline 41
    url: 'http://localhost:4391/settings',

server/src/surface/tools/navigate-same-page.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 20
    const PAGE = 'http://localhost:3000/login';

server/src/surface/tools/navigate-starts-session.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 14
    const APP = 'http://localhost:3000/settings';
  • Network accessline 98
    describe('reticle_navigate with sessions', () => {   it('drives the one connected session and opens no lease', async () => {     const { deps, acquired, commands } = fake([{ id: 'tab-1', url: 'http://localhost:3000/' }]);
  • Network accessline 99
    it('drives the one connected session and opens no lease', async () => {     const { deps, acquired, commands } = fake([{ id: 'tab-1', url: 'http://localhost:3000/' }]);     const session = {
  • Network accessline 100
    const { deps, acquired, commands } = fake([{ id: 'tab-1', url: 'http://localhost:3000/' }]);
  • Network accessline 101
    const session = {       id: 'tab-1',       url: 'http://localhost:3000/',
  • Network accessline 102
    id: 'tab-1',       url: 'http://localhost:3000/',       lastAct: { markNavigated: () => undefined },
  • Network accessline 103
    url: 'http://localhost:3000/',
  • Network accessline 120
    it('keeps the ambiguity refusal and opens no lease', async () => {     const { deps, acquired } = fake([       { id: 'tab-1', url: 'http://localhost:3000/' },
  • Network accessline 121
    const { deps, acquired } = fake([       { id: 'tab-1', url: 'http://localhost:3000/' },       { id: 'tab-2', url: 'http://localhost:3000/' },
  • Network accessline 122
    { id: 'tab-1', url: 'http://localhost:3000/' },
  • Network accessline 123
    { id: 'tab-2', url: 'http://localhost:3000/' },

server/src/surface/tools/navigate-timeout.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 23
    const FROM = 'http://localhost:3000/';
  • Network accessline 24
    const TO = 'http://localhost:3000/dashboard';

server/src/surface/tools/network-bodies.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/network-defaults.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 50
    const ASSET = ev({   method: 'GET',   url: 'http://localhost:4312/src/main.tsx',
  • Network accessline 51
    method: 'GET',   url: 'http://localhost:4312/src/main.tsx',   status: 200,
  • Network accessline 52
    url: 'http://localhost:4312/src/main.tsx',
  • Network accessline 56
    const API_OK = ev({   method: 'GET',   url: 'http://localhost:4312/api/feed',
  • Network accessline 57
    method: 'GET',   url: 'http://localhost:4312/api/feed',   status: 200,
  • Network accessline 58
    url: 'http://localhost:4312/api/feed',
  • Network accessline 63
    const API_FAIL = ev({   method: 'POST',   url: 'http://localhost:4312/api/pay',
  • Network accessline 64
    method: 'POST',   url: 'http://localhost:4312/api/pay',   status: 500,
  • Network accessline 65
    url: 'http://localhost:4312/api/pay',
  • Network accessline 72
    it('FOLDS the dev server’s own asset traffic by default, and says what it folded', async () => {     const res = (await networkTool().handler(netDeps([ASSET, API_OK]), {})) as NetResult;     expect(res.calls.map((c) => c['url'])).toEqual(['
  • Network accessline 73
    const res = (await networkTool().handler(netDeps([ASSET, API_OK]), {})) as NetResult;     expect(res.calls.map((c) => c['url'])).toEqual(['http://localhost:4312/api/feed']);     expect(res.assetsFolded?.count, 'the fold must be reported, ne
  • Network accessline 74
    expect(res.calls.map((c) => c['url'])).toEqual(['http://localhost:4312/api/feed']);
  • Network accessline 75
    expect(res.assetsFolded?.count, 'the fold must be reported, never silent').toBe(1);     expect(res.assetsFolded?.sample).toContain('http://localhost:4312/src/main.tsx');     expect(res.assetsFolded?.how, 'the reader must be told how to get 
  • Network accessline 76
    expect(res.assetsFolded?.sample).toContain('http://localhost:4312/src/main.tsx');
  • Network accessline 109
    const quietAsset = ev({       method: 'GET',       url: 'http://localhost:4312/assets/app-1a2b.css',
  • Network accessline 110
    method: 'GET',       url: 'http://localhost:4312/assets/app-1a2b.css',       status: 200,
  • Network accessline 111
    url: 'http://localhost:4312/assets/app-1a2b.css',

server/src/surface/tools/network-hint-schema.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/next-step.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 219
    [Credential-related source omitted]
  • Access to secretsline 220
    [Credential-related source omitted]
  • Access to secretsline 225
    [Credential-related source omitted]
  • Access to secretsline 226
    [Credential-related source omitted]

server/src/surface/tools/next-step.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 217
    [Credential-related source omitted]

server/src/surface/tools/numeric-args-are-bounded.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/observe-act-attribution.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 33
    const stub: Partial<Session> = {     id: 'demo',     url: 'http://localhost:5173/app',
  • Network accessline 34
    id: 'demo',     url: 'http://localhost:5173/app',     elapsed: () => 1000,
  • Network accessline 35
    url: 'http://localhost:5173/app',

server/src/surface/tools/observe-filters-keep-contradictions.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 23
    const renderedNavigation = (): ReticleEvent[] => [   ev(EventType.ROUTE_CHANGE, { from: '/', to: '/invoices', url: 'http://localhost:5173/invoices' }),
  • Network accessline 24
    ev(EventType.ROUTE_CHANGE, { from: '/', to: '/invoices', url: 'http://localhost:5173/invoices' }),
  • Network accessline 29
    const blankNavigation = (): ReticleEvent[] => [   ev(EventType.ROUTE_CHANGE, { from: '/', to: '/reports', url: 'http://localhost:5173/reports' }),
  • Network accessline 30
    ev(EventType.ROUTE_CHANGE, { from: '/', to: '/reports', url: 'http://localhost:5173/reports' }),
  • Network accessline 34
    const session: Partial<Session> = {     id: 'demo',     url: 'http://localhost:5173/',
  • Network accessline 35
    id: 'demo',     url: 'http://localhost:5173/',     elapsed: () => 1000,
  • Network accessline 36
    url: 'http://localhost:5173/',

server/src/surface/tools/observe-tools.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/output-schema.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/platform-moment-nudge.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/platform-moment.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    [Credential-related source omitted]
  • Network accessline 17
    [Credential-related source omitted]
  • Network accessline 18
    [Credential-related source omitted]

server/src/surface/tools/platform-moment.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/predicate-grammar.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/predicate-vocabulary.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/query-forwarding.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/query-hint-schema.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/query-strategy.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/query-unsettled.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 19
    eventsSince: (c: number) => events.filter((e) => e.t >= c),     elapsed: () => 400,     url: 'http://localhost:5173/',
  • Network accessline 20
    elapsed: () => 400,     url: 'http://localhost:5173/',     background: [],
  • Network accessline 21
    url: 'http://localhost:5173/',
  • Network accessline 30
    type: EventType.NET_PENDING,   sessionId: 's',   data: { id: 'r1', method: 'GET', url: 'http://localhost:5173/api/options' },
  • Network accessline 31
    sessionId: 's',   data: { id: 'r1', method: 'GET', url: 'http://localhost:5173/api/options' }, };
  • Network accessline 32
    data: { id: 'r1', method: 'GET', url: 'http://localhost:5173/api/options' },
  • Network accessline 43
    it('a 0 while the act’s request is still out carries unsettled', async () => {     const out = await answer(depsWith([stillOut], 0));     expect(out['unsettled']).toMatchObject({ inFlight: ['GET http://localhost:5173/api/options'] });
  • Network accessline 44
    const out = await answer(depsWith([stillOut], 0));     expect(out['unsettled']).toMatchObject({ inFlight: ['GET http://localhost:5173/api/options'] });   });
  • Network accessline 45
    expect(out['unsettled']).toMatchObject({ inFlight: ['GET http://localhost:5173/api/options'] });

server/src/surface/tools/read-tools.state.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/read-tools.storage.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/read-tools.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/read-tools.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/read/complete-snapshot.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/read/complete-snapshot.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/read/query-paginate.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/read/query-paginate.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/read/query-shape.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/read/query-shape.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/read/query-windowed.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/read/query-windowed.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/read/snapshot-delta.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/read/snapshot-delta.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/read/snapshot-unmounted-note.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/read/snapshot-unmounted-note.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/real-input-attempt.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 90
    [Credential-related source omitted]
  • Access to secretsline 101
    [Credential-related source omitted]

server/src/surface/tools/reconcile-tools.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/reconcile-tools.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 196
    url,           fetch: async (target) => {             const res = await fetch(target, {
  • Network accessline 197
    fetch: async (target) => {             const res = await fetch(target, {               method: 'GET',
  • Network accessline 198
    const res = await fetch(target, {

server/src/surface/tools/record-start-path-and-reload.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 38
    const LEASED = `http://localhost:3000/products?scope=TOPWEAR&${RETICLE_URL_PARAM.SESSION}=lease-1`;
  • Network accessline 70
    expect(startPathMismatchHint(flow, onLease)).toBeUndefined();     const elsewhere = {       url: 'http://localhost:3000/products',
  • Network accessline 71
    const elsewhere = {       url: 'http://localhost:3000/products',       eventsSince: (): ReticleEvent[] => [],
  • Network accessline 72
    url: 'http://localhost:3000/products',
  • Network accessline 85
    };     const there = {       url: `http://localhost:3000/search?q=red%20shirt&${RETICLE_URL_PARAM.SESSION}=lease-1`,
  • Network accessline 86
    const there = {       url: `http://localhost:3000/search?q=red%20shirt&${RETICLE_URL_PARAM.SESSION}=lease-1`,       eventsSince: (): ReticleEvent[] => [],
  • Network accessline 87
    url: `http://localhost:3000/search?q=red%20shirt&${RETICLE_URL_PARAM.SESSION}=lease-1`,
  • Network accessline 118
    const successor = {       id: 'doc-2',       url: 'http://localhost:3000/checkout',
  • Network accessline 119
    id: 'doc-2',       url: 'http://localhost:3000/checkout',       elapsed: () => 1_500,
  • Network accessline 120
    url: 'http://localhost:3000/checkout',
  • Network accessline 141
    const tab = {       id: 's1',       url: 'http://localhost:3000/products',
  • Network accessline 142
    id: 's1',       url: 'http://localhost:3000/products',       currentDocumentId: 'doc-1',
  • Network accessline 143
    url: 'http://localhost:3000/products',
  • Network accessline 163
    const same = {       id: 'doc-1',       url: 'http://localhost:3000/products',
  • Network accessline 164
    id: 'doc-1',       url: 'http://localhost:3000/products',       elapsed: () => 900,
  • Network accessline 165
    url: 'http://localhost:3000/products',

server/src/surface/tools/record-stop-backtrack.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/record-stop-budget.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/record-stop-redacts-secrets.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/recovery-run-examples.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/refusal-reason.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/refusals-are-recognized.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/refused-act-leaves-nothing.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 55
    const stub: Partial<Session> = {     id: 'demo',     url: 'http://localhost:5173/app',
  • Network accessline 56
    id: 'demo',     url: 'http://localhost:5173/app',     elapsed: () => 1000,
  • Network accessline 57
    url: 'http://localhost:5173/app',

server/src/surface/tools/repeat-hint-dispatch.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/repeat-hint.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/replay-press-real-input.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 15
    const URL = 'http://localhost:3000/';

server/src/surface/tools/reticle-result.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 30
    const LINKED = '- Run on the dashboard: https://app.test/runs/r1';
  • Network accessline 112
    JSON.stringify({         projectId: 'p',         url: 'https://api.test',
  • Network accessline 113
    projectId: 'p',         url: 'https://api.test',         dashboardUrl: 'https://app.test/x',
  • Network accessline 114
    url: 'https://api.test',
  • Network accessline 115
    dashboardUrl: 'https://app.test/x',
  • Network accessline 116
    }),     );     expect(platformLine(dir, {}, 'r1')).toBe('- Run on the dashboard: https://app.test/runs/r1');
  • Network accessline 117
    );     expect(platformLine(dir, {}, 'r1')).toBe('- Run on the dashboard: https://app.test/runs/r1');     expect(platformLine(dir, {})).toBe('- On the dashboard: https://app.test/x');
  • Network accessline 118
    expect(platformLine(dir, {}, 'r1')).toBe('- Run on the dashboard: https://app.test/runs/r1');
  • Network accessline 119
    expect(platformLine(dir, {})).toBe('- On the dashboard: https://app.test/x');
  • Network accessline 138
    writeFileSync(       join(dir, ReticleDir.CLOUD_LINK_FILE),       JSON.stringify({ projectId: 'p', url: 'https://api.test', dashboardUrl: 'https://app.test' }),
  • Network accessline 139
    join(dir, ReticleDir.CLOUD_LINK_FILE),       JSON.stringify({ projectId: 'p', url: 'https://api.test', dashboardUrl: 'https://app.test' }),     );
  • Network accessline 140
    JSON.stringify({ projectId: 'p', url: 'https://api.test', dashboardUrl: 'https://app.test' }),
  • Access to secretsline 153
    [Credential-related source omitted]

server/src/surface/tools/reticle-result.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/retired-profile-docs.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/run-checks-arg-types.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 46
    now: () => 1,     realInput,     sessions: { resolve: () => ({ id: 's1', url: 'http://localhost:5173/' }), count: () => 1 },
  • Network accessline 47
    realInput,     sessions: { resolve: () => ({ id: 's1', url: 'http://localhost:5173/' }), count: () => 1 },   } as unknown as ToolDeps;
  • Network accessline 48
    sessions: { resolve: () => ({ id: 's1', url: 'http://localhost:5173/' }), count: () => 1 },
  • Network accessline 121
    const viewport = VIEWPORT_TOOLS.find((tool) => tool.name === ReticleTool.VIEWPORT);     const deps = {       sessions: { resolve: () => ({ url: 'http://localhost:5173/' }) },
  • Network accessline 122
    const deps = {       sessions: { resolve: () => ({ url: 'http://localhost:5173/' }) },     } as unknown as ToolDeps;
  • Network accessline 123
    sessions: { resolve: () => ({ url: 'http://localhost:5173/' }) },

server/src/surface/tools/run-report.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 71
    - Memory: 1 note written, 0 read       - Time: 2m 32s, first verdict after 18.2s       - Reticle Cloud (not linked): keeps this history across runs and agents, adds a team view and the hosted Harness. Plans and prices: https://app.reticle.s
  • Network accessline 72
    - Time: 2m 32s, first verdict after 18.2s       - Reticle Cloud (not linked): keeps this history across runs and agents, adds a team view and the hosted Harness. Plans and prices: https://app.reticle.sh"     `);
  • Network accessline 73
    - Reticle Cloud (not linked): keeps this history across runs and agents, adds a team view and the hosted Harness. Plans and prices: https://app.reticle.sh"
  • Network accessline 193
    resolve: () => {           if (!open) throw new Error('no such session');           return { id: 'lease-1', url: 'http://localhost:4336/' };
  • Network accessline 194
    if (!open) throw new Error('no such session');           return { id: 'lease-1', url: 'http://localhost:4336/' };         },
  • Network accessline 195
    return { id: 'lease-1', url: 'http://localhost:4336/' };

server/src/surface/tools/run-report.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/run-session-id.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/session-ports.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/sessions-attachment.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 19
    const ROW = {   sessionId: 's1',   url: 'http://localhost:3000/',
  • Network accessline 20
    sessionId: 's1',   url: 'http://localhost:3000/',   adapters: ['web'],
  • Network accessline 21
    url: 'http://localhost:3000/',

server/src/surface/tools/sessions-why.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 87
    const session = {       sessionId: 's1',       url: 'http://localhost:5173/',
  • Network accessline 88
    sessionId: 's1',       url: 'http://localhost:5173/',       adapters: [],
  • Network accessline 89
    url: 'http://localhost:5173/',
  • Network accessline 112
    const lastKnown = {     sessionId: 's-torn',     url: 'http://localhost:3000/orders/explode',
  • Network accessline 113
    sessionId: 's-torn',     url: 'http://localhost:3000/orders/explode',   };
  • Network accessline 114
    url: 'http://localhost:3000/orders/explode',
  • Network accessline 141
    const session = {       sessionId: 's1',       url: 'http://localhost:5173/',
  • Network accessline 142
    sessionId: 's1',       url: 'http://localhost:5173/',       adapters: [],
  • Network accessline 143
    url: 'http://localhost:5173/',
  • Network accessline 204
    expect(result.next_step?.offered).toBe(NextStepOffered.LEASE);     expect(result.next_step?.lease).toContain('reticle_lease');     expect(result.next_step?.lease).toContain('http://localhost:5173');
  • Network accessline 205
    expect(result.next_step?.lease).toContain('reticle_lease');     expect(result.next_step?.lease).toContain('http://localhost:5173');     expect(result.next_step?.consent).toMatch(/ask the user/i);
  • Network accessline 206
    expect(result.next_step?.lease).toContain('http://localhost:5173');

server/src/surface/tools/settle-ignores-departure.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 26
    const completed = (id: string): { type: string; data: Record<string, unknown> } => ({   type: EventType.NET_REQUEST,   data: { id, url: 'http://app.test/api/x', status: 200 },
  • Network accessline 27
    type: EventType.NET_REQUEST,   data: { id, url: 'http://app.test/api/x', status: 200 }, });
  • Network accessline 28
    data: { id, url: 'http://app.test/api/x', status: 200 },
  • Network accessline 31
    const DEPARTURE = pending('nav-1', 'https://accounts.google.com/o/oauth2', NetInitiator.NAVIGATION); const REAL = pending('r-1', 'http://app.test/api/save', NetInitiator.FETCH);
  • Network accessline 32
    const REAL = pending('r-1', 'http://app.test/api/save', NetInitiator.FETCH);
  • Network accessline 50
    it('counts the real one and ignores the departure when both are present', () => {     expect(inFlightRequestIds([DEPARTURE, REAL])).toEqual(['r-1']);     expect(inFlightRequestLabels([DEPARTURE, REAL])).toEqual(['GET http://app.test/api/sav
  • Network accessline 51
    expect(inFlightRequestIds([DEPARTURE, REAL])).toEqual(['r-1']);     expect(inFlightRequestLabels([DEPARTURE, REAL])).toEqual(['GET http://app.test/api/save']);   });
  • Network accessline 52
    expect(inFlightRequestLabels([DEPARTURE, REAL])).toEqual(['GET http://app.test/api/save']);

server/src/surface/tools/settle-in-flight-dev-tooling.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 22
    const HMR = 'http://localhost:3000/_next/static/webpack/633457081244afec.webpack.hot-update.json';
  • Network accessline 23
    const OVERLAY = 'http://localhost:3000/__nextjs_original-stack-frames';
  • Network accessline 24
    const APP = 'http://localhost:3000/api/save';

server/src/surface/tools/shipped-prose-drift.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/snapshot-cost.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/snapshot-delta-roundtrip.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/snapshot-delta.actionable.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/snapshot-hidden-note.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/storage-vocabulary.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 52
    [Credential-related source omitted]

server/src/surface/tools/suite-fixture-pageurl.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 7
    * `leasableAppUrl` hands back an ORIGIN — `new URL(url).origin`, so no trailing slash and no path.  * The provider finds a page with `selectPage`, which compares full URLs (minus query and hash), so  * an origin matches NOTHING: the driven 
  • Network accessline 8
    * The provider finds a page with `selectPage`, which compares full URLs (minus query and hash), so  * an origin matches NOTHING: the driven tab is at `http://host:4312/?view=x`, whose stripped form is  * `http://host:4312/`, and that is not
  • Network accessline 9
    * an origin matches NOTHING: the driven tab is at `http://host:4312/?view=x`, whose stripped form is
  • Network accessline 10
    * `http://host:4312/`, and that is not `http://host:4312`.
  • Network accessline 26
    const PAGE = 'http://localhost:4312/?view=diagnostics';
  • Network accessline 39
    it('an ORIGIN finds nothing — the shape that made this silently inert', async () => {     const origin = new URL(PAGE).origin;     expect(origin).toBe('http://localhost:4312');
  • Network accessline 40
    const origin = new URL(PAGE).origin;     expect(origin).toBe('http://localhost:4312');     expect(await suiteFixturePort(providerSeeing(PAGE), origin)).toBeUndefined();
  • Network accessline 41
    expect(origin).toBe('http://localhost:4312');

server/src/surface/tools/suite-fixture.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 21
    const URL = 'http://localhost:4312/';
  • Network accessline 23
    const state = {   cookies: [{ name: 'sid', value: 'abc', domain: 'localhost', path: '/' }],   origins: [{ origin: 'http://localhost:4312', localStorage: [{ name: 'token', value: 'xyz' }] }],
  • Network accessline 24
    cookies: [{ name: 'sid', value: 'abc', domain: 'localhost', path: '/' }],   origins: [{ origin: 'http://localhost:4312', localStorage: [{ name: 'token', value: 'xyz' }] }], };
  • Network accessline 25
    origins: [{ origin: 'http://localhost:4312', localStorage: [{ name: 'token', value: 'xyz' }] }],

server/src/surface/tools/surface-consistency.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/surface-reachability.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/surface-sizes.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/tool-allowlists-complete.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/tool-deps-ext.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/tool-examples.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/tool-invoker.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/tool-invoker.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/tool-kit.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/tool-surface.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/tool-surface.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/tools-helpers.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/tools.assert-advice.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/tools.contract.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/tools.inspect-ref.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/tools.near-miss.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/tools.query-attrs.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/tools.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/unadvertised-help.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/unadvertised-help.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/upload-path-rewrite.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 285
    [Credential-related source omitted]
  • Access to secretsline 295
    [Credential-related source omitted]
  • Access to secretsline 304
    [Credential-related source omitted]
  • Access to secretsline 318
    [Credential-related source omitted]

server/src/surface/tools/upload-session-root.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 47
    const session: Partial<Session> = {     id: 'wt-b',     url: 'http://localhost:15999/',
  • Network accessline 48
    id: 'wt-b',     url: 'http://localhost:15999/',     command: (_cmd, args): Promise<CommandResult> => {
  • Network accessline 49
    url: 'http://localhost:15999/',

server/src/surface/tools/verify-next-baton.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/verify-next-baton.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/vocabulary-enforced.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/wire-name-accounted-for.test.ts

  • Executable scriptline 1
    Executable file

server/src/surface/tools/wrong-tab-ref.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 29
    return {     id,     url: `http://localhost:5173/${id}`,
  • Network accessline 30
    id,     url: `http://localhost:5173/${id}`,     health: () => ({ lastSeenMs: 0, throttled: false, focused: true }),
  • Network accessline 31
    url: `http://localhost:5173/${id}`,

server/src/telemetry/account-envelope.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 18
    [Credential-related source omitted]
  • Network accessline 19
    [Credential-related source omitted]
  • Network accessline 20
    [Credential-related source omitted]
  • Network accessline 25
    JSON.stringify({       projectId: 'p1',       url: 'https://x',
  • Network accessline 26
    projectId: 'p1',       url: 'https://x',       ...(orgId === undefined ? {} : { orgId }),
  • Network accessline 27
    url: 'https://x',
  • Access to secretsline 71
    [Credential-related source omitted]

server/src/telemetry/account-envelope.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/agent-client.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/agent-client.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/app-instrumented.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/app-instrumented.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/argument-shape.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 34
    it.each([     ['a URL', ['drive', 'https://acme.internal/checkout']],
  • Network accessline 35
    ['a URL', ['drive', 'https://acme.internal/checkout']],
  • Network accessline 123
    it('NEVER reports values passed to seedStorage in telemetry', () => {     const described = describeToolParams({       url: 'http://localhost:3000',
  • Network accessline 124
    const described = describeToolParams({       url: 'http://localhost:3000',       seedStorage: {
  • Network accessline 125
    url: 'http://localhost:3000',

server/src/telemetry/argument-shape.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/automation-hint.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/automation-hint.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/browser-mode.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/bug-found.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 99
    const bugs = bugsInResult('reticle_crawl', {       anomalies: [         { kind: 'failed-request', ref: 'e7', desc: 'POST https://acme.internal/orders 500' },
  • Network accessline 100
    anomalies: [         { kind: 'failed-request', ref: 'e7', desc: 'POST https://acme.internal/orders 500' },       ],
  • Network accessline 101
    { kind: 'failed-request', ref: 'e7', desc: 'POST https://acme.internal/orders 500' },

server/src/telemetry/bug-found.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/bug-occurrence.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/cli-telemetry.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/connect-failure.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/crash-cause.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/crash-cause.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/daemon-telemetry.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/daemon-telemetry.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/dev-repo.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 54
    [Credential-related source omitted]
  • Access to secretsline 64
    [Credential-related source omitted]
  • Access to secretsline 68
    [Credential-related source omitted]
  • Access to secretsline 74
    [Credential-related source omitted]
  • Access to secretsline 81
    [Credential-related source omitted]

server/src/telemetry/dev-repo.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 43
    [Credential-related source omitted]
  • Access to secretsline 55
    [Credential-related source omitted]
  • Access to secretsline 60
    [Credential-related source omitted]

server/src/telemetry/error-class.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/error-fingerprint.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 127
    ['free text with no variable part at all', 'order for customer Acme Ltd was rejected', 'Acme'],     ['an IP address', 'connect ECONNREFUSED 10.1.2.3:5432', '10.1.2.3'],     ['a URL with a query', 'fetch https://api.acme.io/v1/users?email=x 
  • Network accessline 128
    ['an IP address', 'connect ECONNREFUSED 10.1.2.3:5432', '10.1.2.3'],     ['a URL with a query', 'fetch https://api.acme.io/v1/users?email=x failed', 'acme'],     ['an email', 'no account for bob@acme.com', 'bob'],
  • Network accessline 129
    ['a URL with a query', 'fetch https://api.acme.io/v1/users?email=x failed', 'acme'],

server/src/telemetry/error-fingerprint.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/event-hygiene.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 100
    const t = createTelemetry({       version: '9.9.9',       env: { RETICLE_TELEMETRY_URL: 'http://example.test', RETICLE_TELEMETRY_KEY: 'phc_test' },
  • Network accessline 101
    version: '9.9.9',       env: { RETICLE_TELEMETRY_URL: 'http://example.test', RETICLE_TELEMETRY_KEY: 'phc_test' },       cwd: '/tmp/hygiene-proj',
  • Network accessline 102
    [Credential-related source omitted]
  • Access to secretsline 102
    [Credential-related source omitted]

server/src/telemetry/extra-blocks-reach-the-wire.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 32
    const TEST_ENV = {   RETICLE_TELEMETRY_KEY: 'phc_test',   RETICLE_TELEMETRY_URL: 'http://example.test',
  • Network accessline 33
    RETICLE_TELEMETRY_KEY: 'phc_test',   RETICLE_TELEMETRY_URL: 'http://example.test', };
  • Network accessline 34
    RETICLE_TELEMETRY_URL: 'http://example.test',

server/src/telemetry/feedback-attribution.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/feedback-cli.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/feedback-context.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/feedback-context.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/feedback-delivery.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/feedback-delivery.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/feedback-in-checkout.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/feedback-local.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/feedback-local.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/feedback-outbox.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 41
    const telemetry = createTelemetry({       version: '1',       env: { RETICLE_TELEMETRY_KEY: 'phc_test', RETICLE_TELEMETRY_URL: 'http://example.test' },
  • Network accessline 42
    version: '1',       env: { RETICLE_TELEMETRY_KEY: 'phc_test', RETICLE_TELEMETRY_URL: 'http://example.test' },       cwd: '/tmp/some-user-app',
  • Network accessline 43
    [Credential-related source omitted]
  • Access to secretsline 43
    [Credential-related source omitted]

server/src/telemetry/feedback-outbox.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/feedback.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 35
    it('strips credentials inline in a URL but keeps the scheme, so the trace still reads', () => {     const out = redactFeedbackText(       'called https://admin:hunter2@api.internal/v1',
  • Network accessline 36
    const out = redactFeedbackText(       'called https://admin:hunter2@api.internal/v1',       FEEDBACK_TEXT_MAX,
  • Network accessline 37
    'called https://admin:hunter2@api.internal/v1',
  • Access to secretsline 92
    [Credential-related source omitted]
  • Network accessline 166
    [Credential-related source omitted]
  • Network accessline 167
    [Credential-related source omitted]
  • Network accessline 168
    [Credential-related source omitted]
  • Network accessline 171
    [       'a localhost URL query',       'GET http://localhost:3000/search?q=jane.doe@x.com&id=7',
  • Network accessline 172
    'a localhost URL query',       'GET http://localhost:3000/search?q=jane.doe@x.com&id=7',       ['q=', 'id=7', 'jane'],
  • Network accessline 173
    'GET http://localhost:3000/search?q=jane.doe@x.com&id=7',
  • Network accessline 182
    it('keeps what makes a report readable: the local app, file names, versions', () => {     const out = redactFeedbackText(       'on http://localhost:5173/checkout the vite.config.ts change broke invoke-tool.ts',
  • Network accessline 183
    const out = redactFeedbackText(       'on http://localhost:5173/checkout the vite.config.ts change broke invoke-tool.ts',       FEEDBACK_TEXT_MAX,
  • Network accessline 184
    'on http://localhost:5173/checkout the vite.config.ts change broke invoke-tool.ts',
  • Network accessline 185
    FEEDBACK_TEXT_MAX,     );     expect(out.text).toContain('http://localhost:5173/checkout');
  • Network accessline 186
    );     expect(out.text).toContain('http://localhost:5173/checkout');     expect(out.text).toContain('vite.config.ts');
  • Network accessline 187
    expect(out.text).toContain('http://localhost:5173/checkout');

server/src/telemetry/feedback.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 151
    [Credential-related source omitted]
  • Access to secretsline 250
    [Credential-related source omitted]
  • Network accessline 492
    reason:       queued !== null         ? `the report could not be delivered (the network call failed or was rejected), but it is SAVED at ${outboxPath()} and nothing was lost. It will be retried; you can also open an issue at https://github.
  • Network accessline 493
    queued !== null         ? `the report could not be delivered (the network call failed or was rejected), but it is SAVED at ${outboxPath()} and nothing was lost. It will be retried; you can also open an issue at https://github.com/reticlehq/
  • Network accessline 494
    ? `the report could not be delivered (the network call failed or was rejected), but it is SAVED at ${outboxPath()} and nothing was lost. It will be retried; you can also open an issue at https://github.com/reticlehq/reticle/issues with the 
  • Network accessline 495
    : 'the report could not be delivered and could not be saved locally either — it was NOT filed. Retry, or open an issue at https://github.com/reticlehq/reticle/issues with the same detail.',

server/src/telemetry/first-ever.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/gate-completed.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/git-facts.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 62
    /** `git@github.com:Acme/Web.git` / `https://u:p@github.com/Acme/Web` → `github.com/acme/web`. */

server/src/telemetry/harness-never-emits.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/harness-run.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/harness-run.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/hud-events.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/hud-events.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/hud-metrics.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/hud-metrics.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/init-telemetry.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/install-attribution.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/install-report.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/install-source.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 39
    expect(resolveInstallSource({ [INSTALL_SOURCE_ENV]: 'https://example.com/promo' })).toBe(

server/src/telemetry/install-source.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/install-stage.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 100
    const TEST_ENV = {   RETICLE_TELEMETRY_KEY: 'phc_test',   RETICLE_TELEMETRY_URL: 'http://example.test',
  • Network accessline 101
    RETICLE_TELEMETRY_KEY: 'phc_test',   RETICLE_TELEMETRY_URL: 'http://example.test', };
  • Network accessline 102
    RETICLE_TELEMETRY_URL: 'http://example.test',

server/src/telemetry/install-trace.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/install-trace.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/license-activation.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 108
    [Credential-related source omitted]
  • Access to secretsline 180
    [Credential-related source omitted]

server/src/telemetry/license-activation.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/local-sink.test.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 51
    [Credential-related source omitted]
  • Access to secretsline 72
    [Credential-related source omitted]
  • Access to secretsline 96
    [Credential-related source omitted]
  • Access to secretsline 114
    [Credential-related source omitted]
  • Access to secretsline 129
    [Credential-related source omitted]

server/src/telemetry/machine-snapshot.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/mcp-connection.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/mcp-connection.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/missing-metrics.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/no-field-numbers.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/onboarding-dispatch.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/onboarding-firsts.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/onboarding-firsts.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/onboarding-funnel.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/onboarding-next-step.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 30
    const read = steps();     noteNextStepOffered(NextStepOffered.LEASE, () => false);     noteNextCall(ReticleTool.LEASE, { action: 'acquire', url: 'http://localhost:5173' });
  • Network accessline 31
    noteNextStepOffered(NextStepOffered.LEASE, () => false);     noteNextCall(ReticleTool.LEASE, { action: 'acquire', url: 'http://localhost:5173' });     expect(read()).toEqual([
  • Network accessline 32
    noteNextCall(ReticleTool.LEASE, { action: 'acquire', url: 'http://localhost:5173' });

server/src/telemetry/onboarding-stop.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/platform-linked.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/platform-linked.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/project-identity.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/project-profile.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 120
    it.each([     'git@github.com:Acme/Web.git',     'https://github.com/acme/web',
  • Network accessline 121
    'git@github.com:Acme/Web.git',     'https://github.com/acme/web',     'https://user:token@github.com/Acme/Web.git',
  • Network accessline 122
    'https://github.com/acme/web',
  • Network accessline 123
    'https://user:token@github.com/Acme/Web.git',

server/src/telemetry/project-profile.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/prompt-never-in-telemetry.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/proxy-telemetry.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 21
    const TEST_ENV = {   RETICLE_TELEMETRY_KEY: 'phc_test',   RETICLE_TELEMETRY_URL: 'http://example.test',
  • Network accessline 22
    RETICLE_TELEMETRY_KEY: 'phc_test',   RETICLE_TELEMETRY_URL: 'http://example.test', };
  • Network accessline 23
    RETICLE_TELEMETRY_URL: 'http://example.test',

server/src/telemetry/proxy-telemetry.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/run-telemetry.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/session-metrics.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 172
    it.each([     ['a quoted flow name', `no baseline named 'checkout-v3'`, 'checkout-v3'],     ['a URL', 'failed to reach https://acme.internal/api/orders', 'acme'],
  • Network accessline 173
    ['a quoted flow name', `no baseline named 'checkout-v3'`, 'checkout-v3'],     ['a URL', 'failed to reach https://acme.internal/api/orders', 'acme'],     ['a POSIX path', 'cannot read /Users/ada/work/secret-app/src/App.tsx', 'ada'],
  • Network accessline 174
    ['a URL', 'failed to reach https://acme.internal/api/orders', 'acme'],

server/src/telemetry/session-metrics.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/session-window.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/stack-unknown-reason.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/telemetry-contract.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 559
    expect(ok({ hud: { view: 'My Checkout Page' } })).toBe(false);     expect(ok({ hud: { tabs: 7 } })).toBe(false);     expect(ok({ link: { via: 'https://acme.dev' } })).toBe(false);
  • Network accessline 560
    expect(ok({ hud: { tabs: 7 } })).toBe(false);     expect(ok({ link: { via: 'https://acme.dev' } })).toBe(false);     expect(ok({ harness: { phase: 'started', source: 'agent', hosted: true, journeys: 12 } })).toBe(
  • Network accessline 561
    expect(ok({ link: { via: 'https://acme.dev' } })).toBe(false);

server/src/telemetry/telemetry-identity.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/telemetry-integrity.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 18
    const TEST_ENV = {   RETICLE_TELEMETRY_KEY: 'phc_test',   RETICLE_TELEMETRY_URL: 'http://example.test',
  • Network accessline 19
    RETICLE_TELEMETRY_KEY: 'phc_test',   RETICLE_TELEMETRY_URL: 'http://example.test', };
  • Network accessline 20
    RETICLE_TELEMETRY_URL: 'http://example.test',
  • Access to secretsline 150
    [Credential-related source omitted]

server/src/telemetry/telemetry.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 15
    const TEST_ENV = {   RETICLE_TELEMETRY_KEY: 'phc_test',   RETICLE_TELEMETRY_URL: 'http://example.test',
  • Network accessline 16
    RETICLE_TELEMETRY_KEY: 'phc_test',   RETICLE_TELEMETRY_URL: 'http://example.test', };
  • Network accessline 17
    RETICLE_TELEMETRY_URL: 'http://example.test',
  • Access to secretsline 30
    [Credential-related source omitted]
  • Access to secretsline 75
    [Credential-related source omitted]
  • Network accessline 91
    await t.emit(TelemetryEventKind.DAEMON_STARTED);     expect(calls[0]?.url).toBe('http://example.test/batch/');
  • Network accessline 92
    expect(calls[0]?.url).toBe('http://example.test/batch/');
  • Access to secretsline 94
    [Credential-related source omitted]
  • Network accessline 160
    expect(spawns).toHaveLength(1);     const args = spawns[0]?.args ?? [];     expect(args[2]).toBe('http://example.test/batch/');
  • Network accessline 161
    const args = spawns[0]?.args ?? [];     expect(args[2]).toBe('http://example.test/batch/');     const body = JSON.parse(spawns[0]?.input ?? '{}') as CapturedBatch;
  • Network accessline 162
    expect(args[2]).toBe('http://example.test/batch/');
  • Access to secretsline 164
    [Credential-related source omitted]

server/src/telemetry/telemetry.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 9
    *  * Events are `@reticlehq/core`'s `TelemetryEventSchema`, mapped at the wire into PostHog's capture  * format (https://posthog.com/docs/api/capture) — PostHog is the analytics backend until the hosted service
  • Network accessline 10
    * Events are `@reticlehq/core`'s `TelemetryEventSchema`, mapped at the wire into PostHog's capture  * format (https://posthog.com/docs/api/capture) — PostHog is the analytics backend until the hosted service  * grows its own; a project API 
  • Network accessline 11
    * format (https://posthog.com/docs/api/capture) — PostHog is the analytics backend until the hosted service
  • Network accessline 77
    const POLICY_URL = 'https://github.com/reticlehq/reticle/blob/main/docs/telemetry.md';
  • Network accessline 79
    const DEFAULT_URL = 'https://us.i.posthog.com';
  • Network accessline 159
    "const fs=require('fs');const f=process.argv[2];let b='';" +   'try{b=fs.readFileSync(f,"utf8")}catch{}try{fs.unlinkSync(f)}catch{}' +   "fetch(process.argv[1],{method:'POST',headers:{'content-type':'application/json'}," +
  • Network accessline 160
    'try{b=fs.readFileSync(f,"utf8")}catch{}try{fs.unlinkSync(f)}catch{}' +   "fetch(process.argv[1],{method:'POST',headers:{'content-type':'application/json'}," +   `body:b,signal:AbortSignal.timeout(${DETACHED_SEND_TIMEOUT_MS})})` +
  • Network accessline 161
    "fetch(process.argv[1],{method:'POST',headers:{'content-type':'application/json'}," +
  • Network accessline 289
    * remote URL itself never leaves the machine, only its SHA-256. The URL is normalized first (scheme,  * credentials, `.git` suffix and case removed) so `git@github.com:acme/web.git` and  * `https://github.com/Acme/web` are recognized as the
  • Network accessline 290
    * credentials, `.git` suffix and case removed) so `git@github.com:acme/web.git` and  * `https://github.com/Acme/web` are recognized as the same project rather than two.  */
  • Network accessline 291
    * `https://github.com/Acme/web` are recognized as the same project rather than two.
  • Access to secretsline 529
    [Credential-related source omitted]
  • Access to secretsline 770
    [Credential-related source omitted]

server/src/telemetry/tool-refused.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/tool-refused.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/verification-of.test.ts

  • Executable scriptline 1
    Executable file

server/src/telemetry/verification-of.ts

  • Executable scriptline 1
    Executable file

server/src/test-home.test.ts

  • Executable scriptline 1
    Executable file

server/src/trace.test.ts

  • Executable scriptline 1
    Executable file

server/src/trace.ts

  • Executable scriptline 1
    Executable file
  • Access to secretsline 55
    [Credential-related source omitted]

server/src/verdict-kernel-neutrality.test.ts

  • Executable scriptline 1
    Executable file

server/src/wire-journal.late-project.test.ts

  • Executable scriptline 1
    Executable file

server/src/wire-journal.ts

  • Executable scriptline 1
    Executable file

server/src/workspace-packages.ts

  • Executable scriptline 1
    Executable file

server/vitest.config.ts

  • Executable scriptline 1
    Executable file

skills/README.md

  • Network accessline 3
    One directory per skill, each holding a `SKILL.md`. This is the whole format. The [`skills` CLI](https://github.com/vercel-labs/skills) reads GitHub directly, so **there is no manifest to maintain and no registry to publish to.**
  • Network accessline 17
    There is no publish step. The CLI clones this repo, walks `skills/` up to three levels, and installs every directory whose `SKILL.md` has valid frontmatter. Merging to `main` ships it. [skills.sh](https://skills.sh) builds its directory fro
  • Network accessline 21
    Frontmatter needs `name` and `description`, and the [spec](https://agentskills.io/specification) adds constraints the CLI itself does not enforce but hosts like Claude Code do:

skills/agentic-tdd/SKILL.md

  • Network accessline 5
    metadata:   version: 3.9.0   homepage: https://www.reticle.sh
  • Network accessline 6
    version: 3.9.0   homepage: https://www.reticle.sh   repository: https://github.com/reticlehq/reticle
  • Network accessline 7
    homepage: https://www.reticle.sh
  • Network accessline 8
    repository: https://github.com/reticlehq/reticle
  • Network accessline 15
    This runs the same discipline one level up, using **Reticle** to drive the real app. Not set up? Follow the [`reticle`](https://github.com/reticlehq/reticle/blob/main/skills/reticle/SKILL.md) skill: it installs Reticle, asks the user before
  • Network accessline 78
    Predicate reference: `curl https://docs.reticle.sh/predicates.md`. Everything else: `curl https://docs.reticle.sh/llms.txt`.

skills/audit-my-app/SKILL.md

  • Network accessline 5
    metadata:   version: 3.9.0   homepage: https://www.reticle.sh
  • Network accessline 6
    version: 3.9.0   homepage: https://www.reticle.sh   repository: https://github.com/reticlehq/reticle
  • Network accessline 7
    homepage: https://www.reticle.sh
  • Network accessline 8
    repository: https://github.com/reticlehq/reticle
  • Network accessline 13
    You do not need to understand the codebase to check it. **Reticle** drives every reachable control in the running app and reports the anomalies. Not set up? Follow the [`reticle`](https://github.com/reticlehq/reticle/blob/main/skills/reticl
  • Network accessline 81
    Full capability reference: `curl https://docs.reticle.sh/capabilities.md`. Everything else: `curl https://docs.reticle.sh/llms.txt`.

skills/debug-broken-ui/SKILL.md

  • Network accessline 5
    metadata:   version: 3.9.0   homepage: https://www.reticle.sh
  • Network accessline 6
    version: 3.9.0   homepage: https://www.reticle.sh   repository: https://github.com/reticlehq/reticle
  • Network accessline 7
    homepage: https://www.reticle.sh
  • Network accessline 8
    repository: https://github.com/reticlehq/reticle
  • Network accessline 15
    **Reticle** reads all of it from inside the page. Not set up? Follow the [`reticle`](https://github.com/reticlehq/reticle/blob/main/skills/reticle/SKILL.md) skill: it installs Reticle, asks the user before `init` changes the app's files, an
  • Network accessline 71
    Troubleshooting Reticle itself (as opposed to the app): `curl https://docs.reticle.sh/troubleshooting.md`. Everything else: `curl https://docs.reticle.sh/llms.txt`. If Reticle could not see something you needed, `reticle_session { action: "

skills/design-system-compliance/SKILL.md

  • Network accessline 5
    metadata:   version: 3.9.0   homepage: https://www.reticle.sh
  • Network accessline 6
    version: 3.9.0   homepage: https://www.reticle.sh   repository: https://github.com/reticlehq/reticle
  • Network accessline 7
    homepage: https://www.reticle.sh
  • Network accessline 8
    repository: https://github.com/reticlehq/reticle
  • Network accessline 15
    **Reticle** reads computed styles in the live app and compares them against the project's tokens. Not set up? Follow the [`reticle`](https://github.com/reticlehq/reticle/blob/main/skills/reticle/SKILL.md) skill: it installs Reticle, asks th
  • Network accessline 65
    Everything else, one page at a time: `curl https://docs.reticle.sh/llms.txt`. Design token check missing something you needed? `reticle_session { action: "feedback" }` with `kind: "gap"`.

skills/drive-desktop-app/SKILL.md

  • Network accessline 5
    metadata:   version: 3.9.0   homepage: https://www.reticle.sh
  • Network accessline 6
    version: 3.9.0   homepage: https://www.reticle.sh   repository: https://github.com/reticlehq/reticle
  • Network accessline 7
    homepage: https://www.reticle.sh
  • Network accessline 8
    repository: https://github.com/reticlehq/reticle
  • Network accessline 15
    **Reticle** observes the renderer _and_ the IPC boundary, so a desktop verdict means what a web one does. Not set up? Follow the [`reticle`](https://github.com/reticlehq/reticle/blob/main/skills/reticle/SKILL.md) skill: it installs Reticle,
  • Network accessline 44
    "app": {     "security": {       "csp": "default-src 'self' ipc: http://ipc.localhost; connect-src 'self' ipc: http://ipc.localhost ws://localhost:4400 ws://127.0.0.1:4400"
  • Network accessline 45
    "security": {       "csp": "default-src 'self' ipc: http://ipc.localhost; connect-src 'self' ipc: http://ipc.localhost ws://localhost:4400 ws://127.0.0.1:4400"     }
  • Network accessline 46
    "csp": "default-src 'self' ipc: http://ipc.localhost; connect-src 'self' ipc: http://ipc.localhost ws://localhost:4400 ws://127.0.0.1:4400"
  • Network accessline 52
    Keep `ipc: http://ipc.localhost`: Tauri v2 needs it for `invoke` itself. Dev-only; drop the `ws://` entries from your release config.
  • Network accessline 54
    IPC observation needs **nothing** on the Rust side: an `invoke('load_todos')` already reaches Reticle as `ipc://load_todos`. The [`reticle-tauri`](https://crates.io/crates/reticle-tauri) crate is only for screenshots and headless, and it is
  • Network accessline 86
    Full desktop reference: `curl https://docs.reticle.sh/desktop.md`. Everything else: `curl https://docs.reticle.sh/llms.txt`.

skills/false-green-tests/SKILL.md

  • Network accessline 5
    metadata:   version: 3.9.0   homepage: https://www.reticle.sh
  • Network accessline 6
    version: 3.9.0   homepage: https://www.reticle.sh   repository: https://github.com/reticlehq/reticle
  • Network accessline 7
    homepage: https://www.reticle.sh
  • Network accessline 8
    repository: https://github.com/reticlehq/reticle
  • Network accessline 15
    It uses **Reticle**, which observes the running app from the inside: DOM, network, console, routing, and framework state. Not set up? Follow the [`reticle`](https://github.com/reticlehq/reticle/blob/main/skills/reticle/SKILL.md) skill: it i
  • Network accessline 69
    Index of everything, one page at a time: `curl https://docs.reticle.sh/llms.txt`. Found a case Reticle could not see? `reticle_session { action: "feedback" }` with `kind: "gap"`: that is the signal that decides what gets built.

skills/fix-what-i-pointed-at/SKILL.md

  • Network accessline 5
    metadata:   version: 3.9.0   homepage: https://www.reticle.sh
  • Network accessline 6
    version: 3.9.0   homepage: https://www.reticle.sh   repository: https://github.com/reticlehq/reticle
  • Network accessline 7
    homepage: https://www.reticle.sh
  • Network accessline 8
    repository: https://github.com/reticlehq/reticle
  • Network accessline 15
    Not set up? Follow the [`reticle`](https://github.com/reticlehq/reticle/blob/main/skills/reticle/SKILL.md) skill: it installs Reticle, asks the user before `init` changes the app's files, and proves one flow.
  • Network accessline 64
    Everything else: `curl https://docs.reticle.sh/llms.txt`. If a mark arrived without a usable source pointer, that is worth a `reticle_session { action: "feedback" }` with `kind: "gap"`.

skills/install-and-verify/SKILL.md

  • Network accessline 5
    metadata:   version: 3.9.0   homepage: https://www.reticle.sh
  • Network accessline 6
    version: 3.9.0   homepage: https://www.reticle.sh   repository: https://github.com/reticlehq/reticle
  • Network accessline 7
    homepage: https://www.reticle.sh
  • Network accessline 8
    repository: https://github.com/reticlehq/reticle
  • Instruction override signalline 54
    **Done means a verdict.** `init` exiting 0, the tools appearing, a session listed: each proves wiring, not that anything works. Do not tell the user Reticle is set up until one real flow in their app returned a verdict.
  • Network accessline 58
    > Reticle is free and open source. If this check helped, a star on GitHub helps other developers find it: https://github.com/reticlehq/reticle
  • Network accessline 60
    > Tell the maintainers what you build: Discord https://discord.gg/BwAbzv9ZRz, a call https://calendar.app.google/h9NRDbBBQetyTzWM6, or `npx @reticlehq/server feedback --contact you@example.com "..."`.
  • Network accessline 139
    When the user asked for setup, everything else (running `init`, starting the dev server, opening the browser) is a setup step, not a decision. When `init` cannot finish alone, read `docs/skill-setup.md`, which ships beside this file (`https
  • Network accessline 187
    Fetch one page, not this file again. Every page is plain markdown at `https://docs.reticle.sh/<page>.md`; `https://docs.reticle.sh/llms.txt` lists them all. Do not fetch `llms-full.txt`: it is the whole site.

skills/replay-user-flows/SKILL.md

  • Network accessline 5
    metadata:   version: 3.9.0   homepage: https://www.reticle.sh
  • Network accessline 6
    version: 3.9.0   homepage: https://www.reticle.sh   repository: https://github.com/reticlehq/reticle
  • Network accessline 7
    homepage: https://www.reticle.sh
  • Network accessline 8
    repository: https://github.com/reticlehq/reticle
  • Network accessline 15
    Needs Reticle wired in the project. Not set up? Follow the [`reticle`](https://github.com/reticlehq/reticle/blob/main/skills/reticle/SKILL.md) skill: it installs Reticle, asks the user before `init` changes the app's files, and proves one f
  • Network accessline 96
    Full flow reference, one page: `curl https://docs.reticle.sh/flows.md`. Index of everything: `curl https://docs.reticle.sh/llms.txt`.

skills/reticle/SKILL.md

  • Network accessline 5
    metadata:   version: 3.9.0   homepage: https://www.reticle.sh
  • Network accessline 6
    version: 3.9.0   homepage: https://www.reticle.sh   repository: https://github.com/reticlehq/reticle
  • Network accessline 7
    homepage: https://www.reticle.sh
  • Network accessline 8
    repository: https://github.com/reticlehq/reticle
  • Instruction override signalline 54
    **Done means a verdict.** `init` exiting 0, the tools appearing, a session listed: each proves wiring, not that anything works. Do not tell the user Reticle is set up until one real flow in their app returned a verdict.
  • Network accessline 58
    > Reticle is free and open source. If this check helped, a star on GitHub helps other developers find it: https://github.com/reticlehq/reticle
  • Network accessline 60
    > Tell the maintainers what you build: Discord https://discord.gg/BwAbzv9ZRz, a call https://calendar.app.google/h9NRDbBBQetyTzWM6, or `npx @reticlehq/server feedback --contact you@example.com "..."`.
  • Network accessline 139
    When the user asked for setup, everything else (running `init`, starting the dev server, opening the browser) is a setup step, not a decision. When `init` cannot finish alone, read `docs/skill-setup.md`, which ships beside this file (`https
  • Network accessline 187
    Fetch one page, not this file again. Every page is plain markdown at `https://docs.reticle.sh/<page>.md`; `https://docs.reticle.sh/llms.txt` lists them all. Do not fetch `llms-full.txt`: it is the whole site.

skills/test-error-states/SKILL.md

  • Network accessline 5
    metadata:   version: 3.9.0   homepage: https://www.reticle.sh
  • Network accessline 6
    version: 3.9.0   homepage: https://www.reticle.sh   repository: https://github.com/reticlehq/reticle
  • Network accessline 7
    homepage: https://www.reticle.sh
  • Network accessline 8
    repository: https://github.com/reticlehq/reticle
  • Network accessline 15
    **Reticle** can force those conditions in the running app. Not set up? Follow the [`reticle`](https://github.com/reticlehq/reticle/blob/main/skills/reticle/SKILL.md) skill: it installs Reticle, asks the user before `init` changes the app's 
  • Network accessline 27
    RETICLE_CDP_URL=http://localhost:9222 npx @reticlehq/server@latest mcp
  • Network accessline 80
    Capability reference: `curl https://docs.reticle.sh/capabilities.md`. Everything else: `curl https://docs.reticle.sh/llms.txt`.

skills/verify-cli-run/SKILL.md

  • Network accessline 5
    metadata:   version: 3.9.0   homepage: https://www.reticle.sh
  • Network accessline 6
    version: 3.9.0   homepage: https://www.reticle.sh   repository: https://github.com/reticlehq/reticle
  • Network accessline 7
    homepage: https://www.reticle.sh
  • Network accessline 8
    repository: https://github.com/reticlehq/reticle
  • Network accessline 177
    | See that a command called out to a host | a proxy, or ask the far side afterwards | | Drive an interactive panel or a TUI | a pseudo-terminal; a shell cannot type into one | | Verify a _web app_ rather than a CLI | [Reticle](https://www.r
  • Network accessline 178
    | Drive an interactive panel or a TUI | a pseudo-terminal; a shell cannot type into one | | Verify a _web app_ rather than a CLI | [Reticle](https://www.reticle.sh) and the `verify-ui-change` skill | | Produce a verdict somebody else can re
  • Network accessline 179
    | Verify a _web app_ rather than a CLI | [Reticle](https://www.reticle.sh) and the `verify-ui-change` skill |

skills/verify-form-validation/SKILL.md

  • Network accessline 5
    metadata:   version: 3.9.0   homepage: https://www.reticle.sh
  • Network accessline 6
    version: 3.9.0   homepage: https://www.reticle.sh   repository: https://github.com/reticlehq/reticle
  • Network accessline 7
    homepage: https://www.reticle.sh
  • Network accessline 8
    repository: https://github.com/reticlehq/reticle
  • Network accessline 15
    **Reticle** can drive the real form and check all three failure points at once. Not set up? Follow the [`reticle`](https://github.com/reticlehq/reticle/blob/main/skills/reticle/SKILL.md) skill: it installs Reticle, asks the user before `ini
  • Network accessline 34
    If the check runs on blur rather than on keystroke, move focus to a different control as its own step before asserting: `reticle_act({ sessionId, ref: otherRef, action: "focus" })` on the submit button or the next field, since focusing anyt
  • Network accessline 72
    1. **The error is the app's own**, not the browser's native bubble. 2. **The submit control's `disabled` state is real**, not `opacity`/`cursor` styling that only looks inert. This is the same distinction [`design-system-compliance`](https:
  • Network accessline 73
    2. **The submit control's `disabled` state is real**, not `opacity`/`cursor` styling that only looks inert. This is the same distinction [`design-system-compliance`](https://github.com/reticlehq/reticle/blob/main/skills/design-system-compli
  • Network accessline 83
    Capability reference: `curl https://docs.reticle.sh/capabilities.md`. Everything else: `curl https://docs.reticle.sh/llms.txt`.

skills/verify-keyboard-access/SKILL.md

  • Network accessline 5
    metadata:   version: 3.9.0   homepage: https://www.reticle.sh
  • Network accessline 6
    version: 3.9.0   homepage: https://www.reticle.sh   repository: https://github.com/reticlehq/reticle
  • Network accessline 7
    homepage: https://www.reticle.sh
  • Network accessline 8
    repository: https://github.com/reticlehq/reticle
  • Network accessline 15
    **Reticle** can drive both halves in the running app. Not set up? Follow the [`reticle`](https://github.com/reticlehq/reticle/blob/main/skills/reticle/SKILL.md) skill: it installs Reticle, asks the user before `init` changes the app's files
  • Network accessline 94
    Capability reference: `curl https://docs.reticle.sh/capabilities.md`. Everything else: `curl https://docs.reticle.sh/llms.txt`.

skills/verify-language-switch/SKILL.md

  • Network accessline 5
    metadata:   version: 3.9.0   homepage: https://www.reticle.sh
  • Network accessline 6
    version: 3.9.0   homepage: https://www.reticle.sh   repository: https://github.com/reticlehq/reticle
  • Network accessline 7
    homepage: https://www.reticle.sh
  • Network accessline 8
    repository: https://github.com/reticlehq/reticle
  • Network accessline 15
    **Reticle** can prove all three in the running app, with no test code. Not set up? Follow the [`reticle`](https://github.com/reticlehq/reticle/blob/main/skills/reticle/SKILL.md) skill: it installs Reticle, asks the user before `init` change
  • Network accessline 109
    Capability reference: `curl https://docs.reticle.sh/capabilities.md`. Everything else: `curl https://docs.reticle.sh/llms.txt`.

skills/verify-login-logout/SKILL.md

  • Network accessline 5
    metadata:   version: 3.9.0   homepage: https://www.reticle.sh
  • Network accessline 6
    version: 3.9.0   homepage: https://www.reticle.sh   repository: https://github.com/reticlehq/reticle
  • Network accessline 7
    homepage: https://www.reticle.sh
  • Network accessline 8
    repository: https://github.com/reticlehq/reticle
  • Network accessline 15
    **Reticle** can check all three in the running app. Not set up? Follow the [`reticle`](https://github.com/reticlehq/reticle/blob/main/skills/reticle/SKILL.md) skill: it installs Reticle, asks the user before `init` changes the app's files, 
  • Network accessline 92
    Capability reference: `curl https://docs.reticle.sh/capabilities.md`. Everything else: `curl https://docs.reticle.sh/llms.txt`.

skills/verify-optimistic-update/SKILL.md

  • Network accessline 5
    metadata:   version: 3.9.0   homepage: https://www.reticle.sh
  • Network accessline 6
    version: 3.9.0   homepage: https://www.reticle.sh   repository: https://github.com/reticlehq/reticle
  • Network accessline 7
    homepage: https://www.reticle.sh
  • Network accessline 8
    repository: https://github.com/reticlehq/reticle
  • Network accessline 15
    **Reticle** can make it happen in the running app. Not set up? Follow the [`reticle`](https://github.com/reticlehq/reticle/blob/main/skills/reticle/SKILL.md) skill: it installs Reticle, asks the user before `init` changes the app's files, a
  • Network accessline 103
    Capability reference: `curl https://docs.reticle.sh/capabilities.md`. Everything else: `curl https://docs.reticle.sh/llms.txt`.

skills/verify-pagination/SKILL.md

  • Network accessline 5
    metadata:   version: 3.9.0   homepage: https://www.reticle.sh
  • Network accessline 6
    version: 3.9.0   homepage: https://www.reticle.sh   repository: https://github.com/reticlehq/reticle
  • Network accessline 7
    homepage: https://www.reticle.sh
  • Network accessline 8
    repository: https://github.com/reticlehq/reticle
  • Network accessline 15
    **Reticle** can check all of that in the running app, against the requests the page really made. Not set up? Follow the [`reticle`](https://github.com/reticlehq/reticle/blob/main/skills/reticle/SKILL.md) skill: it installs Reticle, asks the
  • Network accessline 110
    Capability reference: `curl https://docs.reticle.sh/capabilities.md`. Everything else: `curl https://docs.reticle.sh/llms.txt`.

skills/verify-ui-change/SKILL.md

  • Network accessline 5
    metadata:   version: 3.9.0   homepage: https://www.reticle.sh
  • Network accessline 6
    version: 3.9.0   homepage: https://www.reticle.sh   repository: https://github.com/reticlehq/reticle
  • Network accessline 7
    homepage: https://www.reticle.sh
  • Network accessline 8
    repository: https://github.com/reticlehq/reticle
  • Network accessline 23
    - **A session comes back** → go to step 2. - **Tools do not exist** → Reticle is not installed. Ask the user first: `init` changes package.json, the lockfile and the build config. If they agree, run `RETICLE_INSTALL_SOURCE=npx_skill npx @re
  • Network accessline 24
    - **Tools do not exist** → Reticle is not installed. Ask the user first: `init` changes package.json, the lockfile and the build config. If they agree, run `RETICLE_INSTALL_SOURCE=npx_skill npx @reticlehq/server@latest init`, then keep goin
  • Network accessline 73
    More detail, fetchable one page at a time: `curl https://docs.reticle.sh/llms.txt` for the index, then the single page you need (`https://docs.reticle.sh/tools/act-and-wait.md`, `https://docs.reticle.sh/predicates.md`, `https://docs.reticle

skills/verify-unattended/SKILL.md

  • Network accessline 5
    metadata:   version: 3.9.0   homepage: https://www.reticle.sh
  • Network accessline 6
    version: 3.9.0   homepage: https://www.reticle.sh   repository: https://github.com/reticlehq/reticle
  • Network accessline 7
    homepage: https://www.reticle.sh
  • Network accessline 8
    repository: https://github.com/reticlehq/reticle
  • Network accessline 75
    reticle_run { tool: "reticle_lease", args: { action: "acquire", url: "http://localhost:<port>/" } }
  • Network accessline 102
    npx @reticlehq/server verify http://localhost:<port>/
  • Network accessline 105
    Exit 0 is a pass. It drives the app and re-verifies **saved flows**, so if the project has none, it will tell you nothing was checked. That is not a pass. Record one first, or say plainly that there was nothing to verify. With no saved flow

spec-runner/LICENSE

  • Network accessline 2
    Apache License                            Version 2.0, January 2004                         http://www.apache.org/licenses/
  • Network accessline 4
    http://www.apache.org/licenses/
  • Network accessline 196
    http://www.apache.org/licenses/LICENSE-2.0

spec-runner/README.md

  • Network accessline 5
    Part of [Reticle](https://github.com/reticlehq/reticle) — the in-app verification layer for AI agents. Use this package when you want the same inside-the-app assertions (signals, store state, network counts — the things a DOM-only tool can'
  • Network accessline 42
    const booted = await bootSession({ driveUrl: 'http://localhost:4310', headless: true });
  • Network accessline 68
    - [Testing guide](https://github.com/reticlehq/reticle/blob/main/docs/testing.md)
  • Network accessline 69
    - [Getting started with Reticle](https://github.com/reticlehq/reticle/blob/main/docs/getting-started.md)

spec-runner/package.json

  • Executable scriptline 1
    Executable file
  • Network accessline 36
    "repository": {     "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",
  • Network accessline 37
    "type": "git",     "url": "git+https://github.com/reticlehq/reticle.git",     "directory": "spec-runner"
  • Network accessline 38
    "url": "git+https://github.com/reticlehq/reticle.git",
  • Network accessline 39
    "directory": "spec-runner"   },   "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 40
    },   "homepage": "https://github.com/reticlehq/reticle#readme",   "bugs": "https://github.com/reticlehq/reticle/issues",
  • Network accessline 41
    "homepage": "https://github.com/reticlehq/reticle#readme",
  • Network accessline 42
    "bugs": "https://github.com/reticlehq/reticle/issues",

spec-runner/src/boot.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 61
    let caught: unknown;     try {       await bootSession({ driveUrl: 'http://localhost:5173', port });
  • Network accessline 62
    try {       await bootSession({ driveUrl: 'http://localhost:5173', port });       expect.unreachable('bootSession should have rejected against an already-taken port');
  • Network accessline 63
    await bootSession({ driveUrl: 'http://localhost:5173', port });
  • Network accessline 115
    let caught: unknown;     try {       await bootSession({ driveUrl: 'http://localhost:5173', port });
  • Network accessline 116
    try {       await bootSession({ driveUrl: 'http://localhost:5173', port });       expect.unreachable('bootSession should have rejected against a daemon-held port');
  • Network accessline 117
    await bootSession({ driveUrl: 'http://localhost:5173', port });
  • Network accessline 192
    let caught: unknown;     try {       await bootSession({ driveUrl: 'http://localhost:5173', port, startServer });
  • Network accessline 193
    try {       await bootSession({ driveUrl: 'http://localhost:5173', port, startServer });       expect.unreachable('bootSession should have rejected when bridge.ready lost the race');
  • Network accessline 194
    await bootSession({ driveUrl: 'http://localhost:5173', port, startServer });
  • Network accessline 214
    let caught: unknown;     try {       await bootSession({ driveUrl: 'http://localhost:5173', port, startServer });
  • Network accessline 215
    try {       await bootSession({ driveUrl: 'http://localhost:5173', port, startServer });       expect.unreachable('bootSession should have rejected');
  • Network accessline 216
    await bootSession({ driveUrl: 'http://localhost:5173', port, startServer });

spec-runner/src/boot.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/context/clock.test.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/context/clock.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/context/input-mode.test.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/context/input-mode.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/context/matchers.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/context/resolve.test.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/context/resolve.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/flow-spec.test.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/flow-spec.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/index.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/junit.char-range.test.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/junit.test.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/junit.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/matchers.absent.test.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/matchers.element.test.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/matchers.net.test.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/matchers.signal.test.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/orphan-modules.test.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/outcome/constants.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/outcome/skip.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/outcome/success-assert.test.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/outcome/success-assert.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/register.test.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/register.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/registry.test.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/registry.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/runner.snapshot.test.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/runner.test.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/runner.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/spec-types.test.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/spec.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/summary.test.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/summary.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/test-context.act.test.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/test-context.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/types.ts

  • Executable scriptline 1
    Executable file

spec-runner/src/verified-gate.test.ts

  • Executable scriptline 1
    Executable file

spec-runner/vitest.config.ts

  • Executable scriptline 1
    Executable file

test/crash-isolation.integration.test.ts

  • Executable scriptline 1
    Executable file

test/frameworks.integration.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 99
    async function probe(port: number): Promise<number | null> {   try {     const res = await fetch(`http://localhost:${port}/`);
  • Network accessline 100
    try {     const res = await fetch(`http://localhost:${port}/`);     await res.arrayBuffer(); // drain, so the socket is released between probes
  • Network accessline 101
    const res = await fetch(`http://localhost:${port}/`);
  • Network accessline 195
    await page       .goto(`http://localhost:${port}/`, { waitUntil: 'load', timeout: 30_000 })
  • Network accessline 196
    .goto(`http://localhost:${port}/`, { waitUntil: 'load', timeout: 30_000 })

test/global-setup.ts

  • Executable scriptline 1
    Executable file

test/lease-input.integration.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 57
    });   await new Promise<void>((r) => server.listen(0, r));   url = `http://localhost:${String((server.address() as AddressInfo).port)}/`;
  • Network accessline 58
    await new Promise<void>((r) => server.listen(0, r));   url = `http://localhost:${String((server.address() as AddressInfo).port)}/`; });
  • Network accessline 59
    url = `http://localhost:${String((server.address() as AddressInfo).port)}/`;

test/next-withreticle.integration.test.ts

  • Executable scriptline 1
    Executable file

test/page-error.integration.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 43
    });   await new Promise<void>((r) => server.listen(0, '127.0.0.1', r));   baseUrl = `http://127.0.0.1:${String((server.address() as AddressInfo).port)}/`;
  • Network accessline 44
    await new Promise<void>((r) => server.listen(0, '127.0.0.1', r));   baseUrl = `http://127.0.0.1:${String((server.address() as AddressInfo).port)}/`; });
  • Network accessline 45
    baseUrl = `http://127.0.0.1:${String((server.address() as AddressInfo).port)}/`;

test/pool.integration.test.ts

  • Executable scriptline 1
    Executable file
  • Network accessline 77
    });   await new Promise<void>((r) => server.listen(0, r));   url = `http://localhost:${String((server.address() as AddressInfo).port)}/`;
  • Network accessline 78
    await new Promise<void>((r) => server.listen(0, r));   url = `http://localhost:${String((server.address() as AddressInfo).port)}/`; });
  • Network accessline 79
    url = `http://localhost:${String((server.address() as AddressInfo).port)}/`;
  • Access to secretsline 216
    [Credential-related source omitted]
  • Access to secretsline 225
    [Credential-related source omitted]
  • Access to secretsline 240
    [Credential-related source omitted]
  • Access to secretsline 246
    [Credential-related source omitted]
  • Network accessline 316
    });     await new Promise<void>((ok) => redirectServer.listen(0, '127.0.0.1', ok));     origin = `http://127.0.0.1:${String((redirectServer.address() as AddressInfo).port)}`;
  • Network accessline 317
    await new Promise<void>((ok) => redirectServer.listen(0, '127.0.0.1', ok));     origin = `http://127.0.0.1:${String((redirectServer.address() as AddressInfo).port)}`;     pool = new BrowserPool(recordingLauncher(pages), {
  • Network accessline 318
    origin = `http://127.0.0.1:${String((redirectServer.address() as AddressInfo).port)}`;

tsconfig.base.json

  • Network accessline 1
    {   "$schema": "https://json.schemastore.org/tsconfig",
  • Network accessline 2
    "$schema": "https://json.schemastore.org/tsconfig",

turbo.json

  • Network accessline 1
    {   "$schema": "https://turbo.build/schema.json",
  • Network accessline 2
    "$schema": "https://turbo.build/schema.json",

typedoc.json

  • Network accessline 1
    {   "$schema": "https://typedoc.org/schema.json",
  • Network accessline 2
    "$schema": "https://typedoc.org/schema.json",
  • Network accessline 16
    "hideGenerator": true,   "navigationLinks": {     "Guides": "https://github.com/reticlehq/reticle/tree/main/docs",
  • Network accessline 17
    "navigationLinks": {     "Guides": "https://github.com/reticlehq/reticle/tree/main/docs",     "GitHub": "https://github.com/reticlehq/reticle"
  • Network accessline 18
    "Guides": "https://github.com/reticlehq/reticle/tree/main/docs",
  • Network accessline 19
    "GitHub": "https://github.com/reticlehq/reticle"

vitest.config.ts

  • Executable scriptline 1
    Executable file

vitest.integration.config.ts

  • Executable scriptline 1
    Executable file

vitest.shared.ts

  • Executable scriptline 1
    Executable file

vitest.temp-home.ts

  • Executable scriptline 1
    Executable file

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Signal confidence: 500 facts

and 450 more

Only the first 500 facts are listed.

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexNativeManifest AGENTS.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md docs/skill.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md docs/skill.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md docs/skill.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md docs/skill.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.

Explore alternatives and comparisons

Add this badge to your README

It updates every night and links to this page.

reticlehq/reticle: #751 on hotskills, 1.2k stars

[![reticlehq/reticle on hotskills](https://hotskills.dev/badge/reticlehq-reticle.svg)](https://hotskills.dev/skill/reticlehq-reticle/)