@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
package/dist/db.js CHANGED
@@ -8,10 +8,11 @@ import { describeFreshness, readRevision, } from './freshness.js';
8
8
  import { Collection, Relationship } from './collection.js';
9
9
  import { AtomicTransactionBuilder, AtomicTransactionError, ConditionalConflictError, TransactionIdConflictError, TransactionIdUnverifiableError, conditionalRefusal, normaliseReadSet, } from './transaction.js';
10
10
  import { CellImpl } from './cell.js';
11
- import { createAgentRef } from './agent.js';
11
+ import { createAgentRef, parseAgentRef } from './agent.js';
12
12
  import { AgentRegistry } from './agent-registry.js';
13
13
  import { AgentRuntime } from './agent-runtime.js';
14
14
  import { MemoryJsDb } from './memory-db.js';
15
+ import { getReactiveDependencyGraph } from './reactive-graph.js';
15
16
  import { HttpJsDb } from './http-db.js';
16
17
  import { IndexedDbJsDb } from './indexeddb-db.js';
17
18
  import { requireRuntime } from './runtime-registry.js';
@@ -20,7 +21,7 @@ import { assertSnapshotDefinition, createRuntimeSnapshot, snapshotDefinitionsMat
20
21
  import { emptyFlowSpec, planFlowSpecMigration, validateFlowSpec } from './flowspec.js';
21
22
  import { SyncController } from './sync-contract.js';
22
23
  import { resolveFeltDBDeployment, } from './deployment.js';
23
- import { WorkloadClient } from './workload.js';
24
+ import { WorkloadClient, UnsupportedWorkloadClient } from './workload.js';
24
25
  import { MeshClient, WorkerClient, WorkerPoolClient } from './worker.js';
25
26
  import { ArtifactClient } from './artifact.js';
26
27
  import { BundleClient } from './bundle.js';
@@ -62,6 +63,7 @@ function explicitDeployment(options) {
62
63
  applicationId: options.server.applicationId,
63
64
  environment: options.server.environment,
64
65
  requestTimeoutMs: options.server.requestTimeoutMs,
66
+ allowServiceKeyInBrowser: options.server.operatorConsole === true,
65
67
  };
66
68
  }
67
69
  if (options.browser)
@@ -85,11 +87,12 @@ export function createFeltDB(options = {}) {
85
87
  environment: deployment.environment,
86
88
  requestTimeoutMs: options.server?.requestTimeoutMs,
87
89
  authorityScope,
90
+ allowServiceKeyInBrowser: options.server?.operatorConsole === true,
88
91
  })
89
92
  : deployment.mode === 'browser' ? new IndexedDbJsDb(deployment.namespace)
90
93
  : deployment.mode === 'local' ? requireRuntime('file', deployment.path, 'createFeltDB() resolved to the local Node runtime, but the Node file runtime is not available here. '
91
94
  + 'In a browser use FELTDB_MODE=browser or createFeltDB({ browser: true }); in Node import "@feltdb/core" '
92
- + 'rather than a browser-conditioned build.')
95
+ + 'rather than a browser-conditioned build.', { access: options.access ?? 'exclusive' })
93
96
  : new MemoryJsDb(deployment.namespace);
94
97
  const runtimeName = deployment.mode === 'local' ? 'node' : deployment.mode;
