@ibgib/core-gib 0.1.9 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/dist/agent-helpers.d.mts +36 -0
  2. package/dist/agent-helpers.d.mts.map +1 -0
  3. package/dist/agent-helpers.mjs +133 -0
  4. package/dist/agent-helpers.mjs.map +1 -0
  5. package/dist/keystone/keystone-config-builder.respec.mjs +4 -4
  6. package/dist/keystone/keystone-config-builder.respec.mjs.map +1 -1
  7. package/dist/keystone/keystone-service-v1.respec.mjs +65 -62
  8. package/dist/keystone/keystone-service-v1.respec.mjs.map +1 -1
  9. package/dist/sync/sync-constants.d.mts +17 -0
  10. package/dist/sync/sync-constants.d.mts.map +1 -0
  11. package/dist/sync/sync-constants.mjs +16 -0
  12. package/dist/sync/sync-constants.mjs.map +1 -0
  13. package/dist/sync/sync-helpers.d.mts +15 -0
  14. package/dist/sync/sync-helpers.d.mts.map +1 -0
  15. package/dist/sync/sync-helpers.mjs +46 -0
  16. package/dist/sync/sync-helpers.mjs.map +1 -0
  17. package/dist/sync/sync-innerspace.respec.d.mts +8 -0
  18. package/dist/sync/sync-innerspace.respec.d.mts.map +1 -0
  19. package/dist/sync/sync-innerspace.respec.mjs +120 -0
  20. package/dist/sync/sync-innerspace.respec.mjs.map +1 -0
  21. package/dist/sync/sync-local-spaces.respec.d.mts +2 -0
  22. package/dist/sync/sync-local-spaces.respec.d.mts.map +1 -0
  23. package/dist/sync/sync-local-spaces.respec.mjs +159 -0
  24. package/dist/sync/sync-local-spaces.respec.mjs.map +1 -0
  25. package/dist/sync/sync-saga-coordinator.d.mts +118 -0
  26. package/dist/sync/sync-saga-coordinator.d.mts.map +1 -0
  27. package/dist/sync/sync-saga-coordinator.mjs +399 -0
  28. package/dist/sync/sync-saga-coordinator.mjs.map +1 -0
  29. package/dist/sync/sync-saga-coordinator.respec.d.mts +2 -0
  30. package/dist/sync/sync-saga-coordinator.respec.d.mts.map +1 -0
  31. package/dist/sync/sync-saga-coordinator.respec.mjs +40 -0
  32. package/dist/sync/sync-saga-coordinator.respec.mjs.map +1 -0
  33. package/dist/sync/sync-types.d.mts +103 -0
  34. package/dist/sync/sync-types.d.mts.map +1 -0
  35. package/dist/sync/sync-types.mjs +2 -0
  36. package/dist/sync/sync-types.mjs.map +1 -0
  37. package/dist/test/mock-space.d.mts +39 -0
  38. package/dist/test/mock-space.d.mts.map +1 -0
  39. package/dist/test/mock-space.mjs +79 -0
  40. package/dist/test/mock-space.mjs.map +1 -0
  41. package/dist/timeline/timeline-api.respec.d.mts +7 -0
  42. package/dist/timeline/timeline-api.respec.d.mts.map +1 -0
  43. package/dist/timeline/timeline-api.respec.mjs +183 -0
  44. package/dist/timeline/timeline-api.respec.mjs.map +1 -0
  45. package/dist/witness/space/inner-space/inner-space-v1.respec.mjs +163 -201
  46. package/dist/witness/space/inner-space/inner-space-v1.respec.mjs.map +1 -1
  47. package/dist/witness/space/metaspace/metaspace-base.d.mts.map +1 -1
  48. package/dist/witness/space/metaspace/metaspace-base.mjs +33 -5
  49. package/dist/witness/space/metaspace/metaspace-base.mjs.map +1 -1
  50. package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace-helper.d.mts.map +1 -1
  51. package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace-helper.mjs +3 -2
  52. package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace-helper.mjs.map +1 -1
  53. package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.respec.d.mts +7 -0
  54. package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.respec.d.mts.map +1 -0
  55. package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.respec.mjs +67 -0
  56. package/dist/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.respec.mjs.map +1 -0
  57. package/dist/witness/space/space-helper.d.mts.map +1 -1
  58. package/dist/witness/space/space-helper.mjs +43 -4
  59. package/dist/witness/space/space-helper.mjs.map +1 -1
  60. package/dist/witness/space/space-helper.respec.d.mts +2 -0
  61. package/dist/witness/space/space-helper.respec.d.mts.map +1 -0
  62. package/dist/witness/space/space-helper.respec.mjs +30 -0
  63. package/dist/witness/space/space-helper.respec.mjs.map +1 -0
  64. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/017DF612D9A86192706EE567B059C489EC8DA0B2B558166EFE61F75D8BF1ECEE/test ib.json +1 -0
  65. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/0EF68E1CA839A24CAEDB224A8AF92F258BD1F364A97E708705150595B3F67985/test ib.json +1 -0
  66. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/12EF728E4F98DDB89990D4CDAF3AC852729E804CE37E2041AF18CBA239328085/test ib.json +1 -0
  67. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/152DD42FA80FA6ABD0B4DAAAE9CE1AFCF94E649B210A08955DB8B86E09AF08BE/test ib.json +1 -0
  68. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/16A46B37492E2688088C69F237E5CDC4F4E8C1015CF8E66D044DC2FE115F6211/test ib.json +1 -0
  69. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/1F7942767491C1D740FFC87E046C2470697FE8D154806B51876C53E607B7F007/test ib.json +1 -0
  70. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/35754C7AD2967D57C34396084F1214343C48F9C1AAF1C11CDFB57B5CB95536F5/test ib.json +1 -0
  71. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/38CFD2C2DFD185FC1E5BEE8C55C8A4FFBD83B03F533B4F92537000C505939E39/test ib.json +1 -0
  72. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/43635745EEAE9EBD3426CC4AD88D2362DE15B2F8E4D1C694B3AE8687E8C6489D/test ib.json +1 -0
  73. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/5C4BCD98E1B3494CCFAC355D2C61025DCD43A1D3041E637ABDA83F0E1E7FA0BE/test ib.json +1 -0
  74. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/5FC1BCCA0F1EB6E656233401E330A7928BF58C09EF6B6B56EC69FCFAC0B3A47A/test ib.json +1 -0
  75. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/60B8ED34520992236C9E1859FAE4BA9DF206CC6BD75DA574E815EAF7B577C1BD/test ib.json +1 -0
  76. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/68B53978461355B04CA96CEE33E448CBC39CDEFEA8E907879C1D2E6A542672C4/test ib.json +1 -0
  77. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/6B62E238B88A3B5050DFF02AB91402C6702A822389315B4150308B774F5A0D01/test ib.json +1 -0
  78. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/6F7EC702F1109A564CFE009F634B27E5F82D6A309CF51B11F49846ABEEAD04B1/test ib.json +1 -0
  79. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/7AE69551608DB82E23DBA98CA7D059DF3F5C9E37174E581F7C154935F4362AA7/test ib.json +1 -0
  80. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/8C851E9DD394053BB50716EA6CDD07A48FA76AF5BB55513F898A18B2A4C64D1F/test ib.json +1 -0
  81. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/984DAD369079FEF2F83082F1CD944A432690F1CB0A5ECA9F009D50B385C4061A/test ib.json +1 -0
  82. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/C466B016831B11EEEC611208EDB50FD7BACD7E37D0037C0D1D78BD5B3D892794/test ib.json +1 -0
  83. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/C5D0AA2C7A2C01C52EFDF70242AA6CAAE06BCA80301A425D4E508E9ACD33DF44/test ib.json +1 -0
  84. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/CDDFD5D61010F7B15CFD78C49865C0134E8E037779DD80C6B4DED7DEB0D4CBB7/test ib.json +1 -0
  85. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/DDFAB26C3991470523BD7543D946A24A9CFEC9D5BEC197B7BD963E1507057A93/test ib.json +1 -0
  86. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/E174442450BBA2A570B0166CDF04844C3A5D1F7199DC59E0FA49F1BBACA47F5F/test ib.json +1 -0
  87. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/E6CE9621CF266A675DB7E3EBABD5D636E46E8006F116A0F7F0769B87DDDBFBB0/test ib.json +1 -0
  88. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/meta_stone F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6 -1 1766860935000^7978FD0F9DD4EB6208A2D2113011F95E5C7EE80072BA3B7E4AC737CC771D621B.json +1 -0
  89. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/meta_stone F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6 0 1766860935000^013C09075DF303BB5822FEEFE57F26B9F0DEE6DD382B116816FCDC2B7CAF0696.json +1 -0
  90. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/meta_stone F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6 1 1766860935000^4EEBAD21A82BAC51A7B952DA32DACB37A653695D5D512A348CF15DB9B7DED5AC.json +1 -0
  91. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/meta_stone F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6 10 1766860938000^84544F34B1297ED8F5FD4B437FCD4F1044FD0D40A0B270F8C7E79D89AA058DD6.json +1 -0
  92. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/meta_stone F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6 11 1766860938000^023B07336455CD39B03DC52AF523DA19B588FD32ED7A4BB5BBE9ABE59ED75195.json +1 -0
  93. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/meta_stone F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6 12 1766860939000^49685AA6F0064868886EBA984B072F6C63F92FC3315C29DDDF750D5B56E87D6B.json +1 -0
  94. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/meta_stone F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6 13 1766860939000^A2475B1C99AC9F8B9A4D8B2BD8CB39A76FAA2E13AB2F7CEADA4AB02B42FF8BE4.json +1 -0
  95. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/meta_stone F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6 14 1766860939000^2D0C93D837FFF096346E10F276BD1F08ECE4A2EC94BE9BC58759EBABAB1F2E42.json +1 -0
  96. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/meta_stone F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6 15 1766860939000^4FA9AFA0EA50B833B342716C7745B9A39A7C0F9A09B4666CA67080A49EAB611B.json +1 -0
  97. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/meta_stone F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6 16 1766860939000^A65760BEED125117DE7DF2F481A0F7CD250FFB579138ECC1A19C8401DAFCEB51.json +1 -0
  98. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/meta_stone F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6 17 1766860940000^226FA64E1B4591C150F595D8408530502417C7FFEE3915589382F9C3B585053C.json +1 -0
  99. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/meta_stone F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6 18 1766860940000^1ABF20687FB34275E0EE737538E7E5D4F15CDCB128C4F332043CB76AC78B0F05.json +1 -0
  100. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/meta_stone F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6 19 1766860940000^89A44A1912B20AE873402C287CE09C4D41073F0A5B703CB22FD5272BB907FC19.json +1 -0
  101. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/meta_stone F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6 2 1766860936000^A8D1C5244B85155B130EFCA9CF25185A9B7060F549603B993F2CA98FB269B178.json +1 -0
  102. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/meta_stone F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6 20 1766860940000^72905A7F6A0A859003049827534B579BE090F0B6A221D14584745DAE6A999943.json +1 -0
  103. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/meta_stone F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6 21 1766860948000^71168CE7419FFDB6E945655E1B3597A726111666C305EDA9A76D97FD7215E929.json +1 -0
  104. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/meta_stone F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6 22 1766860967000^A5E8805E1AC44CF2A07606613DE14704BC1943268EFF48BF181E7216D8F07AA3.json +1 -0
  105. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/meta_stone F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6 3 1766860936000^66806071E91EAC9E8F90A81700DD37FB56B7DFDE7B32FE47E142BAC58907173C.json +1 -0
  106. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/meta_stone F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6 4 1766860937000^1A097ACE63079C7D91AC964F783834D172C41CD3FAD0D27A5B95DC6E1E5B7D6A.json +1 -0
  107. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/meta_stone F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6 5 1766860937000^746153300B51309B664E4035E092CAE07F487A2B44D5DB79B770C7D9968D45CA.json +1 -0
  108. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/meta_stone F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6 6 1766860937000^3F1EFF11C729D6175922400928667D3391E3D7B4B29CECD67987F3259A5003C5.json +1 -0
  109. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/meta_stone F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6 7 1766860938000^D2867FC7F2A08C6678BAA320EE449F89E56D81EDC3BFFA79F9DA64BF98701014.json +1 -0
  110. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/meta_stone F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6 8 1766860938000^AA9E5246E533F704E42BED13B878B830B91143AE71C8603FFCF187CF39904915.json +1 -0
  111. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/meta_stone F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6 9 1766860938000^E4B12653516EB8690ED18ECFF3EA7AB5EA3FF70881D730F5859F193F5872DF15.json +1 -0
  112. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/F50B84DBC36E937524F482A095F81F7FA3ABC63CCBB65DB2719F5DE80E59D6C6/test ib.json +1 -0
  113. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/dna/04E79CE54F49DCEA75652ADF674DC9B21BA641944AD97ED7ED1369CF3A880E8D/mut8.json +1 -0
  114. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/dna/0647EB78DB2C48AF3AE9D3EF7989A3DDA1A797D04BE18DB1210B3504BC39BA4E/mut8.json +1 -0
  115. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/dna/08B4A7A62BC7DE27C180A3F70FA7C6C8F9728A98E79B200D9B2EE2D11E62CD97/mut8.json +1 -0
  116. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/dna/0B2FEF92D3630CDFDD14C453DDDA288478022CEB778E0BB4ACC9C9511C770A39/mut8.json +1 -0
  117. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/dna/3757E01592FABCA5D139026F156318A7F86AC097CC10ABA243D4E665EB3550C5/mut8.json +1 -0
  118. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/dna/3A66623B180568E2AE3E95BD6C48684E765B6B8C2147A4DD13426B6808AC2567/mut8.json +1 -0
  119. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/dna/3EADB84024E06764489225E537F285BF7F7F85C3ACC013F0FCB28B79E227DE2D/mut8.json +1 -0
  120. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/dna/471A5F0BA13425E3412A376452549E5158CD5516C4E005872A50A10D7390CF12/mut8.json +1 -0
  121. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/dna/6E6EA2A701C3AC1B5BCD766F39C59BA7BC5139AAF0EB5E9DE8814F77C4A192A7/mut8.json +1 -0
  122. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/dna/7EF033B1C3C39C05359C89C301DEE7365F6F7A816776F6A0E540CE1A212CD612/mut8.json +1 -0
  123. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/dna/834AECEDC108F37DADA5BD3583FA9C1E612AFA3FFFB1153CA0CD2F51239AD93F/mut8.json +1 -0
  124. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/dna/8CA9BDE2ED96C7C8039D5AF78AEF620A985E32352238DEACACC7E2329006B9B9/mut8.json +1 -0
  125. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/dna/90C61CC1159B21E9FE686C06D5C76FF6F5236F8C7D39CC183B8C81CE36471D9C/fork.json +1 -0
  126. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/dna/A89842F2240358AEC12AE59014A14875AB6FC5C8EF2A5C50D8BD92EB5F54F4B6/mut8.json +1 -0
  127. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/dna/B10FBD60588500D94D6CDA19E5E24DF7F4C3EDF66368E5875F13C4BFF9A8FD03/mut8.json +1 -0
  128. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/dna/B5A0CAF33ACC64A57647ADD18B4F0CAD820F427819BB4615567131994D0399AB/mut8.json +1 -0
  129. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/dna/C0223AA1B3B147E3AFC4233C60025BE4C975652EBF77C24D8B8FABC413594137/mut8.json +1 -0
  130. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/dna/D07097470D6970574C539E1E16AEFCE0A3A67987C7554C9EEFA7204D6D1D81D4/mut8.json +1 -0
  131. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/dna/D92466D1FCE56DB0828A2509590DDA0040FF250FD4FCE7F3E45B5D84887C83F0/mut8.json +1 -0
  132. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/dna/E035FDD6BDD26B164AF5AD675D0567BC0FFB6E10E14BAFA6617EDB536EE162B9/mut8.json +1 -0
  133. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/dna/E8B2955902784AFC4B4A251C771EC770D94234440C8B02C63B12628C29447069/mut8.json +1 -0
  134. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/dna/EF9D3619C817B27EC4402BC215D08CC95A83E5042F4FC35AE2E737AC33B05629/mut8.json +1 -0
  135. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/dna/F0D5006EF21791D68460DB0111983602EC450BBFFB3E47134D357A1BCD9FBD15/mut8.json +1 -0
  136. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/dna/F15D698186AADD2BA9F3028F4F84630505D06220AB6482381FB35755AFC77E5F/mut8.json +1 -0
  137. package/ibgib/registerNewI_troot/4215392c-space_baseDir/tmp/4215392c-space/dna/F1913D9CF3C4F2CDE56C39EA86F8EB9A65D8FA22750DACD2B496EF27D88DE260/mut8.json +1 -0
  138. package/package.json +2 -2
  139. package/src/agent-helpers.mts +159 -0
  140. package/src/keystone/keystone-config-builder.respec.mts +3 -3
  141. package/src/keystone/keystone-service-v1.respec.mts +66 -60
  142. package/src/sync/sync-constants.mts +24 -0
  143. package/src/sync/sync-helpers.mts +59 -0
  144. package/src/sync/sync-innerspace.respec.mts +144 -0
  145. package/src/sync/sync-local-spaces.respec.mts +200 -0
  146. package/src/sync/sync-saga-coordinator.mts +477 -0
  147. package/src/sync/sync-saga-coordinator.respec.mts +52 -0
  148. package/src/sync/sync-types.mts +120 -0
  149. package/src/test/mock-space.mts +85 -0
  150. package/src/timeline/timeline-api.respec.mts +237 -0
  151. package/src/witness/space/inner-space/inner-space-v1.respec.mts +181 -228
  152. package/src/witness/space/metaspace/metaspace-base.mts +31 -5
  153. package/src/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace-helper.mts +4 -2
  154. package/src/witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.respec.mts +90 -0
  155. package/src/witness/space/space-helper.mts +42 -4
  156. package/src/witness/space/space-helper.respec.mts +42 -0
  157. package/tmp.md +11 -0
