Add provenance schema contract for v0.3.0
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/backup-manifest.schema.json",
|
||||
"description": "Valid Project backup manifest example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"application_version": "0.3.0",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"created_at": "2026-07-17T18:42:10.123Z",
|
||||
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
||||
"sqlite_snapshot": {
|
||||
"path": "database-snapshot/state.sqlite",
|
||||
"sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
|
||||
"size": 4096,
|
||||
"sqlite_version": "3.46.0",
|
||||
"database_schema_version": 1,
|
||||
"completed_at": "2026-07-17T18:42:10.123Z"
|
||||
},
|
||||
"files": [
|
||||
{
|
||||
"path": "project.json",
|
||||
"sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
|
||||
"size": 256
|
||||
}
|
||||
],
|
||||
"protected": false,
|
||||
"recovery_key_envelope_path": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/chain-head.schema.json",
|
||||
"description": "Valid Chain head example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"active_segment_number": 1,
|
||||
"event_id": "event_01J00000000000000000000003",
|
||||
"event_sequence": 1,
|
||||
"event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
||||
"updated_at": "2026-07-17T18:42:10.123Z"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/content-reference.schema.json",
|
||||
"description": "Valid Content reference example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"record_id": "record_01J00000000000000000000005",
|
||||
"record_type": "manuscript_revision",
|
||||
"sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
|
||||
"path": "manuscript/revisions/revision.json",
|
||||
"revision_id": "revision_01J0000000000000000000000A",
|
||||
"range": {
|
||||
"schema_version": "1.0",
|
||||
"document_revision_id": "revision_01J0000000000000000000000A",
|
||||
"coordinate_system": "utf8_byte",
|
||||
"start": 0,
|
||||
"end": 12,
|
||||
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
|
||||
"text_fragment_id": "fragment_01J0000000000000000000000C"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/conversation-session.schema.json",
|
||||
"description": "Valid Conversation session example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"session_id": "session_01J00000000000000000000006",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"title": "Opening discussion",
|
||||
"mode": "typed",
|
||||
"started_at": "2026-07-17T18:42:10.123Z",
|
||||
"ended_at": "2026-07-17T18:43:11.456Z",
|
||||
"turn_count": 2,
|
||||
"audio_retained": false,
|
||||
"retention_mode": "minimal"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/derived-index-manifest.schema.json",
|
||||
"description": "Valid Derived index manifest example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"index_type": "contribution_graph",
|
||||
"source_chain_head": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
|
||||
"source_event_count": 42,
|
||||
"generator": {
|
||||
"name": "thinkloom-indexer",
|
||||
"version": "1.0.0",
|
||||
"configuration_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
|
||||
},
|
||||
"content_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
|
||||
"generated_at": "2026-07-17T18:42:10.123Z"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/disposition-revision.schema.json",
|
||||
"description": "Valid Invocation disposition revision example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"disposition_id": "disposition_01J0000000000000000000000M",
|
||||
"invocation_id": "invocation_01J00000000000000000000008",
|
||||
"revision_number": 1,
|
||||
"status": "partially_accepted",
|
||||
"accepted_ranges": [
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"document_revision_id": "revision_01J0000000000000000000000A",
|
||||
"coordinate_system": "utf8_byte",
|
||||
"start": 0,
|
||||
"end": 12,
|
||||
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
|
||||
"text_fragment_id": "fragment_01J0000000000000000000000C"
|
||||
}
|
||||
],
|
||||
"rejected_ranges": [],
|
||||
"destination": {
|
||||
"revision_id": "revision_01J0000000000000000000000B",
|
||||
"path": "manuscript/revisions/revision.md",
|
||||
"operation": "insert",
|
||||
"position": 0
|
||||
},
|
||||
"stale_context_resolution": "revalidated",
|
||||
"decided_at": "2026-07-17T18:43:11.456Z",
|
||||
"event_id": "event_01J00000000000000000000004"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/edit-transaction.schema.json",
|
||||
"description": "Valid Manuscript edit transaction example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"transaction_id": "transaction_01J0000000000000000000000N",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"base_revision_id": "revision_01J0000000000000000000000A",
|
||||
"result_revision_id": "revision_01J0000000000000000000000B",
|
||||
"started_at": "2026-07-17T18:42:10.123Z",
|
||||
"ended_at": "2026-07-17T18:43:11.456Z",
|
||||
"operations": [
|
||||
{
|
||||
"operation_type": "insert",
|
||||
"source_range": null,
|
||||
"destination_position": 0,
|
||||
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
|
||||
"result_fragment_id": "fragment_01J0000000000000000000000C"
|
||||
}
|
||||
],
|
||||
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
|
||||
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/encrypted-key-envelope.schema.json",
|
||||
"description": "Valid Encrypted key envelope example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"envelope_id": "record_01J00000000000000000000005",
|
||||
"key_id": "key_01J0000000000000000000000G",
|
||||
"envelope_type": "device",
|
||||
"algorithm": "xchacha20-poly1305",
|
||||
"key_derivation": null,
|
||||
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
|
||||
"wrapped_key": "d3JhcHBlZC1wcm9qZWN0LWtleQ==",
|
||||
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"created_at": "2026-07-17T18:42:10.123Z"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/idea-revision.schema.json",
|
||||
"description": "Valid Idea revision example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"revision_id": "revision_01J0000000000000000000000A",
|
||||
"idea_id": "idea_01J00000000000000000000009",
|
||||
"revision_number": 1,
|
||||
"title": "Attention as civic infrastructure",
|
||||
"summary": "Institutions influence shared attention.",
|
||||
"detail": "Treat attention as a public condition.",
|
||||
"tags": [
|
||||
"thesis"
|
||||
],
|
||||
"source_turn_ids": [
|
||||
"turn_01J00000000000000000000007"
|
||||
],
|
||||
"parent_idea_ids": [],
|
||||
"created_by": "mixed",
|
||||
"created_at": "2026-07-17T18:42:10.123Z",
|
||||
"content_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/idea.schema.json",
|
||||
"description": "Valid Idea identity example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"idea_id": "idea_01J00000000000000000000009",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"current_revision_id": "revision_01J0000000000000000000000A",
|
||||
"status": "accepted",
|
||||
"created_at": "2026-07-17T18:42:10.123Z",
|
||||
"updated_at": "2026-07-17T18:43:11.456Z"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/invocation-failure.schema.json",
|
||||
"description": "Valid Invocation failure example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"failure_id": "failure_01J0000000000000000000000P",
|
||||
"invocation_id": "invocation_01J00000000000000000000008",
|
||||
"code": "PROVIDER_TIMEOUT",
|
||||
"category": "provider",
|
||||
"recoverable": true,
|
||||
"bounded_summary": "The provider did not respond within the configured timeout.",
|
||||
"partial_output_preserved": false,
|
||||
"occurred_at": "2026-07-17T18:43:11.456Z"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/invocation-request.schema.json",
|
||||
"description": "Valid Invocation request example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"invocation_id": "invocation_01J00000000000000000000008",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"purpose": "draft_from_selected_ideas",
|
||||
"initiated_by_event_id": "event_01J00000000000000000000003",
|
||||
"retention_mode": "full_private",
|
||||
"provider": {
|
||||
"provider_id": "ollama",
|
||||
"model_id": "llama3.2",
|
||||
"processing_mode": "local"
|
||||
},
|
||||
"model_configuration_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
|
||||
"prompt_template": {
|
||||
"schema_version": "1.0",
|
||||
"template_id": "template_01J0000000000000000000000F",
|
||||
"version": 1,
|
||||
"path": "records/prompt-templates/drafting/template.json",
|
||||
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777"
|
||||
},
|
||||
"messages": [
|
||||
{
|
||||
"role": "user",
|
||||
"content": "Use the selected ideas to draft a passage."
|
||||
}
|
||||
],
|
||||
"context_references": [
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"record_id": "record_01J00000000000000000000005",
|
||||
"record_type": "manuscript_revision",
|
||||
"sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
|
||||
"path": "manuscript/revisions/revision.json",
|
||||
"revision_id": "revision_01J0000000000000000000000A",
|
||||
"range": {
|
||||
"schema_version": "1.0",
|
||||
"document_revision_id": "revision_01J0000000000000000000000A",
|
||||
"coordinate_system": "utf8_byte",
|
||||
"start": 0,
|
||||
"end": 12,
|
||||
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
|
||||
"text_fragment_id": "fragment_01J0000000000000000000000C"
|
||||
}
|
||||
}
|
||||
],
|
||||
"manuscript_revision_id": "revision_01J0000000000000000000000A",
|
||||
"idea_revision_ids": [
|
||||
"revision_01J0000000000000000000000B"
|
||||
],
|
||||
"conversation_head": "turn_01J00000000000000000000007",
|
||||
"submitted_at": "2026-07-17T18:42:10.123Z",
|
||||
"redactions": [
|
||||
{
|
||||
"category": "personal_identifier",
|
||||
"replacement": "[redacted]"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/invocation-response.schema.json",
|
||||
"description": "Valid Invocation response example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"record_id": "record_01J00000000000000000000005",
|
||||
"invocation_id": "invocation_01J00000000000000000000008",
|
||||
"retention_mode": "full_private",
|
||||
"content_type": "draft_preview",
|
||||
"retained_text": "Attention is personal in experience and public in consequence.",
|
||||
"finish_reason": "stop",
|
||||
"usage": {
|
||||
"input_tokens": 120,
|
||||
"output_tokens": 14
|
||||
},
|
||||
"provider_metadata": {
|
||||
"request_id": "local-0001",
|
||||
"load_duration_milliseconds": 120
|
||||
},
|
||||
"validation": {
|
||||
"schema_valid": true,
|
||||
"repair_attempted": false
|
||||
},
|
||||
"content_sha256": "sha256:9999999999999999999999999999999999999999999999999999999999999999",
|
||||
"created_at": "2026-07-17T18:43:11.456Z"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/invocation-state.schema.json",
|
||||
"description": "Valid Invocation state example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"invocation_id": "invocation_01J00000000000000000000008",
|
||||
"state": "REQUEST_RECORDED",
|
||||
"state_sequence": 2,
|
||||
"updated_at": "2026-07-17T18:42:10.123Z",
|
||||
"failure_id": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/invocation-stream-state.schema.json",
|
||||
"description": "Valid Invocation stream state example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"stream_id": "stream_01J0000000000000000000000Q",
|
||||
"invocation_id": "invocation_01J00000000000000000000008",
|
||||
"state": "STREAMING",
|
||||
"bytes_received": 512,
|
||||
"started_at": "2026-07-17T18:42:10.123Z",
|
||||
"updated_at": "2026-07-17T18:43:11.456Z"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/invocation-stream-summary.schema.json",
|
||||
"description": "Valid Invocation stream summary example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"stream_id": "stream_01J0000000000000000000000Q",
|
||||
"invocation_id": "invocation_01J00000000000000000000008",
|
||||
"terminal_state": "COMPLETED",
|
||||
"bytes_received": 512,
|
||||
"chunks_received": 4,
|
||||
"duration_milliseconds": 2400,
|
||||
"partial_output_preserved": false,
|
||||
"completed_at": "2026-07-17T18:43:11.456Z"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/ledger-segment-manifest.schema.json",
|
||||
"description": "Valid Ledger segment manifest example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"segment_number": 1,
|
||||
"previous_segment_file_hash": null,
|
||||
"first_event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
||||
"final_event_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
|
||||
"first_event_sequence": 1,
|
||||
"final_event_sequence": 2,
|
||||
"event_count": 2,
|
||||
"byte_length": 1024,
|
||||
"segment_file_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
|
||||
"sealed_at": "2026-07-17T18:42:10.123Z"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/manuscript-revision.schema.json",
|
||||
"description": "Valid Manuscript revision example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"revision_id": "revision_01J0000000000000000000000A",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"parent_revision_id": null,
|
||||
"canonical_markdown_path": "manuscript/revisions/revision.md",
|
||||
"canonical_markdown_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
|
||||
"word_count": 42,
|
||||
"created_by": "user",
|
||||
"created_at": "2026-07-17T18:42:10.123Z"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/model-capability-snapshot.schema.json",
|
||||
"description": "Valid Model capability snapshot example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"snapshot_id": "record_01J00000000000000000000005",
|
||||
"provider_id": "ollama",
|
||||
"model_id": "llama3.2",
|
||||
"capabilities": {
|
||||
"streaming": true,
|
||||
"structured_output": false,
|
||||
"tools": false,
|
||||
"vision": false
|
||||
},
|
||||
"observed_at": "2026-07-17T18:42:10.123Z"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/model-configuration-snapshot.schema.json",
|
||||
"description": "Valid Model configuration snapshot example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"snapshot_id": "record_01J00000000000000000000005",
|
||||
"provider_id": "ollama",
|
||||
"model_id": "llama3.2",
|
||||
"processing_mode": "local",
|
||||
"endpoint_classification": "loopback",
|
||||
"temperature_milli": 700,
|
||||
"context_limit": 8192,
|
||||
"maximum_output": 800,
|
||||
"structured_output_mode": "none",
|
||||
"tool_configuration": [],
|
||||
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
|
||||
"created_at": "2026-07-17T18:42:10.123Z"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/project-key-manifest.schema.json",
|
||||
"description": "Valid Project key manifest example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"key_id": "key_01J0000000000000000000000G",
|
||||
"algorithm": "xchacha20-poly1305",
|
||||
"device_envelope_path": "provenance/keys/device-envelope.json",
|
||||
"recovery_envelope_path": "provenance/keys/recovery-envelope.json",
|
||||
"recovery_verified_at": "2026-07-17T18:42:10.123Z",
|
||||
"created_at": "2026-07-17T18:42:10.123Z"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/project-manifest.schema.json",
|
||||
"description": "Valid Project manifest example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"application_version": "0.3.0",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"title": "The Attention Commons",
|
||||
"created_at": "2026-07-17T18:42:10.123Z",
|
||||
"updated_at": "2026-07-17T18:43:11.456Z",
|
||||
"current_phase": "ideation",
|
||||
"publication_status": "working",
|
||||
"provenance_policy_id": "policy_01J0000000000000000000000H",
|
||||
"audio_retained": false
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/prompt-template-reference.schema.json",
|
||||
"description": "Valid Prompt template reference example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"template_id": "template_01J0000000000000000000000F",
|
||||
"version": 1,
|
||||
"path": "records/prompt-templates/drafting/template.json",
|
||||
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/prompt-template.schema.json",
|
||||
"description": "Valid Prompt template example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"template_id": "template_01J0000000000000000000000F",
|
||||
"version": 1,
|
||||
"purpose": "draft_from_selected_ideas",
|
||||
"canonical_template_body": "Use {{context}} to draft a passage.",
|
||||
"variables": {
|
||||
"context": {
|
||||
"description": "Selected idea context",
|
||||
"required": true
|
||||
}
|
||||
},
|
||||
"creation_application_version": "0.3.0",
|
||||
"retention_classification": "project_record",
|
||||
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
|
||||
"created_at": "2026-07-17T18:42:10.123Z"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/provenance-event.schema.json",
|
||||
"description": "Valid Provenance event example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"event_id": "event_01J00000000000000000000003",
|
||||
"event_sequence": 1,
|
||||
"client_action_id": "client-action-0001",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"timestamp": "2026-07-17T18:42:10.123Z",
|
||||
"event_type": "PROJECT_CREATED",
|
||||
"actor": {
|
||||
"type": "user",
|
||||
"actor_id": null
|
||||
},
|
||||
"provider": null,
|
||||
"inputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"record_id": "record_01J00000000000000000000005",
|
||||
"record_type": "manuscript_revision",
|
||||
"sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
|
||||
"path": "manuscript/revisions/revision.json",
|
||||
"revision_id": "revision_01J0000000000000000000000A",
|
||||
"range": {
|
||||
"schema_version": "1.0",
|
||||
"document_revision_id": "revision_01J0000000000000000000000A",
|
||||
"coordinate_system": "utf8_byte",
|
||||
"start": 0,
|
||||
"end": 12,
|
||||
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
|
||||
"text_fragment_id": "fragment_01J0000000000000000000000C"
|
||||
}
|
||||
}
|
||||
],
|
||||
"relationships": {
|
||||
"parent_event_ids": [],
|
||||
"invocation_id": null
|
||||
},
|
||||
"metadata": {
|
||||
"summary": "Created project"
|
||||
},
|
||||
"previous_event_hash": null,
|
||||
"event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/provenance-policy.schema.json",
|
||||
"description": "Valid Provenance policy example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"policy_id": "policy_01J0000000000000000000000H",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"retention_mode": "minimal",
|
||||
"encryption_mode": "none",
|
||||
"default_export_profile": "sanitized",
|
||||
"effective_at": "2026-07-17T18:42:10.123Z"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/purge-manifest.schema.json",
|
||||
"description": "Valid Emergency purge manifest example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"purge_id": "purge_01J0000000000000000000000R",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"requested_at": "2026-07-17T18:42:10.123Z",
|
||||
"completed_at": "2026-07-17T18:43:11.456Z",
|
||||
"reason": "Remove accidentally retained credential",
|
||||
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
||||
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
|
||||
"affected_record_ids": [
|
||||
"record_01J00000000000000000000005"
|
||||
],
|
||||
"affected_paths": [
|
||||
"records/invocations/request.json"
|
||||
],
|
||||
"git_history_rewritten": true,
|
||||
"prior_copies_revocable": false,
|
||||
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/record-envelope.schema.json",
|
||||
"description": "Valid Authoritative record envelope example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"record_id": "record_01J00000000000000000000005",
|
||||
"record_type": "invocation_request",
|
||||
"protection": "protected",
|
||||
"plaintext_sha256": "sha256:97154eddff15ab6607181e55945547fdbbc5bde02b1e5123eade7a69509f00c5",
|
||||
"payload": null,
|
||||
"encryption": {
|
||||
"algorithm": "xchacha20-poly1305",
|
||||
"key_id": "key_01J0000000000000000000000G",
|
||||
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
|
||||
"ciphertext": "ZW5jcnlwdGVkLXJlY29yZA==",
|
||||
"ciphertext_sha256": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/recovery-key-envelope.schema.json",
|
||||
"description": "Valid Recovery key envelope example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"envelope_id": "record_01J0000000000000000000000S",
|
||||
"key_id": "key_01J0000000000000000000000G",
|
||||
"envelope_type": "recovery",
|
||||
"algorithm": "xchacha20-poly1305",
|
||||
"key_derivation": {
|
||||
"algorithm": "argon2id",
|
||||
"memory_kib": 65536,
|
||||
"iterations": 3,
|
||||
"parallelism": 1,
|
||||
"salt": "c2FsdC1mb3ItdGhpbmtsb29t"
|
||||
},
|
||||
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
|
||||
"wrapped_key": "d3JhcHBlZC1wcm9qZWN0LWtleQ==",
|
||||
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"created_at": "2026-07-17T18:42:10.123Z"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/release-manifest.schema.json",
|
||||
"description": "Valid Release manifest example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"application_version": "0.3.0",
|
||||
"release_id": "release_01J0000000000000000000000E",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"version": "1.0.0",
|
||||
"created_at": "2026-07-17T18:43:11.456Z",
|
||||
"source_commit": "0123456789abcdef0123456789abcdef01234567",
|
||||
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
||||
"source_manuscript": {
|
||||
"path": "manuscript/final-manuscript.md",
|
||||
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444"
|
||||
},
|
||||
"sanitized": false,
|
||||
"files": [
|
||||
{
|
||||
"path": "manuscript/final-manuscript.md",
|
||||
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
||||
"size": 1024
|
||||
},
|
||||
{
|
||||
"path": "evidence/creative-process-report.md",
|
||||
"sha256": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
|
||||
"size": 512
|
||||
}
|
||||
],
|
||||
"release_files_merkle_root": "sha256:b773ac929d720839a617ec0f9d6e39ad5401fa7795e21f799302658de8db9cda",
|
||||
"merkle_algorithm": "thinkloom-release-merkle-v1"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/release-state.schema.json",
|
||||
"description": "Valid Release state example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"release_id": "release_01J0000000000000000000000E",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"state": "RELEASE_STAGED",
|
||||
"state_sequence": 5,
|
||||
"source_commit": "0123456789abcdef0123456789abcdef01234567",
|
||||
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
||||
"updated_at": "2026-07-17T18:43:11.456Z",
|
||||
"failure": null
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/sanitized-export-manifest.schema.json",
|
||||
"description": "Valid Sanitized export manifest example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"export_id": "record_01J00000000000000000000005",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
||||
"profile": "sanitized",
|
||||
"omission_rules": [
|
||||
{
|
||||
"category": "private_conversation",
|
||||
"action": "exclude",
|
||||
"count": 2
|
||||
}
|
||||
],
|
||||
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
|
||||
"files": [
|
||||
{
|
||||
"path": "final-manuscript.md",
|
||||
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
||||
"size": 1024
|
||||
}
|
||||
],
|
||||
"created_at": "2026-07-17T18:43:11.456Z"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/text-fragment-reference.schema.json",
|
||||
"description": "Valid Text fragment reference example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"document_revision_id": "revision_01J0000000000000000000000A",
|
||||
"coordinate_system": "utf8_byte",
|
||||
"start": 0,
|
||||
"end": 12,
|
||||
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
|
||||
"text_fragment_id": "fragment_01J0000000000000000000000C"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/transcript-correction.schema.json",
|
||||
"description": "Valid Transcript correction example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"correction_id": "correction_01J0000000000000000000000J",
|
||||
"turn_id": "turn_01J00000000000000000000007",
|
||||
"revision_number": 1,
|
||||
"corrected_text": "Attention shapes our public life.",
|
||||
"reason": "user_correction",
|
||||
"created_at": "2026-07-17T18:43:11.456Z",
|
||||
"event_id": "event_01J00000000000000000000004"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/transcript-normalization.schema.json",
|
||||
"description": "Valid Transcript normalization example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"normalization_id": "normalization_01J0000000000000000000000K",
|
||||
"turn_id": "turn_01J00000000000000000000007",
|
||||
"revision_number": 1,
|
||||
"normalized_text": "Attention shapes public life.",
|
||||
"method": "application",
|
||||
"source_correction_id": "correction_01J0000000000000000000000J",
|
||||
"created_at": "2026-07-17T18:43:11.456Z",
|
||||
"event_id": "event_01J00000000000000000000004"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/transcript-turn.schema.json",
|
||||
"description": "Valid Transcript turn example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"turn_id": "turn_01J00000000000000000000007",
|
||||
"session_id": "session_01J00000000000000000000006",
|
||||
"speaker": "user",
|
||||
"input_mode": "typed",
|
||||
"retained_text": "Attention shapes public life.",
|
||||
"raw_transcript": null,
|
||||
"started_at": "2026-07-17T18:42:10.123Z",
|
||||
"ended_at": "2026-07-17T18:43:11.456Z",
|
||||
"audio_retained": false,
|
||||
"invocation_id": null,
|
||||
"event_id": "event_01J00000000000000000000003"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/verification-report.schema.json",
|
||||
"description": "Valid Verification report example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"verification_id": "record_01J00000000000000000000005",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"status": "VERIFIED_WITH_WARNINGS",
|
||||
"verified_through_event_id": "event_01J00000000000000000000003",
|
||||
"verified_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
||||
"checked_segments": 1,
|
||||
"checked_events": 1,
|
||||
"checked_records": 4,
|
||||
"findings": [
|
||||
{
|
||||
"severity": "WARNING",
|
||||
"code": "INDEX_STALE",
|
||||
"message": "Contribution index is stale.",
|
||||
"authoritative_evidence_affected": false,
|
||||
"path": "provenance/indexes/contribution-graph.json",
|
||||
"event_id": null
|
||||
}
|
||||
],
|
||||
"verifier_version": "1.0.0",
|
||||
"completed_at": "2026-07-17T18:43:11.456Z"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"schema": "https://thinkloom.app/schemas/provenance/1.0/write-intent.schema.json",
|
||||
"description": "Valid Cross-store write intent example.",
|
||||
"instance": {
|
||||
"schema_version": "1.0",
|
||||
"intent_id": "intent_01J00000000000000000000002",
|
||||
"client_action_id": "client-action-0001",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"operation_type": "IDEA_ACCEPTED",
|
||||
"phase": "PREPARED",
|
||||
"event_id": null,
|
||||
"event_sequence": null,
|
||||
"staged_path": ".app/temp/intents/intent.json",
|
||||
"command_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
|
||||
"result": null,
|
||||
"created_at": "2026-07-17T18:42:10.123Z",
|
||||
"updated_at": "2026-07-17T18:42:10.123Z"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user