@reticlehq/server 2.13.0 → 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/dev-server-wait.d.ts +8 -0
- package/dist/setup/dev-server-wait.js +3 -1
- 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 +155 -48
- 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
package/dist/init/preflight.d.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The two conditions that make every later phase fail, checked before anything is written.
|
|
3
|
-
*
|
|
4
|
-
* Both lived in setup/reticle.mjs and neither survived the port into `init`. What they buy is the
|
|
5
|
-
* distance between a failure and its cause: without them, an unwritable checkout arrives as EACCES
|
|
6
|
-
* in a stack trace at phase four, and a missing package manager arrives as `spawn pnpm ENOENT`
|
|
7
|
-
* inside "the dev server exited" — which sends the reader into their own dev script hunting a bug
|
|
8
|
-
* that is not there.
|
|
9
|
-
*/
|
|
10
|
-
/** The parts of the environment preflight reads, so the rules are testable without a filesystem. */
|
|
11
|
-
export interface PreflightIo {
|
|
12
|
-
/** Absolute path of the directory init is running in. */
|
|
13
|
-
cwd(): string;
|
|
14
|
-
/** Can this process write into the project root. */
|
|
15
|
-
canWrite(): boolean;
|
|
16
|
-
/** Runs a command quietly for a yes/no check; true on exit code 0. */
|
|
17
|
-
probe(command: string, args: readonly string[]): boolean;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* The refusal to print, or undefined when this machine can run the install.
|
|
21
|
-
*
|
|
22
|
-
* `packageManager` is the one init RESOLVED, never a raw lockfile check. An inherited
|
|
23
|
-
* `pnpm-lock.yaml` at a monorepo root does not mean the app in `frontend/` uses pnpm — that app's own
|
|
24
|
-
* installed tree outranks an ancestor lockfile, and detect.ts already works this out. Re-deriving it
|
|
25
|
-
* here from `exists('pnpm-lock.yaml')` refused an npm app sitting under a pnpm monorepo on a machine
|
|
26
|
-
* with no pnpm, which the install gate proves must succeed.
|
|
27
|
-
*/
|
|
28
|
-
export declare function preflightRefusal(io: PreflightIo, packageManager: string): string | undefined;
|
package/dist/init/preflight.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The two conditions that make every later phase fail, checked before anything is written.
|
|
3
|
-
*
|
|
4
|
-
* Both lived in setup/reticle.mjs and neither survived the port into `init`. What they buy is the
|
|
5
|
-
* distance between a failure and its cause: without them, an unwritable checkout arrives as EACCES
|
|
6
|
-
* in a stack trace at phase four, and a missing package manager arrives as `spawn pnpm ENOENT`
|
|
7
|
-
* inside "the dev server exited" — which sends the reader into their own dev script hunting a bug
|
|
8
|
-
* that is not there.
|
|
9
|
-
*/
|
|
10
|
-
/**
|
|
11
|
-
* npm ships with node, so refusing for its absence would refuse on a machine that is fine.
|
|
12
|
-
*/
|
|
13
|
-
const ALWAYS_PRESENT = 'npm';
|
|
14
|
-
/**
|
|
15
|
-
* The refusal to print, or undefined when this machine can run the install.
|
|
16
|
-
*
|
|
17
|
-
* `packageManager` is the one init RESOLVED, never a raw lockfile check. An inherited
|
|
18
|
-
* `pnpm-lock.yaml` at a monorepo root does not mean the app in `frontend/` uses pnpm — that app's own
|
|
19
|
-
* installed tree outranks an ancestor lockfile, and detect.ts already works this out. Re-deriving it
|
|
20
|
-
* here from `exists('pnpm-lock.yaml')` refused an npm app sitting under a pnpm monorepo on a machine
|
|
21
|
-
* with no pnpm, which the install gate proves must succeed.
|
|
22
|
-
*/
|
|
23
|
-
export function preflightRefusal(io, packageManager) {
|
|
24
|
-
// First: on a read-only checkout nothing else matters, and one access check is cheaper and
|
|
25
|
-
// quieter than spawning a subprocess to discover the same thing.
|
|
26
|
-
if (!io.canWrite()) {
|
|
27
|
-
return (`${io.cwd()} is not writable, and init has to write into it (.reticle.json, the build config, ` +
|
|
28
|
-
'a capabilities file). Fix the permissions, or run init from a checkout you own.');
|
|
29
|
-
}
|
|
30
|
-
// What the project resolves to says nothing about what the machine HAS, and a project committed to
|
|
31
|
-
// pnpm on an npm-only box is an ordinary Monday.
|
|
32
|
-
if (ALWAYS_PRESENT !== packageManager && !io.probe(packageManager, ['--version'])) {
|
|
33
|
-
return (`this project uses ${packageManager} (its lockfile says so) and ${packageManager} is not ` +
|
|
34
|
-
`installed on this machine. Install it (npm i -g ${packageManager}, or corepack enable), or ` +
|
|
35
|
-
'pass --url with the address the app already serves.');
|
|
36
|
-
}
|
|
37
|
-
return undefined;
|
|
38
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Project-identity for `reticle init` — the `.reticle.json` side of the scheme the Vite plugin
|
|
3
|
-
* stamps at build time. The RULE lives in `@reticlehq/core` (projectIdFrom) so both sides spell the
|
|
4
|
-
* id the same way by construction; this file supplies only the Node-only hashing it needs.
|
|
5
|
-
*/
|
|
6
|
-
export { slugifyPackageName } from '@reticlehq/core';
|
|
7
|
-
/** Short, stable hex fingerprint of the absolute project root. */
|
|
8
|
-
export declare function shortHash(input: string): string;
|
|
9
|
-
/** Derive the stable projectId from the package name (may be undefined) and the absolute root path. */
|
|
10
|
-
export declare function deriveProjectId(pkgName: string | undefined, rootPath: string): string;
|
|
11
|
-
/** Pull a string `name` out of an already-parsed package.json object, or undefined. */
|
|
12
|
-
export declare function packageName(pkg: unknown): string | undefined;
|
package/dist/init/project-id.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Project-identity for `reticle init` — the `.reticle.json` side of the scheme the Vite plugin
|
|
3
|
-
* stamps at build time. The RULE lives in `@reticlehq/core` (projectIdFrom) so both sides spell the
|
|
4
|
-
* id the same way by construction; this file supplies only the Node-only hashing it needs.
|
|
5
|
-
*/
|
|
6
|
-
import { createHash } from 'node:crypto';
|
|
7
|
-
import { PROJECT_ID_HASH_LENGTH, projectIdFrom } from '@reticlehq/core';
|
|
8
|
-
export { slugifyPackageName } from '@reticlehq/core';
|
|
9
|
-
/** Short, stable hex fingerprint of the absolute project root. */
|
|
10
|
-
export function shortHash(input) {
|
|
11
|
-
return createHash('sha1').update(input).digest('hex').slice(0, PROJECT_ID_HASH_LENGTH);
|
|
12
|
-
}
|
|
13
|
-
/** Derive the stable projectId from the package name (may be undefined) and the absolute root path. */
|
|
14
|
-
export function deriveProjectId(pkgName, rootPath) {
|
|
15
|
-
return projectIdFrom(pkgName, rootPath, shortHash);
|
|
16
|
-
}
|
|
17
|
-
/** Pull a string `name` out of an already-parsed package.json object, or undefined. */
|
|
18
|
-
export function packageName(pkg) {
|
|
19
|
-
if ('object' === typeof pkg && pkg !== null) {
|
|
20
|
-
const name = pkg['name'];
|
|
21
|
-
if ('string' === typeof name && name.length > 0)
|
|
22
|
-
return name;
|
|
23
|
-
}
|
|
24
|
-
return undefined;
|
|
25
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Bring an already-installed project's agent rules up to the version that is running.
|
|
3
|
-
*
|
|
4
|
-
* `mergeMarkedInstruction` has always been able to do this: the managed block is marker-delimited,
|
|
5
|
-
* idempotence is decided by comparing CONTENT rather than by seeing a marker, and everything
|
|
6
|
-
* outside the markers is left exactly as the human wrote it. What was missing is anything that
|
|
7
|
-
* CALLS it after the first install.
|
|
8
|
-
*
|
|
9
|
-
* It is reachable only from `buildPlan`, so the rules refresh when somebody re-runs `init` and
|
|
10
|
-
* never otherwise. A project set up on an older release keeps that release's instructions forever,
|
|
11
|
-
* which means every improvement to them — what to do when a capabilities file registers nothing,
|
|
12
|
-
* that an install is not finished until a verdict exists, that intent is captured while building —
|
|
13
|
-
* reaches new projects only.
|
|
14
|
-
*
|
|
15
|
-
* That is the wrong way round. The people who most need better instructions are the ones already
|
|
16
|
-
* installed and not getting value, and `reticle update` is the moment they are already touching the
|
|
17
|
-
* install.
|
|
18
|
-
*/
|
|
19
|
-
/** The instruction files the managed block lives in. Cursor's rule file is regenerated whole. */
|
|
20
|
-
export declare const RULE_FILES: readonly ["CLAUDE.md", "AGENTS.md"];
|
|
21
|
-
export interface RuleFileIo {
|
|
22
|
-
read: (path: string) => string | null;
|
|
23
|
-
write: (path: string, content: string) => void;
|
|
24
|
-
}
|
|
25
|
-
export interface RefreshResult {
|
|
26
|
-
/** Files whose managed block was replaced with the current one. */
|
|
27
|
-
updated: string[];
|
|
28
|
-
/** Files that were already current, or that carry no Reticle block to update. */
|
|
29
|
-
unchanged: string[];
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Refresh every instruction file that already carries a Reticle block.
|
|
33
|
-
*
|
|
34
|
-
* Deliberately does NOT create one where none exists. A project with no Reticle block in its
|
|
35
|
-
* CLAUDE.md either never ran `init` here or had the block removed on purpose, and `update` is not
|
|
36
|
-
* the place to make that decision for somebody — it is a version command, and quietly writing
|
|
37
|
-
* instructions into a file a user curates would be a surprise.
|
|
38
|
-
*/
|
|
39
|
-
export declare function refreshAgentRules(cwd: string, io: RuleFileIo): RefreshResult;
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Bring an already-installed project's agent rules up to the version that is running.
|
|
3
|
-
*
|
|
4
|
-
* `mergeMarkedInstruction` has always been able to do this: the managed block is marker-delimited,
|
|
5
|
-
* idempotence is decided by comparing CONTENT rather than by seeing a marker, and everything
|
|
6
|
-
* outside the markers is left exactly as the human wrote it. What was missing is anything that
|
|
7
|
-
* CALLS it after the first install.
|
|
8
|
-
*
|
|
9
|
-
* It is reachable only from `buildPlan`, so the rules refresh when somebody re-runs `init` and
|
|
10
|
-
* never otherwise. A project set up on an older release keeps that release's instructions forever,
|
|
11
|
-
* which means every improvement to them — what to do when a capabilities file registers nothing,
|
|
12
|
-
* that an install is not finished until a verdict exists, that intent is captured while building —
|
|
13
|
-
* reaches new projects only.
|
|
14
|
-
*
|
|
15
|
-
* That is the wrong way round. The people who most need better instructions are the ones already
|
|
16
|
-
* installed and not getting value, and `reticle update` is the moment they are already touching the
|
|
17
|
-
* install.
|
|
18
|
-
*/
|
|
19
|
-
import { join } from 'node:path';
|
|
20
|
-
import { mergeMarkedInstruction, AgentRuleStatus, hasManagedBlock } from './agent-rules.js';
|
|
21
|
-
/** The instruction files the managed block lives in. Cursor's rule file is regenerated whole. */
|
|
22
|
-
export const RULE_FILES = ['CLAUDE.md', 'AGENTS.md'];
|
|
23
|
-
/**
|
|
24
|
-
* Refresh every instruction file that already carries a Reticle block.
|
|
25
|
-
*
|
|
26
|
-
* Deliberately does NOT create one where none exists. A project with no Reticle block in its
|
|
27
|
-
* CLAUDE.md either never ran `init` here or had the block removed on purpose, and `update` is not
|
|
28
|
-
* the place to make that decision for somebody — it is a version command, and quietly writing
|
|
29
|
-
* instructions into a file a user curates would be a surprise.
|
|
30
|
-
*/
|
|
31
|
-
export function refreshAgentRules(cwd, io) {
|
|
32
|
-
const updated = [];
|
|
33
|
-
const unchanged = [];
|
|
34
|
-
for (const name of RULE_FILES) {
|
|
35
|
-
const path = join(cwd, name);
|
|
36
|
-
const existing = io.read(path);
|
|
37
|
-
if (null === existing || !hasManagedBlock(existing)) {
|
|
38
|
-
unchanged.push(name);
|
|
39
|
-
continue;
|
|
40
|
-
}
|
|
41
|
-
const result = mergeMarkedInstruction(existing);
|
|
42
|
-
if (AgentRuleStatus.APPLY === result.status && result.content !== existing) {
|
|
43
|
-
io.write(path, result.content);
|
|
44
|
-
updated.push(name);
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
unchanged.push(name);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return { updated, unchanged };
|
|
51
|
-
}
|
package/dist/init/run.d.ts
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The impure shell for `reticle init`: gather project files via an injected IO surface, build the
|
|
3
|
-
* plan (pure), optionally write the apply-steps, and print a human-readable report. All filesystem
|
|
4
|
-
* access goes through `InitIo` so the orchestration is unit-testable with an in-memory IO.
|
|
5
|
-
*/
|
|
6
|
-
import type { InitOutcome } from '@reticlehq/core';
|
|
7
|
-
/**
|
|
8
|
-
* Resolve the lockfiles set used to pick the package manager. A lockfile in the project root wins;
|
|
9
|
-
* otherwise we walk UP the directory tree (monorepos keep the lockfile at the workspace root, not in
|
|
10
|
-
* each package) so `reticle init` in a sub-package suggests `pnpm add` instead of defaulting to `npm i`.
|
|
11
|
-
*
|
|
12
|
-
* The walk is skipped when the project has its own installed tree, because an INHERITED lockfile is
|
|
13
|
-
* weaker evidence than a `node_modules` sitting right there — the ancestor describes the workspace,
|
|
14
|
-
* the tree describes THIS package. Reported from the field: `init` in a `frontend/` app installed
|
|
15
|
-
* with npm emitted `pnpm add -D` off a repo-root `pnpm-lock.yaml`, pnpm was not on PATH, and the
|
|
16
|
-
* failed install took every downstream wiring step with it. A LOCAL lockfile still wins over the
|
|
17
|
-
* tree — it is a deliberate statement about this package, not an inheritance.
|
|
18
|
-
*/
|
|
19
|
-
export declare function resolveLockfiles(rootFiles: ReadonlySet<string>, cwd: string, io: Pick<InitIo, 'exists'>, nodeModulesMarkers?: ReadonlySet<string>): Set<string>;
|
|
20
|
-
export interface InitOptions {
|
|
21
|
-
/** `--capture-bodies`: write `captureNetworkBodies: true` into the app's config. Off by default (#705). */
|
|
22
|
-
captureBodies?: boolean | undefined;
|
|
23
|
-
cwd: string;
|
|
24
|
-
port: number | undefined;
|
|
25
|
-
mcp: boolean;
|
|
26
|
-
dryRun: boolean;
|
|
27
|
-
install: boolean;
|
|
28
|
-
/**
|
|
29
|
-
* Which app in a monorepo to wire, when several are found. Without it `init` refuses to guess, and
|
|
30
|
-
* "re-run inside the one you want" is not an instruction a script or an agent can follow.
|
|
31
|
-
*/
|
|
32
|
-
app?: string;
|
|
33
|
-
/** Set on the recursive call after a workspace redirect, so the search happens at most once. */
|
|
34
|
-
redirected?: boolean;
|
|
35
|
-
/**
|
|
36
|
-
* Where the human ran the command, carried across a workspace redirect.
|
|
37
|
-
*
|
|
38
|
-
* The agent rule and `/reticle` command files are read by the AGENT, whose session runs where the
|
|
39
|
-
* human started it — the repo root. Writing them beside the app instead is how a repo with its app
|
|
40
|
-
* at `src/admin` ended up with no `/reticle` at all (#318).
|
|
41
|
-
*/
|
|
42
|
-
agentRoot?: string;
|
|
43
|
-
/**
|
|
44
|
-
* Hand the telemetry outcome back rather than emitting it here.
|
|
45
|
-
*
|
|
46
|
-
* `init` now stays to watch for an app to connect, and whether it saw one belongs on the SAME
|
|
47
|
-
* `init_completed` event — the funnel it exists to measure would be double-counted by a second
|
|
48
|
-
* emit and unjoinable as a second event kind. Only the CLI sets this; every other caller keeps
|
|
49
|
-
* today's fire-and-forget behaviour, so no path loses its event by forgetting to report.
|
|
50
|
-
*/
|
|
51
|
-
deferOutcome?: boolean;
|
|
52
|
-
/**
|
|
53
|
-
* Whether the caller carries on into booting the app and driving it.
|
|
54
|
-
*
|
|
55
|
-
* Only affects the closing hint, which otherwise tells the reader to restart their dev server and
|
|
56
|
-
* drive a flow by hand — three lines before this command does both.
|
|
57
|
-
*/
|
|
58
|
-
continuesToRuntime?: boolean;
|
|
59
|
-
}
|
|
60
|
-
export interface InitIo {
|
|
61
|
-
/** Returns file content or null if it does not exist. Path is project-relative or absolute. */
|
|
62
|
-
readFile(relPath: string): string | null;
|
|
63
|
-
/** Writes content, creating parent directories. Path is project-relative or absolute. */
|
|
64
|
-
writeFile(relPath: string, content: string): void;
|
|
65
|
-
exists(relPath: string): boolean;
|
|
66
|
-
/** The user's home directory (for global agent config like ~/.cursor/mcp.json). */
|
|
67
|
-
homeDir(): string;
|
|
68
|
-
/** Absolute path of the directory `init` is running in — the project's own root. */
|
|
69
|
-
cwd(): string;
|
|
70
|
-
/** Basenames present in the project root. */
|
|
71
|
-
rootFiles(): readonly string[];
|
|
72
|
-
/** Subdirectory names inside a project-relative directory; empty when it isn't one. */
|
|
73
|
-
listDirs(relPath: string): readonly string[];
|
|
74
|
-
/** File (non-directory) basenames inside a project-relative directory, including dotfiles. */
|
|
75
|
-
listFiles(relPath: string): readonly string[];
|
|
76
|
-
/** The same IO re-rooted at a project-relative subdirectory (used for the workspace redirect). */
|
|
77
|
-
scoped(relPath: string): InitIo;
|
|
78
|
-
/** Runs a subprocess to completion (inherits stdio); returns true on exit code 0. */
|
|
79
|
-
exec(command: string, args: readonly string[]): boolean;
|
|
80
|
-
/** Runs a subprocess quietly (no stdio) for a yes/no check; returns true on exit code 0. */
|
|
81
|
-
probe(command: string, args: readonly string[]): boolean;
|
|
82
|
-
/** Can this process write into the project root — see preflight.ts. */
|
|
83
|
-
canWrite(): boolean;
|
|
84
|
-
print(line: string): void;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* What a run established, for a caller that means to continue where init stopped.
|
|
88
|
-
*
|
|
89
|
-
* Everything here was already computed and then thrown away. That was fine while init only wrote
|
|
90
|
-
* files: nobody downstream existed. A caller that goes on to boot the app needs the same answers,
|
|
91
|
-
* and re-deriving them is how two parts of one command end up disagreeing about which directory
|
|
92
|
-
* they are in — which is not hypothetical, because a monorepo redirect re-enters `runInit` with a
|
|
93
|
-
* different cwd and the outer caller never learns that it happened.
|
|
94
|
-
*/
|
|
95
|
-
export interface InitContext {
|
|
96
|
-
/** The directory actually wired, AFTER any monorepo redirect. */
|
|
97
|
-
readonly appDir: string;
|
|
98
|
-
readonly framework: string;
|
|
99
|
-
readonly packageManager: string;
|
|
100
|
-
/** The project's own dev command, when its scripts name one. Never composed. */
|
|
101
|
-
readonly devCommand?: string | undefined;
|
|
102
|
-
/** Set when init redirected into a workspace app, naming the one it chose. */
|
|
103
|
-
readonly redirectedTo?: string | undefined;
|
|
104
|
-
}
|
|
105
|
-
export interface InitResult {
|
|
106
|
-
ok: boolean;
|
|
107
|
-
applied: number;
|
|
108
|
-
manual: number;
|
|
109
|
-
/** What this run established. Absent only where init exits before establishing anything. */
|
|
110
|
-
context?: InitContext;
|
|
111
|
-
/**
|
|
112
|
-
* The event body this run would report, handed to the caller instead of emitted, when
|
|
113
|
-
* `deferOutcome` is set. Absent on a dry run and on the exits that report for themselves.
|
|
114
|
-
*/
|
|
115
|
-
outcome?: InitOutcome;
|
|
116
|
-
}
|
|
117
|
-
export declare function runInit(options: InitOptions, io: InitIo): InitResult;
|