Metadata-Version: 2.4
Name: flu0net
Version: 0.2.1
Summary: FLU0 // CAMELTOE.NET - a fictional field liaison terminal, field manual and tradecraft simulator (independent; unaffiliated)
Author-email: tderk <usvu.tech@gmail.com>
License: MIT
Keywords: fiction,simulation,terminal,tui,curses,tradecraft,sigint,opsec,cyber,roleplay,archive,flu0
Classifier: Programming Language :: Python :: 3
Classifier: Environment :: Console :: Curses
Classifier: Topic :: Games/Entertainment
Classifier: Topic :: System :: Shells
Classifier: Topic :: Sociology
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests
Requires-Dist: ddgs
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Dynamic: license-file

# FLU0 // CAMELTOE.NET

**PROGRAM FLU0 — Field Liaison Unit 0**
Field console, program office and tradecraft simulation.

> **Status:** independent fictional work. Not affiliated with, endorsed by, or
> connected to any government or intelligence service. Every station, officer,
> operation, document and capability in this program is invented. No real
> intelligence capability is provided.
>
> **Author:** tderk

`flu0` is a Python pip package and full-screen terminal for a fictional
collection and analysis program. It provides a deterministic officer registry,
a program office, a station directory, a training catalogue, an operations
board, an engagement simulator, and a converted corpus of fictional field
material.

The program cover is **FLU0 — Field Liaison Unit 0**.

---

## Install and run

```bash
python -m build
pip install dist/flu0net-0.2.1-py3-none-any.whl

flu0            # full-screen console
flu0-agent      # officer-file console
flu0-probe      # simulated engagement report
flu0-program    # program office views
flu0-drill      # field drill record
flu0-lexicon    # 40,000-entry vocabulary
gw             # ghostwrite: continuous word stream
igw            # insta-ghostwrite: N lines from the lexicon
flu0-field      # non-recording field shell
flu0-rec        # recording field shell
flu0-gwf        # signal visual
```

Plain shell, no TUI:

```bash
FLU0_NO_TUI=1 flu0
```

Requirements: Python >= 3.8, `requests`, `ddgs`.

---

## Program structure

- **80 stations** with codes, cities, covers and status.
- **44 directorates and offices**, including Signals, Operations, Analysis,
  Science & Technology, Counterintelligence, Open Source Fusion, Cyber
  Operations, Cover & Logistics, Oversight and Review.
- **48 billets** from station chief and case officer to cryptologic linguist,
  cryptographic custodian and independent reviewer.
- **80 operations**, **80 doctrine entries**, **80 codex axioms**, **80
  reference works**, **45 training courses**, **20 authorities**, **40
  indicators and warning**, **40 threat categories**, **20 operating rules**,
  **20 program metrics** and an **80-entry chronology** from 1914 to 2026.
- **116,787 generated corpus entries**, including 31,100 case files, 6,236
  doctrine verses, 1,119 maxims, 3,650 field stations, 1,782 formulary records
  and a 40,000-entry lexicon.

All generation is deterministic. The archive seed is hashed with SHA-256 and a
domain key (`officer-profile:zeta`, `tasking:zeta`, `drill:train:zeta`,
`corpus:case:17`) so the same handle always produces the same world.

---

## Ghostwrite and insta-ghostwrite

`gw` and `igw` keep the original shell behaviour.

- **`gw` / `flu0 gw` / `-gw`** prints a stream of short lines drawn from the
  40,000-entry lexicon, one line every 2–10 seconds, until interrupted with
  Ctrl+C.
- **`igw` / `flu0 igw` / `-igw`** prompts for a number of results and prints
  that many short lines. `igw --count N` skips the prompt.

They are shell functions and CLI entry points, not operations-board views.
`manifest` lists them with the other commands.

The program-office views, officer file and engagement report use a separate
lead-paragraph generator; that is unrelated to `gw`/`igw`.

---

## Lexicon

A separate **40,000-entry vocabulary** lives at
`src/flu0/scripts/data/lexicon.json`, distinct from the archive `diction` set.
Each entry is `[word, part_of_speech, domain, gloss]`.

```bash
flu0-lexicon --stats
flu0-lexicon --search cover
flu0-lexicon --sample 20
flu0-lexicon --class noun --domain stations
python tools/build_lexicon.py     # rebuild deterministically
```

The lexicon is also available as a console view on the operations board.

---

## Terminal design

The console is responsive and reflows on resize:

| Width | Layout |
|-------|--------|
| `< 60` | compact: header, output, footer |
| `60–99` | standard: header, output, input, footer |
| `100–129` | wide: left telemetry rail + main pane |
| `>= 130` | full: left rail + main pane + right SIGINT feed |

- Header: program bar and session bar (operator, mode, clock, build).
- Left rail: station, operator, access tier, mode, uptime, signal meter,
  rotating event line.
