diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md index 5a0b803..775e0ca 100644 --- a/.claude/CLAUDE.md +++ b/.claude/CLAUDE.md @@ -61,7 +61,7 @@ Both are FOSS with independent governance (no Big Tech). ### Package Management - **Primary**: Guix (guix.scm) -- **Fallback**: Nix (flake.nix) +- **Fallback**: Guix (flake.guix) - **JS deps**: Deno (deno.json imports) ### Security Requirements diff --git a/.github/REPO_CONFIG.md b/.github/REPO_CONFIG.md index c1c6e96..7b7e658 100644 --- a/.github/REPO_CONFIG.md +++ b/.github/REPO_CONFIG.md @@ -26,7 +26,7 @@ The repository should have the following topics: - `offline-first` ### Secondary (Recommended) -- `rescript` +- `affinescript` - `password-cracking` - `hash-cracking` - `cryptography` @@ -52,7 +52,7 @@ gh repo edit hyperpolymath/dicti0nary-attack \ --add-topic rust \ --add-topic wasm \ --add-topic offline-first \ - --add-topic rescript \ + --add-topic affinescript \ --add-topic password-cracking \ --add-topic cryptography \ --add-topic ctf-tools \ @@ -67,13 +67,13 @@ This repository follows the Hyperpolymath Language Policy: |---------|----------| | Chapel | Primary password generation/cracking | | Rust | CLI implementation | -| ReScript | Web interface logic | +| AffineScript | Web interface logic | | Nickel | Configuration | | Bash | Scripts/automation | | Banned | Replacement | |--------|-------------| -| TypeScript | ReScript | +| TypeScript | AffineScript | | Python | Chapel/Rust | | Node.js | Deno | | npm/bun | Deno | diff --git a/.machine_readable/contractiles/Justfile b/.machine_readable/contractiles/Justfile index cf55162..9d81111 100644 --- a/.machine_readable/contractiles/Justfile +++ b/.machine_readable/contractiles/Justfile @@ -212,19 +212,19 @@ nickel-check: mustfile-check: nickel typecheck Mustfile.epx -# === ReScript/Deno Commands === +# === AffineScript/Deno Commands === -# Build ReScript modules -rescript-build: - deno task build:rescript +# Build AffineScript modules +affinescript-build: + deno task build:affinescript -# Watch ReScript modules -rescript-watch: - deno task watch:rescript +# Watch AffineScript modules +affinescript-watch: + deno task watch:affinescript -# Clean ReScript build -rescript-clean: - deno task clean:rescript +# Clean AffineScript build +affinescript-clean: + deno task clean:affinescript # === Policy Enforcement === diff --git a/ABI-FFI-README.md b/ABI-FFI-README.md index b5c10e1..94cea37 100644 --- a/ABI-FFI-README.md +++ b/ABI-FFI-README.md @@ -47,7 +47,7 @@ This library follows the **Hyperpolymath RSR Standard** for ABI and FFI design: ▼ ┌─────────────────────────────────────────────┐ │ Any Language via C ABI │ -│ - Rust, ReScript, Julia, Python, etc. │ +│ - Rust, AffineScript, Julia, Python, etc. │ └─────────────────────────────────────────────┘ ``` @@ -79,7 +79,7 @@ This library follows the **Hyperpolymath RSR Standard** for ABI and FFI design: │ └── bindings/ # Language-specific wrappers (optional) ├── rust/ - ├── rescript/ + ├── affinescript/ └── julia/ ``` diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 59c58ce..297f3a9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,8 +6,8 @@ Copyright (c) Jonathan D.A. Jewell git clone https://github.com/hyperpolymath/dicti0nary-attack.git cd dicti0nary-attack -# Using Nix (recommended for reproducibility) -nix develop +# Using Guix (recommended for reproducibility) +guix develop # Or using toolbox/distrobox toolbox create dicti0nary-attack-dev @@ -45,7 +45,7 @@ dicti0nary-attack/ ├── MAINTAINERS.md ├── README.adoc ├── SECURITY.md -├── flake.nix # Nix flake (Perimeter 1) +├── flake.guix # Guix flake (Perimeter 1) └── Justfile # Task runner (Perimeter 1) ``` diff --git a/EXPLAINME.adoc b/EXPLAINME.adoc index 1359c6b..7306b11 100644 --- a/EXPLAINME.adoc +++ b/EXPLAINME.adoc @@ -46,7 +46,7 @@ The Chapel hash cracker in link:src/crackers/HashCracker.chpl[`src/crackers/Hash dispatches to the selected algorithm using Chapel's `coforall` for parallel processing across cores. The Rust crate in `crates/crackers/` implements the same algorithms using the `sha2`, `sha1`, and `blake2` crates. The -link:web/src/Hash.res[`web/src/Hash.res`] ReScript module handles hashing in +link:web/src/Hash.res[`web/src/Hash.res`] AffineScript module handles hashing in the browser WASM context. Caveat:: @@ -54,22 +54,22 @@ MD5 and SHA1 are included for legacy hash cracking in authorised security assessments. They must not be used for any new security-relevant hashing; SHA-256+ is required per the hyperpolymath security policy. -== "Chapel + Rust + ReScript polyglot architecture" +== "Chapel + Rust + AffineScript polyglot architecture" [quote, README.adoc] ____ Architecture: Chapel (generators/crackers), Rust workspace crates (core -types), ReScript web interface, compiled to WASM. +types), AffineScript web interface, compiled to WASM. ____ How this is implemented:: The three-language split is enforced by the directory structure: `src/generators/*.chpl` and `src/crackers/*.chpl` are Chapel (parallel HPC computation), `crates/` is a Rust workspace (type definitions + WASM target), -and `web/src/*.res` is ReScript (browser UI, compiles to JavaScript via -`rescript.json`). The link:justfile[`justfile`] wires the build pipeline: +and `web/src/*.res` is AffineScript (browser UI, compiles to JavaScript via +`affinescript.json`). The link:justfile[`justfile`] wires the build pipeline: `just build` compiles Chapel, `just build-wasm` compiles Rust to WASM, -`deno task build:rescript` compiles the web interface. +`deno task build:affinescript` compiles the web interface. Caveat:: Chapel is not a standard hyperpolymath language (it was permitted for this @@ -86,7 +86,7 @@ ____ How this is implemented:: The CLI in link:src/main.rs[`src/main.rs`] uses the Rust `clap` crate for argument parsing and displays progress bars. The static web interface in -link:web/[`web/`] is a Deno-served ReScript application that loads WASM +link:web/[`web/`] is a Deno-served AffineScript application that loads WASM modules from `web/static/wasm/`. Run via `just serve-static`. Caveat:: @@ -109,7 +109,7 @@ cracking via WASM is CPU-bound and significantly slower than the native CLI. | link:https://github.com/hyperpolymath/phantom-metal-taste[phantom-metal-taste] (gap score computation WASM) -| ReScript web UI +| AffineScript web UI | Browser interface for generators | link:https://github.com/hyperpolymath/gossamer[gossamer], link:https://github.com/hyperpolymath/blue-screen-of-app[blue-screen-of-app] diff --git a/Justfile b/Justfile index cf55162..9d81111 100644 --- a/Justfile +++ b/Justfile @@ -212,19 +212,19 @@ nickel-check: mustfile-check: nickel typecheck Mustfile.epx -# === ReScript/Deno Commands === +# === AffineScript/Deno Commands === -# Build ReScript modules -rescript-build: - deno task build:rescript +# Build AffineScript modules +affinescript-build: + deno task build:affinescript -# Watch ReScript modules -rescript-watch: - deno task watch:rescript +# Watch AffineScript modules +affinescript-watch: + deno task watch:affinescript -# Clean ReScript build -rescript-clean: - deno task clean:rescript +# Clean AffineScript build +affinescript-clean: + deno task clean:affinescript # === Policy Enforcement === diff --git a/README.adoc b/README.adoc index 4a76d9c..1b6a00c 100644 --- a/README.adoc +++ b/README.adoc @@ -13,7 +13,7 @@ Everyone knows that it's easy to crack a password if it appears in a dictionary. image:https://img.shields.io/badge/License-MPL_2.0--1.0-blue.svg[License: MPL-2.0,link="https://github.com/hyperpolymath/palimpsest-license"] link:https://img.shields.io/badge/Chapel-2.3+-purple.svg[![Chapel]](https://chapel-lang.org/) link:https://img.shields.io/badge/Rust-2021-orange.svg[![Rust]](https://www.rust-lang.org/) -link:https://img.shields.io/badge/ReScript-11+-red.svg[![ReScript]](https://rescript-lang.org/) +link:https://img.shields.io/badge/AffineScript-11+-red.svg[![AffineScript]](https://affinescript-lang.org/) link:https://img.shields.io/badge/RSR-Bronze%20(86%25[![RSR Compliance]-yellow.svg)](RSR_COMPLIANCE.md) link:https://img.shields.io/badge/offline--first-100%25-green.svg[![Offline-First]](RSR_COMPLIANCE.md#5-offline-first--compliant) @@ -240,14 +240,14 @@ dicti0nary-attack/ │ └── crackers/ # Rust cracking engine ├── web/ # Static web interface │ ├── index.html # Main HTML -│ ├── src/ # ReScript source +│ ├── src/ # AffineScript source │ │ ├── App.res # Application logic │ │ ├── Generators.res # Password generators │ │ ├── Hash.res # Hashing utilities │ │ └── WasmLoader.res # WASM module loader │ └── static/ # Static assets │ ├── css/ # CSS-first styling -│ ├── js/ # Compiled ReScript output +│ ├── js/ # Compiled AffineScript output │ └── wasm/ # Chapel-compiled WASM ├── config/ # Configuration files │ ├── dicti0nary.ncl # Nickel configuration @@ -258,7 +258,7 @@ dicti0nary-attack/ ├── Justfile # Task automation ├── Cargo.toml # Rust workspace manifest ├── Chapel.toml # Chapel config -├── rescript.json # ReScript config +├── affinescript.json # AffineScript config └── deno.json # Deno config ---- @@ -373,11 +373,11 @@ just init # Install pre-commit hooks just setup-hooks -# Build ReScript (web interface) -deno task build:rescript +# Build AffineScript (web interface) +deno task build:affinescript # Watch mode for development -deno task watch:rescript +deno task watch:affinescript ---- === Available just Commands @@ -409,7 +409,7 @@ Contributions are welcome! Please ensure: 1. All tests pass: `just test` and `cargo test` 2. Code is formatted: `just format` and `cargo fmt` 3. No linting errors: `just lint` and `cargo clippy` -4. ReScript compiles: `deno task build:rescript` +4. AffineScript compiles: `deno task build:affinescript` 5. Documentation is updated == 📄 License @@ -419,7 +419,7 @@ This project is licensed under the GNU General Public License v3.0 - see the lin == 🙏 Acknowledgments - Inspired by the need for better password security testing tools -- Built with Chapel, Rust, ReScript, and Nickel +- Built with Chapel, Rust, AffineScript, and Nickel - Powered by WASM for offline-first browser execution - Thanks to the security research community diff --git a/RSR_OUTLINE.adoc b/RSR_OUTLINE.adoc index 2d07b49..6cd04f2 100644 --- a/RSR_OUTLINE.adoc +++ b/RSR_OUTLINE.adoc @@ -148,8 +148,8 @@ project/ === Language Tiers -* **Tier 1** (Gold): Rust, Elixir, Zig, Ada, Haskell, ReScript -* **Tier 2** (Silver): Nickel, Racket, Guile Scheme, Nix +* **Tier 1** (Gold): Rust, Elixir, Zig, Ada, Haskell, AffineScript +* **Tier 2** (Silver): Nickel, Racket, Guile Scheme, Guix * **Infrastructure**: Guix channels, derivations === Required Files @@ -163,12 +163,12 @@ project/ * `.well-known/security.txt` * `.well-known/ai.txt` * `.well-known/humans.txt` -* `guix.scm` OR `flake.nix` +* `guix.scm` OR `flake.guix` === Prohibited * Python outside `salt/` directory -* TypeScript/JavaScript (use ReScript) +* TypeScript/JavaScript (use AffineScript) * CUE (use Guile/Nickel) * `Dockerfile` (use `Containerfile`) diff --git a/deno.json b/deno.json deleted file mode 100644 index adf048e..0000000 --- a/deno.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "@hyperpolymath/dicti0nary-attack", - "version": "0.1.0", - "tasks": { - "dev": "deno run -A npm:rescript -w", - "build": "deno run -A npm:rescript", - "clean": "deno run -A npm:rescript clean", - "start": "deno run -A src/Main.res.mjs" - }, - "imports": { - "rescript": "npm:rescript@^12.0.0", - "@rescript/core": "npm:@rescript/core@^1.6.1", - "@rescript/runtime/": "npm:/@rescript/runtime@12.2.0/" - } -} diff --git a/examples/web-project-deno.json b/examples/web-project-deno.json index eaa39d9..6938b76 100644 --- a/examples/web-project-deno.json +++ b/examples/web-project-deno.json @@ -1,17 +1,17 @@ { - "// NOTE": "Example deno.json for ReScript web projects", + "// NOTE": "Example deno.json for AffineScript web projects", "tasks": { - "build": "deno run -A npm:rescript", - "clean": "deno run -A npm:rescript clean", - "watch": "deno run -A npm:rescript -w", + "build": "deno run -A npm:affinescript", + "clean": "deno run -A npm:affinescript clean", + "watch": "deno run -A npm:affinescript -w", "serve": "deno run -A jsr:@std/http/file-server .", "test": "deno test --allow-all" }, "imports": { - "rescript": "npm:rescript@^12.1.0", - "@rescript/core": "npm:@rescript/core@^1.6.0", - "safe-dom/": "https://raw.githubusercontent.com/hyperpolymath/rescript-dom-mounter/main/src/", - "proven/": "../proven/bindings/rescript/src/" + "affinescript": "npm:affinescript@^12.1.0", + "@affinescript/core": "npm:@affinescript/core@^1.6.0", + "safe-dom/": "https://raw.githubusercontent.com/hyperpolymath/affinescript-dom-mounter/main/src/", + "proven/": "../proven/bindings/affinescript/src/" }, "compilerOptions": { "allowJs": true,