feat: add file upload for materials (PDF/DOCX) with ingestion pipeline

This commit is contained in:
root
2026-04-29 15:52:35 +09:00
parent 518370b93e
commit 7f503326f9
51 changed files with 4712 additions and 27 deletions

View File

@@ -151,15 +151,27 @@
<input id="material-source" value="markdown" />
</label>
</div>
<label>
<span data-i18n="sourceMaterial">Source material</span>
<textarea id="material-body" rows="4">
Idempotent API retries need transactions. Cache invalidation uses TTL tradeoffs and database indexes support query plans.</textarea>
</label>
<button id="material-button" type="submit">
<span class="btn-text" data-i18n="ingestMaterial">Ingest material</span>
<span class="btn-spinner" aria-hidden="true"></span>
</button>
<div class="file-upload-row">
<label class="file-label">
<span data-i18n="uploadFile">Upload file</span>
<input id="material-file" type="file" accept=".md,.markdown,.pdf,.docx" />
</label>
<span id="file-name" class="file-name"></span>
<button id="upload-file-button" type="button" class="small-button" data-i18n="uploadAndIngest" disabled>Upload &amp; ingest</button>
</div>
<details class="paste-toggle">
<summary data-i18n="pasteTextToggle">Or paste text</summary>
<label class="wide-field">
<span data-i18n="sourceMaterial">Source material</span>
<textarea id="material-body" rows="5">
Idempotent API retries need transactions. Cache invalidation uses TTL tradeoffs and database indexes support query plans.</textarea
>
</label>
<button id="material-button" type="submit">
<span class="btn-text" data-i18n="ingestMaterial">Ingest material</span>
<span class="btn-spinner" aria-hidden="true"></span>
</button>
</details>
</form>
<div id="ontology" class="ontology-view empty-state">