@reticlehq/server 2.13.1 → 2.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SKILL.md +8 -18
- package/bin/reticle.js +3 -0
- package/dist/bridge/auth-failure-reason.js +12 -1
- package/dist/bridge/bridge-security.d.ts +8 -0
- package/dist/bridge/bridge-security.js +6 -1
- package/dist/bridge/bridge.d.ts +3 -0
- package/dist/bridge/bridge.js +23 -1
- package/dist/bridge/bridge.test-harness.d.ts +10 -1
- package/dist/bridge/bridge.test-harness.js +7 -1
- package/dist/bridge/pairing-token.d.ts +17 -0
- package/dist/bridge/pairing-token.js +26 -0
- package/dist/bridge/token-auth.d.ts +7 -0
- package/dist/bridge/token-auth.js +7 -1
- package/dist/capsule/capsule-store.d.ts +4 -4
- package/dist/capsule/capsule.d.ts +1 -1
- package/dist/capsule/capsule.js +3 -3
- package/dist/capsule/causal-summary.d.ts +21 -1
- package/dist/capsule/causal-summary.js +8 -6
- package/dist/capsule/divergence.d.ts +1 -1
- package/dist/capsule/divergence.js +26 -10
- package/dist/chromium-launch-options.d.ts +2 -1
- package/dist/cli/adhoc-verdict.d.ts +58 -0
- package/dist/cli/adhoc-verdict.js +115 -0
- package/dist/cli/chromium-hint.d.ts +18 -4
- package/dist/cli/chromium-hint.js +54 -6
- package/dist/cli/cli-doctor.js +1 -2
- package/dist/cli/cli-flow-commands.d.ts +16 -2
- package/dist/cli/cli-flow-commands.js +28 -9
- package/dist/cli/cli-parse-feedback.js +1 -1
- package/dist/cli/cli-parse.d.ts +2 -1
- package/dist/cli/cli-parse.js +38 -0
- package/dist/cli/cli-port.d.ts +5 -13
- package/dist/cli/cli-port.js +5 -38
- package/dist/cli/cli-update-commands.js +4 -4
- package/dist/cli/cli-verify.d.ts +24 -7
- package/dist/cli/cli-verify.js +87 -13
- package/dist/cli/cloud-keystore.d.ts +2 -1
- package/dist/cli/cloud-login.d.ts +2 -1
- package/dist/cli/cloud-session.d.ts +2 -1
- package/dist/cli/cloud-session.js +1 -1
- package/dist/cli/daemon-start-options.d.ts +2 -1
- package/dist/cli/device-flow.d.ts +2 -2
- package/dist/cli/doctor-daemon-line.d.ts +2 -1
- package/dist/cli/doctor-project-line.d.ts +2 -1
- package/dist/cli/doctor-rows.d.ts +2 -1
- package/dist/cli/drive-attach.d.ts +4 -3
- package/dist/cli/gate-hook-message.d.ts +2 -1
- package/dist/cli/status-next-action.js +10 -11
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +21 -9
- package/dist/cloud/account-state.d.ts +20 -0
- package/dist/cloud/account-state.js +65 -0
- package/dist/cloud/cloud-sync.d.ts +46 -3
- package/dist/cloud/cloud-sync.js +116 -0
- package/dist/cloud/sync-cycle.d.ts +5 -4
- package/dist/cloud/sync-cycle.js +1 -1
- package/dist/cloud/sync-daemon.d.ts +3 -19
- package/dist/cloud/sync-daemon.js +2 -2
- package/dist/crawl/crawl-tools.js +1 -1
- package/dist/crawl/crawl.d.ts +5 -5
- package/dist/crawl/crawl.js +138 -4
- package/dist/daemon/daemon-resilience.d.ts +3 -2
- package/dist/daemon/daemon-resilience.js +43 -4
- package/dist/daemon/daemon-resolve.d.ts +0 -9
- package/dist/daemon/daemon-resolve.js +2 -2
- package/dist/daemon/dev-servers.d.ts +1 -1
- package/dist/daemon/dev-servers.js +1 -1
- package/dist/daemon/loopback-alias.d.ts +2 -1
- package/dist/daemon/startup-failure.d.ts +11 -0
- package/dist/daemon/startup-failure.js +46 -0
- package/dist/events/contradictions.d.ts +10 -16
- package/dist/events/contradictions.js +149 -17
- package/dist/events/declared.d.ts +13 -1
- package/dist/events/declared.js +59 -3
- package/dist/events/echo-mismatch.js +75 -6
- package/dist/events/lineage.d.ts +52 -0
- package/dist/events/lineage.js +122 -0
- package/dist/events/net-evidence.d.ts +21 -0
- package/dist/events/net-evidence.js +81 -0
- package/dist/events/predicate-console.d.ts +13 -0
- package/dist/events/predicate-console.js +138 -0
- package/dist/events/predicate-element.d.ts +13 -0
- package/dist/events/predicate-element.js +214 -0
- package/dist/events/predicate-eval.d.ts +15 -3
- package/dist/events/predicate-eval.js +128 -110
- package/dist/events/predicate-parse.js +34 -1
- package/dist/events/predicate-request-body.d.ts +50 -0
- package/dist/events/predicate-request-body.js +120 -0
- package/dist/events/predicate-route.d.ts +21 -1
- package/dist/events/predicate-route.js +149 -21
- package/dist/events/predicate-schema.d.ts +8 -1
- package/dist/events/predicate-schema.js +34 -0
- package/dist/events/predicate.d.ts +2 -0
- package/dist/events/predicate.js +52 -159
- package/dist/events/split-text-miss.d.ts +6 -4
- package/dist/events/split-text-miss.js +12 -5
- package/dist/flows/affected-tools.js +22 -9
- package/dist/flows/annotate.d.ts +2 -1
- package/dist/flows/annotate.js +19 -1
- package/dist/flows/coverage.d.ts +2 -2
- package/dist/flows/flake.d.ts +3 -3
- package/dist/flows/flow-expect-grammar.d.ts +33 -0
- package/dist/flows/flow-expect-grammar.js +155 -0
- package/dist/flows/flow-replay-run.d.ts +1 -1
- package/dist/flows/flow-replay-run.js +28 -15
- package/dist/flows/flow-replay.d.ts +10 -0
- package/dist/flows/flow-replay.js +57 -22
- package/dist/flows/flow-secret-field.d.ts +14 -0
- package/dist/flows/flow-secret-field.js +22 -0
- package/dist/flows/flow-step-runners.d.ts +1 -0
- package/dist/flows/flow-step-runners.js +91 -34
- package/dist/flows/flow-success.js +22 -0
- package/dist/flows/flow-tools.js +27 -8
- package/dist/flows/flow-upload-resolve.d.ts +23 -0
- package/dist/flows/flow-upload-resolve.js +46 -0
- package/dist/flows/flows.d.ts +15 -0
- package/dist/flows/flows.js +17 -14
- package/dist/flows/git-changed.d.ts +23 -4
- package/dist/flows/git-changed.js +32 -6
- package/dist/flows/heal-run.js +2 -2
- package/dist/flows/predicate-to-expect.d.ts +3 -2
- package/dist/flows/predicate-to-expect.js +11 -5
- package/dist/flows/recording-backtrack.d.ts +24 -0
- package/dist/flows/recording-backtrack.js +73 -0
- package/dist/flows/recordings.d.ts +6 -0
- package/dist/flows/replay-halt.d.ts +26 -0
- package/dist/flows/replay-halt.js +30 -0
- package/dist/flows/replay.d.ts +0 -8
- package/dist/flows/replay.js +15 -3
- package/dist/flows/suite-flakes.d.ts +2 -1
- package/dist/flows/verify-change-tools.js +16 -4
- package/dist/honesty/already-true.d.ts +14 -0
- package/dist/honesty/already-true.js +47 -4
- package/dist/honesty/blind-spots.d.ts +3 -1
- package/dist/honesty/blind-spots.js +24 -1
- package/dist/honesty/body-capture-remedy.d.ts +42 -0
- package/dist/honesty/body-capture-remedy.js +95 -0
- package/dist/honesty/feature-capture.d.ts +3 -2
- package/dist/honesty/feature-capture.js +1 -1
- package/dist/honesty/gap-ledger.d.ts +1 -1
- package/dist/honesty/gap-ledger.js +1 -1
- package/dist/honesty/instrumentation-gaps.d.ts +8 -1
- package/dist/honesty/instrumentation-gaps.js +12 -2
- package/dist/honesty/observability.d.ts +4 -3
- package/dist/honesty/tool-hit-rate.d.ts +3 -2
- package/dist/honesty/uncaptured-bodies.d.ts +3 -1
- package/dist/honesty/uncaptured-bodies.js +6 -2
- package/dist/honesty/unsettled.d.ts +9 -0
- package/dist/honesty/unsettled.js +45 -0
- package/dist/honesty/verified.d.ts +32 -1
- package/dist/honesty/verified.js +37 -10
- package/dist/impact/impact-store.d.ts +5 -14
- package/dist/impact/impact-store.js +49 -6
- package/dist/index.js +1 -1
- package/dist/input/network-detail.d.ts +26 -1
- package/dist/input/network-detail.js +44 -12
- package/dist/input/network-mock-tools.js +24 -17
- package/dist/input/real-input.js +1 -1
- package/dist/input/viewport-tools.js +25 -13
- package/dist/intent/inline-intent.d.ts +0 -10
- package/dist/intent/inline-intent.js +1 -1
- package/dist/intent/intent-shard-store.d.ts +3 -2
- package/dist/intent/intent-shard-store.js +1 -1
- package/dist/intent/intent-shard.d.ts +14 -14
- package/dist/intent/intent-shard.js +4 -4
- package/dist/intent/intent-store.d.ts +1 -1
- package/dist/intent/intent-store.js +1 -1
- package/dist/intent/intent-subject.d.ts +2 -1
- package/dist/intent/open-intents.d.ts +3 -2
- package/dist/license/license.d.ts +4 -4
- package/dist/license/license.js +1 -1
- package/dist/mcp/attach-memory.d.ts +2 -1
- package/dist/mcp/client-identity.d.ts +2 -1
- package/dist/mcp/mcp-outage.d.ts +1 -1
- package/dist/mcp/mcp-outage.js +1 -1
- package/dist/mcp/mcp-proxy.d.ts +3 -1
- package/dist/mcp/mcp-proxy.js +32 -7
- package/dist/mcp/mcp.js +3 -1
- package/dist/mcp/proxy-handshake.d.ts +2 -1
- package/dist/mcp/proxy-idle-exit.d.ts +45 -0
- package/dist/mcp/proxy-idle-exit.js +94 -0
- package/dist/mcp/server-instructions.d.ts +2 -1
- package/dist/memory/project-memory.d.ts +2 -3
- package/dist/memory/project-memory.js +1 -1
- package/dist/oracles/propose-consequences.js +5 -5
- package/dist/oracles/self-instrument.d.ts +2 -2
- package/dist/oracles/self-instrument.js +1 -1
- package/dist/platform.d.ts +3 -5
- package/dist/platform.js +3 -5
- package/dist/pool/browser-pool.d.ts +92 -0
- package/dist/pool/browser-pool.js +119 -5
- package/dist/pool/playwright-launcher.js +29 -2
- package/dist/pool/storage-seed.d.ts +23 -0
- package/dist/pool/storage-seed.js +198 -0
- package/dist/project/artifact-root.d.ts +2 -1
- package/dist/project/memory-fs.d.ts +2 -1
- package/dist/project/reticle-dir.js +1 -1
- package/dist/project/session-root.d.ts +8 -0
- package/dist/project/session-root.js +9 -2
- package/dist/runs/reticle-runner.d.ts +14 -1
- package/dist/runs/reticle-runner.js +39 -2
- package/dist/session/attachment-history.d.ts +2 -1
- package/dist/session/fake-session.d.ts +37 -0
- package/dist/session/fake-session.js +81 -0
- package/dist/session/lease-visibility.d.ts +2 -1
- package/dist/session/live-control-tools.js +6 -0
- package/dist/session/no-session-diagnosis.d.ts +17 -1
- package/dist/session/no-session-diagnosis.js +32 -6
- package/dist/session/no-session-next-action.d.ts +14 -0
- package/dist/session/no-session-next-action.js +18 -0
- package/dist/session/no-session-watch.js +46 -3
- package/dist/session/registered-projects.d.ts +54 -0
- package/dist/session/registered-projects.js +73 -0
- package/dist/session/review-store.d.ts +2 -1
- package/dist/session/session-health.d.ts +62 -1
- package/dist/session/session-health.js +82 -2
- package/dist/session/session-manager.d.ts +11 -1
- package/dist/session/session-manager.js +18 -3
- package/dist/session/session-replaced.d.ts +24 -0
- package/dist/session/session-replaced.js +29 -0
- package/dist/session/session-successor.js +20 -4
- package/dist/session/session.d.ts +13 -5
- package/dist/session/session.js +31 -23
- package/dist/setup/agent-configs.d.ts +3 -2
- package/dist/setup/agent-writer.d.ts +3 -2
- package/dist/setup/approval-migration.d.ts +2 -1
- package/dist/setup/approval-migration.js +1 -1
- package/dist/setup/auto-approve.d.ts +11 -19
- package/dist/setup/auto-approve.js +15 -12
- package/dist/{init → setup}/confirm.js +1 -1
- package/dist/setup/desktop-shape.d.ts +3 -2
- package/dist/setup/drive-agent.d.ts +2 -3
- package/dist/setup/drive-agent.js +1 -1
- package/dist/setup/drive-plan.d.ts +3 -2
- package/dist/setup/ensure-daemon.d.ts +2 -1
- package/dist/setup/existing-app.d.ts +12 -0
- package/dist/setup/existing-app.js +13 -0
- package/dist/setup/init-host.d.ts +11 -0
- package/dist/setup/init-host.js +26 -0
- package/dist/setup/init-runtime.d.ts +4 -10
- package/dist/setup/init-runtime.js +23 -16
- package/dist/setup/license-key.d.ts +2 -1
- package/dist/setup/listeners.d.ts +2 -1
- package/dist/setup/loopback-probe-urls.d.ts +18 -0
- package/dist/setup/loopback-probe-urls.js +52 -0
- package/dist/setup/node-effects.d.ts +3 -0
- package/dist/setup/node-effects.js +26 -11
- package/dist/setup/page-probe.d.ts +5 -0
- package/dist/setup/relaunch.d.ts +2 -1
- package/dist/setup/run-setup.d.ts +5 -1
- package/dist/setup/run-setup.js +141 -50
- package/dist/setup/setup-command.d.ts +3 -2
- package/dist/setup/setup-command.js +8 -0
- package/dist/setup/setup-options.d.ts +5 -3
- package/dist/setup/setup-options.js +3 -2
- package/dist/setup/wait-progress.d.ts +28 -0
- package/dist/setup/wait-progress.js +43 -0
- package/dist/telemetry/app-instrumented.d.ts +2 -1
- package/dist/telemetry/app-instrumented.js +1 -1
- package/dist/telemetry/automation-hint.d.ts +1 -1
- package/dist/telemetry/automation-hint.js +1 -1
- package/dist/telemetry/cli-telemetry.js +1 -1
- package/dist/telemetry/connect-failure.d.ts +1 -1
- package/dist/telemetry/connect-failure.js +1 -1
- package/dist/telemetry/crash-cause.d.ts +3 -2
- package/dist/telemetry/crash-cause.js +1 -1
- package/dist/telemetry/daemon-telemetry.d.ts +3 -2
- package/dist/telemetry/daemon-telemetry.js +1 -1
- package/dist/telemetry/error-class.d.ts +3 -2
- package/dist/telemetry/error-class.js +1 -1
- package/dist/telemetry/feedback-cli.js +1 -1
- package/dist/telemetry/feedback-context.d.ts +3 -2
- package/dist/telemetry/feedback-context.js +5 -4
- package/dist/telemetry/feedback-local.d.ts +3 -2
- package/dist/telemetry/feedback.d.ts +4 -3
- package/dist/telemetry/feedback.js +1 -1
- package/dist/telemetry/git-facts.d.ts +2 -2
- package/dist/telemetry/git-facts.js +1 -1
- package/dist/telemetry/identify.d.ts +1 -1
- package/dist/telemetry/identify.js +1 -1
- package/dist/telemetry/init-telemetry.d.ts +2 -14
- package/dist/telemetry/init-telemetry.js +4 -13
- package/dist/telemetry/install-source.d.ts +7 -13
- package/dist/telemetry/install-source.js +7 -29
- package/dist/telemetry/license-activation.d.ts +3 -2
- package/dist/telemetry/license-activation.js +1 -1
- package/dist/telemetry/machine-snapshot.d.ts +1 -1
- package/dist/telemetry/mcp-connection.js +1 -1
- package/dist/telemetry/project-profile.d.ts +0 -14
- package/dist/telemetry/project-profile.js +1 -1
- package/dist/telemetry/proxy-telemetry.js +1 -1
- package/dist/telemetry/session-metrics.d.ts +1 -1
- package/dist/telemetry/session-metrics.js +1 -1
- package/dist/telemetry/telemetry.d.ts +1 -17
- package/dist/telemetry/telemetry.js +4 -4
- package/dist/telemetry/tool-refused.d.ts +1 -1
- package/dist/telemetry/tool-refused.js +1 -1
- package/dist/tools/act-observation.d.ts +3 -2
- package/dist/tools/act-preflight.js +8 -3
- package/dist/tools/act-target.d.ts +4 -0
- package/dist/tools/act-target.js +14 -5
- package/dist/tools/act-tools.d.ts +0 -2
- package/dist/tools/act-tools.js +45 -15
- package/dist/tools/assert-source.d.ts +30 -0
- package/dist/tools/assert-source.js +21 -0
- package/dist/tools/assert-verdict.d.ts +1 -1
- package/dist/tools/assert-verdict.js +14 -4
- package/dist/tools/browser-tools.js +28 -8
- package/dist/tools/complete-snapshot.d.ts +3 -2
- package/dist/tools/dynamic-tools.js +8 -0
- package/dist/tools/error-recovery.d.ts +10 -0
- package/dist/tools/error-recovery.js +23 -0
- package/dist/tools/feedback-tools.js +1 -1
- package/dist/tools/invoke-tool.js +2 -0
- package/dist/tools/lease-tools.d.ts +48 -20
- package/dist/tools/lease-tools.js +311 -76
- package/dist/tools/lineage-tools.d.ts +14 -0
- package/dist/tools/lineage-tools.js +64 -0
- package/dist/tools/merge-tools.js +1 -3
- package/dist/tools/navigate-arrival.d.ts +45 -1
- package/dist/tools/navigate-arrival.js +39 -6
- package/dist/tools/navigate-result.d.ts +8 -1
- package/dist/tools/navigate-result.js +14 -4
- package/dist/tools/numeric-bounds.d.ts +0 -11
- package/dist/tools/numeric-bounds.js +4 -4
- package/dist/tools/observe-tools.js +22 -26
- package/dist/tools/observed-nothing.d.ts +9 -0
- package/dist/tools/observed-nothing.js +2 -1
- package/dist/tools/read-tools.js +12 -17
- package/dist/tools/real-input-attempt.d.ts +14 -6
- package/dist/tools/real-input-attempt.js +75 -18
- package/dist/tools/reconcile-tools.js +2 -1
- package/dist/tools/reload-result.d.ts +6 -1
- package/dist/tools/reload-result.js +7 -2
- package/dist/tools/resolve-target.d.ts +7 -1
- package/dist/tools/resolve-target.js +72 -9
- package/dist/tools/settle-in-flight.d.ts +1 -1
- package/dist/tools/settle-in-flight.js +9 -2
- package/dist/tools/snapshot-delta.d.ts +24 -1
- package/dist/tools/snapshot-delta.js +66 -7
- package/dist/tools/tool-names.d.ts +1 -0
- package/dist/tools/tool-names.js +1 -0
- package/dist/tools/tool-surface.js +20 -2
- package/dist/tools/tools.js +120 -11
- package/dist/tools/verify-next-baton.d.ts +2 -1
- package/dist/update/sdk-sync.d.ts +1 -1
- package/dist/update/sdk-sync.js +1 -1
- package/dist/update/updater.js +1 -1
- package/dist/version/sdk-fix.d.ts +2 -1
- package/dist/version/version-skew.d.ts +0 -8
- package/dist/version/version-skew.js +1 -1
- package/docs/README.md +8 -6
- package/docs/actions.mdx +1 -1
- package/docs/agent-cheatsheet.md +4 -2
- package/docs/architecture.md +1 -1
- package/docs/cli/mcp.mdx +3 -1
- package/docs/cli/watch.mdx +1 -1
- package/docs/cli.mdx +1 -1
- package/docs/desktop.mdx +1 -1
- package/docs/docs.json +8 -3
- package/docs/faq.mdx +9 -0
- package/docs/first-drive.md +136 -0
- package/docs/frameworks.mdx +29 -7
- package/docs/gate-plan.md +2 -2
- package/docs/gates.md +19 -11
- package/docs/getting-started.md +7 -1
- package/docs/http-transport.md +164 -0
- package/docs/index.mdx +5 -3
- package/docs/install-manual.mdx +1 -1
- package/docs/packages/tauri.mdx +1 -1
- package/docs/packages.mdx +15 -3
- package/docs/platform-integration.md +1 -1
- package/docs/predicates.mdx +2 -0
- package/docs/system-map.md +2 -2
- package/docs/telemetry-contract.md +4 -4
- package/docs/telemetry-events.mdx +1 -1
- package/docs/telemetry.md +3 -3
- package/docs/tools-navigate.mdx +14 -6
- package/docs/usage.md +4 -4
- package/package.json +7 -4
- package/dist/init/agent-rules.d.ts +0 -116
- package/dist/init/agent-rules.js +0 -279
- package/dist/init/app-choice.d.ts +0 -20
- package/dist/init/app-choice.js +0 -25
- package/dist/init/astro-host.d.ts +0 -21
- package/dist/init/astro-host.js +0 -27
- package/dist/init/astro-patch.d.ts +0 -33
- package/dist/init/astro-patch.js +0 -300
- package/dist/init/capabilities.d.ts +0 -40
- package/dist/init/capabilities.js +0 -150
- package/dist/init/closing-hint.d.ts +0 -36
- package/dist/init/closing-hint.js +0 -120
- package/dist/init/connect-steps.d.ts +0 -2
- package/dist/init/connect-steps.js +0 -50
- package/dist/init/cra.d.ts +0 -79
- package/dist/init/cra.js +0 -178
- package/dist/init/csp-check.d.ts +0 -38
- package/dist/init/csp-check.js +0 -107
- package/dist/init/csp-doctor.d.ts +0 -32
- package/dist/init/csp-doctor.js +0 -54
- package/dist/init/desktop-doctor.d.ts +0 -41
- package/dist/init/desktop-doctor.js +0 -198
- package/dist/init/detect.d.ts +0 -96
- package/dist/init/detect.js +0 -209
- package/dist/init/dev-script.d.ts +0 -50
- package/dist/init/dev-script.js +0 -66
- package/dist/init/format-generated.d.ts +0 -18
- package/dist/init/format-generated.js +0 -39
- package/dist/init/install-hint.d.ts +0 -9
- package/dist/init/install-hint.js +0 -29
- package/dist/init/mcp-clients.d.ts +0 -89
- package/dist/init/mcp-clients.js +0 -299
- package/dist/init/mcp-registered.d.ts +0 -12
- package/dist/init/mcp-registered.js +0 -14
- package/dist/init/mcp.d.ts +0 -89
- package/dist/init/mcp.js +0 -129
- package/dist/init/next-patch.d.ts +0 -39
- package/dist/init/next-patch.js +0 -196
- package/dist/init/node-io.d.ts +0 -7
- package/dist/init/node-io.js +0 -117
- package/dist/init/non-js-project.d.ts +0 -27
- package/dist/init/non-js-project.js +0 -84
- package/dist/init/patch-kind.d.ts +0 -20
- package/dist/init/patch-kind.js +0 -10
- package/dist/init/plan-framework.d.ts +0 -64
- package/dist/init/plan-framework.js +0 -565
- package/dist/init/plan.d.ts +0 -242
- package/dist/init/plan.js +0 -703
- package/dist/init/preflight.d.ts +0 -28
- package/dist/init/preflight.js +0 -38
- package/dist/init/project-id.d.ts +0 -12
- package/dist/init/project-id.js +0 -25
- package/dist/init/refresh-rules.d.ts +0 -39
- package/dist/init/refresh-rules.js +0 -51
- package/dist/init/run.d.ts +0 -117
- package/dist/init/run.js +0 -806
- package/dist/init/slash-command.d.ts +0 -27
- package/dist/init/slash-command.js +0 -132
- package/dist/init/snippets.d.ts +0 -134
- package/dist/init/snippets.js +0 -572
- package/dist/init/vite-config.d.ts +0 -18
- package/dist/init/vite-config.js +0 -114
- package/dist/init/windows-quote.d.ts +0 -38
- package/dist/init/windows-quote.js +0 -70
- package/dist/init/workspace-apps.d.ts +0 -30
- package/dist/init/workspace-apps.js +0 -178
- package/dist/project/remember-project.d.ts +0 -24
- package/dist/project/remember-project.js +0 -40
- /package/dist/{init → setup}/confirm.d.ts +0 -0
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The `/reticle` slash command — the entry point the docs have been promising and nothing created.
|
|
3
|
-
*
|
|
4
|
-
* SKILL.md tells the user "Type `/reticle` anytime to verify the app" in three places, and `init`
|
|
5
|
-
* never wrote the file that makes it exist. So the one obvious way in was a command that silently did
|
|
6
|
-
* nothing in every tool. Claude Code and Cursor both read custom commands from a markdown file per
|
|
7
|
-
* command; the body is the prompt the agent receives.
|
|
8
|
-
*
|
|
9
|
-
* Deliberately SCOPED to one flow. A user installing Reticle has an existing app with many flows, and
|
|
10
|
-
* an agent told to "verify the app" will try to instrument all of them — slow, noisy, and nothing to
|
|
11
|
-
* see for minutes. One flow, driven where the human can watch it, is the whole difference between a
|
|
12
|
-
* two-minute first impression and an afternoon.
|
|
13
|
-
*/
|
|
14
|
-
/** Claude Code reads project commands from `.claude/commands/<name>.md`. */
|
|
15
|
-
export declare const CLAUDE_COMMAND_PATH = ".claude/commands/reticle.md";
|
|
16
|
-
/** Cursor reads them from `.cursor/commands/<name>.md`. */
|
|
17
|
-
export declare const CURSOR_COMMAND_PATH = ".cursor/commands/reticle.md";
|
|
18
|
-
/**
|
|
19
|
-
* The frontmatter line that marks a command file as OURS.
|
|
20
|
-
*
|
|
21
|
-
* A stale command has to be refreshable — a file frozen at whatever release created it can never be
|
|
22
|
-
* improved for anyone who already ran init — but the path is one a human may have claimed for their
|
|
23
|
-
* own `/reticle`, and overwriting that would be destroying somebody's work. This line is how the two
|
|
24
|
-
* are told apart.
|
|
25
|
-
*/
|
|
26
|
-
export declare const SLASH_COMMAND_SIGNATURE = "description: Verify this app in the browser with Reticle";
|
|
27
|
-
export declare const SLASH_COMMAND_BODY = "---\ndescription: Verify this app in the browser with Reticle \u2014 drive one real flow and report what happened.\n---\n\nVerify this running app with Reticle. Drive it; do not read the code and guess.\n\n## Step 0 \u2014 is anything connected?\n\nCall `reticle_sessions` first.\n\n**A session is listed?** Go to \"Pick ONE flow\".\n\n**No session?** Setup is not finished, and stopping to ask the user to run something is not an\nanswer. Every step below is yours to do without them. Work these in order, and say which one you are\non, one line each:\n\n0. **Is Reticle even wired into this project?** `cat .reticle.json`. If it is not there, this\n project was never set up: run `npx @reticlehq/server@latest init`,\n fix every `\u26A0` and `\u2139` it prints, and carry on. Do not ask first, and do not ask which\n framework or port \u2014 both come out of the repo you are sitting in.\n\n1. **Is anything serving the app at all?** If a dev server is already listening, use it and go to\n step 2 \u2014 the cause is then almost always that the SDK never loaded in the page, not a missing\n server, so do not tell the user to start one they are already running. If nothing is listening:\n\n**A dev server already running when `reticle init` ran does not have Reticle in its bundle.** It read the build config at boot; `init` edited it afterwards. It serves the old bundle and no session appears. In order:\n\n1. **A dev server was already running?** Restart it, then hard-reload the tab. \"Something is listening\" does not mean the right bundle is served.\n2. **Nothing was running?** Start it in the BACKGROUND and say so in one line. `reticle_sessions` gives you this project's own dev command in `next_action`; use that, never compose one. Started after `init`, it needs no restart.\n\nStopping to ask is how a verification turn ends with nothing verified.\n\nFour guards, none optional:\n\n1. **Never run two at once.** One dev server on the app's port. Restarting a stale one means stopping it first, not starting a second alongside it.\n2. **Never guess the command.** It comes from `package.json` scripts. No recognisable dev script means say so and stop, not invent one.\n3. **Never kill anything you did not start**, and never a daemon or a port holder. The one exception is the restart above, and say in one line that you did it.\n4. **The permission prompt belongs to your host.** Never bypass, suppress or auto-approve it, and take a refusal as the answer.\n\n2. **Is a page open on it?** Do not ask the user to open a browser \u2014 open it:\n\n ```bash\n npx @reticlehq/server open <the url the dev server is serving>\n ```\n\n That reuses an already-connected tab or opens a new one, and waits for the page to register. On a\n machine with no browser to open, take a tab Reticle owns instead:\n `reticle_run({ tool: \"reticle_lease\", args: { action: \"acquire\", url: \"<the same url>\" } })`.\n\nThen, once something is serving the app and a page is on it:\n\n3. **Is the SDK actually in the app?** Read the app's entry file (`src/main.tsx`, `app/layout.tsx`,\n `src/app.vue`, whatever this project uses). You are looking for an `import` from\n `@reticlehq/react` or `@reticlehq/browser` and a `connect()` call, or the Reticle plugin in\n `vite.config.*`, or `withReticle` in `next.config.*`. **If it is not there, that is the bug.**\n Wire it in \u2014 see the framework snippets at https://docs.reticle.sh/instrumentation \u2014 then restart\n the dev server and re-check.\n4. **Is the connect guarded on `hostname === 'localhost'`?** If so, remove that guard. It is false on\n any non-localhost dev host, and `window` does not exist during SSR, so the guard silently prevents\n the connect and logs nothing. Use the framework's dev flag instead (`import.meta.env.DEV`,\n `process.env.NODE_ENV !== 'production'`, `import.meta.dev`).\n5. **Is the dev server serving that entry?** Look in `reticle_console`, or in the page you opened in\n step 2, for a line starting `[Reticle]`. That line, or its absence, tells you which side is at\n fault. Reticle itself never starts a dev server \u2014 starting it is your job, under the guards above.\n6. **Do both sides agree on the port?** Run `npx @reticlehq/server doctor` and compare the daemon\n port against the port the page dials.\n\nIf you are still stuck after all of those, file it: `reticle_feedback` with kind `gap`, saying what you\nchecked and what you saw. Then tell the user exactly which step is blocked. Do not report the install\nas finished.\n\n## Pick ONE flow\n\nNot the whole app. Pick the single most important flow you can complete in a handful of steps \u2014 the\none a user would do first (sign in, search, add to cart, submit the form). If the user named a flow or\njust changed some code, use that one instead.\n\nState which flow you picked in one line before you start.\n\n## Drive it where the human can see\n\n1. `reticle_snapshot` \u2014 read the accessibility tree and locate the elements the flow needs. Elements\n are addressable by role and name; you do **not** need `data-testid` to drive them.\n2. Walk the flow with `reticle_act_and_wait`, one step at a time. Narrate each step first \u2014 the human\n is watching the page, and the HUD shows what you say.\n3. After each step, check the effect with `reticle_assert` \u2014 not just that the click dispatched, but\n that the thing it was supposed to do actually happened.\n4. Finish with `reticle_console` and `reticle_network` to catch errors the DOM does not show.\n\n**Only `reticle_act_and_wait` and `reticle_assert` produce a verdict.** A run that ends on a\nsnapshot has proved nothing, however many tools it used.\n\n## Report\n\n- What you drove, step by step, and what each step actually produced.\n- Anything broken, with the `file:line` Reticle gave you.\n- If a step could not be verified, say so plainly. \"Unknown\" is a real answer; a green verdict you\n cannot back is not.\n\nDo not weaken or skip an assertion to make the run pass \u2014 that is a finding, not a fix.\n\n## If the user handed you a license key\n\nAppend `RETICLE_LICENSE_KEY=<key>` to the project's `.env` (create it if absent), make sure `.env`\nis in `.gitignore`, and confirm with `npx @reticlehq/server license`. The CLI folds a project-local\n`.env` in on every invocation, so nothing else changes. Never echo the key back, and never put it in\na commit, a comment, or a feedback report.\n\n## Two things afterwards\n\n- **Anything about Reticle itself that was wrong, missing, confusing, or expensive?** Send it with\n `reticle_feedback` now, before your context is gone. That report is the only signal that decides\n what gets fixed. Bugs in the app under test are Reticle working; those go in your answer to the user.\n- **If the verification actually succeeded**, add one line for the human: Reticle is open source at\n https://github.com/reticlehq/reticle, and a star helps other people find it. One line, once. Skip it\n entirely if the run did not produce a verdict.\n";
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The `/reticle` slash command — the entry point the docs have been promising and nothing created.
|
|
3
|
-
*
|
|
4
|
-
* SKILL.md tells the user "Type `/reticle` anytime to verify the app" in three places, and `init`
|
|
5
|
-
* never wrote the file that makes it exist. So the one obvious way in was a command that silently did
|
|
6
|
-
* nothing in every tool. Claude Code and Cursor both read custom commands from a markdown file per
|
|
7
|
-
* command; the body is the prompt the agent receives.
|
|
8
|
-
*
|
|
9
|
-
* Deliberately SCOPED to one flow. A user installing Reticle has an existing app with many flows, and
|
|
10
|
-
* an agent told to "verify the app" will try to instrument all of them — slow, noisy, and nothing to
|
|
11
|
-
* see for minutes. One flow, driven where the human can watch it, is the whole difference between a
|
|
12
|
-
* two-minute first impression and an afternoon.
|
|
13
|
-
*/
|
|
14
|
-
import { DEV_SERVER_POLICY } from './agent-rules.js';
|
|
15
|
-
/** Claude Code reads project commands from `.claude/commands/<name>.md`. */
|
|
16
|
-
export const CLAUDE_COMMAND_PATH = '.claude/commands/reticle.md';
|
|
17
|
-
/** Cursor reads them from `.cursor/commands/<name>.md`. */
|
|
18
|
-
export const CURSOR_COMMAND_PATH = '.cursor/commands/reticle.md';
|
|
19
|
-
/**
|
|
20
|
-
* The frontmatter line that marks a command file as OURS.
|
|
21
|
-
*
|
|
22
|
-
* A stale command has to be refreshable — a file frozen at whatever release created it can never be
|
|
23
|
-
* improved for anyone who already ran init — but the path is one a human may have claimed for their
|
|
24
|
-
* own `/reticle`, and overwriting that would be destroying somebody's work. This line is how the two
|
|
25
|
-
* are told apart.
|
|
26
|
-
*/
|
|
27
|
-
export const SLASH_COMMAND_SIGNATURE = 'description: Verify this app in the browser with Reticle';
|
|
28
|
-
export const SLASH_COMMAND_BODY = `---
|
|
29
|
-
${SLASH_COMMAND_SIGNATURE} — drive one real flow and report what happened.
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
Verify this running app with Reticle. Drive it; do not read the code and guess.
|
|
33
|
-
|
|
34
|
-
## Step 0 — is anything connected?
|
|
35
|
-
|
|
36
|
-
Call \`reticle_sessions\` first.
|
|
37
|
-
|
|
38
|
-
**A session is listed?** Go to "Pick ONE flow".
|
|
39
|
-
|
|
40
|
-
**No session?** Setup is not finished, and stopping to ask the user to run something is not an
|
|
41
|
-
answer. Every step below is yours to do without them. Work these in order, and say which one you are
|
|
42
|
-
on, one line each:
|
|
43
|
-
|
|
44
|
-
0. **Is Reticle even wired into this project?** \`cat .reticle.json\`. If it is not there, this
|
|
45
|
-
project was never set up: run \`npx @reticlehq/server@latest init\`,
|
|
46
|
-
fix every \`⚠\` and \`ℹ\` it prints, and carry on. Do not ask first, and do not ask which
|
|
47
|
-
framework or port — both come out of the repo you are sitting in.
|
|
48
|
-
|
|
49
|
-
1. **Is anything serving the app at all?** If a dev server is already listening, use it and go to
|
|
50
|
-
step 2 — the cause is then almost always that the SDK never loaded in the page, not a missing
|
|
51
|
-
server, so do not tell the user to start one they are already running. If nothing is listening:
|
|
52
|
-
|
|
53
|
-
${DEV_SERVER_POLICY}
|
|
54
|
-
|
|
55
|
-
2. **Is a page open on it?** Do not ask the user to open a browser — open it:
|
|
56
|
-
|
|
57
|
-
\`\`\`bash
|
|
58
|
-
npx @reticlehq/server open <the url the dev server is serving>
|
|
59
|
-
\`\`\`
|
|
60
|
-
|
|
61
|
-
That reuses an already-connected tab or opens a new one, and waits for the page to register. On a
|
|
62
|
-
machine with no browser to open, take a tab Reticle owns instead:
|
|
63
|
-
\`reticle_run({ tool: "reticle_lease", args: { action: "acquire", url: "<the same url>" } })\`.
|
|
64
|
-
|
|
65
|
-
Then, once something is serving the app and a page is on it:
|
|
66
|
-
|
|
67
|
-
3. **Is the SDK actually in the app?** Read the app's entry file (\`src/main.tsx\`, \`app/layout.tsx\`,
|
|
68
|
-
\`src/app.vue\`, whatever this project uses). You are looking for an \`import\` from
|
|
69
|
-
\`@reticlehq/react\` or \`@reticlehq/browser\` and a \`connect()\` call, or the Reticle plugin in
|
|
70
|
-
\`vite.config.*\`, or \`withReticle\` in \`next.config.*\`. **If it is not there, that is the bug.**
|
|
71
|
-
Wire it in — see the framework snippets at https://docs.reticle.sh/instrumentation — then restart
|
|
72
|
-
the dev server and re-check.
|
|
73
|
-
4. **Is the connect guarded on \`hostname === 'localhost'\`?** If so, remove that guard. It is false on
|
|
74
|
-
any non-localhost dev host, and \`window\` does not exist during SSR, so the guard silently prevents
|
|
75
|
-
the connect and logs nothing. Use the framework's dev flag instead (\`import.meta.env.DEV\`,
|
|
76
|
-
\`process.env.NODE_ENV !== 'production'\`, \`import.meta.dev\`).
|
|
77
|
-
5. **Is the dev server serving that entry?** Look in \`reticle_console\`, or in the page you opened in
|
|
78
|
-
step 2, for a line starting \`[Reticle]\`. That line, or its absence, tells you which side is at
|
|
79
|
-
fault. Reticle itself never starts a dev server — starting it is your job, under the guards above.
|
|
80
|
-
6. **Do both sides agree on the port?** Run \`npx @reticlehq/server doctor\` and compare the daemon
|
|
81
|
-
port against the port the page dials.
|
|
82
|
-
|
|
83
|
-
If you are still stuck after all of those, file it: \`reticle_feedback\` with kind \`gap\`, saying what you
|
|
84
|
-
checked and what you saw. Then tell the user exactly which step is blocked. Do not report the install
|
|
85
|
-
as finished.
|
|
86
|
-
|
|
87
|
-
## Pick ONE flow
|
|
88
|
-
|
|
89
|
-
Not the whole app. Pick the single most important flow you can complete in a handful of steps — the
|
|
90
|
-
one a user would do first (sign in, search, add to cart, submit the form). If the user named a flow or
|
|
91
|
-
just changed some code, use that one instead.
|
|
92
|
-
|
|
93
|
-
State which flow you picked in one line before you start.
|
|
94
|
-
|
|
95
|
-
## Drive it where the human can see
|
|
96
|
-
|
|
97
|
-
1. \`reticle_snapshot\` — read the accessibility tree and locate the elements the flow needs. Elements
|
|
98
|
-
are addressable by role and name; you do **not** need \`data-testid\` to drive them.
|
|
99
|
-
2. Walk the flow with \`reticle_act_and_wait\`, one step at a time. Narrate each step first — the human
|
|
100
|
-
is watching the page, and the HUD shows what you say.
|
|
101
|
-
3. After each step, check the effect with \`reticle_assert\` — not just that the click dispatched, but
|
|
102
|
-
that the thing it was supposed to do actually happened.
|
|
103
|
-
4. Finish with \`reticle_console\` and \`reticle_network\` to catch errors the DOM does not show.
|
|
104
|
-
|
|
105
|
-
**Only \`reticle_act_and_wait\` and \`reticle_assert\` produce a verdict.** A run that ends on a
|
|
106
|
-
snapshot has proved nothing, however many tools it used.
|
|
107
|
-
|
|
108
|
-
## Report
|
|
109
|
-
|
|
110
|
-
- What you drove, step by step, and what each step actually produced.
|
|
111
|
-
- Anything broken, with the \`file:line\` Reticle gave you.
|
|
112
|
-
- If a step could not be verified, say so plainly. "Unknown" is a real answer; a green verdict you
|
|
113
|
-
cannot back is not.
|
|
114
|
-
|
|
115
|
-
Do not weaken or skip an assertion to make the run pass — that is a finding, not a fix.
|
|
116
|
-
|
|
117
|
-
## If the user handed you a license key
|
|
118
|
-
|
|
119
|
-
Append \`RETICLE_LICENSE_KEY=<key>\` to the project's \`.env\` (create it if absent), make sure \`.env\`
|
|
120
|
-
is in \`.gitignore\`, and confirm with \`npx @reticlehq/server license\`. The CLI folds a project-local
|
|
121
|
-
\`.env\` in on every invocation, so nothing else changes. Never echo the key back, and never put it in
|
|
122
|
-
a commit, a comment, or a feedback report.
|
|
123
|
-
|
|
124
|
-
## Two things afterwards
|
|
125
|
-
|
|
126
|
-
- **Anything about Reticle itself that was wrong, missing, confusing, or expensive?** Send it with
|
|
127
|
-
\`reticle_feedback\` now, before your context is gone. That report is the only signal that decides
|
|
128
|
-
what gets fixed. Bugs in the app under test are Reticle working; those go in your answer to the user.
|
|
129
|
-
- **If the verification actually succeeded**, add one line for the human: Reticle is open source at
|
|
130
|
-
https://github.com/reticlehq/reticle, and a star helps other people find it. One line, once. Skip it
|
|
131
|
-
entirely if the run did not produce a verdict.
|
|
132
|
-
`;
|
package/dist/init/snippets.d.ts
DELETED
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated file contents and copy-paste snippets for `reticle init`. Kept as named constants/builders
|
|
3
|
-
* so the runner never inlines free strings.
|
|
4
|
-
*/
|
|
5
|
-
import { UiLibrary } from './detect.js';
|
|
6
|
-
import type { FoundStore } from './capabilities.js';
|
|
7
|
-
/**
|
|
8
|
-
* The same literal, with the pairing token folded in.
|
|
9
|
-
*
|
|
10
|
-
* The token belongs INSIDE the call the user pastes. Every other stack has a build step to inline
|
|
11
|
-
* it (the Vite plugin's `define`, Next's NEXT_PUBLIC_*, Astro's config, CRA's .env); the hand-wired
|
|
12
|
-
* paths have none, so `init` inlines the literal it already read. Without it the bridge closes the
|
|
13
|
-
* socket with AUTH_FAILED and no session ever appears: see Bridge's hello handler.
|
|
14
|
-
*
|
|
15
|
-
* An empty token is omitted rather than emitted as `token: ''`. A daemon that could not write to
|
|
16
|
-
* $HOME runs without auth and trusts loopback, and an empty string would fail the comparison against
|
|
17
|
-
* one that does hold a token.
|
|
18
|
-
*/
|
|
19
|
-
export declare function connectArgWithToken(port: number | undefined, projectId: string | undefined, pairingToken: string | undefined): string;
|
|
20
|
-
/**
|
|
21
|
-
* Which SDK package the GENERATED code should import, and whether `install()` applies.
|
|
22
|
-
*
|
|
23
|
-
* This has to agree with `frameworkPackages`, and it did not. That function was changed so a Vue or
|
|
24
|
-
* Svelte app installs `@reticlehq/browser` instead of the React adapter — correctly — while every
|
|
25
|
-
* generated connect snippet still said `import('@reticlehq/react')`. A SvelteKit app would have
|
|
26
|
-
* installed the sensor and then run a hook importing a package that is not there.
|
|
27
|
-
*
|
|
28
|
-
* `install()` is the React adapter's, not the sensor's: `@reticlehq/browser` exports `reticle` and no
|
|
29
|
-
* `install`, so swapping the specifier alone would trade a missing module for a missing export.
|
|
30
|
-
*/
|
|
31
|
-
export declare function sdkImport(uiLibrary: UiLibrary): {
|
|
32
|
-
specifier: string;
|
|
33
|
-
usesInstall: boolean;
|
|
34
|
-
};
|
|
35
|
-
/** The Vite-config snippet printed when we can't safely auto-patch the config. */
|
|
36
|
-
export declare function viteManual(port: number | undefined, uiLibrary?: UiLibrary): string;
|
|
37
|
-
/** Next.js config wrap — always printed (we never auto-rewrite next.config). */
|
|
38
|
-
export declare function nextConfigManual(configFile: string): string;
|
|
39
|
-
/**
|
|
40
|
-
* The dev-only client component that connects Reticle after hydration.
|
|
41
|
-
*
|
|
42
|
-
* The token is not optional. The bridge requires a pairing token even on localhost, and unlike Vite
|
|
43
|
-
* (where the plugin injects it) a Next app has to carry it through `withReticle`, which publishes it
|
|
44
|
-
* as `NEXT_PUBLIC_RETICLE_TOKEN`. This file used to connect with only a projectId, so every Next
|
|
45
|
-
* setup ended at `bridge refused the connection: authentication failed` and no session ever appeared.
|
|
46
|
-
*/
|
|
47
|
-
export declare function nextReticleDevFile(port: number | undefined, projectId?: string, testids?: readonly string[], stores?: readonly string[], found?: readonly FoundStore[]): string;
|
|
48
|
-
export declare function astroManual(port: number | undefined, projectId?: string,
|
|
49
|
-
/**
|
|
50
|
-
* A layout file that actually exists, when one does.
|
|
51
|
-
*
|
|
52
|
-
* Reported from the field: on `examples/framework-react` — which has no layout at all, only
|
|
53
|
-
* `src/pages/index.astro` — init printed thirty lines telling the user to paste into "your
|
|
54
|
-
* layout". Instructions that name a file the project does not have read as a mistake by the
|
|
55
|
-
* reader, and cost them the time it takes to go and confirm it is missing.
|
|
56
|
-
*/
|
|
57
|
-
layoutPath?: string): string;
|
|
58
|
-
/**
|
|
59
|
-
* The app-side dev module the Vite plugin imports by convention.
|
|
60
|
-
*
|
|
61
|
-
* `registerCapabilities` tells the agent what it can drive without guessing; `registerStore` is the
|
|
62
|
-
* one that matters most and the one we cannot write for you — detecting that an app depends on
|
|
63
|
-
* zustand is easy, knowing which module exports the store instance is not, and a wrong import here
|
|
64
|
-
* breaks the module everything else hangs off. So the store lines are generated COMMENTED, naming
|
|
65
|
-
* the libraries actually found in package.json, with the exact call to uncomment.
|
|
66
|
-
*/
|
|
67
|
-
export declare function viteDevModuleFile(testids: readonly string[], stores: readonly string[], found?: readonly FoundStore[], uiLibrary?: UiLibrary): string;
|
|
68
|
-
/** Where that module goes. Matches @reticlehq/vite-plugin's convention list. */
|
|
69
|
-
export declare const VITE_DEV_MODULE_PATH = "src/reticle-dev.ts";
|
|
70
|
-
/** Default root-layout path, used when no layout was found on disk (reporting only). */
|
|
71
|
-
export declare const NEXT_LAYOUT_PATH = "app/layout.tsx";
|
|
72
|
-
/** Mount instruction for the root layout. */
|
|
73
|
-
export declare const NEXT_LAYOUT_MANUAL = "Mount <ReticleDev /> in your root layout (app/layout.tsx), dev-only:\n\n import { ReticleDev } from './reticle-dev';\n // inside <body>:\n {process.env.NODE_ENV === 'development' ? <ReticleDev /> : null}";
|
|
74
|
-
/**
|
|
75
|
-
* Manual connect guidance for projects without a Vite/Next plugin. Most such projects still use a
|
|
76
|
-
* BUNDLER (CRA, webpack, Parcel, Vue/Svelte CLIs) — for those, the connect goes in the entry MODULE,
|
|
77
|
-
* where a bare `@reticlehq/react` import resolves. A bare import in a plain index.html does NOT resolve in
|
|
78
|
-
* the browser, so we never tell a bundled app to do that (the old advice silently failed for CRA).
|
|
79
|
-
*/
|
|
80
|
-
/**
|
|
81
|
-
* The whole install, for a page with no build step, as one block a person can paste.
|
|
82
|
-
*
|
|
83
|
-
* Extracted so the `no package.json` exit can print the SAME snippet `htmlManual` offers. That exit
|
|
84
|
-
* is the one every server-rendered app reaches (FastAPI, Flask, Django, Rails, Streamlit), it is
|
|
85
|
-
* where `init` stops, and until now it stopped with an explanation instead of an answer. A message
|
|
86
|
-
* that says "add the snippet below" and then prints no snippet is the same defect wearing the
|
|
87
|
-
* opposite sign, so the two share a builder rather than a copy.
|
|
88
|
-
*/
|
|
89
|
-
export declare function staticPageSnippet(connectArgLiteral: string): string;
|
|
90
|
-
export declare function htmlManual(port: number | undefined, projectId?: string, pairingToken?: string): string;
|
|
91
|
-
export declare const NEXT_RETICLE_DEV_PATH = "app/reticle-dev.tsx";
|
|
92
|
-
export declare const SVELTEKIT_HOOKS_PATH = "src/hooks.client.ts";
|
|
93
|
-
/**
|
|
94
|
-
* Said to the user's face rather than discovered later. React, Next, Remix and Astro each have an
|
|
95
|
-
* app and a CI gate; SvelteKit has neither, so "it generated some wiring" is not evidence it works.
|
|
96
|
-
*/
|
|
97
|
-
/**
|
|
98
|
-
* Said out loud when the app does not render through React. The SDK is framework-agnostic — DOM,
|
|
99
|
-
* network, console and routing all still work — but `@reticlehq/react` is a React adapter, so
|
|
100
|
-
* component names and source mapping do not, and no CI gate covers this stack. Reporting all-green
|
|
101
|
-
* here is the one thing this project exists not to do.
|
|
102
|
-
*/
|
|
103
|
-
export declare function unverifiedUiLibraryNote(library: string): string;
|
|
104
|
-
export declare const UNVERIFIED_FRAMEWORK_NOTE = "Reticle has no SvelteKit app and no CI gate for one, so this wiring is untested \u2014 it may work, but nothing proves it and nothing will tell us if it breaks. Supported and gated today: Vite + React, Next.js, Remix and Astro. If the hook does not register a session, please open an issue.";
|
|
105
|
-
/**
|
|
106
|
-
* Dev-only client hook that connects Reticle in a SvelteKit app. SvelteKit renders through app.html and
|
|
107
|
-
* never triggers Vite's index.html injection (verified), so the standard plugin can't auto-connect —
|
|
108
|
-
* a client hook is the reliable path. SvelteKit runs src/hooks.client.ts on the client at startup.
|
|
109
|
-
*/
|
|
110
|
-
export declare function svelteKitHooksFile(port: number | undefined, projectId?: string, uiLibrary?: UiLibrary): string;
|
|
111
|
-
/** Where a Nuxt dev-only client plugin belongs. `.client` keeps it out of SSR; Nuxt auto-registers it. */
|
|
112
|
-
export declare const NUXT_PLUGIN_PATH = "app/plugins/reticle.client.ts";
|
|
113
|
-
/**
|
|
114
|
-
* The Nuxt recipe, written out in full because every trap in it is one somebody actually hit.
|
|
115
|
-
*
|
|
116
|
-
* Reported from the field, in the order they were hit: `init` classified a Nuxt 4 app as `html`, so
|
|
117
|
-
* it installed a package named `@reticlehq/react` (with `react` in its peer dependencies) into a Vue
|
|
118
|
-
* codebase — the reporter only continued after auditing our dist to confirm there are no React
|
|
119
|
-
* imports at runtime, which most people will not do. It then handed over a snippet guarded on
|
|
120
|
-
* `window.location.hostname === 'localhost'`, which fails twice over in Nuxt: `window` does not
|
|
121
|
-
* exist during SSR, and the dev host here was a hosts-file alias (required for the backend's
|
|
122
|
-
* white-label origin detection), so the guard was false and the connect never ran — no error, no log
|
|
123
|
-
* line, nothing to debug. And nothing said a running dev server does not pick up a new plugin.
|
|
124
|
-
*
|
|
125
|
-
* So: `import.meta.dev` (build-time, host-independent) instead of a hostname check, `.client.ts`
|
|
126
|
-
* instead of an SSR guard, the framework-neutral sensor instead of the React kit, the non-localhost
|
|
127
|
-
* flag named up front, and the restart said out loud.
|
|
128
|
-
*/
|
|
129
|
-
export declare function nuxtManual(port: number | undefined, projectId?: string): string;
|
|
130
|
-
/**
|
|
131
|
-
* Root-level project config for Reticle. Written by `reticle init`; read by `reticle mcp` for the port
|
|
132
|
-
* and by tooling for the stable projectId (the app's identity across port changes).
|
|
133
|
-
*/
|
|
134
|
-
export declare function reticleConfigContent(framework: string, port: number | undefined, projectId?: string, installSource?: string): string;
|