@feltdb/core 0.13.0 → 0.16.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.
Files changed (300) hide show
  1. package/dist/agent-runtime.d.ts +64 -2
  2. package/dist/agent-runtime.d.ts.map +1 -1
  3. package/dist/agent-runtime.js +121 -11
  4. package/dist/agent-state.d.ts +68 -0
  5. package/dist/agent-state.d.ts.map +1 -1
  6. package/dist/agent-state.js +210 -12
  7. package/dist/agent.d.ts +10 -1
  8. package/dist/agent.d.ts.map +1 -1
  9. package/dist/agent.js +10 -1
  10. package/dist/build-identity.json +12 -4
  11. package/dist/cli/commands.js +214 -10
  12. package/dist/cli/publish-engine.js +116 -16
  13. package/dist/collection.d.ts +3 -1
  14. package/dist/collection.d.ts.map +1 -1
  15. package/dist/collection.js +33 -8
  16. package/dist/create/build-identity.json +12 -4
  17. package/dist/create/cli.js +1 -1
  18. package/dist/create/create.js +4 -6
  19. package/dist/create/managed-account.js +93 -35
  20. package/dist/create/package-versions.js +1 -1
  21. package/dist/create/server-source/Cargo.lock +8 -511
  22. package/dist/create/server-source/Cargo.toml +2 -13
  23. package/dist/create/server-source/crates/feltdb-client/Cargo.toml +1 -1
  24. package/dist/create/server-source/crates/feltdb-server/Cargo.toml +1 -1
  25. package/dist/create/server-source/crates/feltdb-server/README.md +6 -1
  26. package/dist/create/server-source/crates/feltdb-server/src/app_state.rs +9 -1
  27. package/dist/create/server-source/crates/feltdb-server/src/auth.rs +85 -25
  28. package/dist/create/server-source/crates/feltdb-server/src/backup.rs +4 -0
  29. package/dist/create/server-source/crates/feltdb-server/src/console_accounts.rs +1009 -0
  30. package/dist/create/server-source/crates/feltdb-server/src/control_authorization.rs +441 -0
  31. package/dist/create/server-source/crates/feltdb-server/src/identity.rs +68 -6
  32. package/dist/create/server-source/crates/feltdb-server/src/key_management.rs +355 -23
  33. package/dist/create/server-source/crates/feltdb-server/src/lib.rs +3 -0
  34. package/dist/create/server-source/crates/feltdb-server/src/main.rs +1134 -96
  35. package/dist/create/server-source/crates/feltdb-server/src/redaction.rs +208 -0
  36. package/dist/create/server-source/crates/feltdb-server/src/tenancy.rs +198 -19
  37. package/dist/create/server-source/crates/feltdb-server/tests/transaction_precondition_contract.rs +403 -0
  38. package/dist/create/server-source/crates/feltdb-wasm/Cargo.toml +1 -1
  39. package/dist/db.d.ts +75 -10
  40. package/dist/db.d.ts.map +1 -1
  41. package/dist/db.js +168 -29
  42. package/dist/deployment.d.ts +19 -0
  43. package/dist/deployment.d.ts.map +1 -1
  44. package/dist/deployment.js +38 -2
  45. package/dist/embedded-query.d.ts.map +1 -1
  46. package/dist/embedded-query.js +5 -4
  47. package/dist/embedded-transaction.d.ts +8 -4
  48. package/dist/embedded-transaction.d.ts.map +1 -1
  49. package/dist/embedded-transaction.js +55 -19
  50. package/dist/error-codes.d.ts +36 -2
  51. package/dist/error-codes.d.ts.map +1 -1
  52. package/dist/error-codes.js +50 -3
  53. package/dist/feltdb.d.ts +7 -0
  54. package/dist/feltdb.d.ts.map +1 -1
  55. package/dist/file-db.d.ts +27 -0
  56. package/dist/file-db.d.ts.map +1 -1
  57. package/dist/file-db.js +145 -7
  58. package/dist/http-client.d.ts +11 -3
  59. package/dist/http-client.d.ts.map +1 -1
  60. package/dist/http-client.js +27 -14
  61. package/dist/http-db.d.ts +43 -1
  62. package/dist/http-db.d.ts.map +1 -1
  63. package/dist/http-db.js +287 -59
  64. package/dist/index.js +1 -1
  65. package/dist/local-state-lock.d.ts +34 -0
  66. package/dist/local-state-lock.d.ts.map +1 -0
  67. package/dist/local-state-lock.js +225 -0
  68. package/dist/managed-recovery.d.ts +6 -0
  69. package/dist/managed-recovery.d.ts.map +1 -1
  70. package/dist/managed-recovery.js +9 -0
  71. package/dist/reactive-graph.d.ts +0 -3
  72. package/dist/reactive-graph.d.ts.map +1 -1
  73. package/dist/reactive-graph.js +11 -1
  74. package/dist/runtime-registry.d.ts +7 -2
  75. package/dist/runtime-registry.d.ts.map +1 -1
  76. package/dist/runtime-registry.js +2 -2
  77. package/dist/studio/components/index.js +1 -1
  78. package/dist/studio/{components-BSGmHfif.js → components-CJmzntBi.js} +2 -1
  79. package/dist/studio/index.js +1 -1
  80. package/dist/studio-app/assets/{feltdb_wasm-3hDngl1h.js → feltdb_wasm-DtybUY0q.js} +1 -1
  81. package/dist/studio-app/assets/feltdb_wasm_bg-DsgIUwaB.wasm +0 -0
  82. package/dist/studio-app/assets/index-C4OffsZl.js +37 -0
  83. package/dist/studio-app/index.html +1 -1
  84. package/dist/transaction.d.ts +27 -11
  85. package/dist/transaction.d.ts.map +1 -1
  86. package/dist/transaction.js +20 -14
  87. package/dist/wasm/feltdb_wasm_bg.wasm +0 -0
  88. package/dist/wasm/package.json +1 -1
  89. package/dist/workload.d.ts +86 -6
  90. package/dist/workload.d.ts.map +1 -1
  91. package/dist/workload.js +51 -3
  92. package/dist/workspace/workspace-connection.d.ts.map +1 -1
  93. package/dist/workspace/workspace-connection.js +14 -3
  94. package/package.json +1 -1
  95. package/dist/create/server-source/crates/feltdb/Cargo.lock +0 -175
  96. package/dist/create/server-source/crates/feltdb/Cargo.toml +0 -102
  97. package/dist/create/server-source/crates/feltdb/LICENSE +0 -21
  98. package/dist/create/server-source/crates/feltdb/README.md +0 -75
  99. package/dist/create/server-source/crates/feltdb/benches/baselines/gate-13-redux.json +0 -370
  100. package/dist/create/server-source/crates/feltdb/benches/gate13_baseline.rs +0 -589
  101. package/dist/create/server-source/crates/feltdb/benches/gate13_phase_7_1_release_economics.rs +0 -247
  102. package/dist/create/server-source/crates/feltdb/benches/gate_13_redux.rs +0 -440
  103. package/dist/create/server-source/crates/feltdb/benches/gate_13_regression_runner.rs +0 -275
  104. package/dist/create/server-source/crates/feltdb/benches/gate_14a_concurrent_writer_scaling.rs +0 -381
  105. package/dist/create/server-source/crates/feltdb/benches/gate_14a_production_admission_revalidation.rs +0 -467
  106. package/dist/create/server-source/crates/feltdb/benches/gate_14a_rc2_admission_contract.rs +0 -489
  107. package/dist/create/server-source/crates/feltdb/benches/gate_14a_rc_root_cause.rs +0 -281
  108. package/dist/create/server-source/crates/feltdb/benches/gate_14a_sync1_queued_prototype.rs +0 -606
  109. package/dist/create/server-source/crates/feltdb/benches/gate_14a_sync_economics.rs +0 -531
  110. package/dist/create/server-source/crates/feltdb/benches/gate_14b_causal_backlog_scaling.rs +0 -462
  111. package/dist/create/server-source/crates/feltdb/benches/gate_14c_replication_contract_test.rs +0 -505
  112. package/dist/create/server-source/crates/feltdb/benches/gate_14c_replication_scaling.rs +0 -484
  113. package/dist/create/server-source/crates/feltdb/benches/gate_14d_combined_dimension_scaling.rs +0 -758
  114. package/dist/create/server-source/crates/feltdb/benches/phase_7_1_2_optimization_benchmark.rs +0 -421
  115. package/dist/create/server-source/crates/feltdb/benches/phase_7_1_3_crossover_analysis.rs +0 -329
  116. package/dist/create/server-source/crates/feltdb/src/acceptance_tests.rs +0 -1705
  117. package/dist/create/server-source/crates/feltdb/src/acquisition.rs +0 -286
  118. package/dist/create/server-source/crates/feltdb/src/admission.rs +0 -185
  119. package/dist/create/server-source/crates/feltdb/src/admission_contract_tests.rs +0 -507
  120. package/dist/create/server-source/crates/feltdb/src/adversarial_transport.rs +0 -539
  121. package/dist/create/server-source/crates/feltdb/src/agent_state.rs +0 -320
  122. package/dist/create/server-source/crates/feltdb/src/agent_transition_contract.rs +0 -1545
  123. package/dist/create/server-source/crates/feltdb/src/analytics.rs +0 -521
  124. package/dist/create/server-source/crates/feltdb/src/application.rs +0 -2674
  125. package/dist/create/server-source/crates/feltdb/src/application_runtime.rs +0 -1070
  126. package/dist/create/server-source/crates/feltdb/src/authority.rs +0 -479
  127. package/dist/create/server-source/crates/feltdb/src/authority_failover.rs +0 -847
  128. package/dist/create/server-source/crates/feltdb/src/authorization.rs +0 -1030
  129. package/dist/create/server-source/crates/feltdb/src/authorization_security_tests.rs +0 -1122
  130. package/dist/create/server-source/crates/feltdb/src/bin/feltdb-authority-client.rs +0 -32
  131. package/dist/create/server-source/crates/feltdb/src/bin/feltdb-authority.rs +0 -19
  132. package/dist/create/server-source/crates/feltdb/src/bin/feltdb_node.rs +0 -1474
  133. package/dist/create/server-source/crates/feltdb/src/capabilities/mod.rs +0 -8
  134. package/dist/create/server-source/crates/feltdb/src/capabilities/search.rs +0 -418
  135. package/dist/create/server-source/crates/feltdb/src/capabilities/vector.rs +0 -482
  136. package/dist/create/server-source/crates/feltdb/src/capability.rs +0 -903
  137. package/dist/create/server-source/crates/feltdb/src/cardinality_diagnostics.rs +0 -263
  138. package/dist/create/server-source/crates/feltdb/src/cardinality_endpoint.rs +0 -77
  139. package/dist/create/server-source/crates/feltdb/src/causal_backlog_bound.rs +0 -496
  140. package/dist/create/server-source/crates/feltdb/src/causal_dependency_barrier.rs +0 -2574
  141. package/dist/create/server-source/crates/feltdb/src/causal_dependency_barrier_phase_7_1.rs +0 -212
  142. package/dist/create/server-source/crates/feltdb/src/concurrency_fuzzing.rs +0 -422
  143. package/dist/create/server-source/crates/feltdb/src/consistency_contract.rs +0 -445
  144. package/dist/create/server-source/crates/feltdb/src/content_distribution.rs +0 -465
  145. package/dist/create/server-source/crates/feltdb/src/convergence.rs +0 -634
  146. package/dist/create/server-source/crates/feltdb/src/crash_atomic_boundary.rs +0 -427
  147. package/dist/create/server-source/crates/feltdb/src/crash_injection.rs +0 -376
  148. package/dist/create/server-source/crates/feltdb/src/crash_recovery_tests.rs +0 -365
  149. package/dist/create/server-source/crates/feltdb/src/cron.rs +0 -294
  150. package/dist/create/server-source/crates/feltdb/src/dedup_bound_investigation.rs +0 -483
  151. package/dist/create/server-source/crates/feltdb/src/distributed_indexing.rs +0 -477
  152. package/dist/create/server-source/crates/feltdb/src/distributed_tests.rs +0 -1003
  153. package/dist/create/server-source/crates/feltdb/src/distributed_transactions.rs +0 -1334
  154. package/dist/create/server-source/crates/feltdb/src/durability_guarantees.rs +0 -368
  155. package/dist/create/server-source/crates/feltdb/src/durable_dedup_set.rs +0 -231
  156. package/dist/create/server-source/crates/feltdb/src/durable_operation_identity.rs +0 -482
  157. package/dist/create/server-source/crates/feltdb/src/durable_operation_log.rs +0 -203
  158. package/dist/create/server-source/crates/feltdb/src/durable_sync.rs +0 -317
  159. package/dist/create/server-source/crates/feltdb/src/equality_index.rs +0 -595
  160. package/dist/create/server-source/crates/feltdb/src/execution.rs +0 -426
  161. package/dist/create/server-source/crates/feltdb/src/in_process_transport.rs +0 -214
  162. package/dist/create/server-source/crates/feltdb/src/indexing.rs +0 -776
  163. package/dist/create/server-source/crates/feltdb/src/lib.rs +0 -7274
  164. package/dist/create/server-source/crates/feltdb/src/managed_cas_tests.rs +0 -234
  165. package/dist/create/server-source/crates/feltdb/src/materialization.rs +0 -184
  166. package/dist/create/server-source/crates/feltdb/src/metrics.rs +0 -266
  167. package/dist/create/server-source/crates/feltdb/src/multi_node_convergence.rs +0 -310
  168. package/dist/create/server-source/crates/feltdb/src/multi_operation_transaction.rs +0 -736
  169. package/dist/create/server-source/crates/feltdb/src/observability.rs +0 -379
  170. package/dist/create/server-source/crates/feltdb/src/operation.rs +0 -290
  171. package/dist/create/server-source/crates/feltdb/src/operation_algebra.rs +0 -439
  172. package/dist/create/server-source/crates/feltdb/src/operation_log.rs +0 -349
  173. package/dist/create/server-source/crates/feltdb/src/p1_application_atomicity.rs +0 -332
  174. package/dist/create/server-source/crates/feltdb/src/p1_atomicity_acceptance.rs +0 -718
  175. package/dist/create/server-source/crates/feltdb/src/partition_reconciliation.rs +0 -487
  176. package/dist/create/server-source/crates/feltdb/src/peer_registry.rs +0 -166
  177. package/dist/create/server-source/crates/feltdb/src/permutation_scheduler.rs +0 -289
  178. package/dist/create/server-source/crates/feltdb/src/persistence_reality.rs +0 -566
  179. package/dist/create/server-source/crates/feltdb/src/phase1b_acceptance.rs +0 -3391
  180. package/dist/create/server-source/crates/feltdb/src/phase1c1_acceptance.rs +0 -203
  181. package/dist/create/server-source/crates/feltdb/src/phase1c2_acceptance.rs +0 -261
  182. package/dist/create/server-source/crates/feltdb/src/phase1c3_acceptance.rs +0 -502
  183. package/dist/create/server-source/crates/feltdb/src/phase1c_atomicity_proof.rs +0 -216
  184. package/dist/create/server-source/crates/feltdb/src/phase5_integration.rs +0 -303
  185. package/dist/create/server-source/crates/feltdb/src/phase5_scenarios.rs +0 -323
  186. package/dist/create/server-source/crates/feltdb/src/phase6_adversarial_scenarios.rs +0 -531
  187. package/dist/create/server-source/crates/feltdb/src/phase6_convergence_validator.rs +0 -406
  188. package/dist/create/server-source/crates/feltdb/src/phase6_persistence.rs +0 -436
  189. package/dist/create/server-source/crates/feltdb/src/phase_1c_real_tcp.rs +0 -387
  190. package/dist/create/server-source/crates/feltdb/src/phase_2a_failures.rs +0 -378
  191. package/dist/create/server-source/crates/feltdb/src/phase_2b_network.rs +0 -359
  192. package/dist/create/server-source/crates/feltdb/src/phase_2c_cascading.rs +0 -372
  193. package/dist/create/server-source/crates/feltdb/src/phase_3_durability.rs +0 -404
  194. package/dist/create/server-source/crates/feltdb/src/phase_4_baseline.rs +0 -376
  195. package/dist/create/server-source/crates/feltdb/src/phase_5_soak.rs +0 -461
  196. package/dist/create/server-source/crates/feltdb/src/policy_evaluation.rs +0 -2125
  197. package/dist/create/server-source/crates/feltdb/src/production_api.rs +0 -418
  198. package/dist/create/server-source/crates/feltdb/src/provenance.rs +0 -207
  199. package/dist/create/server-source/crates/feltdb/src/query_execution_diagnostics.rs +0 -126
  200. package/dist/create/server-source/crates/feltdb/src/query_performance.rs +0 -218
  201. package/dist/create/server-source/crates/feltdb/src/read_basis.rs +0 -257
  202. package/dist/create/server-source/crates/feltdb/src/references.rs +0 -404
  203. package/dist/create/server-source/crates/feltdb/src/replay_fuzzing.rs +0 -401
  204. package/dist/create/server-source/crates/feltdb/src/replica_acknowledgements.rs +0 -501
  205. package/dist/create/server-source/crates/feltdb/src/replica_membership.rs +0 -680
  206. package/dist/create/server-source/crates/feltdb/src/replication_manager.rs +0 -163
  207. package/dist/create/server-source/crates/feltdb/src/replication_protocol.rs +0 -133
  208. package/dist/create/server-source/crates/feltdb/src/routing.rs +0 -409
  209. package/dist/create/server-source/crates/feltdb/src/semantic_decision.rs +0 -2029
  210. package/dist/create/server-source/crates/feltdb/src/semantic_query.rs +0 -599
  211. package/dist/create/server-source/crates/feltdb/src/sharding.rs +0 -549
  212. package/dist/create/server-source/crates/feltdb/src/state_conflict_contract.rs +0 -516
  213. package/dist/create/server-source/crates/feltdb/src/state_contract.rs +0 -5894
  214. package/dist/create/server-source/crates/feltdb/src/state_diff_contract.rs +0 -222
  215. package/dist/create/server-source/crates/feltdb/src/state_facade.rs +0 -320
  216. package/dist/create/server-source/crates/feltdb/src/state_hash.rs +0 -291
  217. package/dist/create/server-source/crates/feltdb/src/state_model.rs +0 -4158
  218. package/dist/create/server-source/crates/feltdb/src/state_transition_store.rs +0 -379
  219. package/dist/create/server-source/crates/feltdb/src/state_trigger.rs +0 -673
  220. package/dist/create/server-source/crates/feltdb/src/storage.rs +0 -273
  221. package/dist/create/server-source/crates/feltdb/src/submission.rs +0 -471
  222. package/dist/create/server-source/crates/feltdb/src/sync.rs +0 -495
  223. package/dist/create/server-source/crates/feltdb/src/sync_contract.rs +0 -822
  224. package/dist/create/server-source/crates/feltdb/src/tcp_transport.rs +0 -433
  225. package/dist/create/server-source/crates/feltdb/src/transaction_api.rs +0 -462
  226. package/dist/create/server-source/crates/feltdb/src/transaction_invariants.rs +0 -965
  227. package/dist/create/server-source/crates/feltdb/src/transaction_preconditions.rs +0 -1120
  228. package/dist/create/server-source/crates/feltdb/src/transactions.rs +0 -643
  229. package/dist/create/server-source/crates/feltdb/src/trigger.rs +0 -390
  230. package/dist/create/server-source/crates/feltdb/src/trigger_contract.rs +0 -749
  231. package/dist/create/server-source/crates/feltdb/src/versioned_object_substrate.rs +0 -708
  232. package/dist/create/server-source/crates/feltdb/src/worker_mesh.rs +0 -1133
  233. package/dist/create/server-source/crates/feltdb/src/workflow.rs +0 -713
  234. package/dist/create/server-source/crates/feltdb/src/workflow_acceptance_tests.rs +0 -510
  235. package/dist/create/server-source/crates/feltdb/src/workflow_integration.rs +0 -354
  236. package/dist/create/server-source/crates/feltdb/src/workflow_runtime.rs +0 -594
  237. package/dist/create/server-source/crates/feltdb/src/workload.rs +0 -2886
  238. package/dist/create/server-source/crates/feltdb/src/workload_diagnostics.rs +0 -456
  239. package/dist/create/server-source/crates/feltdb/tests/agent_state_native.rs +0 -1188
  240. package/dist/create/server-source/crates/feltdb/tests/agent_transition_contract_conformance.rs +0 -2884
  241. package/dist/create/server-source/crates/feltdb/tests/authority_process.rs +0 -297
  242. package/dist/create/server-source/crates/feltdb/tests/authority_transaction_identity.rs +0 -534
  243. package/dist/create/server-source/crates/feltdb/tests/bounded_read_contract.rs +0 -132
  244. package/dist/create/server-source/crates/feltdb/tests/branching_evidence.rs +0 -299
  245. package/dist/create/server-source/crates/feltdb/tests/common/mod.rs +0 -96
  246. package/dist/create/server-source/crates/feltdb/tests/compaction_stall_contract.rs +0 -272
  247. package/dist/create/server-source/crates/feltdb/tests/crash_durability_contract.rs +0 -467
  248. package/dist/create/server-source/crates/feltdb/tests/current_revision_authority_evidence.rs +0 -309
  249. package/dist/create/server-source/crates/feltdb/tests/durable_backup_contract.rs +0 -445
  250. package/dist/create/server-source/crates/feltdb/tests/durable_corruption_contract.rs +0 -518
  251. package/dist/create/server-source/crates/feltdb/tests/durable_format_compatibility.rs +0 -392
  252. package/dist/create/server-source/crates/feltdb/tests/feltdb_state_boundary_tests.rs +0 -850
  253. package/dist/create/server-source/crates/feltdb/tests/fixtures/agent_transition_corpus.json +0 -23340
  254. package/dist/create/server-source/crates/feltdb/tests/fixtures/state_conflict_contract_corpus.json +0 -1916
  255. package/dist/create/server-source/crates/feltdb/tests/fixtures/state_diff_contract_corpus.json +0 -1878
  256. package/dist/create/server-source/crates/feltdb/tests/fixtures/trigger_contract_corpus.json +0 -1862
  257. package/dist/create/server-source/crates/feltdb/tests/generalized_version_control_evidence.rs +0 -123
  258. package/dist/create/server-source/crates/feltdb/tests/generalized_version_control_substrate_completion.rs +0 -299
  259. package/dist/create/server-source/crates/feltdb/tests/local_process_ownership.rs +0 -69
  260. package/dist/create/server-source/crates/feltdb/tests/managed_incident_regression.rs +0 -191
  261. package/dist/create/server-source/crates/feltdb/tests/operational_health_contract.rs +0 -278
  262. package/dist/create/server-source/crates/feltdb/tests/pr34_query_collection.rs +0 -234
  263. package/dist/create/server-source/crates/feltdb/tests/pr35_equality_index.rs +0 -947
  264. package/dist/create/server-source/crates/feltdb/tests/pr7_self_authorization_proof.rs +0 -404
  265. package/dist/create/server-source/crates/feltdb/tests/pr8_vocabulary_assessment.rs +0 -916
  266. package/dist/create/server-source/crates/feltdb/tests/pr9_phase2_boundary_tests.rs +0 -1045
  267. package/dist/create/server-source/crates/feltdb/tests/pr9_phase3a_path_a_tests.rs +0 -347
  268. package/dist/create/server-source/crates/feltdb/tests/pr9_phase3c_authorized_mutations.rs +0 -361
  269. package/dist/create/server-source/crates/feltdb/tests/pr9_phase3c_role_based_authorization.rs +0 -330
  270. package/dist/create/server-source/crates/feltdb/tests/pr9_phase3c_simple_auth_delete.rs +0 -93
  271. package/dist/create/server-source/crates/feltdb/tests/pr9_phase3c_team_delete_role_authorization.rs +0 -622
  272. package/dist/create/server-source/crates/feltdb/tests/pr9_teams_role_based_access.rs +0 -517
  273. package/dist/create/server-source/crates/feltdb/tests/production_certification.rs +0 -1153
  274. package/dist/create/server-source/crates/feltdb/tests/production_contract.rs +0 -771
  275. package/dist/create/server-source/crates/feltdb/tests/production_readiness_contract.rs +0 -1383
  276. package/dist/create/server-source/crates/feltdb/tests/reconciliation_application.rs +0 -868
  277. package/dist/create/server-source/crates/feltdb/tests/reconciliation_wire_format_evidence.rs +0 -221
  278. package/dist/create/server-source/crates/feltdb/tests/replicated_history_contract.rs +0 -417
  279. package/dist/create/server-source/crates/feltdb/tests/resource_scoped_revisions.rs +0 -338
  280. package/dist/create/server-source/crates/feltdb/tests/revision_identity_contract.rs +0 -1039
  281. package/dist/create/server-source/crates/feltdb/tests/revision_model_decision.rs +0 -739
  282. package/dist/create/server-source/crates/feltdb/tests/revision_retention_boundary_evidence.rs +0 -452
  283. package/dist/create/server-source/crates/feltdb/tests/saas_authorization_integration.rs +0 -81
  284. package/dist/create/server-source/crates/feltdb/tests/saas_invitation_lifecycle.rs +0 -438
  285. package/dist/create/server-source/crates/feltdb/tests/semantic_decision.rs +0 -1165
  286. package/dist/create/server-source/crates/feltdb/tests/semantic_query.rs +0 -767
  287. package/dist/create/server-source/crates/feltdb/tests/semantic_query_contract.rs +0 -363
  288. package/dist/create/server-source/crates/feltdb/tests/state_conflict_contract_conformance.rs +0 -1799
  289. package/dist/create/server-source/crates/feltdb/tests/state_diff_contract_conformance.rs +0 -1316
  290. package/dist/create/server-source/crates/feltdb/tests/state_model_integration.rs +0 -358
  291. package/dist/create/server-source/crates/feltdb/tests/state_persistence_integration.rs +0 -365
  292. package/dist/create/server-source/crates/feltdb/tests/state_ref_authority.rs +0 -918
  293. package/dist/create/server-source/crates/feltdb/tests/state_store_boundary_evidence.rs +0 -299
  294. package/dist/create/server-source/crates/feltdb/tests/storage_independent_versioned_object_substrate.rs +0 -328
  295. package/dist/create/server-source/crates/feltdb/tests/sync_divergence_evidence.rs +0 -255
  296. package/dist/create/server-source/crates/feltdb/tests/three_way_input_boundary_evidence.rs +0 -249
  297. package/dist/create/server-source/crates/feltdb/tests/trigger_contract_conformance.rs +0 -994
  298. package/dist/create/server-source/crates/feltdb/tests/workload_envelope_contract.rs +0 -484
  299. package/dist/studio-app/assets/feltdb_wasm_bg-CFQT4gCy.wasm +0 -0
  300. package/dist/studio-app/assets/index-Dql1hS5m.js +0 -30
