htm 0.0.2 → 0.0.10
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.
- checksums.yaml +4 -4
- data/.aigcm_msg +1 -0
- data/.architecture/reviews/comprehensive-codebase-review.md +577 -0
- data/.claude/settings.local.json +92 -0
- data/.irbrc +283 -80
- data/.tbls.yml +2 -1
- data/CHANGELOG.md +294 -26
- data/CLAUDE.md +603 -0
- data/README.md +76 -5
- data/Rakefile +5 -0
- data/db/migrate/{20250101000001_enable_extensions.rb → 00001_enable_extensions.rb} +0 -1
- data/db/migrate/00002_create_robots.rb +11 -0
- data/db/migrate/00003_create_file_sources.rb +20 -0
- data/db/migrate/00004_create_nodes.rb +65 -0
- data/db/migrate/00005_create_tags.rb +13 -0
- data/db/migrate/00006_create_node_tags.rb +18 -0
- data/db/migrate/00007_create_robot_nodes.rb +26 -0
- data/db/migrate/00009_add_working_memory_to_robot_nodes.rb +12 -0
- data/db/schema.sql +172 -1
- data/docs/api/database.md +1 -2
- data/docs/api/htm.md +197 -2
- data/docs/api/yard/HTM/ActiveRecordConfig.md +23 -0
- data/docs/api/yard/HTM/AuthorizationError.md +11 -0
- data/docs/api/yard/HTM/CircuitBreaker.md +92 -0
- data/docs/api/yard/HTM/CircuitBreakerOpenError.md +34 -0
- data/docs/api/yard/HTM/Configuration.md +175 -0
- data/docs/api/yard/HTM/Database.md +99 -0
- data/docs/api/yard/HTM/DatabaseError.md +14 -0
- data/docs/api/yard/HTM/EmbeddingError.md +18 -0
- data/docs/api/yard/HTM/EmbeddingService.md +58 -0
- data/docs/api/yard/HTM/Error.md +11 -0
- data/docs/api/yard/HTM/JobAdapter.md +39 -0
- data/docs/api/yard/HTM/LongTermMemory.md +342 -0
- data/docs/api/yard/HTM/NotFoundError.md +17 -0
- data/docs/api/yard/HTM/Observability.md +107 -0
- data/docs/api/yard/HTM/QueryTimeoutError.md +19 -0
- data/docs/api/yard/HTM/Railtie.md +27 -0
- data/docs/api/yard/HTM/ResourceExhaustedError.md +13 -0
- data/docs/api/yard/HTM/TagError.md +18 -0
- data/docs/api/yard/HTM/TagService.md +67 -0
- data/docs/api/yard/HTM/Timeframe/Result.md +24 -0
- data/docs/api/yard/HTM/Timeframe.md +40 -0
- data/docs/api/yard/HTM/TimeframeExtractor/Result.md +24 -0
- data/docs/api/yard/HTM/TimeframeExtractor.md +45 -0
- data/docs/api/yard/HTM/ValidationError.md +20 -0
- data/docs/api/yard/HTM/WorkingMemory.md +131 -0
- data/docs/api/yard/HTM.md +80 -0
- data/docs/api/yard/index.csv +179 -0
- data/docs/api/yard-reference.md +51 -0
- data/docs/database/README.md +128 -128
- data/docs/database/public.file_sources.md +42 -0
- data/docs/database/public.file_sources.svg +211 -0
- data/docs/database/public.node_tags.md +4 -4
- data/docs/database/public.node_tags.svg +212 -79
- data/docs/database/public.nodes.md +22 -12
- data/docs/database/public.nodes.svg +246 -127
- data/docs/database/public.robot_nodes.md +11 -9
- data/docs/database/public.robot_nodes.svg +220 -98
- data/docs/database/public.robots.md +2 -2
- data/docs/database/public.robots.svg +136 -81
- data/docs/database/public.tags.md +3 -3
- data/docs/database/public.tags.svg +118 -39
- data/docs/database/schema.json +850 -771
- data/docs/database/schema.svg +256 -197
- data/docs/development/schema.md +67 -2
- data/docs/guides/adding-memories.md +93 -7
- data/docs/guides/recalling-memories.md +36 -1
- data/examples/README.md +280 -0
- data/examples/cli_app/htm_cli.rb +65 -5
- data/examples/cli_app/temp.log +93 -0
- data/examples/file_loader_usage.rb +177 -0
- data/examples/robot_groups/lib/robot_group.rb +419 -0
- data/examples/robot_groups/lib/working_memory_channel.rb +140 -0
- data/examples/robot_groups/multi_process.rb +286 -0
- data/examples/robot_groups/robot_worker.rb +136 -0
- data/examples/robot_groups/same_process.rb +229 -0
- data/examples/timeframe_demo.rb +276 -0
- data/lib/htm/active_record_config.rb +1 -1
- data/lib/htm/circuit_breaker.rb +202 -0
- data/lib/htm/configuration.rb +59 -13
- data/lib/htm/database.rb +67 -36
- data/lib/htm/embedding_service.rb +39 -2
- data/lib/htm/errors.rb +131 -11
- data/lib/htm/jobs/generate_embedding_job.rb +5 -4
- data/lib/htm/jobs/generate_tags_job.rb +4 -0
- data/lib/htm/loaders/markdown_loader.rb +263 -0
- data/lib/htm/loaders/paragraph_chunker.rb +112 -0
- data/lib/htm/long_term_memory.rb +460 -343
- data/lib/htm/models/file_source.rb +99 -0
- data/lib/htm/models/node.rb +80 -5
- data/lib/htm/models/robot.rb +24 -1
- data/lib/htm/models/robot_node.rb +1 -0
- data/lib/htm/models/tag.rb +254 -4
- data/lib/htm/observability.rb +395 -0
- data/lib/htm/tag_service.rb +60 -3
- data/lib/htm/tasks.rb +26 -1
- data/lib/htm/timeframe.rb +194 -0
- data/lib/htm/timeframe_extractor.rb +307 -0
- data/lib/htm/version.rb +1 -1
- data/lib/htm/working_memory.rb +165 -70
- data/lib/htm.rb +328 -130
- data/lib/tasks/doc.rake +300 -0
- data/lib/tasks/files.rake +299 -0
- data/lib/tasks/htm.rake +158 -3
- data/lib/tasks/jobs.rake +3 -9
- data/lib/tasks/tags.rake +166 -6
- data/mkdocs.yml +36 -1
- data/notes/ARCHITECTURE_REVIEW.md +1167 -0
- data/notes/IMPLEMENTATION_SUMMARY.md +606 -0
- data/notes/MULTI_FRAMEWORK_IMPLEMENTATION.md +451 -0
- data/notes/next_steps.md +100 -0
- data/notes/plan.md +627 -0
- data/notes/tag_ontology_enhancement_ideas.md +222 -0
- data/notes/timescaledb_removal_summary.md +200 -0
- metadata +125 -15
- data/db/migrate/20250101000002_create_robots.rb +0 -14
- data/db/migrate/20250101000003_create_nodes.rb +0 -42
- data/db/migrate/20250101000005_create_tags.rb +0 -38
- data/db/migrate/20250101000007_add_node_vector_indexes.rb +0 -30
- data/db/migrate/20250125000001_add_content_hash_to_nodes.rb +0 -14
- data/db/migrate/20250125000002_create_robot_nodes.rb +0 -35
- data/db/migrate/20250125000003_remove_source_and_robot_id_from_nodes.rb +0 -28
- data/db/migrate/20250126000001_create_working_memories.rb +0 -19
- data/db/migrate/20250126000002_remove_unused_columns.rb +0 -12
- data/docs/database/public.working_memories.md +0 -40
- data/docs/database/public.working_memories.svg +0 -112
- data/lib/htm/models/working_memory_entry.rb +0 -88
|
@@ -4,118 +4,240 @@
|
|
|
4
4
|
<!-- Generated by graphviz version 12.1.2 (20240928.0832)
|
|
5
5
|
-->
|
|
6
6
|
<!-- Title: public.robot_nodes Pages: 1 -->
|
|
7
|
-
<svg width="
|
|
8
|
-
viewBox="0.00 0.00
|
|
9
|
-
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4
|
|
7
|
+
<svg width="1721pt" height="1469pt"
|
|
8
|
+
viewBox="0.00 0.00 1720.60 1468.80" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
9
|
+
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1464.8)">
|
|
10
10
|
<title>public.robot_nodes</title>
|
|
11
|
-
<polygon fill="white" stroke="none" points="-4,4 -4,-
|
|
11
|
+
<polygon fill="white" stroke="none" points="-4,4 -4,-1464.8 1716.6,-1464.8 1716.6,4 -4,4"/>
|
|
12
12
|
<!-- public.robot_nodes -->
|
|
13
13
|
<g id="node1" class="node">
|
|
14
14
|
<title>public.robot_nodes</title>
|
|
15
|
-
<polygon fill="#efefef" stroke="none" points="
|
|
16
|
-
<polygon fill="none" stroke="black" points="
|
|
17
|
-
<text text-anchor="start" x="
|
|
18
|
-
<text text-anchor="start" x="
|
|
19
|
-
<text text-anchor="start" x="
|
|
20
|
-
<
|
|
21
|
-
<
|
|
22
|
-
<text text-anchor="start" x="
|
|
23
|
-
<
|
|
24
|
-
<
|
|
25
|
-
<text text-anchor="start" x="
|
|
26
|
-
<
|
|
27
|
-
<text text-anchor="start" x="
|
|
28
|
-
<
|
|
29
|
-
<
|
|
30
|
-
<text text-anchor="start" x="
|
|
31
|
-
<
|
|
32
|
-
<
|
|
33
|
-
<text text-anchor="start" x="
|
|
34
|
-
<text text-anchor="start" x="
|
|
35
|
-
<polygon fill="none" stroke="black" points="
|
|
36
|
-
<text text-anchor="start" x="
|
|
37
|
-
<text text-anchor="start" x="
|
|
38
|
-
<
|
|
39
|
-
<
|
|
40
|
-
<text text-anchor="start" x="
|
|
41
|
-
<
|
|
42
|
-
<text text-anchor="start" x="
|
|
43
|
-
<
|
|
44
|
-
<
|
|
15
|
+
<polygon fill="#efefef" stroke="none" points="727.48,-1368.6 727.48,-1414.6 1356.96,-1414.6 1356.96,-1368.6 727.48,-1368.6"/>
|
|
16
|
+
<polygon fill="none" stroke="black" points="727.48,-1368.6 727.48,-1414.6 1356.96,-1414.6 1356.96,-1368.6 727.48,-1368.6"/>
|
|
17
|
+
<text text-anchor="start" x="910.73" y="-1392.4" font-family="Arial Bold" font-size="18.00">public.robot_nodes</text>
|
|
18
|
+
<text text-anchor="start" x="1049.21" y="-1392.4" font-family="Arial" font-size="14.00"> </text>
|
|
19
|
+
<text text-anchor="start" x="1080.33" y="-1392.4" font-family="Arial" font-size="14.00" fill="#666666">[BASE TABLE]</text>
|
|
20
|
+
<text text-anchor="start" x="874.91" y="-1378" font-family="Arial" font-size="14.00" fill="#333333">Join table connecting robots to nodes (many-to-many)</text>
|
|
21
|
+
<polygon fill="none" stroke="black" points="727.48,-1337.8 727.48,-1368.6 1356.96,-1368.6 1356.96,-1337.8 727.48,-1337.8"/>
|
|
22
|
+
<text text-anchor="start" x="734.48" y="-1350" font-family="Arial" font-size="14.00">created_at </text>
|
|
23
|
+
<text text-anchor="start" x="804.52" y="-1350" font-family="Arial" font-size="14.00" fill="#666666">[timestamp with time zone]</text>
|
|
24
|
+
<polygon fill="none" stroke="black" points="727.48,-1307 727.48,-1337.8 1356.96,-1337.8 1356.96,-1307 727.48,-1307"/>
|
|
25
|
+
<text text-anchor="start" x="734.48" y="-1319.2" font-family="Arial" font-size="14.00">first_remembered_at </text>
|
|
26
|
+
<text text-anchor="start" x="867.53" y="-1319.2" font-family="Arial" font-size="14.00" fill="#666666">[timestamp with time zone]</text>
|
|
27
|
+
<text text-anchor="start" x="1033.25" y="-1319.2" font-family="Arial" font-size="14.00"> When this robot first remembered this content</text>
|
|
28
|
+
<polygon fill="none" stroke="black" points="727.48,-1276.2 727.48,-1307 1356.96,-1307 1356.96,-1276.2 727.48,-1276.2"/>
|
|
29
|
+
<text text-anchor="start" x="734.48" y="-1288.4" font-family="Arial" font-size="14.00">id </text>
|
|
30
|
+
<text text-anchor="start" x="749.26" y="-1288.4" font-family="Arial" font-size="14.00" fill="#666666">[bigint]</text>
|
|
31
|
+
<polygon fill="none" stroke="black" points="727.48,-1245.4 727.48,-1276.2 1356.96,-1276.2 1356.96,-1245.4 727.48,-1245.4"/>
|
|
32
|
+
<text text-anchor="start" x="734.48" y="-1257.6" font-family="Arial" font-size="14.00">last_remembered_at </text>
|
|
33
|
+
<text text-anchor="start" x="866.76" y="-1257.6" font-family="Arial" font-size="14.00" fill="#666666">[timestamp with time zone]</text>
|
|
34
|
+
<text text-anchor="start" x="1032.49" y="-1257.6" font-family="Arial" font-size="14.00"> When this robot last tried to remember this content</text>
|
|
35
|
+
<polygon fill="none" stroke="black" points="727.48,-1214.6 727.48,-1245.4 1356.96,-1245.4 1356.96,-1214.6 727.48,-1214.6"/>
|
|
36
|
+
<text text-anchor="start" x="734.48" y="-1226.8" font-family="Arial" font-size="14.00">node_id </text>
|
|
37
|
+
<text text-anchor="start" x="788.19" y="-1226.8" font-family="Arial" font-size="14.00" fill="#666666">[bigint]</text>
|
|
38
|
+
<text text-anchor="start" x="829.44" y="-1226.8" font-family="Arial" font-size="14.00"> ID of the node being remembered</text>
|
|
39
|
+
<polygon fill="none" stroke="black" points="727.48,-1183.8 727.48,-1214.6 1356.96,-1214.6 1356.96,-1183.8 727.48,-1183.8"/>
|
|
40
|
+
<text text-anchor="start" x="734.48" y="-1196" font-family="Arial" font-size="14.00">remember_count </text>
|
|
41
|
+
<text text-anchor="start" x="844.19" y="-1196" font-family="Arial" font-size="14.00" fill="#666666">[integer]</text>
|
|
42
|
+
<text text-anchor="start" x="894.78" y="-1196" font-family="Arial" font-size="14.00"> Number of times this robot has tried to remember this content</text>
|
|
43
|
+
<polygon fill="none" stroke="black" points="727.48,-1153 727.48,-1183.8 1356.96,-1183.8 1356.96,-1153 727.48,-1153"/>
|
|
44
|
+
<text text-anchor="start" x="734.48" y="-1165.2" font-family="Arial" font-size="14.00">robot_id </text>
|
|
45
|
+
<text text-anchor="start" x="788.96" y="-1165.2" font-family="Arial" font-size="14.00" fill="#666666">[bigint]</text>
|
|
46
|
+
<text text-anchor="start" x="830.21" y="-1165.2" font-family="Arial" font-size="14.00"> ID of the robot that remembered this node</text>
|
|
47
|
+
<polygon fill="none" stroke="black" points="727.48,-1122.2 727.48,-1153 1356.96,-1153 1356.96,-1122.2 727.48,-1122.2"/>
|
|
48
|
+
<text text-anchor="start" x="734.48" y="-1134.4" font-family="Arial" font-size="14.00">updated_at </text>
|
|
49
|
+
<text text-anchor="start" x="808.43" y="-1134.4" font-family="Arial" font-size="14.00" fill="#666666">[timestamp with time zone]</text>
|
|
50
|
+
<polygon fill="none" stroke="black" points="727.48,-1091.4 727.48,-1122.2 1356.96,-1122.2 1356.96,-1091.4 727.48,-1091.4"/>
|
|
51
|
+
<text text-anchor="start" x="734.48" y="-1103.6" font-family="Arial" font-size="14.00">working_memory </text>
|
|
52
|
+
<text text-anchor="start" x="844.95" y="-1103.6" font-family="Arial" font-size="14.00" fill="#666666">[boolean]</text>
|
|
53
|
+
<text text-anchor="start" x="902.56" y="-1103.6" font-family="Arial" font-size="14.00"> True if this node is currently in the robot working memory</text>
|
|
54
|
+
<polygon fill="none" stroke="black" stroke-width="3" points="725.98,-1089.9 725.98,-1416.1 1358.46,-1416.1 1358.46,-1089.9 725.98,-1089.9"/>
|
|
45
55
|
</g>
|
|
46
|
-
<!-- public.
|
|
56
|
+
<!-- public.nodes -->
|
|
47
57
|
<g id="node2" class="node">
|
|
58
|
+
<title>public.nodes</title>
|
|
59
|
+
<polygon fill="#efefef" stroke="none" points="43.2,-920 43.2,-966 699.24,-966 699.24,-920 43.2,-920"/>
|
|
60
|
+
<polygon fill="none" stroke="black" points="43.2,-920 43.2,-966 699.24,-966 699.24,-920 43.2,-920"/>
|
|
61
|
+
<text text-anchor="start" x="263.23" y="-943.8" font-family="Arial Bold" font-size="18.00">public.nodes</text>
|
|
62
|
+
<text text-anchor="start" x="354.72" y="-943.8" font-family="Arial" font-size="14.00"> </text>
|
|
63
|
+
<text text-anchor="start" x="385.83" y="-943.8" font-family="Arial" font-size="14.00" fill="#666666">[BASE TABLE]</text>
|
|
64
|
+
<text text-anchor="start" x="179.8" y="-929.4" font-family="Arial" font-size="14.00" fill="#333333">Core memory storage for conversation messages and context</text>
|
|
65
|
+
<polygon fill="none" stroke="black" points="43.2,-889.2 43.2,-920 699.24,-920 699.24,-889.2 43.2,-889.2"/>
|
|
66
|
+
<text text-anchor="start" x="50.2" y="-901.4" font-family="Arial" font-size="14.00">access_count </text>
|
|
67
|
+
<text text-anchor="start" x="139.7" y="-901.4" font-family="Arial" font-size="14.00" fill="#666666">[integer]</text>
|
|
68
|
+
<text text-anchor="start" x="190.28" y="-901.4" font-family="Arial" font-size="14.00"> Number of times this node has been accessed/retrieved</text>
|
|
69
|
+
<polygon fill="none" stroke="black" points="43.2,-858.4 43.2,-889.2 699.24,-889.2 699.24,-858.4 43.2,-858.4"/>
|
|
70
|
+
<text text-anchor="start" x="50.2" y="-870.6" font-family="Arial" font-size="14.00">chunk_position </text>
|
|
71
|
+
<text text-anchor="start" x="147.49" y="-870.6" font-family="Arial" font-size="14.00" fill="#666666">[integer]</text>
|
|
72
|
+
<text text-anchor="start" x="198.07" y="-870.6" font-family="Arial" font-size="14.00"> Position within source file (0-indexed)</text>
|
|
73
|
+
<polygon fill="none" stroke="black" points="43.2,-827.6 43.2,-858.4 699.24,-858.4 699.24,-827.6 43.2,-827.6"/>
|
|
74
|
+
<text text-anchor="start" x="50.2" y="-839.8" font-family="Arial" font-size="14.00">content </text>
|
|
75
|
+
<text text-anchor="start" x="100.01" y="-839.8" font-family="Arial" font-size="14.00" fill="#666666">[text]</text>
|
|
76
|
+
<text text-anchor="start" x="130.36" y="-839.8" font-family="Arial" font-size="14.00"> The conversation message/utterance content</text>
|
|
77
|
+
<polygon fill="none" stroke="black" points="43.2,-796.8 43.2,-827.6 699.24,-827.6 699.24,-796.8 43.2,-796.8"/>
|
|
78
|
+
<text text-anchor="start" x="50.2" y="-809" font-family="Arial" font-size="14.00">content_hash </text>
|
|
79
|
+
<text text-anchor="start" x="138.16" y="-809" font-family="Arial" font-size="14.00" fill="#666666">[varchar(64)]</text>
|
|
80
|
+
<text text-anchor="start" x="217.52" y="-809" font-family="Arial" font-size="14.00"> SHA-256 hash of content for deduplication</text>
|
|
81
|
+
<polygon fill="none" stroke="black" points="43.2,-766 43.2,-796.8 699.24,-796.8 699.24,-766 43.2,-766"/>
|
|
82
|
+
<text text-anchor="start" x="50.2" y="-778.2" font-family="Arial" font-size="14.00">created_at </text>
|
|
83
|
+
<text text-anchor="start" x="120.25" y="-778.2" font-family="Arial" font-size="14.00" fill="#666666">[timestamp with time zone]</text>
|
|
84
|
+
<text text-anchor="start" x="285.97" y="-778.2" font-family="Arial" font-size="14.00"> When this memory was created</text>
|
|
85
|
+
<polygon fill="none" stroke="black" points="43.2,-735.2 43.2,-766 699.24,-766 699.24,-735.2 43.2,-735.2"/>
|
|
86
|
+
<text text-anchor="start" x="50.2" y="-747.4" font-family="Arial" font-size="14.00">deleted_at </text>
|
|
87
|
+
<text text-anchor="start" x="119.48" y="-747.4" font-family="Arial" font-size="14.00" fill="#666666">[timestamp with time zone]</text>
|
|
88
|
+
<text text-anchor="start" x="285.21" y="-747.4" font-family="Arial" font-size="14.00"> Soft delete timestamp - node is considered deleted when set</text>
|
|
89
|
+
<polygon fill="none" stroke="black" points="43.2,-704.4 43.2,-735.2 699.24,-735.2 699.24,-704.4 43.2,-704.4"/>
|
|
90
|
+
<text text-anchor="start" x="50.2" y="-716.6" font-family="Arial" font-size="14.00">embedding </text>
|
|
91
|
+
<text text-anchor="start" x="123.37" y="-716.6" font-family="Arial" font-size="14.00" fill="#666666">[vector(2000)]</text>
|
|
92
|
+
<text text-anchor="start" x="209.74" y="-716.6" font-family="Arial" font-size="14.00"> Vector embedding (max 2000 dimensions) for semantic search</text>
|
|
93
|
+
<polygon fill="none" stroke="black" points="43.2,-673.6 43.2,-704.4 699.24,-704.4 699.24,-673.6 43.2,-673.6"/>
|
|
94
|
+
<text text-anchor="start" x="50.2" y="-685.8" font-family="Arial" font-size="14.00">embedding_dimension </text>
|
|
95
|
+
<text text-anchor="start" x="194.96" y="-685.8" font-family="Arial" font-size="14.00" fill="#666666">[integer]</text>
|
|
96
|
+
<text text-anchor="start" x="245.55" y="-685.8" font-family="Arial" font-size="14.00"> Actual number of dimensions used in the embedding vector (max 2000)</text>
|
|
97
|
+
<polygon fill="none" stroke="black" points="43.2,-642.8 43.2,-673.6 699.24,-673.6 699.24,-642.8 43.2,-642.8"/>
|
|
98
|
+
<text text-anchor="start" x="50.2" y="-655" font-family="Arial" font-size="14.00">id </text>
|
|
99
|
+
<text text-anchor="start" x="64.99" y="-655" font-family="Arial" font-size="14.00" fill="#666666">[bigint]</text>
|
|
100
|
+
<polygon fill="none" stroke="black" points="43.2,-612 43.2,-642.8 699.24,-642.8 699.24,-612 43.2,-612"/>
|
|
101
|
+
<text text-anchor="start" x="50.2" y="-624.2" font-family="Arial" font-size="14.00">last_accessed </text>
|
|
102
|
+
<text text-anchor="start" x="142.81" y="-624.2" font-family="Arial" font-size="14.00" fill="#666666">[timestamp with time zone]</text>
|
|
103
|
+
<text text-anchor="start" x="308.53" y="-624.2" font-family="Arial" font-size="14.00"> When this memory was last accessed</text>
|
|
104
|
+
<polygon fill="none" stroke="black" points="43.2,-581.2 43.2,-612 699.24,-612 699.24,-581.2 43.2,-581.2"/>
|
|
105
|
+
<text text-anchor="start" x="50.2" y="-593.4" font-family="Arial" font-size="14.00">metadata </text>
|
|
106
|
+
<text text-anchor="start" x="112.46" y="-593.4" font-family="Arial" font-size="14.00" fill="#666666">[jsonb]</text>
|
|
107
|
+
<text text-anchor="start" x="153.71" y="-593.4" font-family="Arial" font-size="14.00"> Flexible metadata storage (memory_type, importance, source, etc.)</text>
|
|
108
|
+
<polygon fill="none" stroke="black" points="43.2,-550.4 43.2,-581.2 699.24,-581.2 699.24,-550.4 43.2,-550.4"/>
|
|
109
|
+
<text text-anchor="start" x="50.2" y="-562.6" font-family="Arial" font-size="14.00">source_id </text>
|
|
110
|
+
<text text-anchor="start" x="114.79" y="-562.6" font-family="Arial" font-size="14.00" fill="#666666">[bigint]</text>
|
|
111
|
+
<text text-anchor="start" x="156.04" y="-562.6" font-family="Arial" font-size="14.00"> Reference to source file (for file-loaded nodes)</text>
|
|
112
|
+
<polygon fill="none" stroke="black" points="43.2,-519.6 43.2,-550.4 699.24,-550.4 699.24,-519.6 43.2,-519.6"/>
|
|
113
|
+
<text text-anchor="start" x="50.2" y="-531.8" font-family="Arial" font-size="14.00">token_count </text>
|
|
114
|
+
<text text-anchor="start" x="130.37" y="-531.8" font-family="Arial" font-size="14.00" fill="#666666">[integer]</text>
|
|
115
|
+
<text text-anchor="start" x="180.96" y="-531.8" font-family="Arial" font-size="14.00"> Number of tokens in the content (for context budget management)</text>
|
|
116
|
+
<polygon fill="none" stroke="black" points="43.2,-488.8 43.2,-519.6 699.24,-519.6 699.24,-488.8 43.2,-488.8"/>
|
|
117
|
+
<text text-anchor="start" x="50.2" y="-501" font-family="Arial" font-size="14.00">updated_at </text>
|
|
118
|
+
<text text-anchor="start" x="124.16" y="-501" font-family="Arial" font-size="14.00" fill="#666666">[timestamp with time zone]</text>
|
|
119
|
+
<text text-anchor="start" x="289.88" y="-501" font-family="Arial" font-size="14.00"> When this memory was last modified</text>
|
|
120
|
+
</g>
|
|
121
|
+
<!-- public.robot_nodes->public.nodes -->
|
|
122
|
+
<g id="edge1" class="edge">
|
|
123
|
+
<title>public.robot_nodes:node_id->public.nodes:id</title>
|
|
124
|
+
<path fill="none" stroke="black" d="M716.19,-1228.56C612.34,-1196.99 823.71,-658.2 700.24,-658.2"/>
|
|
125
|
+
<polygon fill="black" stroke="black" points="716.24,-1228.56 725.52,-1234.41 721.52,-1229.3 725.81,-1229.91 725.81,-1229.91 725.81,-1229.91 721.52,-1229.3 726.77,-1225.5 716.24,-1228.56"/>
|
|
126
|
+
<text text-anchor="start" x="468.32" y="-1214" font-family="Arial" font-size="10.00">FOREIGN KEY (node_id) REFERENCES nodes(id) ON DELETE CASCADE</text>
|
|
127
|
+
</g>
|
|
128
|
+
<!-- public.robots -->
|
|
129
|
+
<g id="node5" class="node">
|
|
48
130
|
<title>public.robots</title>
|
|
49
|
-
<polygon fill="#efefef" stroke="none" points="
|
|
50
|
-
<polygon fill="none" stroke="black" points="
|
|
51
|
-
<text text-anchor="start" x="
|
|
52
|
-
<text text-anchor="start" x="
|
|
53
|
-
<text text-anchor="start" x="
|
|
54
|
-
<
|
|
55
|
-
<
|
|
56
|
-
<text text-anchor="start" x="
|
|
57
|
-
<
|
|
58
|
-
<text text-anchor="start" x="
|
|
59
|
-
<
|
|
60
|
-
<
|
|
61
|
-
<text text-anchor="start" x="
|
|
62
|
-
<
|
|
63
|
-
<
|
|
64
|
-
<text text-anchor="start" x="
|
|
65
|
-
<text text-anchor="start" x="
|
|
131
|
+
<polygon fill="#efefef" stroke="none" points="804.11,-766 804.11,-812 1308.33,-812 1308.33,-766 804.11,-766"/>
|
|
132
|
+
<polygon fill="none" stroke="black" points="804.11,-766 804.11,-812 1308.33,-812 1308.33,-766 804.11,-766"/>
|
|
133
|
+
<text text-anchor="start" x="946.73" y="-789.8" font-family="Arial Bold" font-size="18.00">public.robots</text>
|
|
134
|
+
<text text-anchor="start" x="1041.22" y="-789.8" font-family="Arial" font-size="14.00"> </text>
|
|
135
|
+
<text text-anchor="start" x="1072.34" y="-789.8" font-family="Arial" font-size="14.00" fill="#666666">[BASE TABLE]</text>
|
|
136
|
+
<text text-anchor="start" x="905.28" y="-775.4" font-family="Arial" font-size="14.00" fill="#333333">Registry of all LLM robots using the HTM system</text>
|
|
137
|
+
<polygon fill="none" stroke="black" points="804.11,-735.2 804.11,-766 1308.33,-766 1308.33,-735.2 804.11,-735.2"/>
|
|
138
|
+
<text text-anchor="start" x="811.11" y="-747.4" font-family="Arial" font-size="14.00">created_at </text>
|
|
139
|
+
<text text-anchor="start" x="881.16" y="-747.4" font-family="Arial" font-size="14.00" fill="#666666">[timestamp with time zone]</text>
|
|
140
|
+
<text text-anchor="start" x="1046.88" y="-747.4" font-family="Arial" font-size="14.00"> When the robot was first registered</text>
|
|
141
|
+
<polygon fill="none" stroke="black" points="804.11,-704.4 804.11,-735.2 1308.33,-735.2 1308.33,-704.4 804.11,-704.4"/>
|
|
142
|
+
<text text-anchor="start" x="811.11" y="-716.6" font-family="Arial" font-size="14.00">id </text>
|
|
143
|
+
<text text-anchor="start" x="825.9" y="-716.6" font-family="Arial" font-size="14.00" fill="#666666">[bigint]</text>
|
|
144
|
+
<polygon fill="none" stroke="black" points="804.11,-673.6 804.11,-704.4 1308.33,-704.4 1308.33,-673.6 804.11,-673.6"/>
|
|
145
|
+
<text text-anchor="start" x="811.11" y="-685.8" font-family="Arial" font-size="14.00">last_active </text>
|
|
146
|
+
<text text-anchor="start" x="881.15" y="-685.8" font-family="Arial" font-size="14.00" fill="#666666">[timestamp with time zone]</text>
|
|
147
|
+
<text text-anchor="start" x="1046.87" y="-685.8" font-family="Arial" font-size="14.00"> Last time the robot accessed the system</text>
|
|
148
|
+
<polygon fill="none" stroke="black" points="804.11,-642.8 804.11,-673.6 1308.33,-673.6 1308.33,-642.8 804.11,-642.8"/>
|
|
149
|
+
<text text-anchor="start" x="811.11" y="-655" font-family="Arial" font-size="14.00">name </text>
|
|
150
|
+
<text text-anchor="start" x="850.02" y="-655" font-family="Arial" font-size="14.00" fill="#666666">[text]</text>
|
|
151
|
+
<text text-anchor="start" x="880.37" y="-655" font-family="Arial" font-size="14.00"> Human-readable name for the robot</text>
|
|
66
152
|
</g>
|
|
67
153
|
<!-- public.robot_nodes->public.robots -->
|
|
68
|
-
<g id="
|
|
154
|
+
<g id="edge4" class="edge">
|
|
69
155
|
<title>public.robot_nodes:robot_id->public.robots:id</title>
|
|
70
|
-
<path fill="none" stroke="black" d="
|
|
71
|
-
<polygon fill="black" stroke="black" points="
|
|
72
|
-
<text text-anchor="start" x="
|
|
156
|
+
<path fill="none" stroke="black" d="M1368.11,-1167.33C1409.43,-1157.79 1386.77,-1086.6 1356.96,-1045.2 1205.17,-834.34 955.83,-1066.12 804.11,-855.2 768.97,-806.35 742.93,-719.8 803.11,-719.8"/>
|
|
157
|
+
<polygon fill="black" stroke="black" points="1368.24,-1167.32 1357.82,-1163.89 1362.94,-1167.88 1358.63,-1168.33 1358.63,-1168.33 1358.63,-1168.33 1362.94,-1167.88 1358.77,-1172.84 1368.24,-1167.32"/>
|
|
158
|
+
<text text-anchor="start" x="1364.96" y="-1178.4" font-family="Arial" font-size="10.00">FOREIGN KEY (robot_id) REFERENCES robots(id) ON DELETE CASCADE</text>
|
|
73
159
|
</g>
|
|
74
|
-
<!-- public.
|
|
160
|
+
<!-- public.file_sources -->
|
|
161
|
+
<g id="node4" class="node">
|
|
162
|
+
<title>public.file_sources</title>
|
|
163
|
+
<polygon fill="#efefef" stroke="none" points="125.35,-320.4 125.35,-366.4 617.09,-366.4 617.09,-320.4 125.35,-320.4"/>
|
|
164
|
+
<polygon fill="none" stroke="black" points="125.35,-320.4 125.35,-366.4 617.09,-366.4 617.09,-320.4 125.35,-320.4"/>
|
|
165
|
+
<text text-anchor="start" x="240.74" y="-344.2" font-family="Arial Bold" font-size="18.00">public.file_sources</text>
|
|
166
|
+
<text text-anchor="start" x="377.2" y="-344.2" font-family="Arial" font-size="14.00"> </text>
|
|
167
|
+
<text text-anchor="start" x="408.32" y="-344.2" font-family="Arial" font-size="14.00" fill="#666666">[BASE TABLE]</text>
|
|
168
|
+
<text text-anchor="start" x="237.75" y="-329.8" font-family="Arial" font-size="14.00" fill="#333333">Source file metadata for loaded documents</text>
|
|
169
|
+
<polygon fill="none" stroke="black" points="125.35,-289.6 125.35,-320.4 617.09,-320.4 617.09,-289.6 125.35,-289.6"/>
|
|
170
|
+
<text text-anchor="start" x="132.35" y="-301.8" font-family="Arial" font-size="14.00">created_at </text>
|
|
171
|
+
<text text-anchor="start" x="202.4" y="-301.8" font-family="Arial" font-size="14.00" fill="#666666">[timestamp with time zone]</text>
|
|
172
|
+
<polygon fill="none" stroke="black" points="125.35,-258.8 125.35,-289.6 617.09,-289.6 617.09,-258.8 125.35,-258.8"/>
|
|
173
|
+
<text text-anchor="start" x="132.35" y="-271" font-family="Arial" font-size="14.00">file_hash </text>
|
|
174
|
+
<text text-anchor="start" x="192.28" y="-271" font-family="Arial" font-size="14.00" fill="#666666">[varchar(64)]</text>
|
|
175
|
+
<text text-anchor="start" x="271.64" y="-271" font-family="Arial" font-size="14.00"> SHA-256 hash of file content</text>
|
|
176
|
+
<polygon fill="none" stroke="black" points="125.35,-228 125.35,-258.8 617.09,-258.8 617.09,-228 125.35,-228"/>
|
|
177
|
+
<text text-anchor="start" x="132.35" y="-240.2" font-family="Arial" font-size="14.00">file_path </text>
|
|
178
|
+
<text text-anchor="start" x="189.17" y="-240.2" font-family="Arial" font-size="14.00" fill="#666666">[text]</text>
|
|
179
|
+
<text text-anchor="start" x="219.51" y="-240.2" font-family="Arial" font-size="14.00"> Absolute path to source file</text>
|
|
180
|
+
<polygon fill="none" stroke="black" points="125.35,-197.2 125.35,-228 617.09,-228 617.09,-197.2 125.35,-197.2"/>
|
|
181
|
+
<text text-anchor="start" x="132.35" y="-209.4" font-family="Arial" font-size="14.00">file_size </text>
|
|
182
|
+
<text text-anchor="start" x="186.82" y="-209.4" font-family="Arial" font-size="14.00" fill="#666666">[integer]</text>
|
|
183
|
+
<text text-anchor="start" x="237.4" y="-209.4" font-family="Arial" font-size="14.00"> File size in bytes</text>
|
|
184
|
+
<polygon fill="none" stroke="black" points="125.35,-166.4 125.35,-197.2 617.09,-197.2 617.09,-166.4 125.35,-166.4"/>
|
|
185
|
+
<text text-anchor="start" x="132.35" y="-178.6" font-family="Arial" font-size="14.00">frontmatter </text>
|
|
186
|
+
<text text-anchor="start" x="203.93" y="-178.6" font-family="Arial" font-size="14.00" fill="#666666">[jsonb]</text>
|
|
187
|
+
<text text-anchor="start" x="245.17" y="-178.6" font-family="Arial" font-size="14.00"> Parsed YAML frontmatter</text>
|
|
188
|
+
<polygon fill="none" stroke="black" points="125.35,-135.6 125.35,-166.4 617.09,-166.4 617.09,-135.6 125.35,-135.6"/>
|
|
189
|
+
<text text-anchor="start" x="132.35" y="-147.8" font-family="Arial" font-size="14.00">id </text>
|
|
190
|
+
<text text-anchor="start" x="147.13" y="-147.8" font-family="Arial" font-size="14.00" fill="#666666">[bigint]</text>
|
|
191
|
+
<polygon fill="none" stroke="black" points="125.35,-104.8 125.35,-135.6 617.09,-135.6 617.09,-104.8 125.35,-104.8"/>
|
|
192
|
+
<text text-anchor="start" x="132.35" y="-117" font-family="Arial" font-size="14.00">last_synced_at </text>
|
|
193
|
+
<text text-anchor="start" x="229.63" y="-117" font-family="Arial" font-size="14.00" fill="#666666">[timestamp with time zone]</text>
|
|
194
|
+
<text text-anchor="start" x="395.35" y="-117" font-family="Arial" font-size="14.00"> When file was last synced to HTM</text>
|
|
195
|
+
<polygon fill="none" stroke="black" points="125.35,-74 125.35,-104.8 617.09,-104.8 617.09,-74 125.35,-74"/>
|
|
196
|
+
<text text-anchor="start" x="132.35" y="-86.2" font-family="Arial" font-size="14.00">mtime </text>
|
|
197
|
+
<text text-anchor="start" x="174.35" y="-86.2" font-family="Arial" font-size="14.00" fill="#666666">[timestamp with time zone]</text>
|
|
198
|
+
<text text-anchor="start" x="340.07" y="-86.2" font-family="Arial" font-size="14.00"> File modification time</text>
|
|
199
|
+
<polygon fill="none" stroke="black" points="125.35,-43.2 125.35,-74 617.09,-74 617.09,-43.2 125.35,-43.2"/>
|
|
200
|
+
<text text-anchor="start" x="132.35" y="-55.4" font-family="Arial" font-size="14.00">updated_at </text>
|
|
201
|
+
<text text-anchor="start" x="206.31" y="-55.4" font-family="Arial" font-size="14.00" fill="#666666">[timestamp with time zone]</text>
|
|
202
|
+
</g>
|
|
203
|
+
<!-- public.nodes->public.file_sources -->
|
|
204
|
+
<g id="edge3" class="edge">
|
|
205
|
+
<title>public.nodes:source_id->public.file_sources:id</title>
|
|
206
|
+
<path fill="none" stroke="black" d="M710.45,-563.95C787.77,-534.03 708.39,-151 618.09,-151"/>
|
|
207
|
+
<polygon fill="black" stroke="black" points="710.41,-563.96 699.77,-561.31 705.16,-564.91 700.9,-565.68 700.9,-565.68 700.9,-565.68 705.16,-564.91 701.37,-570.17 710.41,-563.96"/>
|
|
208
|
+
<text text-anchor="start" x="707.24" y="-575.8" font-family="Arial" font-size="10.00">FOREIGN KEY (source_id) REFERENCES file_sources(id) ON DELETE SET NULL</text>
|
|
209
|
+
</g>
|
|
210
|
+
<!-- public.node_tags -->
|
|
75
211
|
<g id="node3" class="node">
|
|
76
|
-
<title>public.
|
|
77
|
-
<polygon fill="#efefef" stroke="none" points="
|
|
78
|
-
<polygon fill="none" stroke="black" points="
|
|
79
|
-
<text text-anchor="start" x="
|
|
80
|
-
<text text-anchor="start" x="
|
|
81
|
-
<text text-anchor="start" x="
|
|
82
|
-
<
|
|
83
|
-
<
|
|
84
|
-
<text text-anchor="start" x="
|
|
85
|
-
<
|
|
86
|
-
<text text-anchor="start" x="
|
|
87
|
-
<
|
|
88
|
-
<
|
|
89
|
-
<text text-anchor="start" x="
|
|
90
|
-
<
|
|
91
|
-
<
|
|
92
|
-
<text text-anchor="start" x="
|
|
93
|
-
<text text-anchor="start" x="
|
|
94
|
-
<polygon fill="none" stroke="black" points="
|
|
95
|
-
<text text-anchor="start" x="
|
|
96
|
-
<text text-anchor="start" x="
|
|
97
|
-
<
|
|
98
|
-
<text text-anchor="start" x="565.86" y="-178.6" font-family="Arial" font-size="14.00">last_accessed </text>
|
|
99
|
-
<text text-anchor="start" x="658.47" y="-178.6" font-family="Arial" font-size="14.00" fill="#666666">[timestamp with time zone]</text>
|
|
100
|
-
<polygon fill="none" stroke="black" points="558.86,-135.6 558.86,-166.4 831.19,-166.4 831.19,-135.6 558.86,-135.6"/>
|
|
101
|
-
<text text-anchor="start" x="565.86" y="-147.8" font-family="Arial" font-size="14.00">token_count </text>
|
|
102
|
-
<text text-anchor="start" x="646.04" y="-147.8" font-family="Arial" font-size="14.00" fill="#666666">[integer]</text>
|
|
103
|
-
<polygon fill="none" stroke="black" points="558.86,-104.8 558.86,-135.6 831.19,-135.6 831.19,-104.8 558.86,-104.8"/>
|
|
104
|
-
<text text-anchor="start" x="565.86" y="-117" font-family="Arial" font-size="14.00">embedding </text>
|
|
105
|
-
<text text-anchor="start" x="639.03" y="-117" font-family="Arial" font-size="14.00" fill="#666666">[vector(2000)]</text>
|
|
106
|
-
<polygon fill="none" stroke="black" points="558.86,-74 558.86,-104.8 831.19,-104.8 831.19,-74 558.86,-74"/>
|
|
107
|
-
<text text-anchor="start" x="565.86" y="-86.2" font-family="Arial" font-size="14.00">embedding_dimension </text>
|
|
108
|
-
<text text-anchor="start" x="710.63" y="-86.2" font-family="Arial" font-size="14.00" fill="#666666">[integer]</text>
|
|
109
|
-
<polygon fill="none" stroke="black" points="558.86,-43.2 558.86,-74 831.19,-74 831.19,-43.2 558.86,-43.2"/>
|
|
110
|
-
<text text-anchor="start" x="565.86" y="-55.4" font-family="Arial" font-size="14.00">content_hash </text>
|
|
111
|
-
<text text-anchor="start" x="653.82" y="-55.4" font-family="Arial" font-size="14.00" fill="#666666">[varchar(64)]</text>
|
|
212
|
+
<title>public.node_tags</title>
|
|
213
|
+
<polygon fill="#efefef" stroke="none" points="136.61,-1291.6 136.61,-1337.6 605.83,-1337.6 605.83,-1291.6 136.61,-1291.6"/>
|
|
214
|
+
<polygon fill="none" stroke="black" points="136.61,-1291.6 136.61,-1337.6 605.83,-1337.6 605.83,-1291.6 136.61,-1291.6"/>
|
|
215
|
+
<text text-anchor="start" x="247.74" y="-1315.4" font-family="Arial Bold" font-size="18.00">public.node_tags</text>
|
|
216
|
+
<text text-anchor="start" x="370.21" y="-1315.4" font-family="Arial" font-size="14.00"> </text>
|
|
217
|
+
<text text-anchor="start" x="401.33" y="-1315.4" font-family="Arial" font-size="14.00" fill="#666666">[BASE TABLE]</text>
|
|
218
|
+
<text text-anchor="start" x="210.13" y="-1301" font-family="Arial" font-size="14.00" fill="#333333">Join table connecting nodes to tags (many-to-many)</text>
|
|
219
|
+
<polygon fill="none" stroke="black" points="136.61,-1260.8 136.61,-1291.6 605.83,-1291.6 605.83,-1260.8 136.61,-1260.8"/>
|
|
220
|
+
<text text-anchor="start" x="143.61" y="-1273" font-family="Arial" font-size="14.00">created_at </text>
|
|
221
|
+
<text text-anchor="start" x="213.66" y="-1273" font-family="Arial" font-size="14.00" fill="#666666">[timestamp with time zone]</text>
|
|
222
|
+
<text text-anchor="start" x="379.38" y="-1273" font-family="Arial" font-size="14.00"> When this association was created</text>
|
|
223
|
+
<polygon fill="none" stroke="black" points="136.61,-1230 136.61,-1260.8 605.83,-1260.8 605.83,-1230 136.61,-1230"/>
|
|
224
|
+
<text text-anchor="start" x="143.61" y="-1242.2" font-family="Arial" font-size="14.00">id </text>
|
|
225
|
+
<text text-anchor="start" x="158.4" y="-1242.2" font-family="Arial" font-size="14.00" fill="#666666">[bigint]</text>
|
|
226
|
+
<polygon fill="none" stroke="black" points="136.61,-1199.2 136.61,-1230 605.83,-1230 605.83,-1199.2 136.61,-1199.2"/>
|
|
227
|
+
<text text-anchor="start" x="143.61" y="-1211.4" font-family="Arial" font-size="14.00">node_id </text>
|
|
228
|
+
<text text-anchor="start" x="197.33" y="-1211.4" font-family="Arial" font-size="14.00" fill="#666666">[bigint]</text>
|
|
229
|
+
<text text-anchor="start" x="238.58" y="-1211.4" font-family="Arial" font-size="14.00"> ID of the node being tagged</text>
|
|
230
|
+
<polygon fill="none" stroke="black" points="136.61,-1168.4 136.61,-1199.2 605.83,-1199.2 605.83,-1168.4 136.61,-1168.4"/>
|
|
231
|
+
<text text-anchor="start" x="143.61" y="-1180.6" font-family="Arial" font-size="14.00">tag_id </text>
|
|
232
|
+
<text text-anchor="start" x="185.65" y="-1180.6" font-family="Arial" font-size="14.00" fill="#666666">[bigint]</text>
|
|
233
|
+
<text text-anchor="start" x="226.9" y="-1180.6" font-family="Arial" font-size="14.00"> ID of the tag being applied</text>
|
|
112
234
|
</g>
|
|
113
|
-
<!-- public.
|
|
235
|
+
<!-- public.node_tags->public.nodes -->
|
|
114
236
|
<g id="edge2" class="edge">
|
|
115
|
-
<title>public.
|
|
116
|
-
<path fill="none" stroke="black" d="
|
|
117
|
-
<polygon fill="black" stroke="black" points="
|
|
118
|
-
<text text-anchor="start" x="
|
|
237
|
+
<title>public.node_tags:node_id->public.nodes:id</title>
|
|
238
|
+
<path fill="none" stroke="black" d="M616.9,-1214.01C682.83,-1205.78 634.85,-1112.62 672.22,-1045.2 681.92,-1027.7 692.88,-1028.17 699.24,-1009.2 724.02,-935.24 778.24,-658.2 700.24,-658.2"/>
|
|
239
|
+
<polygon fill="black" stroke="black" points="617.14,-1214 606.9,-1210.09 611.82,-1214.31 607.49,-1214.56 607.49,-1214.56 607.49,-1214.56 611.82,-1214.31 607.42,-1219.07 617.14,-1214"/>
|
|
240
|
+
<text text-anchor="start" x="260.28" y="-1224.6" font-family="Arial" font-size="10.00">FOREIGN KEY (node_id) REFERENCES nodes(id) ON DELETE CASCADE</text>
|
|
119
241
|
</g>
|
|
120
242
|
</g>
|
|
121
243
|
</svg>
|
|
@@ -8,10 +8,10 @@ Registry of all LLM robots using the HTM system
|
|
|
8
8
|
|
|
9
9
|
| Name | Type | Default | Nullable | Children | Parents | Comment |
|
|
10
10
|
| ---- | ---- | ------- | -------- | -------- | ------- | ------- |
|
|
11
|
-
| id | bigint | nextval('robots_id_seq'::regclass) | false | [public.robot_nodes](public.robot_nodes.md) [public.working_memories](public.working_memories.md) | | |
|
|
12
|
-
| name | text | | true | | | Human-readable name for the robot |
|
|
13
11
|
| created_at | timestamp with time zone | CURRENT_TIMESTAMP | true | | | When the robot was first registered |
|
|
12
|
+
| id | bigint | nextval('robots_id_seq'::regclass) | false | [public.robot_nodes](public.robot_nodes.md) | | |
|
|
14
13
|
| last_active | timestamp with time zone | CURRENT_TIMESTAMP | true | | | Last time the robot accessed the system |
|
|
14
|
+
| name | text | | true | | | Human-readable name for the robot |
|
|
15
15
|
|
|
16
16
|
## Constraints
|
|
17
17
|
|