@consiliency/agent-board-schema 1.2.0
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/LICENSE +202 -0
- package/NOTICE +11 -0
- package/README.md +55 -0
- package/bin/agent-board-schema.js +97 -0
- package/fixtures/already-applied.json +181 -0
- package/fixtures/divergent-history.json +173 -0
- package/fixtures/production-history.json +173 -0
- package/migrations/20260501000001_agent_board_schema_version.sql +12 -0
- package/migrations/20260502000000_agent_board_schema.sql +180 -0
- package/migrations/20260503000000_agent_board_rpcs.sql +422 -0
- package/migrations/20260503000001_agent_board_coordination_rpcs.sql +229 -0
- package/migrations/20260504000000_agent_board_read_models.sql +206 -0
- package/migrations/20260505000000_agent_board_inbox_schema.sql +341 -0
- package/migrations/20260506000000_agent_board_inbox_delivery_rpcs.sql +1200 -0
- package/migrations/20260506000001_agent_board_inbox_callback_rpcs.sql +330 -0
- package/migrations/20260507000000_agent_board_inbox_reads.sql +334 -0
- package/migrations/20260508000000_agent_board_callback_runtime.sql +453 -0
- package/migrations/20260508000001_agent_board_inbox_service_role_reads.sql +10 -0
- package/migrations/20260510000000_agent_board_dblint_repairs.sql +413 -0
- package/migrations/20260511000000_agent_board_auth_schema.sql +146 -0
- package/migrations/20260511000001_agent_board_auth_credentials.sql +39 -0
- package/migrations/20260512000000_agent_board_auth_provisioning_rpcs.sql +622 -0
- package/migrations/20260512000001_agent_board_auth_v1_rpcs.sql +798 -0
- package/migrations/20260512000002_agent_board_auth_v2_rpcs.sql +1243 -0
- package/migrations/20260512000003_agent_board_auth_rls.sql +484 -0
- package/migrations/20260513000000_agent_board_backup_ops.sql +34 -0
- package/migrations/20260513000001_agent_board_retention.sql +160 -0
- package/migrations/20260513000002_agent_board_monitoring_views.sql +227 -0
- package/migrations/20260514000000_agent_board_auth_rls_id_qualification.sql +150 -0
- package/migrations/20260515000000_agent_board_boardopt.sql +493 -0
- package/migrations/20260516000000_agent_board_callbackcap.sql +113 -0
- package/migrations/20260517000000_agent_board_addressing.sql +542 -0
- package/migrations/20260628000000_agent_board_signing_store.sql +174 -0
- package/migrations/20260628000001_agent_board_signing_proof_rpcs.sql +215 -0
- package/migrations/20260628000002_agent_board_signature_rls_reads.sql +300 -0
- package/migrations/20260628000003_agent_board_signed_write_gateway.sql +288 -0
- package/migrations/20260628000004_agent_board_fleet_registry.sql +411 -0
- package/migrations/20260628000005_agent_board_fleet_policy.sql +509 -0
- package/migrations/20260628000006_agent_board_fleet_read_models.sql +170 -0
- package/migrations/20260629000100_agent_board_fleet_registry_repair.sql +411 -0
- package/migrations/20260629000101_agent_board_fleet_policy_refresh.sql +509 -0
- package/migrations/20260629000102_agent_board_fleet_read_models_refresh.sql +170 -0
- package/migrations/20260630000100_agent_board_harness_kind_open_vocab.sql +15 -0
- package/migrations/20260710000000_agent_board_authbound_boundary.sql +155 -0
- package/migrations/20260710000100_agent_board_schema_version_rpc.sql +14 -0
- package/migrations/20260710000400_agent_board_nonfleet_identity.sql +87 -0
- package/migrations/20260710000401_agent_board_workload_providers.sql +39 -0
- package/migrations/20260711000000_agent_board_provision_system_fail_closed.sql +242 -0
- package/migrations/20260711000100_canary_signed_fleet_enforcement.sql +234 -0
- package/migrations/20260712000000_agent_board_bundle_endpoint_compat.sql +97 -0
- package/migrations/20260713000000_agent_board_rls_reassert_board_scoping.sql +90 -0
- package/package.json +42 -0
- package/provenance.json +580 -0
- package/schema-manifest.json +458 -0
- package/src/check.js +23 -0
- package/src/index.js +50 -0
- package/src/materialize.js +73 -0
- package/src/plan.js +44 -0
- package/src/tooling.test.mjs +97 -0
- package/tests/agent_board_addressing.test.sql +166 -0
- package/tests/agent_board_auth_rls.test.sql +243 -0
- package/tests/agent_board_auth_rls_id_qualification.test.sql +225 -0
- package/tests/agent_board_auth_rpcs.test.sql +311 -0
- package/tests/agent_board_auth_schema.test.sql +411 -0
- package/tests/agent_board_authbound_boundary.test.sql +148 -0
- package/tests/agent_board_boardopt.test.sql +170 -0
- package/tests/agent_board_bundle_endpoint_compat.test.sql +49 -0
- package/tests/agent_board_callback_runtime.test.sql +425 -0
- package/tests/agent_board_callbackcap.test.sql +222 -0
- package/tests/agent_board_canary_signed_fleet_enforcement.test.sql +60 -0
- package/tests/agent_board_dblint_rpcs.test.sql +247 -0
- package/tests/agent_board_fleet_policy.test.sql +370 -0
- package/tests/agent_board_fleet_read_models.test.sql +158 -0
- package/tests/agent_board_fleet_registry.test.sql +149 -0
- package/tests/agent_board_inbox_reads.test.sql +471 -0
- package/tests/agent_board_inbox_rpcs.test.sql +452 -0
- package/tests/agent_board_inbox_schema.test.sql +355 -0
- package/tests/agent_board_nonfleet_identity.test.sql +26 -0
- package/tests/agent_board_rls_reassert_board_scoping.test.sql +39 -0
- package/tests/agent_board_schema_version.test.sql +24 -0
- package/tests/agent_board_schema_version_rpc.test.sql +40 -0
- package/tests/agent_board_signature_rls_reads.test.sql +133 -0
- package/tests/agent_board_signed_write_gateway.test.sql +219 -0
- package/tests/agent_board_signing_proof_rpcs.test.sql +143 -0
- package/tests/agent_board_signing_store.test.sql +183 -0
- package/tests/agent_board_smoke.test.sql +12 -0
- package/tests/agent_board_v1_invariants.test.sql +298 -0
- package/tests/agent_board_v2_invariants.test.sql +753 -0
- package/tests/agent_board_workload_providers.test.sql +15 -0
- package/tests/fixtures/adopter-base.sql +19 -0
- package/tests/fixtures/operator-hardening.sql +27 -0
- package/tests/fixtures/test-prereqs.sql +84 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
{
|
|
2
|
+
"note": "one divergent digest",
|
|
3
|
+
"applied": [
|
|
4
|
+
{
|
|
5
|
+
"id": "20260501000001_agent_board_schema_version",
|
|
6
|
+
"sha256": "326909867e4b6e0b756e52455171def3308561d47cf815c10a47a0b39c8afc5f"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"id": "20260502000000_agent_board_schema",
|
|
10
|
+
"sha256": "a4466d5d202de2328d58de0f870313b69541880f37ce73f1dfe1c005ad497bda"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"id": "20260503000000_agent_board_rpcs",
|
|
14
|
+
"sha256": "685a7b88295bd76f0dda6530d96b17828f5024c037f0552b6b82555fb0f298c8"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"id": "20260503000001_agent_board_coordination_rpcs",
|
|
18
|
+
"sha256": "658d8e397dff727e9c3906699c8827004b1d365e53c7b5691935fd613c662adb"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "20260504000000_agent_board_read_models",
|
|
22
|
+
"sha256": "5b35cb4c8763640bf4cf35fb5e063357ad35bd5d086dd5a6d8f13c04b4b0f29e"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "20260505000000_agent_board_inbox_schema",
|
|
26
|
+
"sha256": "deadbeef"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": "20260506000000_agent_board_inbox_delivery_rpcs",
|
|
30
|
+
"sha256": "b56defdeb2cfe06b6fe1b50de5ff2515000097783552c175b512b34fd68bcbc6"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "20260506000001_agent_board_inbox_callback_rpcs",
|
|
34
|
+
"sha256": "f31d855e3ea091f7f38ebfb5981bd9aad63e927eee3b46e7d011c2121806b030"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "20260507000000_agent_board_inbox_reads",
|
|
38
|
+
"sha256": "d9a11145ef49c7ee49b283c9fc71d230eb5d8e14ab76fa7a8da23519886af2d5"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"id": "20260508000000_agent_board_callback_runtime",
|
|
42
|
+
"sha256": "750848141ead5c1c8b58fc10f7b7b2d082055300ee28d8666bdcecea7db527ac"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"id": "20260508000001_agent_board_inbox_service_role_reads",
|
|
46
|
+
"sha256": "85c2301902d5a49f6f226c9887ee5cf01a02f88b5c65925cb23cc3fb4c0a941e"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"id": "20260510000000_agent_board_dblint_repairs",
|
|
50
|
+
"sha256": "4b862004b455d6569254638d3c5c07779b84b95ab8d70210d92a628dc3eb94c5"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"id": "20260511000000_agent_board_auth_schema",
|
|
54
|
+
"sha256": "dba2128e74e25d009a8dc20052d3329fffee364e7b4c15c92ab22584b8f797a3"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"id": "20260511000001_agent_board_auth_credentials",
|
|
58
|
+
"sha256": "1f63c4d12fc34db76b7ceef17ee9c64ad09be9e13b9e02497477ec62aa14ebbc"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"id": "20260512000000_agent_board_auth_provisioning_rpcs",
|
|
62
|
+
"sha256": "4a72d9ac64446889a54293fb60bb3402da9dbd8bdb29027e7d5d15965e20af27"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"id": "20260512000001_agent_board_auth_v1_rpcs",
|
|
66
|
+
"sha256": "c1fdc772beac92f60010ca6d2e7ea95a81989d651f7cb279905770756dc47bda"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"id": "20260512000002_agent_board_auth_v2_rpcs",
|
|
70
|
+
"sha256": "c2df467ef49c6c30eea50d1a789e8816627a3b8f34a1172fdeb61b7d681031ae"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"id": "20260512000003_agent_board_auth_rls",
|
|
74
|
+
"sha256": "d194a28482d8a7b00272e1b06a09fd125ec13f2906de86d2aab942671bc79294"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": "20260513000000_agent_board_backup_ops",
|
|
78
|
+
"sha256": "1e9e5d1a6b6e2f6b83d9b5479e464cd0f91297c2a28ff71c54cabde656761142"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"id": "20260513000001_agent_board_retention",
|
|
82
|
+
"sha256": "7dd0ebd14eb97922d9c16fcf9c29815b0ab5c2bd7534c6f2de189d55e7d633ec"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"id": "20260513000002_agent_board_monitoring_views",
|
|
86
|
+
"sha256": "037b4d036a4526fd2b905e0a950698b8cbad5ad4a16e6fbea4cdab3b4147edc1"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"id": "20260514000000_agent_board_auth_rls_id_qualification",
|
|
90
|
+
"sha256": "9d09d16f993cf504552e1736b867b4c6b2d5cad4ec9a99b512bf645fe83cfd76"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"id": "20260515000000_agent_board_boardopt",
|
|
94
|
+
"sha256": "99d82496dd9c791968cc7e129026e6af97da700302fa87e86b6a0e28513c7163"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"id": "20260516000000_agent_board_callbackcap",
|
|
98
|
+
"sha256": "6f68ef098aaa6e2bd7e251d0ca9cd367cc593a4616a7b6acf51e3078394545fa"
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"id": "20260517000000_agent_board_addressing",
|
|
102
|
+
"sha256": "83ce21d332e9bc96a996b662848a2d02c508c8cdbd7ad8831feba83be0676a8b"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"id": "20260628000000_agent_board_signing_store",
|
|
106
|
+
"sha256": "889d73cd6c261a3ebde19c091db9bc71a1e5307f4f275cfd2a6871b509b16927"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"id": "20260628000001_agent_board_signing_proof_rpcs",
|
|
110
|
+
"sha256": "36571e459bf534dc5b79221ac3e3930840818b75cc3df21d744bd17eef548002"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"id": "20260628000002_agent_board_signature_rls_reads",
|
|
114
|
+
"sha256": "4172a46d85c1e1dcfb28e3398eed0aba73175cb9b3bfb3af712ec3eee9da2096"
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"id": "20260628000003_agent_board_signed_write_gateway",
|
|
118
|
+
"sha256": "7cf2b5baf6520242b0d2a7f921dc4a54db8995b24c844d16ee67a79fe68d5903"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"id": "20260628000004_agent_board_fleet_registry",
|
|
122
|
+
"sha256": "8ee7a679d1c3355a28ff2ef61872651f43c172d391dd7c8e9b0d0e005def140a"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"id": "20260628000005_agent_board_fleet_policy",
|
|
126
|
+
"sha256": "b6e3603dc8b3911ee280a62f52bf578d76c8bb7932bc21f140f8852296512475"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"id": "20260628000006_agent_board_fleet_read_models",
|
|
130
|
+
"sha256": "59c697536520d0e0650d7ca6cea25a97a7a2157b44623f9fcd7d56552809b6f4"
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"id": "20260629000100_agent_board_fleet_registry_repair",
|
|
134
|
+
"sha256": "8ee7a679d1c3355a28ff2ef61872651f43c172d391dd7c8e9b0d0e005def140a"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"id": "20260629000101_agent_board_fleet_policy_refresh",
|
|
138
|
+
"sha256": "b6e3603dc8b3911ee280a62f52bf578d76c8bb7932bc21f140f8852296512475"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"id": "20260629000102_agent_board_fleet_read_models_refresh",
|
|
142
|
+
"sha256": "59c697536520d0e0650d7ca6cea25a97a7a2157b44623f9fcd7d56552809b6f4"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"id": "20260630000100_agent_board_harness_kind_open_vocab",
|
|
146
|
+
"sha256": "ed141128a5ec8b29a13ada55bae9582df8ba6226527c8afe32374cbbbda1cf6a"
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"id": "20260711000000_agent_board_provision_system_fail_closed",
|
|
150
|
+
"sha256": "11b9b7d4617f190501ecee175f14335926d75500ffcedf0675275e6d2752b2e0"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"id": "20260710000000_agent_board_authbound_boundary",
|
|
154
|
+
"sha256": "4656cabe7b0f4caec1cffe28ec5d84627fece85c1bc9d45092301c7bea3da2fe"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"id": "20260710000100_agent_board_schema_version_rpc",
|
|
158
|
+
"sha256": "62d5d567c3b336607a6e65aaf8246b975a73e357db281924f466382f669a3286"
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"id": "20260710000400_agent_board_nonfleet_identity",
|
|
162
|
+
"sha256": "6c37b4e00a6f13bc73e74276e7cc3864b2955ce7189a4602074511d6795a0873"
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"id": "20260710000401_agent_board_workload_providers",
|
|
166
|
+
"sha256": "b29afcdfb69d4fd765f10e49b18280f1ba4fb98c90cf02ab56ea6fc20e0f8bce"
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"id": "20260711000100_canary_signed_fleet_enforcement",
|
|
170
|
+
"sha256": "f56c6bb4a0e6bcdfbd2884d215c702f4cf374a374635b3180a958d08cdfa2607"
|
|
171
|
+
}
|
|
172
|
+
]
|
|
173
|
+
}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
{
|
|
2
|
+
"note": "union applied, forward migrations pending",
|
|
3
|
+
"applied": [
|
|
4
|
+
{
|
|
5
|
+
"id": "20260501000001_agent_board_schema_version",
|
|
6
|
+
"sha256": "326909867e4b6e0b756e52455171def3308561d47cf815c10a47a0b39c8afc5f"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"id": "20260502000000_agent_board_schema",
|
|
10
|
+
"sha256": "a4466d5d202de2328d58de0f870313b69541880f37ce73f1dfe1c005ad497bda"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"id": "20260503000000_agent_board_rpcs",
|
|
14
|
+
"sha256": "685a7b88295bd76f0dda6530d96b17828f5024c037f0552b6b82555fb0f298c8"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"id": "20260503000001_agent_board_coordination_rpcs",
|
|
18
|
+
"sha256": "658d8e397dff727e9c3906699c8827004b1d365e53c7b5691935fd613c662adb"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "20260504000000_agent_board_read_models",
|
|
22
|
+
"sha256": "5b35cb4c8763640bf4cf35fb5e063357ad35bd5d086dd5a6d8f13c04b4b0f29e"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "20260505000000_agent_board_inbox_schema",
|
|
26
|
+
"sha256": "9cf93fd8756e169484c9630285451fe87b3fe1a17390d34f3c071d2aef7b4030"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": "20260506000000_agent_board_inbox_delivery_rpcs",
|
|
30
|
+
"sha256": "b56defdeb2cfe06b6fe1b50de5ff2515000097783552c175b512b34fd68bcbc6"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "20260506000001_agent_board_inbox_callback_rpcs",
|
|
34
|
+
"sha256": "f31d855e3ea091f7f38ebfb5981bd9aad63e927eee3b46e7d011c2121806b030"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "20260507000000_agent_board_inbox_reads",
|
|
38
|
+
"sha256": "d9a11145ef49c7ee49b283c9fc71d230eb5d8e14ab76fa7a8da23519886af2d5"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"id": "20260508000000_agent_board_callback_runtime",
|
|
42
|
+
"sha256": "750848141ead5c1c8b58fc10f7b7b2d082055300ee28d8666bdcecea7db527ac"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"id": "20260508000001_agent_board_inbox_service_role_reads",
|
|
46
|
+
"sha256": "85c2301902d5a49f6f226c9887ee5cf01a02f88b5c65925cb23cc3fb4c0a941e"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"id": "20260510000000_agent_board_dblint_repairs",
|
|
50
|
+
"sha256": "4b862004b455d6569254638d3c5c07779b84b95ab8d70210d92a628dc3eb94c5"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"id": "20260511000000_agent_board_auth_schema",
|
|
54
|
+
"sha256": "dba2128e74e25d009a8dc20052d3329fffee364e7b4c15c92ab22584b8f797a3"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"id": "20260511000001_agent_board_auth_credentials",
|
|
58
|
+
"sha256": "1f63c4d12fc34db76b7ceef17ee9c64ad09be9e13b9e02497477ec62aa14ebbc"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"id": "20260512000000_agent_board_auth_provisioning_rpcs",
|
|
62
|
+
"sha256": "4a72d9ac64446889a54293fb60bb3402da9dbd8bdb29027e7d5d15965e20af27"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"id": "20260512000001_agent_board_auth_v1_rpcs",
|
|
66
|
+
"sha256": "c1fdc772beac92f60010ca6d2e7ea95a81989d651f7cb279905770756dc47bda"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"id": "20260512000002_agent_board_auth_v2_rpcs",
|
|
70
|
+
"sha256": "c2df467ef49c6c30eea50d1a789e8816627a3b8f34a1172fdeb61b7d681031ae"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"id": "20260512000003_agent_board_auth_rls",
|
|
74
|
+
"sha256": "d194a28482d8a7b00272e1b06a09fd125ec13f2906de86d2aab942671bc79294"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": "20260513000000_agent_board_backup_ops",
|
|
78
|
+
"sha256": "1e9e5d1a6b6e2f6b83d9b5479e464cd0f91297c2a28ff71c54cabde656761142"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"id": "20260513000001_agent_board_retention",
|
|
82
|
+
"sha256": "7dd0ebd14eb97922d9c16fcf9c29815b0ab5c2bd7534c6f2de189d55e7d633ec"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"id": "20260513000002_agent_board_monitoring_views",
|
|
86
|
+
"sha256": "037b4d036a4526fd2b905e0a950698b8cbad5ad4a16e6fbea4cdab3b4147edc1"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"id": "20260514000000_agent_board_auth_rls_id_qualification",
|
|
90
|
+
"sha256": "9d09d16f993cf504552e1736b867b4c6b2d5cad4ec9a99b512bf645fe83cfd76"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"id": "20260515000000_agent_board_boardopt",
|
|
94
|
+
"sha256": "99d82496dd9c791968cc7e129026e6af97da700302fa87e86b6a0e28513c7163"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"id": "20260516000000_agent_board_callbackcap",
|
|
98
|
+
"sha256": "6f68ef098aaa6e2bd7e251d0ca9cd367cc593a4616a7b6acf51e3078394545fa"
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"id": "20260517000000_agent_board_addressing",
|
|
102
|
+
"sha256": "83ce21d332e9bc96a996b662848a2d02c508c8cdbd7ad8831feba83be0676a8b"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"id": "20260628000000_agent_board_signing_store",
|
|
106
|
+
"sha256": "889d73cd6c261a3ebde19c091db9bc71a1e5307f4f275cfd2a6871b509b16927"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"id": "20260628000001_agent_board_signing_proof_rpcs",
|
|
110
|
+
"sha256": "36571e459bf534dc5b79221ac3e3930840818b75cc3df21d744bd17eef548002"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"id": "20260628000002_agent_board_signature_rls_reads",
|
|
114
|
+
"sha256": "4172a46d85c1e1dcfb28e3398eed0aba73175cb9b3bfb3af712ec3eee9da2096"
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"id": "20260628000003_agent_board_signed_write_gateway",
|
|
118
|
+
"sha256": "7cf2b5baf6520242b0d2a7f921dc4a54db8995b24c844d16ee67a79fe68d5903"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"id": "20260628000004_agent_board_fleet_registry",
|
|
122
|
+
"sha256": "8ee7a679d1c3355a28ff2ef61872651f43c172d391dd7c8e9b0d0e005def140a"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"id": "20260628000005_agent_board_fleet_policy",
|
|
126
|
+
"sha256": "b6e3603dc8b3911ee280a62f52bf578d76c8bb7932bc21f140f8852296512475"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"id": "20260628000006_agent_board_fleet_read_models",
|
|
130
|
+
"sha256": "59c697536520d0e0650d7ca6cea25a97a7a2157b44623f9fcd7d56552809b6f4"
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"id": "20260629000100_agent_board_fleet_registry_repair",
|
|
134
|
+
"sha256": "8ee7a679d1c3355a28ff2ef61872651f43c172d391dd7c8e9b0d0e005def140a"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"id": "20260629000101_agent_board_fleet_policy_refresh",
|
|
138
|
+
"sha256": "b6e3603dc8b3911ee280a62f52bf578d76c8bb7932bc21f140f8852296512475"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"id": "20260629000102_agent_board_fleet_read_models_refresh",
|
|
142
|
+
"sha256": "59c697536520d0e0650d7ca6cea25a97a7a2157b44623f9fcd7d56552809b6f4"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"id": "20260630000100_agent_board_harness_kind_open_vocab",
|
|
146
|
+
"sha256": "ed141128a5ec8b29a13ada55bae9582df8ba6226527c8afe32374cbbbda1cf6a"
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"id": "20260711000000_agent_board_provision_system_fail_closed",
|
|
150
|
+
"sha256": "11b9b7d4617f190501ecee175f14335926d75500ffcedf0675275e6d2752b2e0"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"id": "20260710000000_agent_board_authbound_boundary",
|
|
154
|
+
"sha256": "4656cabe7b0f4caec1cffe28ec5d84627fece85c1bc9d45092301c7bea3da2fe"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"id": "20260710000100_agent_board_schema_version_rpc",
|
|
158
|
+
"sha256": "62d5d567c3b336607a6e65aaf8246b975a73e357db281924f466382f669a3286"
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"id": "20260710000400_agent_board_nonfleet_identity",
|
|
162
|
+
"sha256": "6c37b4e00a6f13bc73e74276e7cc3864b2955ce7189a4602074511d6795a0873"
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"id": "20260710000401_agent_board_workload_providers",
|
|
166
|
+
"sha256": "b29afcdfb69d4fd765f10e49b18280f1ba4fb98c90cf02ab56ea6fc20e0f8bce"
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"id": "20260711000100_canary_signed_fleet_enforcement",
|
|
170
|
+
"sha256": "f56c6bb4a0e6bcdfbd2884d215c702f4cf374a374635b3180a958d08cdfa2607"
|
|
171
|
+
}
|
|
172
|
+
]
|
|
173
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
create schema if not exists agent_board;
|
|
2
|
+
|
|
3
|
+
create table if not exists agent_board.schema_version (
|
|
4
|
+
version int not null,
|
|
5
|
+
applied_at timestamptz not null default now(),
|
|
6
|
+
constraint schema_version_singleton check (version >= 1)
|
|
7
|
+
);
|
|
8
|
+
|
|
9
|
+
-- Singleton enforcement: unique index on a constant expression allows only one row.
|
|
10
|
+
create unique index schema_version_singleton_idx on agent_board.schema_version ((true));
|
|
11
|
+
|
|
12
|
+
insert into agent_board.schema_version (version) values (1);
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
create schema if not exists agent_board;
|
|
2
|
+
|
|
3
|
+
create table if not exists agent_board.agents (
|
|
4
|
+
id uuid primary key default gen_random_uuid(),
|
|
5
|
+
agent_type text not null check (agent_type in ('human', 'agent', 'system')),
|
|
6
|
+
handle text not null unique,
|
|
7
|
+
display_name text not null,
|
|
8
|
+
status text not null default 'active' check (status in ('active', 'inactive', 'suspended')),
|
|
9
|
+
metadata jsonb not null default '{}'::jsonb,
|
|
10
|
+
created_at timestamptz not null default now(),
|
|
11
|
+
updated_at timestamptz not null default now()
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
create table if not exists agent_board.threads (
|
|
15
|
+
id uuid primary key default gen_random_uuid(),
|
|
16
|
+
thread_type text not null default 'coordination' check (thread_type in ('coordination', 'task', 'incident', 'escalation')),
|
|
17
|
+
created_by_agent_id uuid not null references agent_board.agents(id),
|
|
18
|
+
subject text not null,
|
|
19
|
+
status text not null default 'open' check (status in ('open', 'resolved', 'archived')),
|
|
20
|
+
last_message_sequence bigint not null default 0,
|
|
21
|
+
metadata jsonb not null default '{}'::jsonb,
|
|
22
|
+
created_at timestamptz not null default now(),
|
|
23
|
+
updated_at timestamptz not null default now()
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
create table if not exists agent_board.tasks (
|
|
27
|
+
id uuid primary key default gen_random_uuid(),
|
|
28
|
+
thread_id uuid not null references agent_board.threads(id) on delete cascade,
|
|
29
|
+
created_by_agent_id uuid not null references agent_board.agents(id),
|
|
30
|
+
assigned_agent_id uuid references agent_board.agents(id),
|
|
31
|
+
parent_task_id uuid references agent_board.tasks(id),
|
|
32
|
+
root_task_id uuid references agent_board.tasks(id),
|
|
33
|
+
title text not null,
|
|
34
|
+
details text,
|
|
35
|
+
status text not null default 'pending' check (status in ('pending', 'in_progress', 'blocked', 'completed', 'cancelled', 'failed')),
|
|
36
|
+
priority text not null default 'medium' check (priority in ('low', 'medium', 'high', 'urgent')),
|
|
37
|
+
orchestration_mode text not null default 'distributed' check (orchestration_mode in ('distributed', 'hierarchical', 'hybrid')),
|
|
38
|
+
created_at timestamptz not null default now(),
|
|
39
|
+
updated_at timestamptz not null default now(),
|
|
40
|
+
completed_at timestamptz,
|
|
41
|
+
metadata jsonb not null default '{}'::jsonb,
|
|
42
|
+
constraint tasks_not_self_parent check (parent_task_id is null or parent_task_id <> id),
|
|
43
|
+
constraint tasks_child_has_root check (parent_task_id is null or root_task_id is not null)
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
create table if not exists agent_board.messages (
|
|
47
|
+
id uuid primary key default gen_random_uuid(),
|
|
48
|
+
thread_id uuid not null references agent_board.threads(id) on delete cascade,
|
|
49
|
+
author_agent_id uuid not null references agent_board.agents(id),
|
|
50
|
+
task_id uuid references agent_board.tasks(id),
|
|
51
|
+
message_sequence bigint not null,
|
|
52
|
+
message_type text not null default 'comment' check (message_type in ('comment', 'status', 'system', 'handoff')),
|
|
53
|
+
body text not null,
|
|
54
|
+
metadata jsonb not null default '{}'::jsonb,
|
|
55
|
+
created_at timestamptz not null default now(),
|
|
56
|
+
unique (thread_id, message_sequence)
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
create table if not exists agent_board.task_events (
|
|
60
|
+
id uuid primary key default gen_random_uuid(),
|
|
61
|
+
task_id uuid not null references agent_board.tasks(id) on delete cascade,
|
|
62
|
+
thread_id uuid not null references agent_board.threads(id) on delete cascade,
|
|
63
|
+
actor_agent_id uuid not null references agent_board.agents(id),
|
|
64
|
+
event_sequence bigint not null,
|
|
65
|
+
event_type text not null check (event_type in ('created', 'status_changed', 'claimed', 'released', 'delegated', 'artifact_added', 'conflict_raised', 'escalated', 'commented', 'completed', 'cancelled')),
|
|
66
|
+
payload jsonb not null default '{}'::jsonb,
|
|
67
|
+
created_at timestamptz not null default now(),
|
|
68
|
+
unique (task_id, event_sequence)
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
create table if not exists agent_board.claims (
|
|
72
|
+
id uuid primary key default gen_random_uuid(),
|
|
73
|
+
task_id uuid references agent_board.tasks(id) on delete cascade,
|
|
74
|
+
thread_id uuid references agent_board.threads(id) on delete cascade,
|
|
75
|
+
agent_id uuid not null references agent_board.agents(id),
|
|
76
|
+
resource_kind text not null check (resource_kind in ('task', 'file', 'repo_file', 'repository', 'machine', 'tool', 'custom')),
|
|
77
|
+
resource_key text not null,
|
|
78
|
+
status text not null default 'active' check (status in ('active', 'released', 'expired', 'contended')),
|
|
79
|
+
lease_token uuid not null default gen_random_uuid(),
|
|
80
|
+
lease_expires_at timestamptz not null,
|
|
81
|
+
released_at timestamptz,
|
|
82
|
+
metadata jsonb not null default '{}'::jsonb,
|
|
83
|
+
created_at timestamptz not null default now(),
|
|
84
|
+
updated_at timestamptz not null default now()
|
|
85
|
+
);
|
|
86
|
+
|
|
87
|
+
create unique index if not exists claims_active_resource_unique
|
|
88
|
+
on agent_board.claims(resource_kind, resource_key)
|
|
89
|
+
where status = 'active' and released_at is null;
|
|
90
|
+
|
|
91
|
+
create table if not exists agent_board.delegations (
|
|
92
|
+
id uuid primary key default gen_random_uuid(),
|
|
93
|
+
parent_task_id uuid not null references agent_board.tasks(id) on delete cascade,
|
|
94
|
+
child_task_id uuid not null unique references agent_board.tasks(id) on delete cascade,
|
|
95
|
+
delegated_by_agent_id uuid not null references agent_board.agents(id),
|
|
96
|
+
delegated_to_agent_id uuid references agent_board.agents(id),
|
|
97
|
+
status text not null default 'requested' check (status in ('requested', 'accepted', 'declined', 'cancelled', 'completed')),
|
|
98
|
+
note text,
|
|
99
|
+
metadata jsonb not null default '{}'::jsonb,
|
|
100
|
+
created_at timestamptz not null default now(),
|
|
101
|
+
updated_at timestamptz not null default now()
|
|
102
|
+
);
|
|
103
|
+
|
|
104
|
+
create table if not exists agent_board.artifacts (
|
|
105
|
+
id uuid primary key default gen_random_uuid(),
|
|
106
|
+
thread_id uuid references agent_board.threads(id) on delete cascade,
|
|
107
|
+
task_id uuid references agent_board.tasks(id) on delete cascade,
|
|
108
|
+
message_id uuid references agent_board.messages(id) on delete cascade,
|
|
109
|
+
task_event_id uuid references agent_board.task_events(id) on delete cascade,
|
|
110
|
+
created_by_agent_id uuid not null references agent_board.agents(id),
|
|
111
|
+
artifact_type text not null default 'url' check (artifact_type in ('url', 'file', 'diff', 'log', 'screenshot', 'document', 'custom')),
|
|
112
|
+
storage_kind text not null default 'external_url' check (storage_kind in ('external_url', 'supabase_storage', 'github', 'local_path', 'custom')),
|
|
113
|
+
uri text not null,
|
|
114
|
+
metadata jsonb not null default '{}'::jsonb,
|
|
115
|
+
created_at timestamptz not null default now(),
|
|
116
|
+
constraint artifacts_has_target check (thread_id is not null or task_id is not null or message_id is not null or task_event_id is not null)
|
|
117
|
+
);
|
|
118
|
+
|
|
119
|
+
create table if not exists agent_board.conflicts (
|
|
120
|
+
id uuid primary key default gen_random_uuid(),
|
|
121
|
+
thread_id uuid not null references agent_board.threads(id) on delete cascade,
|
|
122
|
+
task_id uuid references agent_board.tasks(id) on delete cascade,
|
|
123
|
+
raised_by_agent_id uuid not null references agent_board.agents(id),
|
|
124
|
+
resolved_by_agent_id uuid references agent_board.agents(id),
|
|
125
|
+
conflict_type text not null default 'other' check (conflict_type in ('claim', 'plan', 'state', 'resource', 'other')),
|
|
126
|
+
severity text not null default 'medium' check (severity in ('low', 'medium', 'high', 'critical')),
|
|
127
|
+
status text not null default 'open' check (status in ('open', 'investigating', 'resolved', 'dismissed')),
|
|
128
|
+
summary text not null,
|
|
129
|
+
details jsonb not null default '{}'::jsonb,
|
|
130
|
+
resolved_at timestamptz,
|
|
131
|
+
created_at timestamptz not null default now(),
|
|
132
|
+
updated_at timestamptz not null default now()
|
|
133
|
+
);
|
|
134
|
+
|
|
135
|
+
create table if not exists agent_board.escalations (
|
|
136
|
+
id uuid primary key default gen_random_uuid(),
|
|
137
|
+
thread_id uuid not null references agent_board.threads(id) on delete cascade,
|
|
138
|
+
task_id uuid references agent_board.tasks(id) on delete cascade,
|
|
139
|
+
raised_by_agent_id uuid not null references agent_board.agents(id),
|
|
140
|
+
assigned_agent_id uuid references agent_board.agents(id),
|
|
141
|
+
resolved_by_agent_id uuid references agent_board.agents(id),
|
|
142
|
+
escalation_type text not null default 'other' check (escalation_type in ('approval', 'policy', 'access', 'safety', 'resource', 'other')),
|
|
143
|
+
severity text not null default 'medium' check (severity in ('info', 'low', 'medium', 'high', 'critical')),
|
|
144
|
+
status text not null default 'open' check (status in ('open', 'acknowledged', 'resolved', 'dismissed')),
|
|
145
|
+
summary text not null,
|
|
146
|
+
details jsonb not null default '{}'::jsonb,
|
|
147
|
+
acknowledged_at timestamptz,
|
|
148
|
+
resolved_at timestamptz,
|
|
149
|
+
created_at timestamptz not null default now(),
|
|
150
|
+
updated_at timestamptz not null default now()
|
|
151
|
+
);
|
|
152
|
+
|
|
153
|
+
create table if not exists agent_board.read_receipts (
|
|
154
|
+
thread_id uuid not null references agent_board.threads(id) on delete cascade,
|
|
155
|
+
agent_id uuid not null references agent_board.agents(id) on delete cascade,
|
|
156
|
+
last_read_message_sequence bigint not null default 0,
|
|
157
|
+
last_read_at timestamptz not null default now(),
|
|
158
|
+
primary key (thread_id, agent_id)
|
|
159
|
+
);
|
|
160
|
+
|
|
161
|
+
create table if not exists agent_board.presence (
|
|
162
|
+
agent_id uuid primary key references agent_board.agents(id) on delete cascade,
|
|
163
|
+
thread_id uuid references agent_board.threads(id) on delete set null,
|
|
164
|
+
availability text not null default 'ready' check (availability in ('ready', 'busy', 'away', 'offline')),
|
|
165
|
+
activity_summary text,
|
|
166
|
+
last_heartbeat_at timestamptz not null default now(),
|
|
167
|
+
expires_at timestamptz not null default now() + interval '5 minutes',
|
|
168
|
+
metadata jsonb not null default '{}'::jsonb,
|
|
169
|
+
updated_at timestamptz not null default now()
|
|
170
|
+
);
|
|
171
|
+
|
|
172
|
+
create index if not exists idx_agent_board_messages_thread_sequence on agent_board.messages(thread_id, message_sequence);
|
|
173
|
+
create index if not exists idx_agent_board_tasks_thread on agent_board.tasks(thread_id, created_at);
|
|
174
|
+
create index if not exists idx_agent_board_tasks_root on agent_board.tasks(root_task_id, parent_task_id, created_at);
|
|
175
|
+
create index if not exists idx_agent_board_task_events_task_sequence on agent_board.task_events(task_id, event_sequence);
|
|
176
|
+
create index if not exists idx_agent_board_claims_active on agent_board.claims(resource_kind, resource_key, lease_expires_at) where status = 'active' and released_at is null;
|
|
177
|
+
create index if not exists idx_agent_board_escalations_open on agent_board.escalations(status, assigned_agent_id, created_at);
|
|
178
|
+
create index if not exists idx_agent_board_conflicts_thread_status on agent_board.conflicts(thread_id, status, created_at);
|
|
179
|
+
create index if not exists idx_agent_board_artifacts_thread on agent_board.artifacts(thread_id, created_at);
|
|
180
|
+
create index if not exists idx_agent_board_artifacts_task on agent_board.artifacts(task_id, created_at);
|