@@ -32,6 +32,13 @@ export const FELTDB_AGENT_CHECKPOINT_COLLECTION = '_feltdb.AgentCheckpoint';
32
32
  export const FELTDB_AGENT_MEMORY_COLLECTION = '_feltdb.AgentMemory';
33
33
  export const FELTDB_AGENT_HANDOFF_COLLECTION = '_feltdb.AgentHandoff';
34
34
  export const AGENT_CONTEXT_FORMAT = 'feltdb.agent-context@1';
35
+ /**
36
+ * Index keys written beside every task head so `listTasks` can filter by
37
+ * project with an equality prefix. Derived from `scope.project` and `status`
38
+ * on every task write; never returned as part of an `AgentTask`.
39
+ */
40
+ const TASK_PROJECT_FIELD = 'list_project';
41
+ const TASK_STATUS_PROJECT_FIELD = 'list_status_project';
35
42
  /** Compound indexes every agent-state query is planned against. */
36
43
  export const AGENT_STATE_INDEXES = [
37
44
  {
@@ -54,9 +61,109 @@ export const AGENT_STATE_INDEXES = [
54
61
  persistent: true,
55
62
  },
56
63
  },
64
+ // listTasks: one index per filter shape, each led by a distinct field, so
65
+ // every shape has exactly one compatible plan and none is a residual filter.
66
+ {
67
+ collection: FELTDB_AGENT_TASK_COLLECTION,
68
+ index: {
69
+ name: 'agent_tasks_by_updated',
70
+ type: 'compound',
71
+ fields: ['updated_at', 'id'],
72
+ directions: ['desc', 'asc'],
73
+ persistent: true,
74
+ },
75
+ },
76
+ {
77
+ collection: FELTDB_AGENT_TASK_COLLECTION,
78
+ index: {
79
+ name: 'agent_tasks_by_status_updated',
80
+ type: 'compound',
81
+ fields: ['status', 'updated_at', 'id'],
82
+ directions: ['asc', 'desc', 'asc'],
83
+ persistent: true,
84
+ },
85
+ },
86
+ {
87
+ collection: FELTDB_AGENT_TASK_COLLECTION,
88
+ index: {
89
+ name: 'agent_tasks_by_project_updated',
90
+ type: 'compound',
91
+ fields: [TASK_PROJECT_FIELD, 'updated_at', 'id'],
92
+ directions: ['asc', 'desc', 'asc'],
93
+ persistent: true,
94
+ },
95
+ },
96
+ {
97
+ collection: FELTDB_AGENT_TASK_COLLECTION,
98
+ index: {
99
+ name: 'agent_tasks_by_status_project_updated',
100
+ type: 'compound',
101
+ fields: [TASK_STATUS_PROJECT_FIELD, 'updated_at', 'id'],
102
+ directions: ['asc', 'desc', 'asc'],
103
+ persistent: true,
104
+ },
105
+ },
106
+ // listHandoffs
107
+ {
108
+ collection: FELTDB_AGENT_HANDOFF_COLLECTION,
109
+ index: {
110
+ name: 'agent_handoffs_by_created',
111
+ type: 'compound',
112
+ fields: ['created_at', 'id'],
113
+ directions: ['desc', 'asc'],
114
+ persistent: true,
115
+ },
116
+ },
117
+ {
118
+ collection: FELTDB_AGENT_HANDOFF_COLLECTION,
119
+ index: {
120
+ name: 'agent_handoffs_by_status_created',
121
+ type: 'compound',
122
+ fields: ['status', 'created_at', 'id'],
123
+ directions: ['asc', 'desc', 'asc'],
124
+ persistent: true,
125
+ },
126
+ },
57
127
  ];
