chore: migrate to dappco.re vanity import path
Some checks failed
Security Scan / security (push) Successful in 7s
Test / test (push) Failing after 22s

Module path: forge.lthn.ai/core/go-i18n -> dappco.re/go/core/i18n
Dependency:  forge.lthn.ai/core/go-log  -> dappco.re/go/core/log

go-inference remains on forge.lthn.ai (not yet migrated).
dappco.re/go/core/log uses replace directive until published.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude 2026-03-21 23:49:15 +00:00
parent 5bc988ecf9
commit 08c78757a5
No known key found for this signature in database
GPG key ID: AF404715446AEB41
22 changed files with 33 additions and 33 deletions

View file

@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
## What This Is
Grammar-aware internationalisation engine for Go. Module: `forge.lthn.ai/core/go-i18n`
Grammar-aware internationalisation engine for Go. Module: `dappco.re/go/core/i18n`
This is a **grammar engine** — it provides primitives for composing and reversing grammatically correct text. It is NOT a translation file manager. Consumers bring their own translations.
@ -89,6 +89,6 @@ Non-English languages must provide comprehensive JSON tables since tiers 2 and 3
- UK English (colour, organisation, centre)
- `go test ./...` must pass before commit
- Errors use `log.E(op, msg, err)` from `forge.lthn.ai/core/go-log`, not `fmt.Errorf`
- Errors use `log.E(op, msg, err)` from `dappco.re/go/core/log`, not `fmt.Errorf`
- Conventional commits: `type(scope): description`
- Co-Author: `Co-Authored-By: Virgil <virgil@lethean.io>`

View file