95
98
  const bridge = attachDevelopmentRuntimeBridge({
@@ -134,6 +137,13 @@ function observeRuntime(runtime, observation) {
134
137
  * State-first database interface.
135
138
  * Applications use this to treat FeltDB collections as live application state.
136
139
  */
140
+ /** Where embedded agent executions are durable. */
141
+ const AGENT_EXECUTION_COLLECTION = '_flow_agent_executions';
142
+ /** Indexes `findAgentExecution` reads through: newest first per task and per agent. */
143
+ const AGENT_EXECUTION_INDEXES = [
144
+ { name: 'agent_executions_by_task_created', type: 'compound', fields: ['taskId', 'createdMs', 'id'], directions: ['asc', 'desc', 'asc'], persistent: true },
145
+ { name: 'agent_executions_by_agent_created', type: 'compound', fields: ['agentRef', 'createdMs', 'id'], directions: ['asc', 'desc', 'asc'], persistent: true },
146
+ ];
137
147
  export class StateFirstDB {
138
148
  jsDb;
139
149
  collections = new Map();
@@ -150,7 +160,12 @@ export class StateFirstDB {
150
160
  authorityScope;
151
161
  tenantFactory;
152
162
  localActorSession;
153
- workloads = new WorkloadClient();
163
+ /**
164
+ * Durable Work. Server-backed runtimes talk to the authority with their own credentials; embedded runtimes (memory, file, browser) have
165
+ * no Durable Work engine, so each operation refuses with `CONTRACT_UNSUPPORTED` and a pointer to `feltdb-server`
166
+ * (see `capabilities().durableWork`).
167
+ */
168
+ workloads;
154
169
  artifacts = new ArtifactClient();
155
170
  bundle = new BundleClient();
156
171
  releases = new ReleaseClient();
@@ -220,6 +235,13 @@ export class StateFirstDB {
220
235
  source: 'feltdb.client',
221
236
  });
222
237
  this.runtimeInfo = this.detectRuntime();
238
+ if (jsDb instanceof HttpJsDb) {
239
+ const { baseUrl, fetcher } = jsDb.authority_transport();
240
+ this.workloads = new WorkloadClient(baseUrl, fetcher);
241
+ }
242
+ else {
243
+ this.workloads = new UnsupportedWorkloadClient(this.runtimeInfo.storage);
244
+ }
223
245
  this.substrate = new FeltDBPublicContract(this, authorityScope, this.deployment.applicationId, this.deployment.environment ?? 'production', this.jsDb instanceof HttpJsDb ? this.jsDb.public_request.bind(this.jsDb) : undefined);
224
246
  this.agentRegistry = new AgentRegistry();
225
247
  const agentConfig = {
@@ -232,6 +254,15 @@ export class StateFirstDB {
232
254
  },
233
255
  };
234
256
  this.agentRuntime = new AgentRuntime(this.agentRegistry, agentConfig);
257
+ this.agentRuntime.bindStore({
258
+ create: execution => this.collection(AGENT_EXECUTION_COLLECTION)
259
+ .insert(this.agentExecutionRecord(execution), execution.executionId)
260
+ .then(() => undefined),
261
+ update: execution => this.collection(AGENT_EXECUTION_COLLECTION)
262
+ .update(execution.executionId, this.agentExecutionRecord(execution))
263
+ .then(() => undefined),
264
+ find: query => this.queryAgentExecution(query),
265
+ });
235
266
  // Emit initialization telemetry event
236
267
  // Non-blocking, fails silently if telemetry unavailable
237
268
  emitTelemetry('initialize');
@@ -344,6 +375,8 @@ export class StateFirstDB {
344
375
  replication: typeof this.jsDb.export_operations === 'function' || typeof this.jsDb.apply_remote_operations === 'function',
345
376
  remoteAuthority,
346
377
  offline: !remoteAuthority,
378
+ content: typeof this.jsDb.storeContent === 'function' && typeof this.jsDb.acquireContent === 'function',
379
+ durableWork: remoteAuthority ? 'supported' : 'requires-server',
347
380
  };
348
381
  }
349
382
  /**
@@ -506,6 +539,33 @@ export class StateFirstDB {
506
539
  * transactions. Runtimes that cannot refuse rather than silently degrading
507
540
  * the transaction into a sequence of independent writes.
508
541
  */
542
+ /**
543
+ * Tell this process's live collections that a transaction committed.
544
+ *
545
+ * Collection writes publish through the reactive dependency graph; a
546
+ * transaction bypasses the collection, so without this a subscriber on the
547
+ * local file or memory runtime never learns about it. The announcement is
548
+ * a notification only (subscribers re-read committed state), and it runs
549
+ * after the commit is durable: a failing subscriber cannot turn a committed
550
+ * transaction into a reported failure.
551
+ */
552
+ async announceCommittedTransaction(operations) {
553
+ const graph = getReactiveDependencyGraph();
554
+ const timestamp = Date.now();
555
+ for (const operation of operations) {
556
+ try {
557
+ await graph.emitChange(operation.collection, {
558
+ type: operation.value === undefined ? 'delete' : 'update',
559
+ key: `${operation.collection}:${operation.id}`,
560
+ value: operation.value ?? null,
561
+ timestamp,
562
+ });
563
+ }
564
+ catch {
565
+ // Notification is best-effort; the commit already happened.
566
+ }
567
+ }
568
+ }
509
569
  async transaction(build, options = {}) {
510
570
  // A transaction may be staged through a callback or described in full. The
511
571
  // second is not a second mechanism: it builds the same request, through the
@@ -534,7 +594,7 @@ export class StateFirstDB {
534
594
  if (!this.jsDb.commit_transaction) {
535
595
  const error = new AtomicTransactionError('This FeltDB runtime does not provide atomic transactions. '
536
596
  + 'Connect to a FeltDB authority (createFeltDB({ server: ... })) to use db.transaction(). '
537
- + 'FeltDB will not emulate a transaction with separate writes, because that would not be atomic.', builder.transactionId);
597
+ + 'FeltDB will not emulate a transaction with separate writes, because that would not be atomic.', builder.transactionId, FeltDBErrorCode.CONTRACT_UNSUPPORTED);
538
598
  observed?.fail(error);
539
599
  throw error;
540
600
  }
@@ -547,7 +607,7 @@ export class StateFirstDB {
547
607
  }
548
608
  const request = builder.seal();
549
609
  if (request.operations.length === 0) {
550
- const error = new AtomicTransactionError('a transaction requires at least one operation', request.transactionId);
610
+ const error = new AtomicTransactionError('a transaction requires at least one operation', request.transactionId, FeltDBErrorCode.INVALID_REQUEST);
551
611
  observed?.fail(error);
552
612
  throw error;
553
613
  }
@@ -584,6 +644,11 @@ export class StateFirstDB {
584
644
  duplicate: completed.duplicate,
585
645
  ...(completed.binding ? { binding: completed.binding } : {}),
586
646
  });
647
+ // A transaction commits the same durable state a collection write does,
648
+ // so it reaches the same live subscribers. A duplicate applied nothing
649
+ // and announces nothing.
650
+ if (!completed.duplicate)
651
+ await this.announceCommittedTransaction(request.operations);
587
652
  return completed;
588
653
  }
589
654
  catch (error) {
@@ -594,17 +659,23 @@ export class StateFirstDB {
594
659
  // conflict must be distinguishable from an infrastructure failure without
595
660
  // reading the message.
596
661
  const refusal = conditionalRefusal(error);
597
- const remoteCode = error?.code
598
- ?? error?.feltdbCode;
599
- const transactionError = error instanceof TransactionIdConflictError || error instanceof TransactionIdUnverifiableError
662
+ const cause = error;
663
+ const remoteCode = cause?.feltdbCode ?? cause?.code;
664
+ const message = error instanceof Error ? error.message : String(error);
665
+ // One typed shape for every runtime and transport: the stable code, the
666
+ // authority's status and request id when it answered, and for a lost
667
+ // race the structured failure. A transport that ended without an answer
668
+ // keeps its `COMMIT_OUTCOME_UNKNOWN`; it is never turned into a refusal.
669
+ const transactionError = error instanceof AtomicTransactionError
600
670
  ? error
601
671
  : remoteCode === 'IDEMPOTENCY_CONFLICT'
602
672
  // A managed authority's refusal is the same event as an embedded one.
603
- ? new TransactionIdConflictError(request.transactionId, error instanceof Error ? error.message : undefined)
604
- : refusal.conflict
605
- ? new ConditionalConflictError(error instanceof Error ? error.message : String(error), request.transactionId, refusal.failure)
606
- : new AtomicTransactionError(error instanceof Error ? error.message : String(error), request.transactionId, error?.code
607
- ?? error?.feltdbCode, error?.status, error);
673
+ ? new TransactionIdConflictError(request.transactionId, message, cause?.status, cause?.requestId)
674
+ : remoteCode === 'IDEMPOTENCY_UNVERIFIABLE'
675
+ ? new TransactionIdUnverifiableError(request.transactionId, message, cause?.status, cause?.requestId)
676
+ : refusal.conflict
677
+ ? new ConditionalConflictError(message, request.transactionId, refusal.failure, cause?.status, cause?.requestId)
678
+ : new AtomicTransactionError(message, request.transactionId, remoteCode ?? FeltDBErrorCode.INTERNAL_ERROR, cause?.status, error, cause?.requestId);
608
679
  observed?.fail(transactionError);
609
680
  throw transactionError;
610
681
  }
@@ -834,18 +905,35 @@ export class StateFirstDB {
834
905
  throw new Error('Causal provenance requires a server runtime');
835
906
  return this.jsDb.provenance(collection, id);
836
907
  }
837
- /** Persist immutable content by hash; repeated bytes deduplicate automatically. */
908
+ /**
909
+ * Persist immutable content by its SHA-256; repeated bytes deduplicate.
910
+ * Returns `{ hash, bytes, ref: 'sha256:<hash>' }`.
911
+ *
912
+ * A server runtime stores it in the server's content store; the local file
913
+ * runtime stores it under its state directory (`content/<hash>`), durably
914
+ * before this returns. Memory and browser runtimes refuse with
915
+ * `CONTRACT_UNSUPPORTED`.
916
+ */
838
917
  async storeContent(content) {
839
- if (!(this.jsDb instanceof HttpJsDb))
840
- throw new Error('Durable content storage requires a server runtime');
918
+ if (!this.jsDb.storeContent)
919
+ throw this.contentUnsupported('store');
841
920
  return this.jsDb.storeContent(content);
842
921
  }
843
- /** Resolve verified immutable content locally or from configured peers. */
922
+ /**
923
+ * Resolve content by hash: verified against its SHA-256 before it is
924
+ * returned (`CONTENT_INTEGRITY_FAILURE` otherwise), `null` when absent. A
925
+ * server also asks its configured peers; the local runtime reads its own
926
+ * directory only.
927
+ */
844
928
  async acquireContent(hash) {
845
- if (!(this.jsDb instanceof HttpJsDb))
846
- throw new Error('Network content acquisition requires a server runtime');
929
+ if (!this.jsDb.acquireContent)
930
+ throw this.contentUnsupported('read');
847
931
  return this.jsDb.acquireContent(hash);
848
932
  }
933
+ contentUnsupported(action) {
934
+ return new FeltDBServiceError(`CONTRACT_UNSUPPORTED: this ${this.runtimeInfo.storage} runtime has no durable content store, so it cannot ${action} `
935
+ + 'content. Use the local file runtime (createFeltDB({ path })) or a FeltDB server.', FeltDBErrorCode.CONTRACT_UNSUPPORTED);
936
+ }
849
937
  /** Define a durable workflow whose lifecycle is ordinary replicated state. */
850
938
  async defineWorkflow(name, steps) {
851
939
  if (!(this.jsDb instanceof HttpJsDb))
@@ -925,33 +1013,84 @@ export class StateFirstDB {
925
1013
  return this.agentRuntime;
926
1014
  }
927
1015
  /**
928
- * Create an agent execution
1016
+ * Create an agent execution. It is committed to `_flow_agent_executions`
1017
+ * before this returns; pass `taskId` to find it later with
1018
+ * `findAgentExecution({ taskId })`.
929
1019
  */
930
- async createAgentExecution(agentRef, goal, inputs) {
931
- const execution = await this.agentRuntime.createExecution(this, agentRef, goal, inputs);
932
- await this.collection('_flow_agent_executions').insert(this.agentExecutionRecord(execution), execution.executionId);
933
- return execution;
1020
+ async createAgentExecution(agentRef, goal, inputs, options = {}) {
1021
+ return this.agentRuntime.createExecution(this, agentRef, goal, inputs, options);
934
1022
  }
935
1023
  agentExecutionRecord(execution) {
936
1024
  return { ...execution, id: execution.executionId, agentRef: execution.agentRef.toString() };
937
1025
  }
1026
+ agentExecutionIndexesDeclared = false;
1027
+ /** Declare the lookup indexes once per handle, on an embedded runtime only. */
1028
+ async declareAgentExecutionIndexes() {
1029
+ if (this.agentExecutionIndexesDeclared)
1030
+ return;
1031
+ this.agentExecutionIndexesDeclared = true;
1032
+ if (this.capabilities().remoteAuthority)
1033
+ return;
1034
+ const executions = this.collection(AGENT_EXECUTION_COLLECTION);
1035
+ for (const index of AGENT_EXECUTION_INDEXES) {
1036
+ if (executions.listIndexes().some(existing => existing.name === index.name))
1037
+ continue;
1038
+ // A definition committed by an earlier process is already durable.
1039
+ const planned = await this.explain({
1040
+ collection: AGENT_EXECUTION_COLLECTION,
1041
+ where: [{ field: index.fields[0], eq: '' }],
1042
+ limit: 1,
1043
+ }).catch(() => undefined);
1044
+ if (planned?.index === index.name)
1045
+ continue;
1046
+ executions.createIndex(index);
1047
+ }
1048
+ }
1049
+ async queryAgentExecution(query) {
1050
+ await this.declareAgentExecutionIndexes();
1051
+ const field = 'taskId' in query && query.taskId !== undefined ? 'taskId' : 'agentRef';
1052
+ const value = field === 'taskId' ? query.taskId : String(query.agentRef);
1053
+ const page = await this.query({
1054
+ collection: AGENT_EXECUTION_COLLECTION,
1055
+ where: [{ field, eq: value }],
1056
+ orderBy: [{ field: 'createdMs', direction: 'desc' }],
1057
+ limit: 1,
1058
+ });
1059
+ const row = page.records[0];
1060
+ if (!row)
1061
+ return null;
1062
+ const { id: _id, __version: _version, ...execution } = row;
1063
+ return { ...execution, agentRef: parseAgentRef(String(row.agentRef)) };
1064
+ }
1065
+ /**
1066
+ * The most recently created execution for an agent-state task or an agent,
1067
+ * read from durable state through a declared index (one bounded query; it
1068
+ * never scans `_flow_agent_executions`). Null when there is none.
1069
+ */
1070
+ async findAgentExecution(query) {
1071
+ return this.agentRuntime.findExecution(query);
1072
+ }
938
1073
  /** Claim and durably materialize an embedded agent execution. */
939
1074
  async startAgentExecution(execution, peerId = this.instanceId()) {
940
1075
  await this.agentRuntime.start(execution, peerId);
941
- await this.collection('_flow_agent_executions').update(execution.executionId, this.agentExecutionRecord(execution));
942
1076
  }
943
1077
  /** Advance an agent lifecycle and expose the transition as ordinary state. */
944
1078
  async transitionAgentExecution(execution, status) {
945
1079
  await this.agentRuntime.transition(execution, status);
946
- await this.collection('_flow_agent_executions').update(execution.executionId, this.agentExecutionRecord(execution));
1080
+ }
1081
+ /** Resume an execution for `peerId` (status `Observing`), committed before this returns. */
1082
+ async resumeAgentExecution(execution, peerId = this.instanceId()) {
1083
+ await this.agentRuntime.resume(execution, peerId);
947
1084
  }
948
1085
  async completeAgentExecution(execution, resultRef) {
949
1086
  await this.agentRuntime.complete(execution, resultRef);
950
- await this.collection('_flow_agent_executions').update(execution.executionId, this.agentExecutionRecord(execution));
951
1087
  }
952
1088
  async failAgentExecution(execution, error) {
953
1089
  await this.agentRuntime.fail(execution, error);
954
- await this.collection('_flow_agent_executions').update(execution.executionId, this.agentExecutionRecord(execution));
1090
+ }
1091
+ /** Cancel a non-terminal execution (terminal status `Cancelled`), committed before this returns. */
1092
+ async cancelAgentExecution(execution, reason) {
1093
+ await this.agentRuntime.cancel(execution, reason);
955
1094
  }
956
1095
  /**
957
1096
  * Close the database and clean up resources.
@@ -1,4 +1,21 @@
1
+ import { FeltDBServiceError } from './error-codes.js';
1
2
  export type FeltDBDeploymentMode = 'browser' | 'local' | 'remote' | 'memory';
3
+ /** Prefix of every FeltDB service (API) key. */
4
+ export declare const FELTDB_SERVICE_KEY_PREFIX = "fdb_live_";
5
+ /**
6
+ * A FeltDB service key reached code running in a browser.
7
+ *
8
+ * Service keys (`fdb_live_…`) authorize everything their scopes name for every
9
+ * caller holding them, so a key in a browser bundle or page is a key published
10
+ * to every visitor. Keep service keys server-side (`FELTDB_TOKEN`, never a
11
+ * `VITE_`/`NEXT_PUBLIC_`/`PUBLIC_` variable) and give browsers an end-user
12
+ * session token from `/v1/auth/signin`, or call FeltDB through your server.
13
+ */
14
+ export declare class FeltDBBrowserCredentialError extends FeltDBServiceError {
15
+ constructor(source: string);
16
+ }
17
+ /** Throws {@link FeltDBBrowserCredentialError} when a service key reaches a browser runtime. */
18
+ export declare function assertBrowserSafeCredential(token: string | undefined, isBrowser: boolean, source?: string): void;
2
19
  export interface FeltDBDeploymentConfig {
3
20
  mode?: FeltDBDeploymentMode;
4
21
  namespace?: string;
@@ -8,6 +25,8 @@ export interface FeltDBDeploymentConfig {
8
25
  environment?: string;
9
26
  path?: string;
10
27
  requestTimeoutMs?: number;
28
+ /** Explicit configuration only; see `server.operatorConsole` on `createFeltDB`. */
29
+ allowServiceKeyInBrowser?: boolean;
11
30
  }
12
31
  export interface FeltDBDeploymentResolution {
13
32
  mode: FeltDBDeploymentMode;
@@ -1 +1 @@
1
- {"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../src/deployment.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7E,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,UAAU,GAAG,aAAa,GAAG,aAAa,GAAG,MAAM,CAAC;CAC7D;AAED,MAAM,WAAW,iCAAiC;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,UAAU,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAMD,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,sBAAsB,GAAG,SAAS,GAAG,IAAI,CAErG;AA4FD,wBAAgB,uBAAuB,CACrC,QAAQ,GAAE,sBAA2B,EACrC,OAAO,GAAE,iCAAsC,GAC9C,0BAA0B,CAuC5B"}
1
+ {"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../src/deployment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7E,gDAAgD;AAChD,eAAO,MAAM,yBAAyB,cAAc,CAAC;AAErD;;;;;;;;GAQG;AACH,qBAAa,4BAA6B,SAAQ,kBAAkB;gBACtD,MAAM,EAAE,MAAM;CAS3B;AAED,gGAAgG;AAChG,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,SAAkB,GAAG,IAAI,CAIzH;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mFAAmF;IACnF,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,UAAU,GAAG,aAAa,GAAG,aAAa,GAAG,MAAM,CAAC;CAC7D;AAED,MAAM,WAAW,iCAAiC;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,UAAU,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAMD,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,sBAAsB,GAAG,SAAS,GAAG,IAAI,CAErG;AA+FD,wBAAgB,uBAAuB,CACrC,QAAQ,GAAE,sBAA2B,EACrC,OAAO,GAAE,iCAAsC,GAC9C,0BAA0B,CA6C5B"}
@@ -1,3 +1,29 @@
1
+ import { FeltDBServiceError } from './error-codes.js';
2
+ /** Prefix of every FeltDB service (API) key. */
3
+ export const FELTDB_SERVICE_KEY_PREFIX = 'fdb_live_';
4
+ /**
5
+ * A FeltDB service key reached code running in a browser.
6
+ *
7
+ * Service keys (`fdb_live_…`) authorize everything their scopes name for every
8
+ * caller holding them, so a key in a browser bundle or page is a key published
9
+ * to every visitor. Keep service keys server-side (`FELTDB_TOKEN`, never a
10
+ * `VITE_`/`NEXT_PUBLIC_`/`PUBLIC_` variable) and give browsers an end-user
11
+ * session token from `/v1/auth/signin`, or call FeltDB through your server.
12
+ */
13
+ export class FeltDBBrowserCredentialError extends FeltDBServiceError {
14
+ constructor(source) {
15
+ super(`A FeltDB service key (fdb_live_…) was supplied to a browser runtime via ${source}. Service keys must stay server-side: ` +
16
+ 'set FELTDB_TOKEN on your server (never a VITE_/NEXT_PUBLIC_/PUBLIC_ variable, which bundlers inline into client code), ' +
17
+ 'and give the browser an end-user session token from /v1/auth/signin or proxy requests through your server.', 'SERVICE_KEY_IN_BROWSER');
18
+ this.name = 'FeltDBBrowserCredentialError';
19
+ }
20
+ }
21
+ /** Throws {@link FeltDBBrowserCredentialError} when a service key reaches a browser runtime. */
22
+ export function assertBrowserSafeCredential(token, isBrowser, source = 'configuration') {
23
+ if (isBrowser && typeof token === 'string' && token.trim().startsWith(FELTDB_SERVICE_KEY_PREFIX)) {
24
+ throw new FeltDBBrowserCredentialError(source);
25
+ }
26
+ }
1
27
  let configFileLoader;
2
28
  export function registerDeploymentConfigLoader(loader) {
3
29
  configFileLoader = loader;
@@ -17,7 +43,10 @@ function envConfig(env) {
17
43
  mode: modeValue(env.FELTDB_MODE ?? env.VITE_FELTDB_MODE),
18
44
  namespace: env.FELTDB_NAMESPACE ?? env.VITE_FELTDB_NAMESPACE,
19
45
  url: env.FELTDB_URL ?? env.VITE_FELTDB_URL ?? env.FELTDB_API_URL,
20
- token: env.FELTDB_TOKEN ?? env.VITE_FELTDB_TOKEN ?? env.FELTDB_API_KEY ?? env.VITE_FELTDB_API_KEY,
46
+ // Credentials are read only from server-side names. A VITE_* (or
47
+ // NEXT_PUBLIC_*/PUBLIC_*) variable is inlined into browser bundles by the
48
+ // bundler, so a token there is published; it is never a credential source.
49
+ token: env.FELTDB_TOKEN ?? env.FELTDB_API_KEY,
21
50
  applicationId: env.FELTDB_APPLICATION_ID ?? env.VITE_FELTDB_APPLICATION_ID,
22
51
  environment: env.FELTDB_ENVIRONMENT ?? env.VITE_FELTDB_ENVIRONMENT,
23
52
  path: env.FELTDB_PATH ?? env.FELTDB_DATA_DIR,
@@ -111,11 +140,18 @@ export function resolveFeltDBDeployment(explicit = {}, context = {}) {
111
140
  const url = firstValue(sources, 'url');
112
141
  if (!url)
113
142
  throw new Error('FeltDB remote deployment requires FELTDB_URL or createFeltDB({ server: { url } }).');
143
+ const token = firstValue(sources, 'token');
144
+ const tokenSource = sources.find(candidate => typeof candidate.token === 'string' && candidate.token.trim())?.source;
145
+ // Only an explicit, in-code operator-console opt-in can allow it; an
146
+ // environment or config-file value never can.
147
+ const allowed = explicit.allowServiceKeyInBrowser === true && tokenSource === 'explicit';
148
+ if (!allowed)
149
+ assertBrowserSafeCredential(token, flags.isBrowser, tokenSource === 'explicit' ? 'createFeltDB({ server: { token } })' : `the ${tokenSource} configuration`);
114
150
  return {
115
151
  mode,
116
152
  namespace,
117
153
  url,
118
- token: firstValue(sources, 'token'),
154
+ token,
119
155
  applicationId: firstValue(sources, 'applicationId'),
120
156
  environment: firstValue(sources, 'environment'),
121
157
  source,
@@ -1 +1 @@
1
- {"version":3,"file":"embedded-query.d.ts","sourceRoot":"","sources":["../src/embedded-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAG9E,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAInC,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,aAAa,GAAG,cAAc,GAAG,WAAW,CAAC;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;CACjB;AAgDD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CASrH;AAkCD,kFAAkF;AAClF,qBAAa,mBAAmB;IAGlB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,OAAO,CAAmC;gBAErB,OAAO,EAAE,MAAM,QAAQ,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIvE,OAAO,IAAI,IAAI;IAMf,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI;IAgCpD,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,IAAI;IAqBZ,OAAO,CAAC,KAAK,EAAE,qBAAqB,GAAG,wBAAwB;IAK/D,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,qBAAqB,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAAG;QAAE,KAAK,EAAE,kBAAkB,CAAA;KAAE;IAyErG,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,UAAU;IA6BlB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,QAAQ;CAkBjB"}
1
+ {"version":3,"file":"embedded-query.d.ts","sourceRoot":"","sources":["../src/embedded-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAI9E,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAInC,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,aAAa,GAAG,cAAc,GAAG,WAAW,CAAC;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;CACjB;AAgDD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CASrH;AAkCD,kFAAkF;AAClF,qBAAa,mBAAmB;IAGlB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,OAAO,CAAmC;gBAErB,OAAO,EAAE,MAAM,QAAQ,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIvE,OAAO,IAAI,IAAI;IAMf,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI;IAgCpD,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,IAAI;IAqBZ,OAAO,CAAC,KAAK,EAAE,qBAAqB,GAAG,wBAAwB;IAK/D,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,qBAAqB,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAAG;QAAE,KAAK,EAAE,kBAAkB,CAAA;KAAE;IAyErG,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,UAAU;IA6BlB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,QAAQ;CAkBjB"}
@@ -1,3 +1,4 @@
1
+ import { FeltDBErrorCode, FeltDBServiceError } from './error-codes.js';
1
2
  const now = () => typeof performance !== 'undefined' ? performance.now() : Date.now();
2
3
  function compareValue(left, right) {
3
4
  if (left === right)
@@ -78,7 +79,7 @@ function decode(cursor, expectedBinding) {
78
79
  return value;
79
80
  }
80
81
  catch {
81
- throw new Error('INVALID_CURSOR: cursor is malformed or does not match this query');
82
+ throw new FeltDBServiceError('INVALID_CURSOR: cursor is malformed or does not match this query', FeltDBErrorCode.INVALID_CURSOR);
82
83
  }
83
84
  }
84
85
  /** Small deterministic planner/executor owned by an embedded storage boundary. */
@@ -331,7 +332,7 @@ export class EmbeddedQueryEngine {
331
332
  }
332
333
  validate(query) {
333
334
  if (!query.collection?.trim() || !Number.isInteger(query.limit) || query.limit < 1 || query.limit > 1_000)
334
- throw new Error('INVALID_QUERY: collection and a limit between 1 and 1000 are required');
335
+ throw new FeltDBServiceError('INVALID_QUERY: collection and a limit between 1 and 1000 are required', 'INVALID_QUERY');
335
336
  for (const condition of query.where ?? []) {
336
337
  // Every key beside `field` must be exactly one known operator. A stray
337
338
  // key — a `semantic` clause misplaced into a condition, or anything
@@ -340,13 +341,13 @@ export class EmbeddedQueryEngine {
340
341
  const keys = Object.keys(condition).filter(key => key !== 'field');
341
342
  const operators = keys.filter(operator => ['eq', 'neq', 'lt', 'lte', 'gt', 'gte'].includes(operator));
342
343
  if (!condition.field || operators.length !== 1 || keys.length !== 1)
343
- throw new Error('INVALID_QUERY: each condition requires a field and exactly one operator');
344
+ throw new FeltDBServiceError('INVALID_QUERY: each condition requires a field and exactly one operator', 'INVALID_QUERY');
344
345
  }
345
346
  if (query.semantic !== undefined) {
346
347
  // Semantic composition runs where the Rust decision primitive runs. This
347
348
  // embedded engine has no runtime binding, so it refuses the clause
348
349
  // rather than answering the deterministic query in its place.
349
- throw new Error('SEMANTIC_UNSUPPORTED: this runtime has no semantic runtime binding; semantic query composition is available through the managed authority');
350
+ throw new FeltDBServiceError('SEMANTIC_UNSUPPORTED: this runtime has no semantic runtime binding; semantic query composition is available through the managed authority', 'SEMANTIC_UNSUPPORTED');
350
351
  }
351
352
  }
352
353
  }
@@ -126,7 +126,7 @@ export type EmbeddedPlan =
126
126
  kind: 'reject';
127
127
  reason: string;
128
128
  failure?: ConditionalConflictDetail;
129
- code?: 'INVALID_REQUEST';
129
+ code?: 'INVALID_REQUEST' | 'CONTRACT_UNSUPPORTED';
130
130
  } | {
131
131
  kind: 'apply';
132
132
  mutations: EmbeddedMutation[];
@@ -184,8 +184,12 @@ export declare function embeddedDuplicate(request: AtomicTransactionRequest, pla
184
184
  export declare class EmbeddedTransactionRejected extends Error {
185
185
  readonly feltdbCode?: 'PRECONDITION_FAILED';
186
186
  readonly feltdbConflict?: ConditionalConflictDetail;
187
- /** Set when the request itself was malformed, as opposed to refused by state. */
188
- readonly code?: 'INVALID_REQUEST';
189
- constructor(reason: string, failure?: ConditionalConflictDetail, code?: 'INVALID_REQUEST');
187
+ /**
188
+ * Set when the request itself was malformed (`INVALID_REQUEST`) or asks for
189
+ * something this runtime cannot evaluate (`CONTRACT_UNSUPPORTED`), as
190
+ * opposed to refused by state.
191
+ */
192
+ readonly code?: 'INVALID_REQUEST' | 'CONTRACT_UNSUPPORTED';
193
+ constructor(reason: string, failure?: ConditionalConflictDetail, code?: 'INVALID_REQUEST' | 'CONTRACT_UNSUPPORTED');
190
194
  }
191
195
  //# sourceMappingURL=embedded-transaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"embedded-transaction.d.ts","sourceRoot":"","sources":["../src/embedded-transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"embedded-transaction.d.ts","sourceRoot":"","sources":["../src/embedded-transaction.ts"],"names":[],"mappings":"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"}