128
+ /**
129
+ * The application-contract entries for agent state.
130
+ *
131
+ * An application-scoped authority (Managed FeltDB) stores only collections and
132
+ * fields its promoted contract declares, so an application that opens agent
133
+ * state there declares these entries in its contract beside its own, unchanged:
134
+ * `{ collections: [...mine, ...FELTDB_AGENT_STATE_CONTRACT.collections],
135
+ * indexes: [...myIndexes, ...FELTDB_AGENT_STATE_CONTRACT.indexes] }`.
136
+ * Policies stay the application's decision. The record shapes are FeltDB's and
137
+ * move with it; a test checks that every field agent state writes is declared.
138
+ */
139
+ export const FELTDB_AGENT_STATE_CONTRACT = (() => {
140
+ const field = (spec) => {
141
+ const [name, type] = spec.split(':');
142
+ return name === 'id'
143
+ ? { name, type: 'text', required: true, nullable: false }
144
+ : { name, type, required: false, nullable: true };
145
+ };
146
+ const collection = (name, fields) => ({ name, fields: fields.trim().split(/\s+/).map(field) });
147
+ return Object.freeze({
148
+ collections: Object.freeze([
149
+ collection(FELTDB_AGENT_TASK_COLLECTION, `id:text task_id:text objective:text scope:json status:text owner:text
150
+ checkpoint_version:integer pending_work:json constraints:json created_at:text created_by:text updated_at:text
151
+ updated_by:text ${TASK_PROJECT_FIELD}:text ${TASK_STATUS_PROJECT_FIELD}:text`),
152
+ collection(FELTDB_AGENT_CHECKPOINT_COLLECTION, `id:text checkpoint_id:text task_id:text version:integer status:text
153
+ summary:text completed:json completed_work:json pending_work:json constraints:json decisions:json evidence:json
154
+ actor:text execution:json created_at:text`),
155
+ collection(FELTDB_AGENT_MEMORY_COLLECTION, `id:text memory_id:text scope:json scope_key:text kind:text content:json
156
+ source:json status:text supersedes:text superseded_by:text invalidated_reason:text created_at:text updated_at:text`),
157
+ collection(FELTDB_AGENT_HANDOFF_COLLECTION, `id:text handoff_id:text task_id:text checkpoint_version:integer from:text
158
+ to:text note:text memory_refs:json evidence_refs:json artifact_refs:json status:text lease:json claim:json
159
+ accepted_by:text accepted_at:text created_at:text updated_at:text`),
160
+ ]),
161
+ indexes: Object.freeze(AGENT_STATE_INDEXES.map(({ collection, index }) => ({ name: index.name, collection, fields: [...(index.fields ?? [])] }))),
162
+ });
163
+ })();
58
164
  const TASK_STATUSES = ['ready', 'running', 'blocked', 'completed', 'cancelled'];
