A hybrid client/server web framework
soma-flow dev container 脚手架 - 新建/升级项目 devcontainer 配置
SOMA backend utilities
SOMA Finance core contracts
Soma — the AI coding agent with self-growing memory
Soma SDK
Homebridge Soma Smartshades Plugin
Framework Onbbu - Soma
Soma core SDK — shared types, route contracts, and utilities for building Soma extensions
Homebridge plugin for Soma Smart Shades
SOMA Preview — Standalone design preview server for SOMA projects. Renders HTML templates with mock data from project spec, no Domain Class needed.
Soma is a javascript framework created to build scalable and maintainable applications.
Control Soma BTLE Smart Shade devices by HTTP or MQTT
The Soma trust machine for AI agents — one package: execution heart (HMAC, birth certs, heartbeat chain, credential rotation, human-consent session mode) + sensorium (temporal fingerprinting, behavioral landscape, phenotype atlas) + MCP middleware.
SOMA — Semantic Oriented Modular Architecture. A declarative frontend framework runtime built on Next.js 14+ App Router.
Soma components for Angular
Homebridge Soma Smartshades Plugin
Soma sensorium — observer-side verification for AI agents. Thin re-export of soma-heart/sense.
A Convex component that normalizes health and fitness data from multiple wearable providers into a single, consistent schema.
A homebridge plugin for SOMA Smart Shades
The official TypeScript/JavaScript SDK for building AI agents with [Soma](https://github.com/trysoma/soma).
Node red node for controlling a soma smart shade
Available on npm https://www.npmjs.com/package/soma-runtime
Homebridge Soma Smartshades Plugin
Simplify `Option` usage
Cross-platform CTF problem container manager
Standalone ring execution engine for soma(som): cycle lifecycle, extension registration, boundary mediation
Universal soma(som) structural primitives — Quad / Tree / Ring / Genesis / Fingerprint / TemporalLedger / CrossingRecord
Derive macros for the Soma computational graph runtime
Autonomous research agent for the Soma runtime
Graph-to-execution-plan compiler for the Soma runtime
Core types and traits for the Soma computational graph runtime
Derive macros for the Soma computational graph runtime
Knowledge base and temporal experiment tracking for the Soma runtime
Execution engine for the Soma computational graph runtime
Worker daemon for distributed execution in the Soma runtime
social machine impl, soon
Send Ruby to IRB from _teh outside_!
Soma as parada
Essa gem soma números legais.
Teste gem soma subtrai
Essa gems soma os numeros de um array e divide pelo tamanho do array
Somatics 3 generators is used to generate a resource with skeleton admin panel
Somadic is a terminal-based player for somafm.com and DI.fm.
Somatics3 is a collection of generators and extensions which reduces the effort of building admin panel for rails 3 resources.
Somatsu is a web app with its Rack middleware permits to manage rails apps installationsadding multi database support.
# StudioGame (Alec) Jogo de terminal em Ruby com **jogadores, dados, tesouros e variações de jogadores** (Clumsy e Berserk), empacotado como gem. > Nome do gem (exemplo): `studio_game_alec` --- ## 🚀 Instalação e execução ### Rodando direto do código-fonte No diretório do projeto: ```bash ruby bin/studio_game ``` Se você não passar um arquivo de jogadores via CLI, o script usa o `players.csv` que fica em `bin/` por padrão. Também funciona passando um CSV na linha de comando: ```bash ruby bin/studio_game my_favorite_players.csv ``` ### Como gem (local) Empacote e instale localmente: ```bash gem build studio_game.gemspec gem install studio_game_alec-<versao>.gem ``` Depois rode: ```bash studio_game ``` > No Windows, o executável será resolvido pelo RubyGems. Se preferir, rode: `ruby bin/studio_game`. --- ## 📁 Estrutura do projeto ``` games/ ├─ bin/ │ ├─ studio_game # script principal (tem shebang) │ └─ players.csv # CSV padrão (nome,vida) ├─ lib/ │ └─ studio_game/ │ ├─ auditable.rb │ ├─ berserk_player.rb │ ├─ clumsy_player.rb │ ├─ die.rb │ ├─ game.rb │ ├─ game_turn.rb │ ├─ loaded_die.rb │ ├─ playable.rb │ ├─ player.rb │ └─ treasure_trove.rb ├─ spec/ │ └─ studio_game/ # specs RSpec ├─ LICENSE ├─ README.md └─ studio_game.gemspec ``` - **Namespace:** todo o código vive dentro do módulo `StudioGame` para evitar colisões. - **bin/studio_game:** script CLI com shebang (`#!/usr/bin/env ruby`). Faz _fallback_ do `$LOAD_PATH` para `lib` quando usado fora da gem. - **lib/studio_game/**: código da biblioteca (classes/módulos). - **spec/**: testes RSpec. --- ## 🧩 Conceitos principais - **Player** (`player.rb`): representa um jogador com `name`, `health`, coleta tesouros e calcula `score` (= `health` + `points`). Inclui o mixin **Playable**. - **Playable** (`playable.rb`): mixin com `w00t`, `blam` e `strong?` (altera/consulta `health` via getters/setters). - **TreasureTrove** (`treasure_trove.rb`): define `Treasure = Struct.new(:name,:points)` e a constante `TREASURES`; possui `.random`. - **Die/LoadedDie** (`die.rb`, `loaded_die.rb`): rolam valores (o carregado favorece 1,1,2,5,6,6). Ambos incluem **Auditable**. - **Auditable** (`auditable.rb`): imprime “Rolled a X (DieClass)” após cada rolagem. - **Game** (`game.rb`): agrega jogadores, carrega CSV, executa rodadas, soma pontos e salva _high scores_. - **GameTurn** (`game_turn.rb`): executa a lógica de um turno para um jogador (rola dado, aplica `blam/w00t/skip` e concede tesouro). - **ClumsyPlayer / BerserkPlayer**: variações de `Player` que modificam comportamento de `w00t` e de coleta de tesouros. --- ## 🧪 Testes Rode todos os testes: ```bash rspec ``` Principais coisas testadas: - Ordenação de jogadores por `score` (usa `<=>` em `Player`). - Cálculo de `points` e `score` (soma de tesouros + vida). - Efeitos de `w00t`/`blam` e força (`strong?`). - Lógica de turno com _stubs_ de dado (`allow_any_instance_of(LoadedDie).to receive(:roll).and_return(n)`). - Comportamentos de `ClumsyPlayer` e `BerserkPlayer`. --- ## 📦 CSVs e caminhos - `bin/studio_game` resolve o CSV padrão assim: ```ruby default_player_file = File.join(File.dirname(__FILE__), 'players.csv') game.load_players(ARGV.shift || default_player_file) ``` - Você pode passar um arquivo `.csv` via CLI como primeiro argumento. Formato do CSV: ``` Moe,100 Larry,60 Curly,125 ``` --- ## 🧾 High Scores Após sair do loop, o jogo grava `high_score.txt` com as entradas ordenadas. Cada linha é formatada por `Game#high_score_entry`: ``` <nome com padding de pontos> <score> ``` --- ## 🛠️ Dicas de desenvolvimento - Use `require 'studio_game/arquivo'` quando a gem estiver instalada. - No script binário, o `begin/rescue LoadError` faz _fallback_ para `$LOAD_PATH` local, útil fora da gem. - Para debugar I/O em testes, o spec redireciona `STDOUT` (`$stdout = StringIO.new`). --- ## 📚 Licença MIT – veja o arquivo `LICENSE`.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.