Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: validate

on:
pull_request:
push:
branches: [main]

permissions:
contents: read

jobs:
validate:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.22'

- name: Validate
run: make validate

- name: Release dry run
run: make release-dry-run
36 changes: 36 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
.PHONY: build test validate dist release-dry-run clean

BIN := sourceos-ai
DIST_DIR := dist
VERSION ?= 0.1.0-dev
COMMIT ?= $(shell git rev-parse --short HEAD 2>/dev/null || echo unknown)
DATE ?= $(shell date -u +%Y-%m-%dT%H:%M:%SZ)
GOOS ?= $(shell go env GOOS 2>/dev/null || uname -s | tr A-Z a-z)
GOARCH ?= $(shell go env GOARCH 2>/dev/null || uname -m)
DIST_NAME := $(BIN)_$(VERSION)_$(GOOS)_$(GOARCH)
LDFLAGS := -X main.version=$(VERSION) -X main.commit=$(COMMIT) -X main.date=$(DATE)

build:
mkdir -p bin
go build -ldflags "$(LDFLAGS)" -o bin/$(BIN) ./cmd/sourceos-ai

test:
go test ./...

validate: build
python3 tools/validate_carry_refs.py
bin/$(BIN) carry validate --refs examples
bin/$(BIN) doctor --refs examples
bin/$(BIN) self-test --refs examples
bin/$(BIN) emit-evidence --refs examples >/tmp/sourceos-ai-evidence.json

dist: validate
mkdir -p $(DIST_DIR)
cp bin/$(BIN) $(DIST_DIR)/$(DIST_NAME)
(cd $(DIST_DIR) && sha256sum $(DIST_NAME) > $(DIST_NAME).sha256)

release-dry-run: dist
@echo "release dry-run complete: $(DIST_DIR)/$(DIST_NAME)"

clean:
rm -rf bin $(DIST_DIR)
47 changes: 45 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,45 @@
# sourceos-model-carry
SourceOS carry-only contracts for AI service clients, signed model/service references, launch profiles, cache policy, and mutable-model-state refusal gates.
# SourceOS Model Carry

SourceOS Model Carry defines the on-device carriage layer for governed AI services.

The purpose of this repository is to let SourceOS work like a polished local-first operating system while keeping AI service lifecycle authority outside the mutable workstation image.

## Position

SourceOS may carry:

- service clients;
- launch profiles;
- signed service references;
- local cache policy;
- fallback references;
- ReleaseSet and BootReleaseSet bindings;
- evidence collectors;
- workstation integration hints.

SourceOS must not become the authority for model promotion or model lifecycle state.

## Product goal

The near-term target is an on-device experience that feels as integrated as macOS, but is more open, auditable, local-first, and mesh-ready.

That means:

- fast command-palette and keyboard-first workflow;
- local service discovery;
- offline-safe fallback behavior;
- clear per-service trust and provenance;
- user, project, and agent workspace separation;
- signed service references rather than unmanaged local artifact replacement;
- clean integration with SourceOS shell, boot, and profile systems.

## Repository scope

This repository contains:

- `contracts/` JSON schemas for SourceOS carry objects;
- `examples/` example local AI service profiles;
- `docs/` architecture and workstation integration guidance;
- `tools/` lightweight validation helpers.

Runtime service implementation belongs in SocioProphet platform service repositories. Lab execution belongs in SociOS Linux lab repositories.
Loading
Loading