package golem:rust;

world golem-rust {
  import golem:api/host@1.3.0;
  import golem:api/oplog@1.3.0;
  import golem:api/context@1.3.0;

  import golem:agent/host;

  import golem:durability/durability@1.3.0;
  import golem:rdbms/mysql@0.0.1;
  import golem:rdbms/postgres@0.0.1;
  import golem:rpc/types@0.2.2;

  import wasi:blobstore/blobstore;
  import wasi:blobstore/container;
  import wasi:cli/environment@0.2.3;
  import wasi:clocks/wall-clock@0.2.3;
  import wasi:clocks/monotonic-clock@0.2.3;
  import wasi:filesystem/preopens@0.2.3;
  import wasi:filesystem/types@0.2.3;
  import wasi:http/types@0.2.3;
  import wasi:http/outgoing-handler@0.2.3;
  import wasi:io/poll@0.2.3;
  import wasi:io/streams@0.2.3;
  import wasi:keyvalue/eventual-batch@0.1.0;
  import wasi:keyvalue/eventual@0.1.0;
  import wasi:logging/logging;
  import wasi:sockets/ip-name-lookup@0.2.3;
  import wasi:sockets/instance-network@0.2.3;
}

world golem-rust-load-snapshot {
  include golem-rust;

  export golem:api/load-snapshot@1.3.0;
}

world golem-rust-save-snapshot {
    include golem-rust;
    export golem:api/save-snapshot@1.3.0;
}

world golem-rust-oplog-processor {
    include golem-rust;
    export golem:api/oplog-processor@1.3.0;
}

world golem-agentic {
   include golem-rust;
   export golem:agent/guest;
}

world golem-ai {
   include golem-rust;

   import golem:exec/executor@1.0.0;
   import golem:exec/types@1.0.0;
   import golem:graph/connection@1.0.0;
   import golem:graph/errors@1.0.0;
   import golem:graph/schema@1.0.0;
   import golem:graph/transactions@1.0.0;
   import golem:graph/traversal@1.0.0;
   import golem:graph/types@1.0.0;
   import golem:graph/query@1.0.0;
   import golem:llm/llm@1.0.0;
   import golem:search/core@1.0.0;
   import golem:search/types@1.0.0;
   import golem:stt/languages@1.0.0;
   import golem:stt/transcription@1.0.0;
   import golem:stt/types@1.0.0;
   import golem:video-generation/advanced@1.0.0;
   import golem:video-generation/lip-sync@1.0.0;
   import golem:video-generation/types@1.0.0;
   import golem:video-generation/video-generation@1.0.0;
   import golem:web-search/types@1.0.0;
   import golem:web-search/web-search@1.0.0;
}