@@ -0,0 +1,103 @@
1
+ import { IbGib_V1, IbGibData_V1, IbGibRel8ns_V1 } from "@ibgib/ts-gib/dist/V1/types.mjs";
2
+ import { KeystoneIbGib_V1 } from "../keystone/keystone-types.mjs";
3
+ import { SYNC_ATOM, SyncStage } from "./sync-constants.mjs";
4
+ /**
5
+ * The "Hello" of the sync protocol.
6
+ * Exchanges knowledge vectors (what I have) and identity (who I am).
7
+ */
8
+ export interface SyncInitData {
9
+ /**
10
+ * Map of TJP (Traffic Joint Point) to latest known Gib/Hash.
11
+ * Use this to calculate what is missing (Delta).
12
+ */
13
+ knowledgeVector: {
14
+ [tjp: string]: string;
15
+ };
16
+ /**
17
+ * The Keystone Identity of the sender.
18
+ * Required for the first handshake or if the receiver doesn't know the sender.
19
+ */
20
+ identity?: KeystoneIbGib_V1;
21
+ /**
22
+ * What the sender wants to do.
23
+ * e.g. "push" (I have data for you) or "pull" (Give me data).
24
+ * @default 'push'
25
+ */
26
+ mode?: 'push' | 'pull';
27
+ }
28
+ /**
29
+ * A specific request for data.
30
+ * Used for "pull" based deltas or fixing gaps (packet loss).
31
+ */
32
+ export interface SyncRequestData {
33
+ /**
34
+ * The ibGib addresses requested.
35
+ */
36
+ addrs: string[];
37
+ }
38
+ /**
39
+ * The "Body" of the sync protocol.
40
+ * Carries the manifests of data to be transferred.
41
+ */
42
+ export interface SyncDeltaData {
43
+ /**
44
+ * The list of ibGib addresses being transferred.
45
+ * The actual data is streamed/batched separately.
46
+ */
47
+ payloadAddrs: string[];
48
+ }
49
+ /**
50
+ * The "Seal" of the sync protocol.
51
+ * The authority is derived from the `identity` relation on the Keystone Frame.
52
+ */
53
+ export interface SyncCommitData {
54
+ /**
55
+ * True if the session completed successfully from the sender's perspective.
56
+ */
57
+ success: boolean;
58
+ /**
59
+ * Optional verification metadata (e.g. success count).
60
+ */
61
+ successCount?: number;
62
+ /**
63
+ * If failed, the reasons why.
64
+ */
65
+ errors?: string[];
66
+ }
67
+ export interface SyncIbInfo_V1 {
68
+ atom: typeof SYNC_ATOM;
69
+ uuid: string;
70
+ stage: SyncStage;
71
+ }
72
+ export interface SyncData_V1 extends IbGibData_V1 {
73
+ /**
74
+ * Unique ID for this synchronization session.
75
+ * Corresponds to `uuid` in standard IbGibData.
76
+ */
77
+ uuid: string;
78
+ /**
79
+ * Current stage of the protocol.
80
+ */
81
+ stage: SyncStage;
82
+ /**
83
+ * Optional absolute timestamp (Unix ms) after which this frame should be considered void.
84
+ * Useful for:
85
+ * 1. Auth Challenges (Login offers expiring).
86
+ * 2. Rate limiting / Backpressure (Don't process this old request).
87
+ */
88
+ expirationTimestamp?: string;
89
+ /**
90
+ * Polymorphic payload based on stage.
91
+ */
92
+ payload: SyncInitData | SyncRequestData | SyncDeltaData | SyncCommitData;
93
+ }
94
+ export interface SyncRel8ns_V1 extends IbGibRel8ns_V1 {
95
+ /**
96
+ * Link to the Keystone Identity performing this step.
97
+ * This MUST point to the specific Keystone Frame that authorizes this sync frame.
98
+ */
99
+ identity?: string[];
100
+ }
101
+ export interface SyncIbGib_V1 extends IbGib_V1<SyncData_V1, SyncRel8ns_V1> {
102
+ }
103
+ //# sourceMappingURL=sync-types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-types.d.mts","sourceRoot":"","sources":["../../src/sync/sync-types.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAiB,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAM5D;;;GAGG;AACH,MAAM,WAAW,YAAY;IACzB;;;OAGG;IACH,eAAe,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAE3C;;;OAGG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAE5B;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC5B;;OAEG;IACH,KAAK,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC1B;;;OAGG;IACH,YAAY,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC3B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAMD,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,OAAO,SAAS,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC7C;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,EAAE,SAAS,CAAC;IAEjB;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,OAAO,EAAE,YAAY,GAAG,eAAe,GAAG,aAAa,GAAG,cAAc,CAAC;CAC5E;AAED,MAAM,WAAW,aAAc,SAAQ,cAAc;IACjD;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,YAAa,SAAQ,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;CAAI"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sync-types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-types.mjs","sourceRoot":"","sources":["../../src/sync/sync-types.mts"],"names":[],"mappings":""}
@@ -0,0 +1,39 @@
1
+ import { IbGib_V1 } from '@ibgib/ts-gib/dist/V1/types.mjs';
2
+ /**
3
+ * A simple in-memory map acting as a Space.
4
+ * Pure Storage. No Indexing logic.
5
+ *
6
+ * Copied/Adapted from Keystone Respecs.
7
+ */
8
+ export declare class MockIbGibSpace {
9
+ name: string;
10
+ store: Map<string, IbGib_V1<import("@ibgib/ts-gib/dist/V1/types.mjs").IbGibData_V1, import("@ibgib/ts-gib/dist/V1/types.mjs").IbGibRel8ns_V1>>;
11
+ constructor(name?: string);
12
+ put({ ibGib }: {
13
+ ibGib: IbGib_V1;
14
+ }): Promise<void>;
15
+ get({ addr }: {
16
+ addr: string;
17
+ }): Promise<IbGib_V1 | null>;
18
+ witness(arg: any): Promise<any>;
19
+ }
20
+ /**
21
+ * A partial mock of Metaspace.
22
+ */
23
+ export declare class MockMetaspaceService {
24
+ space: MockIbGibSpace;
25
+ /**
26
+ * Map of TJP Gib (Timeline ID) -> Latest IbGib Addr (Head)
27
+ */
28
+ timelineHeads: Map<string, string>;
29
+ constructor(space: MockIbGibSpace);
30
+ getLocalUserSpace({ lock }: {
31
+ lock: boolean;
32
+ }): Promise<MockIbGibSpace>;
33
+ put(args: any): Promise<void>;
34
+ registerNewIbGib(args: {
35
+ ibGib: IbGib_V1;
36
+ space?: any;
37
+ }): Promise<void>;
38
+ }
39
+ //# sourceMappingURL=mock-space.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-space.d.mts","sourceRoot":"","sources":["../../src/test/mock-space.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAG3D;;;;;GAKG;AACH,qBAAa,cAAc;IAGJ,IAAI,EAAE,MAAM;IAF/B,KAAK,0IAA+B;gBAEjB,IAAI,GAAE,MAAqB;IAExC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlD,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAKzD,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAoBxC;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAOV,KAAK,EAAE,cAAc;IALxC;;OAEG;IACH,aAAa,sBAA6B;gBAEvB,KAAK,EAAE,cAAc;IAElC,iBAAiB,CAAC,EAAE,IAAI,EAAE,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAIvE,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7B,gBAAgB,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,QAAQ,CAAC;QAAC,KAAK,CAAC,EAAE,GAAG,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAiBhF"}
@@ -0,0 +1,79 @@
1
+ import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
2
+ /**
3
+ * A simple in-memory map acting as a Space.
4
+ * Pure Storage. No Indexing logic.
5
+ *
6
+ * Copied/Adapted from Keystone Respecs.
7
+ */
8
+ export class MockIbGibSpace {
9
+ name;
10
+ store = new Map();
11
+ constructor(name = "mock_space") {
12
+ this.name = name;
13
+ }
14
+ async put({ ibGib }) {
15
+ const addr = getIbGibAddr({ ibGib });
16
+ this.store.set(addr, JSON.parse(JSON.stringify(ibGib))); // Deep copy
17
+ }
18
+ async get({ addr }) {
19
+ const data = this.store.get(addr);
20
+ return data ? JSON.parse(JSON.stringify(data)) : null;
21
+ }
22
+ async witness(arg) {
23
+ const cmd = arg.data?.cmd;
24
+ if (cmd === 'get') {
25
+ const addrs = arg.data.ibGibAddrs || [];
26
+ const ibGibs = [];
27
+ for (const addr of addrs) {
28
+ const ig = await this.get({ addr });
29
+ if (ig)
30
+ ibGibs.push(ig);
31
+ }
32
+ return { ibGibs };
33
+ }
34
+ if (cmd === 'put') {
35
+ const ibGibs = arg.ibGibs || [];
36
+ for (const ibGib of ibGibs) {
37
+ await this.put({ ibGib });
38
+ }
39
+ return { ibGibs: [] }; // Return empty result or whatever witness expects
40
+ }
41
+ return undefined;
42
+ }
43
+ }
44
+ /**
45
+ * A partial mock of Metaspace.
46
+ */
47
+ export class MockMetaspaceService {
48
+ space;
49
+ /**
50
+ * Map of TJP Gib (Timeline ID) -> Latest IbGib Addr (Head)
51
+ */
52
+ timelineHeads = new Map();
53
+ constructor(space) {
54
+ this.space = space;
55
+ }
56
+ async getLocalUserSpace({ lock }) {
57
+ return this.space;
58
+ }
59
+ async put(args) {
60
+ const target = args.space || this.space;
61
+ return target.put(args);
62
+ }
63
+ async registerNewIbGib(args) {
64
+ const { ibGib } = args;
65
+ const targetSpace = args.space || this.space;
66
+ // 1. Ensure it is stored
67
+ await targetSpace.put({ ibGib });
68
+ // 2. Extract TJP
69
+ const gib = ibGib.gib || '';
70
+ let tjpGib = gib;
71
+ if (gib.includes('.')) {
72
+ const parts = gib.split('.');
73
+ tjpGib = parts.slice(1).join('.');
74
+ }
75
+ const addr = getIbGibAddr({ ibGib });
76
+ this.timelineHeads.set(tjpGib, addr);
77
+ }
78
+ }
79
+ //# sourceMappingURL=mock-space.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-space.mjs","sourceRoot":"","sources":["../../src/test/mock-space.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @module timeline-api.respec
3
+ *
4
+ * specs for the high-level timeline api.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=timeline-api.respec.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline-api.respec.d.mts","sourceRoot":"","sources":["../../src/timeline/timeline-api.respec.mts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,183 @@
1
+ /**
2
+ * @module timeline-api.respec
3
+ *
4
+ * specs for the high-level timeline api.
5
+ */
6
+ import { firstOfEach, ifWe, iReckon, respecfully } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
7
+ import { getLatestAddrs, getFromSpace } from '../witness/space/space-helper.mjs';
8
+ import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
9
+ import { createTimeline, mut8Timeline, appendToTimeline, getHistory } from './timeline-api.mjs';
10
+ import { Metaspace_Innerspace } from '../witness/space/metaspace/metaspace-innerspace/metaspace-innerspace.mjs';
11
+ const maam = `[${import.meta.url}]`, sir = maam;
12
+ respecfully(sir, `[timeline-api]`, async () => {
13
+ let space;
14
+ let metaspace;
15
+ firstOfEach(sir, async () => {
16
+ metaspace = new Metaspace_Innerspace(undefined);
17
+ await metaspace.initialize({
18
+ getFnAlert: () => async ({ title, msg }) => { console.log(`[Alert] ${title}: ${msg}`); },
19
+ getFnPrompt: () => async ({ title, msg }) => { console.log(`[Prompt] ${title}: ${msg}`); return ''; },
20
+ getFnPromptPassword: () => async (title, msg) => { console.log(`[PromptPwd] ${title}: ${msg}`); return null; },
21
+ });
22
+ space = metaspace.zeroSpace;
23
+ });
24
+ await ifWe(sir, `createTimeline`, async () => {
25
+ const res = await createTimeline({
26
+ space,
27
+ metaspace,
28
+ data: { note: 'first timeline' },
29
+ ib: 'timeline',
30
+ });
31
+ const newTimeline = res.newIbGib;
32
+ iReckon(sir, newTimeline).asTo('newTimeline').isGonnaBeTruthy();
33
+ const addr = getIbGibAddr({ ibGib: newTimeline });
34
+ // verify persistence
35
+ const resGet = await getFromSpace({ addr, space });
36
+ iReckon(sir, resGet.success).asTo('persisted success').isGonnaBeTrue();
37
+ iReckon(sir, resGet.ibGibs[0]).asTo('persisted ibGib').isGonnaBe(newTimeline);
38
+ });
39
+ await ifWe(sir, `mut8Timeline`, async () => {
40
+ // Arrange
41
+ const resCreate = await createTimeline({
42
+ space,
43
+ metaspace,
44
+ data: { note: 'orig' },
45
+ ib: 'timeline',
46
+ });
47
+ const timeline = resCreate.newIbGib;
48
+ console.log(`[mut8Timeline] created timeline n=${timeline.data.n}`);
49
+ const initialPastLength = timeline.rel8ns?.past?.length || 0;
50
+ console.log(`[mut8Timeline] created timeline past length=${initialPastLength}`);
51
+ // Act
52
+ const mutatedTimeline = await mut8Timeline({
53
+ timeline,
54
+ metaspace,
55
+ space,
56
+ mut8Opts: {
57
+ dataToAddOrPatch: { note: 'mutated' },
58
+ }
59
+ });
60
+ console.log(`[mut8Timeline] mutated timeline n=${mutatedTimeline.data.n}`);
61
+ // Assert
62
+ iReckon(sir, mutatedTimeline).asTo('mutatedTimeline').isGonnaBeTruthy();
63
+ iReckon(sir, mutatedTimeline.data.note).asTo('data.note').isGonnaBe('mutated');
64
+ // n should increment by 1
65
+ const expectedN = (timeline.data.n || 0) + 1;
66
+ iReckon(sir, mutatedTimeline.data.n).asTo('data.n').isGonnaBe(expectedN);
67
+ iReckon(sir, mutatedTimeline.rel8ns.past).asTo('past').isGonnaBeTruthy();
68
+ // past length should include the previous frame + whatever it had
69
+ iReckon(sir, mutatedTimeline.rel8ns.past.length).asTo('past length').isGonnaBe(initialPastLength + 1);
70
+ iReckon(sir, mutatedTimeline.rel8ns.past.at(-1)).asTo('past addr').isGonnaBe(getIbGibAddr({ ibGib: timeline }));
71
+ });
72
+ await ifWe(sir, `appendToTimeline`, async () => {
73
+ // Arrange
74
+ const resCreate = await createTimeline({
75
+ space,
76
+ metaspace,
77
+ data: { n: 0 },
78
+ ib: 'timeline',
79
+ });
80
+ let timeline = resCreate.newIbGib;
81
+ const rel8nInfos = [{
82
+ rel8nName: 'attachment',
83
+ ibGibs: [timeline] // just attaching itself as a test, weird but valid structure
84
+ }];
85
+ const timelinePastLength = timeline.rel8ns?.past?.length || 0;
86
+ // Act
87
+ const appendedTimeline = await appendToTimeline({
88
+ timeline,
89
+ rel8nInfos,
90
+ metaspace,
91
+ space,
92
+ });
93
+ // Assert
94
+ iReckon(sir, appendedTimeline).asTo('appendedTimeline').isGonnaBeTruthy();
95
+ iReckon(sir, appendedTimeline.rel8ns.attachment).asTo('attachment').isGonnaBeTruthy();
96
+ iReckon(sir, appendedTimeline.rel8ns.past?.length).asTo('past').isGonnaBe(timelinePastLength + 1);
97
+ });
98
+ await ifWe(sir, `getHistory`, async () => {
99
+ // Arrange
100
+ let t0 = (await createTimeline({ space, metaspace, data: { n: 0 }, ib: 'timeline' })).newIbGib;
101
+ let t1 = await mut8Timeline({ timeline: t0, metaspace, space, mut8Opts: { dataToAddOrPatch: { n: 1 } } });
102
+ let t2 = await mut8Timeline({ timeline: t1, metaspace, space, mut8Opts: { dataToAddOrPatch: { n: 2 } } });
103
+ // Act
104
+ const history = await getHistory({
105
+ timeline: t2,
106
+ metaspace,
107
+ space,
108
+ });
109
+ // Assert
110
+ // t0 is actually 2nd frame (fork -> mut8).
111
+ // so history is [genesis, t0, t1]. length 3.
112
+ iReckon(sir, history.orderedPastIbGibs.length).asTo('history length').isGonnaBe(3);
113
+ // index 0 is genesis (the fork)
114
+ // index 1 is t0
115
+ // index 2 is t1
116
+ iReckon(sir, getIbGibAddr({ ibGib: history.orderedPastIbGibs[1] })).asTo('t0').isGonnaBe(getIbGibAddr({ ibGib: t0 }));
117
+ iReckon(sir, getIbGibAddr({ ibGib: history.orderedPastIbGibs[2] })).asTo('t1').isGonnaBe(getIbGibAddr({ ibGib: t1 }));
118
+ iReckon(sir, getIbGibAddr({ ibGib: history.headIbGib })).asTo('head').isGonnaBe(getIbGibAddr({ ibGib: t2 }));
119
+ });
120
+ await ifWe(sir, `Concurrency & Locking (Stress Test)`, async () => {
121
+ // const concurrencyLevels = [1, 2, 5, 50, 1000]; // too slow, because the locking mechanism doesn't scale well.
122
+ const concurrencyLevels = [1, 2, 5, 50];
123
+ for (const N of concurrencyLevels) {
124
+ console.log(`[Stress Test] Testing concurrency level: ${N}`);
125
+ // Arrange: Baseline
126
+ let tInitial = (await createTimeline({
127
+ space,
128
+ metaspace,
129
+ data: { n: 0, testId: `concurrent-${N}` },
130
+ ib: 'timeline',
131
+ })).newIbGib;
132
+ // Initial state check
133
+ const initialN = (tInitial.data.n || 0); // should be 1
134
+ const historyInitial = await getHistory({ timeline: tInitial, metaspace, space });
135
+ const initialHistoryLength = historyInitial.orderedPastIbGibs.length; // should be 1 (genesis)
136
+ // Act: Launch N mutations simultaneously
137
+ const promises = [];
138
+ for (let i = 0; i < N; i++) {
139
+ promises.push(mut8Timeline({
140
+ timeline: tInitial, // All start referencing the same initial frame (or logically the timeline itself)
141
+ // Note: In reality, if we pass the *same* object tInitial, mut8Timeline should
142
+ // resolve the *latest* inside the function.
143
+ metaspace,
144
+ space,
145
+ mut8Opts: {
146
+ dataToAddOrPatch: {
147
+ uniq: i, // distinct data to ensure unique hashes if needed
148
+ }
149
+ }
150
+ // No skipLock! We want them to contend.
151
+ }));
152
+ }
153
+ try {
154
+ // Wait for all to complete
155
+ await Promise.all(promises);
156
+ // Verification
157
+ // 1. Get Latest Address
158
+ const resLatest = await getLatestAddrs({ ibGibs: [tInitial], space });
159
+ const latestAddr = resLatest.data.latestAddrsMap[getIbGibAddr({ ibGib: tInitial })];
160
+ iReckon(sir, latestAddr).asTo(`[N=${N}] latestAddr exists`).isGonnaBeTruthy();
161
+ // 2. Load the latest frame
162
+ const resGet = await getFromSpace({ addr: latestAddr, space });
163
+ const latestIbGib = resGet.ibGibs[0];
164
+ // 3. Verify data.n
165
+ // Initial n=1. We did N mutations.
166
+ // Each mutation increments nCounter.
167
+ const expectedN = initialN + N;
168
+ iReckon(sir, latestIbGib.data.n).asTo(`[N=${N}] data.n should be ${expectedN}`).isGonnaBe(expectedN);
169
+ // 4. Verify Lineage (no divergence)
170
+ // History length should be initialHistoryLength + N
171
+ const history = await getHistory({ timeline: latestIbGib, metaspace, space });
172
+ const expectedHistoryLength = initialHistoryLength + N;
173
+ iReckon(sir, history.orderedPastIbGibs.length).asTo(`[N=${N}] history length`).isGonnaBe(expectedHistoryLength);
174
+ console.log(`[Stress Test] [N=${N}] SUCCESS. Final n=${latestIbGib.data.n}`);
175
+ }
176
+ catch (err) {
177
+ console.error(`[Stress Test] [N=${N}] FAILED:`, err);
178
+ throw err;
179
+ }
180
+ }
181
+ });
182
+ });
183
+ //# sourceMappingURL=timeline-api.respec.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline-api.respec.mjs","sourceRoot":"","sources":["../../src/timeline/timeline-api.respec.mts"],"names":[],"mappings":"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"}