@ -1,4 +1,4 @@
[![Go Reference](https://pkg.go.dev/badge/forge.lthn.ai/core/go-i18n.svg)](https://pkg.go.dev/forge.lthn.ai/core/go-i18n)
[![Go Reference](https://pkg.go.dev/badge/dappco.re/go/core/i18n.svg)](https://pkg.go.dev/dappco.re/go/core/i18n)
[![License: EUPL-1.2](https://img.shields.io/badge/License-EUPL--1.2-blue.svg)](LICENSE.md)
[![Go Version](https://img.shields.io/badge/Go-1.26-00ADD8?style=flat&logo=go)](go.mod)
@ -6,14 +6,14 @@
Grammar engine for Go. Provides forward composition primitives (PastTense, Gerund, Pluralize, Article, composite progress and label functions), a `T()` translation entry point with namespace key handlers, and a reversal engine that recovers base forms and grammatical roles from inflected text. The reversal package produces `GrammarImprint` feature vectors for semantic similarity scoring, builds reference domain distributions, performs anomaly detection, and includes a 1B model pre-sort pipeline for training data classification. Consumers bring their own translation keys; this library provides the grammatical machinery.
**Module**: `forge.lthn.ai/core/go-i18n`
**Module**: `dappco.re/go/core/i18n`
**Licence**: EUPL-1.2
**Language**: Go 1.25
## Quick Start
```go
import "forge.lthn.ai/core/go-i18n"
import "dappco.re/go/core/i18n"
// Grammar primitives
fmt.Println(i18n.PastTense("delete")) // "deleted"

View file

@ -5,8 +5,8 @@ import (
"fmt"
"time"
log "dappco.re/go/core/log"
"forge.lthn.ai/core/go-inference"
log "forge.lthn.ai/core/go-log"
)
// CalibrationSample is a single text entry for model comparison.

View file

@ -9,8 +9,8 @@ import (
"strings"
"time"
log "dappco.re/go/core/log"
"forge.lthn.ai/core/go-inference"
log "forge.lthn.ai/core/go-log"
)
// ClassifyStats reports metrics from a ClassifyCorpus run.

View file

@ -2,7 +2,7 @@
go-i18n is a grammar engine for Go. It is not a translation file manager. Consumers bring their own translation keys; the library provides grammatical primitives for composing and reversing grammatically correct text across multiple languages.
Module: `forge.lthn.ai/core/go-i18n`
Module: `dappco.re/go/core/i18n`
---

View file

@ -5,7 +5,7 @@ description: Grammar-aware internationalisation for Go with forward composition
# go-i18n Grammar Engine
`forge.lthn.ai/core/go-i18n` is a **grammar engine** for Go. Unlike flat key-value translation systems, it composes grammatically correct output from verbs, nouns, and articles -- and can reverse the process, decomposing inflected text back into base forms with grammatical metadata.
`dappco.re/go/core/i18n` is a **grammar engine** for Go. Unlike flat key-value translation systems, it composes grammatically correct output from verbs, nouns, and articles -- and can reverse the process, decomposing inflected text back into base forms with grammatical metadata.
This is the foundation for the Poindexter classification pipeline and the LEM scoring system.
@ -23,7 +23,7 @@ This is the foundation for the Poindexter classification pipeline and the LEM sc
## Quick Start
```go
import i18n "forge.lthn.ai/core/go-i18n"
import i18n "dappco.re/go/core/i18n"
// Initialise the default service (uses embedded en.json)
svc, err := i18n.New()
@ -38,7 +38,7 @@ i18n.Article("SSH") // "an"
```
```go
import "forge.lthn.ai/core/go-i18n/reversal"
import "dappco.re/go/core/i18n/reversal"
// Reverse decomposition
tok := reversal.NewTokeniser()

6
go.mod
View file

@ -1,4 +1,4 @@
module forge.lthn.ai/core/go-i18n
module dappco.re/go/core/i18n
go 1.26.0
@ -6,8 +6,8 @@ require golang.org/x/text v0.35.0
require (
dappco.re/go/core v0.4.7
dappco.re/go/core/log v0.0.4
forge.lthn.ai/core/go-inference v0.1.4
forge.lthn.ai/core/go-log v0.0.4
)
require github.com/kr/text v0.2.0 // indirect
@ -18,3 +18,5 @@ require (
github.com/stretchr/testify v1.11.1
gopkg.in/yaml.v3 v3.0.1 // indirect
)
replace dappco.re/go/core/log => ../go-log

6
go.sum
View file

@ -1,9 +1,7 @@
forge.lthn.ai/core/go v0.3.1 h1:5FMTsUhLcxSr07F9q3uG0Goy4zq4eLivoqi8shSY4UM=
forge.lthn.ai/core/go v0.3.1/go.mod h1:gE6c8h+PJ2287qNhVUJ5SOe1kopEwHEquvinstpuyJc=
dappco.re/go/core v0.4.7 h1:KmIA/2lo6rl1NMtLrKqCWfMlUqpDZYH3q0/d10dTtGA=
dappco.re/go/core v0.4.7/go.mod h1:f2/tBZ3+3IqDrg2F5F598llv0nmb/4gJVCFzM5geE4A=
forge.lthn.ai/core/go-inference v0.1.4 h1:fuAgWbqsEDajHniqAKyvHYbRcBrkGEiGSqR2pfTMRY0=
forge.lthn.ai/core/go-inference v0.1.4/go.mod h1:jfWz+IJX55wAH98+ic6FEqqGB6/P31CHlg7VY7pxREw=
forge.lthn.ai/core/go-log v0.0.4 h1:KTuCEPgFmuM8KJfnyQ8vPOU1Jg654W74h8IJvfQMfv0=
forge.lthn.ai/core/go-log v0.0.4/go.mod h1:r14MXKOD3LF/sI8XUJQhRk/SZHBE7jAFVuCfgkXoZPw=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=

View file

@ -6,7 +6,7 @@ import (
"sort"
"testing"
i18n "forge.lthn.ai/core/go-i18n"
i18n "dappco.re/go/core/i18n"
"forge.lthn.ai/core/go-inference"
_ "forge.lthn.ai/core/go-mlx" // registers Metal backend
)

View file

@ -9,7 +9,7 @@ import (
"testing"
"time"
i18n "forge.lthn.ai/core/go-i18n"
i18n "dappco.re/go/core/i18n"
"forge.lthn.ai/core/go-inference"
_ "forge.lthn.ai/core/go-mlx" // registers Metal backend
)

View file

@ -1,9 +1,9 @@
module forge.lthn.ai/core/go-i18n/integration
module dappco.re/go/core/i18n/integration
go 1.25.5
require (
forge.lthn.ai/core/go-i18n v0.0.0-00010101000000-000000000000
dappco.re/go/core/i18n v0.0.0-00010101000000-000000000000
forge.lthn.ai/core/go-inference v0.0.0
forge.lthn.ai/core/go-mlx v0.0.0-00010101000000-000000000000
)
@ -11,7 +11,7 @@ require (
require golang.org/x/text v0.33.0 // indirect
replace (
forge.lthn.ai/core/go-i18n => ../
dappco.re/go/core/i18n => ../
forge.lthn.ai/core/go-inference => ../../go-inference
forge.lthn.ai/core/go-mlx => ../../go-mlx
)

View file

@ -7,7 +7,7 @@ import (
"strings"
"sync"
log "forge.lthn.ai/core/go-log"
log "dappco.re/go/core/log"
)
// FSLoader loads translations from a filesystem (embedded or disk).

View file

@ -3,7 +3,7 @@ package reversal
import (
"testing"
i18n "forge.lthn.ai/core/go-i18n"
i18n "dappco.re/go/core/i18n"
)
func TestNewImprint(t *testing.T) {

View file

@ -4,7 +4,7 @@ import (
"strings"
"unicode"
i18n "forge.lthn.ai/core/go-i18n"
i18n "dappco.re/go/core/i18n"
)
// Multiplier generates deterministic grammatical variants of text

View file

@ -3,7 +3,7 @@ package reversal
import (
"testing"
i18n "forge.lthn.ai/core/go-i18n"
i18n "dappco.re/go/core/i18n"
)
func TestMultiplier_Expand(t *testing.T) {

View file

@ -5,7 +5,7 @@ import (
"math"
"slices"
log "forge.lthn.ai/core/go-log"
log "dappco.re/go/core/log"
)
// ClassifiedText is a text sample with a domain label (from 1B model or ground truth).

View file

@ -4,7 +4,7 @@ import (
"math"
"testing"
i18n "forge.lthn.ai/core/go-i18n"
i18n "dappco.re/go/core/i18n"
)
func initI18n(t *testing.T) *Tokeniser {

View file

@ -3,7 +3,7 @@ package reversal
import (
"testing"
i18n "forge.lthn.ai/core/go-i18n"
i18n "dappco.re/go/core/i18n"
)
// TestRoundTrip_ForwardThenReverse — go-i18n composed output → reversal → verify correct tokens

View file

@ -18,7 +18,7 @@ package reversal
import (
"strings"
i18n "forge.lthn.ai/core/go-i18n"
i18n "dappco.re/go/core/i18n"
)
// VerbMatch holds the result of a reverse verb lookup.

View file

@ -3,7 +3,7 @@ package reversal
import (
"testing"
i18n "forge.lthn.ai/core/go-i18n"
i18n "dappco.re/go/core/i18n"
)
func setup(t *testing.T) {

View file

@ -12,7 +12,7 @@ import (
"sync"
"sync/atomic"
log "forge.lthn.ai/core/go-log"
log "dappco.re/go/core/log"
"golang.org/x/text/language"
)

View file

@ -7,8 +7,8 @@ import (
"fmt"
"strings"
log "dappco.re/go/core/log"
"forge.lthn.ai/core/go-inference"
log "forge.lthn.ai/core/go-log"
)
// ArticlePair holds a noun and its proposed article for validation.