Skip to content

v3.3.13

Compare
Choose a tag to compare
@github-actions github-actions released this 08 Nov 17:58
· 68 commits to develop since this release

πŸš€ Features

  • Added ai.chat.allowedModels feature to enforce model usage limits, restricting access to specific models based on configuration.

  • Added shared documents.

    • Shared documents utilize insts to be able to share data without using bots and tags.

    • Additionally, shared documents can be loaded and unloaded at will.

    • The following functions have been added:

      • os.getSharedDocument(name) - Gets a document that is stored in the current inst.
      • os.getSharedDocument(recordName, inst, name) - Gets a document that is stored in the specified inst.
      • os.getLocalDocument(name) - Gets a document that is stored on this device.
      • os.getMemoryDocument() - Gets a document that is stored in memory and cleared upon refresh.
    • Usage:

      // Get a document stored in this inst named "test"
      const doc = await os.getSharedDocument('test');
      
      // maps work like the Map type (see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map)
      const inventory = doc.getMap<number>('inventory');
      
      inventory.set('spoons', 2);
      inventory.set('forks', 3);
      os.log('Number of spoons: ' + inventory.get('spoons'));
      
      // arrays work like regular JavaScript arrays:
      const shoppingList = doc.getArray<string>('shoppingList');
      shoppingList.push('cereal', 'milk', 'eggs');
      
      os.log('Shopping list:', inventory.toArray());
      
      // Text is a special type that makes it easy to work with long strings
      const blogPost = doc.getText('blogPost');
      
      blogPost.insert(0, 'Hello, world!');
      
      os.log('Blog Post:

', blogPost.toString());
```

πŸ› Bug Fixes

  • Fixed an issue where CasualOS would prompt for login when trying to join a room using os.joinRoom().