scamscript 0.2.0__tar.gz → 0.2.1__tar.gz
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.
- {scamscript-0.2.0 → scamscript-0.2.1}/CHANGELOG.md +8 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/PKG-INFO +9 -29
- {scamscript-0.2.0 → scamscript-0.2.1}/README.md +7 -7
- {scamscript-0.2.0 → scamscript-0.2.1}/pyproject.toml +3 -2
- {scamscript-0.2.0 → scamscript-0.2.1}/src/scamscript/__init__.py +1 -1
- {scamscript-0.2.0 → scamscript-0.2.1}/src/scamscript/client.py +1 -1
- {scamscript-0.2.0 → scamscript-0.2.1}/tests/test_cli.py +1 -1
- {scamscript-0.2.0 → scamscript-0.2.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/.github/SECURITY.md +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/.github/pull_request_template.md +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/.github/workflows/ci.yml +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/.github/workflows/release.yml +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/.gitignore +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/CITATION.cff +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/CODE_OF_CONDUCT.md +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/CONTRIBUTING.md +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/LICENSE +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/docs/banner.svg +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/docs/calibration.md +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/docs/demo.gif +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/docs/sample-report.md +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/docs/social-preview.png +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/examples/adversarial/fake_output_json.txt +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/examples/adversarial/fence_escape.txt +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/examples/adversarial/fixed_attack_type.txt +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/examples/adversarial/non_json_demand.txt +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/examples/adversarial/print_system_prompt.txt +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/examples/adversarial/role_switch.txt +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/examples/adversarial/score_override.txt +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/examples/crude_robocall.txt +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/examples/gov_impersonation_vishing.txt +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/examples/prompt_injection_script.txt +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/examples/romance_scam_sms.txt +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/examples/sophisticated_wire_fraud.txt +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/examples/tech_support_scam.txt +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/scripts/calibrate.py +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/scripts/injection_eval.py +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/src/scamscript/__main__.py +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/src/scamscript/analysis.py +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/src/scamscript/cli.py +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/src/scamscript/config.py +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/src/scamscript/ingest.py +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/src/scamscript/models.py +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/src/scamscript/prompts.py +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/src/scamscript/redact.py +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/src/scamscript/render.py +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/src/scamscript/report.py +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/src/scamscript/store.py +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/src/scamscript/verify.py +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/tests/test_analysis.py +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/tests/test_client.py +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/tests/test_ingest.py +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/tests/test_models.py +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/tests/test_prompts.py +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/tests/test_redact.py +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/tests/test_render.py +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/tests/test_report.py +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/tests/test_store.py +0 -0
- {scamscript-0.2.0 → scamscript-0.2.1}/tests/test_verify.py +0 -0
|
@@ -5,6 +5,14 @@ schema are the things that count as public API.
|
|
|
5
5
|
|
|
6
6
|
## Unreleased
|
|
7
7
|
|
|
8
|
+
## 0.2.1 - 2026-11-02
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- PyPI project page: absolute image and link URLs so the banner, demo and docs links resolve.
|
|
13
|
+
- License metadata now uses the SPDX expression `MIT` plus `license-files` instead of embedding the
|
|
14
|
+
full license text in the sidebar.
|
|
15
|
+
|
|
8
16
|
### Added
|
|
9
17
|
|
|
10
18
|
- Terminal demo GIF in the README, recorded against a local stub endpoint.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: scamscript
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: Reverse-engineer scam scripts and vishing transcripts into structured counter-playbooks
|
|
5
5
|
Project-URL: Homepage, https://github.com/sjdsjadjajdjsa/scamscript
|
|
6
6
|
Project-URL: Repository, https://github.com/sjdsjadjajdjsa/scamscript
|
|
@@ -8,27 +8,7 @@ Project-URL: Issues, https://github.com/sjdsjadjajdjsa/scamscript/issues
|
|
|
8
8
|
Project-URL: Changelog, https://github.com/sjdsjadjajdjsa/scamscript/blob/master/CHANGELOG.md
|
|
9
9
|
Author-email: scamscript contributors <313729361+sjdsjadjajdjsa@users.noreply.github.com>
|
|
10
10
|
Maintainer-email: scamscript contributors <313729361+sjdsjadjajdjsa@users.noreply.github.com>
|
|
11
|
-
License: MIT
|
|
12
|
-
|
|
13
|
-
Copyright (c) 2026 scamscript contributors
|
|
14
|
-
|
|
15
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
16
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
17
|
-
in the Software without restriction, including without limitation the rights
|
|
18
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
19
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
20
|
-
furnished to do so, subject to the following conditions:
|
|
21
|
-
|
|
22
|
-
The above copyright notice and this permission notice shall be included in all
|
|
23
|
-
copies or substantial portions of the Software.
|
|
24
|
-
|
|
25
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
26
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
27
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
28
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
29
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
30
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
31
|
-
SOFTWARE.
|
|
11
|
+
License-Expression: MIT
|
|
32
12
|
License-File: LICENSE
|
|
33
13
|
Keywords: cli,fraud,osint,phishing,scam,security,smishing,social-engineering,transcripts,vishing
|
|
34
14
|
Classifier: Development Status :: 4 - Beta
|
|
@@ -55,11 +35,11 @@ Requires-Dist: twine==6.1.0; extra == 'dev'
|
|
|
55
35
|
Description-Content-Type: text/markdown
|
|
56
36
|
|
|
57
37
|
<p align="center">
|
|
58
|
-
<img src="docs/banner.svg" alt="scamscript: reverse-engineer the playbook, not the story" width="100%">
|
|
38
|
+
<img src="https://raw.githubusercontent.com/sjdsjadjajdjsa/scamscript/master/docs/banner.svg" alt="scamscript: reverse-engineer the playbook, not the story" width="100%">
|
|
59
39
|
</p>
|
|
60
40
|
|
|
61
41
|
<p align="center">
|
|
62
|
-
<img src="docs/demo.gif" alt="terminal demo: analyzing a script, then ranking a directory" width="760">
|
|
42
|
+
<img src="https://raw.githubusercontent.com/sjdsjadjajdjsa/scamscript/master/docs/demo.gif" alt="terminal demo: analyzing a script, then ranking a directory" width="760">
|
|
63
43
|
<br>
|
|
64
44
|
<sub>Recorded against a local stub endpoint, so no API spend.</sub>
|
|
65
45
|
</p>
|
|
@@ -68,7 +48,7 @@ Description-Content-Type: text/markdown
|
|
|
68
48
|
|
|
69
49
|
[](https://github.com/sjdsjadjajdjsa/scamscript/actions/workflows/ci.yml)
|
|
70
50
|
[](pyproject.toml)
|
|
71
|
-
[](LICENSE)
|
|
51
|
+
[](https://github.com/sjdsjadjajdjsa/scamscript/blob/master/LICENSE)
|
|
72
52
|
[](#scope-and-disclaimer)
|
|
73
53
|
|
|
74
54
|
A reverse-engineering analyzer for leaked or public scam call scripts and vishing transcripts.
|
|
@@ -135,7 +115,7 @@ compared against the source, and lines that are paraphrased or simply not there
|
|
|
135
115
|
`--strict-quotes` to make a missing line fail the run, and `--no-verify` to skip it.
|
|
136
116
|
|
|
137
117
|
Batch mode ranks a whole directory into one markdown report. A redacted report from the sample
|
|
138
|
-
corpus is at [`docs/sample-report.md`](docs/sample-report.md).
|
|
118
|
+
corpus is at [`docs/sample-report.md`](https://github.com/sjdsjadjajdjsa/scamscript/blob/master/docs/sample-report.md).
|
|
139
119
|
|
|
140
120
|
## Commands
|
|
141
121
|
|
|
@@ -197,7 +177,7 @@ bounded.
|
|
|
197
177
|
## Install and configure
|
|
198
178
|
|
|
199
179
|
Python 3.12+. `pip install scamscript` for use, `pip install -e ".[dev]"` from a clone for tests.
|
|
200
|
-
Release history is in [CHANGELOG.md](CHANGELOG.md).
|
|
180
|
+
Release history is in [CHANGELOG.md](https://github.com/sjdsjadjajdjsa/scamscript/blob/master/CHANGELOG.md).
|
|
201
181
|
|
|
202
182
|
| Setting | Flag | Env | Default |
|
|
203
183
|
| --- | --- | --- | --- |
|
|
@@ -224,7 +204,7 @@ API_KEY=... python scripts/calibrate.py --dir examples --repeat 3 \
|
|
|
224
204
|
--base-url https://openrouter.ai/api/v1
|
|
225
205
|
```
|
|
226
206
|
|
|
227
|
-
Recorded passes with their numbers are in [`docs/calibration.md`](docs/calibration.md): three rubric
|
|
207
|
+
Recorded passes with their numbers are in [`docs/calibration.md`](https://github.com/sjdsjadjajdjsa/scamscript/blob/master/docs/calibration.md): three rubric
|
|
228
208
|
repeats, a three-model comparison, an adversarial set and end-case stability runs. The current rubric
|
|
229
209
|
reaches both ends of the scale, and quote checking flags the invented lines a plain reading would
|
|
230
210
|
take as evidence.
|
|
@@ -274,5 +254,5 @@ docs/ calibration record, sample report, banner, demo
|
|
|
274
254
|
For security research and fraud-awareness training only. Not legal advice, not an attribution
|
|
275
255
|
tool, no warranty. Keep API keys out of commits; the key is read from the environment.
|
|
276
256
|
|
|
277
|
-
MIT licensed, see [LICENSE](LICENSE). Contribution notes in [CONTRIBUTING.md](CONTRIBUTING.md),
|
|
257
|
+
MIT licensed, see [LICENSE](https://github.com/sjdsjadjajdjsa/scamscript/blob/master/LICENSE). Contribution notes in [CONTRIBUTING.md](https://github.com/sjdsjadjajdjsa/scamscript/blob/master/CONTRIBUTING.md),
|
|
278
258
|
vulnerability reports in [SECURITY.md](.github/SECURITY.md).
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img src="docs/banner.svg" alt="scamscript: reverse-engineer the playbook, not the story" width="100%">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/sjdsjadjajdjsa/scamscript/master/docs/banner.svg" alt="scamscript: reverse-engineer the playbook, not the story" width="100%">
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
6
|
-
<img src="docs/demo.gif" alt="terminal demo: analyzing a script, then ranking a directory" width="760">
|
|
6
|
+
<img src="https://raw.githubusercontent.com/sjdsjadjajdjsa/scamscript/master/docs/demo.gif" alt="terminal demo: analyzing a script, then ranking a directory" width="760">
|
|
7
7
|
<br>
|
|
8
8
|
<sub>Recorded against a local stub endpoint, so no API spend.</sub>
|
|
9
9
|
</p>
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
[](https://github.com/sjdsjadjajdjsa/scamscript/actions/workflows/ci.yml)
|
|
14
14
|
[](pyproject.toml)
|
|
15
|
-
[](LICENSE)
|
|
15
|
+
[](https://github.com/sjdsjadjajdjsa/scamscript/blob/master/LICENSE)
|
|
16
16
|
[](#scope-and-disclaimer)
|
|
17
17
|
|
|
18
18
|
A reverse-engineering analyzer for leaked or public scam call scripts and vishing transcripts.
|
|
@@ -79,7 +79,7 @@ compared against the source, and lines that are paraphrased or simply not there
|
|
|
79
79
|
`--strict-quotes` to make a missing line fail the run, and `--no-verify` to skip it.
|
|
80
80
|
|
|
81
81
|
Batch mode ranks a whole directory into one markdown report. A redacted report from the sample
|
|
82
|
-
corpus is at [`docs/sample-report.md`](docs/sample-report.md).
|
|
82
|
+
corpus is at [`docs/sample-report.md`](https://github.com/sjdsjadjajdjsa/scamscript/blob/master/docs/sample-report.md).
|
|
83
83
|
|
|
84
84
|
## Commands
|
|
85
85
|
|
|
@@ -141,7 +141,7 @@ bounded.
|
|
|
141
141
|
## Install and configure
|
|
142
142
|
|
|
143
143
|
Python 3.12+. `pip install scamscript` for use, `pip install -e ".[dev]"` from a clone for tests.
|
|
144
|
-
Release history is in [CHANGELOG.md](CHANGELOG.md).
|
|
144
|
+
Release history is in [CHANGELOG.md](https://github.com/sjdsjadjajdjsa/scamscript/blob/master/CHANGELOG.md).
|
|
145
145
|
|
|
146
146
|
| Setting | Flag | Env | Default |
|
|
147
147
|
| --- | --- | --- | --- |
|
|
@@ -168,7 +168,7 @@ API_KEY=... python scripts/calibrate.py --dir examples --repeat 3 \
|
|
|
168
168
|
--base-url https://openrouter.ai/api/v1
|
|
169
169
|
```
|
|
170
170
|
|
|
171
|
-
Recorded passes with their numbers are in [`docs/calibration.md`](docs/calibration.md): three rubric
|
|
171
|
+
Recorded passes with their numbers are in [`docs/calibration.md`](https://github.com/sjdsjadjajdjsa/scamscript/blob/master/docs/calibration.md): three rubric
|
|
172
172
|
repeats, a three-model comparison, an adversarial set and end-case stability runs. The current rubric
|
|
173
173
|
reaches both ends of the scale, and quote checking flags the invented lines a plain reading would
|
|
174
174
|
take as evidence.
|
|
@@ -218,5 +218,5 @@ docs/ calibration record, sample report, banner, demo
|
|
|
218
218
|
For security research and fraud-awareness training only. Not legal advice, not an attribution
|
|
219
219
|
tool, no warranty. Keep API keys out of commits; the key is read from the environment.
|
|
220
220
|
|
|
221
|
-
MIT licensed, see [LICENSE](LICENSE). Contribution notes in [CONTRIBUTING.md](CONTRIBUTING.md),
|
|
221
|
+
MIT licensed, see [LICENSE](https://github.com/sjdsjadjajdjsa/scamscript/blob/master/LICENSE). Contribution notes in [CONTRIBUTING.md](https://github.com/sjdsjadjajdjsa/scamscript/blob/master/CONTRIBUTING.md),
|
|
222
222
|
vulnerability reports in [SECURITY.md](.github/SECURITY.md).
|
|
@@ -4,11 +4,12 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "scamscript"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.1"
|
|
8
8
|
description = "Reverse-engineer scam scripts and vishing transcripts into structured counter-playbooks"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.12"
|
|
11
|
-
license =
|
|
11
|
+
license = "MIT"
|
|
12
|
+
license-files = ["LICENSE"]
|
|
12
13
|
authors = [
|
|
13
14
|
{ name = "scamscript contributors", email = "313729361+sjdsjadjajdjsa@users.noreply.github.com" },
|
|
14
15
|
]
|
|
@@ -197,7 +197,7 @@ def test_history_empty(home):
|
|
|
197
197
|
def test_version(home):
|
|
198
198
|
result = runner.invoke(cli.app, ["--version"])
|
|
199
199
|
assert result.exit_code == 0
|
|
200
|
-
assert result.stdout.strip() == "scamscript 0.2.
|
|
200
|
+
assert result.stdout.strip() == "scamscript 0.2.1"
|
|
201
201
|
|
|
202
202
|
|
|
203
203
|
def test_json_output_is_one_object_per_script(home, tmp_path, fake):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|