@astram/guide 0.2.24 → 0.2.25
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.
- package/CAPABILITIES.md +22 -0
- package/package.json +1 -1
package/CAPABILITIES.md
CHANGED
|
@@ -857,6 +857,28 @@ upload(@Req() req: Record<string, unknown>) {
|
|
|
857
857
|
- **Migrations** 111–113 (identity) add `agent_task`, `agent_action`, `agent_tenant_setting` to
|
|
858
858
|
`<ns>_identity`. Single layout: re-run `db-provision --layout single` after migrating; check with
|
|
859
859
|
`db-verify-grants` and the app's layout flags.
|
|
860
|
+
- **Reading attached files (G-037 D2a, opt-in).** `AgentModule.forRoot({ files: { enabled: true } })`
|
|
861
|
+
registers framework capabilities `files.read_sheet@1` (xlsx/csv, ≤ 200 rows a call), `files.profile_sheet@1`
|
|
862
|
+
(per-column type, empty and distinct counts, min/max, top values, computed in code),
|
|
863
|
+
`files.read_pdf_text@1` (text layer, ≤ 10 pages), `files.read_doc_text@1` (docx text, ≤ 20000 chars) and
|
|
864
|
+
`schema.describe@1` (the object types the user can read, never rows). Requires `identity:stored_file:read`.
|
|
865
|
+
- Files enter a conversation as `attachments` (0–8 `stored_file` uuids your own `FileIntake` route returned)
|
|
866
|
+
on `POST /agent/tasks` and on `continue` with a message. The runtime only ever gets task handles; any file
|
|
867
|
+
the user cannot open answers one `404 attachment_unavailable`; a bad list `400 invalid_request`.
|
|
868
|
+
- Every byte is parsed by the isolated analyser `@astram/file-analyser` (Python): never formulas, macros,
|
|
869
|
+
links or embedded objects. Run it as the sidecar container (`docker-compose.analyser.yml` in the
|
|
870
|
+
scaffold: no network, read-only, non-root) or as the hardened systemd unit in the package's `deploy/`.
|
|
871
|
+
Env (read only when `files` is on): `AGENT_FILE_ANALYSER_SOCKET` (required),
|
|
872
|
+
`AGENT_FILE_ANALYSER_TIMEOUT_MS` (12000, 1000–60000).
|
|
873
|
+
- File content is `confidential` and goes only to a model provider the company lists for file content:
|
|
874
|
+
org bootstrap `agent: { mode, fileProviders: [...] }` (migration 114, audited
|
|
875
|
+
`agent.tenant_file_providers.set`). Empty (default) ⇒ no file capability in the manifest. A non-empty
|
|
876
|
+
list is refused outside development/test while the synthetic-data rule stands, and personal-data
|
|
877
|
+
masking (not built yet) is a prerequisite before real data.
|
|
878
|
+
- Totals the assistant states come from `profile_sheet` or `aggregate`, never from adding rows it read.
|
|
879
|
+
Ids inside file content reach the model as `[id]`.
|
|
880
|
+
- Not yet: the attach control in the scaffold UI (the client service supports `attachments`), the
|
|
881
|
+
workbook map (D2b), marking an upload `restricted`.
|
|
860
882
|
|
|
861
883
|
## Available, but NOT wired to a data path (do not assume they protect data yet)
|
|
862
884
|
- **Envelope encryption / per-tenant DEKs** (`createEncryptionService`, `LocalKekCrypto`): the
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@astram/guide",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.25",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Astram framework — the AI/dev GUIDE layer (ADR-0025). Ships the framework's hard rules + capabilities manifest as installed, upgrade-refreshed docs. A consumer app's CLAUDE.md references FRAMEWORK_RULES.md from this package; `npm update` replaces it wholesale so new rules arrive cleanly, while the app's own .astram/guide/ layer is never touched. This is the framework-owned FLOOR: an app rule may tighten it, never weaken it.",
|
|
6
6
|
"type": "commonjs",
|