From 84a8454fa9f2d21f9cdcbfd23fe98e80c95050ee Mon Sep 17 00:00:00 2001 From: lix-2026 Date: Tue, 14 Apr 2026 13:22:29 +0800 Subject: [PATCH] =?UTF-8?q?0.6=20rust=E9=87=8D=E6=9E=8401?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .codex/hooks.json | 3 + .codex/hooks/omx/post-tool-use.mjs | 49 + .codex/hooks/omx/pre-tool-use.mjs | 37 + .codex/hooks/omx/session-start.mjs | 58 + .codex/hooks/omx/stop.mjs | 54 + .codex/hooks/omx/user-prompt-submit.mjs | 58 + .gitignore | 1 + .harness-active | 1 + DESIGN.md | 309 +++++ harness-init.sh | 27 + harness-progress.txt | 1 + harness-tasks.json | 12 + rust/Cargo.lock | 38 + rust/Cargo.toml | 18 + rust/crates/core-domain/Cargo.toml | 8 + rust/crates/core-domain/README.md | 6 + rust/crates/core-domain/src/audit.rs | 43 + rust/crates/core-domain/src/entities.rs | 289 ++++ rust/crates/core-domain/src/ids.rs | 27 + rust/crates/core-domain/src/lib.rs | 34 + rust/crates/core-domain/src/time.rs | 12 + rust/crates/core-domain/src/types.rs | 17 + rust/crates/core-protocol/Cargo.toml | 9 + rust/crates/core-protocol/README.md | 8 + rust/crates/core-protocol/src/command.rs | 101 ++ rust/crates/core-protocol/src/common.rs | 59 + rust/crates/core-protocol/src/governance.rs | 116 ++ rust/crates/core-protocol/src/lib.rs | 50 + rust/crates/core-protocol/src/query.rs | 36 + rust/crates/core-protocol/src/tool.rs | 13 + rust/crates/event-log/Cargo.toml | 9 + rust/crates/event-log/README.md | 8 + rust/crates/event-log/src/command_log.rs | 29 + rust/crates/event-log/src/domain_event.rs | 36 + rust/crates/event-log/src/lib.rs | 23 + rust/crates/event-log/src/rules.rs | 10 + rust/crates/index-fts/Cargo.toml | 10 + rust/crates/index-fts/README.md | 6 + rust/crates/index-fts/src/lib.rs | 355 +++++ rust/crates/storage-convex-bridge/Cargo.toml | 11 + rust/crates/storage-convex-bridge/README.md | 18 + .../storage-convex-bridge/src/context.rs | 18 + rust/crates/storage-convex-bridge/src/lib.rs | 266 ++++ .../storage-convex-bridge/src/mapping.rs | 93 ++ .../storage-convex-bridge/src/read_path.rs | 29 + .../crates/storage-convex-bridge/src/types.rs | 26 + .../storage-convex-bridge/src/validation.rs | 50 + .../storage-convex-bridge/src/write_path.rs | 131 ++ rust/target/.rustc_info.json | 1 + rust/target/CACHEDIR.TAG | 3 + rust/target/debug/.cargo-lock | 0 .../dep-lib-core_domain | Bin 0 -> 120 bytes .../invoked.timestamp | 1 + .../lib-core_domain | 1 + .../lib-core_domain.json | 1 + .../dep-test-lib-core_domain | Bin 0 -> 120 bytes .../invoked.timestamp | 1 + .../test-lib-core_domain | 1 + .../test-lib-core_domain.json | 1 + .../dep-lib-core_domain | Bin 0 -> 120 bytes .../invoked.timestamp | 1 + .../lib-core_domain | 1 + .../lib-core_domain.json | 1 + .../dep-test-lib-core_protocol | Bin 0 -> 127 bytes .../invoked.timestamp | 1 + .../test-lib-core_protocol | 1 + .../test-lib-core_protocol.json | 1 + .../dep-lib-core_protocol | Bin 0 -> 127 bytes .../invoked.timestamp | 1 + .../lib-core_protocol | 1 + .../lib-core_protocol.json | 1 + .../dep-lib-core_protocol | Bin 0 -> 127 bytes .../invoked.timestamp | 1 + .../lib-core_protocol | 1 + .../lib-core_protocol.json | 1 + .../dep-lib-event_log | Bin 0 -> 97 bytes .../invoked.timestamp | 1 + .../event-log-563618231cacaf7e/lib-event_log | 1 + .../lib-event_log.json | 1 + .../dep-lib-event_log | Bin 0 -> 97 bytes .../invoked.timestamp | 1 + .../event-log-d9b5c77d292421e8/lib-event_log | 1 + .../lib-event_log.json | 1 + .../dep-lib-index_fts | Bin 0 -> 30 bytes .../invoked.timestamp | 1 + .../index-fts-e444a40571811be1/lib-index_fts | 1 + .../lib-index_fts.json | 1 + .../dep-lib-storage_convex_bridge | Bin 0 -> 156 bytes .../invoked.timestamp | 1 + .../lib-storage_convex_bridge | 1 + .../lib-storage_convex_bridge.json | 1 + .../dep-test-lib-storage_convex_bridge | Bin 0 -> 156 bytes .../invoked.timestamp | 1 + .../test-lib-storage_convex_bridge | 1 + .../test-lib-storage_convex_bridge.json | 1 + .../dep-lib-storage_convex_bridge | Bin 0 -> 156 bytes .../invoked.timestamp | 1 + .../lib-storage_convex_bridge | 1 + .../lib-storage_convex_bridge.json | 1 + .../debug/deps/core_domain-40e6f74f7ef1a9aa.d | 10 + .../debug/deps/core_domain-bd799d0a25dcc494 | Bin 0 -> 6038832 bytes .../debug/deps/core_domain-bd799d0a25dcc494.d | 10 + .../debug/deps/core_domain-cdff95eec220868e.d | 12 + .../debug/deps/core_protocol-0fdc11ecf89ad5aa | Bin 0 -> 6129392 bytes .../deps/core_protocol-0fdc11ecf89ad5aa.d | 10 + .../deps/core_protocol-4592bf3d65d89282.d | 10 + .../deps/core_protocol-f5d7351438cd4f82.d | 12 + .../debug/deps/event_log-563618231cacaf7e.d | 8 + .../debug/deps/event_log-d9b5c77d292421e8.d | 10 + .../debug/deps/index_fts-e444a40571811be1.d | 5 + .../libcore_domain-40e6f74f7ef1a9aa.rmeta | Bin 0 -> 214563 bytes .../deps/libcore_domain-cdff95eec220868e.rlib | Bin 0 -> 370256 bytes .../libcore_domain-cdff95eec220868e.rmeta | Bin 0 -> 322087 bytes .../libcore_protocol-4592bf3d65d89282.rmeta | Bin 0 -> 109384 bytes .../libcore_protocol-f5d7351438cd4f82.rlib | Bin 0 -> 360374 bytes .../libcore_protocol-f5d7351438cd4f82.rmeta | Bin 0 -> 182234 bytes .../deps/libevent_log-563618231cacaf7e.rmeta | Bin 0 -> 25754 bytes .../deps/libevent_log-d9b5c77d292421e8.rlib | Bin 0 -> 46896 bytes .../deps/libevent_log-d9b5c77d292421e8.rmeta | Bin 0 -> 42866 bytes .../deps/libindex_fts-e444a40571811be1.rmeta | Bin 0 -> 29177 bytes ...torage_convex_bridge-45166d07753c36d7.rlib | Bin 0 -> 420000 bytes ...orage_convex_bridge-45166d07753c36d7.rmeta | Bin 0 -> 78084 bytes ...orage_convex_bridge-cd4527dde6c0c1c6.rmeta | Bin 0 -> 43114 bytes .../storage_convex_bridge-45166d07753c36d7.d | 13 + .../storage_convex_bridge-5bf1d06211b95150 | Bin 0 -> 6485608 bytes .../storage_convex_bridge-5bf1d06211b95150.d | 11 + .../storage_convex_bridge-cd4527dde6c0c1c6.d | 11 + .../dep-graph.bin | Bin 0 -> 1987757 bytes .../query-cache.bin | Bin 0 -> 765136 bytes .../work-products.bin | Bin 0 -> 50 bytes .../s-hhki6hdkwu-18wwgcv.lock | 0 .../1lutfx2bvefapz3ropcehvc47.o | Bin 0 -> 15256 bytes .../24gh56g455shba13upd4hddtt.o | Bin 0 -> 10008 bytes .../70r1advwk10k72nazgdujtoq8.o | Bin 0 -> 4984 bytes .../a12sgt0fh7untbnb9zowipuba.o | Bin 0 -> 12832 bytes .../dep-graph.bin | Bin 0 -> 2151874 bytes .../eo8yq02obvjr00oktl076hpvx.o | Bin 0 -> 2712 bytes .../query-cache.bin | Bin 0 -> 1073996 bytes .../work-products.bin | Bin 0 -> 430 bytes .../s-hhksnqjffb-0zhaac8.lock | 0 .../0jrwn5al49neljnnvt6eeoitq.o | Bin 0 -> 5208 bytes .../1ev7swngcriasku9kh1xqvxl7.o | Bin 0 -> 7160 bytes .../1one962q1mg7gtwgz3c2qrojj.o | Bin 0 -> 14448 bytes .../1ta3552qo7k6kwslwki6wr7um.o | Bin 0 -> 12632 bytes .../26a574cd9lt5gbge0hxfmdtxd.o | Bin 0 -> 3848 bytes .../2oh7przv2zfqkxtjgzd3whsh1.o | Bin 0 -> 12096 bytes .../47b9simkgic3vj9x63op1e1p6.o | Bin 0 -> 4952 bytes .../53efemgv2s72pml9l0iy327b8.o | Bin 0 -> 10416 bytes .../5ccc9lid867rdczhq5fszm0u6.o | Bin 0 -> 8984 bytes .../5vi3lzhm125076f2r9wtr91lm.o | Bin 0 -> 15432 bytes .../6nt92fxt2as5rb47txmv2hod5.o | Bin 0 -> 7192 bytes .../6nywfsem4u1ojuotmerxky74c.o | Bin 0 -> 11064 bytes .../6z80gnw1o2s55gnd9tof0uzyq.o | Bin 0 -> 5688 bytes .../7373w20n0yue8whwqjaez1yyv.o | Bin 0 -> 5416 bytes .../7l4kx50474dwbm6pyf1fqucug.o | Bin 0 -> 8912 bytes .../7omiu0ck3sqkvllam1jnmew2p.o | Bin 0 -> 7208 bytes .../7p0quek6yxerybr3i8jg48nhq.o | Bin 0 -> 3728 bytes .../8hqdt25i0whsidzbp7sucj5p3.o | Bin 0 -> 7304 bytes .../8m36uzhzuuc5jeb58dpyl4x3b.o | Bin 0 -> 18936 bytes .../al8hz0j4n0t34wm8w5908jp96.o | Bin 0 -> 3552 bytes .../aras4y6sncq0ipbz24y4vh3wi.o | Bin 0 -> 5160 bytes .../bae4zrq0hpnyspnpkniwjvhhx.o | Bin 0 -> 13360 bytes .../bdxvnkwo7tb8ed1xdx3qjussf.o | Bin 0 -> 5088 bytes .../bvaz6mx9ahydp1ywzwoyum17m.o | Bin 0 -> 2888 bytes .../c3cwpxzw4vy258jijkljvwhb6.o | Bin 0 -> 18552 bytes .../dep-graph.bin | Bin 0 -> 2266411 bytes .../eawwkapxxx85sj8wdc8vwq20m.o | Bin 0 -> 3264 bytes .../query-cache.bin | Bin 0 -> 840777 bytes .../work-products.bin | Bin 0 -> 2026 bytes .../s-hhksnqjfea-0uncem5.lock | 0 .../0fcot6m5tqusduxfvyt4k1vm7.o | Bin 0 -> 19800 bytes .../0h0l87vv5rqa6opj6fa6qocqf.o | Bin 0 -> 15256 bytes .../1qwuthztbwxa2mzndqytvoc5h.o | Bin 0 -> 5600 bytes .../26h4q7f15x11ct4kqh6d9725k.o | Bin 0 -> 3880 bytes .../2zvaeouivcicgorrwzp3u5gxm.o | Bin 0 -> 10016 bytes .../3ez07f1d9coodxw021fq2jqq0.o | Bin 0 -> 4424 bytes .../3hz2coioti6o6kjtssqtbfs55.o | Bin 0 -> 5904 bytes .../42wcvy1tjpo72yfvu18voirjh.o | Bin 0 -> 13352 bytes .../4hc4dd6xv0i2itvgywx1lahl8.o | Bin 0 -> 9896 bytes .../4itr5en1t999jjm3niw6ym315.o | Bin 0 -> 6320 bytes .../5n3qij2c5c65q1jwvpv712f86.o | Bin 0 -> 16336 bytes .../5vfvnjfqatgj9tcy20466egul.o | Bin 0 -> 3360 bytes .../7sxist1itnqato11mzu8cb9s7.o | Bin 0 -> 2568 bytes .../90p39xzijkgh4ywq1t9ijveu1.o | Bin 0 -> 4536 bytes .../9y10rckkmegt70c4fic7d9pn0.o | Bin 0 -> 6040 bytes .../agt77gq173zfkllhyqtt7g778.o | Bin 0 -> 6456 bytes .../arqabmwpzh0w95srn7kwf39c3.o | Bin 0 -> 19704 bytes .../br9og3o8t217kpyg0k4twauic.o | Bin 0 -> 6760 bytes .../cu53u8qm0wjh7s5p10jdqv6k9.o | Bin 0 -> 3440 bytes .../d499c6yw1qx52w2i1ejat34b9.o | Bin 0 -> 3216 bytes .../dep-graph.bin | Bin 0 -> 1657167 bytes .../e0ga13reow5buorr3ciykquxg.o | Bin 0 -> 4376 bytes .../query-cache.bin | Bin 0 -> 758900 bytes .../work-products.bin | Bin 0 -> 1646 bytes .../s-hhl153wn9x-033msj3.lock | 0 .../dep-graph.bin | Bin 0 -> 1381041 bytes .../query-cache.bin | Bin 0 -> 536903 bytes .../work-products.bin | Bin 0 -> 50 bytes .../s-hhl4golkrm-0s09j4a.lock | 0 .../025xragbai5dta5plerat93f3.o | Bin 0 -> 4720 bytes .../0rv6ak5p0eb1rck5ctf2oaclr.o | Bin 0 -> 16520 bytes .../0tmesi7kvcnj1zuun9t7x7d20.o | Bin 0 -> 6776 bytes .../1gxilbg5v33c3sp3ixvyyyiw4.o | Bin 0 -> 6080 bytes .../1ku29ivzmdo8smejib2buet6y.o | Bin 0 -> 5888 bytes .../1zlwgswl6mhaz1sc9tv7h6fvv.o | Bin 0 -> 51472 bytes .../2esnpumhts8ffozf9l7u1cptl.o | Bin 0 -> 18936 bytes .../2s1nr1urf1g6ngfu62hqx69z6.o | Bin 0 -> 8984 bytes .../33z9d6jfu3y7tans15drunu25.o | Bin 0 -> 5208 bytes .../3pc64ndxqojunfw70q4txk2ki.o | Bin 0 -> 17992 bytes .../4ml0g2qovdtyvw2yps2s2dm6r.o | Bin 0 -> 24960 bytes .../54bzp638hogbizuf07vg0rggr.o | Bin 0 -> 7936 bytes .../5g3bohf2ogtx1my7ipgm599yn.o | Bin 0 -> 19824 bytes .../5zqjxe9k5bged35r763nbfgpn.o | Bin 0 -> 6216 bytes .../63jauxjb83pcyu8jjqh4ghypm.o | Bin 0 -> 8456 bytes .../6wvm03xo5lvrennz7ybu2s283.o | Bin 0 -> 20072 bytes .../72ivnb41hqr5vquk5s9h2x4gp.o | Bin 0 -> 16104 bytes .../7akx8q2pqv304u4mdxpaopyln.o | Bin 0 -> 13528 bytes .../7wejlbsn3tz5io3mgwqdz4ovv.o | Bin 0 -> 4952 bytes .../82yozy4k7feq8bbi1vseniel7.o | Bin 0 -> 13008 bytes .../8o0c7rwox44axyop0raop2r4s.o | Bin 0 -> 19960 bytes .../8uu1j8tbu7j6ul9o1smyr2upp.o | Bin 0 -> 4928 bytes .../8wyw3p7t7bdrbyidven5kh4gq.o | Bin 0 -> 6936 bytes .../9im6cch2fucy3nppr4sfu093g.o | Bin 0 -> 12640 bytes .../9nwdk986c1d0zw8fzc2bfnye0.o | Bin 0 -> 3856 bytes .../9o3ow6h6jvu4tkkzh5j9e61gj.o | Bin 0 -> 4544 bytes .../a72er3wilmofw3v5fnsa7kp65.o | Bin 0 -> 17056 bytes .../aenvo7kqvtl9qaeaji8nij390.o | Bin 0 -> 14448 bytes .../agp74hvmm9anemzdgu5c4eie8.o | Bin 0 -> 3272 bytes .../aj47ukddv95bjbzrn5bvyz1h9.o | Bin 0 -> 8328 bytes .../c2ujcnpuynqloq2bbjb37lr2p.o | Bin 0 -> 15432 bytes .../ccvj0ia30jepvnekodna0ru87.o | Bin 0 -> 19072 bytes .../ci2li1eqs9b4v5852pus33d8h.o | Bin 0 -> 7192 bytes .../cmr9rt9pnm6fruxiyp44odv32.o | Bin 0 -> 12096 bytes .../d28gnpgg7bbhmgzfk1osjhe0s.o | Bin 0 -> 10072 bytes .../d58h402xos9hk3rx9gcqmyb1p.o | Bin 0 -> 7304 bytes .../dcq0fbcz3ncygblpjt0unw25h.o | Bin 0 -> 4056 bytes .../dep-graph.bin | Bin 0 -> 1939088 bytes .../dq6tl2tw5dy0s7ihejcdegb20.o | Bin 0 -> 3608 bytes .../euksz75gktc7xl3ewasiq9j9f.o | Bin 0 -> 4600 bytes .../extlmbh0w6fy52oq0oajtjmxs.o | Bin 0 -> 7208 bytes .../f56o08f5e10tpbpgl6c5wa84z.o | Bin 0 -> 6480 bytes .../query-cache.bin | Bin 0 -> 708537 bytes .../work-products.bin | Bin 0 -> 3166 bytes .../s-hhl153wn9x-0y8ia8v.lock | 0 .../dep-graph.bin | Bin 0 -> 671683 bytes .../query-cache.bin | Bin 0 -> 359207 bytes .../work-products.bin | Bin 0 -> 50 bytes .../s-hhki6hfrns-12mb6z3.lock | 0 .../4wb7w1lb93fxzltgdb710gj9g.o | Bin 0 -> 3072 bytes .../dep-graph.bin | Bin 0 -> 689267 bytes .../query-cache.bin | Bin 0 -> 409102 bytes .../work-products.bin | Bin 0 -> 126 bytes .../s-hhl0yawabb-0kc65bt.lock | 0 .../dep-graph.bin | Bin 0 -> 837193 bytes .../query-cache.bin | Bin 0 -> 382159 bytes .../work-products.bin | Bin 0 -> 50 bytes .../s-hhki6hgizw-0rnusq8.lock | 0 .../039j9bjwet2b6eymtajpqspae.o | Bin 0 -> 5600 bytes .../09z18wf0eyrpu2i3blwanmart.o | Bin 0 -> 5728 bytes .../18t7x0jcyuirze7njzv4mzs8b.o | Bin 0 -> 6056 bytes .../19qzxkk4lqr8r4db0i5h76fq3.o | Bin 0 -> 7216 bytes .../1a5rfuomcoppx9an8qau0pcd8.o | Bin 0 -> 26424 bytes .../1punlkaoos9vdtgnzpiag9p5b.o | Bin 0 -> 4808 bytes .../1twsrtejdqa95ns8dc447ugmk.o | Bin 0 -> 12744 bytes .../29moyoh19l3ocdafgk3ycddo3.o | Bin 0 -> 14528 bytes .../2ix173c3aak9lelyqkdtkxbpy.o | Bin 0 -> 12456 bytes .../2kzhqkavn8dsswy9ysyh5oewg.o | Bin 0 -> 31128 bytes .../2ok1ddc65yrtb03f26wg644h6.o | Bin 0 -> 9760 bytes .../2olyvmyat3pwi9ezsjekvadbk.o | Bin 0 -> 7200 bytes .../3gp13b83hl3eq0mez5fw1yknx.o | Bin 0 -> 4736 bytes .../3s008716ul3kduxewbnyffx3e.o | Bin 0 -> 32144 bytes .../3s8wvzmt0m4a3udn49ellx6hn.o | Bin 0 -> 3528 bytes .../3tjo4oihrykjwnauqdlfuqglb.o | Bin 0 -> 13488 bytes .../4bj7cpqh1cnofa7sj1ipeiy90.o | Bin 0 -> 5720 bytes .../4iph6l9ely0uq9nzie174r6du.o | Bin 0 -> 3736 bytes .../4pp1xixqvei00miy5zqcigbuj.o | Bin 0 -> 3952 bytes .../4pr75hco5abfezynf0nv3la5w.o | Bin 0 -> 55448 bytes .../4qlgdkvlq20ke86q79mlt7xmh.o | Bin 0 -> 14992 bytes .../52tfz4cpsm165ixl5dkktvnuf.o | Bin 0 -> 4032 bytes .../5hzaxnqj2zanbrmzl25oylrmz.o | Bin 0 -> 11368 bytes .../5kpf7s2y33g4s8o1o18itf65x.o | Bin 0 -> 7408 bytes .../5m1blfctvyi38gs1jm9nkfw2k.o | Bin 0 -> 140200 bytes .../5pgzxyh4z8vlz8xjusn0sxvpg.o | Bin 0 -> 115768 bytes .../5tbpedyrevjzmxxv3yp1wru0n.o | Bin 0 -> 6152 bytes .../5xjd1bln9i2go1vfr8pmchqg2.o | Bin 0 -> 4272 bytes .../64blkpyf6fbpvrjoi8shlhr5r.o | Bin 0 -> 12648 bytes .../6bif9jyns5ze4iccrdxmuo9f8.o | Bin 0 -> 9384 bytes .../6ktfz8h61eyhwlbyrq9vhjrfv.o | Bin 0 -> 77824 bytes .../7fm0aq0x94wfa5o9njt72gl50.o | Bin 0 -> 28760 bytes .../7gidib5qjm86di9txvj4jm1m6.o | Bin 0 -> 27952 bytes .../7hz9nbaz1erjw5uldpa24t64v.o | Bin 0 -> 4696 bytes .../7pyps766k3raaitrcvplkpvg2.o | Bin 0 -> 11944 bytes .../7s0j7hjcz3n078g2wf0f5pexn.o | Bin 0 -> 5712 bytes .../8am3hphsgf5dc4hmqvntfa67t.o | Bin 0 -> 18952 bytes .../97t0fgh74devoeh5tqag2smlo.o | Bin 0 -> 3792 bytes .../987ebqkxc6dhhlw4b8i50tdud.o | Bin 0 -> 9216 bytes .../995xaow4io9qiti4glq351ild.o | Bin 0 -> 57432 bytes .../9iguuvu9qpcujdydbu6dbf2dt.o | Bin 0 -> 29840 bytes .../9knj76z9dhr1dghulv8s37zdm.o | Bin 0 -> 8992 bytes .../9qpfr6a0qymzd7er1rmv6idt3.o | Bin 0 -> 3168 bytes .../9x6qfllmyaoix2ualofwebx9k.o | Bin 0 -> 28656 bytes .../a6agzhbcy0uzmi6b1l2y5d7b5.o | Bin 0 -> 16240 bytes .../a8arkzzebc532vyxmwcj4vsie.o | Bin 0 -> 13736 bytes .../ab256b7s9nvxsticqbtpvuw13.o | Bin 0 -> 16384 bytes .../ad8h67qmeqpgc4zrpzm3mgwm5.o | Bin 0 -> 3280 bytes .../am50fpawpork44ywflixup381.o | Bin 0 -> 28896 bytes .../anzgznle8f828ntrm2jmo9nm1.o | Bin 0 -> 12104 bytes .../aoir5cuzz7ekeexx77huwsfsk.o | Bin 0 -> 8176 bytes .../b2yi7otxp00ywavsqhzw0ek41.o | Bin 0 -> 14456 bytes .../b7b20y8gyaasph29qem26oud9.o | Bin 0 -> 71328 bytes .../b7uf5z0hef7k763bx1fb8ytiz.o | Bin 0 -> 9896 bytes .../bi8dl23a9vjgxuj59jcqvts0c.o | Bin 0 -> 3568 bytes .../bi9zo6ryg22o0w44ogdww1ihr.o | Bin 0 -> 10552 bytes .../btiz9alr7q70vo1q39ql04hzo.o | Bin 0 -> 6088 bytes .../crxbx0yn9r269lktyptq1varl.o | Bin 0 -> 33568 bytes .../cvwb5wzcnwqdblvd0s8skksi2.o | Bin 0 -> 12192 bytes .../d6xiwtcawnrbv7j3a1lbu7rlp.o | Bin 0 -> 15448 bytes .../dbxx2vq3kgw3wte5uh4jozu4k.o | Bin 0 -> 7472 bytes .../dep-graph.bin | Bin 0 -> 1951656 bytes .../deurc8ur3qb1d9hi62x2u2vvj.o | Bin 0 -> 3864 bytes .../djj23swh60530h68mr2ep8vkl.o | Bin 0 -> 12328 bytes .../dou4yjv5brytpj6bdbb9os2b6.o | Bin 0 -> 7312 bytes .../dw9ri8rnswtzwwiwga3dznkbn.o | Bin 0 -> 10048 bytes .../ej5gdaf6m3mru7zk16q0uppsi.o | Bin 0 -> 5216 bytes .../query-cache.bin | Bin 0 -> 868235 bytes .../work-products.bin | Bin 0 -> 5066 bytes .../s-hhl153yx3x-013wyvi.lock | 0 .../dep-graph.bin | Bin 0 -> 904871 bytes .../query-cache.bin | Bin 0 -> 419056 bytes .../work-products.bin | Bin 0 -> 50 bytes .../s-hhl4gon5ba-0dc3ld2.lock | 0 .../13w6ids9kwxyowlyi4cv0fts9.o | Bin 0 -> 27736 bytes .../1wi9cpl761ip91vawypucpf06.o | Bin 0 -> 26240 bytes .../1wwxal1thld4sm7luanhk8iih.o | Bin 0 -> 15272 bytes .../2d4krd4j74ep5srzjgu3uwdpn.o | Bin 0 -> 13560 bytes .../2dab0btbq9l6wzm8lmgylanri.o | Bin 0 -> 6344 bytes .../2occogj3f8scaacw4lyc10rh0.o | Bin 0 -> 5248 bytes .../4ynu8gy2229oeipq7q1v16823.o | Bin 0 -> 5040 bytes .../68c5jwcfffz5w8mtw6x36qzo6.o | Bin 0 -> 3384 bytes .../6ubsoazkh8fi00pet05s247ia.o | Bin 0 -> 31016 bytes .../74bd3skqlvvusz6iqu54ue0eb.o | Bin 0 -> 13704 bytes .../777tbtpnrhkqsp3gffbl227pd.o | Bin 0 -> 12152 bytes .../7er606vm52wf6hjk0r41dpb7b.o | Bin 0 -> 4624 bytes .../7v99lrqhgj6r18np1jl767sfe.o | Bin 0 -> 11928 bytes .../8jioojqfumfqfwe5fuybi65am.o | Bin 0 -> 9584 bytes .../95j62296dpolhx29ub5fd9cgs.o | Bin 0 -> 7136 bytes .../99nyl2dazho939h7y2otxypjp.o | Bin 0 -> 3608 bytes .../9pn6sob3u1vz95kip7vs9v7hd.o | Bin 0 -> 8816 bytes .../a56snj3ckk44x511avopmoh4z.o | Bin 0 -> 18776 bytes .../a5zrndxctfmrsg2lykrjqhizp.o | Bin 0 -> 5552 bytes .../affeyiiumor5gkolrd5pzchh7.o | Bin 0 -> 39312 bytes .../aqw9z4oz8uhv0k3wydlqelnrc.o | Bin 0 -> 10376 bytes .../c2te5zdmxch82eg0wmyr3e9lu.o | Bin 0 -> 12464 bytes .../cf1561iteoxzxfqzoazm2kth7.o | Bin 0 -> 5544 bytes .../dep-graph.bin | Bin 0 -> 1267035 bytes .../dzlcfe90f8jr23dlz2xvl4omy.o | Bin 0 -> 14584 bytes .../edoai52vuhbbfbim4qqlo442j.o | Bin 0 -> 7040 bytes .../eqgd91hpn5sfsyci6vbn568p7.o | Bin 0 -> 12920 bytes .../query-cache.bin | Bin 0 -> 630956 bytes .../work-products.bin | Bin 0 -> 2026 bytes .../s-hhl153y5f4-1mb28k0.lock | 0 wolai-frontend/convex/_generated/api.d.ts | 6 + wolai-frontend/convex/_utils/auth.ts | 25 + .../convex/_utils/documentRecord.ts | 73 + wolai-frontend/convex/audit.ts | 63 + wolai-frontend/convex/bridgeLogs.ts | 173 +++ wolai-frontend/convex/comments.ts | 48 +- wolai-frontend/convex/documentGroupShares.ts | 17 +- wolai-frontend/convex/documentShares.ts | 22 +- wolai-frontend/convex/documentStars.ts | 25 +- wolai-frontend/convex/documents.ts | 107 +- wolai-frontend/convex/mediaAssets.ts | 6 +- wolai-frontend/convex/mindmaps.ts | 23 +- wolai-frontend/convex/references.ts | 3 +- wolai-frontend/convex/schema.ts | 48 + wolai-frontend/convex/workspaces.ts | 10 +- .../src/app/(app)/documents/[id]/page.tsx | 69 +- wolai-frontend/src/app/(app)/layout.tsx | 227 +--- .../src/app/api/blocks/patch/route.ts | 102 +- .../src/app/api/bridge/request/route.ts | 27 + .../src/app/api/bridge/trace/route.ts | 27 + .../src/app/api/documents/content/route.ts | 59 +- .../src/app/api/documents/meta/route.ts | 57 + .../src/app/api/documents/options/route.ts | 77 +- .../src/app/api/documents/save/route.ts | 55 +- .../src/app/api/documents/stats/route.ts | 67 +- .../src/app/api/documents/title/route.ts | 57 +- wolai-frontend/src/app/api/sidebar/route.ts | 305 +---- .../components/editor/blocknote-editor.tsx | 1188 ++++++++--------- .../components/editor/document-content.tsx | 21 +- .../src/components/sidebar/sidebar.tsx | 6 +- .../src/hooks/use-convex-sidebar-data.ts | 138 +- .../src/lib/documents/bridge-log.ts | 73 + .../src/lib/documents/bridge-server.ts | 81 ++ .../src/lib/documents/bridge.test.ts | 215 +++ wolai-frontend/src/lib/documents/bridge.ts | 345 +++++ .../src/lib/documents/document-record.test.ts | 178 +++ .../lib/documents/metadata-command-adapter.ts | 120 ++ wolai-frontend/src/lib/server/sidebar-data.ts | 94 ++ wolai-frontend/src/lib/sidebar-data.test.ts | 143 ++ wolai-frontend/src/lib/sidebar-data.ts | 189 +++ 401 files changed, 5841 insertions(+), 1512 deletions(-) create mode 100644 .codex/hooks.json create mode 100644 .codex/hooks/omx/post-tool-use.mjs create mode 100644 .codex/hooks/omx/pre-tool-use.mjs create mode 100644 .codex/hooks/omx/session-start.mjs create mode 100644 .codex/hooks/omx/stop.mjs create mode 100644 .codex/hooks/omx/user-prompt-submit.mjs create mode 100644 .harness-active create mode 100644 DESIGN.md create mode 100644 harness-init.sh create mode 100644 harness-progress.txt create mode 100644 harness-tasks.json create mode 100644 rust/Cargo.lock create mode 100644 rust/Cargo.toml create mode 100644 rust/crates/core-domain/Cargo.toml create mode 100644 rust/crates/core-domain/README.md create mode 100644 rust/crates/core-domain/src/audit.rs create mode 100644 rust/crates/core-domain/src/entities.rs create mode 100644 rust/crates/core-domain/src/ids.rs create mode 100644 rust/crates/core-domain/src/lib.rs create mode 100644 rust/crates/core-domain/src/time.rs create mode 100644 rust/crates/core-domain/src/types.rs create mode 100644 rust/crates/core-protocol/Cargo.toml create mode 100644 rust/crates/core-protocol/README.md create mode 100644 rust/crates/core-protocol/src/command.rs create mode 100644 rust/crates/core-protocol/src/common.rs create mode 100644 rust/crates/core-protocol/src/governance.rs create mode 100644 rust/crates/core-protocol/src/lib.rs create mode 100644 rust/crates/core-protocol/src/query.rs create mode 100644 rust/crates/core-protocol/src/tool.rs create mode 100644 rust/crates/event-log/Cargo.toml create mode 100644 rust/crates/event-log/README.md create mode 100644 rust/crates/event-log/src/command_log.rs create mode 100644 rust/crates/event-log/src/domain_event.rs create mode 100644 rust/crates/event-log/src/lib.rs create mode 100644 rust/crates/event-log/src/rules.rs create mode 100644 rust/crates/index-fts/Cargo.toml create mode 100644 rust/crates/index-fts/README.md create mode 100644 rust/crates/index-fts/src/lib.rs create mode 100644 rust/crates/storage-convex-bridge/Cargo.toml create mode 100644 rust/crates/storage-convex-bridge/README.md create mode 100644 rust/crates/storage-convex-bridge/src/context.rs create mode 100644 rust/crates/storage-convex-bridge/src/lib.rs create mode 100644 rust/crates/storage-convex-bridge/src/mapping.rs create mode 100644 rust/crates/storage-convex-bridge/src/read_path.rs create mode 100644 rust/crates/storage-convex-bridge/src/types.rs create mode 100644 rust/crates/storage-convex-bridge/src/validation.rs create mode 100644 rust/crates/storage-convex-bridge/src/write_path.rs create mode 100644 rust/target/.rustc_info.json create mode 100644 rust/target/CACHEDIR.TAG create mode 100644 rust/target/debug/.cargo-lock create mode 100644 rust/target/debug/.fingerprint/core-domain-40e6f74f7ef1a9aa/dep-lib-core_domain create mode 100644 rust/target/debug/.fingerprint/core-domain-40e6f74f7ef1a9aa/invoked.timestamp create mode 100644 rust/target/debug/.fingerprint/core-domain-40e6f74f7ef1a9aa/lib-core_domain create mode 100644 rust/target/debug/.fingerprint/core-domain-40e6f74f7ef1a9aa/lib-core_domain.json create mode 100644 rust/target/debug/.fingerprint/core-domain-bd799d0a25dcc494/dep-test-lib-core_domain create mode 100644 rust/target/debug/.fingerprint/core-domain-bd799d0a25dcc494/invoked.timestamp create mode 100644 rust/target/debug/.fingerprint/core-domain-bd799d0a25dcc494/test-lib-core_domain create mode 100644 rust/target/debug/.fingerprint/core-domain-bd799d0a25dcc494/test-lib-core_domain.json create mode 100644 rust/target/debug/.fingerprint/core-domain-cdff95eec220868e/dep-lib-core_domain create mode 100644 rust/target/debug/.fingerprint/core-domain-cdff95eec220868e/invoked.timestamp create mode 100644 rust/target/debug/.fingerprint/core-domain-cdff95eec220868e/lib-core_domain create mode 100644 rust/target/debug/.fingerprint/core-domain-cdff95eec220868e/lib-core_domain.json create mode 100644 rust/target/debug/.fingerprint/core-protocol-0fdc11ecf89ad5aa/dep-test-lib-core_protocol create mode 100644 rust/target/debug/.fingerprint/core-protocol-0fdc11ecf89ad5aa/invoked.timestamp create mode 100644 rust/target/debug/.fingerprint/core-protocol-0fdc11ecf89ad5aa/test-lib-core_protocol create mode 100644 rust/target/debug/.fingerprint/core-protocol-0fdc11ecf89ad5aa/test-lib-core_protocol.json create mode 100644 rust/target/debug/.fingerprint/core-protocol-4592bf3d65d89282/dep-lib-core_protocol create mode 100644 rust/target/debug/.fingerprint/core-protocol-4592bf3d65d89282/invoked.timestamp create mode 100644 rust/target/debug/.fingerprint/core-protocol-4592bf3d65d89282/lib-core_protocol create mode 100644 rust/target/debug/.fingerprint/core-protocol-4592bf3d65d89282/lib-core_protocol.json create mode 100644 rust/target/debug/.fingerprint/core-protocol-f5d7351438cd4f82/dep-lib-core_protocol create mode 100644 rust/target/debug/.fingerprint/core-protocol-f5d7351438cd4f82/invoked.timestamp create mode 100644 rust/target/debug/.fingerprint/core-protocol-f5d7351438cd4f82/lib-core_protocol create mode 100644 rust/target/debug/.fingerprint/core-protocol-f5d7351438cd4f82/lib-core_protocol.json create mode 100644 rust/target/debug/.fingerprint/event-log-563618231cacaf7e/dep-lib-event_log create mode 100644 rust/target/debug/.fingerprint/event-log-563618231cacaf7e/invoked.timestamp create mode 100644 rust/target/debug/.fingerprint/event-log-563618231cacaf7e/lib-event_log create mode 100644 rust/target/debug/.fingerprint/event-log-563618231cacaf7e/lib-event_log.json create mode 100644 rust/target/debug/.fingerprint/event-log-d9b5c77d292421e8/dep-lib-event_log create mode 100644 rust/target/debug/.fingerprint/event-log-d9b5c77d292421e8/invoked.timestamp create mode 100644 rust/target/debug/.fingerprint/event-log-d9b5c77d292421e8/lib-event_log create mode 100644 rust/target/debug/.fingerprint/event-log-d9b5c77d292421e8/lib-event_log.json create mode 100644 rust/target/debug/.fingerprint/index-fts-e444a40571811be1/dep-lib-index_fts create mode 100644 rust/target/debug/.fingerprint/index-fts-e444a40571811be1/invoked.timestamp create mode 100644 rust/target/debug/.fingerprint/index-fts-e444a40571811be1/lib-index_fts create mode 100644 rust/target/debug/.fingerprint/index-fts-e444a40571811be1/lib-index_fts.json create mode 100644 rust/target/debug/.fingerprint/storage-convex-bridge-45166d07753c36d7/dep-lib-storage_convex_bridge create mode 100644 rust/target/debug/.fingerprint/storage-convex-bridge-45166d07753c36d7/invoked.timestamp create mode 100644 rust/target/debug/.fingerprint/storage-convex-bridge-45166d07753c36d7/lib-storage_convex_bridge create mode 100644 rust/target/debug/.fingerprint/storage-convex-bridge-45166d07753c36d7/lib-storage_convex_bridge.json create mode 100644 rust/target/debug/.fingerprint/storage-convex-bridge-5bf1d06211b95150/dep-test-lib-storage_convex_bridge create mode 100644 rust/target/debug/.fingerprint/storage-convex-bridge-5bf1d06211b95150/invoked.timestamp create mode 100644 rust/target/debug/.fingerprint/storage-convex-bridge-5bf1d06211b95150/test-lib-storage_convex_bridge create mode 100644 rust/target/debug/.fingerprint/storage-convex-bridge-5bf1d06211b95150/test-lib-storage_convex_bridge.json create mode 100644 rust/target/debug/.fingerprint/storage-convex-bridge-cd4527dde6c0c1c6/dep-lib-storage_convex_bridge create mode 100644 rust/target/debug/.fingerprint/storage-convex-bridge-cd4527dde6c0c1c6/invoked.timestamp create mode 100644 rust/target/debug/.fingerprint/storage-convex-bridge-cd4527dde6c0c1c6/lib-storage_convex_bridge create mode 100644 rust/target/debug/.fingerprint/storage-convex-bridge-cd4527dde6c0c1c6/lib-storage_convex_bridge.json create mode 100644 rust/target/debug/deps/core_domain-40e6f74f7ef1a9aa.d create mode 100644 rust/target/debug/deps/core_domain-bd799d0a25dcc494 create mode 100644 rust/target/debug/deps/core_domain-bd799d0a25dcc494.d create mode 100644 rust/target/debug/deps/core_domain-cdff95eec220868e.d create mode 100644 rust/target/debug/deps/core_protocol-0fdc11ecf89ad5aa create mode 100644 rust/target/debug/deps/core_protocol-0fdc11ecf89ad5aa.d create mode 100644 rust/target/debug/deps/core_protocol-4592bf3d65d89282.d create mode 100644 rust/target/debug/deps/core_protocol-f5d7351438cd4f82.d create mode 100644 rust/target/debug/deps/event_log-563618231cacaf7e.d create mode 100644 rust/target/debug/deps/event_log-d9b5c77d292421e8.d create mode 100644 rust/target/debug/deps/index_fts-e444a40571811be1.d create mode 100644 rust/target/debug/deps/libcore_domain-40e6f74f7ef1a9aa.rmeta create mode 100644 rust/target/debug/deps/libcore_domain-cdff95eec220868e.rlib create mode 100644 rust/target/debug/deps/libcore_domain-cdff95eec220868e.rmeta create mode 100644 rust/target/debug/deps/libcore_protocol-4592bf3d65d89282.rmeta create mode 100644 rust/target/debug/deps/libcore_protocol-f5d7351438cd4f82.rlib create mode 100644 rust/target/debug/deps/libcore_protocol-f5d7351438cd4f82.rmeta create mode 100644 rust/target/debug/deps/libevent_log-563618231cacaf7e.rmeta create mode 100644 rust/target/debug/deps/libevent_log-d9b5c77d292421e8.rlib create mode 100644 rust/target/debug/deps/libevent_log-d9b5c77d292421e8.rmeta create mode 100644 rust/target/debug/deps/libindex_fts-e444a40571811be1.rmeta create mode 100644 rust/target/debug/deps/libstorage_convex_bridge-45166d07753c36d7.rlib create mode 100644 rust/target/debug/deps/libstorage_convex_bridge-45166d07753c36d7.rmeta create mode 100644 rust/target/debug/deps/libstorage_convex_bridge-cd4527dde6c0c1c6.rmeta create mode 100644 rust/target/debug/deps/storage_convex_bridge-45166d07753c36d7.d create mode 100644 rust/target/debug/deps/storage_convex_bridge-5bf1d06211b95150 create mode 100644 rust/target/debug/deps/storage_convex_bridge-5bf1d06211b95150.d create mode 100644 rust/target/debug/deps/storage_convex_bridge-cd4527dde6c0c1c6.d create mode 100644 rust/target/debug/incremental/core_domain-1w4uhq086wliv/s-hhki6hdkwu-18wwgcv-3kzezd4hd0mk2f4o1ylduzngb/dep-graph.bin create mode 100644 rust/target/debug/incremental/core_domain-1w4uhq086wliv/s-hhki6hdkwu-18wwgcv-3kzezd4hd0mk2f4o1ylduzngb/query-cache.bin create mode 100644 rust/target/debug/incremental/core_domain-1w4uhq086wliv/s-hhki6hdkwu-18wwgcv-3kzezd4hd0mk2f4o1ylduzngb/work-products.bin create mode 100644 rust/target/debug/incremental/core_domain-1w4uhq086wliv/s-hhki6hdkwu-18wwgcv.lock create mode 100644 rust/target/debug/incremental/core_domain-2gho5383shz8t/s-hhksnqjffb-0zhaac8-b10006pd3vyso6ocq4s5rkv51/1lutfx2bvefapz3ropcehvc47.o create mode 100644 rust/target/debug/incremental/core_domain-2gho5383shz8t/s-hhksnqjffb-0zhaac8-b10006pd3vyso6ocq4s5rkv51/24gh56g455shba13upd4hddtt.o create mode 100644 rust/target/debug/incremental/core_domain-2gho5383shz8t/s-hhksnqjffb-0zhaac8-b10006pd3vyso6ocq4s5rkv51/70r1advwk10k72nazgdujtoq8.o create mode 100644 rust/target/debug/incremental/core_domain-2gho5383shz8t/s-hhksnqjffb-0zhaac8-b10006pd3vyso6ocq4s5rkv51/a12sgt0fh7untbnb9zowipuba.o create mode 100644 rust/target/debug/incremental/core_domain-2gho5383shz8t/s-hhksnqjffb-0zhaac8-b10006pd3vyso6ocq4s5rkv51/dep-graph.bin create mode 100644 rust/target/debug/incremental/core_domain-2gho5383shz8t/s-hhksnqjffb-0zhaac8-b10006pd3vyso6ocq4s5rkv51/eo8yq02obvjr00oktl076hpvx.o create mode 100644 rust/target/debug/incremental/core_domain-2gho5383shz8t/s-hhksnqjffb-0zhaac8-b10006pd3vyso6ocq4s5rkv51/query-cache.bin create mode 100644 rust/target/debug/incremental/core_domain-2gho5383shz8t/s-hhksnqjffb-0zhaac8-b10006pd3vyso6ocq4s5rkv51/work-products.bin create mode 100644 rust/target/debug/incremental/core_domain-2gho5383shz8t/s-hhksnqjffb-0zhaac8.lock create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/0jrwn5al49neljnnvt6eeoitq.o create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/1ev7swngcriasku9kh1xqvxl7.o create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/1one962q1mg7gtwgz3c2qrojj.o create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/1ta3552qo7k6kwslwki6wr7um.o create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/26a574cd9lt5gbge0hxfmdtxd.o create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/2oh7przv2zfqkxtjgzd3whsh1.o create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/47b9simkgic3vj9x63op1e1p6.o create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/53efemgv2s72pml9l0iy327b8.o create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/5ccc9lid867rdczhq5fszm0u6.o create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/5vi3lzhm125076f2r9wtr91lm.o create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/6nt92fxt2as5rb47txmv2hod5.o create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/6nywfsem4u1ojuotmerxky74c.o create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/6z80gnw1o2s55gnd9tof0uzyq.o create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/7373w20n0yue8whwqjaez1yyv.o create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/7l4kx50474dwbm6pyf1fqucug.o create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/7omiu0ck3sqkvllam1jnmew2p.o create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/7p0quek6yxerybr3i8jg48nhq.o create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/8hqdt25i0whsidzbp7sucj5p3.o create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/8m36uzhzuuc5jeb58dpyl4x3b.o create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/al8hz0j4n0t34wm8w5908jp96.o create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/aras4y6sncq0ipbz24y4vh3wi.o create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/bae4zrq0hpnyspnpkniwjvhhx.o create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/bdxvnkwo7tb8ed1xdx3qjussf.o create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/bvaz6mx9ahydp1ywzwoyum17m.o create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/c3cwpxzw4vy258jijkljvwhb6.o create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/dep-graph.bin create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/eawwkapxxx85sj8wdc8vwq20m.o create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/query-cache.bin create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5-d5gb2mozubofzw09evm1ioaqc/work-products.bin create mode 100644 rust/target/debug/incremental/core_domain-2qmngcoxas1q0/s-hhksnqjfea-0uncem5.lock create mode 100644 rust/target/debug/incremental/core_protocol-1o9yw3jm5j175/s-hhl153wn9x-033msj3-2zrlzwyckzakklxxj4xgsli54/0fcot6m5tqusduxfvyt4k1vm7.o create mode 100644 rust/target/debug/incremental/core_protocol-1o9yw3jm5j175/s-hhl153wn9x-033msj3-2zrlzwyckzakklxxj4xgsli54/0h0l87vv5rqa6opj6fa6qocqf.o create mode 100644 rust/target/debug/incremental/core_protocol-1o9yw3jm5j175/s-hhl153wn9x-033msj3-2zrlzwyckzakklxxj4xgsli54/1qwuthztbwxa2mzndqytvoc5h.o create mode 100644 rust/target/debug/incremental/core_protocol-1o9yw3jm5j175/s-hhl153wn9x-033msj3-2zrlzwyckzakklxxj4xgsli54/26h4q7f15x11ct4kqh6d9725k.o create mode 100644 rust/target/debug/incremental/core_protocol-1o9yw3jm5j175/s-hhl153wn9x-033msj3-2zrlzwyckzakklxxj4xgsli54/2zvaeouivcicgorrwzp3u5gxm.o create mode 100644 rust/target/debug/incremental/core_protocol-1o9yw3jm5j175/s-hhl153wn9x-033msj3-2zrlzwyckzakklxxj4xgsli54/3ez07f1d9coodxw021fq2jqq0.o create mode 100644 rust/target/debug/incremental/core_protocol-1o9yw3jm5j175/s-hhl153wn9x-033msj3-2zrlzwyckzakklxxj4xgsli54/3hz2coioti6o6kjtssqtbfs55.o create mode 100644 rust/target/debug/incremental/core_protocol-1o9yw3jm5j175/s-hhl153wn9x-033msj3-2zrlzwyckzakklxxj4xgsli54/42wcvy1tjpo72yfvu18voirjh.o create mode 100644 rust/target/debug/incremental/core_protocol-1o9yw3jm5j175/s-hhl153wn9x-033msj3-2zrlzwyckzakklxxj4xgsli54/4hc4dd6xv0i2itvgywx1lahl8.o create mode 100644 rust/target/debug/incremental/core_protocol-1o9yw3jm5j175/s-hhl153wn9x-033msj3-2zrlzwyckzakklxxj4xgsli54/4itr5en1t999jjm3niw6ym315.o create mode 100644 rust/target/debug/incremental/core_protocol-1o9yw3jm5j175/s-hhl153wn9x-033msj3-2zrlzwyckzakklxxj4xgsli54/5n3qij2c5c65q1jwvpv712f86.o create mode 100644 rust/target/debug/incremental/core_protocol-1o9yw3jm5j175/s-hhl153wn9x-033msj3-2zrlzwyckzakklxxj4xgsli54/5vfvnjfqatgj9tcy20466egul.o create mode 100644 rust/target/debug/incremental/core_protocol-1o9yw3jm5j175/s-hhl153wn9x-033msj3-2zrlzwyckzakklxxj4xgsli54/7sxist1itnqato11mzu8cb9s7.o create mode 100644 rust/target/debug/incremental/core_protocol-1o9yw3jm5j175/s-hhl153wn9x-033msj3-2zrlzwyckzakklxxj4xgsli54/90p39xzijkgh4ywq1t9ijveu1.o create mode 100644 rust/target/debug/incremental/core_protocol-1o9yw3jm5j175/s-hhl153wn9x-033msj3-2zrlzwyckzakklxxj4xgsli54/9y10rckkmegt70c4fic7d9pn0.o create mode 100644 rust/target/debug/incremental/core_protocol-1o9yw3jm5j175/s-hhl153wn9x-033msj3-2zrlzwyckzakklxxj4xgsli54/agt77gq173zfkllhyqtt7g778.o create mode 100644 rust/target/debug/incremental/core_protocol-1o9yw3jm5j175/s-hhl153wn9x-033msj3-2zrlzwyckzakklxxj4xgsli54/arqabmwpzh0w95srn7kwf39c3.o create mode 100644 rust/target/debug/incremental/core_protocol-1o9yw3jm5j175/s-hhl153wn9x-033msj3-2zrlzwyckzakklxxj4xgsli54/br9og3o8t217kpyg0k4twauic.o create mode 100644 rust/target/debug/incremental/core_protocol-1o9yw3jm5j175/s-hhl153wn9x-033msj3-2zrlzwyckzakklxxj4xgsli54/cu53u8qm0wjh7s5p10jdqv6k9.o create mode 100644 rust/target/debug/incremental/core_protocol-1o9yw3jm5j175/s-hhl153wn9x-033msj3-2zrlzwyckzakklxxj4xgsli54/d499c6yw1qx52w2i1ejat34b9.o create mode 100644 rust/target/debug/incremental/core_protocol-1o9yw3jm5j175/s-hhl153wn9x-033msj3-2zrlzwyckzakklxxj4xgsli54/dep-graph.bin create mode 100644 rust/target/debug/incremental/core_protocol-1o9yw3jm5j175/s-hhl153wn9x-033msj3-2zrlzwyckzakklxxj4xgsli54/e0ga13reow5buorr3ciykquxg.o create mode 100644 rust/target/debug/incremental/core_protocol-1o9yw3jm5j175/s-hhl153wn9x-033msj3-2zrlzwyckzakklxxj4xgsli54/query-cache.bin create mode 100644 rust/target/debug/incremental/core_protocol-1o9yw3jm5j175/s-hhl153wn9x-033msj3-2zrlzwyckzakklxxj4xgsli54/work-products.bin create mode 100644 rust/target/debug/incremental/core_protocol-1o9yw3jm5j175/s-hhl153wn9x-033msj3.lock create mode 100644 rust/target/debug/incremental/core_protocol-3lnbdlbcnufjr/s-hhl4golkrm-0s09j4a-bezcerp6vvc7fsyxbjhzch3yg/dep-graph.bin create mode 100644 rust/target/debug/incremental/core_protocol-3lnbdlbcnufjr/s-hhl4golkrm-0s09j4a-bezcerp6vvc7fsyxbjhzch3yg/query-cache.bin create mode 100644 rust/target/debug/incremental/core_protocol-3lnbdlbcnufjr/s-hhl4golkrm-0s09j4a-bezcerp6vvc7fsyxbjhzch3yg/work-products.bin create mode 100644 rust/target/debug/incremental/core_protocol-3lnbdlbcnufjr/s-hhl4golkrm-0s09j4a.lock create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/025xragbai5dta5plerat93f3.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/0rv6ak5p0eb1rck5ctf2oaclr.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/0tmesi7kvcnj1zuun9t7x7d20.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/1gxilbg5v33c3sp3ixvyyyiw4.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/1ku29ivzmdo8smejib2buet6y.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/1zlwgswl6mhaz1sc9tv7h6fvv.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/2esnpumhts8ffozf9l7u1cptl.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/2s1nr1urf1g6ngfu62hqx69z6.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/33z9d6jfu3y7tans15drunu25.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/3pc64ndxqojunfw70q4txk2ki.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/4ml0g2qovdtyvw2yps2s2dm6r.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/54bzp638hogbizuf07vg0rggr.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/5g3bohf2ogtx1my7ipgm599yn.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/5zqjxe9k5bged35r763nbfgpn.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/63jauxjb83pcyu8jjqh4ghypm.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/6wvm03xo5lvrennz7ybu2s283.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/72ivnb41hqr5vquk5s9h2x4gp.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/7akx8q2pqv304u4mdxpaopyln.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/7wejlbsn3tz5io3mgwqdz4ovv.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/82yozy4k7feq8bbi1vseniel7.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/8o0c7rwox44axyop0raop2r4s.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/8uu1j8tbu7j6ul9o1smyr2upp.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/8wyw3p7t7bdrbyidven5kh4gq.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/9im6cch2fucy3nppr4sfu093g.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/9nwdk986c1d0zw8fzc2bfnye0.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/9o3ow6h6jvu4tkkzh5j9e61gj.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/a72er3wilmofw3v5fnsa7kp65.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/aenvo7kqvtl9qaeaji8nij390.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/agp74hvmm9anemzdgu5c4eie8.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/aj47ukddv95bjbzrn5bvyz1h9.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/c2ujcnpuynqloq2bbjb37lr2p.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/ccvj0ia30jepvnekodna0ru87.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/ci2li1eqs9b4v5852pus33d8h.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/cmr9rt9pnm6fruxiyp44odv32.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/d28gnpgg7bbhmgzfk1osjhe0s.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/d58h402xos9hk3rx9gcqmyb1p.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/dcq0fbcz3ncygblpjt0unw25h.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/dep-graph.bin create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/dq6tl2tw5dy0s7ihejcdegb20.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/euksz75gktc7xl3ewasiq9j9f.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/extlmbh0w6fy52oq0oajtjmxs.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/f56o08f5e10tpbpgl6c5wa84z.o create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/query-cache.bin create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v-dstal0gg3jqagk1ec937zhhu4/work-products.bin create mode 100644 rust/target/debug/incremental/core_protocol-3q2cdycf0f7lx/s-hhl153wn9x-0y8ia8v.lock create mode 100644 rust/target/debug/incremental/event_log-0anld0qxyinf4/s-hhki6hfrns-12mb6z3-ben1k4rb8ypvn6bitb5259f94/dep-graph.bin create mode 100644 rust/target/debug/incremental/event_log-0anld0qxyinf4/s-hhki6hfrns-12mb6z3-ben1k4rb8ypvn6bitb5259f94/query-cache.bin create mode 100644 rust/target/debug/incremental/event_log-0anld0qxyinf4/s-hhki6hfrns-12mb6z3-ben1k4rb8ypvn6bitb5259f94/work-products.bin create mode 100644 rust/target/debug/incremental/event_log-0anld0qxyinf4/s-hhki6hfrns-12mb6z3.lock create mode 100644 rust/target/debug/incremental/event_log-0v4ig6loxtdgh/s-hhl0yawabb-0kc65bt-730u8jxckm2hurhk1cbl8tnfh/4wb7w1lb93fxzltgdb710gj9g.o create mode 100644 rust/target/debug/incremental/event_log-0v4ig6loxtdgh/s-hhl0yawabb-0kc65bt-730u8jxckm2hurhk1cbl8tnfh/dep-graph.bin create mode 100644 rust/target/debug/incremental/event_log-0v4ig6loxtdgh/s-hhl0yawabb-0kc65bt-730u8jxckm2hurhk1cbl8tnfh/query-cache.bin create mode 100644 rust/target/debug/incremental/event_log-0v4ig6loxtdgh/s-hhl0yawabb-0kc65bt-730u8jxckm2hurhk1cbl8tnfh/work-products.bin create mode 100644 rust/target/debug/incremental/event_log-0v4ig6loxtdgh/s-hhl0yawabb-0kc65bt.lock create mode 100644 rust/target/debug/incremental/index_fts-2vx0jk0nb8ny7/s-hhki6hgizw-0rnusq8-33sgjrci90hg7k0adnn20fgpi/dep-graph.bin create mode 100644 rust/target/debug/incremental/index_fts-2vx0jk0nb8ny7/s-hhki6hgizw-0rnusq8-33sgjrci90hg7k0adnn20fgpi/query-cache.bin create mode 100644 rust/target/debug/incremental/index_fts-2vx0jk0nb8ny7/s-hhki6hgizw-0rnusq8-33sgjrci90hg7k0adnn20fgpi/work-products.bin create mode 100644 rust/target/debug/incremental/index_fts-2vx0jk0nb8ny7/s-hhki6hgizw-0rnusq8.lock create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/039j9bjwet2b6eymtajpqspae.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/09z18wf0eyrpu2i3blwanmart.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/18t7x0jcyuirze7njzv4mzs8b.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/19qzxkk4lqr8r4db0i5h76fq3.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/1a5rfuomcoppx9an8qau0pcd8.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/1punlkaoos9vdtgnzpiag9p5b.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/1twsrtejdqa95ns8dc447ugmk.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/29moyoh19l3ocdafgk3ycddo3.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/2ix173c3aak9lelyqkdtkxbpy.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/2kzhqkavn8dsswy9ysyh5oewg.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/2ok1ddc65yrtb03f26wg644h6.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/2olyvmyat3pwi9ezsjekvadbk.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/3gp13b83hl3eq0mez5fw1yknx.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/3s008716ul3kduxewbnyffx3e.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/3s8wvzmt0m4a3udn49ellx6hn.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/3tjo4oihrykjwnauqdlfuqglb.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/4bj7cpqh1cnofa7sj1ipeiy90.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/4iph6l9ely0uq9nzie174r6du.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/4pp1xixqvei00miy5zqcigbuj.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/4pr75hco5abfezynf0nv3la5w.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/4qlgdkvlq20ke86q79mlt7xmh.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/52tfz4cpsm165ixl5dkktvnuf.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/5hzaxnqj2zanbrmzl25oylrmz.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/5kpf7s2y33g4s8o1o18itf65x.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/5m1blfctvyi38gs1jm9nkfw2k.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/5pgzxyh4z8vlz8xjusn0sxvpg.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/5tbpedyrevjzmxxv3yp1wru0n.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/5xjd1bln9i2go1vfr8pmchqg2.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/64blkpyf6fbpvrjoi8shlhr5r.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/6bif9jyns5ze4iccrdxmuo9f8.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/6ktfz8h61eyhwlbyrq9vhjrfv.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/7fm0aq0x94wfa5o9njt72gl50.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/7gidib5qjm86di9txvj4jm1m6.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/7hz9nbaz1erjw5uldpa24t64v.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/7pyps766k3raaitrcvplkpvg2.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/7s0j7hjcz3n078g2wf0f5pexn.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/8am3hphsgf5dc4hmqvntfa67t.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/97t0fgh74devoeh5tqag2smlo.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/987ebqkxc6dhhlw4b8i50tdud.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/995xaow4io9qiti4glq351ild.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/9iguuvu9qpcujdydbu6dbf2dt.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/9knj76z9dhr1dghulv8s37zdm.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/9qpfr6a0qymzd7er1rmv6idt3.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/9x6qfllmyaoix2ualofwebx9k.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/a6agzhbcy0uzmi6b1l2y5d7b5.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/a8arkzzebc532vyxmwcj4vsie.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/ab256b7s9nvxsticqbtpvuw13.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/ad8h67qmeqpgc4zrpzm3mgwm5.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/am50fpawpork44ywflixup381.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/anzgznle8f828ntrm2jmo9nm1.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/aoir5cuzz7ekeexx77huwsfsk.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/b2yi7otxp00ywavsqhzw0ek41.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/b7b20y8gyaasph29qem26oud9.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/b7uf5z0hef7k763bx1fb8ytiz.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/bi8dl23a9vjgxuj59jcqvts0c.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/bi9zo6ryg22o0w44ogdww1ihr.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/btiz9alr7q70vo1q39ql04hzo.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/crxbx0yn9r269lktyptq1varl.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/cvwb5wzcnwqdblvd0s8skksi2.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/d6xiwtcawnrbv7j3a1lbu7rlp.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/dbxx2vq3kgw3wte5uh4jozu4k.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/dep-graph.bin create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/deurc8ur3qb1d9hi62x2u2vvj.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/djj23swh60530h68mr2ep8vkl.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/dou4yjv5brytpj6bdbb9os2b6.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/dw9ri8rnswtzwwiwga3dznkbn.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/ej5gdaf6m3mru7zk16q0uppsi.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/query-cache.bin create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi-9cs4zkb9gja4nhgp0d48uxc7j/work-products.bin create mode 100644 rust/target/debug/incremental/storage_convex_bridge-0j1pgeljtd9oc/s-hhl153yx3x-013wyvi.lock create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nhwyc2taiyfl/s-hhl4gon5ba-0dc3ld2-a3hftn2q4lwcw9q46s3a242x5/dep-graph.bin create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nhwyc2taiyfl/s-hhl4gon5ba-0dc3ld2-a3hftn2q4lwcw9q46s3a242x5/query-cache.bin create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nhwyc2taiyfl/s-hhl4gon5ba-0dc3ld2-a3hftn2q4lwcw9q46s3a242x5/work-products.bin create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nhwyc2taiyfl/s-hhl4gon5ba-0dc3ld2.lock create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/13w6ids9kwxyowlyi4cv0fts9.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/1wi9cpl761ip91vawypucpf06.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/1wwxal1thld4sm7luanhk8iih.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/2d4krd4j74ep5srzjgu3uwdpn.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/2dab0btbq9l6wzm8lmgylanri.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/2occogj3f8scaacw4lyc10rh0.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/4ynu8gy2229oeipq7q1v16823.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/68c5jwcfffz5w8mtw6x36qzo6.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/6ubsoazkh8fi00pet05s247ia.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/74bd3skqlvvusz6iqu54ue0eb.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/777tbtpnrhkqsp3gffbl227pd.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/7er606vm52wf6hjk0r41dpb7b.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/7v99lrqhgj6r18np1jl767sfe.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/8jioojqfumfqfwe5fuybi65am.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/95j62296dpolhx29ub5fd9cgs.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/99nyl2dazho939h7y2otxypjp.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/9pn6sob3u1vz95kip7vs9v7hd.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/a56snj3ckk44x511avopmoh4z.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/a5zrndxctfmrsg2lykrjqhizp.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/affeyiiumor5gkolrd5pzchh7.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/aqw9z4oz8uhv0k3wydlqelnrc.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/c2te5zdmxch82eg0wmyr3e9lu.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/cf1561iteoxzxfqzoazm2kth7.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/dep-graph.bin create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/dzlcfe90f8jr23dlz2xvl4omy.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/edoai52vuhbbfbim4qqlo442j.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/eqgd91hpn5sfsyci6vbn568p7.o create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/query-cache.bin create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0-c4hv4la80nrj6qaul61f0db1x/work-products.bin create mode 100644 rust/target/debug/incremental/storage_convex_bridge-2nozxgcvus2jt/s-hhl153y5f4-1mb28k0.lock create mode 100644 wolai-frontend/convex/_utils/auth.ts create mode 100644 wolai-frontend/convex/_utils/documentRecord.ts create mode 100644 wolai-frontend/convex/audit.ts create mode 100644 wolai-frontend/convex/bridgeLogs.ts create mode 100644 wolai-frontend/src/app/api/bridge/request/route.ts create mode 100644 wolai-frontend/src/app/api/bridge/trace/route.ts create mode 100644 wolai-frontend/src/app/api/documents/meta/route.ts create mode 100644 wolai-frontend/src/lib/documents/bridge-log.ts create mode 100644 wolai-frontend/src/lib/documents/bridge-server.ts create mode 100644 wolai-frontend/src/lib/documents/bridge.test.ts create mode 100644 wolai-frontend/src/lib/documents/bridge.ts create mode 100644 wolai-frontend/src/lib/documents/document-record.test.ts create mode 100644 wolai-frontend/src/lib/documents/metadata-command-adapter.ts create mode 100644 wolai-frontend/src/lib/server/sidebar-data.ts create mode 100644 wolai-frontend/src/lib/sidebar-data.test.ts create mode 100644 wolai-frontend/src/lib/sidebar-data.ts diff --git a/.codex/hooks.json b/.codex/hooks.json new file mode 100644 index 00000000..ad64a635 --- /dev/null +++ b/.codex/hooks.json @@ -0,0 +1,3 @@ +{ + "hooks": {} +} \ No newline at end of file diff --git a/.codex/hooks/omx/post-tool-use.mjs b/.codex/hooks/omx/post-tool-use.mjs new file mode 100644 index 00000000..adbc44b3 --- /dev/null +++ b/.codex/hooks/omx/post-tool-use.mjs @@ -0,0 +1,49 @@ +#!/usr/bin/env node +import { appendFileSync, mkdirSync, readFileSync } from "node:fs"; +import { join } from "node:path"; +import { execSync } from "node:child_process"; + +function rootDir() { + try { + return execSync("git rev-parse --show-toplevel", { + cwd: process.cwd(), + encoding: "utf8", + stdio: ["ignore", "pipe", "ignore"], + }).trim(); + } catch { + return process.cwd(); + } +} + +function readStdin() { + try { + return JSON.parse(readFileSync(0, "utf8") || "{}"); + } catch { + return {}; + } +} + +const payload = readStdin(); +const root = rootDir(); +mkdirSync(join(root, ".omx", "logs"), { recursive: true }); +const exitCode = + typeof payload?.tool_output?.exit_code === "number" + ? payload.tool_output.exit_code + : typeof payload?.exit_code === "number" + ? payload.exit_code + : null; +const status = exitCode ?? "unknown"; +const isExplicitBashFailure = payload?.tool_name === "Bash" && exitCode !== null && exitCode !== 0; +appendFileSync( + join(root, ".omx", "logs", "hooks.log"), + `${new Date().toISOString()} PostToolUse status=${status} ${JSON.stringify(payload)}\n`, + "utf8", +); + +process.stdout.write(JSON.stringify({ + continue: true, + hookSpecificOutput: { + hookEventName: "PostToolUse", + additionalContext: isExplicitBashFailure ? "OMX noticed a failing Bash command. Check the team inbox or diagnostics." : "", + }, +})); diff --git a/.codex/hooks/omx/pre-tool-use.mjs b/.codex/hooks/omx/pre-tool-use.mjs new file mode 100644 index 00000000..0def4813 --- /dev/null +++ b/.codex/hooks/omx/pre-tool-use.mjs @@ -0,0 +1,37 @@ +#!/usr/bin/env node +import { readFileSync } from "node:fs"; + +function readStdin() { + try { + return JSON.parse(readFileSync(0, "utf8") || "{}"); + } catch { + return {}; + } +} + +const payload = readStdin(); +const command = JSON.stringify(payload).toLowerCase(); +const blocked = [ + "rm -rf /", + "mkfs", + "dd if=", + "shutdown", + "reboot", + "poweroff", + "git reset --hard", +]; + +if (blocked.some((token) => command.includes(token))) { + process.stdout.write(JSON.stringify({ + decision: "block", + reason: "OMX safety hook blocked an obviously destructive command.", + })); + process.exit(0); +} + +process.stdout.write(JSON.stringify({ + continue: true, + hookSpecificOutput: { + hookEventName: "PreToolUse", + }, +})); diff --git a/.codex/hooks/omx/session-start.mjs b/.codex/hooks/omx/session-start.mjs new file mode 100644 index 00000000..354631f4 --- /dev/null +++ b/.codex/hooks/omx/session-start.mjs @@ -0,0 +1,58 @@ +#!/usr/bin/env node +import { appendFileSync, mkdirSync, readFileSync, writeFileSync } from "node:fs"; +import { dirname, join } from "node:path"; +import { execSync } from "node:child_process"; + +function rootDir() { + try { + return execSync("git rev-parse --show-toplevel", { + cwd: process.cwd(), + encoding: "utf8", + stdio: ["ignore", "pipe", "ignore"], + }).trim(); + } catch { + return process.cwd(); + } +} + +function readStdin() { + try { + return JSON.parse(readFileSync(0, "utf8") || "{}"); + } catch { + return {}; + } +} + +function readJson(path, fallback) { + try { + return JSON.parse(readFileSync(path, "utf8")); + } catch { + return fallback; + } +} + +function writeJson(path, value) { + mkdirSync(dirname(path), { recursive: true }); + writeFileSync(path, JSON.stringify(value, null, 2), "utf8"); +} + +const root = rootDir(); +const payload = readStdin(); +const omx = join(root, ".omx"); +mkdirSync(join(omx, "logs"), { recursive: true }); +appendFileSync(join(omx, "logs", "hooks.log"), `${new Date().toISOString()} SessionStart ${JSON.stringify(payload)}\n`, "utf8"); + +const runtimePath = join(omx, "state", "hook-runtime.json"); +const runtime = readJson(runtimePath, {}); +writeJson(runtimePath, { + ...runtime, + lastSessionStartAt: new Date().toISOString(), +}); + +process.stdout.write(JSON.stringify({ + continue: true, + hookSpecificOutput: { + hookEventName: "SessionStart", + additionalContext: "", + }, +})); diff --git a/.codex/hooks/omx/stop.mjs b/.codex/hooks/omx/stop.mjs new file mode 100644 index 00000000..a11f5eb9 --- /dev/null +++ b/.codex/hooks/omx/stop.mjs @@ -0,0 +1,54 @@ +#!/usr/bin/env node +import { appendFileSync, mkdirSync, readFileSync, writeFileSync } from "node:fs"; +import { dirname, join } from "node:path"; +import { execSync } from "node:child_process"; + +function rootDir() { + try { + return execSync("git rev-parse --show-toplevel", { + cwd: process.cwd(), + encoding: "utf8", + stdio: ["ignore", "pipe", "ignore"], + }).trim(); + } catch { + return process.cwd(); + } +} + +function readStdin() { + try { + return JSON.parse(readFileSync(0, "utf8") || "{}"); + } catch { + return {}; + } +} + +function readJson(path, fallback) { + try { + return JSON.parse(readFileSync(path, "utf8")); + } catch { + return fallback; + } +} + +function writeJson(path, value) { + mkdirSync(dirname(path), { recursive: true }); + writeFileSync(path, JSON.stringify(value, null, 2), "utf8"); +} + +const root = rootDir(); +const payload = readStdin(); +const omx = join(root, ".omx"); +mkdirSync(join(omx, "logs"), { recursive: true }); +appendFileSync(join(omx, "logs", "hooks.log"), `${new Date().toISOString()} Stop ${JSON.stringify(payload)}\n`, "utf8"); + +const runtimePath = join(omx, "state", "hook-runtime.json"); +const runtime = readJson(runtimePath, {}); +writeJson(runtimePath, { + ...runtime, + lastStopAt: new Date().toISOString(), +}); + +process.stdout.write(JSON.stringify({ + continue: true, +})); diff --git a/.codex/hooks/omx/user-prompt-submit.mjs b/.codex/hooks/omx/user-prompt-submit.mjs new file mode 100644 index 00000000..ce6c3cef --- /dev/null +++ b/.codex/hooks/omx/user-prompt-submit.mjs @@ -0,0 +1,58 @@ +#!/usr/bin/env node +import { appendFileSync, mkdirSync, readFileSync, writeFileSync } from "node:fs"; +import { dirname, join } from "node:path"; +import { execSync } from "node:child_process"; + +function rootDir() { + try { + return execSync("git rev-parse --show-toplevel", { + cwd: process.cwd(), + encoding: "utf8", + stdio: ["ignore", "pipe", "ignore"], + }).trim(); + } catch { + return process.cwd(); + } +} + +function readStdin() { + try { + return JSON.parse(readFileSync(0, "utf8") || "{}"); + } catch { + return {}; + } +} + +function readJson(path, fallback) { + try { + return JSON.parse(readFileSync(path, "utf8")); + } catch { + return fallback; + } +} + +function writeJson(path, value) { + mkdirSync(dirname(path), { recursive: true }); + writeFileSync(path, JSON.stringify(value, null, 2), "utf8"); +} + +const root = rootDir(); +const payload = readStdin(); +const omx = join(root, ".omx"); +mkdirSync(join(omx, "logs"), { recursive: true }); +appendFileSync(join(omx, "logs", "hooks.log"), `${new Date().toISOString()} UserPromptSubmit ${JSON.stringify(payload)}\n`, "utf8"); + +const runtimePath = join(omx, "state", "hook-runtime.json"); +const runtime = readJson(runtimePath, {}); +writeJson(runtimePath, { + ...runtime, + lastPromptAt: new Date().toISOString(), +}); + +process.stdout.write(JSON.stringify({ + continue: true, + hookSpecificOutput: { + hookEventName: "UserPromptSubmit", + additionalContext: "", + }, +})); diff --git a/.gitignore b/.gitignore index 9cc43a4e..18b367b1 100644 --- a/.gitignore +++ b/.gitignore @@ -49,3 +49,4 @@ wolai-frontend/public/documents/** artifacts/ artifacts/** tmp +design \ No newline at end of file diff --git a/.harness-active b/.harness-active new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/.harness-active @@ -0,0 +1 @@ + diff --git a/DESIGN.md b/DESIGN.md new file mode 100644 index 00000000..206b5f4a --- /dev/null +++ b/DESIGN.md @@ -0,0 +1,309 @@ +# Design System Inspired by Notion + +## 1. Visual Theme & Atmosphere + +Notion's website embodies the philosophy of the tool itself: a blank canvas that gets out of your way. The design system is built on warm neutrals rather than cold grays, creating a distinctly approachable minimalism that feels like quality paper rather than sterile glass. The page canvas is pure white (`#ffffff`) but the text isn't pure black -- it's a warm near-black (`rgba(0,0,0,0.95)`) that softens the reading experience imperceptibly. The warm gray scale (`#f6f5f4`, `#31302e`, `#615d59`, `#a39e98`) carries subtle yellow-brown undertones, giving the interface a tactile, almost analog warmth. + +The custom NotionInter font (a modified Inter) is the backbone of the system. At display sizes (64px), it uses aggressive negative letter-spacing (-2.125px), creating headlines that feel compressed and precise. The weight range is broader than typical systems: 400 for body, 500 for UI elements, 600 for semi-bold labels, and 700 for display headings. OpenType features `"lnum"` (lining numerals) and `"locl"` (localized forms) are enabled on larger text, adding typographic sophistication that rewards close reading. + +What makes Notion's visual language distinctive is its border philosophy. Rather than heavy borders or shadows, Notion uses ultra-thin `1px solid rgba(0,0,0,0.1)` borders -- borders that exist as whispers, barely perceptible division lines that create structure without weight. The shadow system is equally restrained: multi-layer stacks with cumulative opacity never exceeding 0.05, creating depth that's felt rather than seen. + +**Key Characteristics:** +- NotionInter (modified Inter) with negative letter-spacing at display sizes (-2.125px at 64px) +- Warm neutral palette: grays carry yellow-brown undertones (`#f6f5f4` warm white, `#31302e` warm dark) +- Near-black text via `rgba(0,0,0,0.95)` -- not pure black, creating micro-warmth +- Ultra-thin borders: `1px solid rgba(0,0,0,0.1)` throughout -- whisper-weight division +- Multi-layer shadow stacks with sub-0.05 opacity for barely-there depth +- Notion Blue (`#0075de`) as the singular accent color for CTAs and interactive elements +- Pill badges (9999px radius) with tinted blue backgrounds for status indicators +- 8px base spacing unit with an organic, non-rigid scale + +## 2. Color Palette & Roles + +### Primary +- **Notion Black** (`rgba(0,0,0,0.95)` / `#000000f2`): Primary text, headings, body copy. The 95% opacity softens pure black without sacrificing readability. +- **Pure White** (`#ffffff`): Page background, card surfaces, button text on blue. +- **Notion Blue** (`#0075de`): Primary CTA, link color, interactive accent -- the only saturated color in the core UI chrome. + +### Brand Secondary +- **Deep Navy** (`#213183`): Secondary brand color, used sparingly for emphasis and dark feature sections. +- **Active Blue** (`#005bab`): Button active/pressed state -- darker variant of Notion Blue. + +### Warm Neutral Scale +- **Warm White** (`#f6f5f4`): Background surface tint, section alternation, subtle card fill. The yellow undertone is key. +- **Warm Dark** (`#31302e`): Dark surface background, dark section text. Warmer than standard grays. +- **Warm Gray 500** (`#615d59`): Secondary text, descriptions, muted labels. +- **Warm Gray 300** (`#a39e98`): Placeholder text, disabled states, caption text. + +### Semantic Accent Colors +- **Teal** (`#2a9d99`): Success states, positive indicators. +- **Green** (`#1aae39`): Confirmation, completion badges. +- **Orange** (`#dd5b00`): Warning states, attention indicators. +- **Pink** (`#ff64c8`): Decorative accent, feature highlights. +- **Purple** (`#391c57`): Premium features, deep accents. +- **Brown** (`#523410`): Earthy accent, warm feature sections. + +### Interactive +- **Link Blue** (`#0075de`): Primary link color with underline-on-hover. +- **Link Light Blue** (`#62aef0`): Lighter link variant for dark backgrounds. +- **Focus Blue** (`#097fe8`): Focus ring on interactive elements. +- **Badge Blue Bg** (`#f2f9ff`): Pill badge background, tinted blue surface. +- **Badge Blue Text** (`#097fe8`): Pill badge text, darker blue for readability. + +### Shadows & Depth +- **Card Shadow** (`rgba(0,0,0,0.04) 0px 4px 18px, rgba(0,0,0,0.027) 0px 2.025px 7.84688px, rgba(0,0,0,0.02) 0px 0.8px 2.925px, rgba(0,0,0,0.01) 0px 0.175px 1.04062px`): Multi-layer card elevation. +- **Deep Shadow** (`rgba(0,0,0,0.01) 0px 1px 3px, rgba(0,0,0,0.02) 0px 3px 7px, rgba(0,0,0,0.02) 0px 7px 15px, rgba(0,0,0,0.04) 0px 14px 28px, rgba(0,0,0,0.05) 0px 23px 52px`): Five-layer deep elevation for modals and featured content. +- **Whisper Border** (`1px solid rgba(0,0,0,0.1)`): Standard division border -- cards, dividers, sections. + +## 3. Typography Rules + +### Font Family +- **Primary**: `NotionInter`, with fallbacks: `Inter, -apple-system, system-ui, Segoe UI, Helvetica, Apple Color Emoji, Arial, Segoe UI Emoji, Segoe UI Symbol` +- **OpenType Features**: `"lnum"` (lining numerals) and `"locl"` (localized forms) enabled on display and heading text. + +### Hierarchy + +| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes | +|------|------|------|--------|-------------|----------------|-------| +| Display Hero | NotionInter | 64px (4.00rem) | 700 | 1.00 (tight) | -2.125px | Maximum compression, billboard headlines | +| Display Secondary | NotionInter | 54px (3.38rem) | 700 | 1.04 (tight) | -1.875px | Secondary hero, feature headlines | +| Section Heading | NotionInter | 48px (3.00rem) | 700 | 1.00 (tight) | -1.5px | Feature section titles, with `"lnum"` | +| Sub-heading Large | NotionInter | 40px (2.50rem) | 700 | 1.50 | normal | Card headings, feature sub-sections | +| Sub-heading | NotionInter | 26px (1.63rem) | 700 | 1.23 (tight) | -0.625px | Section sub-titles, content headers | +| Card Title | NotionInter | 22px (1.38rem) | 700 | 1.27 (tight) | -0.25px | Feature cards, list titles | +| Body Large | NotionInter | 20px (1.25rem) | 600 | 1.40 | -0.125px | Introductions, feature descriptions | +| Body | NotionInter | 16px (1.00rem) | 400 | 1.50 | normal | Standard reading text | +| Body Medium | NotionInter | 16px (1.00rem) | 500 | 1.50 | normal | Navigation, emphasized UI text | +| Body Semibold | NotionInter | 16px (1.00rem) | 600 | 1.50 | normal | Strong labels, active states | +| Body Bold | NotionInter | 16px (1.00rem) | 700 | 1.50 | normal | Headlines at body size | +| Nav / Button | NotionInter | 15px (0.94rem) | 600 | 1.33 | normal | Navigation links, button text | +| Caption | NotionInter | 14px (0.88rem) | 500 | 1.43 | normal | Metadata, secondary labels | +| Caption Light | NotionInter | 14px (0.88rem) | 400 | 1.43 | normal | Body captions, descriptions | +| Badge | NotionInter | 12px (0.75rem) | 600 | 1.33 | 0.125px | Pill badges, tags, status labels | +| Micro Label | NotionInter | 12px (0.75rem) | 400 | 1.33 | 0.125px | Small metadata, timestamps | + +### Principles +- **Compression at scale**: NotionInter at display sizes uses -2.125px letter-spacing at 64px, progressively relaxing to -0.625px at 26px and normal at 16px. The compression creates density at headlines while maintaining readability at body sizes. +- **Four-weight system**: 400 (body/reading), 500 (UI/interactive), 600 (emphasis/navigation), 700 (headings/display). The broader weight range compared to most systems allows nuanced hierarchy. +- **Warm scaling**: Line height tightens as size increases -- 1.50 at body (16px), 1.23-1.27 at sub-headings, 1.00-1.04 at display. This creates denser, more impactful headlines. +- **Badge micro-tracking**: The 12px badge text uses positive letter-spacing (0.125px) -- the only positive tracking in the system, creating wider, more legible small text. + +## 4. Component Stylings + +### Buttons + +**Primary Blue** +- Background: `#0075de` (Notion Blue) +- Text: `#ffffff` +- Padding: 8px 16px +- Radius: 4px (subtle) +- Border: `1px solid transparent` +- Hover: background darkens to `#005bab` +- Active: scale(0.9) transform +- Focus: `2px solid` focus outline, `var(--shadow-level-200)` shadow +- Use: Primary CTA ("Get Notion free", "Try it") + +**Secondary / Tertiary** +- Background: `rgba(0,0,0,0.05)` (translucent warm gray) +- Text: `#000000` (near-black) +- Padding: 8px 16px +- Radius: 4px +- Hover: text color shifts, scale(1.05) +- Active: scale(0.9) transform +- Use: Secondary actions, form submissions + +**Ghost / Link Button** +- Background: transparent +- Text: `rgba(0,0,0,0.95)` +- Decoration: underline on hover +- Use: Tertiary actions, inline links + +**Pill Badge Button** +- Background: `#f2f9ff` (tinted blue) +- Text: `#097fe8` +- Padding: 4px 8px +- Radius: 9999px (full pill) +- Font: 12px weight 600 +- Use: Status badges, feature labels, "New" tags + +### Cards & Containers +- Background: `#ffffff` +- Border: `1px solid rgba(0,0,0,0.1)` (whisper border) +- Radius: 12px (standard cards), 16px (featured/hero cards) +- Shadow: `rgba(0,0,0,0.04) 0px 4px 18px, rgba(0,0,0,0.027) 0px 2.025px 7.84688px, rgba(0,0,0,0.02) 0px 0.8px 2.925px, rgba(0,0,0,0.01) 0px 0.175px 1.04062px` +- Hover: subtle shadow intensification +- Image cards: 12px top radius, image fills top half + +### Inputs & Forms +- Background: `#ffffff` +- Text: `rgba(0,0,0,0.9)` +- Border: `1px solid #dddddd` +- Padding: 6px +- Radius: 4px +- Focus: blue outline ring +- Placeholder: warm gray `#a39e98` + +### Navigation +- Clean horizontal nav on white, not sticky +- Brand logo left-aligned (33x34px icon + wordmark) +- Links: NotionInter 15px weight 500-600, near-black text +- Hover: color shift to `var(--color-link-primary-text-hover)` +- CTA: blue pill button ("Get Notion free") right-aligned +- Mobile: hamburger menu collapse +- Product dropdowns with multi-level categorized menus + +### Image Treatment +- Product screenshots with `1px solid rgba(0,0,0,0.1)` border +- Top-rounded images: `12px 12px 0px 0px` radius +- Dashboard/workspace preview screenshots dominate feature sections +- Warm gradient backgrounds behind hero illustrations (decorative character illustrations) + +### Distinctive Components + +**Feature Cards with Illustrations** +- Large illustrative headers (The Great Wave, product UI screenshots) +- 12px radius card with whisper border +- Title at 22px weight 700, description at 16px weight 400 +- Warm white (`#f6f5f4`) background variant for alternating sections + +**Trust Bar / Logo Grid** +- Company logos (trusted teams section) in their brand colors +- Horizontal scroll or grid layout with team counts +- Metric display: large number + description pattern + +**Metric Cards** +- Large number display (e.g., "$4,200 ROI") +- NotionInter 40px+ weight 700 for the metric +- Description below in warm gray body text +- Whisper-bordered card container + +## 5. Layout Principles + +### Spacing System +- Base unit: 8px +- Scale: 2px, 3px, 4px, 5px, 6px, 7px, 8px, 11px, 12px, 14px, 16px, 24px, 32px +- Non-rigid organic scale with fractional values (5.6px, 6.4px) for micro-adjustments + +### Grid & Container +- Max content width: approximately 1200px +- Hero: centered single-column with generous top padding (80-120px) +- Feature sections: 2-3 column grids for cards +- Full-width warm white (`#f6f5f4`) section backgrounds for alternation +- Code/dashboard screenshots as contained with whisper border + +### Whitespace Philosophy +- **Generous vertical rhythm**: 64-120px between major sections. Notion lets content breathe with vast vertical padding. +- **Warm alternation**: White sections alternate with warm white (`#f6f5f4`) sections, creating gentle visual rhythm without harsh color breaks. +- **Content-first density**: Body text blocks are compact (line-height 1.50) but surrounded by ample margin, creating islands of readable content in a sea of white space. + +### Border Radius Scale +- Micro (4px): Buttons, inputs, functional interactive elements +- Subtle (5px): Links, list items, menu items +- Standard (8px): Small cards, containers, inline elements +- Comfortable (12px): Standard cards, feature containers, image tops +- Large (16px): Hero cards, featured content, promotional blocks +- Full Pill (9999px): Badges, pills, status indicators +- Circle (100%): Tab indicators, avatars + +## 6. Depth & Elevation + +| Level | Treatment | Use | +|-------|-----------|-----| +| Flat (Level 0) | No shadow, no border | Page background, text blocks | +| Whisper (Level 1) | `1px solid rgba(0,0,0,0.1)` | Standard borders, card outlines, dividers | +| Soft Card (Level 2) | 4-layer shadow stack (max opacity 0.04) | Content cards, feature blocks | +| Deep Card (Level 3) | 5-layer shadow stack (max opacity 0.05, 52px blur) | Modals, featured panels, hero elements | +| Focus (Accessibility) | `2px solid var(--focus-color)` outline | Keyboard focus on all interactive elements | + +**Shadow Philosophy**: Notion's shadow system uses multiple layers with extremely low individual opacity (0.01 to 0.05) that accumulate into soft, natural-looking elevation. The 4-layer card shadow spans from 1.04px to 18px blur, creating a gradient of depth rather than a single hard shadow. The 5-layer deep shadow extends to 52px blur at 0.05 opacity, producing ambient occlusion that feels like natural light rather than computer-generated depth. This layered approach makes elements feel embedded in the page rather than floating above it. + +### Decorative Depth +- Hero section: decorative character illustrations (playful, hand-drawn style) +- Section alternation: white to warm white (`#f6f5f4`) background shifts +- No hard section borders -- separation comes from background color changes and spacing + +## 7. Responsive Behavior + +### Breakpoints +| Name | Width | Key Changes | +|------|-------|-------------| +| Mobile Small | <400px | Tight single column, minimal padding | +| Mobile | 400-600px | Standard mobile, stacked layout | +| Tablet Small | 600-768px | 2-column grids begin | +| Tablet | 768-1080px | Full card grids, expanded padding | +| Desktop Small | 1080-1200px | Standard desktop layout | +| Desktop | 1200-1440px | Full layout, maximum content width | +| Large Desktop | >1440px | Centered, generous margins | + +### Touch Targets +- Buttons use comfortable padding (8px-16px vertical) +- Navigation links at 15px with adequate spacing +- Pill badges have 8px horizontal padding for tap targets +- Mobile menu toggle uses standard hamburger button + +### Collapsing Strategy +- Hero: 64px display -> scales to 40px -> 26px on mobile, maintains proportional letter-spacing +- Navigation: horizontal links + blue CTA -> hamburger menu +- Feature cards: 3-column -> 2-column -> single column stacked +- Product screenshots: maintain aspect ratio with responsive images +- Trust bar logos: grid -> horizontal scroll on mobile +- Footer: multi-column -> stacked single column +- Section spacing: 80px+ -> 48px on mobile + +### Image Behavior +- Workspace screenshots maintain whisper border at all sizes +- Hero illustrations scale proportionally +- Product screenshots use responsive images with consistent border radius +- Full-width warm white sections maintain edge-to-edge treatment + +## 8. Accessibility & States + +### Focus System +- All interactive elements receive visible focus indicators +- Focus outline: `2px solid` with focus color + shadow level 200 +- Tab navigation supported throughout all interactive components +- High contrast text: near-black on white exceeds WCAG AAA (>14:1 ratio) + +### Interactive States +- **Default**: Standard appearance with whisper borders +- **Hover**: Color shift on text, scale(1.05) on buttons, underline on links +- **Active/Pressed**: scale(0.9) transform, darker background variant +- **Focus**: Blue outline ring with shadow reinforcement +- **Disabled**: Warm gray (`#a39e98`) text, reduced opacity + +### Color Contrast +- Primary text (rgba(0,0,0,0.95)) on white: ~18:1 ratio +- Secondary text (#615d59) on white: ~5.5:1 ratio (WCAG AA) +- Blue CTA (#0075de) on white: ~4.6:1 ratio (WCAG AA for large text) +- Badge text (#097fe8) on badge bg (#f2f9ff): ~4.5:1 ratio (WCAG AA for large text) + +## 9. Agent Prompt Guide + +### Quick Color Reference +- Primary CTA: Notion Blue (`#0075de`) +- Background: Pure White (`#ffffff`) +- Alt Background: Warm White (`#f6f5f4`) +- Heading text: Near-Black (`rgba(0,0,0,0.95)`) +- Body text: Near-Black (`rgba(0,0,0,0.95)`) +- Secondary text: Warm Gray 500 (`#615d59`) +- Muted text: Warm Gray 300 (`#a39e98`) +- Border: `1px solid rgba(0,0,0,0.1)` +- Link: Notion Blue (`#0075de`) +- Focus ring: Focus Blue (`#097fe8`) + +### Example Component Prompts +- "Create a hero section on white background. Headline at 64px NotionInter weight 700, line-height 1.00, letter-spacing -2.125px, color rgba(0,0,0,0.95). Subtitle at 20px weight 600, line-height 1.40, color #615d59. Blue CTA button (#0075de, 4px radius, 8px 16px padding, white text) and ghost button (transparent bg, near-black text, underline on hover)." +- "Design a card: white background, 1px solid rgba(0,0,0,0.1) border, 12px radius. Use shadow stack: rgba(0,0,0,0.04) 0px 4px 18px, rgba(0,0,0,0.027) 0px 2.025px 7.85px, rgba(0,0,0,0.02) 0px 0.8px 2.93px, rgba(0,0,0,0.01) 0px 0.175px 1.04px. Title at 22px NotionInter weight 700, letter-spacing -0.25px. Body at 16px weight 400, color #615d59." +- "Build a pill badge: #f2f9ff background, #097fe8 text, 9999px radius, 4px 8px padding, 12px NotionInter weight 600, letter-spacing 0.125px." +- "Create navigation: white header. NotionInter 15px weight 600 for links, near-black text. Blue pill CTA 'Get Notion free' right-aligned (#0075de bg, white text, 4px radius)." +- "Design an alternating section layout: white sections alternate with warm white (#f6f5f4) sections. Each section has 64-80px vertical padding, max-width 1200px centered. Section heading at 48px weight 700, line-height 1.00, letter-spacing -1.5px." + +### Iteration Guide +1. Always use warm neutrals -- Notion's grays have yellow-brown undertones (#f6f5f4, #31302e, #615d59, #a39e98), never blue-gray +2. Letter-spacing scales with font size: -2.125px at 64px, -1.875px at 54px, -0.625px at 26px, normal at 16px +3. Four weights: 400 (read), 500 (interact), 600 (emphasize), 700 (announce) +4. Borders are whispers: 1px solid rgba(0,0,0,0.1) -- never heavier +5. Shadows use 4-5 layers with individual opacity never exceeding 0.05 +6. The warm white (#f6f5f4) section background is essential for visual rhythm +7. Pill badges (9999px) for status/tags, 4px radius for buttons and inputs +8. Notion Blue (#0075de) is the only saturated color in core UI -- use it sparingly for CTAs and links diff --git a/harness-init.sh b/harness-init.sh new file mode 100644 index 00000000..191fae5c --- /dev/null +++ b/harness-init.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Harness 会在每次会话启动时执行此脚本,这里只做轻量且可重复执行的环境检查。 +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +cd "$ROOT_DIR" + +command -v git >/dev/null || { + echo "ERROR: 缺少 git" + exit 1 +} + +command -v python3 >/dev/null || { + echo "ERROR: 缺少 python3" + exit 1 +} + +if [ -d "$ROOT_DIR/wolai-frontend" ]; then + if ! command -v node >/dev/null; then + echo "WARN: 缺少 node,前端相关任务可能无法执行" + fi + if ! command -v pnpm >/dev/null; then + echo "WARN: 缺少 pnpm,前端相关任务可能无法执行" + fi +fi + +echo "Harness 环境检查完成" diff --git a/harness-progress.txt b/harness-progress.txt new file mode 100644 index 00000000..4981d31e --- /dev/null +++ b/harness-progress.txt @@ -0,0 +1 @@ +[2026-04-14T05:21:15Z] [SESSION-0] INIT Harness initialized for project /mnt/Data1T/mnote diff --git a/harness-tasks.json b/harness-tasks.json new file mode 100644 index 00000000..35b2b738 --- /dev/null +++ b/harness-tasks.json @@ -0,0 +1,12 @@ +{ + "version": 2, + "created": "2026-04-14T05:21:15Z", + "session_config": { + "concurrency_mode": "exclusive", + "max_tasks_per_session": 20, + "max_sessions": 50 + }, + "tasks": [], + "session_count": 0, + "last_session": null +} diff --git a/rust/Cargo.lock b/rust/Cargo.lock new file mode 100644 index 00000000..6ec4b4b3 --- /dev/null +++ b/rust/Cargo.lock @@ -0,0 +1,38 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "core-domain" +version = "0.1.0" + +[[package]] +name = "core-protocol" +version = "0.1.0" +dependencies = [ + "core-domain", +] + +[[package]] +name = "event-log" +version = "0.1.0" +dependencies = [ + "core-domain", +] + +[[package]] +name = "index-fts" +version = "0.1.0" +dependencies = [ + "core-domain", + "event-log", +] + +[[package]] +name = "storage-convex-bridge" +version = "0.1.0" +dependencies = [ + "core-domain", + "core-protocol", + "event-log", +] diff --git a/rust/Cargo.toml b/rust/Cargo.toml new file mode 100644 index 00000000..ade0b7bb --- /dev/null +++ b/rust/Cargo.toml @@ -0,0 +1,18 @@ +[workspace] +members = [ + "crates/core-domain", + "crates/core-protocol", + "crates/event-log", + "crates/storage-convex-bridge", + "crates/index-fts", +] +resolver = "2" + +[workspace.package] +edition = "2021" +license = "MIT" +version = "0.1.0" +authors = ["mnote"] + +[workspace.metadata] +description = "mnote 单仓收口阶段的 Rust 内核 workspace" diff --git a/rust/crates/core-domain/Cargo.toml b/rust/crates/core-domain/Cargo.toml new file mode 100644 index 00000000..f1e90c83 --- /dev/null +++ b/rust/crates/core-domain/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "core-domain" +version.workspace = true +edition.workspace = true +license.workspace = true +authors.workspace = true + +[dependencies] diff --git a/rust/crates/core-domain/README.md b/rust/crates/core-domain/README.md new file mode 100644 index 00000000..a6383279 --- /dev/null +++ b/rust/crates/core-domain/README.md @@ -0,0 +1,6 @@ +# core-domain + +阶段 1 骨架 crate。 + +职责说明请先看: +- ../../design/phase1-b-crate-responsibilities-v0.md diff --git a/rust/crates/core-domain/src/audit.rs b/rust/crates/core-domain/src/audit.rs new file mode 100644 index 00000000..bd56a3d9 --- /dev/null +++ b/rust/crates/core-domain/src/audit.rs @@ -0,0 +1,43 @@ +use crate::ids::{AssetId, AssetVersionId, BlockId, PageId, TaskId}; +use crate::time::Timestamp; + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct ActorRef { + pub actor_type: String, + pub actor_id: String, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum SourceKind { + Web, + Cli, + Agent, + Job, + Import, + System, + Other(String), +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct ChangeReason { + pub code: String, + pub detail: Option, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum RefLink { + Page(PageId), + Block(BlockId), + Asset(AssetId), + AssetVersion(AssetVersionId), + Task(TaskId), + External(String), +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct AuditInfo { + pub created_at: Timestamp, + pub updated_at: Timestamp, + pub created_by: Option, + pub updated_by: Option, +} diff --git a/rust/crates/core-domain/src/entities.rs b/rust/crates/core-domain/src/entities.rs new file mode 100644 index 00000000..f0b960af --- /dev/null +++ b/rust/crates/core-domain/src/entities.rs @@ -0,0 +1,289 @@ +use crate::audit::{ActorRef, AuditInfo, ChangeReason, RefLink, SourceKind}; +use crate::ids::{ + AgentSessionId, AssetId, AssetVersionId, BlockId, CommandLogId, EventId, PageId, ReferenceId, + TaskId, WorkspaceId, +}; +use crate::time::Timestamp; +use crate::types::{Locale, Revision}; + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct Workspace { + pub workspace_id: WorkspaceId, + pub slug: String, + pub title: String, + pub owner_actor_id: String, + pub default_locale: Locale, + pub storage_policy: String, + pub sync_policy: String, + pub feature_flags: Vec, + pub archived_at: Option, + pub audit: AuditInfo, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum PageType { + Note, + Doc, + DatabaseRecord, + Inbox, + Template, + System, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum PageStatus { + Active, + Archived, + Deleted, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct Page { + pub page_id: PageId, + pub workspace_id: WorkspaceId, + pub parent_page_id: Option, + pub title: String, + pub slug: String, + pub icon: Option, + pub cover_asset_id: Option, + pub body_root_block_id: Option, + pub page_type: PageType, + pub status: PageStatus, + pub last_edited_at: Option, + pub last_edited_by: Option, + pub current_revision: Revision, + pub audit: AuditInfo, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum BlockType { + Paragraph, + Heading, + BulletedListItem, + NumberedListItem, + Todo, + Quote, + CodeBlock, + Divider, + Callout, + PageReference, + BlockReference, + EmbedAsset, + EmbedView, + EmbedOnlyoffice, + EmbedMindmap, + EmbedTable, + Custom(String), +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct Block { + pub block_id: BlockId, + pub workspace_id: WorkspaceId, + pub page_id: PageId, + pub parent_block_id: Option, + pub prev_block_id: Option, + pub next_block_id: Option, + pub sort_key: String, + pub block_type: BlockType, + pub content: String, + pub props: Vec<(String, String)>, + pub annotations: Vec, + pub status: String, + pub revision: Revision, + pub deleted_at: Option, + pub audit: AuditInfo, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum AssetKind { + Image, + Office, + Pdf, + Audio, + Video, + Export, + OcrDerived, + Other(String), +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum AssetStatus { + Active, + Archived, + Deleted, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct Asset { + pub asset_id: AssetId, + pub workspace_id: WorkspaceId, + pub storage_key: String, + pub original_name: String, + pub mime_type: String, + pub size_bytes: u64, + pub checksum: Option, + pub origin: String, + pub asset_kind: AssetKind, + pub status: AssetStatus, + pub latest_version_id: Option, + pub audit: AuditInfo, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct AssetVersion { + pub asset_version_id: AssetVersionId, + pub asset_id: AssetId, + pub version_no: u32, + pub storage_key: String, + pub checksum: Option, + pub derived_from_version_id: Option, + pub change_reason: Option, + pub created_at: Timestamp, + pub created_by: Option, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum ReferenceKind { + PageToPage, + BlockToBlock, + BlockToPage, + BlockToAssetFragment, + TaskToObject, + External, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct Reference { + pub reference_id: ReferenceId, + pub workspace_id: WorkspaceId, + pub source_object_type: String, + pub source_object_id: String, + pub target_object_type: String, + pub target_object_id: String, + pub anchor: String, + pub label: Option, + pub snippet: Option, + pub confidence: Option, + pub ref_kind: ReferenceKind, + pub created_at: Timestamp, + pub created_by: Option, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum TaskType { + Import, + Ocr, + Summary, + Reindex, + Sync, + Transform, + Other(String), +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum TaskStatus { + Pending, + Running, + Succeeded, + Failed, + Cancelled, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum TaskPriority { + Low, + Normal, + High, + Critical, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct Task { + pub task_id: TaskId, + pub workspace_id: WorkspaceId, + pub title: String, + pub description: Option, + pub task_type: TaskType, + pub status: TaskStatus, + pub priority: TaskPriority, + pub assignee_actor_id: Option, + pub source_page_id: Option, + pub source_block_id: Option, + pub input_payload: Option, + pub output_payload: Option, + pub due_at: Option, + pub completed_at: Option, + pub audit: AuditInfo, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct AgentSession { + pub agent_session_id: AgentSessionId, + pub workspace_id: WorkspaceId, + pub provider: String, + pub model: String, + pub initiator_actor_id: Option, + pub status: String, + pub started_at: Timestamp, + pub updated_at: Timestamp, + pub ended_at: Option, + pub tool_policy: Option, + pub confirmation_policy: Option, + pub summary: Option, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum CommandStatus { + Pending, + Succeeded, + Failed, + Cancelled, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct CommandLog { + pub command_log_id: CommandLogId, + pub workspace_id: WorkspaceId, + pub command_name: String, + pub actor: ActorRef, + pub source: SourceKind, + pub target_objects: Vec, + pub payload_summary: String, + pub refs: Vec, + pub idempotency_key: Option, + pub dry_run: bool, + pub status: CommandStatus, + pub created_at: Timestamp, + pub finished_at: Option, + pub error_code: Option, + pub error_message: Option, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum EventType { + PageCreated, + PageUpdated, + BlockInserted, + BlockMoved, + BlockUpdated, + BlockDeleted, + AssetVersionAdded, + ReferenceCreated, + TaskUpdated, + Other(String), +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct DomainEvent { + pub event_id: EventId, + pub workspace_id: WorkspaceId, + pub command_log_id: CommandLogId, + pub aggregate_type: String, + pub aggregate_id: String, + pub event_type: EventType, + pub before_revision: Option, + pub after_revision: Option, + pub payload_json: String, + pub created_at: Timestamp, +} diff --git a/rust/crates/core-domain/src/ids.rs b/rust/crates/core-domain/src/ids.rs new file mode 100644 index 00000000..d7d0048d --- /dev/null +++ b/rust/crates/core-domain/src/ids.rs @@ -0,0 +1,27 @@ +macro_rules! define_id { + ($name:ident) => { + #[derive(Debug, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] + pub struct $name(pub String); + + impl $name { + pub fn new(value: impl Into) -> Self { + Self(value.into()) + } + + pub fn as_str(&self) -> &str { + &self.0 + } + } + }; +} + +define_id!(WorkspaceId); +define_id!(PageId); +define_id!(BlockId); +define_id!(AssetId); +define_id!(AssetVersionId); +define_id!(ReferenceId); +define_id!(TaskId); +define_id!(AgentSessionId); +define_id!(CommandLogId); +define_id!(EventId); diff --git a/rust/crates/core-domain/src/lib.rs b/rust/crates/core-domain/src/lib.rs new file mode 100644 index 00000000..80be9616 --- /dev/null +++ b/rust/crates/core-domain/src/lib.rs @@ -0,0 +1,34 @@ +pub mod audit; +pub mod entities; +pub mod ids; +pub mod time; +pub mod types; + +pub use audit::{ActorRef, AuditInfo, ChangeReason, RefLink, SourceKind}; +pub use entities::{ + AgentSession, Asset, AssetKind, AssetStatus, AssetVersion, Block, BlockType, CommandLog, + CommandStatus, DomainEvent, EventType, Page, PageStatus, PageType, Reference, ReferenceKind, + Task, TaskPriority, TaskStatus, TaskType, Workspace, +}; +pub use ids::{ + AgentSessionId, AssetId, AssetVersionId, BlockId, CommandLogId, EventId, PageId, ReferenceId, + TaskId, WorkspaceId, +}; +pub use time::Timestamp; +pub use types::{Locale, Revision}; + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn revision_initial_is_one() { + assert_eq!(Revision::initial().0, 1); + } + + #[test] + fn workspace_id_keeps_original_value() { + let workspace_id = WorkspaceId::new("ws_demo"); + assert_eq!(workspace_id.as_str(), "ws_demo"); + } +} diff --git a/rust/crates/core-domain/src/time.rs b/rust/crates/core-domain/src/time.rs new file mode 100644 index 00000000..ea346d88 --- /dev/null +++ b/rust/crates/core-domain/src/time.rs @@ -0,0 +1,12 @@ +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)] +pub struct Timestamp(pub String); + +impl Timestamp { + pub fn new(value: impl Into) -> Self { + Self(value.into()) + } + + pub fn as_str(&self) -> &str { + &self.0 + } +} diff --git a/rust/crates/core-domain/src/types.rs b/rust/crates/core-domain/src/types.rs new file mode 100644 index 00000000..58e9d3f4 --- /dev/null +++ b/rust/crates/core-domain/src/types.rs @@ -0,0 +1,17 @@ +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct Revision(pub u64); + +impl Revision { + pub fn initial() -> Self { + Self(1) + } +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct Locale(pub String); + +impl Locale { + pub fn new(value: impl Into) -> Self { + Self(value.into()) + } +} diff --git a/rust/crates/core-protocol/Cargo.toml b/rust/crates/core-protocol/Cargo.toml new file mode 100644 index 00000000..23e56908 --- /dev/null +++ b/rust/crates/core-protocol/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "core-protocol" +version.workspace = true +edition.workspace = true +license.workspace = true +authors.workspace = true + +[dependencies] +core-domain = { path = "../core-domain" } diff --git a/rust/crates/core-protocol/README.md b/rust/crates/core-protocol/README.md new file mode 100644 index 00000000..02aaff74 --- /dev/null +++ b/rust/crates/core-protocol/README.md @@ -0,0 +1,8 @@ +# core-protocol + +阶段 1 协议模型 crate。 + +职责说明请先看: +- ../../design/phase1-d-command-api-v0.md +- ../../design/phase1-d-query-api-v0.md +- ../../design/phase1-d-tool-api-constraints-v0.md diff --git a/rust/crates/core-protocol/src/command.rs b/rust/crates/core-protocol/src/command.rs new file mode 100644 index 00000000..b11e1ef6 --- /dev/null +++ b/rust/crates/core-protocol/src/command.rs @@ -0,0 +1,101 @@ +use crate::common::{ActorPayload, AffectedObject, SourcePayload, TargetRef}; + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct CommandEnvelope { + pub name: String, + pub command_id: String, + pub idempotency_key: Option, + pub actor: ActorPayload, + pub source: SourcePayload, + pub target: Option, + pub payload: T, + pub reason: Option, + pub refs: Vec, + pub dry_run: bool, + pub validate_only: bool, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct CommandResult { + pub ok: bool, + pub command_id: String, + pub event_ids: Vec, + pub affected_objects: Vec, + pub revision: Option, + pub warnings: Vec, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct CreateWorkspace { + pub name: String, + pub slug: Option, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct CreatePage { + pub title: String, + pub parent_page_id: Option, + pub position: Option, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct UpdatePageTitle { + pub page_id: String, + pub title: String, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct UpdatePageStats { + pub page_id: String, + pub word_count: i64, + pub character_count: i64, + pub block_count: i64, + pub todo_total: i64, + pub todo_done: i64, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct UpdatePageOptions { + pub page_id: String, + pub wide_layout: Option, + pub small_text: Option, + pub show_heading_numbers: Option, + pub show_toc: Option, + pub show_structure: Option, + pub protect_editing: Option, + pub show_word_count: Option, + pub collapse_backlinks: Option, + pub page_font: Option, + pub layout_density: Option, + pub hide_child_pages: Option, + pub show_block_ref_count: Option, + pub embed_default_block_id: Option, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct InsertBlock { + pub page_id: String, + pub block_type: String, + pub content: String, + pub parent_block_id: Option, + pub prev_block_id: Option, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct UpdateBlock { + pub block_id: String, + pub patch_content: Option, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct MoveBlock { + pub block_id: String, + pub new_parent_block_id: Option, + pub new_page_id: Option, + pub prev_block_id: Option, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct DeleteBlock { + pub block_id: String, +} diff --git a/rust/crates/core-protocol/src/common.rs b/rust/crates/core-protocol/src/common.rs new file mode 100644 index 00000000..d9957461 --- /dev/null +++ b/rust/crates/core-protocol/src/common.rs @@ -0,0 +1,59 @@ +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct ActorPayload { + pub actor_type: String, + pub actor_id: String, + pub session_id: Option, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct SourcePayload { + pub channel: String, + pub client: String, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct TargetRef { + pub workspace_id: Option, + pub page_id: Option, + pub block_id: Option, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct RequestMeta { + pub idempotency_key: Option, + pub validate_only: bool, + pub dry_run: bool, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct AffectedObject { + pub object_type: String, + pub object_id: String, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct ResponseMeta { + pub request_id: String, + pub trace_id: String, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct OkPayload { + pub data: T, + pub meta: ResponseMeta, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct ErrorDetail { + pub field: Option, + pub reason: String, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct ErrorPayload { + pub code: String, + pub message: String, + pub details: Vec, + pub retryable: bool, + pub meta: ResponseMeta, +} diff --git a/rust/crates/core-protocol/src/governance.rs b/rust/crates/core-protocol/src/governance.rs new file mode 100644 index 00000000..03fd2303 --- /dev/null +++ b/rust/crates/core-protocol/src/governance.rs @@ -0,0 +1,116 @@ +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct AccessContext { + pub tenant_id: Option, + pub workspace_id: String, + pub actor_id: String, + pub actor_type: String, + pub source: String, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum AccessDecision { + Allow, + Deny(AccessDenyReason), +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum AccessDenyReason { + MissingTenant, + MissingWorkspace, + PermissionDenied, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum JobStatus { + Pending, + Running, + Succeeded, + Failed, + RetryScheduled, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct JobTicket { + pub job_id: String, + pub job_type: String, + pub request_id: String, + pub trace_id: String, + pub workspace_id: String, + pub status: JobStatus, +} + +impl JobTicket { + pub fn new( + job_id: impl Into, + job_type: impl Into, + request_id: impl Into, + trace_id: impl Into, + workspace_id: impl Into, + status: JobStatus, + ) -> Self { + Self { + job_id: job_id.into(), + job_type: job_type.into(), + request_id: request_id.into(), + trace_id: trace_id.into(), + workspace_id: workspace_id.into(), + status, + } + } +} + +pub fn decide_access(context: &AccessContext) -> AccessDecision { + if context.tenant_id.is_none() { + return AccessDecision::Deny(AccessDenyReason::MissingTenant); + } + if context.workspace_id.trim().is_empty() { + return AccessDecision::Deny(AccessDenyReason::MissingWorkspace); + } + AccessDecision::Allow +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn access_requires_tenant() { + let context = AccessContext { + tenant_id: None, + workspace_id: "ws-1".to_string(), + actor_id: "user-1".to_string(), + actor_type: "human".to_string(), + source: "react-next".to_string(), + }; + assert_eq!( + decide_access(&context), + AccessDecision::Deny(AccessDenyReason::MissingTenant) + ); + } + + #[test] + fn access_allows_valid_context() { + let context = AccessContext { + tenant_id: Some("tenant-1".to_string()), + workspace_id: "ws-1".to_string(), + actor_id: "user-1".to_string(), + actor_type: "human".to_string(), + source: "react-next".to_string(), + }; + assert_eq!(decide_access(&context), AccessDecision::Allow); + } + + #[test] + fn job_ticket_keeps_trace_fields() { + let ticket = JobTicket::new( + "job-1", + "rebuild-index", + "req-1", + "trace-1", + "ws-1", + JobStatus::Pending, + ); + assert_eq!(ticket.trace_id, "trace-1"); + assert_eq!(ticket.status, JobStatus::Pending); + } +} diff --git a/rust/crates/core-protocol/src/lib.rs b/rust/crates/core-protocol/src/lib.rs new file mode 100644 index 00000000..1c4cd651 --- /dev/null +++ b/rust/crates/core-protocol/src/lib.rs @@ -0,0 +1,50 @@ +pub mod command; +pub mod common; +pub mod governance; +pub mod query; +pub mod tool; + +pub use command::{ + CommandEnvelope, CreatePage, CreateWorkspace, DeleteBlock, InsertBlock, MoveBlock, + UpdateBlock, UpdatePageStats, UpdatePageTitle, +}; +pub use common::{ + ActorPayload, AffectedObject, ErrorDetail, ErrorPayload, OkPayload, RequestMeta, ResponseMeta, + SourcePayload, TargetRef, +}; +pub use query::{GetPage, ListPageBlocks, QueryEnvelope, SearchBlocks, SearchPages}; +pub use tool::{InvocationKind, ToolInvocation}; + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn command_envelope_keeps_validate_only_flag() { + let envelope = CommandEnvelope:: { + name: "create_workspace".into(), + command_id: "cmd_1".into(), + idempotency_key: Some("idem_1".into()), + actor: ActorPayload { + actor_type: "human".into(), + actor_id: "user_1".into(), + session_id: Some("session_1".into()), + }, + source: SourcePayload { + channel: "cli".into(), + client: "mnote-cli".into(), + }, + target: None, + payload: CreateWorkspace { + name: "demo".into(), + slug: Some("demo".into()), + }, + reason: Some("初始化工作区".into()), + refs: vec![], + dry_run: false, + validate_only: true, + }; + + assert!(envelope.validate_only); + } +} diff --git a/rust/crates/core-protocol/src/query.rs b/rust/crates/core-protocol/src/query.rs new file mode 100644 index 00000000..5e513939 --- /dev/null +++ b/rust/crates/core-protocol/src/query.rs @@ -0,0 +1,36 @@ +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct QueryEnvelope { + pub name: String, + pub payload: T, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct Pagination { + pub limit: u32, + pub cursor: Option, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct GetPage { + pub page_id: String, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct ListPageBlocks { + pub page_id: String, + pub pagination: Pagination, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct SearchPages { + pub query: String, + pub workspace_id: Option, + pub pagination: Pagination, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct SearchBlocks { + pub query: String, + pub page_id: Option, + pub pagination: Pagination, +} diff --git a/rust/crates/core-protocol/src/tool.rs b/rust/crates/core-protocol/src/tool.rs new file mode 100644 index 00000000..26682fb8 --- /dev/null +++ b/rust/crates/core-protocol/src/tool.rs @@ -0,0 +1,13 @@ +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum InvocationKind { + Command, + Query, + Job, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct ToolInvocation { + pub tool: String, + pub kind: InvocationKind, + pub args_json: String, +} diff --git a/rust/crates/event-log/Cargo.toml b/rust/crates/event-log/Cargo.toml new file mode 100644 index 00000000..6baee6cb --- /dev/null +++ b/rust/crates/event-log/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "event-log" +version.workspace = true +edition.workspace = true +license.workspace = true +authors.workspace = true + +[dependencies] +core-domain = { path = "../core-domain" } diff --git a/rust/crates/event-log/README.md b/rust/crates/event-log/README.md new file mode 100644 index 00000000..b0d222cf --- /dev/null +++ b/rust/crates/event-log/README.md @@ -0,0 +1,8 @@ +# event-log + +阶段 1 事件日志 crate。 + +职责说明请先看: +- ../../design/phase1-e-command-log-v0.md +- ../../design/phase1-e-domain-event-v0.md +- ../../design/phase1-e-event-generation-rules-v0.md diff --git a/rust/crates/event-log/src/command_log.rs b/rust/crates/event-log/src/command_log.rs new file mode 100644 index 00000000..c19049e7 --- /dev/null +++ b/rust/crates/event-log/src/command_log.rs @@ -0,0 +1,29 @@ +use core_domain::Timestamp; +use core_domain::{RefLink, WorkspaceId}; + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum CommandLogStatus { + Pending, + Succeeded, + Failed, + RolledBack, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct CommandLogRecord { + pub command_log_id: String, + pub command_name: String, + pub actor_type: String, + pub actor_id: String, + pub source: String, + pub workspace_id: WorkspaceId, + pub target_objects: Vec, + pub payload_summary: String, + pub refs_json: String, + pub idempotency_key: Option, + pub status: CommandLogStatus, + pub created_at: Timestamp, + pub finished_at: Option, + pub trace_id: String, + pub request_id: String, +} diff --git a/rust/crates/event-log/src/domain_event.rs b/rust/crates/event-log/src/domain_event.rs new file mode 100644 index 00000000..3a81e78f --- /dev/null +++ b/rust/crates/event-log/src/domain_event.rs @@ -0,0 +1,36 @@ +use core_domain::Timestamp; + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum EventStatus { + Pending, + Committed, + Rejected, + Failed, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct DomainEventRecord { + pub event_id: String, + pub workspace_id: String, + pub aggregate_type: String, + pub aggregate_id: String, + pub event_type: String, + pub event_version: u32, + pub payload_json: String, + pub command_log_id: String, + pub actor_type: String, + pub created_at: Timestamp, + pub status: EventStatus, + pub trace_id: String, + pub request_id: String, + pub command_id: String, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct EventGenerationOutcome { + pub command_log_id: String, + pub emitted_event_ids: Vec, + pub generated_for_replay: bool, + pub generated_for_audit: bool, + pub generated_for_index_catchup: bool, +} diff --git a/rust/crates/event-log/src/lib.rs b/rust/crates/event-log/src/lib.rs new file mode 100644 index 00000000..7cca459e --- /dev/null +++ b/rust/crates/event-log/src/lib.rs @@ -0,0 +1,23 @@ +pub mod command_log; +pub mod domain_event; +pub mod rules; + +pub use command_log::{CommandLogRecord, CommandLogStatus}; +pub use domain_event::{DomainEventRecord, EventGenerationOutcome, EventStatus}; +pub use rules::{should_emit_domain_event, EventGenerationRule}; + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn failed_command_does_not_emit_success_event() { + let should_emit = should_emit_domain_event(&EventGenerationRule { + command_succeeded: false, + changed_domain_state: false, + rolled_back: false, + }); + + assert!(!should_emit); + } +} diff --git a/rust/crates/event-log/src/rules.rs b/rust/crates/event-log/src/rules.rs new file mode 100644 index 00000000..64601ecf --- /dev/null +++ b/rust/crates/event-log/src/rules.rs @@ -0,0 +1,10 @@ +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct EventGenerationRule { + pub command_succeeded: bool, + pub changed_domain_state: bool, + pub rolled_back: bool, +} + +pub fn should_emit_domain_event(rule: &EventGenerationRule) -> bool { + rule.command_succeeded && rule.changed_domain_state && !rule.rolled_back +} diff --git a/rust/crates/index-fts/Cargo.toml b/rust/crates/index-fts/Cargo.toml new file mode 100644 index 00000000..cfe4ac1f --- /dev/null +++ b/rust/crates/index-fts/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "index-fts" +version.workspace = true +edition.workspace = true +license.workspace = true +authors.workspace = true + +[dependencies] +core-domain = { path = "../core-domain" } +event-log = { path = "../event-log" } diff --git a/rust/crates/index-fts/README.md b/rust/crates/index-fts/README.md new file mode 100644 index 00000000..78519b9e --- /dev/null +++ b/rust/crates/index-fts/README.md @@ -0,0 +1,6 @@ +# index-fts + +阶段 1 骨架 crate。 + +职责说明请先看: +- ../../design/phase1-b-crate-responsibilities-v0.md diff --git a/rust/crates/index-fts/src/lib.rs b/rust/crates/index-fts/src/lib.rs new file mode 100644 index 00000000..dc3b5922 --- /dev/null +++ b/rust/crates/index-fts/src/lib.rs @@ -0,0 +1,355 @@ +use event_log::DomainEventRecord; + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum IndexedEntityKind { + PageTitle, + PageSummary, + BlockContent, + BlockPath, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct IndexedDocument { + pub workspace_id: String, + pub entity_kind: IndexedEntityKind, + pub entity_id: String, + pub parent_id: Option, + pub title: Option, + pub content: String, + pub updated_at: String, + pub source_event_id: Option, + pub revision: Option, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct IndexCursor { + pub workspace_id: String, + pub last_processed_event_id: String, + pub last_processed_at: String, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct SearchHit { + pub workspace_id: String, + pub entity_kind: IndexedEntityKind, + pub entity_id: String, + pub snippet: Option, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct SearchResultSet { + pub query: String, + pub workspace_id: Option, + pub page_id: Option, + pub hits: Vec, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct ProjectedDocumentBatch { + pub workspace_id: String, + pub source_event_id: String, + pub documents: Vec, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct ProjectionResult { + pub cursor: IndexCursor, + pub batches: Vec, +} + +pub trait DomainEventProjector { + fn project(&self, event: &DomainEventRecord) -> Vec; +} + +pub fn supported_index_objects() -> Vec { + vec![ + IndexedEntityKind::PageTitle, + IndexedEntityKind::PageSummary, + IndexedEntityKind::BlockContent, + IndexedEntityKind::BlockPath, + ] +} + +pub fn can_rebuild_from_events(cursor: &IndexCursor) -> bool { + !cursor.workspace_id.trim().is_empty() && !cursor.last_processed_event_id.trim().is_empty() +} + +pub fn advance_workspace_cursor( + cursor: &IndexCursor, + event_id: impl Into, + processed_at: impl Into, +) -> IndexCursor { + IndexCursor { + workspace_id: cursor.workspace_id.clone(), + last_processed_event_id: event_id.into(), + last_processed_at: processed_at.into(), + } +} + +pub fn project_domain_event( + projector: &P, + event: &DomainEventRecord, + cursor: &IndexCursor, +) -> ProjectionResult { + let documents = projector.project(event); + ProjectionResult { + cursor: advance_workspace_cursor( + cursor, + event.event_id.clone(), + event.created_at.as_str().to_string(), + ), + batches: if documents.is_empty() { + Vec::new() + } else { + vec![ProjectedDocumentBatch { + workspace_id: event.workspace_id.clone(), + source_event_id: event.event_id.clone(), + documents, + }] + }, + } +} + +pub fn rebuild_from_events( + projector: &P, + events: &[DomainEventRecord], + cursor: &IndexCursor, +) -> ProjectionResult { + let mut next_cursor = cursor.clone(); + let mut batches = Vec::new(); + for event in events { + if event.workspace_id != cursor.workspace_id { + continue; + } + let projected = projector.project(event); + next_cursor = advance_workspace_cursor( + &next_cursor, + event.event_id.clone(), + event.created_at.as_str().to_string(), + ); + if !projected.is_empty() { + batches.push(ProjectedDocumentBatch { + workspace_id: event.workspace_id.clone(), + source_event_id: event.event_id.clone(), + documents: projected, + }); + } + } + ProjectionResult { + cursor: next_cursor, + batches, + } +} + +pub fn search_pages( + query: &str, + workspace_id: Option<&str>, + documents: &[IndexedDocument], + limit: usize, +) -> SearchResultSet { + let query = query.trim().to_lowercase(); + let hits = documents + .iter() + .filter(|document| matches!(document.entity_kind, IndexedEntityKind::PageTitle | IndexedEntityKind::PageSummary)) + .filter(|document| workspace_id.map_or(true, |workspace| document.workspace_id == workspace)) + .filter(|document| document.title.as_deref().unwrap_or("").to_lowercase().contains(&query) + || document.content.to_lowercase().contains(&query)) + .take(limit) + .map(|document| SearchHit { + workspace_id: document.workspace_id.clone(), + entity_kind: document.entity_kind.clone(), + entity_id: document.entity_id.clone(), + snippet: Some(document.content.chars().take(120).collect()), + }) + .collect(); + + SearchResultSet { + query: query.into(), + workspace_id: workspace_id.map(|value| value.into()), + page_id: None, + hits, + } +} + +pub fn search_blocks( + query: &str, + page_id: Option<&str>, + documents: &[IndexedDocument], + limit: usize, +) -> SearchResultSet { + let query = query.trim().to_lowercase(); + let hits = documents + .iter() + .filter(|document| matches!(document.entity_kind, IndexedEntityKind::BlockContent | IndexedEntityKind::BlockPath)) + .filter(|document| page_id.map_or(true, |page| document.parent_id.as_deref() == Some(page) || document.entity_id == page)) + .filter(|document| document.content.to_lowercase().contains(&query)) + .take(limit) + .map(|document| SearchHit { + workspace_id: document.workspace_id.clone(), + entity_kind: document.entity_kind.clone(), + entity_id: document.entity_id.clone(), + snippet: Some(document.content.chars().take(120).collect()), + }) + .collect(); + + SearchResultSet { + query: query.into(), + workspace_id: None, + page_id: page_id.map(|value| value.into()), + hits, + } +} + +pub struct MinimalWorkspaceProjector; + +impl DomainEventProjector for MinimalWorkspaceProjector { + fn project(&self, event: &DomainEventRecord) -> Vec { + let content = event.payload_json.trim(); + let (entity_kind, title, parent_id) = match event.aggregate_type.as_str() { + "page" => ( + IndexedEntityKind::PageTitle, + Some(event.event_type.clone()), + None, + ), + "block" => ( + IndexedEntityKind::BlockContent, + None, + Some(event.aggregate_id.clone()), + ), + _ => return Vec::new(), + }; + + vec![IndexedDocument { + workspace_id: event.workspace_id.clone(), + entity_kind, + entity_id: event.aggregate_id.clone(), + parent_id, + title, + content: content.to_string(), + updated_at: event.created_at.as_str().to_string(), + source_event_id: Some(event.event_id.clone()), + revision: Some(event.event_version as u64), + }] + } +} + +#[cfg(test)] +mod tests { + use super::*; + use core_domain::Timestamp; + use event_log::EventStatus; + + fn cursor() -> IndexCursor { + IndexCursor { + workspace_id: "ws_1".into(), + last_processed_event_id: "evt_0".into(), + last_processed_at: "2026-04-11T00:00:00Z".into(), + } + } + + fn event( + workspace_id: &str, + aggregate_type: &str, + aggregate_id: &str, + event_id: &str, + event_type: &str, + ) -> DomainEventRecord { + DomainEventRecord { + event_id: event_id.into(), + workspace_id: workspace_id.into(), + aggregate_type: aggregate_type.into(), + aggregate_id: aggregate_id.into(), + event_type: event_type.into(), + event_version: 1, + payload_json: "{\"text\":\"hello\"}".into(), + command_log_id: "cmd_1".into(), + actor_type: "human".into(), + created_at: Timestamp::new("2026-04-11T00:00:01Z"), + status: EventStatus::Committed, + trace_id: "trace_1".into(), + request_id: "req_1".into(), + command_id: "cmd_1".into(), + } + } + + #[test] + fn supports_page_and_block_projection_objects() { + assert_eq!( + supported_index_objects(), + vec![ + IndexedEntityKind::PageTitle, + IndexedEntityKind::PageSummary, + IndexedEntityKind::BlockContent, + IndexedEntityKind::BlockPath + ] + ); + } + + #[test] + fn cursor_advances_incrementally() { + let next = advance_workspace_cursor(&cursor(), "evt_2", "2026-04-11T00:00:02Z"); + assert_eq!(next.last_processed_event_id, "evt_2"); + assert_eq!(next.workspace_id, "ws_1"); + } + + #[test] + fn projector_builds_real_documents_for_page_and_block() { + let projector = MinimalWorkspaceProjector; + let page_docs = + projector.project(&event("ws_1", "page", "page_1", "evt_1", "page.created")); + let block_docs = + projector.project(&event("ws_1", "block", "block_1", "evt_2", "block.created")); + assert_eq!(page_docs.len(), 1); + assert_eq!(block_docs.len(), 1); + assert_eq!(page_docs[0].entity_kind, IndexedEntityKind::PageTitle); + assert_eq!(block_docs[0].entity_kind, IndexedEntityKind::BlockContent); + } + + #[test] + fn rebuild_skips_other_workspaces_and_keeps_cursor() { + let projector = MinimalWorkspaceProjector; + let events = vec![ + event("ws_2", "page", "page_x", "evt_x", "page.created"), + event("ws_1", "block", "block_1", "evt_1", "block.created"), + ]; + let result = rebuild_from_events(&projector, &events, &cursor()); + assert_eq!(result.batches.len(), 1); + assert_eq!(result.cursor.last_processed_event_id, "evt_1"); + } + + #[test] + fn search_helpers_return_hits() { + let docs = vec![ + IndexedDocument { + workspace_id: "ws_1".into(), + entity_kind: IndexedEntityKind::PageTitle, + entity_id: "page_1".into(), + parent_id: None, + title: Some("Rust Notes".into()), + content: "Rust notes for phase 2".into(), + updated_at: "2026-04-11T00:00:01Z".into(), + source_event_id: Some("evt_1".into()), + revision: Some(1), + }, + IndexedDocument { + workspace_id: "ws_1".into(), + entity_kind: IndexedEntityKind::BlockContent, + entity_id: "block_1".into(), + parent_id: Some("page_1".into()), + title: None, + content: "A block about rust search indexing".into(), + updated_at: "2026-04-11T00:00:02Z".into(), + source_event_id: Some("evt_2".into()), + revision: Some(1), + }, + ]; + + let pages = search_pages("rust", Some("ws_1"), &docs, 10); + assert_eq!(pages.hits.len(), 1); + assert_eq!(pages.hits[0].entity_id, "page_1"); + + let blocks = search_blocks("search", Some("page_1"), &docs, 10); + assert_eq!(blocks.hits.len(), 1); + assert_eq!(blocks.hits[0].entity_id, "block_1"); + } +} diff --git a/rust/crates/storage-convex-bridge/Cargo.toml b/rust/crates/storage-convex-bridge/Cargo.toml new file mode 100644 index 00000000..ba213305 --- /dev/null +++ b/rust/crates/storage-convex-bridge/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "storage-convex-bridge" +version.workspace = true +edition.workspace = true +license.workspace = true +authors.workspace = true + +[dependencies] +core-domain = { path = "../core-domain" } +core-protocol = { path = "../core-protocol" } +event-log = { path = "../event-log" } diff --git a/rust/crates/storage-convex-bridge/README.md b/rust/crates/storage-convex-bridge/README.md new file mode 100644 index 00000000..56fffc22 --- /dev/null +++ b/rust/crates/storage-convex-bridge/README.md @@ -0,0 +1,18 @@ +# storage-convex-bridge + +阶段 1 的 Convex 桥接 crate。 + +当前职责: +- 把 Rust 协议对象映射为 Convex 读写请求 +- 透传 request / actor / workspace / auth 上下文 +- 生成最小 CommandLog / DomainEvent 骨架 + +当前明确不做: +- 不复制主事实层 +- 不维护第二数据库 +- 不隐藏 tenant / auth / request context +- 不承载复杂业务裁决 + +相关设计文档: +- `../../design/phase1-f-bridge-responsibilities-v0.md` +- `../../design/phase1-f-write-read-flow-v0.md` diff --git a/rust/crates/storage-convex-bridge/src/context.rs b/rust/crates/storage-convex-bridge/src/context.rs new file mode 100644 index 00000000..435f47a5 --- /dev/null +++ b/rust/crates/storage-convex-bridge/src/context.rs @@ -0,0 +1,18 @@ +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct BridgeContext { + pub deployment_id: Option, + pub project_id: Option, + pub workspace_id: Option, + pub request_id: String, + pub trace_id: String, + pub actor_type: String, + pub actor_id: String, + pub session_id: Option, + pub tenant_id: Option, + pub auth_token: Option, + pub source_channel: String, + pub source_client: String, + pub idempotency_key: Option, + pub validate_only: bool, + pub dry_run: bool, +} diff --git a/rust/crates/storage-convex-bridge/src/lib.rs b/rust/crates/storage-convex-bridge/src/lib.rs new file mode 100644 index 00000000..93da3b81 --- /dev/null +++ b/rust/crates/storage-convex-bridge/src/lib.rs @@ -0,0 +1,266 @@ +pub mod context; +pub mod mapping; +pub mod read_path; +pub mod types; +pub mod validation; +pub mod write_path; + +pub use context::BridgeContext; +pub use mapping::{ + map_command_name_to_convex, map_query_name_to_convex, ConvexMutationRequest, ConvexQueryRequest, +}; +pub use read_path::{build_query_request, QueryReadResult}; +pub use types::{BridgeError, BridgeErrorKind, BridgeResult}; +pub use validation::{validate_command_envelope, validate_query_envelope}; +pub use write_path::{ + build_command_log_record, build_domain_event_record, build_write_pipeline, build_write_request, + WritePipelineResult, +}; + +#[cfg(test)] +mod tests { + use super::*; + use core_protocol::{ + command::{CreatePage, CreateWorkspace, UpdatePageOptions, UpdatePageStats, UpdatePageTitle}, + query::GetPage, + ActorPayload, CommandEnvelope, QueryEnvelope, SourcePayload, TargetRef, + }; + + fn demo_context() -> BridgeContext { + BridgeContext { + deployment_id: Some("dep_1".into()), + project_id: Some("proj_1".into()), + request_id: "req_1".into(), + trace_id: "trace_1".into(), + actor_type: "human".into(), + actor_id: "user_1".into(), + session_id: Some("session_1".into()), + workspace_id: Some("ws_1".into()), + tenant_id: Some("tenant_1".into()), + auth_token: Some("token_1".into()), + source_channel: "cli".into(), + source_client: "mnote-cli".into(), + idempotency_key: Some("idem_ctx".into()), + validate_only: false, + dry_run: false, + } + } + + #[test] + fn build_write_request_keeps_workspace_scope() { + let command = CommandEnvelope { + name: "create_page".into(), + command_id: "cmd_1".into(), + idempotency_key: Some("idem_cmd".into()), + actor: ActorPayload { + actor_type: "human".into(), + actor_id: "user_1".into(), + session_id: Some("session_1".into()), + }, + source: SourcePayload { + channel: "cli".into(), + client: "mnote-cli".into(), + }, + target: Some(TargetRef { + workspace_id: Some("ws_1".into()), + page_id: None, + block_id: None, + }), + payload: CreatePage { + title: "第一页".into(), + parent_page_id: None, + position: None, + }, + reason: Some("初始化页面".into()), + refs: vec!["spec:phase1-f".into()], + dry_run: false, + validate_only: false, + }; + + let request = build_write_request(&demo_context(), &command).expect("write request should build"); + assert_eq!(request.function_name, "pages:create"); + assert_eq!(request.workspace_id.as_deref(), Some("ws_1")); + assert_eq!(request.deployment_id.as_deref(), Some("dep_1")); + assert_eq!(request.project_id.as_deref(), Some("proj_1")); + assert_eq!(request.idempotency_key.as_deref(), Some("idem_cmd")); + assert!(request.payload_json.contains("\"kind\":\"command\"")); + assert!(request.payload_json.contains("\"name\":\"create_page\"")); + } + + #[test] + fn build_query_request_includes_trace_and_workspace() { + let query = QueryEnvelope { + name: "get_page".into(), + payload: GetPage { + page_id: "page_1".into(), + }, + }; + + let request = build_query_request(&demo_context(), &query).expect("query request should build"); + assert_eq!(request.function_name, "pages:get"); + assert_eq!(request.workspace_id.as_deref(), Some("ws_1")); + assert_eq!(request.request_id, "req_1"); + assert_eq!(request.trace_id, "trace_1"); + assert!(request.payload_json.contains("\"kind\":\"query\"")); + assert!(request.payload_json.contains("\"name\":\"get_page\"")); + } + + #[test] + fn build_write_pipeline_sets_trace_fields() { + let command = CommandEnvelope { + name: "create_workspace".into(), + command_id: "cmd_2".into(), + idempotency_key: None, + actor: ActorPayload { + actor_type: "human".into(), + actor_id: "user_1".into(), + session_id: Some("session_1".into()), + }, + source: SourcePayload { + channel: "cli".into(), + client: "mnote-cli".into(), + }, + target: None, + payload: CreateWorkspace { + name: "demo".into(), + slug: Some("demo".into()), + }, + reason: Some("初始化工作区".into()), + refs: vec![], + dry_run: false, + validate_only: false, + }; + + let pipeline = build_write_pipeline(&demo_context(), &command).expect("pipeline should build"); + assert_eq!(pipeline.command_log.command_name, "create_workspace"); + assert!(pipeline.command_log.payload_summary.contains("request_id=req_1")); + assert_eq!(pipeline.command_log.trace_id, "trace_1"); + assert_eq!(pipeline.command_log.request_id, "req_1"); + assert!(pipeline.domain_event.payload_json.contains("\"trace_id\":\"trace_1\"")); + assert_eq!(pipeline.result.event_ids, vec!["evt_cmd_2".to_string()]); + } + + #[test] + fn document_title_command_maps_to_documents_update_title() { + let command = CommandEnvelope { + name: "documents.title.update".into(), + command_id: "cmd_title_1".into(), + idempotency_key: Some("idem_title".into()), + actor: ActorPayload { + actor_type: "human".into(), + actor_id: "user_1".into(), + session_id: Some("session_1".into()), + }, + source: SourcePayload { + channel: "next-route".into(), + client: "wolai-frontend".into(), + }, + target: Some(TargetRef { + workspace_id: Some("ws_1".into()), + page_id: Some("page_1".into()), + block_id: None, + }), + payload: UpdatePageTitle { + page_id: "page_1".into(), + title: "新标题".into(), + }, + reason: None, + refs: vec![], + dry_run: false, + validate_only: false, + }; + + let request = build_write_request(&demo_context(), &command).expect("write request should build"); + assert_eq!(request.function_name, "documents:updateTitle"); + assert_eq!(request.workspace_id.as_deref(), Some("ws_1")); + assert!(request.payload_json.contains("\"name\":\"documents.title.update\"")); + } + + #[test] + fn document_stats_command_maps_to_documents_update_stats() { + let command = CommandEnvelope { + name: "documents.stats.update".into(), + command_id: "cmd_stats_1".into(), + idempotency_key: Some("idem_stats".into()), + actor: ActorPayload { + actor_type: "human".into(), + actor_id: "user_1".into(), + session_id: Some("session_1".into()), + }, + source: SourcePayload { + channel: "next-route".into(), + client: "wolai-frontend".into(), + }, + target: Some(TargetRef { + workspace_id: Some("ws_1".into()), + page_id: Some("page_1".into()), + block_id: None, + }), + payload: UpdatePageStats { + page_id: "page_1".into(), + word_count: 10, + character_count: 20, + block_count: 3, + todo_total: 4, + todo_done: 1, + }, + reason: None, + refs: vec![], + dry_run: false, + validate_only: false, + }; + + let request = build_write_request(&demo_context(), &command).expect("write request should build"); + assert_eq!(request.function_name, "documents:updateStats"); + assert_eq!(request.workspace_id.as_deref(), Some("ws_1")); + assert!(request.payload_json.contains("\"name\":\"documents.stats.update\"")); + } + + #[test] + fn document_options_command_maps_to_documents_update_options() { + let command = CommandEnvelope { + name: "documents.options.update".into(), + command_id: "cmd_options_1".into(), + idempotency_key: Some("idem_options".into()), + actor: ActorPayload { + actor_type: "human".into(), + actor_id: "user_1".into(), + session_id: Some("session_1".into()), + }, + source: SourcePayload { + channel: "next-route".into(), + client: "wolai-frontend".into(), + }, + target: Some(TargetRef { + workspace_id: Some("ws_1".into()), + page_id: Some("page_1".into()), + block_id: None, + }), + payload: UpdatePageOptions { + page_id: "page_1".into(), + wide_layout: None, + small_text: None, + show_heading_numbers: None, + show_toc: Some(true), + show_structure: None, + protect_editing: None, + show_word_count: None, + collapse_backlinks: None, + page_font: None, + layout_density: Some("compact".into()), + hide_child_pages: None, + show_block_ref_count: None, + embed_default_block_id: None, + }, + reason: None, + refs: vec![], + dry_run: false, + validate_only: false, + }; + + let request = build_write_request(&demo_context(), &command).expect("write request should build"); + assert_eq!(request.function_name, "documents:updateOptions"); + assert_eq!(request.workspace_id.as_deref(), Some("ws_1")); + assert!(request.payload_json.contains("\"name\":\"documents.options.update\"")); + } +} diff --git a/rust/crates/storage-convex-bridge/src/mapping.rs b/rust/crates/storage-convex-bridge/src/mapping.rs new file mode 100644 index 00000000..bbc3fc1b --- /dev/null +++ b/rust/crates/storage-convex-bridge/src/mapping.rs @@ -0,0 +1,93 @@ +use crate::context::BridgeContext; + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct ConvexMutationRequest { + pub function_name: String, + pub deployment_id: Option, + pub project_id: Option, + pub workspace_id: Option, + pub request_id: String, + pub trace_id: String, + pub idempotency_key: Option, + pub actor_id: String, + pub payload_json: String, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct ConvexQueryRequest { + pub function_name: String, + pub deployment_id: Option, + pub project_id: Option, + pub workspace_id: Option, + pub request_id: String, + pub trace_id: String, + pub actor_id: String, + pub payload_json: String, +} + +pub fn map_command_name_to_convex(command_name: &str) -> &'static str { + match command_name { + "create_workspace" => "workspaces:create", + "create_page" => "pages:create", + "documents.title.update" => "documents:updateTitle", + "documents.stats.update" => "documents:updateStats", + "documents.options.update" => "documents:updateOptions", + "insert_block" => "blocks:insert", + "update_block" => "blocks:update", + "move_block" => "blocks:move", + "delete_block" => "blocks:delete", + _ => "commands:unknown", + } +} + +pub fn map_query_name_to_convex(query_name: &str) -> &'static str { + match query_name { + "get_page" => "pages:get", + "list_page_blocks" => "blocks:list_by_page", + "search_pages" => "search:pages", + "search_blocks" => "search:blocks", + _ => "queries:unknown", + } +} + +fn json_opt(value: &Option) -> String { + match value { + Some(v) => format!("\"{}\"", v), + None => "null".into(), + } +} + +pub fn payload_json_for_command(context: &BridgeContext, command_name: &str) -> String { + format!( + "{{\"kind\":\"command\",\"name\":\"{}\",\"request_id\":\"{}\",\"trace_id\":\"{}\",\"deployment_id\":{},\"project_id\":{},\"workspace_id\":{},\"tenant_id\":{},\"idempotency_key\":{},\"actor\":{{\"type\":\"{}\",\"id\":\"{}\",\"session_id\":{}}},\"source\":{{\"channel\":\"{}\",\"client\":\"{}\"}}}}", + command_name, + context.request_id, + context.trace_id, + json_opt(&context.deployment_id), + json_opt(&context.project_id), + json_opt(&context.workspace_id), + json_opt(&context.tenant_id), + json_opt(&context.idempotency_key), + context.actor_type, + context.actor_id, + json_opt(&context.session_id), + context.source_channel, + context.source_client, + ) +} + +pub fn payload_json_for_query(context: &BridgeContext, query_name: &str) -> String { + format!( + "{{\"kind\":\"query\",\"name\":\"{}\",\"request_id\":\"{}\",\"trace_id\":\"{}\",\"deployment_id\":{},\"project_id\":{},\"workspace_id\":{},\"tenant_id\":{},\"actor_id\":\"{}\",\"source\":{{\"channel\":\"{}\",\"client\":\"{}\"}}}}", + query_name, + context.request_id, + context.trace_id, + json_opt(&context.deployment_id), + json_opt(&context.project_id), + json_opt(&context.workspace_id), + json_opt(&context.tenant_id), + context.actor_id, + context.source_channel, + context.source_client, + ) +} diff --git a/rust/crates/storage-convex-bridge/src/read_path.rs b/rust/crates/storage-convex-bridge/src/read_path.rs new file mode 100644 index 00000000..3633a7ac --- /dev/null +++ b/rust/crates/storage-convex-bridge/src/read_path.rs @@ -0,0 +1,29 @@ +use crate::context::BridgeContext; +use crate::mapping::{map_query_name_to_convex, payload_json_for_query, ConvexQueryRequest}; +use crate::types::BridgeResult; +use crate::validation::validate_query_envelope; +use core_protocol::QueryEnvelope; + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct QueryReadResult { + pub workspace_id: Option, + pub request_id: String, + pub trace_id: String, +} + +pub fn build_query_request( + context: &BridgeContext, + query: &QueryEnvelope, +) -> BridgeResult { + validate_query_envelope(context, query)?; + Ok(ConvexQueryRequest { + function_name: map_query_name_to_convex(&query.name).to_string(), + deployment_id: context.deployment_id.clone(), + project_id: context.project_id.clone(), + workspace_id: context.workspace_id.clone(), + request_id: context.request_id.clone(), + trace_id: context.trace_id.clone(), + actor_id: context.actor_id.clone(), + payload_json: payload_json_for_query(context, &query.name), + }) +} diff --git a/rust/crates/storage-convex-bridge/src/types.rs b/rust/crates/storage-convex-bridge/src/types.rs new file mode 100644 index 00000000..1dfee082 --- /dev/null +++ b/rust/crates/storage-convex-bridge/src/types.rs @@ -0,0 +1,26 @@ +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum BridgeErrorKind { + Validation, + Unauthorized, + Conflict, + NotFound, + Transport, + Rejected, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct BridgeError { + pub kind: BridgeErrorKind, + pub message: String, +} + +impl BridgeError { + pub fn validation(message: impl Into) -> Self { + Self { + kind: BridgeErrorKind::Validation, + message: message.into(), + } + } +} + +pub type BridgeResult = Result; diff --git a/rust/crates/storage-convex-bridge/src/validation.rs b/rust/crates/storage-convex-bridge/src/validation.rs new file mode 100644 index 00000000..16cc2427 --- /dev/null +++ b/rust/crates/storage-convex-bridge/src/validation.rs @@ -0,0 +1,50 @@ +use crate::context::BridgeContext; +use crate::types::{BridgeError, BridgeResult}; +use core_protocol::{CommandEnvelope, QueryEnvelope}; + +pub fn validate_command_envelope( + context: &BridgeContext, + command: &CommandEnvelope, +) -> BridgeResult<()> { + if command.name.trim().is_empty() { + return Err(BridgeError::validation("command name 不能为空")); + } + if command.command_id.trim().is_empty() { + return Err(BridgeError::validation("command_id 不能为空")); + } + if context.request_id.trim().is_empty() { + return Err(BridgeError::validation("request_id 不能为空")); + } + if context.trace_id.trim().is_empty() { + return Err(BridgeError::validation("trace_id 不能为空")); + } + if context.actor_id.trim().is_empty() { + return Err(BridgeError::validation("actor_id 不能为空")); + } + if context + .workspace_id + .as_deref() + .unwrap_or("") + .trim() + .is_empty() + { + return Err(BridgeError::validation("workspace_id 不能为空")); + } + Ok(()) +} + +pub fn validate_query_envelope( + context: &BridgeContext, + query: &QueryEnvelope, +) -> BridgeResult<()> { + if query.name.trim().is_empty() { + return Err(BridgeError::validation("query name 不能为空")); + } + if context.request_id.trim().is_empty() { + return Err(BridgeError::validation("request_id 不能为空")); + } + if context.trace_id.trim().is_empty() { + return Err(BridgeError::validation("trace_id 不能为空")); + } + Ok(()) +} diff --git a/rust/crates/storage-convex-bridge/src/write_path.rs b/rust/crates/storage-convex-bridge/src/write_path.rs new file mode 100644 index 00000000..bef086c1 --- /dev/null +++ b/rust/crates/storage-convex-bridge/src/write_path.rs @@ -0,0 +1,131 @@ +use crate::context::BridgeContext; +use crate::mapping::{map_command_name_to_convex, payload_json_for_command, ConvexMutationRequest}; +use crate::types::BridgeResult; +use crate::validation::validate_command_envelope; +use core_domain::{RefLink, Timestamp, WorkspaceId}; +use core_protocol::{command::CommandResult, AffectedObject, CommandEnvelope}; +use event_log::{CommandLogRecord, CommandLogStatus, DomainEventRecord, EventStatus}; + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct WritePipelineResult { + pub mutation: ConvexMutationRequest, + pub command_log: CommandLogRecord, + pub domain_event: DomainEventRecord, + pub result: CommandResult, +} + +pub fn build_write_request( + context: &BridgeContext, + command: &CommandEnvelope, +) -> BridgeResult { + validate_command_envelope(context, command)?; + let workspace_id = command + .target + .as_ref() + .and_then(|target| target.workspace_id.clone()) + .or_else(|| context.workspace_id.clone()); + Ok(ConvexMutationRequest { + function_name: map_command_name_to_convex(&command.name).to_string(), + deployment_id: context.deployment_id.clone(), + project_id: context.project_id.clone(), + workspace_id, + request_id: context.request_id.clone(), + trace_id: context.trace_id.clone(), + idempotency_key: command + .idempotency_key + .clone() + .or_else(|| context.idempotency_key.clone()), + actor_id: context.actor_id.clone(), + payload_json: payload_json_for_command(context, &command.name), + }) +} + +pub fn build_command_log_record( + command_id: &str, + command_name: &str, + context: &BridgeContext, + workspace_id: &str, +) -> CommandLogRecord { + CommandLogRecord { + command_log_id: format!("clog_{command_id}"), + command_name: command_name.into(), + actor_type: context.actor_type.clone(), + actor_id: context.actor_id.clone(), + source: context.source_channel.clone(), + workspace_id: WorkspaceId::new(workspace_id), + target_objects: vec![RefLink::External(format!("workspace:{workspace_id}"))], + payload_summary: format!( + "command={command_name};request_id={};trace_id={}", + context.request_id, context.trace_id + ), + refs_json: format!( + "[\"request:{}\",\"trace:{}\"]", + context.request_id, context.trace_id + ), + idempotency_key: context.idempotency_key.clone(), + status: CommandLogStatus::Pending, + created_at: Timestamp::new("2026-04-11T00:00:00Z"), + finished_at: None, + trace_id: context.trace_id.clone(), + request_id: context.request_id.clone(), + } +} + +pub fn build_domain_event_record( + command_id: &str, + command_name: &str, + context: &BridgeContext, + workspace_id: &str, +) -> DomainEventRecord { + DomainEventRecord { + event_id: format!("evt_{command_id}"), + workspace_id: workspace_id.into(), + aggregate_type: "workspace".into(), + aggregate_id: workspace_id.into(), + event_type: format!("{command_name}_requested"), + event_version: 1, + payload_json: format!( + "{{\"request_id\":\"{}\",\"trace_id\":\"{}\",\"command_id\":\"{}\",\"command_name\":\"{}\"}}", + context.request_id, context.trace_id, command_id, command_name + ), + command_log_id: format!("clog_{command_id}"), + actor_type: context.actor_type.clone(), + created_at: Timestamp::new("2026-04-11T00:00:00Z"), + status: EventStatus::Pending, + trace_id: context.trace_id.clone(), + request_id: context.request_id.clone(), + command_id: command_id.into(), + } +} + +pub fn build_write_pipeline( + context: &BridgeContext, + command: &CommandEnvelope, +) -> BridgeResult { + let mutation = build_write_request(context, command)?; + let workspace_id = mutation + .workspace_id + .clone() + .unwrap_or_else(|| "workspace_unknown".into()); + let command_log = + build_command_log_record(&command.command_id, &command.name, context, &workspace_id); + let domain_event = + build_domain_event_record(&command.command_id, &command.name, context, &workspace_id); + let result = CommandResult { + ok: true, + command_id: command.command_id.clone(), + event_ids: vec![domain_event.event_id.clone()], + affected_objects: vec![AffectedObject { + object_type: "workspace".into(), + object_id: workspace_id.clone(), + }], + revision: Some(1), + warnings: vec![], + }; + Ok(WritePipelineResult { + mutation, + command_log, + domain_event, + result, + }) +} diff --git a/rust/target/.rustc_info.json b/rust/target/.rustc_info.json new file mode 100644 index 00000000..98614926 --- /dev/null +++ b/rust/target/.rustc_info.json @@ -0,0 +1 @@ +{"rustc_fingerprint":4704921907237318175,"outputs":{"7971740275564407648":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/home/lix/.rustup/toolchains/1.88.0-x86_64-unknown-linux-gnu\noff\npacked\nunpacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\nunix\n","stderr":""},"17747080675513052775":{"success":true,"status":"","code":0,"stdout":"rustc 1.88.0 (6b00bc388 2025-06-23)\nbinary: rustc\ncommit-hash: 6b00bc3880198600130e1cf62b8f8a93494488cc\ncommit-date: 2025-06-23\nhost: x86_64-unknown-linux-gnu\nrelease: 1.88.0\nLLVM version: 20.1.5\n","stderr":""}},"successes":{}} \ No newline at end of file diff --git a/rust/target/CACHEDIR.TAG b/rust/target/CACHEDIR.TAG new file mode 100644 index 00000000..20d7c319 --- /dev/null +++ b/rust/target/CACHEDIR.TAG @@ -0,0 +1,3 @@ +Signature: 8a477f597d28d172789f06886806bc55 +# This file is a cache directory tag created by cargo. +# For information about cache directory tags see https://bford.info/cachedir/ diff --git a/rust/target/debug/.cargo-lock b/rust/target/debug/.cargo-lock new file mode 100644 index 00000000..e69de29b diff --git a/rust/target/debug/.fingerprint/core-domain-40e6f74f7ef1a9aa/dep-lib-core_domain b/rust/target/debug/.fingerprint/core-domain-40e6f74f7ef1a9aa/dep-lib-core_domain new file mode 100644 index 0000000000000000000000000000000000000000..c7cbc2cfcfb0f497257c204fbd0912c41589c65c GIT binary patch literal 120 zcmZQ%U|{&q$Oa@CxPiF1C|SQGGdESQsF;C)A1aWVSCUzhnOY1MuOzc1GqqT+sF;C)8!A|mnVSk0;DHJxmZoHufJL~V XA~~5!DE!P6h!HRyC6xtGLxCCqgdiMY literal 0 HcmV?d00001 diff --git a/rust/target/debug/.fingerprint/core-domain-bd799d0a25dcc494/invoked.timestamp b/rust/target/debug/.fingerprint/core-domain-bd799d0a25dcc494/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rust/target/debug/.fingerprint/core-domain-bd799d0a25dcc494/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/core-domain-bd799d0a25dcc494/test-lib-core_domain b/rust/target/debug/.fingerprint/core-domain-bd799d0a25dcc494/test-lib-core_domain new file mode 100644 index 00000000..a21bd4fa --- /dev/null +++ b/rust/target/debug/.fingerprint/core-domain-bd799d0a25dcc494/test-lib-core_domain @@ -0,0 +1 @@ +31ec3f0d1a2e5472 \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/core-domain-bd799d0a25dcc494/test-lib-core_domain.json b/rust/target/debug/.fingerprint/core-domain-bd799d0a25dcc494/test-lib-core_domain.json new file mode 100644 index 00000000..427bb59d --- /dev/null +++ b/rust/target/debug/.fingerprint/core-domain-bd799d0a25dcc494/test-lib-core_domain.json @@ -0,0 +1 @@ +{"rustc":11410426090777951712,"features":"[]","declared_features":"[]","target":6167971972065703354,"profile":1722584277633009122,"path":7278239953193670039,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/core-domain-bd799d0a25dcc494/dep-test-lib-core_domain","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/core-domain-cdff95eec220868e/dep-lib-core_domain b/rust/target/debug/.fingerprint/core-domain-cdff95eec220868e/dep-lib-core_domain new file mode 100644 index 0000000000000000000000000000000000000000..e6d360527ecd0461460c0c8f0ef00f1e6bc306f8 GIT binary patch literal 120 zcmZQ%U|{&q$Oa@Cc!0RLC|N(TG$pe{uc(-TfgdW8npcupl9^fz7UYHsmSpCpf(2mu ZN-7JWO1Pj(ax#;^Dq#G~6o?T(X#kB}9AN+e literal 0 HcmV?d00001 diff --git a/rust/target/debug/.fingerprint/core-domain-cdff95eec220868e/invoked.timestamp b/rust/target/debug/.fingerprint/core-domain-cdff95eec220868e/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rust/target/debug/.fingerprint/core-domain-cdff95eec220868e/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/core-domain-cdff95eec220868e/lib-core_domain b/rust/target/debug/.fingerprint/core-domain-cdff95eec220868e/lib-core_domain new file mode 100644 index 00000000..dedce44d --- /dev/null +++ b/rust/target/debug/.fingerprint/core-domain-cdff95eec220868e/lib-core_domain @@ -0,0 +1 @@ +4e803ee3d8e7c709 \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/core-domain-cdff95eec220868e/lib-core_domain.json b/rust/target/debug/.fingerprint/core-domain-cdff95eec220868e/lib-core_domain.json new file mode 100644 index 00000000..4af8438f --- /dev/null +++ b/rust/target/debug/.fingerprint/core-domain-cdff95eec220868e/lib-core_domain.json @@ -0,0 +1 @@ +{"rustc":11410426090777951712,"features":"[]","declared_features":"[]","target":6167971972065703354,"profile":8731458305071235362,"path":7278239953193670039,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/core-domain-cdff95eec220868e/dep-lib-core_domain","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/core-protocol-0fdc11ecf89ad5aa/dep-test-lib-core_protocol b/rust/target/debug/.fingerprint/core-protocol-0fdc11ecf89ad5aa/dep-test-lib-core_protocol new file mode 100644 index 0000000000000000000000000000000000000000..a99618bec3400f3ae3bef729a086e79408cae405 GIT binary patch literal 127 zcmZQ%U|{&q$Oa@CxPiF1C|SQGKR-vWsF;C)7b=jPpPQSX2Nn{93Z>_lr55ES<|U_s hh53+FCg!Dp#dx4%g{7%Qm0%Grs7Ov`5||I<0sxP_A4~uM literal 0 HcmV?d00001 diff --git a/rust/target/debug/.fingerprint/core-protocol-0fdc11ecf89ad5aa/invoked.timestamp b/rust/target/debug/.fingerprint/core-protocol-0fdc11ecf89ad5aa/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rust/target/debug/.fingerprint/core-protocol-0fdc11ecf89ad5aa/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/core-protocol-0fdc11ecf89ad5aa/test-lib-core_protocol b/rust/target/debug/.fingerprint/core-protocol-0fdc11ecf89ad5aa/test-lib-core_protocol new file mode 100644 index 00000000..c3f0c677 --- /dev/null +++ b/rust/target/debug/.fingerprint/core-protocol-0fdc11ecf89ad5aa/test-lib-core_protocol @@ -0,0 +1 @@ +44b9888b46dbed5c \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/core-protocol-0fdc11ecf89ad5aa/test-lib-core_protocol.json b/rust/target/debug/.fingerprint/core-protocol-0fdc11ecf89ad5aa/test-lib-core_protocol.json new file mode 100644 index 00000000..166a41bb --- /dev/null +++ b/rust/target/debug/.fingerprint/core-protocol-0fdc11ecf89ad5aa/test-lib-core_protocol.json @@ -0,0 +1 @@ +{"rustc":11410426090777951712,"features":"[]","declared_features":"[]","target":12929318708107190822,"profile":1722584277633009122,"path":17093070036165809465,"deps":[[12060949818064432287,"core_domain",false,704786785418248270]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/core-protocol-0fdc11ecf89ad5aa/dep-test-lib-core_protocol","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/core-protocol-4592bf3d65d89282/dep-lib-core_protocol b/rust/target/debug/.fingerprint/core-protocol-4592bf3d65d89282/dep-lib-core_protocol new file mode 100644 index 0000000000000000000000000000000000000000..35891572a22b3710bca0426317e86da230fa412c GIT binary patch literal 127 zcmZQ%U|{&q$Oa@C1cA7?C|N%}zbv&VFEKAURj;U+fq@q)oSdJVo1X_3;(`k0WF~?6 gJWzgNX=+g=ScDHrQ(|5USd1GgR+68e0~P@C0iC-aOaK4? literal 0 HcmV?d00001 diff --git a/rust/target/debug/.fingerprint/core-protocol-4592bf3d65d89282/invoked.timestamp b/rust/target/debug/.fingerprint/core-protocol-4592bf3d65d89282/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rust/target/debug/.fingerprint/core-protocol-4592bf3d65d89282/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/core-protocol-4592bf3d65d89282/lib-core_protocol b/rust/target/debug/.fingerprint/core-protocol-4592bf3d65d89282/lib-core_protocol new file mode 100644 index 00000000..c627bdd3 --- /dev/null +++ b/rust/target/debug/.fingerprint/core-protocol-4592bf3d65d89282/lib-core_protocol @@ -0,0 +1 @@ +69002a3ff9918d3d \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/core-protocol-4592bf3d65d89282/lib-core_protocol.json b/rust/target/debug/.fingerprint/core-protocol-4592bf3d65d89282/lib-core_protocol.json new file mode 100644 index 00000000..74d9df0f --- /dev/null +++ b/rust/target/debug/.fingerprint/core-protocol-4592bf3d65d89282/lib-core_protocol.json @@ -0,0 +1 @@ +{"rustc":11410426090777951712,"features":"[]","declared_features":"[]","target":12929318708107190822,"profile":17672942494452627365,"path":17093070036165809465,"deps":[[12060949818064432287,"core_domain",false,5579665713981379552]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/core-protocol-4592bf3d65d89282/dep-lib-core_protocol","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/core-protocol-f5d7351438cd4f82/dep-lib-core_protocol b/rust/target/debug/.fingerprint/core-protocol-f5d7351438cd4f82/dep-lib-core_protocol new file mode 100644 index 0000000000000000000000000000000000000000..272eb7b0a39df6f88cfa94a37d162c28d9d8f66e GIT binary patch literal 127 zcmZQ%U|{&q$Oa@C_<*>$C|N%_KQ}iqFGa7Yn1O)@DppvUT2u)Z;f9KoG@@;MR|#N$*EvrUL@1<^T0w}P@$a6BrqSy1ptr3A4~uM literal 0 HcmV?d00001 diff --git a/rust/target/debug/.fingerprint/core-protocol-f5d7351438cd4f82/invoked.timestamp b/rust/target/debug/.fingerprint/core-protocol-f5d7351438cd4f82/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rust/target/debug/.fingerprint/core-protocol-f5d7351438cd4f82/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/core-protocol-f5d7351438cd4f82/lib-core_protocol b/rust/target/debug/.fingerprint/core-protocol-f5d7351438cd4f82/lib-core_protocol new file mode 100644 index 00000000..034f078e --- /dev/null +++ b/rust/target/debug/.fingerprint/core-protocol-f5d7351438cd4f82/lib-core_protocol @@ -0,0 +1 @@ +49c72387560f483c \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/core-protocol-f5d7351438cd4f82/lib-core_protocol.json b/rust/target/debug/.fingerprint/core-protocol-f5d7351438cd4f82/lib-core_protocol.json new file mode 100644 index 00000000..0e5b0544 --- /dev/null +++ b/rust/target/debug/.fingerprint/core-protocol-f5d7351438cd4f82/lib-core_protocol.json @@ -0,0 +1 @@ +{"rustc":11410426090777951712,"features":"[]","declared_features":"[]","target":12929318708107190822,"profile":8731458305071235362,"path":17093070036165809465,"deps":[[12060949818064432287,"core_domain",false,704786785418248270]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/core-protocol-f5d7351438cd4f82/dep-lib-core_protocol","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/event-log-563618231cacaf7e/dep-lib-event_log b/rust/target/debug/.fingerprint/event-log-563618231cacaf7e/dep-lib-event_log new file mode 100644 index 0000000000000000000000000000000000000000..0c4a847fa607758879935029bfdb8a3a6cfd3a79 GIT binary patch literal 97 zcmZQ%U|{&q$O0r8gn+oXC|N%_KQ}iqFC{)FKV7e=n1O)@Dqd8YlUfWG;ev|fWF~?6 X!ccxner{rBUVLgG__oYZ2l2v7h3QT`Z2 literal 0 HcmV?d00001 diff --git a/rust/target/debug/.fingerprint/event-log-d9b5c77d292421e8/invoked.timestamp b/rust/target/debug/.fingerprint/event-log-d9b5c77d292421e8/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rust/target/debug/.fingerprint/event-log-d9b5c77d292421e8/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/event-log-d9b5c77d292421e8/lib-event_log b/rust/target/debug/.fingerprint/event-log-d9b5c77d292421e8/lib-event_log new file mode 100644 index 00000000..3a9d5154 --- /dev/null +++ b/rust/target/debug/.fingerprint/event-log-d9b5c77d292421e8/lib-event_log @@ -0,0 +1 @@ +8f57032f1a7da02a \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/event-log-d9b5c77d292421e8/lib-event_log.json b/rust/target/debug/.fingerprint/event-log-d9b5c77d292421e8/lib-event_log.json new file mode 100644 index 00000000..ae938a1b --- /dev/null +++ b/rust/target/debug/.fingerprint/event-log-d9b5c77d292421e8/lib-event_log.json @@ -0,0 +1 @@ +{"rustc":11410426090777951712,"features":"[]","declared_features":"[]","target":2075902485319387119,"profile":8731458305071235362,"path":3721623360069338606,"deps":[[12060949818064432287,"core_domain",false,704786785418248270]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/event-log-d9b5c77d292421e8/dep-lib-event_log","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/index-fts-e444a40571811be1/dep-lib-index_fts b/rust/target/debug/.fingerprint/index-fts-e444a40571811be1/dep-lib-index_fts new file mode 100644 index 0000000000000000000000000000000000000000..024be4904569dbe2c19582a923171096f5c21ee4 GIT binary patch literal 30 gcmZQ%U|{&q$Ot4ExPZ90C|N%zGfA(g7$m{~07A6{&Hw-a literal 0 HcmV?d00001 diff --git a/rust/target/debug/.fingerprint/index-fts-e444a40571811be1/invoked.timestamp b/rust/target/debug/.fingerprint/index-fts-e444a40571811be1/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rust/target/debug/.fingerprint/index-fts-e444a40571811be1/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/index-fts-e444a40571811be1/lib-index_fts b/rust/target/debug/.fingerprint/index-fts-e444a40571811be1/lib-index_fts new file mode 100644 index 00000000..369c61a6 --- /dev/null +++ b/rust/target/debug/.fingerprint/index-fts-e444a40571811be1/lib-index_fts @@ -0,0 +1 @@ +bf54d8ba9752e161 \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/index-fts-e444a40571811be1/lib-index_fts.json b/rust/target/debug/.fingerprint/index-fts-e444a40571811be1/lib-index_fts.json new file mode 100644 index 00000000..f53b28ce --- /dev/null +++ b/rust/target/debug/.fingerprint/index-fts-e444a40571811be1/lib-index_fts.json @@ -0,0 +1 @@ +{"rustc":11410426090777951712,"features":"[]","declared_features":"[]","target":1159665536100219803,"profile":17672942494452627365,"path":12914430766979976756,"deps":[[12060949818064432287,"core_domain",false,5579665713981379552],[16479709356797637466,"event_log",false,2819982753825876385]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/index-fts-e444a40571811be1/dep-lib-index_fts","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/storage-convex-bridge-45166d07753c36d7/dep-lib-storage_convex_bridge b/rust/target/debug/.fingerprint/storage-convex-bridge-45166d07753c36d7/dep-lib-storage_convex_bridge new file mode 100644 index 0000000000000000000000000000000000000000..f400ff32eef1945a7d7aa845678e8b79cba551d1 GIT binary patch literal 156 zcmY+*T?&985Cq`$DTs)=NF6CQm0BC#!&H&=F`_hh$hL)it5YVpW>)~+Z&UdJqBkrNFmWOBCRD-i4dKaD@L;V7B_ literal 0 HcmV?d00001 diff --git a/rust/target/debug/.fingerprint/storage-convex-bridge-45166d07753c36d7/invoked.timestamp b/rust/target/debug/.fingerprint/storage-convex-bridge-45166d07753c36d7/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rust/target/debug/.fingerprint/storage-convex-bridge-45166d07753c36d7/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/storage-convex-bridge-45166d07753c36d7/lib-storage_convex_bridge b/rust/target/debug/.fingerprint/storage-convex-bridge-45166d07753c36d7/lib-storage_convex_bridge new file mode 100644 index 00000000..5163c7c7 --- /dev/null +++ b/rust/target/debug/.fingerprint/storage-convex-bridge-45166d07753c36d7/lib-storage_convex_bridge @@ -0,0 +1 @@ +d0e3930355d176f1 \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/storage-convex-bridge-45166d07753c36d7/lib-storage_convex_bridge.json b/rust/target/debug/.fingerprint/storage-convex-bridge-45166d07753c36d7/lib-storage_convex_bridge.json new file mode 100644 index 00000000..47035403 --- /dev/null +++ b/rust/target/debug/.fingerprint/storage-convex-bridge-45166d07753c36d7/lib-storage_convex_bridge.json @@ -0,0 +1 @@ +{"rustc":11410426090777951712,"features":"[]","declared_features":"[]","target":16973354705979238807,"profile":8731458305071235362,"path":2510431785475190115,"deps":[[7016416594668144918,"core_protocol",false,4343738704907716425],[12060949818064432287,"core_domain",false,704786785418248270],[16479709356797637466,"event_log",false,3071592497278048143]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/storage-convex-bridge-45166d07753c36d7/dep-lib-storage_convex_bridge","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/storage-convex-bridge-5bf1d06211b95150/dep-test-lib-storage_convex_bridge b/rust/target/debug/.fingerprint/storage-convex-bridge-5bf1d06211b95150/dep-test-lib-storage_convex_bridge new file mode 100644 index 0000000000000000000000000000000000000000..f97bc78e7e98d0c9c715907d3db28a8b011d4844 GIT binary patch literal 156 zcmY+)-3ovp42I!(6huVbNL^Aal^U3ej()DbM1=5QAMD{30PumkaN(e7LUA7 uAp(p=Pc)>E$=QmpK&=0|Ew!OFXI=UE@j7PdiyY`Z*{w3^EbE)IrR)PDm?)Y6 literal 0 HcmV?d00001 diff --git a/rust/target/debug/.fingerprint/storage-convex-bridge-5bf1d06211b95150/invoked.timestamp b/rust/target/debug/.fingerprint/storage-convex-bridge-5bf1d06211b95150/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rust/target/debug/.fingerprint/storage-convex-bridge-5bf1d06211b95150/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/storage-convex-bridge-5bf1d06211b95150/test-lib-storage_convex_bridge b/rust/target/debug/.fingerprint/storage-convex-bridge-5bf1d06211b95150/test-lib-storage_convex_bridge new file mode 100644 index 00000000..24938f59 --- /dev/null +++ b/rust/target/debug/.fingerprint/storage-convex-bridge-5bf1d06211b95150/test-lib-storage_convex_bridge @@ -0,0 +1 @@ +b564adb2c82f1811 \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/storage-convex-bridge-5bf1d06211b95150/test-lib-storage_convex_bridge.json b/rust/target/debug/.fingerprint/storage-convex-bridge-5bf1d06211b95150/test-lib-storage_convex_bridge.json new file mode 100644 index 00000000..5a97beba --- /dev/null +++ b/rust/target/debug/.fingerprint/storage-convex-bridge-5bf1d06211b95150/test-lib-storage_convex_bridge.json @@ -0,0 +1 @@ +{"rustc":11410426090777951712,"features":"[]","declared_features":"[]","target":16973354705979238807,"profile":1722584277633009122,"path":2510431785475190115,"deps":[[7016416594668144918,"core_protocol",false,4343738704907716425],[12060949818064432287,"core_domain",false,704786785418248270],[16479709356797637466,"event_log",false,3071592497278048143]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/storage-convex-bridge-5bf1d06211b95150/dep-test-lib-storage_convex_bridge","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/storage-convex-bridge-cd4527dde6c0c1c6/dep-lib-storage_convex_bridge b/rust/target/debug/.fingerprint/storage-convex-bridge-cd4527dde6c0c1c6/dep-lib-storage_convex_bridge new file mode 100644 index 0000000000000000000000000000000000000000..225f050c68dbb44669894e457abcdbbf880657e9 GIT binary patch literal 156 zcmZQ%U|{&q$POeK1cA7?C|SQOF()%6u_QA;Pp_yLAzWURS&|xGkXVud7UqMh&P^;R v$jnOzi*Z54ax#;^d;uuGC^az!Q)hC1UP)?230Nf$RAotJL25Br1SkLiE=(wz literal 0 HcmV?d00001 diff --git a/rust/target/debug/.fingerprint/storage-convex-bridge-cd4527dde6c0c1c6/invoked.timestamp b/rust/target/debug/.fingerprint/storage-convex-bridge-cd4527dde6c0c1c6/invoked.timestamp new file mode 100644 index 00000000..e00328da --- /dev/null +++ b/rust/target/debug/.fingerprint/storage-convex-bridge-cd4527dde6c0c1c6/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/storage-convex-bridge-cd4527dde6c0c1c6/lib-storage_convex_bridge b/rust/target/debug/.fingerprint/storage-convex-bridge-cd4527dde6c0c1c6/lib-storage_convex_bridge new file mode 100644 index 00000000..02dcc426 --- /dev/null +++ b/rust/target/debug/.fingerprint/storage-convex-bridge-cd4527dde6c0c1c6/lib-storage_convex_bridge @@ -0,0 +1 @@ +8dd9c30bdd3eb769 \ No newline at end of file diff --git a/rust/target/debug/.fingerprint/storage-convex-bridge-cd4527dde6c0c1c6/lib-storage_convex_bridge.json b/rust/target/debug/.fingerprint/storage-convex-bridge-cd4527dde6c0c1c6/lib-storage_convex_bridge.json new file mode 100644 index 00000000..6df5c50c --- /dev/null +++ b/rust/target/debug/.fingerprint/storage-convex-bridge-cd4527dde6c0c1c6/lib-storage_convex_bridge.json @@ -0,0 +1 @@ +{"rustc":11410426090777951712,"features":"[]","declared_features":"[]","target":16973354705979238807,"profile":17672942494452627365,"path":2510431785475190115,"deps":[[7016416594668144918,"core_protocol",false,4435361707722408041],[12060949818064432287,"core_domain",false,5579665713981379552],[16479709356797637466,"event_log",false,2819982753825876385]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/storage-convex-bridge-cd4527dde6c0c1c6/dep-lib-storage_convex_bridge","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0} \ No newline at end of file diff --git a/rust/target/debug/deps/core_domain-40e6f74f7ef1a9aa.d b/rust/target/debug/deps/core_domain-40e6f74f7ef1a9aa.d new file mode 100644 index 00000000..c4a77d6e --- /dev/null +++ b/rust/target/debug/deps/core_domain-40e6f74f7ef1a9aa.d @@ -0,0 +1,10 @@ +/mnt/Data1T/mnote/rust/target/debug/deps/core_domain-40e6f74f7ef1a9aa.d: crates/core-domain/src/lib.rs crates/core-domain/src/audit.rs crates/core-domain/src/entities.rs crates/core-domain/src/ids.rs crates/core-domain/src/time.rs crates/core-domain/src/types.rs + +/mnt/Data1T/mnote/rust/target/debug/deps/libcore_domain-40e6f74f7ef1a9aa.rmeta: crates/core-domain/src/lib.rs crates/core-domain/src/audit.rs crates/core-domain/src/entities.rs crates/core-domain/src/ids.rs crates/core-domain/src/time.rs crates/core-domain/src/types.rs + +crates/core-domain/src/lib.rs: +crates/core-domain/src/audit.rs: +crates/core-domain/src/entities.rs: +crates/core-domain/src/ids.rs: +crates/core-domain/src/time.rs: +crates/core-domain/src/types.rs: diff --git a/rust/target/debug/deps/core_domain-bd799d0a25dcc494 b/rust/target/debug/deps/core_domain-bd799d0a25dcc494 new file mode 100644 index 0000000000000000000000000000000000000000..1e68f2bda8d63085f824bb521eb66477b443bde4 GIT binary patch literal 6038832 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[h4}v$BdYNvIZB^gEevju->^e!)!uTl% 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
  • oTmuieK+bUK`Y+m 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

    Etzq&;2^Bbze<7Z2*Y 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

    WcU#29~ydzpy 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ʾS}0EX(;teHPMn<|8`xv)jk4~>H`FM}Pc?bj zD!Jl~p$1t8uA$%juJwg@h&YtJ>B8o*EjJdXZess=Z_%_3@6E!+C(lTHv&-uJFNs4ze>qrC2l6*n2D|AB6S94Tp;-vs zby~<20Feuups;>c5({lnlKLJW<)F#%}>vSxOaH#XDdD?KbT5OuA(J7z}5)^f-S&r3B}GTK>ChtD>W(cLAA=}+kB9aVNaj9 zCT|jIB3U?bC|3vECRiX@2QH}#`TYz^eKJ(Ipx(Fmnf{%R?EvJ^weK{A3!mL+3m^Z* zUBR`XM6fi>X*>EhOn({9vG2Ew^KW3>3nwFgS5kd0@W-%|C$XZh1v zQ2MRCb;^>%3Zun3-*2BlL>}J2OaVFpK!N>srb!lh9yn(JdLlnfgK~j!|6?OYFQ6E&qxrx>{TyOuAcD%|$*A~s{boF>F zcaRtJ351e!3xm}=x|^M5BNyeO5Gb_lj2*j&)~JY zRCegvXPey4#aD@3(CFW7AYu0nGHw`NEoj#h^4Zes-`_--zB>Q&bRZ7bs0O0;g2>9@ zblcLS4G)gg*DAi|0^4T@543$2vt|hwl6H1`2w8K1--rlzp3_Vb(1+)n`L|(fn7iMCYqQs(RP6~RzwL%^^3E_fH&o+%Um7ShlgV*^ za&R^>n1%2Ujm=EI^-VYOL&ZrqB8<6Kc(gZk?Oq=EZg{#0e*kKP)SPV3*5|f{uKmEi zB~AZnu#gdaFvvrR5VL!do8$}2KmfIK7=s)njI-+@jkmn99Of92R+d}f*60wlP4H=R zI1+ke>4@k!v@#kCDsN#BMrLGSAaxr%pX-Ck{BikN%dsD$6YHAjA{~6pPiS>fIMLAp z2;sy!4PG$OCV<#ZLebQwapV<3+0tRJjj2$=(8OfKq~elm?8IgA%&|HNo7>D}Y!f}8 zk5@~hP5yP%YM>{ht68yg>LG&o;Ab%Ih}lJ6BfQqXsVt|{LXED}_{p3lEOQj{C6G>L zV+QeBDZ?;RmU?Ljpy(|F4Nh(t*2r#U@oBzK^L@I)cMbOQ4MxG8plZb4=iQBEK+Z1g z^3q)3hnn6)^J3zo3mkb2`m2S=_-PCJF-HRv)@G?+ecY#iRh+9W?0+2wG)iV`$-KAt zm$}L!7dQ#x$EN0bMopA}M`uVEOrf~r2{Y;kF*NeS5CamBI#Jqy+c^v7rae{U0@pHq z<(A@P%5=0q-Q;LNnz!M!;1_T|(Sl{)*?+$6VF2tf)U!?twIJ51sdnJvAj^Q#Fft$g zk`gv_GUecJ@0ToIh#1&>74mBb{1)lq{gKh;VE42#@_`t3A}JSmDyWUzzhsw$lWQw9 zZaPAa8OBcffvrdg3OqXjOGe43J)Q!uJmzpPwvJGy!wSPdfSwsFbOnV5lbF&aztW!l zr0SFj!r^4 zCtDtL03qgm9~#IW>H0j7VgFYG(rrPg3x|)`zmOk}MYh#Q{O!*DN5Y7xTjZe(1Q`+H zIy4se-M4HXN2|qT259w#bS?RQu6&{7>_Uu*;B`L&!cby*8QYYh8hlmUZLs5&p#=Z6MoX_?;@3|rebE1bL;mjw`NK7@FDW6#Qj{r< z-wp8x)&{VLZ?vfTJeTl|OMDCyESY}-Y>q2br~`b2_xyfVo)2Dkgz>>~N>D|DT;S2E zd3h*{?1xZfEYM8=5s2Xv;9jK0hgJjZ5D)qd11eeRDz0z-F!6PxF6&E7%#N3R3DoWT z#@CZm3;o95M;s%1BhQFJH7|-0jRg;b)SM?>&p?219h8?Ra1+^&tzo2^Ro?8>fJmWv zl?#0R9I(Q1AQM~mDF+)F3UV9>X+s?7H3=Q~4`)`gI+mL7(bs?u7Tfp|MXi{vKH{FICm-UGizxJu?xe^bG>4 zVaE^(F>9S0`fT*&|CyKd*zjZ33#r3EBvkXL7nh?T<8N%mqx>GbAhyxS4u`4o#vNP$ z^iD4DTkv^+Kx7KUFa%lTHuUz{GM(NB1#X)%}P!7-v_Fb|U z4x>!2mTyuPwt=Ed9l*5Ocn@A3IN^%<2ik|Qe?1J~RrsW}dn+V~K~?5~f^&hxU;&Qg zs7r^F9OT5qY<^6x0@F|BD|Qrhd4}<^tC_oucf6FoqTS5_REOVTfy31R!WWxBxxf*s z6y?o`xm(-;1bxc|uA+l&wV5or(&f?o%IA4iWO{fWeS_}j^Pq3?QDdF%GytVQTi@Aa zF#i)Xv7jkM2)1BP9vzie+(_9jvrCj$%j;d$A5~156?57BV-1__8;)<$Uhb-}`C7GGn? zeKwk^vr#5O&|B(Z{gV z$5&GD=-$xozj*B|!QKv5KY`U`op+ax-8CN~cS9z14_n8^b5SPT>`qQA;7S0egWfMt z6mZ?Ak22h!u_x%C5!OOG*|^?RQ%{(QeU}@j`qfW)a$lS$Kz`t zd;72^BR=@}TzPM1avUyK9uph}YjF3gaud>?8nPZ^KSB)XuFa*Jbw9nQsZG<}apUYX znV)=08i8cV7#2XcL30oq-p0cAP`B=(A^9AfDl5w#!aj;73jKXJ`?|DjstlFPHbB$E z)*qx~c3p)&Niee!QS(If2t!=}6-vQo&SV0k{=5^jbrdT4XbK}kP)7MWMtN9+Sw!MVWY zXIUen4@YW`Gh?l_#~63Y1-=QAhOT|TDO7ZGX`Zi0X%O*mF3X;bf}$dvoX?s@y=1z^ z7tR!&F>A-`p&byI)lMhEyeTtE_jZHf$*jTtG3NO(8ignmSzPkWZ|1qA>DcPRtQ&m} z*D(n`E$x%PY~BL@;)QMJF52jrw_s%A*5$PWu+na5x9D@=vB`x{)spAO)8u3{ZKf&g zGg6UxH~3iP#_J4`K)Ek5jA7e+s}#m)Q}g(6av3VT_Y0#n;lx!H;o7T8tv4T_F0$fB zK-?rDwU1qqrbVqYapQ)xt12>^fH0IeD;Ud_c=5Xo+>$uUJP6_}LV4mgTEs=V^6y!S zC1o3NPX%4pf@33ej%IOq!%_91e=f4*sUra(7pSn>8+%=~b+a(8*&*>&SbxZnxMGmL zFSPD1Ql~NVc4&DZ)s@zI*~6FAs?*Wpxsn=+INJ$z1pi}OD+kAwzMl5!fh|eFp9`Ed zS)CsEHqj3WQv9DHL}~c|$U_k1{tszq0v}a%J^q<2kU-!CC9)_I6qK}XQBZ=3WXKH6 z$c*BGTSaZHRBNr8%m6NE!b~JD<5d1uTmAoj{>0X{bTw`vqQDGj5)dIQ1y@#uj1MKE zk`N*D|DOBaOeU!P_4oVxk<5Gd-Syma&pr3tvlJ|l=HXLa^_>YJ1b7}mG9JEmI6AwC z=Yrk+AS1z+eEOkQ3k&w=$x4%~+X#lM77aL4b6~L=31X=5Jh{FaVp9$jXEH)!=C-(Y36#}RcSq2lj06s-!}e={hIq+M zHad%Vh)iy*f|!k^DE~9T(8I`t{t6S8@=#oX?$`=8T9hKU0VO@Ca(t<_OOvLq>v(AlA2$Jz#z;f{&KyL9aoZ~KTLuPTF zNqC9L8f?x$pp2ObY<@Sc7T1v9d|S;u!9`yES_Hw3H}yCoKUx*syEC{39jB|%O8RE9 zQ>)lQ>>@OG-lPn963$2!P~3;^Qu6?32T0{zdm>xpKBR>xLty?hzdy zn)m7JeD>9vQtgPZq+d$6f<`Y-DOF73ZTj)r6z2k>EUod{%rsSsJ*ZNw&TTVBDVQ0j zktM^_r7#BYoEh6CS`?x>RZ=E%;-3iXDQJ}xnHEAc69qq?EI3~F#Sq00eZ|VN&I?ap zlx3?fv9 zHANg@DVE3#!Wb6vL#CTK)J`9c$|t!d?j|$(4-n?$rW4k*MtHx1Gf$+C;i2p3u2UXw zo$#33&djy2<;;M4GxK9aDi?k^X8PVqR(f~}cO=^KT_Y+7@pok9U(B};4!BaU(uGO*CdlbexR?WS z?J9zyHt|aFuDfWB#}05iCZP8up#X1+6cT~z` zd_`|no{b?+!@M)m_sFiQl(BL)9uHFu9|J4)5;&Z!0f>lIuNJ(Im1bnY$rUzNpz9SL zNSLY|%+rgbo}zcKqim^upj_-JTkxF6O!YC431@nW-a=OvHwJ81#z$c3C8MAUvShsy zJmsF$QtQ&c2(GnjE7k_TI3*S*5`m9OLI@b|1 zHQy23rCCYcW>Q{S(l=%jH@c}@N6n6D>fl0wj(4MSOd*n6D z<+PdZlGR#hE(yfsbR$Z<1$)y0o&<7FEKZ|Z&F zp~P^HzTQ`~9(~a!kDVa#Sbj(H2JqX)9Swr+sITYj= zMQ3GrwcoF)nk_PVU&(r|Gkw~0ZmU1S{xjht#<{36l)PPa)n$>qksjPR1PLZh2>KcJ ziuzMdt(bhuXjBvYA9*ur z%hI5~zgM3&$)~?b`VybLRZ1@G&)SH0Q?KgMC)E#)wE6SUf22ZFP2E{P4ZY3i1bZDy z9-;sco+dLgQx3hCv3RSdSC{6mdbk3ve9%b219(Zyj&p_Nt5e@J#&?W>EJ!sbQ7Idp zQm#Z(g1Y2bI6Xg}!(aj{gcO`W9CWRADfybGjkL$bUKY}lm+uO#ouA{>*T(Dk#BXr- zXwq-Yhf~-)1@33(-1B(9Iv-wPFPfKo(7b$K@kg@=&Yqtc+}%I68>P!V{ZPtu=C60v#olYcs)vUg8UFszr+@*OD2aKsX^`B@#v4~~nl?U< z?S`G$L|^?w)IjuW*|gQTj44XLs^&;F9j!d2NdQ@MME0UejbAn#b4di>m8kC`RyHeu zLvHC07=WOtn@kc?J=;8kqHg6aAw2H%DAXr9j8h?Y->TBt5Eu|3RLN|V-++vccYe;Q&7jEIXf z8>SPk&!M*&xv@QY4kkp$WlB_3=Lb|3dP~~1(BovQsDJPrJ2kJ;ekC?u$ROjwd|{oT zh1SaV>e6%gwwgyaFH|~?aT_!1DIn4m7~NnGc4KXDy?j(Ni;;e?8&iYnq!>TpW8ey3 z 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±M@bSx3nT;w{RV}ETkfRC&AZFjUu?m61QwR5z) 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