@lix-js/sdk 0.6.0-preview.1 → 0.6.0-preview.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SKILL.md +304 -320
- package/dist/engine-wasm/wasm/lix_engine.d.ts +5 -0
- package/dist/engine-wasm/wasm/lix_engine.js +9 -13
- package/dist/engine-wasm/wasm/lix_engine.wasm +0 -0
- package/dist/engine-wasm/wasm/lix_engine.wasm.d.ts +1 -0
- package/dist/generated/builtin-schemas.d.ts +87 -162
- package/dist/generated/builtin-schemas.js +139 -236
- package/dist/open-lix.d.ts +103 -14
- package/dist/open-lix.js +3 -0
- package/dist/sqlite/index.js +99 -22
- package/dist-engine-src/README.md +18 -0
- package/dist-engine-src/src/backend/kv.rs +358 -0
- package/dist-engine-src/src/backend/mod.rs +12 -0
- package/dist-engine-src/src/backend/testing.rs +658 -0
- package/dist-engine-src/src/backend/types.rs +96 -0
- package/dist-engine-src/src/binary_cas/chunking.rs +31 -0
- package/dist-engine-src/src/binary_cas/codec.rs +346 -0
- package/dist-engine-src/src/binary_cas/context.rs +139 -0
- package/dist-engine-src/src/binary_cas/kv.rs +1063 -0
- package/dist-engine-src/src/binary_cas/mod.rs +11 -0
- package/dist-engine-src/src/binary_cas/types.rs +121 -0
- package/dist-engine-src/src/catalog/context.rs +412 -0
- package/dist-engine-src/src/catalog/mod.rs +10 -0
- package/dist-engine-src/src/catalog/schema.rs +4 -0
- package/dist-engine-src/src/catalog/snapshot.rs +1114 -0
- package/dist-engine-src/src/cel/context.rs +86 -0
- package/dist-engine-src/src/cel/error.rs +19 -0
- package/dist-engine-src/src/cel/mod.rs +8 -0
- package/dist-engine-src/src/cel/provider.rs +9 -0
- package/dist-engine-src/src/cel/runtime.rs +167 -0
- package/dist-engine-src/src/cel/value.rs +50 -0
- package/dist-engine-src/src/commit_graph/context.rs +901 -0
- package/dist-engine-src/src/commit_graph/mod.rs +11 -0
- package/dist-engine-src/src/commit_graph/types.rs +109 -0
- package/dist-engine-src/src/commit_graph/walker.rs +756 -0
- package/dist-engine-src/src/commit_store/codec.rs +887 -0
- package/dist-engine-src/src/commit_store/context.rs +944 -0
- package/dist-engine-src/src/commit_store/materialization.rs +84 -0
- package/dist-engine-src/src/commit_store/mod.rs +16 -0
- package/dist-engine-src/src/commit_store/storage.rs +600 -0
- package/dist-engine-src/src/commit_store/types.rs +215 -0
- package/dist-engine-src/src/common/error.rs +313 -0
- package/dist-engine-src/src/common/fingerprint.rs +3 -0
- package/dist-engine-src/src/common/fs_path.rs +1336 -0
- package/dist-engine-src/src/common/identity.rs +145 -0
- package/dist-engine-src/src/common/json_pointer.rs +67 -0
- package/dist-engine-src/src/common/metadata.rs +40 -0
- package/dist-engine-src/src/common/mod.rs +23 -0
- package/dist-engine-src/src/common/types.rs +105 -0
- package/dist-engine-src/src/common/wire.rs +222 -0
- package/dist-engine-src/src/domain.rs +324 -0
- package/dist-engine-src/src/engine.rs +225 -0
- package/dist-engine-src/src/entity_identity.rs +405 -0
- package/dist-engine-src/src/functions/context.rs +292 -0
- package/dist-engine-src/src/functions/deterministic.rs +113 -0
- package/dist-engine-src/src/functions/mod.rs +18 -0
- package/dist-engine-src/src/functions/provider.rs +130 -0
- package/dist-engine-src/src/functions/state.rs +336 -0
- package/dist-engine-src/src/functions/types.rs +37 -0
- package/dist-engine-src/src/init.rs +558 -0
- package/dist-engine-src/src/json_store/compression.rs +77 -0
- package/dist-engine-src/src/json_store/context.rs +423 -0
- package/dist-engine-src/src/json_store/encoded.rs +15 -0
- package/dist-engine-src/src/json_store/mod.rs +12 -0
- package/dist-engine-src/src/json_store/store.rs +1109 -0
- package/dist-engine-src/src/json_store/types.rs +217 -0
- package/dist-engine-src/src/lib.rs +62 -0
- package/dist-engine-src/src/live_state/context.rs +2019 -0
- package/dist-engine-src/src/live_state/mod.rs +15 -0
- package/dist-engine-src/src/live_state/overlay.rs +75 -0
- package/dist-engine-src/src/live_state/reader.rs +23 -0
- package/dist-engine-src/src/live_state/types.rs +222 -0
- package/dist-engine-src/src/live_state/visibility.rs +223 -0
- package/dist-engine-src/src/plugin/archive.rs +438 -0
- package/dist-engine-src/src/plugin/component.rs +183 -0
- package/dist-engine-src/src/plugin/install.rs +619 -0
- package/dist-engine-src/src/plugin/manifest.rs +516 -0
- package/dist-engine-src/src/plugin/materializer.rs +477 -0
- package/dist-engine-src/src/plugin/mod.rs +33 -0
- package/dist-engine-src/src/plugin/plugin_manifest.json +118 -0
- package/dist-engine-src/src/plugin/storage.rs +74 -0
- package/dist-engine-src/src/schema/annotations/defaults.rs +275 -0
- package/dist-engine-src/src/schema/annotations/mod.rs +1 -0
- package/dist-engine-src/src/schema/builtin/lix_account.json +21 -0
- package/dist-engine-src/src/schema/builtin/lix_active_account.json +29 -0
- package/dist-engine-src/src/schema/builtin/lix_binary_blob_ref.json +29 -0
- package/dist-engine-src/src/schema/builtin/lix_change.json +63 -0
- package/dist-engine-src/src/schema/builtin/lix_change_author.json +45 -0
- package/dist-engine-src/src/schema/builtin/lix_commit.json +24 -0
- package/dist-engine-src/src/schema/builtin/lix_commit_edge.json +53 -0
- package/dist-engine-src/src/schema/builtin/lix_directory_descriptor.json +52 -0
- package/dist-engine-src/src/schema/builtin/lix_file_descriptor.json +52 -0
- package/dist-engine-src/src/schema/builtin/lix_key_value.json +40 -0
- package/dist-engine-src/src/schema/builtin/lix_label.json +29 -0
- package/dist-engine-src/src/schema/builtin/lix_label_assignment.json +74 -0
- package/dist-engine-src/src/schema/builtin/lix_registered_schema.json +25 -0
- package/dist-engine-src/src/schema/builtin/lix_version_descriptor.json +34 -0
- package/dist-engine-src/src/schema/builtin/lix_version_ref.json +48 -0
- package/dist-engine-src/src/schema/builtin/mod.rs +222 -0
- package/dist-engine-src/src/schema/compatibility.rs +787 -0
- package/dist-engine-src/src/schema/definition.json +187 -0
- package/dist-engine-src/src/schema/definition.rs +742 -0
- package/dist-engine-src/src/schema/key.rs +138 -0
- package/dist-engine-src/src/schema/mod.rs +20 -0
- package/dist-engine-src/src/schema/seed.rs +14 -0
- package/dist-engine-src/src/schema/tests.rs +780 -0
- package/dist-engine-src/src/session/context.rs +364 -0
- package/dist-engine-src/src/session/create_version.rs +88 -0
- package/dist-engine-src/src/session/execute.rs +478 -0
- package/dist-engine-src/src/session/merge/analysis.rs +102 -0
- package/dist-engine-src/src/session/merge/apply.rs +23 -0
- package/dist-engine-src/src/session/merge/conflicts.rs +63 -0
- package/dist-engine-src/src/session/merge/mod.rs +11 -0
- package/dist-engine-src/src/session/merge/stats.rs +65 -0
- package/dist-engine-src/src/session/merge/version.rs +427 -0
- package/dist-engine-src/src/session/mod.rs +27 -0
- package/dist-engine-src/src/session/optimization9_sql2_bench.rs +100 -0
- package/dist-engine-src/src/session/switch_version.rs +109 -0
- package/dist-engine-src/src/sql2/change_provider.rs +331 -0
- package/dist-engine-src/src/sql2/classify.rs +182 -0
- package/dist-engine-src/src/sql2/context.rs +311 -0
- package/dist-engine-src/src/sql2/directory_history_provider.rs +631 -0
- package/dist-engine-src/src/sql2/directory_provider.rs +2453 -0
- package/dist-engine-src/src/sql2/dml.rs +148 -0
- package/dist-engine-src/src/sql2/entity_history_provider.rs +440 -0
- package/dist-engine-src/src/sql2/entity_provider.rs +3211 -0
- package/dist-engine-src/src/sql2/error.rs +216 -0
- package/dist-engine-src/src/sql2/execute.rs +3440 -0
- package/dist-engine-src/src/sql2/file_history_provider.rs +910 -0
- package/dist-engine-src/src/sql2/file_provider.rs +3679 -0
- package/dist-engine-src/src/sql2/filesystem_planner.rs +1490 -0
- package/dist-engine-src/src/sql2/filesystem_predicates.rs +159 -0
- package/dist-engine-src/src/sql2/filesystem_visibility.rs +383 -0
- package/dist-engine-src/src/sql2/history_projection.rs +56 -0
- package/dist-engine-src/src/sql2/history_provider.rs +412 -0
- package/dist-engine-src/src/sql2/history_route.rs +657 -0
- package/dist-engine-src/src/sql2/lix_state_provider.rs +2512 -0
- package/dist-engine-src/src/sql2/mod.rs +46 -0
- package/dist-engine-src/src/sql2/predicate_typecheck.rs +246 -0
- package/dist-engine-src/src/sql2/public_bind/assignment.rs +46 -0
- package/dist-engine-src/src/sql2/public_bind/capability.rs +41 -0
- package/dist-engine-src/src/sql2/public_bind/dml.rs +166 -0
- package/dist-engine-src/src/sql2/public_bind/mod.rs +25 -0
- package/dist-engine-src/src/sql2/public_bind/table.rs +168 -0
- package/dist-engine-src/src/sql2/read_only.rs +63 -0
- package/dist-engine-src/src/sql2/record_batch.rs +17 -0
- package/dist-engine-src/src/sql2/result_metadata.rs +29 -0
- package/dist-engine-src/src/sql2/runtime.rs +60 -0
- package/dist-engine-src/src/sql2/session.rs +132 -0
- package/dist-engine-src/src/sql2/udfs/common.rs +295 -0
- package/dist-engine-src/src/sql2/udfs/lix_active_version_commit_id.rs +53 -0
- package/dist-engine-src/src/sql2/udfs/lix_empty_blob.rs +47 -0
- package/dist-engine-src/src/sql2/udfs/lix_json.rs +100 -0
- package/dist-engine-src/src/sql2/udfs/lix_json_get.rs +99 -0
- package/dist-engine-src/src/sql2/udfs/lix_json_get_text.rs +99 -0
- package/dist-engine-src/src/sql2/udfs/lix_text_decode.rs +82 -0
- package/dist-engine-src/src/sql2/udfs/lix_text_encode.rs +85 -0
- package/dist-engine-src/src/sql2/udfs/lix_timestamp.rs +76 -0
- package/dist-engine-src/src/sql2/udfs/lix_uuid_v7.rs +76 -0
- package/dist-engine-src/src/sql2/udfs/mod.rs +89 -0
- package/dist-engine-src/src/sql2/udfs/public_call.rs +211 -0
- package/dist-engine-src/src/sql2/version_provider.rs +1202 -0
- package/dist-engine-src/src/sql2/version_scope.rs +394 -0
- package/dist-engine-src/src/sql2/write_normalization.rs +345 -0
- package/dist-engine-src/src/storage/context.rs +356 -0
- package/dist-engine-src/src/storage/mod.rs +14 -0
- package/dist-engine-src/src/storage/read_scope.rs +88 -0
- package/dist-engine-src/src/storage/types.rs +501 -0
- package/dist-engine-src/src/storage_bench.rs +4863 -0
- package/dist-engine-src/src/test_support.rs +228 -0
- package/dist-engine-src/src/tracked_state/by_file_index.rs +98 -0
- package/dist-engine-src/src/tracked_state/codec.rs +2085 -0
- package/dist-engine-src/src/tracked_state/context.rs +1867 -0
- package/dist-engine-src/src/tracked_state/diff.rs +686 -0
- package/dist-engine-src/src/tracked_state/materialization.rs +403 -0
- package/dist-engine-src/src/tracked_state/materializer.rs +488 -0
- package/dist-engine-src/src/tracked_state/merge.rs +492 -0
- package/dist-engine-src/src/tracked_state/mod.rs +32 -0
- package/dist-engine-src/src/tracked_state/storage.rs +375 -0
- package/dist-engine-src/src/tracked_state/tree.rs +3187 -0
- package/dist-engine-src/src/tracked_state/types.rs +231 -0
- package/dist-engine-src/src/transaction/commit.rs +1484 -0
- package/dist-engine-src/src/transaction/context.rs +1548 -0
- package/dist-engine-src/src/transaction/live_state_overlay.rs +35 -0
- package/dist-engine-src/src/transaction/mod.rs +13 -0
- package/dist-engine-src/src/transaction/normalization.rs +890 -0
- package/dist-engine-src/src/transaction/prep.rs +37 -0
- package/dist-engine-src/src/transaction/schema_resolver.rs +149 -0
- package/dist-engine-src/src/transaction/staging.rs +1731 -0
- package/dist-engine-src/src/transaction/types.rs +460 -0
- package/dist-engine-src/src/transaction/validation.rs +5830 -0
- package/dist-engine-src/src/untracked_state/codec.rs +307 -0
- package/dist-engine-src/src/untracked_state/context.rs +98 -0
- package/dist-engine-src/src/untracked_state/materialization.rs +63 -0
- package/dist-engine-src/src/untracked_state/mod.rs +15 -0
- package/dist-engine-src/src/untracked_state/storage.rs +396 -0
- package/dist-engine-src/src/untracked_state/types.rs +146 -0
- package/dist-engine-src/src/version/context.rs +40 -0
- package/dist-engine-src/src/version/lifecycle.rs +221 -0
- package/dist-engine-src/src/version/mod.rs +13 -0
- package/dist-engine-src/src/version/refs.rs +330 -0
- package/dist-engine-src/src/version/stage_rows.rs +67 -0
- package/dist-engine-src/src/version/types.rs +21 -0
- package/dist-engine-src/src/wasm/mod.rs +60 -0
- package/package.json +68 -64
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
mod context;
|
|
2
|
+
mod types;
|
|
3
|
+
mod walker;
|
|
4
|
+
|
|
5
|
+
#[allow(unused_imports)]
|
|
6
|
+
pub(crate) use context::{CommitGraphContext, CommitGraphStoreReader};
|
|
7
|
+
#[allow(unused_imports)]
|
|
8
|
+
pub(crate) use types::{
|
|
9
|
+
CommitGraphChangeHistoryEntry, CommitGraphChangeHistoryRequest, CommitGraphCommit,
|
|
10
|
+
CommitGraphEdge, CommitGraphReader, ReachableCommitGraphCommit,
|
|
11
|
+
};
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
use crate::commit_store::{Change, LocatedChange};
|
|
2
|
+
use crate::entity_identity::EntityIdentity;
|
|
3
|
+
use crate::LixError;
|
|
4
|
+
|
|
5
|
+
/// Parsed `lix_commit` entity from the changelog.
|
|
6
|
+
///
|
|
7
|
+
/// Commits are stored as ordinary canonical changes. The graph reader parses
|
|
8
|
+
/// their snapshot so traversal code can work with explicit parent ids and the
|
|
9
|
+
/// ordered canonical changes introduced relative to the first parent. A merge
|
|
10
|
+
/// commit may reference existing changes from another parent instead of owning
|
|
11
|
+
/// newly minted copies.
|
|
12
|
+
#[derive(Debug, Clone, PartialEq, Eq)]
|
|
13
|
+
pub(crate) struct CommitGraphCommit {
|
|
14
|
+
pub(crate) canonical_change: Change,
|
|
15
|
+
pub(crate) change: Change,
|
|
16
|
+
pub(crate) commit_id: String,
|
|
17
|
+
pub(crate) change_ids: Vec<String>,
|
|
18
|
+
pub(crate) author_account_ids: Vec<String>,
|
|
19
|
+
pub(crate) parent_commit_ids: Vec<String>,
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/// Commit reachable from a requested graph head.
|
|
23
|
+
#[derive(Debug, Clone, PartialEq, Eq)]
|
|
24
|
+
pub(crate) struct ReachableCommitGraphCommit {
|
|
25
|
+
pub(crate) commit: CommitGraphCommit,
|
|
26
|
+
pub(crate) depth: u32,
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/// Derived parent/child edge between two commit entities.
|
|
30
|
+
#[derive(Debug, Clone, PartialEq, Eq)]
|
|
31
|
+
pub(crate) struct CommitGraphEdge {
|
|
32
|
+
pub(crate) parent_commit_id: String,
|
|
33
|
+
pub(crate) child_commit_id: String,
|
|
34
|
+
pub(crate) parent_order: u32,
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/// Filter for canonical change history from a chosen traversal start commit.
|
|
38
|
+
#[derive(Debug, Clone, Default, PartialEq, Eq)]
|
|
39
|
+
pub(crate) struct CommitGraphChangeHistoryRequest {
|
|
40
|
+
pub(crate) entity_ids: Vec<EntityIdentity>,
|
|
41
|
+
pub(crate) schema_keys: Vec<String>,
|
|
42
|
+
pub(crate) file_ids: Vec<String>,
|
|
43
|
+
pub(crate) min_depth: Option<u32>,
|
|
44
|
+
pub(crate) max_depth: Option<u32>,
|
|
45
|
+
pub(crate) include_tombstones: bool,
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/// Canonical change observed while walking commit history from a start commit.
|
|
49
|
+
///
|
|
50
|
+
/// `start_commit_id` is the traversal anchor requested by the caller. It is not
|
|
51
|
+
/// necessarily a graph root or a version head.
|
|
52
|
+
#[derive(Debug, Clone, PartialEq, Eq)]
|
|
53
|
+
pub(crate) struct CommitGraphChangeHistoryEntry {
|
|
54
|
+
pub(crate) located_change: LocatedChange,
|
|
55
|
+
pub(crate) observed_commit_id: String,
|
|
56
|
+
pub(crate) start_commit_id: String,
|
|
57
|
+
pub(crate) depth: u32,
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/// Execution-scoped reader for commit graph facts.
|
|
61
|
+
///
|
|
62
|
+
/// SQL surfaces consume this trait so they depend on graph semantics, not on
|
|
63
|
+
/// changelog storage or traversal details.
|
|
64
|
+
#[allow(dead_code)]
|
|
65
|
+
#[async_trait::async_trait]
|
|
66
|
+
pub(crate) trait CommitGraphReader: Send + Sync {
|
|
67
|
+
#[allow(dead_code)]
|
|
68
|
+
async fn load_commit(&mut self, commit_id: &str)
|
|
69
|
+
-> Result<Option<CommitGraphCommit>, LixError>;
|
|
70
|
+
|
|
71
|
+
async fn all_commits(&mut self) -> Result<Vec<CommitGraphCommit>, LixError>;
|
|
72
|
+
|
|
73
|
+
async fn reachable_commits(
|
|
74
|
+
&mut self,
|
|
75
|
+
head_commit_id: &str,
|
|
76
|
+
) -> Result<Vec<ReachableCommitGraphCommit>, LixError>;
|
|
77
|
+
|
|
78
|
+
/// Returns the best common ancestors shared by two commit heads.
|
|
79
|
+
///
|
|
80
|
+
/// This is intentionally not called "lowest common ancestor": commit
|
|
81
|
+
/// history is a DAG, not a tree, and some histories have multiple equally
|
|
82
|
+
/// good common ancestors. Merge policy can require exactly one base later.
|
|
83
|
+
#[allow(dead_code)]
|
|
84
|
+
async fn best_common_ancestors(
|
|
85
|
+
&mut self,
|
|
86
|
+
left_commit_id: &str,
|
|
87
|
+
right_commit_id: &str,
|
|
88
|
+
) -> Result<Vec<CommitGraphCommit>, LixError>;
|
|
89
|
+
|
|
90
|
+
/// Resolves the single commit base to use for a three-way merge.
|
|
91
|
+
///
|
|
92
|
+
/// This is merge policy, not raw graph math: no common history and multiple
|
|
93
|
+
/// best common ancestors are both errors until merge has explicit support
|
|
94
|
+
/// for those cases.
|
|
95
|
+
#[allow(dead_code)]
|
|
96
|
+
async fn merge_base(
|
|
97
|
+
&mut self,
|
|
98
|
+
left_commit_id: &str,
|
|
99
|
+
right_commit_id: &str,
|
|
100
|
+
) -> Result<CommitGraphCommit, LixError>;
|
|
101
|
+
|
|
102
|
+
fn commit_edges(&self, commits: &[CommitGraphCommit]) -> Vec<CommitGraphEdge>;
|
|
103
|
+
|
|
104
|
+
async fn change_history_from_commit(
|
|
105
|
+
&mut self,
|
|
106
|
+
start_commit_id: &str,
|
|
107
|
+
request: &CommitGraphChangeHistoryRequest,
|
|
108
|
+
) -> Result<Vec<CommitGraphChangeHistoryEntry>, LixError>;
|
|
109
|
+
}
|