Add Flask web UI, Docker Compose, core engine + tests

- physcom core: CLI, 5-pass pipeline, SQLite repo, 37 tests
- physcom_web: Flask app with HTMX for entity/domain/pipeline/results CRUD
- Docker Compose: web + cli services sharing a named volume for the DB
- Clean up local settings to use wildcard permissions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Simonson, Andrew
2026-02-18 13:59:53 -06:00
parent 6e0f82835a
commit 8118a62242
54 changed files with 3505 additions and 1 deletions

View File

@@ -0,0 +1,60 @@
{% extends "base.html" %}
{% block title %}Run Pipeline — PhysCom{% endblock %}
{% block content %}
<h1>Run Pipeline</h1>
<div class="card">
<form method="post" action="{{ url_for('pipeline.pipeline_run') }}">
<div class="form-group">
<label for="domain">Domain</label>
<select name="domain" id="domain" required>
<option value="">— select —</option>
{% for d in domains %}
<option value="{{ d.name }}">{{ d.name }} — {{ d.description }}</option>
{% endfor %}
</select>
</div>
<fieldset>
<legend>Passes</legend>
<div class="checkbox-row">
{% for p in [1, 2, 3, 4, 5] %}
<label>
<input type="checkbox" name="passes" value="{{ p }}"
{{ 'checked' if p <= 3 }}>
Pass {{ p }}
{% if p == 1 %}(Constraints)
{% elif p == 2 %}(Estimation)
{% elif p == 3 %}(Scoring)
{% elif p == 4 %}(LLM Review)
{% elif p == 5 %}(Human Review)
{% endif %}
</label>
{% endfor %}
</div>
</fieldset>
<div class="form-group">
<label for="threshold">Score Threshold</label>
<input type="number" name="threshold" id="threshold" value="0.1" step="0.01" min="0" max="1">
</div>
<fieldset>
<legend>Dimensions</legend>
<div class="checkbox-row">
{% for d in dimensions %}
<label>
<input type="checkbox" name="dimensions" value="{{ d.name }}" checked>
{{ d.name }}
</label>
{% endfor %}
</div>
</fieldset>
<div class="form-actions">
<button type="submit" class="btn btn-primary">Run Pipeline</button>
</div>
</form>
</div>
{% endblock %}