59
165
  const TERMINAL = ['completed', 'cancelled'];
166
+ const HANDOFF_STATUSES = ['open', 'claimed', 'accepted'];
60
167
  /** Every refusal. A refused write committed nothing. */
61
168
  export class AgentStateError extends Error {
62
169
  code;
@@ -150,6 +257,26 @@ function strip(row) {
150
257
  const { id: _id, __version, ...rest } = row;
151
258
  return { ...rest, revision: typeof __version === 'number' ? __version : 1 };
152
259
  }
260
+ /** A task row without its derived index keys. */
261
+ function toTask(row) {
262
+ const { [TASK_PROJECT_FIELD]: _project, [TASK_STATUS_PROJECT_FIELD]: _statusProject, ...task } = strip(row);
263
+ return task;
264
+ }
265
+ /** A task head as written: the task plus the index keys `listTasks` filters on. */
266
+ function taskHead(task) {
267
+ const project = task.scope?.project;
268
+ return {
269
+ ...task,
270
+ ...(project === undefined ? {} : {
271
+ [TASK_PROJECT_FIELD]: project,
272
+ [TASK_STATUS_PROJECT_FIELD]: statusProjectKey(task.status, project),
273
+ }),
274
+ };
275
+ }
276
+ function statusProjectKey(status, project) {
277
+ // A status never contains '|', so the first '|' separates the two.
278
+ return `${status}|${project}`;
279
+ }
153
280
  function version(row) {
154
281
  return typeof row.__version === 'number' ? row.__version : 1;
155
282
  }
@@ -270,7 +397,7 @@ export class AgentStateStore {
270
397
  };
271
398
  try {
272
399
  await this.db.transaction(tx => {
273
- tx.collection(FELTDB_AGENT_TASK_COLLECTION).set(taskId, task, { requireAbsent: true });
400
+ tx.collection(FELTDB_AGENT_TASK_COLLECTION).set(taskId, taskHead(task), { requireAbsent: true });
274
401
  tx.collection(FELTDB_AGENT_CHECKPOINT_COLLECTION).set(checkpoint.checkpoint_id, checkpoint, { requireAbsent: true });
275
402
  });
276
403
  }
@@ -286,7 +413,7 @@ export class AgentStateStore {
286
413
  const row = await this.taskRow(identifier(taskId, 'taskId'));
287
414
  if (!row)
288
415
  return null;
289
- const task = strip(row);
416
+ const task = toTask(row);
290
417
  const checkpoint = await this.getCheckpoint(task.task_id, task.checkpoint_version);
291
418
  if (!checkpoint) {
292
419
  throw fail('NOT_FOUND', `task ${taskId} names checkpoint ${task.checkpoint_version}, which is not committed`);
@@ -300,6 +427,30 @@ export class AgentStateStore {
300
427
  const { revision: _revision, ...checkpoint } = strip(row);
301
428
  return checkpoint;
302
429
  }
430
+ /**
431
+ * One bounded page of tasks, most recently updated first (ties by task id),
432
+ * optionally narrowed to a status and/or a project.
433
+ *
434
+ * Every filter shape is answered by one declared compound index with an
435
+ * equality prefix; nothing reads the whole collection. Continue with
436
+ * `cursor: page.nextCursor` and the same filters.
437
+ */
438
+ async listTasks(input = {}) {
439
+ if (input.status !== undefined && !TASK_STATUSES.includes(input.status)) {
440
+ throw fail('INVALID_REQUEST', `status must be one of ${TASK_STATUSES.join(', ')}`);
441
+ }
442
+ const project = input.project === undefined ? undefined : name(input.project, 'project');
443
+ const where = project === undefined
444
+ ? (input.status === undefined ? [] : [{ field: 'status', eq: input.status }])
445
+ : input.status === undefined
446
+ ? [{ field: TASK_PROJECT_FIELD, eq: project }]
447
+ : [{ field: TASK_STATUS_PROJECT_FIELD, eq: statusProjectKey(input.status, project) }];
448
+ const page = await this.page(FELTDB_AGENT_TASK_COLLECTION, where, 'updated_at', input.limit, input.cursor);
449
+ return {
450
+ tasks: page.records.map(toTask),
451
+ ...(page.nextCursor ? { nextCursor: page.nextCursor } : {}),
452
+ };
453
+ }
303
454
  /**
304
455
  * Commit checkpoint N+1 atomically with the task head.
305
456
  *
@@ -323,7 +474,7 @@ export class AgentStateStore {
323
474
  throw fail('INVALID_REQUEST', `evidence must be an array of at most ${LIST_LIMIT} references`);
324
475
  }
325
476
  const row = await this.requireTask(id);
326
- const task = strip(row);
477
+ const task = toTask(row);
327
478
  if (input.expectedVersion !== undefined && input.expectedVersion !== task.checkpoint_version) {
328
479
  throw fail('VERSION_CONFLICT', `task ${id} is at checkpoint ${task.checkpoint_version}, not ${input.expectedVersion}`, {
329
480
  expected: input.expectedVersion, current: task.checkpoint_version,
@@ -369,7 +520,7 @@ export class AgentStateStore {
369
520
  };
370
521
  try {
371
522
  await this.db.transaction(tx => {
372
- tx.collection(FELTDB_AGENT_TASK_COLLECTION).set(id, head, { ifVersion: version(row) });
523
+ tx.collection(FELTDB_AGENT_TASK_COLLECTION).set(id, taskHead(head), { ifVersion: version(row) });
373
524
  tx.collection(FELTDB_AGENT_CHECKPOINT_COLLECTION).set(next.checkpoint_id, next, { requireAbsent: true });
374
525
  for (const entry of cited) {
375
526
  if (entry.evidence.kind === 'record') {
@@ -400,7 +551,7 @@ export class AgentStateStore {
400
551
  */
401
552
  async resume(taskId, input) {
402
553
  const row = await this.requireTask(identifier(taskId, 'taskId'));
403
- this.assertOwner(strip(row), name(input.actor, 'actor'));
554
+ this.assertOwner(toTask(row), name(input.actor, 'actor'));
404
555
  return this.assembleContext(taskId, input);
405
556
  }
406
557
  // --------------------------------------------------------------- memory
@@ -414,7 +565,7 @@ export class AgentStateStore {
414
565
  const scopeKey = memoryScopeKey(scope);
415
566
  if (taskId || scope.kind === 'task') {
416
567
  const owningTask = taskId ?? scope.taskId;
417
- const task = strip(await this.requireTask(owningTask));
568
+ const task = toTask(await this.requireTask(owningTask));
418
569
  if (scope.kind === 'task' && scope.taskId !== task.task_id) {
419
570
  throw fail('INVALID_REQUEST', `memory for task ${task.task_id} cannot be written to task scope ${scope.taskId}`);
420
571
  }
@@ -481,7 +632,7 @@ export class AgentStateStore {
481
632
  * its workspace. A memory scoped to another task is never returned.
482
633
  */
483
634
  async recallForTask(taskId, input = {}) {
484
- const task = strip(await this.requireTask(identifier(taskId, 'taskId')));
635
+ const task = toTask(await this.requireTask(identifier(taskId, 'taskId')));
485
636
  const limit = boundedLimit(input.limit, 20, 100);
486
637
  const scopes = [
487
638
  { kind: 'task', taskId: task.task_id },
@@ -572,7 +723,7 @@ export class AgentStateStore {
572
723
  const actor = name(input.actor, 'actor');
573
724
  const to = input.to === undefined ? undefined : name(input.to, 'to');
574
725
  const row = await this.requireTask(id);
575
- const task = strip(row);
726
+ const task = toTask(row);
576
727
  this.assertOwner(task, actor);
577
728
  if (TERMINAL.includes(task.status))
578
729
  throw fail('INVALID_TRANSITION', `task ${id} is ${task.status}; it cannot be handed off`);
@@ -633,12 +784,34 @@ export class AgentStateStore {
633
784
  }
634
785
  return resolveHandoff({ ...record, revision: 1 }, task, checkpoint);
635
786
  }
787
+ /**
788
+ * One bounded page of handoff records, newest first (ties by handoff id).
789
+ * `open: true` lists the handoffs nobody has claimed yet. Indexed; never a
790
+ * collection scan.
791
+ */
792
+ async listHandoffs(input = {}) {
793
+ if (input.open === false) {
794
+ throw fail('INVALID_REQUEST', "open: false is ambiguous; pass status: 'claimed' or 'accepted'");
795
+ }
796
+ if (input.status !== undefined && !HANDOFF_STATUSES.includes(input.status)) {
797
+ throw fail('INVALID_REQUEST', `status must be one of ${HANDOFF_STATUSES.join(', ')}`);
798
+ }
799
+ if (input.open && input.status !== undefined && input.status !== 'open') {
800
+ throw fail('INVALID_REQUEST', `open: true contradicts status: '${input.status}'`);
801
+ }
802
+ const status = input.open ? 'open' : input.status;
803
+ const page = await this.page(FELTDB_AGENT_HANDOFF_COLLECTION, status === undefined ? [] : [{ field: 'status', eq: status }], 'created_at', input.limit, input.cursor);
804
+ return {
805
+ handoffs: page.records.map(row => strip(row)),
806
+ ...(page.nextCursor ? { nextCursor: page.nextCursor } : {}),
807
+ };
808
+ }
636
809
  async getHandoff(handoffId) {
637
810
  const row = await this.db.collection(FELTDB_AGENT_HANDOFF_COLLECTION).get(identifier(handoffId, 'handoffId', 128));
638
811
  if (!row)
639
812
  return null;
640
813
  const record = strip(row);
641
- const task = strip(await this.requireTask(record.task_id));
814
+ const task = toTask(await this.requireTask(record.task_id));
642
815
  const checkpoint = await this.getCheckpoint(record.task_id, record.checkpoint_version);
643
816
  if (!checkpoint)
644
817
  throw fail('NOT_FOUND', `handoff ${handoffId} references checkpoint ${record.checkpoint_version}, which is not committed`);
@@ -664,7 +837,7 @@ export class AgentStateStore {
664
837
  const first = await handoffs.get(id);
665
838
  if (!first)
666
839
  throw fail('NOT_FOUND', `handoff ${id} does not exist`);
667
- const task = strip(await this.requireTask(strip(first).task_id));
840
+ const task = toTask(await this.requireTask(strip(first).task_id));
668
841
  // Decide on a handoff read taken after the task read. A claim commits both
669
842
  // records together, so this pair can never show a claimed task beside an
670
843
  // open handoff, which would misreport a lost race as a stale handoff.
@@ -710,7 +883,7 @@ export class AgentStateStore {
710
883
  try {
711
884
  await this.db.transaction(tx => {
712
885
  tx.collection(FELTDB_AGENT_HANDOFF_COLLECTION).set(id, claimed, { ifVersion: handoff.revision });
713
- tx.collection(FELTDB_AGENT_TASK_COLLECTION).set(task.task_id, head, { ifVersion: task.revision });
886
+ tx.collection(FELTDB_AGENT_TASK_COLLECTION).set(task.task_id, taskHead(head), { ifVersion: task.revision });
714
887
  });
715
888
  }
716
889
  catch (error) {
@@ -760,7 +933,7 @@ export class AgentStateStore {
760
933
  }
761
934
  throw error;
762
935
  }
763
- const task = strip(await this.requireTask(handoff.task_id));
936
+ const task = toTask(await this.requireTask(handoff.task_id));
764
937
  return this.resolveRecord({ ...accepted, revision: handoff.revision + 1 }, task);
765
938
  }
766
939
  // -------------------------------------------------------------- context
@@ -894,6 +1067,31 @@ export class AgentStateStore {
894
1067
  return bundle;
895
1068
  }
896
1069
  // ------------------------------------------------------------- internal
1070
+ async page(collection, where, newestFirst, limit, cursor) {
1071
+ if (cursor !== undefined && (typeof cursor !== 'string' || !cursor)) {
1072
+ throw fail('INVALID_REQUEST', 'cursor must be the nextCursor of a previous page');
1073
+ }
1074
+ let page;
1075
+ try {
1076
+ page = await this.db.query({
1077
+ collection,
1078
+ ...(where.length ? { where } : {}),
1079
+ orderBy: [{ field: newestFirst, direction: 'desc' }],
1080
+ limit: boundedLimit(limit, 50, 1_000),
1081
+ ...(cursor ? { cursor } : {}),
1082
+ });
1083
+ }
1084
+ catch (error) {
1085
+ if (/INVALID_CURSOR/.test(error instanceof Error ? error.message : String(error))) {
1086
+ throw fail('INVALID_REQUEST', 'cursor does not belong to this query; pass the nextCursor of a page with the same filters');
1087
+ }
1088
+ throw error;
1089
+ }
1090
+ return {
1091
+ records: page.records,
1092
+ ...(page.nextCursor && !page.exhausted ? { nextCursor: page.nextCursor } : {}),
1093
+ };
1094
+ }
897
1095
  async taskRow(taskId) {
898
1096
  return this.db.collection(FELTDB_AGENT_TASK_COLLECTION).get(taskId);
899
1097
  }
package/dist/agent.d.ts CHANGED
@@ -19,7 +19,11 @@ export interface AgentRef {
19
19
  toString(): string;
20
20
  }
21
21
  /**
22
- * Lifecycle states for agent execution
22
+ * Lifecycle states for agent execution.
23
+ *
24
+ * `Completed`, `Failed` and `Cancelled` are terminal. `Cancelled` is reachable
25
+ * from every non-terminal state, through `AgentRuntime.cancel` or
26
+ * `transition(execution, Cancelled)`.
23
27
  */
24
28
  export declare enum AgentExecutionStatus {
25
29
  Created = "Created",
@@ -113,6 +117,10 @@ export interface AgentExecution {
113
117
  completedMs?: number;
114
118
  /** Optional error message if execution failed */
115
119
  error?: string;
120
+ /** The agent-state task this execution works on, when it was created for one. */
121
+ taskId?: string;
122
+ /** Why the execution was cancelled (status `Cancelled`). */
123
+ cancelReason?: string;
116
124
  /** Metadata about the execution */
117
125
  metadata?: Record<string, any>;
118
126
  }
@@ -120,6 +128,7 @@ export interface AgentExecution {
120
128
  * Parse an agent reference from its canonical form
121
129
  * @example parseAgentRef("flow://agent/researcher@1")
122
130
  */
131
+ export declare const AGENT_EXECUTION_TERMINAL_STATUSES: readonly AgentExecutionStatus[];
123
132
  export declare function parseAgentRef(ref: string): AgentRef;
124
133
  /**
125
134
  * Create an agent reference
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/agent.js CHANGED
@@ -6,7 +6,11 @@
6
6
  * of the same causal graph.
7
7
  */
8
8
  /**
9
- * Lifecycle states for agent execution
9
+ * Lifecycle states for agent execution.
10
+ *
11
+ * `Completed`, `Failed` and `Cancelled` are terminal. `Cancelled` is reachable
12
+ * from every non-terminal state, through `AgentRuntime.cancel` or
13
+ * `transition(execution, Cancelled)`.
10
14
  */
11
15
  export var AgentExecutionStatus;
12
16
  (function (AgentExecutionStatus) {
@@ -25,6 +29,11 @@ export var AgentExecutionStatus;
25
29
  * Parse an agent reference from its canonical form
26
30
  * @example parseAgentRef("flow://agent/researcher@1")
27
31
  */
32
+ export const AGENT_EXECUTION_TERMINAL_STATUSES = [
33
+ AgentExecutionStatus.Completed,
34
+ AgentExecutionStatus.Failed,
35
+ AgentExecutionStatus.Cancelled,
36
+ ];
28
37
  export function parseAgentRef(ref) {
29
38
  const match = ref.match(/^flow:\/\/agent\/([^@]+)@(\d+)$/);
30
39
  if (!match) {
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "schema": "feltdb.build-identity.v2",
3
3
  "package": "@feltdb/core",
4
- "version": "0.13.0",
4
+ "version": "0.16.0",
5
5
  "git": {
6
- "sha1": "b67312f73ea647ffea6f87337303c170d40d541d",
6
+ "sha1": "2433b73d6e643c8476de7e3364350af0230f47be",
7
7
  "dirty": false
8
8
  },
9
9
  "path_in_vcs": "packages/core",
10
- "source_digest": "sha256:7435af3423598673fcce76eb77444ee1e160f39f3fd83a0a788517e315bd3444",
10
+ "source_digest": "sha256:8bc6dd69a986ac9db9b709570851ebbdf8cdd9ecf2f61e60d21bb8b5c5f1ed9e",
11
11
  "inputs": [
12
12
  "Cargo.lock",
13
13
  "Cargo.toml",
@@ -20,7 +20,15 @@
20
20
  "tools/cli",
21
21
  "tools/create-feltdb"
22
22
  ],
23
- "files": 776,
23
+ "files": 792,
24
+ "release": {
25
+ "tag": "v0.16.0",
26
+ "ref": "main",
27
+ "origin_main": {
28
+ "sha1": "2433b73d6e643c8476de7e3364350af0230f47be",
29
+ "contains_commit": true
30
+ }
31
+ },
24
32
  "build": {
25
33
  "command": "npm run build",
26
34
  "node": "v24.9.0"