openpitstop 1.9.0 → 1.10.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/PRIVACY.md +77 -90
- package/README.md +365 -887
- package/dist/agentBudget.d.ts +33 -0
- package/dist/agentBudget.js +165 -0
- package/dist/agentBudget.js.map +1 -0
- package/dist/analyzers/ledger/index.d.ts +2 -1
- package/dist/analyzers/ledger/index.js +10 -1
- package/dist/analyzers/ledger/index.js.map +1 -1
- package/dist/analyzers/types.d.ts +2 -0
- package/dist/candidate.d.ts +20 -0
- package/dist/candidate.js +87 -0
- package/dist/candidate.js.map +1 -0
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/ask.d.ts +0 -8
- package/dist/commands/ask.js +36 -34
- package/dist/commands/ask.js.map +1 -1
- package/dist/commands/budget.d.ts +1 -0
- package/dist/commands/budget.js +12 -3
- package/dist/commands/budget.js.map +1 -1
- package/dist/commands/drive.js +77 -51
- package/dist/commands/drive.js.map +1 -1
- package/dist/commands/fix.d.ts +7 -0
- package/dist/commands/fix.js +90 -108
- package/dist/commands/fix.js.map +1 -1
- package/dist/commands/gate.js +6 -2
- package/dist/commands/gate.js.map +1 -1
- package/dist/commands/pen.d.ts +3 -1
- package/dist/commands/pen.js +31 -42
- package/dist/commands/pen.js.map +1 -1
- package/dist/commands/readyCheck.d.ts +1 -1
- package/dist/commands/readyCheck.js +6 -36
- package/dist/commands/readyCheck.js.map +1 -1
- package/dist/commands/scan.d.ts +6 -5
- package/dist/commands/scan.js +26 -28
- package/dist/commands/scan.js.map +1 -1
- package/dist/commands/verify.d.ts +3 -1
- package/dist/commands/verify.js +5 -1
- package/dist/commands/verify.js.map +1 -1
- package/dist/evidence.js +4 -0
- package/dist/evidence.js.map +1 -1
- package/dist/installer/targets.js +1 -1
- package/dist/installer/targets.js.map +1 -1
- package/dist/intent.d.ts +4 -7
- package/dist/intent.js +41 -77
- package/dist/intent.js.map +1 -1
- package/dist/pen/dynamic.d.ts +1 -24
- package/dist/pen/dynamic.js +10 -1
- package/dist/pen/dynamic.js.map +1 -1
- package/dist/pen/fix.js +5 -1
- package/dist/pen/fix.js.map +1 -1
- package/dist/repro/generate.js +1 -0
- package/dist/repro/generate.js.map +1 -1
- package/dist/repro/pen.js +1 -0
- package/dist/repro/pen.js.map +1 -1
- package/dist/repro/run.d.ts +1 -0
- package/dist/repro/run.js +17 -1
- package/dist/repro/run.js.map +1 -1
- package/dist/sandbox/container.d.ts +9 -0
- package/dist/sandbox/container.js +129 -0
- package/dist/sandbox/container.js.map +1 -0
- package/dist/sandbox/worker.d.ts +1 -0
- package/dist/sandbox/worker.js +41 -0
- package/dist/sandbox/worker.js.map +1 -0
- package/dist/scanCache.d.ts +27 -0
- package/dist/scanCache.js +89 -0
- package/dist/scanCache.js.map +1 -0
- package/dist/verify/acceptance.d.ts +5 -1
- package/dist/verify/acceptance.js +29 -16
- package/dist/verify/acceptance.js.map +1 -1
- package/dist/verify/architecture.d.ts +5 -1
- package/dist/verify/architecture.js +6 -1
- package/dist/verify/architecture.js.map +1 -1
- package/dist/verify/baseline.d.ts +5 -1
- package/dist/verify/baseline.js +5 -1
- package/dist/verify/baseline.js.map +1 -1
- package/dist/verify/chain.js +17 -0
- package/dist/verify/chain.js.map +1 -1
- package/dist/verify/flow.d.ts +2 -0
- package/dist/verify/flow.js +18 -3
- package/dist/verify/flow.js.map +1 -1
- package/dist/verify/gateMatrix.d.ts +4 -0
- package/dist/verify/gateMatrix.js +23 -12
- package/dist/verify/gateMatrix.js.map +1 -1
- package/dist/verify/holdout.d.ts +5 -1
- package/dist/verify/holdout.js +8 -2
- package/dist/verify/holdout.js.map +1 -1
- package/dist/verify/regression.d.ts +5 -1
- package/dist/verify/regression.js +6 -1
- package/dist/verify/regression.js.map +1 -1
- package/dist/verify/stack.d.ts +5 -1
- package/dist/verify/stack.js +6 -1
- package/dist/verify/stack.js.map +1 -1
- package/dist/verify/state.d.ts +5 -1
- package/dist/verify/state.js +6 -1
- package/dist/verify/state.js.map +1 -1
- package/dist/verify/verifier.d.ts +5 -1
- package/dist/verify/verifier.js +6 -1
- package/dist/verify/verifier.js.map +1 -1
- package/docs/release-controls.md +107 -0
- package/package.json +70 -69
- package/templates/pitstop.command.md +17 -5
- package/templates/pitstop.prompt.md +390 -390
- package/scripts/__pycache__/gen-gifs.cpython-313.pyc +0 -0
- package/scripts/gen-gifs.py +0 -231
package/PRIVACY.md
CHANGED
|
@@ -1,90 +1,77 @@
|
|
|
1
|
-
# OpenPitStop
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
##
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
firewall in "ask" mode: the only connections you'll be asked about are the
|
|
79
|
-
npm/osv audits above — and none at all during `pen` or `ledger`.
|
|
80
|
-
3. **Disconnect.** `scan`, `verify`, `gate`, `integrity`, `pen`, `ledger`
|
|
81
|
-
(ledger replays against your app locally) all run fully offline. Only the
|
|
82
|
-
dependency-audit categories degrade (to an honest `skipped` with a hint) —
|
|
83
|
-
they never block or fake anything.
|
|
84
|
-
|
|
85
|
-
## The short version
|
|
86
|
-
|
|
87
|
-
> OpenPitStop is a referee that lives on your machine. It keeps score in your
|
|
88
|
-
> repo, ships no data anywhere, and calls out any network at all — because the
|
|
89
|
-
> whole point is that the numbers can't be argued with. If we ever needed a
|
|
90
|
-
> server, the honesty brand would die with it; so we won't.
|
|
1
|
+
# OpenPitStop privacy and execution boundaries
|
|
2
|
+
|
|
3
|
+
OpenPitStop is a local CLI with no telemetry service, hosted account requirement or
|
|
4
|
+
automatic update checker. Its built-in intent routing and static pattern analysis do
|
|
5
|
+
not call a language model. External tools, repository scripts and an explicitly launched
|
|
6
|
+
coding agent have their own behavior and privacy policies.
|
|
7
|
+
|
|
8
|
+
## Network activity
|
|
9
|
+
|
|
10
|
+
| Operation | Possible connection and data |
|
|
11
|
+
|---|---|
|
|
12
|
+
| npm installation / npx | Package downloads from the configured registry |
|
|
13
|
+
| Dependency audits | npm audit, pip-audit or osv-scanner may send dependency information to their configured services |
|
|
14
|
+
| Opt-in Semgrep | Registry configurations may download rules; behavior also depends on the installed tool's configuration |
|
|
15
|
+
| Tests, builds, verification commands and app startup | Execute repository/operator-defined code, which can access the network with the current process permissions |
|
|
16
|
+
| HTTP acceptance criteria | Send the requests declared in the acceptance contract |
|
|
17
|
+
| Live pen / ledger | Run inside a Linux Docker container with networking disabled; the preload/proxy records supported traffic internally |
|
|
18
|
+
| External coding agent (`drive` or your host CLI) | May send prompts and repository context to its configured provider and consume provider credits |
|
|
19
|
+
|
|
20
|
+
The built-in static pass does not upload source. This is not a blanket guarantee about
|
|
21
|
+
the external tools or scripts invoked by a full workflow. To require offline execution,
|
|
22
|
+
enforce it with a firewall or isolated environment; disconnected audits may report skipped
|
|
23
|
+
results, and network-dependent verification may fail.
|
|
24
|
+
|
|
25
|
+
## Live testing
|
|
26
|
+
|
|
27
|
+
Live pen, ledger and their replay tests require Docker. The app and attack runner share
|
|
28
|
+
a disposable container with networking disabled, a read-only root, a non-root user,
|
|
29
|
+
no Linux capabilities, and resource limits. Only a sanitized staging copy is mounted
|
|
30
|
+
read-only. The real repository, host home, Docker socket and environment credentials
|
|
31
|
+
are not mounted or forwarded. Common credential filenames and `.env*` are omitted;
|
|
32
|
+
secrets embedded in ordinary source files are still part of that source.
|
|
33
|
+
|
|
34
|
+
The preload/proxy provides observation inside the OS boundary. Containers share the
|
|
35
|
+
host kernel and are not a guarantee against kernel/runtime vulnerabilities. Use
|
|
36
|
+
a maintained Docker installation and a trusted runtime image. Ordinary tests, builds
|
|
37
|
+
and acceptance commands outside live security retain their documented host permissions.
|
|
38
|
+
|
|
39
|
+
## Stored data
|
|
40
|
+
|
|
41
|
+
- `.pitstop/`: scan and verification results, security evidence, activity history,
|
|
42
|
+
dependency-audit caches, plans, memory and content snapshots for scan reuse.
|
|
43
|
+
- `PITSTOP_*` reports, HTML cards and badges requested by the workflow.
|
|
44
|
+
- Generated `pitstop-repro-*` tests and patch proposals. Automatic `fix` can apply
|
|
45
|
+
supported source patches on a new branch; `--no-apply` still writes repros and reports.
|
|
46
|
+
- Installation writes command/skill files in the displayed project and user locations;
|
|
47
|
+
optional hooks change the repository's git hooks.
|
|
48
|
+
- Deep verification creates temporary worktrees. Holdout and acceptance configuration
|
|
49
|
+
can live outside the repository, and holdout full evidence is stored externally.
|
|
50
|
+
|
|
51
|
+
Scan snapshots contain file paths and hashes, not file bodies or raw environment values.
|
|
52
|
+
Other reports and evidence may contain snippets, request/response information or sensitive
|
|
53
|
+
findings. Review artifacts before publishing them or sending them to an agent.
|
|
54
|
+
|
|
55
|
+
Evidence digests detect content changes that do not update the digest. They are not
|
|
56
|
+
authenticated signatures and do not protect against a writer who recomputes the hash.
|
|
57
|
+
Use trusted CI and filesystem permissions for authoritative evidence and hidden holdouts.
|
|
58
|
+
|
|
59
|
+
## Costs and retention
|
|
60
|
+
|
|
61
|
+
Local checks do not use model credits. `budget` reports recorded activity and test/build
|
|
62
|
+
time; it does not know your provider's bill. External agent usage is charged according
|
|
63
|
+
to that agent's provider configuration. Drive enforces shared launch/time/prompt
|
|
64
|
+
limits and records reservations in `.pitstop/agent-budget-latest.json`. An optional
|
|
65
|
+
dollar ceiling delegates enforcement to a supported provider; unsupported providers
|
|
66
|
+
refuse it. Actual tokens and actual cost remain explicitly unknown.
|
|
67
|
+
|
|
68
|
+
Dependency audits use local caches; full scan reuse has its own bounded freshness policy.
|
|
69
|
+
Artifacts persist locally until removed. Keep baselines and repros needed by your
|
|
70
|
+
verification workflow; removing them removes that evidence, not the underlying risk.
|
|
71
|
+
|
|
72
|
+
## Inspect the implementation
|
|
73
|
+
|
|
74
|
+
Start with `src/analyzers/security.ts`, `src/sandbox/`, `templates/pen/preload.cjs`,
|
|
75
|
+
`src/commands/drive.ts`, `src/verify/acceptance.ts` and `src/scanCache.ts`.
|
|
76
|
+
See [release controls](docs/release-controls.md) for enforced boundaries and remaining
|
|
77
|
+
limits, and the [engineering assessment](docs/engineering-review.md) for the broader review.
|