No description
Find a file
Snider 8626710f9d feat: add JSON primitives + fix api.go placeholder
core.JSONMarshal(), JSONMarshalString(), JSONUnmarshal(), JSONUnmarshalString()
wrap encoding/json so consumers don't import it directly.
Same guardrail pattern as string.go wraps strings.

api.go Call() now uses JSONMarshalString instead of placeholder optionsToJSON.
7 AX-7 tests. 490 tests total, 84.8% coverage.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-25 17:40:55 +00:00
.claude chore: save LocaleProvider and Locales changes 2026-03-17 01:45:42 +00:00
.core feat: add .core/ build and release configuration 2026-03-06 17:40:40 +00:00
.githooks chore(githooks): fix pre-commit QA 2026-02-05 22:07:14 +00:00
.github/workflows fix: strip module prefix from coverage paths for Codecov 2026-03-21 09:16:24 +00:00
docs feat: add JSON primitives + fix api.go placeholder 2026-03-25 17:40:55 +00:00
testdata feat: inline tests + Fs zero-value fix + coverage 76.9% → 82.3% 2026-03-22 13:30:01 +00:00
.editorconfig chore: add Go repo norms (badges, contributing, lint, taskfile, editorconfig) 2026-02-23 06:45:52 +00:00
.gitattributes feat: git command, build improvements, and go fmt git-aware (#74) 2026-02-01 10:48:44 +00:00
.gitignore chore: ignore workspace and IDE dirs 2026-03-15 10:21:42 +00:00
.mcp.json chore: save LocaleProvider and Locales changes 2026-03-17 01:45:42 +00:00
action.go feat: implement Section 21 — Entitlement permission primitive 2026-03-25 16:17:16 +00:00
action_test.go fix: remove type Task any — untyped IPC replaced by named Actions 2026-03-25 15:57:36 +00:00
api.go feat: add JSON primitives + fix api.go placeholder 2026-03-25 17:40:55 +00:00
api_test.go feat: implement Section 19 — API remote streams primitive 2026-03-25 16:21:04 +00:00
app.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
app_test.go feat: New() returns *Core directly — no Result wrapper needed 2026-03-24 22:09:02 +00:00
array.go refactor: flatten polyglot layout to standard Go module 2026-03-21 08:27:14 +00:00
array_test.go feat: inline tests + Fs zero-value fix + coverage 76.9% → 82.3% 2026-03-22 13:30:01 +00:00
CLAUDE.md fix: rewrite CLAUDE.md and llm.txt — badly stale, wrong API documented 2026-03-25 17:05:07 +00:00
cli.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
cli_test.go feat: New() returns *Core directly — no Result wrapper needed 2026-03-24 22:09:02 +00:00
command.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
command_test.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
config.go feat: New() constructors for Config, Fs + simplify contract.go init 2026-03-24 22:09:02 +00:00
config_test.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
contract.go feat: implement Section 19 — API remote streams primitive 2026-03-25 16:21:04 +00:00
contract_test.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
core.go feat: implement Section 19 — API remote streams primitive 2026-03-25 16:21:04 +00:00
core_test.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
data.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
data_test.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
drive.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
drive_test.go feat: New() returns *Core directly — no Result wrapper needed 2026-03-24 22:09:02 +00:00
embed.go feat: Options struct + Result methods + WithOption convenience 2026-03-24 22:09:02 +00:00
embed_test.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
entitlement.go feat: implement Section 21 — Entitlement permission primitive 2026-03-25 16:17:16 +00:00
entitlement_test.go feat: implement Section 21 — Entitlement permission primitive 2026-03-25 16:17:16 +00:00
error.go refactor: flatten polyglot layout to standard Go module 2026-03-21 08:27:14 +00:00
error_test.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
fs.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
fs_test.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
go.mod refactor: flatten polyglot layout to standard Go module 2026-03-21 08:27:14 +00:00
go.sum refactor: flatten polyglot layout to standard Go module 2026-03-21 08:27:14 +00:00
i18n.go refactor: flatten polyglot layout to standard Go module 2026-03-21 08:27:14 +00:00
i18n_test.go feat: New() returns *Core directly — no Result wrapper needed 2026-03-24 22:09:02 +00:00
info.go feat: add core.Path() + core.Env() fallthrough + PathGlob/PathIsAbs/CleanPath 2026-03-22 09:50:50 +00:00
info_test.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
ipc.go fix: remove type Task any — untyped IPC replaced by named Actions 2026-03-25 15:57:36 +00:00
ipc_test.go fix: remove type Task any — untyped IPC replaced by named Actions 2026-03-25 15:57:36 +00:00
json.go feat: add JSON primitives + fix api.go placeholder 2026-03-25 17:40:55 +00:00
json_test.go feat: add JSON primitives + fix api.go placeholder 2026-03-25 17:40:55 +00:00
LICENSE.txt Add initial project structure with core functionality and basic files 2025-10-24 04:55:10 +01:00
llm.txt fix: rewrite CLAUDE.md and llm.txt — badly stale, wrong API documented 2026-03-25 17:05:07 +00:00
lock.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
lock_test.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
log.go refactor: flatten polyglot layout to standard Go module 2026-03-21 08:27:14 +00:00
log_test.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
options.go fix: Result.New handles (value, error) pairs correctly + embed test fixes 2026-03-24 22:09:02 +00:00
options_test.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
path.go fix: address CodeRabbit review findings 2026-03-22 10:12:52 +00:00
path_test.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
process.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
process_test.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
README.md fix: rewrite README.md — stale quick example used deleted API 2026-03-25 17:07:13 +00:00
registry.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
registry_test.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
runtime.go feat: New() returns *Core directly — no Result wrapper needed 2026-03-24 22:09:02 +00:00
runtime_test.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
service.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
service_test.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
string.go refactor: flatten polyglot layout to standard Go module 2026-03-21 08:27:14 +00:00
string_test.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
task.go fix: remove type Task any — untyped IPC replaced by named Actions 2026-03-25 15:57:36 +00:00
task_test.go fix: remove type Task any — untyped IPC replaced by named Actions 2026-03-25 15:57:36 +00:00
utils.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00
utils_test.go feat: implement RFC plans 1-5 — Registry[T], Action/Task, Process, primitives 2026-03-25 15:18:25 +00:00

CoreGO

Dependency injection, service lifecycle, permission, and message-passing for Go.

import "dappco.re/go/core"

CoreGO is the foundation layer for the Core ecosystem. It gives you:

  • one container: Core
  • one input shape: Options
  • one output shape: Result
  • one command tree: Command
  • one message bus: ACTION, QUERY + named Action callables
  • one permission gate: Entitled
  • one collection primitive: Registry[T]

Quick Example

package main

import "dappco.re/go/core"

func main() {
    c := core.New(
        core.WithOption("name", "agent-workbench"),
        core.WithService(cache.Register),
        core.WithServiceLock(),
    )
    c.Run()
}

Core Surfaces

Surface Purpose
Core Central container and access point
Service Managed lifecycle component
Command Path-based executable operation
Action Named callable with panic recovery + entitlement
Task Composed sequence of Actions
Registry[T] Thread-safe named collection
Process Managed execution (Action sugar)
API Remote streams (protocol handlers)
Entitlement Permission check result
Data Embedded filesystem mounts
Drive Named transport handles
Fs Local filesystem (sandboxable)
Config Runtime settings and feature flags

Install

go get dappco.re/go/core

Requires Go 1.26 or later.

Test

go test ./...    # 483 tests, 84.7% coverage

Docs

The authoritative API contract is docs/RFC.md (21 sections).

License

EUPL-1.2