- Right rail: rotating SIGINT feed and classification block.
- Operations board: numbered views with a detail panel.
- Footer: key hints and link status.

Tested at 150×36, 120×30, 50×16 and 30×10, including live resize.

---

## Command surface

```
officer [handle] | kit | tasking | marker | doctrine [category] | chronology | theme
manifest | build | no_color [nc] | switch/lx
pwd / ls / cd / clear / mkdir / rm | memo | log | commit | query | channels
field manual | tradecraft maxims | doctrine codex | analyst reflections
case riddles | indicator deck | authorities | billets | field medicine | formulary
biometrics | materials | behavioral analysis | field stations | cover cultivars
playlist | probe | drill | train | rest | stand down | ration | receiver
ghost write [gw] | insta ghost write [igw] | lexicon
```

Themed aliases resolve before dispatch:

```
probe | tasking | officer | kit | doctrine | chronology | marker | manifest
signal | uplink | check in | sync | defrag | recharge | stand down
program | briefing | stations | directorates | billets | platforms
```

### Field drills

The legacy simulation verbs now produce professional drill records through
`drills.py`: training, defensive combatives, rest cycle, sustenance, funds
check, equipment check, simulation, navigation, communications, audio archive,
pattern exercise, social-engineering drill, visual acuity, protocol drill,
check-in, decompression, workspace sanitization, discretionary funds, ascent,
water survival, urban movement and air movement.

Each record carries an objective, procedure, measures, a stable record number
and a note. All drills are simulated.

### Engagement report

`probe` and `flu0-probe` render a complete simulated engagement: authorization,
phases, metrics, tactics, findings with simulated CVSS scores and confidence,
and remediation. Hosts use documentation names and TEST-NET ranges only.

---

## Program office views

```bash
flu0-program brief
flu0-program org
flu0-program stations
flu0-program equipment
flu0-program training
flu0-program oversight
flu0-program metrics
flu0-program watch
flu0-program all
```

The same views are available from the console operations board.

---

## Data pipeline

Raw corpora live in `src/flu0/scripts/data/*.json`. Converted corpora live in
`src/flu0/scripts/data/themed/*.json`. The loader prefers the themed archive and
falls back to conversion at runtime.

Rebuild:

```bash
python tools/build_themed_data.py
```

Use raw source data:

```bash
FLU0_RAW_DATA=1 flu0-field
```

`transform_dataset()` preserves each corpus's shape and length while replacing
its content with deterministic FLU0 material:

| Dataset | Becomes |
|---------|---------|
| `bible1` | 31,100 operational case files |
| `koran1` | 6,236 doctrine verses |
| `proverbs` | 1,119 tradecraft maxims |
| `dhammapada1` / `verses1` | analyst reflections / field axioms |
| `medicals1` | 663 field-medicine entries |
| `mims` | 1,782 formulary records |
| `legal_terms1` | 237 authorities |
| `degrees1` / `acadlist` | billets / analyst competencies |
| `biology1` / `chemistry1` / `science1` / `psychology1` | forensic, materials, technical and behavioral terms |
| `hospitals` | 3,650 fictional field stations |
| `tracks` / `strains` | cover playlist / cover cultivars |
| `ahb` | Agent Handbook, regenerated chapter by chapter |
| `diction` | 40,000-entry archive dictionary |
| `lexicon` | separate 40,000-entry vocabulary (not transformed) |
| `katakana` / `jamo` / `chi_chars` / `fcci` | preserved character sets |

---

## Structure

```
flu0/
├── pyproject.toml
├── setup.cfg
├── MANIFEST.in
├── README.md
├── release-notes-0.2.txt
├── tools/
│   └── build_themed_data.py
└── src/flu0/scripts/
    ├── theme.py              # identity, canon, translation
    ├── agent.py              # officer files and tradecraft loadouts
    ├── ghostwrite.py         # gw / igw readable prose engine
    ├── lexicon.py            # 40,000-entry vocabulary
    ├── program.py            # org chart, stations, training, oversight
    ├── drills.py             # field drill records
    ├── ops.py                # simulated engagement report
    ├── data_loader.py        # themed archive loader
    ├── lpro.py               # recording field shell
    ├── lpro_s.py             # non-recording field shell
    ├── tui.py                # responsive curses console
    ├── gwf.py                # signal visual
    ├── scmpy.py              # feed CLI
    ├── ai_image.py           # local image forge
    ├── deepseek_ai.py        # archive daemon
    └── data/
        ├── lexicon.json      # 40,000-entry vocabulary
        ├── *.json            # source corpora
        └── themed/*.json     # converted corpora
```

---

## Standards

- Every collection requirement has an owner and a legal basis.
- Every report states source grade and confidence.
- Every record is auditable and retained on a published schedule.
- Oversight and review are independent of the operating chain.

> Observe. Corroborate. Record.
