| 1/1 | Module: the import path is src.rest/cat/012 | +1164 | -1164 | ✓ |
No comments yet: forge comment 1 adds one.
1/1 Module: the import path is src.rest/cat/012
The forge answers go-get for src.rest/<owner>/<repo>/... with the repo's https clone, so go install src.rest/cat/012/cmd/012@latest fetches from src.rest. Links to the GitHub repository stay as they are.
@@ -16,7 +16,7 @@ It is one pure-Go binary.
1616 1717 ```sh1818 curl -fsSL https://012.dev.site/install.sh | sh # macOS, Linux: into ~/.local/bin19-go install github.com/FelineStateMachine/012/cmd/012@latest # or build it with Go 1.2719+go install src.rest/cat/012/cmd/012@latest # or build it with Go 1.272020 ```2121 2222 On Windows, `irm https://012.dev.site/install.ps1 | iex` in PowerShell.@@ -11,10 +11,10 @@ import (
1111 1212 "github.com/charmbracelet/x/term"1313 14- "github.com/FelineStateMachine/012/internal/config"15- "github.com/FelineStateMachine/012/internal/jev"16- "github.com/FelineStateMachine/012/internal/keyring"17- "github.com/FelineStateMachine/012/internal/ui/theme"14+ "src.rest/cat/012/internal/config"15+ "src.rest/cat/012/internal/jev"16+ "src.rest/cat/012/internal/keyring"17+ "src.rest/cat/012/internal/ui/theme"1818 )1919 2020 // runConfig is `012 config ...`: see docs/reference/config.md.@@ -7,9 +7,9 @@ import (
77 "strings"88 "time"99 10- "github.com/FelineStateMachine/012/internal/config"11- "github.com/FelineStateMachine/012/internal/fileio"12- "github.com/FelineStateMachine/012/internal/ui"10+ "src.rest/cat/012/internal/config"11+ "src.rest/cat/012/internal/fileio"12+ "src.rest/cat/012/internal/ui"1313 )1414 1515 // When the UI stops on an internal error (a panic, which ui.Guard@@ -9,8 +9,8 @@ import (
99 "slices"1010 "strings"1111 12- "github.com/FelineStateMachine/012/internal/diff"13- "github.com/FelineStateMachine/012/internal/headless"12+ "src.rest/cat/012/internal/diff"13+ "src.rest/cat/012/internal/headless"1414 )1515 1616 // 012 diff and 012 merge-driver: workbooks compared and merged cell by@@ -8,10 +8,10 @@ import (
88 "os/signal"99 "time"1010 11- "github.com/FelineStateMachine/012/internal/config"12- "github.com/FelineStateMachine/012/internal/headless"13- "github.com/FelineStateMachine/012/internal/jev"14- "github.com/FelineStateMachine/012/internal/nushell"11+ "src.rest/cat/012/internal/config"12+ "src.rest/cat/012/internal/headless"13+ "src.rest/cat/012/internal/jev"14+ "src.rest/cat/012/internal/nushell"1515 )1616 1717 // jevTimeout bounds each JEV question, as on the screen.@@ -8,9 +8,9 @@ import (
88 "path/filepath"99 "strings"1010 11- "github.com/FelineStateMachine/012/internal/fileio"12- "github.com/FelineStateMachine/012/internal/headless"13- "github.com/FelineStateMachine/012/internal/sheet"11+ "src.rest/cat/012/internal/fileio"12+ "src.rest/cat/012/internal/headless"13+ "src.rest/cat/012/internal/sheet"1414 )1515 1616 const exportUsage = "usage: 012 export file.012 out.csv|tsv|xlsx|json|nuon|sqlite|html [ref] [--format kind] [--table name] [--chart n|title] [--report json|nuon] [--notebooks] [--jev] [--trust]"@@ -8,8 +8,8 @@ import (
88 "strings"99 "testing"1010 11- "github.com/FelineStateMachine/012/internal/headless"12- "github.com/FelineStateMachine/012/internal/sheet"11+ "src.rest/cat/012/internal/headless"12+ "src.rest/cat/012/internal/sheet"1313 )1414 1515 // With O12_AS_MAIN set, the test binary is 012 itself, so git can run@@ -11,13 +11,13 @@ import (
1111 1212 tea "charm.land/bubbletea/v2"1313 14- "github.com/FelineStateMachine/012/internal/config"15- "github.com/FelineStateMachine/012/internal/fileio"16- "github.com/FelineStateMachine/012/internal/jev"17- "github.com/FelineStateMachine/012/internal/keyring"18- "github.com/FelineStateMachine/012/internal/nushell"19- "github.com/FelineStateMachine/012/internal/sheet"20- "github.com/FelineStateMachine/012/internal/ui"14+ "src.rest/cat/012/internal/config"15+ "src.rest/cat/012/internal/fileio"16+ "src.rest/cat/012/internal/jev"17+ "src.rest/cat/012/internal/keyring"18+ "src.rest/cat/012/internal/nushell"19+ "src.rest/cat/012/internal/sheet"20+ "src.rest/cat/012/internal/ui"2121 )2222 2323 func main() {@@ -10,8 +10,8 @@ import (
1010 1111 tea "charm.land/bubbletea/v2"1212 13- "github.com/FelineStateMachine/012/internal/config"14- "github.com/FelineStateMachine/012/internal/keyring"13+ "src.rest/cat/012/internal/config"14+ "src.rest/cat/012/internal/keyring"1515 )1616 1717 // testEnv points the config at a temporary directory and the credential@@ -11,12 +11,12 @@ import (
1111 1212 sdk "github.com/modelcontextprotocol/go-sdk/mcp"1313 14- "github.com/FelineStateMachine/012/internal/config"15- "github.com/FelineStateMachine/012/internal/cowork"16- "github.com/FelineStateMachine/012/internal/headless"17- "github.com/FelineStateMachine/012/internal/jev"18- "github.com/FelineStateMachine/012/internal/mcp"19- "github.com/FelineStateMachine/012/internal/sheet"14+ "src.rest/cat/012/internal/config"15+ "src.rest/cat/012/internal/cowork"16+ "src.rest/cat/012/internal/headless"17+ "src.rest/cat/012/internal/jev"18+ "src.rest/cat/012/internal/mcp"19+ "src.rest/cat/012/internal/sheet"2020 )2121 2222 // 012 mcp: a Model Context Protocol server over standard input and@@ -8,8 +8,8 @@ import (
88 99 tea "charm.land/bubbletea/v2"1010 11- "github.com/FelineStateMachine/012/internal/fileio"12- "github.com/FelineStateMachine/012/internal/ui"11+ "src.rest/cat/012/internal/fileio"12+ "src.rest/cat/012/internal/ui"1313 )1414 1515 // 012 - and 012 --pipe (see docs/nushell/pipelines.md): standard input@@ -7,10 +7,10 @@ import (
77 "slices"88 "strings"99 10- "github.com/FelineStateMachine/012/internal/diff"11- "github.com/FelineStateMachine/012/internal/headless"12- "github.com/FelineStateMachine/012/internal/notebook"13- "github.com/FelineStateMachine/012/internal/nuon"10+ "src.rest/cat/012/internal/diff"11+ "src.rest/cat/012/internal/headless"12+ "src.rest/cat/012/internal/notebook"13+ "src.rest/cat/012/internal/nuon"1414 )1515 1616 // 012 get, set and recalc: workbook files read and changed without the@@ -9,9 +9,9 @@ import (
99 "strings"1010 "testing"1111 12- "github.com/FelineStateMachine/012/internal/notebook"13- "github.com/FelineStateMachine/012/internal/nushell"14- "github.com/FelineStateMachine/012/internal/sheet"12+ "src.rest/cat/012/internal/notebook"13+ "src.rest/cat/012/internal/nushell"14+ "src.rest/cat/012/internal/sheet"1515 )1616 1717 // scriptEnv is testEnv with standard error apart from standard output.@@ -15,8 +15,8 @@ import (
1515 1616 gossh "golang.org/x/crypto/ssh"1717 18- "github.com/FelineStateMachine/012/internal/config"19- "github.com/FelineStateMachine/012/internal/serve"18+ "src.rest/cat/012/internal/config"19+ "src.rest/cat/012/internal/serve"2020 )2121 2222 const serveUsage = "usage: 012 serve [--listen addr] [--authorized-keys file] [--host-key file] [--idle-timeout 30m] [--max-sessions 8] [--share edit|view|off] [dir]"@@ -5,9 +5,9 @@ import (
55 "runtime/debug"66 "time"77 8- "github.com/FelineStateMachine/012/internal/config"9- "github.com/FelineStateMachine/012/internal/sheet"10- "github.com/FelineStateMachine/012/internal/telemetry"8+ "src.rest/cat/012/internal/config"9+ "src.rest/cat/012/internal/sheet"10+ "src.rest/cat/012/internal/telemetry"1111 )1212 1313 // telemetryConfig is where telemetry goes: the log file, level and OTLP@@ -58,7 +58,7 @@ flowchart TD
5858 ```5959 6060 The Go module proxy picks the tag up, so `go install61- github.com/FelineStateMachine/012/cmd/012@v1.2.3` works from then on.61+ src.rest/cat/012/cmd/012@v1.2.3` works from then on.6262 6. **Binaries**: `make dist VERSION=v1.2.3` on the tagged commit.6363 7. **Publish** the site with the release6464 ([Publishing](#publishing)):@@ -11,11 +11,11 @@ import (
1111 1212 sdk "github.com/modelcontextprotocol/go-sdk/mcp"1313 14- "github.com/FelineStateMachine/012/internal/diff"15- "github.com/FelineStateMachine/012/internal/headless"16- "github.com/FelineStateMachine/012/internal/mcp"17- "github.com/FelineStateMachine/012/internal/room"18- "github.com/FelineStateMachine/012/internal/sheet"14+ "src.rest/cat/012/internal/diff"15+ "src.rest/cat/012/internal/headless"16+ "src.rest/cat/012/internal/mcp"17+ "src.rest/cat/012/internal/room"18+ "src.rest/cat/012/internal/sheet"1919 )2020 2121 // Agent is an attached agent's side of the room: its seat, and the@@ -6,8 +6,8 @@ import (
66 "slices"77 "time"88 9- "github.com/FelineStateMachine/012/internal/room"10- "github.com/FelineStateMachine/012/internal/sheet"9+ "src.rest/cat/012/internal/room"10+ "src.rest/cat/012/internal/sheet"1111 )1212 1313 // BoardKey is the room value (room.Seat.Value) holding its Board.@@ -9,11 +9,11 @@ import (
99 1010 sdk "github.com/modelcontextprotocol/go-sdk/mcp"1111 12- "github.com/FelineStateMachine/012/internal/headless"13- "github.com/FelineStateMachine/012/internal/mcp"14- "github.com/FelineStateMachine/012/internal/notebook"15- "github.com/FelineStateMachine/012/internal/room"16- "github.com/FelineStateMachine/012/internal/sheet"12+ "src.rest/cat/012/internal/headless"13+ "src.rest/cat/012/internal/mcp"14+ "src.rest/cat/012/internal/notebook"15+ "src.rest/cat/012/internal/room"16+ "src.rest/cat/012/internal/sheet"1717 )1818 1919 // person is a participant standing for a session.@@ -17,9 +17,9 @@ import (
1717 1818 sdk "github.com/modelcontextprotocol/go-sdk/mcp"1919 20- "github.com/FelineStateMachine/012/internal/mcp"21- "github.com/FelineStateMachine/012/internal/room"22- "github.com/FelineStateMachine/012/internal/sheet"20+ "src.rest/cat/012/internal/mcp"21+ "src.rest/cat/012/internal/room"22+ "src.rest/cat/012/internal/sheet"2323 )2424 2525 // An attach starts with one line each way before the MCP messages: the@@ -14,8 +14,8 @@ import (
1414 1515 sdk "github.com/modelcontextprotocol/go-sdk/mcp"1616 17- "github.com/FelineStateMachine/012/internal/room"18- "github.com/FelineStateMachine/012/internal/sheet"17+ "src.rest/cat/012/internal/room"18+ "src.rest/cat/012/internal/sheet"1919 )2020 2121 // socketDir is a short folder for sockets: their paths are limited to@@ -7,11 +7,11 @@ import (
77 "strconv"88 "strings"99 10- "github.com/FelineStateMachine/012/internal/fileio"11- "github.com/FelineStateMachine/012/internal/formula"12- "github.com/FelineStateMachine/012/internal/functions"13- "github.com/FelineStateMachine/012/internal/nuon"14- "github.com/FelineStateMachine/012/internal/sheet"10+ "src.rest/cat/012/internal/fileio"11+ "src.rest/cat/012/internal/formula"12+ "src.rest/cat/012/internal/functions"13+ "src.rest/cat/012/internal/nuon"14+ "src.rest/cat/012/internal/sheet"1515 )1616 1717 // cellParts are the parts of a cell that change separately: what was@@ -17,8 +17,8 @@ import (
1717 "bytes"1818 "fmt"1919 20- "github.com/FelineStateMachine/012/internal/nuon"21- "github.com/FelineStateMachine/012/internal/sheet"20+ "src.rest/cat/012/internal/nuon"21+ "src.rest/cat/012/internal/sheet"2222 )2323 2424 // Book is a workbook read for comparing: its file's fields and the@@ -9,8 +9,8 @@ import (
99 "slices"1010 "strings"1111 12- "github.com/FelineStateMachine/012/internal/nuon"13- "github.com/FelineStateMachine/012/internal/sheet"12+ "src.rest/cat/012/internal/nuon"13+ "src.rest/cat/012/internal/sheet"1414 )1515 1616 // SGR codes of the text output's colors, from the 16 ANSI colors so the@@ -7,9 +7,9 @@ import (
77 "strconv"88 "strings"99 10- "github.com/FelineStateMachine/012/internal/locale"11- "github.com/FelineStateMachine/012/internal/sheet"12- "github.com/FelineStateMachine/012/internal/telemetry"10+ "src.rest/cat/012/internal/locale"11+ "src.rest/cat/012/internal/sheet"12+ "src.rest/cat/012/internal/telemetry"1313 )1414 1515 // builder fills a new workbook for an importer, one sheet at a time (s@@ -14,8 +14,8 @@ import (
1414 "golang.org/x/text/encoding/charmap"1515 "golang.org/x/text/encoding/unicode"1616 17- "github.com/FelineStateMachine/012/internal/locale"18- "github.com/FelineStateMachine/012/internal/sheet"17+ "src.rest/cat/012/internal/locale"18+ "src.rest/cat/012/internal/sheet"1919 )2020 2121 // sniffSize is how much of a file the dialect sniffer looks at.@@ -4,8 +4,8 @@ import (
44 "bytes"55 "encoding/csv"66 7- "github.com/FelineStateMachine/012/internal/locale"8- "github.com/FelineStateMachine/012/internal/value"7+ "src.rest/cat/012/internal/locale"8+ "src.rest/cat/012/internal/value"99 )1010 1111 // Delimited files are read and written in the importing workbook's@@ -8,9 +8,9 @@ import (
88 "strings"99 "testing"1010 11- "github.com/FelineStateMachine/012/internal/locale"12- "github.com/FelineStateMachine/012/internal/numfmt"13- "github.com/FelineStateMachine/012/internal/sheet"11+ "src.rest/cat/012/internal/locale"12+ "src.rest/cat/012/internal/numfmt"13+ "src.rest/cat/012/internal/sheet"1414 )1515 1616 func mustLocale(t *testing.T, tag string) *locale.Locale {@@ -18,9 +18,9 @@ import (
1818 "strings"1919 "sync/atomic"2020 21- "github.com/FelineStateMachine/012/internal/locale"22- "github.com/FelineStateMachine/012/internal/sheet"23- "github.com/FelineStateMachine/012/internal/telemetry"21+ "src.rest/cat/012/internal/locale"22+ "src.rest/cat/012/internal/sheet"23+ "src.rest/cat/012/internal/telemetry"2424 )2525 2626 // Progress reports how far an import has got. The importer updates it@@ -7,8 +7,8 @@ import (
77 "strconv"88 "strings"99 10- "github.com/FelineStateMachine/012/internal/chart"11- "github.com/FelineStateMachine/012/internal/sheet"10+ "src.rest/cat/012/internal/chart"11+ "src.rest/cat/012/internal/sheet"1212 )1313 1414 // maxHTMLCells bounds the cells a page draws, blank ones included: a@@ -8,8 +8,8 @@ import (
88 "strings"99 "sync"1010 11- "github.com/FelineStateMachine/012/internal/chart"12- "github.com/FelineStateMachine/012/internal/sheet"11+ "src.rest/cat/012/internal/chart"12+ "src.rest/cat/012/internal/sheet"1313 )1414 1515 // HTML pages are drawn in 012's look: the 16 ANSI colors of the@@ -3,8 +3,8 @@ package fileio
33 import (44 "strings"55 6- "github.com/FelineStateMachine/012/internal/notebook"7- "github.com/FelineStateMachine/012/internal/sheet"6+ "src.rest/cat/012/internal/notebook"7+ "src.rest/cat/012/internal/sheet"88 )99 1010 // NUON has no currency or percentage, so a cell showing $3.50 reaches@@ -5,8 +5,8 @@ import (
55 "strings"66 "sync"77 8- "github.com/FelineStateMachine/012/internal/locale"9- "github.com/FelineStateMachine/012/internal/sheet"8+ "src.rest/cat/012/internal/locale"9+ "src.rest/cat/012/internal/sheet"1010 )1111 1212 // Number formats in files are Excel format codes. 012's formats map to@@ -8,10 +8,10 @@ import (
88 "os"99 "time"1010 11- "github.com/FelineStateMachine/012/internal/numfmt"12- "github.com/FelineStateMachine/012/internal/nuon"13- "github.com/FelineStateMachine/012/internal/sheet"14- "github.com/FelineStateMachine/012/internal/value"11+ "src.rest/cat/012/internal/numfmt"12+ "src.rest/cat/012/internal/nuon"13+ "src.rest/cat/012/internal/sheet"14+ "src.rest/cat/012/internal/value"1515 )1616 1717 // NUON and JSON tables become cells with their types (see@@ -7,8 +7,8 @@ import (
77 "io"88 "strings"99 10- "github.com/FelineStateMachine/012/internal/nuon"11- "github.com/FelineStateMachine/012/internal/sheet"10+ "src.rest/cat/012/internal/nuon"11+ "src.rest/cat/012/internal/sheet"1212 )1313 1414 // NUONRows reads NUON, a notebook cell's output, as a region's rows: a@@ -8,8 +8,8 @@ import (
88 "strings"99 "time"1010 11- "github.com/FelineStateMachine/012/internal/nuon"12- "github.com/FelineStateMachine/012/internal/sheet"11+ "src.rest/cat/012/internal/nuon"12+ "src.rest/cat/012/internal/sheet"1313 )1414 1515 // A table written as NUON or JSON takes its column names from the first@@ -4,8 +4,8 @@ import (
44 "iter"55 "strconv"66 7- "github.com/FelineStateMachine/012/internal/locale"8- "github.com/FelineStateMachine/012/internal/sheet"7+ "src.rest/cat/012/internal/locale"8+ "src.rest/cat/012/internal/sheet"99 )1010 1111 // Snapshot is a copy of the part of a sheet being exported, taken on the@@ -13,8 +13,8 @@ import (
1313 "math/rand/v2"1414 "testing"1515 16- "github.com/FelineStateMachine/012/internal/sheet"17- "github.com/FelineStateMachine/012/internal/stress"16+ "src.rest/cat/012/internal/sheet"17+ "src.rest/cat/012/internal/stress"1818 )1919 2020 // bigRows is the rows of the generated sources (stress.SalesParquet).@@ -17,8 +17,8 @@ import (
1717 "testing"1818 "time"1919 20- "github.com/FelineStateMachine/012/internal/sheet"21- "github.com/FelineStateMachine/012/internal/stress"20+ "src.rest/cat/012/internal/sheet"21+ "src.rest/cat/012/internal/stress"2222 )2323 2424 // stressDir is where scripts/stress-data.sh puts the datasets.@@ -9,9 +9,9 @@ import (
99 "strings"1010 "sync"1111 12- "github.com/FelineStateMachine/012/internal/locale"13- "github.com/FelineStateMachine/012/internal/nuon"14- "github.com/FelineStateMachine/012/internal/sheet"12+ "src.rest/cat/012/internal/locale"13+ "src.rest/cat/012/internal/nuon"14+ "src.rest/cat/012/internal/sheet"1515 )1616 1717 // Tails: a text table read as it arrives in pieces, as a file followed@@ -8,8 +8,8 @@ import (
88 "testing"99 "time"1010 11- "github.com/FelineStateMachine/012/internal/locale"12- "github.com/FelineStateMachine/012/internal/sheet"11+ "src.rest/cat/012/internal/locale"12+ "src.rest/cat/012/internal/sheet"1313 )1414 1515 // liveText writes rows as a test reads them: cells' values by commas, rows@@ -9,8 +9,8 @@ import (
99 "strconv"1010 "strings"1111 12- "github.com/FelineStateMachine/012/internal/formula"13- "github.com/FelineStateMachine/012/internal/sheet"12+ "src.rest/cat/012/internal/formula"13+ "src.rest/cat/012/internal/sheet"1414 )1515 1616 // XLSX files are read by xlsximport.go (on xlsxpkg.go, xlsxbook.go,@@ -10,8 +10,8 @@ import (
1010 1111 "github.com/xuri/excelize/v2"1212 13- "github.com/FelineStateMachine/012/internal/sheet"14- "github.com/FelineStateMachine/012/internal/stress"13+ "src.rest/cat/012/internal/sheet"14+ "src.rest/cat/012/internal/stress"1515 )1616 1717 // TestXLSXDifferential imports a corpus of workbooks with excelize (the@@ -1,8 +1,8 @@
11 package fileio22 33 import (4- "github.com/FelineStateMachine/012/internal/formula"5- "github.com/FelineStateMachine/012/internal/sheet"4+ "src.rest/cat/012/internal/formula"5+ "src.rest/cat/012/internal/sheet"66 )77 88 // Array formulas in XLSX. Excel 365 keeps a formula that spills (a@@ -5,8 +5,8 @@ import (
55 "path/filepath"66 "testing"77 8- "github.com/FelineStateMachine/012/internal/locale"9- "github.com/FelineStateMachine/012/internal/sheet"8+ "src.rest/cat/012/internal/locale"9+ "src.rest/cat/012/internal/sheet"1010 )1111 1212 // TestXLSXLocaleFormats checks a workbook in de-DE is downloaded with@@ -6,9 +6,9 @@ import (
66 "strconv"77 "strings"88 9- "github.com/FelineStateMachine/012/internal/formula"10- "github.com/FelineStateMachine/012/internal/numfmt"11- "github.com/FelineStateMachine/012/internal/sheet"9+ "src.rest/cat/012/internal/formula"10+ "src.rest/cat/012/internal/numfmt"11+ "src.rest/cat/012/internal/sheet"1212 )1313 1414 // A sheet's rules go out as Excel's conditional formatting (single-color@@ -9,8 +9,8 @@ import (
99 "strconv"1010 "strings"1111 12- "github.com/FelineStateMachine/012/internal/numfmt"13- "github.com/FelineStateMachine/012/internal/sheet"12+ "src.rest/cat/012/internal/numfmt"13+ "src.rest/cat/012/internal/sheet"1414 )1515 1616 // ruleSkips counts the rules an import left out, by why.@@ -7,8 +7,8 @@ import (
77 "strconv"88 "strings"99 10- "github.com/FelineStateMachine/012/internal/locale"11- "github.com/FelineStateMachine/012/internal/sheet"10+ "src.rest/cat/012/internal/locale"11+ "src.rest/cat/012/internal/sheet"1212 )1313 1414 // xlsxStyles is what 012 reads of the styles part: custom number@@ -9,9 +9,9 @@ import (
99 "strings"1010 "unicode/utf8"1111 12- "github.com/FelineStateMachine/012/internal/formula"13- "github.com/FelineStateMachine/012/internal/locale"14- "github.com/FelineStateMachine/012/internal/sheet"12+ "src.rest/cat/012/internal/formula"13+ "src.rest/cat/012/internal/locale"14+ "src.rest/cat/012/internal/sheet"1515 )1616 1717 // excelMaxText is the most characters an Excel cell holds; longer text@@ -5,8 +5,8 @@ import (
55 "strings"66 "unicode/utf8"77 8- "github.com/FelineStateMachine/012/internal/formula"9- "github.com/FelineStateMachine/012/internal/value"8+ "src.rest/cat/012/internal/formula"9+ "src.rest/cat/012/internal/value"1010 )1111 1212 // Argument helpers shared by the function library. Errors come back as a@@ -1,8 +1,8 @@
11 package functions22 33 import (4- "github.com/FelineStateMachine/012/internal/formula"5- "github.com/FelineStateMachine/012/internal/value"4+ "src.rest/cat/012/internal/formula"5+ "src.rest/cat/012/internal/value"66 )77 88 // Arrays, as Sheets computes them. A range read whole, an array literal@@ -5,9 +5,9 @@ import (
55 66 "github.com/cockroachdb/apd/v3"77 8- "github.com/FelineStateMachine/012/internal/formula"9- "github.com/FelineStateMachine/012/internal/numfmt"10- "github.com/FelineStateMachine/012/internal/value"8+ "src.rest/cat/012/internal/formula"9+ "src.rest/cat/012/internal/numfmt"10+ "src.rest/cat/012/internal/value"1111 )1212 1313 // Decimal arithmetic is an opt-in, per-workbook calculation setting for@@ -1,8 +1,8 @@
11 package functions22 33 import (4- "github.com/FelineStateMachine/012/internal/formula"5- "github.com/FelineStateMachine/012/internal/value"4+ "src.rest/cat/012/internal/formula"5+ "src.rest/cat/012/internal/value"66 )77 88 // Eval computes a formula where one value is wanted, reading the cells@@ -4,9 +4,9 @@ import (
44 "math"55 "slices"66 7- "github.com/FelineStateMachine/012/internal/formula"8- "github.com/FelineStateMachine/012/internal/numfmt"9- "github.com/FelineStateMachine/012/internal/value"7+ "src.rest/cat/012/internal/formula"8+ "src.rest/cat/012/internal/numfmt"9+ "src.rest/cat/012/internal/value"1010 )1111 1212 // FuncDef describes a spreadsheet function. The table drives parsing@@ -1,8 +1,8 @@
11 package functions22 33 import (4- "github.com/FelineStateMachine/012/internal/formula"5- "github.com/FelineStateMachine/012/internal/value"4+ "src.rest/cat/012/internal/formula"5+ "src.rest/cat/012/internal/value"66 )77 88 // IsVolatile reports whether n calls a function whose result changes@@ -3,8 +3,8 @@ package functions
33 import (44 "strings"55 6- "github.com/FelineStateMachine/012/internal/formula"7- "github.com/FelineStateMachine/012/internal/value"6+ "src.rest/cat/012/internal/formula"7+ "src.rest/cat/012/internal/value"88 )99 1010 // JEV functions ask TypeSafe's hosted model (jev) typed questions about a@@ -1,8 +1,8 @@
11 package functions22 33 import (4- "github.com/FelineStateMachine/012/internal/formula"5- "github.com/FelineStateMachine/012/internal/value"4+ "src.rest/cat/012/internal/formula"5+ "src.rest/cat/012/internal/value"66 )77 88 // LET names values within a formula, and LAMBDA makes a function of@@ -1,8 +1,8 @@
11 package functions22 33 import (4- "github.com/FelineStateMachine/012/internal/formula"5- "github.com/FelineStateMachine/012/internal/value"4+ "src.rest/cat/012/internal/formula"5+ "src.rest/cat/012/internal/value"66 )77 88 // In an array context (ARRAYFORMULA, or an argument that takes ranges) a@@ -3,7 +3,7 @@ package functions
33 import (44 "strings"55 6- "github.com/FelineStateMachine/012/internal/value"6+ "src.rest/cat/012/internal/value"77 )88 99 func init() {@@ -3,7 +3,7 @@ package functions
33 import (44 "strings"55 6- "github.com/FelineStateMachine/012/internal/value"6+ "src.rest/cat/012/internal/value"77 )88 99 func init() {@@ -5,8 +5,8 @@ import (
55 "math"66 "slices"77 8- "github.com/FelineStateMachine/012/internal/formula"9- "github.com/FelineStateMachine/012/internal/value"8+ "src.rest/cat/012/internal/formula"9+ "src.rest/cat/012/internal/value"1010 )1111 1212 // Order statistics: MEDIAN, MODE, PERCENTILE, QUARTILE, LARGE and SMALL@@ -3,8 +3,8 @@ package functions
33 import (44 "strings"55 6- "github.com/FelineStateMachine/012/internal/formula"7- "github.com/FelineStateMachine/012/internal/value"6+ "src.rest/cat/012/internal/formula"7+ "src.rest/cat/012/internal/value"88 )99 1010 // Names LET and LAMBDA bind (Local nodes), and calling a LAMBDA: the@@ -3,7 +3,7 @@ package functions
33 import (44 "math"55 6- "github.com/FelineStateMachine/012/internal/value"6+ "src.rest/cat/012/internal/value"77 )88 99 func init() {@@ -4,8 +4,8 @@ import (
44 "fmt"55 "strings"66 7- "github.com/FelineStateMachine/012/internal/formula"8- "github.com/FelineStateMachine/012/internal/value"7+ "src.rest/cat/012/internal/formula"8+ "src.rest/cat/012/internal/value"99 )1010 1111 // Calls over paged sources. A linked source (the engine's paged sheets:@@ -8,8 +8,8 @@ import (
88 "golang.org/x/text/cases"99 "golang.org/x/text/language"1010 11- "github.com/FelineStateMachine/012/internal/numfmt"12- "github.com/FelineStateMachine/012/internal/value"11+ "src.rest/cat/012/internal/numfmt"12+ "src.rest/cat/012/internal/value"1313 )1414 1515 // maxText is the longest text a function may build, as in Sheets.@@ -11,8 +11,8 @@
1111 package functions1212 1313 import (14- "github.com/FelineStateMachine/012/internal/formula"15- "github.com/FelineStateMachine/012/internal/value"14+ "src.rest/cat/012/internal/formula"15+ "src.rest/cat/012/internal/value"1616 )1717 1818 // The library works in the formula and value packages' terms; these@@ -1,8 +1,8 @@
11 package headless22 33 import (4- "github.com/FelineStateMachine/012/internal/notebook"5- "github.com/FelineStateMachine/012/internal/sheet"4+ "src.rest/cat/012/internal/notebook"5+ "src.rest/cat/012/internal/sheet"66 )77 88 // Description is what a workbook holds, for 012 describe and the MCP@@ -6,9 +6,9 @@ import (
66 "strings"77 "unicode/utf8"88 9- "github.com/FelineStateMachine/012/internal/fileio"10- "github.com/FelineStateMachine/012/internal/nuon"11- "github.com/FelineStateMachine/012/internal/sheet"9+ "src.rest/cat/012/internal/fileio"10+ "src.rest/cat/012/internal/nuon"11+ "src.rest/cat/012/internal/sheet"1212 )1313 1414 // Formats are what Get writes: text as the sheet shows it, or a table@@ -10,9 +10,9 @@ import (
1010 "testing"1111 "time"1212 13- "github.com/FelineStateMachine/012/internal/notebook"14- "github.com/FelineStateMachine/012/internal/nushell"15- "github.com/FelineStateMachine/012/internal/sheet"13+ "src.rest/cat/012/internal/notebook"14+ "src.rest/cat/012/internal/nushell"15+ "src.rest/cat/012/internal/sheet"1616 )1717 1818 func addr(s string) sheet.Addr {@@ -5,8 +5,8 @@ import (
55 "sync"66 "time"77 8- "github.com/FelineStateMachine/012/internal/jev"9- "github.com/FelineStateMachine/012/internal/sheet"8+ "src.rest/cat/012/internal/jev"9+ "src.rest/cat/012/internal/sheet"1010 )1111 1212 // jevParallel is how many questions are asked at once, as on the@@ -7,10 +7,10 @@ import (
77 "fmt"88 "time"99 10- "github.com/FelineStateMachine/012/internal/fileio"11- "github.com/FelineStateMachine/012/internal/notebook"12- "github.com/FelineStateMachine/012/internal/nushell"13- "github.com/FelineStateMachine/012/internal/sheet"10+ "src.rest/cat/012/internal/fileio"11+ "src.rest/cat/012/internal/notebook"12+ "src.rest/cat/012/internal/nushell"13+ "src.rest/cat/012/internal/sheet"1414 )1515 1616 // NotebookOptions say how RunNotebooks runs cells.@@ -6,8 +6,8 @@ import (
66 "testing"77 "time"88 9- "github.com/FelineStateMachine/012/internal/notebook"10- "github.com/FelineStateMachine/012/internal/sheet"9+ "src.rest/cat/012/internal/notebook"10+ "src.rest/cat/012/internal/sheet"1111 )1212 1313 // --notebooks runs a cell of several statements as the screen does: its@@ -5,8 +5,8 @@ import (
55 "encoding/json"66 "os"77 8- "github.com/FelineStateMachine/012/internal/diff"9- "github.com/FelineStateMachine/012/internal/nuon"8+ "src.rest/cat/012/internal/diff"9+ "src.rest/cat/012/internal/nuon"1010 )1111 1212 // The results commands write with --format json or nuon, and the MCP@@ -4,8 +4,8 @@ import (
44 "context"55 "fmt"66 7- "github.com/FelineStateMachine/012/internal/notebook"8- "github.com/FelineStateMachine/012/internal/sheet"7+ "src.rest/cat/012/internal/notebook"8+ "src.rest/cat/012/internal/sheet"99 )1010 1111 // CellRun is what running a notebook cell gave: its state, its output@@ -5,8 +5,8 @@ import (
55 "path/filepath"66 "strings"77 8- "github.com/FelineStateMachine/012/internal/paged"9- "github.com/FelineStateMachine/012/internal/sheet"8+ "src.rest/cat/012/internal/paged"9+ "src.rest/cat/012/internal/sheet"1010 )1111 1212 // ReadSources answers what the workbook's formulas and pivot tables ask@@ -4,8 +4,8 @@ import (
44 "encoding/json"55 "fmt"66 7- "github.com/FelineStateMachine/012/internal/nuon"8- "github.com/FelineStateMachine/012/internal/sheet"7+ "src.rest/cat/012/internal/nuon"8+ "src.rest/cat/012/internal/sheet"99 )1010 1111 // TableSpec is a table to write: rows of records, each field a Value,@@ -8,10 +8,10 @@ import (
88 "sync"99 "time"1010 11- "github.com/FelineStateMachine/012/internal/fileio"12- "github.com/FelineStateMachine/012/internal/numfmt"13- "github.com/FelineStateMachine/012/internal/nuon"14- "github.com/FelineStateMachine/012/internal/sheet"11+ "src.rest/cat/012/internal/fileio"12+ "src.rest/cat/012/internal/numfmt"13+ "src.rest/cat/012/internal/nuon"14+ "src.rest/cat/012/internal/sheet"1515 )1616 1717 // Value is a cell's value as agents write and read it, in JSON (see@@ -6,9 +6,9 @@ import (
66 "strconv"77 "time"88 9- "github.com/FelineStateMachine/012/internal/fileio"10- "github.com/FelineStateMachine/012/internal/nuon"11- "github.com/FelineStateMachine/012/internal/sheet"9+ "src.rest/cat/012/internal/fileio"10+ "src.rest/cat/012/internal/nuon"11+ "src.rest/cat/012/internal/sheet"1212 )1313 1414 // Reading a cell as a Value: its type from its format, so what reads@@ -15,8 +15,8 @@ import (
1515 1616 typesafe "github.com/FelineStateMachine/typesafe-go"1717 18- "github.com/FelineStateMachine/012/internal/config"19- "github.com/FelineStateMachine/012/internal/keyring"18+ "src.rest/cat/012/internal/config"19+ "src.rest/cat/012/internal/keyring"2020 )2121 2222 // The API key is never in the config file or on a command line. It comes@@ -11,8 +11,8 @@ import (
1111 "testing"1212 "time"1313 14- "github.com/FelineStateMachine/012/internal/keyring"15- "github.com/FelineStateMachine/012/internal/sheet"14+ "src.rest/cat/012/internal/keyring"15+ "src.rest/cat/012/internal/sheet"1616 )1717 1818 func env(vals map[string]string) func(string) string {@@ -11,8 +11,8 @@ import (
1111 1212 typesafe "github.com/FelineStateMachine/typesafe-go"1313 14- "github.com/FelineStateMachine/012/internal/config"15- "github.com/FelineStateMachine/012/internal/sheet"14+ "src.rest/cat/012/internal/config"15+ "src.rest/cat/012/internal/sheet"1616 )1717 1818 // Config is how to reach the service. The key comes from ResolveKey;@@ -8,8 +8,8 @@ import (
88 "testing"99 "time"1010 11- "github.com/FelineStateMachine/012/internal/fileio"12- "github.com/FelineStateMachine/012/internal/sheet"11+ "src.rest/cat/012/internal/fileio"12+ "src.rest/cat/012/internal/sheet"1313 )1414 1515 // rowsText writes an update's rows as a test reads them.@@ -8,8 +8,8 @@ import (
88 "sync"99 "time"1010 11- "github.com/FelineStateMachine/012/internal/fileio"12- "github.com/FelineStateMachine/012/internal/sheet"11+ "src.rest/cat/012/internal/fileio"12+ "src.rest/cat/012/internal/sheet"1313 )1414 1515 // Stream follows a program that prints a table as it makes it: NUON@@ -7,10 +7,10 @@ import (
77 "strings"88 "sync"99 10- "github.com/FelineStateMachine/012/internal/diff"11- "github.com/FelineStateMachine/012/internal/fileio"12- "github.com/FelineStateMachine/012/internal/headless"13- "github.com/FelineStateMachine/012/internal/sheet"10+ "src.rest/cat/012/internal/diff"11+ "src.rest/cat/012/internal/fileio"12+ "src.rest/cat/012/internal/headless"13+ "src.rest/cat/012/internal/sheet"1414 )1515 1616 // Backend is where the tools' workbook lives. The tools only read it,@@ -12,9 +12,9 @@ import (
1212 1313 sdk "github.com/modelcontextprotocol/go-sdk/mcp"1414 15- "github.com/FelineStateMachine/012/internal/confine"16- "github.com/FelineStateMachine/012/internal/fileio"17- "github.com/FelineStateMachine/012/internal/sheet"15+ "src.rest/cat/012/internal/confine"16+ "src.rest/cat/012/internal/fileio"17+ "src.rest/cat/012/internal/sheet"1818 )1919 2020 // Workbooks are named by path in every tool. A path is confined to the@@ -11,8 +11,8 @@ import (
1111 1212 sdk "github.com/modelcontextprotocol/go-sdk/mcp"1313 14- "github.com/FelineStateMachine/012/internal/confine"15- "github.com/FelineStateMachine/012/internal/headless"14+ "src.rest/cat/012/internal/confine"15+ "src.rest/cat/012/internal/headless"1616 )1717 1818 // folder makes a folder of workbooks: book.012 and sub/data.csv, a@@ -8,9 +8,9 @@ import (
88 99 sdk "github.com/modelcontextprotocol/go-sdk/mcp"1010 11- "github.com/FelineStateMachine/012/internal/confine"12- "github.com/FelineStateMachine/012/internal/headless"13- "github.com/FelineStateMachine/012/internal/sheet"11+ "src.rest/cat/012/internal/confine"12+ "src.rest/cat/012/internal/headless"13+ "src.rest/cat/012/internal/sheet"1414 )1515 1616 // create_workbook makes a new .012 file in a folder open to the server:@@ -6,8 +6,8 @@ import (
66 "path/filepath"77 "strings"88 9- "github.com/FelineStateMachine/012/internal/confine"10- "github.com/FelineStateMachine/012/internal/fileio"9+ "src.rest/cat/012/internal/confine"10+ "src.rest/cat/012/internal/fileio"1111 )1212 1313 // describe without a path lists the workbooks open to the server: the@@ -6,8 +6,8 @@ import (
66 77 sdk "github.com/modelcontextprotocol/go-sdk/mcp"88 9- "github.com/FelineStateMachine/012/internal/diff"10- "github.com/FelineStateMachine/012/internal/sheet"9+ "src.rest/cat/012/internal/diff"10+ "src.rest/cat/012/internal/sheet"1111 )1212 1313 // Live mode (docs/agents/live.md): the server runs inside a 012 session@@ -8,8 +8,8 @@ import (
88 99 sdk "github.com/modelcontextprotocol/go-sdk/mcp"1010 11- "github.com/FelineStateMachine/012/internal/headless"12- "github.com/FelineStateMachine/012/internal/sheet"11+ "src.rest/cat/012/internal/headless"12+ "src.rest/cat/012/internal/sheet"1313 )1414 1515 // The tools that read a workbook, or compute on a copy thrown away.@@ -9,9 +9,9 @@ import (
99 1010 sdk "github.com/modelcontextprotocol/go-sdk/mcp"1111 12- "github.com/FelineStateMachine/012/internal/headless"13- "github.com/FelineStateMachine/012/internal/notebook"14- "github.com/FelineStateMachine/012/internal/sheet"12+ "src.rest/cat/012/internal/headless"13+ "src.rest/cat/012/internal/notebook"14+ "src.rest/cat/012/internal/sheet"1515 )1616 1717 // Resources are workbooks' data by address, for hosts that let people@@ -15,9 +15,9 @@ import (
1515 "github.com/google/jsonschema-go/jsonschema"1616 sdk "github.com/modelcontextprotocol/go-sdk/mcp"1717 18- "github.com/FelineStateMachine/012/internal/confine"19- "github.com/FelineStateMachine/012/internal/headless"20- "github.com/FelineStateMachine/012/internal/sheet"18+ "src.rest/cat/012/internal/confine"19+ "src.rest/cat/012/internal/headless"20+ "src.rest/cat/012/internal/sheet"2121 )2222 2323 // Options say where the server's workbooks are and what it may do@@ -14,10 +14,10 @@ import (
1414 1515 sdk "github.com/modelcontextprotocol/go-sdk/mcp"1616 17- "github.com/FelineStateMachine/012/internal/headless"18- "github.com/FelineStateMachine/012/internal/notebook"19- "github.com/FelineStateMachine/012/internal/nushell"20- "github.com/FelineStateMachine/012/internal/sheet"17+ "src.rest/cat/012/internal/headless"18+ "src.rest/cat/012/internal/notebook"19+ "src.rest/cat/012/internal/nushell"20+ "src.rest/cat/012/internal/sheet"2121 )2222 2323 // bookFile writes a workbook: a sheet of sales with a header, and a@@ -8,10 +8,10 @@ import (
88 "testing"99 "time"1010 11- "github.com/FelineStateMachine/012/internal/headless"12- "github.com/FelineStateMachine/012/internal/notebook"13- "github.com/FelineStateMachine/012/internal/nushell"14- "github.com/FelineStateMachine/012/internal/sheet"11+ "src.rest/cat/012/internal/headless"12+ "src.rest/cat/012/internal/notebook"13+ "src.rest/cat/012/internal/nushell"14+ "src.rest/cat/012/internal/sheet"1515 )1616 1717 // groceries are rows of every type, as a model writes them, in records@@ -5,9 +5,9 @@ import (
55 66 sdk "github.com/modelcontextprotocol/go-sdk/mcp"77 8- "github.com/FelineStateMachine/012/internal/fileio"9- "github.com/FelineStateMachine/012/internal/headless"10- "github.com/FelineStateMachine/012/internal/sheet"8+ "src.rest/cat/012/internal/fileio"9+ "src.rest/cat/012/internal/headless"10+ "src.rest/cat/012/internal/sheet"1111 )1212 1313 // Views are the range read_range read and the chart create_chart made,@@ -5,8 +5,8 @@ import (
55 66 sdk "github.com/modelcontextprotocol/go-sdk/mcp"77 8- "github.com/FelineStateMachine/012/internal/headless"9- "github.com/FelineStateMachine/012/internal/sheet"8+ "src.rest/cat/012/internal/headless"9+ "src.rest/cat/012/internal/sheet"1010 )1111 1212 // The tools that change a workbook. Each is one call to the backend's@@ -5,8 +5,8 @@ import (
55 "context"66 "slices"77 8- "github.com/FelineStateMachine/012/internal/functions"9- "github.com/FelineStateMachine/012/internal/sheet"8+ "src.rest/cat/012/internal/functions"9+ "src.rest/cat/012/internal/sheet"1010 )1111 1212 // book is the functions.Book a job computes a call through: the sources@@ -4,9 +4,9 @@ import (
44 "cmp"55 "fmt"66 7- "github.com/FelineStateMachine/012/internal/fileio"8- "github.com/FelineStateMachine/012/internal/functions"9- "github.com/FelineStateMachine/012/internal/sheet"7+ "src.rest/cat/012/internal/fileio"8+ "src.rest/cat/012/internal/functions"9+ "src.rest/cat/012/internal/sheet"1010 )1111 1212 // rangeValues is a range of a source read whole, as an array: what an@@ -18,8 +18,8 @@ import (
1818 "strings"1919 "time"2020 21- "github.com/FelineStateMachine/012/internal/fileio"22- "github.com/FelineStateMachine/012/internal/sheet"21+ "src.rest/cat/012/internal/fileio"22+ "src.rest/cat/012/internal/sheet"2323 )2424 2525 // Linked is a source as the workbook links it, its file resolved.@@ -10,8 +10,8 @@ import (
1010 1111 "github.com/parquet-go/parquet-go"1212 13- "github.com/FelineStateMachine/012/internal/fileio"14- "github.com/FelineStateMachine/012/internal/sheet"13+ "src.rest/cat/012/internal/fileio"14+ "src.rest/cat/012/internal/sheet"1515 )1616 1717 // sale is a row of the Parquet files the tests link.@@ -5,9 +5,9 @@ import (
55 "fmt"66 "os"77 8- "github.com/FelineStateMachine/012/internal/fileio"9- "github.com/FelineStateMachine/012/internal/functions"10- "github.com/FelineStateMachine/012/internal/sheet"8+ "src.rest/cat/012/internal/fileio"9+ "src.rest/cat/012/internal/functions"10+ "src.rest/cat/012/internal/sheet"1111 )1212 1313 type jobKind uint8@@ -3,8 +3,8 @@ package paged
33 import (44 "context"55 6- "github.com/FelineStateMachine/012/internal/fileio"7- "github.com/FelineStateMachine/012/internal/sheet"6+ "src.rest/cat/012/internal/fileio"7+ "src.rest/cat/012/internal/sheet"88 )99 1010 // Links are the workbook's linked sources as the host reads them: each@@ -4,8 +4,8 @@ import (
44 "context"55 "slices"66 7- "github.com/FelineStateMachine/012/internal/fileio"8- "github.com/FelineStateMachine/012/internal/sheet"7+ "src.rest/cat/012/internal/fileio"8+ "src.rest/cat/012/internal/sheet"99 )1010 1111 // Pages are the rows a source's tab shows, in its view's order (a sort@@ -5,8 +5,8 @@ import (
55 "path/filepath"66 "testing"77 8- "github.com/FelineStateMachine/012/internal/fileio"9- "github.com/FelineStateMachine/012/internal/sheet"8+ "src.rest/cat/012/internal/fileio"9+ "src.rest/cat/012/internal/sheet"1010 )1111 1212 // runPages runs the pages' jobs until none is left, reporting how many@@ -11,8 +11,8 @@ import (
1111 "context"1212 "testing"1313 14- "github.com/FelineStateMachine/012/internal/sheet"15- "github.com/FelineStateMachine/012/internal/stress"14+ "src.rest/cat/012/internal/sheet"15+ "src.rest/cat/012/internal/stress"1616 )1717 1818 // bigRows is the rows of the generated sources.@@ -11,9 +11,9 @@ import (
1111 1212 "charm.land/ssh"1313 14- "github.com/FelineStateMachine/012/internal/confine"15- "github.com/FelineStateMachine/012/internal/sheet"16- "github.com/FelineStateMachine/012/internal/ui"14+ "src.rest/cat/012/internal/confine"15+ "src.rest/cat/012/internal/sheet"16+ "src.rest/cat/012/internal/ui"1717 )1818 1919 // Opening a file named on the ssh command line, and keeping a session's@@ -14,9 +14,9 @@ import (
1414 tea "charm.land/bubbletea/v2"1515 gossh "golang.org/x/crypto/ssh"1616 17- "github.com/FelineStateMachine/012/internal/confine"18- "github.com/FelineStateMachine/012/internal/sheet"19- "github.com/FelineStateMachine/012/internal/ui"17+ "src.rest/cat/012/internal/confine"18+ "src.rest/cat/012/internal/sheet"19+ "src.rest/cat/012/internal/ui"2020 )2121 2222 // openExec starts a session with a terminal and an exec request for@@ -16,12 +16,12 @@ import (
1616 bm "charm.land/wish/v2/bubbletea"1717 gossh "golang.org/x/crypto/ssh"1818 19- "github.com/FelineStateMachine/012/internal/confine"20- "github.com/FelineStateMachine/012/internal/jev"21- "github.com/FelineStateMachine/012/internal/room"22- "github.com/FelineStateMachine/012/internal/sheet"23- "github.com/FelineStateMachine/012/internal/telemetry"24- "github.com/FelineStateMachine/012/internal/ui"19+ "src.rest/cat/012/internal/confine"20+ "src.rest/cat/012/internal/jev"21+ "src.rest/cat/012/internal/room"22+ "src.rest/cat/012/internal/sheet"23+ "src.rest/cat/012/internal/telemetry"24+ "src.rest/cat/012/internal/ui"2525 )2626 2727 // handshakeTimeout bounds the time from connecting to logging in.@@ -3,8 +3,8 @@ package sheet
33 import (44 "strings"55 6- "github.com/FelineStateMachine/012/internal/numfmt"7- "github.com/FelineStateMachine/012/internal/value"6+ "src.rest/cat/012/internal/numfmt"7+ "src.rest/cat/012/internal/value"88 )99 1010 // Date rules ("Date is", "is before", "is after") take a date or a@@ -6,8 +6,8 @@ import (
66 "runtime"77 "testing"88 9- "github.com/FelineStateMachine/012/internal/sheet"10- "github.com/FelineStateMachine/012/internal/stress"9+ "src.rest/cat/012/internal/sheet"10+ "src.rest/cat/012/internal/stress"1111 )1212 1313 // BenchmarkMemoryDerived is the heap a derived cell holds: the cells a@@ -4,8 +4,8 @@ import (
44 "strings"55 "unicode/utf8"66 7- "github.com/FelineStateMachine/012/internal/locale"8- "github.com/FelineStateMachine/012/internal/numfmt"7+ "src.rest/cat/012/internal/locale"8+ "src.rest/cat/012/internal/numfmt"99 )1010 1111 // Display renders v under format f for a cell width columns wide, as the@@ -3,8 +3,8 @@ package sheet
33 import (44 "strings"55 6- "github.com/FelineStateMachine/012/internal/formula"7- "github.com/FelineStateMachine/012/internal/functions"6+ "src.rest/cat/012/internal/formula"7+ "src.rest/cat/012/internal/functions"88 )99 1010 // Evaluation is lazy and recursive: a formula reading a dirty cell@@ -4,8 +4,8 @@ import (
44 "slices"55 "strings"66 7- "github.com/FelineStateMachine/012/internal/formula"8- "github.com/FelineStateMachine/012/internal/functions"7+ "src.rest/cat/012/internal/formula"8+ "src.rest/cat/012/internal/functions"99 )1010 1111 // ExplainError says why the cell at a shows an error, for the context@@ -1,8 +1,8 @@
11 package sheet22 33 import (4- "github.com/FelineStateMachine/012/internal/formula"5- "github.com/FelineStateMachine/012/internal/functions"4+ "src.rest/cat/012/internal/formula"5+ "src.rest/cat/012/internal/functions"66 )77 88 // The formula language lives in internal/formula. The engine's API keeps@@ -3,8 +3,8 @@ package sheet
33 import (44 "strings"55 6- "github.com/FelineStateMachine/012/internal/formula"7- "github.com/FelineStateMachine/012/internal/functions"6+ "src.rest/cat/012/internal/formula"7+ "src.rest/cat/012/internal/functions"88 )99 1010 // Link returns the address a cell links to: its text when that is a URL@@ -4,10 +4,10 @@ import (
44 "strings"55 "sync/atomic"66 7- "github.com/FelineStateMachine/012/internal/formula"8- "github.com/FelineStateMachine/012/internal/locale"9- "github.com/FelineStateMachine/012/internal/numfmt"10- "github.com/FelineStateMachine/012/internal/value"7+ "src.rest/cat/012/internal/formula"8+ "src.rest/cat/012/internal/locale"9+ "src.rest/cat/012/internal/numfmt"10+ "src.rest/cat/012/internal/value"1111 )1212 1313 // A workbook's locale is how its entries are typed and its numbers,@@ -6,9 +6,9 @@ import (
66 "strings"77 "unicode/utf8"88 9- "github.com/FelineStateMachine/012/internal/formula"10- "github.com/FelineStateMachine/012/internal/functions"11- "github.com/FelineStateMachine/012/internal/locale"9+ "src.rest/cat/012/internal/formula"10+ "src.rest/cat/012/internal/functions"11+ "src.rest/cat/012/internal/locale"1212 )1313 1414 // Look is how a sheet's rules draw a cell: a conditional format's style@@ -6,8 +6,8 @@ import (
66 "strconv"77 "sync/atomic"88 9- "github.com/FelineStateMachine/012/internal/formula"10- "github.com/FelineStateMachine/012/internal/locale"9+ "src.rest/cat/012/internal/formula"10+ "src.rest/cat/012/internal/locale"1111 )1212 1313 // Errors returned by operations that would lose data or don't fit.@@ -5,8 +5,8 @@ package sheet_test
55 import (66 "testing"77 8- "github.com/FelineStateMachine/012/internal/sheet"9- "github.com/FelineStateMachine/012/internal/stress"8+ "src.rest/cat/012/internal/sheet"9+ "src.rest/cat/012/internal/stress"1010 )1111 1212 // BenchmarkPivot is a pivot over a full 8192-row table recomputing after@@ -1,8 +1,8 @@
11 package sheet22 33 import (4- "github.com/FelineStateMachine/012/internal/formula"5- "github.com/FelineStateMachine/012/internal/functions"4+ "src.rest/cat/012/internal/formula"5+ "src.rest/cat/012/internal/functions"66 )77 88 // Recalculation: a change marks the changed cells and everything that@@ -1,8 +1,8 @@
11 package sheet22 33 import (4- "github.com/FelineStateMachine/012/internal/formula"5- "github.com/FelineStateMachine/012/internal/functions"4+ "src.rest/cat/012/internal/formula"5+ "src.rest/cat/012/internal/functions"66 )77 88 // Where regions are (see region.go): the cells they cover and their@@ -1,8 +1,8 @@
11 package sheet22 33 import (4- "github.com/FelineStateMachine/012/internal/formula"5- "github.com/FelineStateMachine/012/internal/functions"4+ "src.rest/cat/012/internal/formula"5+ "src.rest/cat/012/internal/functions"66 )77 88 // Some functions (JEV.*) are answered by a hosted model. The engine never@@ -6,8 +6,8 @@ import (
66 "strconv"77 "strings"88 9- "github.com/FelineStateMachine/012/internal/formula"10- "github.com/FelineStateMachine/012/internal/numfmt"9+ "src.rest/cat/012/internal/formula"10+ "src.rest/cat/012/internal/numfmt"1111 )1212 1313 // Fill series: dragging the fill handle in Sheets continues what the@@ -8,8 +8,8 @@ import (
88 "strings"99 "unicode"1010 11- "github.com/FelineStateMachine/012/internal/formula"12- "github.com/FelineStateMachine/012/internal/functions"11+ "src.rest/cat/012/internal/formula"12+ "src.rest/cat/012/internal/functions"1313 )1414 1515 // DefaultWidth is the initial column width: nine characters plus padding.@@ -3,8 +3,8 @@ package sheet
33 import (44 "slices"55 6- "github.com/FelineStateMachine/012/internal/formula"7- "github.com/FelineStateMachine/012/internal/functions"6+ "src.rest/cat/012/internal/formula"7+ "src.rest/cat/012/internal/functions"88 )99 1010 // Steps is a formula evaluated one part at a time, as Excel's Evaluate@@ -5,8 +5,8 @@ import (
55 "strconv"66 "strings"77 8- "github.com/FelineStateMachine/012/internal/formula"9- "github.com/FelineStateMachine/012/internal/functions"8+ "src.rest/cat/012/internal/formula"9+ "src.rest/cat/012/internal/functions"1010 )1111 1212 // How Steps shows the formula: as written, with the parts computed so@@ -5,8 +5,8 @@ import (
55 "slices"66 "strings"77 8- "github.com/FelineStateMachine/012/internal/formula"9- "github.com/FelineStateMachine/012/internal/functions"8+ "src.rest/cat/012/internal/formula"9+ "src.rest/cat/012/internal/functions"1010 )1111 1212 // How formulas read tables (table.go): a structured reference,@@ -6,8 +6,8 @@ import (
66 "slices"77 "strings"88 9- "github.com/FelineStateMachine/012/internal/formula"10- "github.com/FelineStateMachine/012/internal/functions"9+ "src.rest/cat/012/internal/formula"10+ "src.rest/cat/012/internal/functions"1111 )1212 1313 // Data validation follows Sheets' Data > Data validation: a rule on@@ -1,8 +1,8 @@
11 package sheet22 33 import (4- "github.com/FelineStateMachine/012/internal/functions"5- "github.com/FelineStateMachine/012/internal/value"4+ "src.rest/cat/012/internal/functions"5+ "src.rest/cat/012/internal/value"66 )77 88 // Values, formats and the parsing of typed entries live in@@ -106,7 +106,7 @@ func newExporter(c OTLPConfig, version string) *exporter {
106106 timeout: timeout,107107 client: &http.Client{Timeout: timeout},108108 resource: resource{Attributes: attrs},109- scope: scope{Name: "github.com/FelineStateMachine/012/internal/telemetry", Version: version},109+ scope: scope{Name: "src.rest/cat/012/internal/telemetry", Version: version},110110 started: time.Now(),111111 ops: map[string]*durationHist{},112112 wake: make(chan struct{}, 1),@@ -7,9 +7,9 @@ import (
77 "charm.land/lipgloss/v2"88 "github.com/charmbracelet/x/ansi"99 10- "github.com/FelineStateMachine/012/internal/cowork"11- "github.com/FelineStateMachine/012/internal/sheet"12- "github.com/FelineStateMachine/012/internal/ui/theme"10+ "src.rest/cat/012/internal/cowork"11+ "src.rest/cat/012/internal/sheet"12+ "src.rest/cat/012/internal/ui/theme"1313 )1414 1515 // Drawing agents' suggestions: each cell a suggestion waiting would set@@ -8,11 +8,11 @@ import (
88 99 tea "charm.land/bubbletea/v2"1010 11- "github.com/FelineStateMachine/012/internal/cowork"12- "github.com/FelineStateMachine/012/internal/room"13- "github.com/FelineStateMachine/012/internal/sheet"14- "github.com/FelineStateMachine/012/internal/ui/picker"15- "github.com/FelineStateMachine/012/internal/ui/review"11+ "src.rest/cat/012/internal/cowork"12+ "src.rest/cat/012/internal/room"13+ "src.rest/cat/012/internal/sheet"14+ "src.rest/cat/012/internal/ui/picker"15+ "src.rest/cat/012/internal/ui/review"1616 )1717 1818 // Live mode (docs/agents/live.md): the agent works in this session as a@@ -11,10 +11,10 @@ import (
1111 tea "charm.land/bubbletea/v2"1212 sdk "github.com/modelcontextprotocol/go-sdk/mcp"1313 14- "github.com/FelineStateMachine/012/internal/cowork"15- "github.com/FelineStateMachine/012/internal/headless"16- "github.com/FelineStateMachine/012/internal/mcp"17- "github.com/FelineStateMachine/012/internal/sheet"14+ "src.rest/cat/012/internal/cowork"15+ "src.rest/cat/012/internal/headless"16+ "src.rest/cat/012/internal/mcp"17+ "src.rest/cat/012/internal/sheet"1818 )1919 2020 // liveSession is a local session listening for agents, and the agent in@@ -5,8 +5,8 @@ import (
55 66 tea "charm.land/bubbletea/v2"77 8- "github.com/FelineStateMachine/012/internal/sheet"9- "github.com/FelineStateMachine/012/internal/ui/picker"8+ "src.rest/cat/012/internal/sheet"9+ "src.rest/cat/012/internal/ui/picker"1010 )1111 1212 // Format > Alignment's vertical alignments, and the color Format >@@ -3,9 +3,9 @@ package ui
33 import (44 tea "charm.land/bubbletea/v2"55 6- "github.com/FelineStateMachine/012/internal/sheet"7- "github.com/FelineStateMachine/012/internal/ui/formula"8- "github.com/FelineStateMachine/012/internal/ui/suggest"6+ "src.rest/cat/012/internal/sheet"7+ "src.rest/cat/012/internal/ui/formula"8+ "src.rest/cat/012/internal/ui/suggest"99 )1010 1111 // Formula suggestions and signatures are package suggest; here is what@@ -1,8 +1,8 @@
11 package ui22 33 import (4- "github.com/FelineStateMachine/012/internal/sheet"5- "github.com/FelineStateMachine/012/internal/ui/lineedit"4+ "src.rest/cat/012/internal/sheet"5+ "src.rest/cat/012/internal/ui/lineedit"66 )77 88 // Pointing after a sheet's name: once a suggestion (package suggest) or@@ -1,8 +1,8 @@
11 package ui22 33 import (4- "github.com/FelineStateMachine/012/internal/sheet"5- "github.com/FelineStateMachine/012/internal/ui/rowtext"4+ "src.rest/cat/012/internal/sheet"5+ "src.rest/cat/012/internal/ui/rowtext"66 )77 88 // Rows on screen. Each row shown is a band of screen lines: a rule line@@ -6,9 +6,9 @@ import (
66 "charm.land/lipgloss/v2"77 "github.com/charmbracelet/x/ansi"88 9- "github.com/FelineStateMachine/012/internal/sheet"10- "github.com/FelineStateMachine/012/internal/ui/rowtext"11- "github.com/FelineStateMachine/012/internal/ui/theme"9+ "src.rest/cat/012/internal/sheet"10+ "src.rest/cat/012/internal/ui/rowtext"11+ "src.rest/cat/012/internal/ui/theme"1212 )1313 1414 // Drawing data bars, icon sets and dropdown chips (see sheet.Look), in@@ -7,9 +7,9 @@ import (
77 tea "charm.land/bubbletea/v2"88 "github.com/charmbracelet/x/ansi"99 10- "github.com/FelineStateMachine/012/internal/sheet"11- "github.com/FelineStateMachine/012/internal/ui/overlay"12- "github.com/FelineStateMachine/012/internal/ui/theme"10+ "src.rest/cat/012/internal/sheet"11+ "src.rest/cat/012/internal/ui/overlay"12+ "src.rest/cat/012/internal/ui/theme"1313 )1414 1515 // chartHost is what the chart editor and a selected chart act on. The@@ -10,8 +10,8 @@ import (
1010 1111 tea "charm.land/bubbletea/v2"1212 13- "github.com/FelineStateMachine/012/internal/macro"14- "github.com/FelineStateMachine/012/internal/sheet"13+ "src.rest/cat/012/internal/macro"14+ "src.rest/cat/012/internal/sheet"1515 )1616 1717 // Charts in macros. A chart inserted is recorded as@@ -8,10 +8,10 @@ import (
88 "charm.land/lipgloss/v2"99 "github.com/charmbracelet/x/ansi"1010 11- "github.com/FelineStateMachine/012/internal/chart"12- "github.com/FelineStateMachine/012/internal/sheet"13- "github.com/FelineStateMachine/012/internal/ui/overlay"14- "github.com/FelineStateMachine/012/internal/ui/theme"11+ "src.rest/cat/012/internal/chart"12+ "src.rest/cat/012/internal/sheet"13+ "src.rest/cat/012/internal/ui/overlay"14+ "src.rest/cat/012/internal/ui/theme"1515 )1616 1717 // Charts follow Sheets: Insert > Chart charts the selection (or the table@@ -4,8 +4,8 @@ import (
44 tea "charm.land/bubbletea/v2"55 "github.com/charmbracelet/x/ansi"66 7- "github.com/FelineStateMachine/012/internal/sheet"8- "github.com/FelineStateMachine/012/internal/ui/overlay"7+ "src.rest/cat/012/internal/sheet"8+ "src.rest/cat/012/internal/ui/overlay"99 )1010 1111 // chartSel is a selected chart. Arrows move it a cell at a time, Shift@@ -11,8 +11,8 @@ import (
1111 tea "charm.land/bubbletea/v2"1212 "github.com/charmbracelet/x/ansi"1313 14- "github.com/FelineStateMachine/012/internal/ui/overlay"15- "github.com/FelineStateMachine/012/internal/ui/theme"14+ "src.rest/cat/012/internal/ui/overlay"15+ "src.rest/cat/012/internal/ui/theme"1616 )1717 1818 // Host is what a choice bar needs of the UI.@@ -7,8 +7,8 @@ import (
77 tea "charm.land/bubbletea/v2"88 "github.com/charmbracelet/x/ansi"99 10- "github.com/FelineStateMachine/012/internal/ui/overlay"11- "github.com/FelineStateMachine/012/internal/ui/theme"10+ "src.rest/cat/012/internal/ui/overlay"11+ "src.rest/cat/012/internal/ui/theme"1212 )1313 1414 // fakeHost records what the bar did.@@ -12,9 +12,9 @@ import (
1212 tea "charm.land/bubbletea/v2"1313 "github.com/charmbracelet/x/ansi"1414 15- "github.com/FelineStateMachine/012/internal/nushell"16- "github.com/FelineStateMachine/012/internal/ui/overlay"17- "github.com/FelineStateMachine/012/internal/ui/theme"15+ "src.rest/cat/012/internal/nushell"16+ "src.rest/cat/012/internal/ui/overlay"17+ "src.rest/cat/012/internal/ui/theme"1818 )1919 2020 // Host is what the help needs of the UI.@@ -8,8 +8,8 @@ import (
88 tea "charm.land/bubbletea/v2"99 "github.com/charmbracelet/x/ansi"1010 11- "github.com/FelineStateMachine/012/internal/nushell"12- "github.com/FelineStateMachine/012/internal/ui/theme"11+ "src.rest/cat/012/internal/nushell"12+ "src.rest/cat/012/internal/ui/theme"1313 )1414 1515 type fakeHost struct {@@ -8,9 +8,9 @@ import (
88 99 tea "charm.land/bubbletea/v2"1010 11- "github.com/FelineStateMachine/012/internal/fileio"12- "github.com/FelineStateMachine/012/internal/sheet"13- "github.com/FelineStateMachine/012/internal/ui/cmdline"11+ "src.rest/cat/012/internal/fileio"12+ "src.rest/cat/012/internal/sheet"13+ "src.rest/cat/012/internal/ui/cmdline"1414 )1515 1616 // The command line (: with vim keys, or from the palette) takes vim's@@ -13,9 +13,9 @@ import (
1313 tea "charm.land/bubbletea/v2"1414 "github.com/charmbracelet/x/ansi"1515 16- "github.com/FelineStateMachine/012/internal/ui/lineedit"17- "github.com/FelineStateMachine/012/internal/ui/overlay"18- "github.com/FelineStateMachine/012/internal/ui/theme"16+ "src.rest/cat/012/internal/ui/lineedit"17+ "src.rest/cat/012/internal/ui/overlay"18+ "src.rest/cat/012/internal/ui/theme"1919 )2020 2121 // Host is what the command line needs of the UI.@@ -7,9 +7,9 @@ import (
77 tea "charm.land/bubbletea/v2"88 "github.com/charmbracelet/x/ansi"99 10- "github.com/FelineStateMachine/012/internal/ui/lineedit"11- "github.com/FelineStateMachine/012/internal/ui/overlay"12- "github.com/FelineStateMachine/012/internal/ui/theme"10+ "src.rest/cat/012/internal/ui/lineedit"11+ "src.rest/cat/012/internal/ui/overlay"12+ "src.rest/cat/012/internal/ui/theme"1313 )1414 1515 // fakeHost knows a few commands and runs lines it recognises.@@ -6,8 +6,8 @@ import (
66 tea "charm.land/bubbletea/v2"77 "github.com/charmbracelet/x/ansi"88 9- "github.com/FelineStateMachine/012/internal/macro"10- "github.com/FelineStateMachine/012/internal/sheet"9+ "src.rest/cat/012/internal/macro"10+ "src.rest/cat/012/internal/sheet"1111 )1212 1313 // Column widths: typed on the context line with a live preview, dragged@@ -8,8 +8,8 @@ import (
88 99 tea "charm.land/bubbletea/v2"1010 11- "github.com/FelineStateMachine/012/internal/sheet"12- "github.com/FelineStateMachine/012/internal/ui/theme"11+ "src.rest/cat/012/internal/sheet"12+ "src.rest/cat/012/internal/ui/theme"1313 )1414 1515 // command is a user-facing action. Every action is registered once here@@ -7,8 +7,8 @@ import (
77 tea "charm.land/bubbletea/v2"88 "github.com/charmbracelet/x/ansi"99 10- "github.com/FelineStateMachine/012/internal/sheet"11- "github.com/FelineStateMachine/012/internal/ui/filterpick"10+ "src.rest/cat/012/internal/sheet"11+ "src.rest/cat/012/internal/ui/filterpick"1212 )1313 1414 // handleX is the screen x of the fill handle in column c (scrolled to A).@@ -9,8 +9,8 @@ import (
99 "testing"1010 "unicode"1111 12- "github.com/FelineStateMachine/012/internal/ui/nbview"13- "github.com/FelineStateMachine/012/internal/ui/theme"12+ "src.rest/cat/012/internal/ui/nbview"13+ "src.rest/cat/012/internal/ui/theme"1414 )1515 1616 // The docs name menus, commands and keys; these tests keep what they name@@ -9,9 +9,9 @@ import (
99 1010 tea "charm.land/bubbletea/v2"1111 12- "github.com/FelineStateMachine/012/internal/fileio"13- "github.com/FelineStateMachine/012/internal/sheet"14- "github.com/FelineStateMachine/012/internal/telemetry"12+ "src.rest/cat/012/internal/fileio"13+ "src.rest/cat/012/internal/sheet"14+ "src.rest/cat/012/internal/telemetry"1515 )1616 1717 // File > Download: the workbook, or for formats with tables the selection,@@ -7,8 +7,8 @@ import (
77 88 tea "charm.land/bubbletea/v2"99 10- "github.com/FelineStateMachine/012/internal/sheet"11- "github.com/FelineStateMachine/012/internal/ui/formula"10+ "src.rest/cat/012/internal/sheet"11+ "src.rest/cat/012/internal/ui/formula"1212 )1313 1414 // Undo and redo, fill, inserting and deleting rows and columns, and F4 in@@ -6,10 +6,10 @@ import (
66 77 tea "charm.land/bubbletea/v2"88 9- "github.com/FelineStateMachine/012/internal/macro"10- "github.com/FelineStateMachine/012/internal/sheet"11- "github.com/FelineStateMachine/012/internal/ui/overlay"12- "github.com/FelineStateMachine/012/internal/ui/suggest"9+ "src.rest/cat/012/internal/macro"10+ "src.rest/cat/012/internal/sheet"11+ "src.rest/cat/012/internal/ui/overlay"12+ "src.rest/cat/012/internal/ui/suggest"1313 )1414 1515 // Entry follows Google Sheets: typing replaces the cell (ENTER), Enter or@@ -7,9 +7,9 @@ import (
77 "charm.land/lipgloss/v2"88 "github.com/charmbracelet/x/ansi"99 10- "github.com/FelineStateMachine/012/internal/sheet"11- "github.com/FelineStateMachine/012/internal/ui/overlay"12- "github.com/FelineStateMachine/012/internal/ui/theme"10+ "src.rest/cat/012/internal/sheet"11+ "src.rest/cat/012/internal/ui/overlay"12+ "src.rest/cat/012/internal/ui/theme"1313 )1414 1515 // The context line explains the active cell's error, or why a linked@@ -15,11 +15,11 @@ import (
1515 "charm.land/lipgloss/v2"1616 "github.com/charmbracelet/x/ansi"1717 18- "github.com/FelineStateMachine/012/internal/formula"19- "github.com/FelineStateMachine/012/internal/locale"20- "github.com/FelineStateMachine/012/internal/sheet"21- "github.com/FelineStateMachine/012/internal/ui/overlay"22- "github.com/FelineStateMachine/012/internal/ui/theme"18+ "src.rest/cat/012/internal/formula"19+ "src.rest/cat/012/internal/locale"20+ "src.rest/cat/012/internal/sheet"21+ "src.rest/cat/012/internal/ui/overlay"22+ "src.rest/cat/012/internal/ui/theme"2323 )2424 2525 // Host is what the view needs of the UI.@@ -7,9 +7,9 @@ import (
77 tea "charm.land/bubbletea/v2"88 "github.com/charmbracelet/x/ansi"99 10- "github.com/FelineStateMachine/012/internal/locale"11- "github.com/FelineStateMachine/012/internal/sheet"12- "github.com/FelineStateMachine/012/internal/ui/theme"10+ "src.rest/cat/012/internal/locale"11+ "src.rest/cat/012/internal/sheet"12+ "src.rest/cat/012/internal/ui/theme"1313 )1414 1515 type fakeHost struct {@@ -6,8 +6,8 @@ import (
66 tea "charm.land/bubbletea/v2"77 uv "github.com/charmbracelet/ultraviolet"88 9- "github.com/FelineStateMachine/012/internal/sheet"10- "github.com/FelineStateMachine/012/internal/stress"9+ "src.rest/cat/012/internal/sheet"10+ "src.rest/cat/012/internal/stress"1111 )1212 1313 // The shapes and the fake terminal below are shared by the stress@@ -13,10 +13,10 @@ import (
1313 1414 tea "charm.land/bubbletea/v2"1515 16- "github.com/FelineStateMachine/012/internal/confine"17- "github.com/FelineStateMachine/012/internal/fileio"18- "github.com/FelineStateMachine/012/internal/sheet"19- "github.com/FelineStateMachine/012/internal/telemetry"16+ "src.rest/cat/012/internal/confine"17+ "src.rest/cat/012/internal/fileio"18+ "src.rest/cat/012/internal/sheet"19+ "src.rest/cat/012/internal/telemetry"2020 )2121 2222 // Saving and opening .012 files. Files are written and read in the@@ -5,9 +5,9 @@ import (
55 66 tea "charm.land/bubbletea/v2"77 8- "github.com/FelineStateMachine/012/internal/macro"8+ "src.rest/cat/012/internal/macro"99 10- "github.com/FelineStateMachine/012/internal/sheet"10+ "src.rest/cat/012/internal/sheet"1111 )1212 1313 // The fill handle, as in Sheets: the bottom-right corner of the selection@@ -11,8 +11,8 @@ import (
1111 tea "charm.land/bubbletea/v2"1212 "github.com/charmbracelet/x/ansi"1313 14- "github.com/FelineStateMachine/012/internal/sheet"15- "github.com/FelineStateMachine/012/internal/ui/filterpick"14+ "src.rest/cat/012/internal/sheet"15+ "src.rest/cat/012/internal/ui/filterpick"1616 )1717 1818 // Filters follow Sheets' Data > Create a filter: the headers of the@@ -13,11 +13,11 @@ import (
1313 "github.com/charmbracelet/x/ansi"1414 "github.com/sahilm/fuzzy"1515 16- "github.com/FelineStateMachine/012/internal/locale"17- "github.com/FelineStateMachine/012/internal/sheet"18- "github.com/FelineStateMachine/012/internal/ui/lineedit"19- "github.com/FelineStateMachine/012/internal/ui/overlay"20- "github.com/FelineStateMachine/012/internal/ui/theme"16+ "src.rest/cat/012/internal/locale"17+ "src.rest/cat/012/internal/sheet"18+ "src.rest/cat/012/internal/ui/lineedit"19+ "src.rest/cat/012/internal/ui/overlay"20+ "src.rest/cat/012/internal/ui/theme"2121 )2222 2323 // Host is what the filter picker needs of the UI.@@ -7,11 +7,11 @@ import (
77 tea "charm.land/bubbletea/v2"88 "github.com/charmbracelet/x/ansi"99 10- "github.com/FelineStateMachine/012/internal/locale"11- "github.com/FelineStateMachine/012/internal/sheet"12- "github.com/FelineStateMachine/012/internal/ui/lineedit"13- "github.com/FelineStateMachine/012/internal/ui/overlay"14- "github.com/FelineStateMachine/012/internal/ui/theme"10+ "src.rest/cat/012/internal/locale"11+ "src.rest/cat/012/internal/sheet"12+ "src.rest/cat/012/internal/ui/lineedit"13+ "src.rest/cat/012/internal/ui/overlay"14+ "src.rest/cat/012/internal/ui/theme"1515 )1616 1717 // fakeHost is a screen and an edit line in a locale.@@ -5,8 +5,8 @@ import (
55 66 tea "charm.land/bubbletea/v2"77 8- "github.com/FelineStateMachine/012/internal/sheet"9- "github.com/FelineStateMachine/012/internal/ui/findbar"8+ "src.rest/cat/012/internal/sheet"9+ "src.rest/cat/012/internal/ui/findbar"1010 )1111 1212 // Find and replace is a bar on the context line (package findbar); here@@ -14,10 +14,10 @@ import (
1414 1515 tea "charm.land/bubbletea/v2"1616 17- "github.com/FelineStateMachine/012/internal/sheet"18- "github.com/FelineStateMachine/012/internal/telemetry"19- "github.com/FelineStateMachine/012/internal/ui/lineedit"20- "github.com/FelineStateMachine/012/internal/ui/theme"17+ "src.rest/cat/012/internal/sheet"18+ "src.rest/cat/012/internal/telemetry"19+ "src.rest/cat/012/internal/ui/lineedit"20+ "src.rest/cat/012/internal/ui/theme"2121 )2222 2323 // Host is what the find bar needs of the UI.@@ -7,11 +7,11 @@ import (
77 tea "charm.land/bubbletea/v2"88 "github.com/charmbracelet/x/ansi"99 10- "github.com/FelineStateMachine/012/internal/sheet"11- "github.com/FelineStateMachine/012/internal/telemetry"12- "github.com/FelineStateMachine/012/internal/ui/lineedit"13- "github.com/FelineStateMachine/012/internal/ui/overlay"14- "github.com/FelineStateMachine/012/internal/ui/theme"10+ "src.rest/cat/012/internal/sheet"11+ "src.rest/cat/012/internal/telemetry"12+ "src.rest/cat/012/internal/ui/lineedit"13+ "src.rest/cat/012/internal/ui/overlay"14+ "src.rest/cat/012/internal/ui/theme"1515 )1616 1717 // fakeHost is a workbook with an active cell and a record of what the@@ -10,9 +10,9 @@ import (
1010 1111 tea "charm.land/bubbletea/v2"1212 13- "github.com/FelineStateMachine/012/internal/fileio"14- "github.com/FelineStateMachine/012/internal/live"15- "github.com/FelineStateMachine/012/internal/sheet"13+ "src.rest/cat/012/internal/fileio"14+ "src.rest/cat/012/internal/live"15+ "src.rest/cat/012/internal/sheet"1616 )1717 1818 // Following linked regions (Data > Linked file, File > Import's Follow@@ -8,8 +8,8 @@ import (
88 99 "github.com/charmbracelet/x/ansi"1010 11- "github.com/FelineStateMachine/012/internal/confine"12- "github.com/FelineStateMachine/012/internal/sheet"11+ "src.rest/cat/012/internal/confine"12+ "src.rest/cat/012/internal/sheet"1313 )1414 1515 // pump polls every region's source once, as the ticks would, and@@ -11,9 +11,9 @@ import (
1111 "testing"1212 "time"1313 14- "github.com/FelineStateMachine/012/internal/fileio"15- "github.com/FelineStateMachine/012/internal/live"16- "github.com/FelineStateMachine/012/internal/sheet"14+ "src.rest/cat/012/internal/fileio"15+ "src.rest/cat/012/internal/live"16+ "src.rest/cat/012/internal/sheet"1717 )1818 1919 // BenchmarkFollow follows a CSV log while another goroutine appends@@ -7,8 +7,8 @@ import (
77 tea "charm.land/bubbletea/v2"88 "github.com/charmbracelet/x/ansi"99 10- "github.com/FelineStateMachine/012/internal/sheet"11- "github.com/FelineStateMachine/012/internal/ui/shortcuts"10+ "src.rest/cat/012/internal/sheet"11+ "src.rest/cat/012/internal/ui/shortcuts"1212 )1313 1414 // cells returns the text of the first n columns of grid row r (1-based),@@ -4,8 +4,8 @@ import (
44 "strconv"55 "testing"66 7- "github.com/FelineStateMachine/012/internal/notebook"8- "github.com/FelineStateMachine/012/internal/sheet"7+ "src.rest/cat/012/internal/notebook"8+ "src.rest/cat/012/internal/sheet"99 )1010 1111 // withRegion adds a sheet after the one shown holding, at B2, the@@ -12,10 +12,10 @@ import (
1212 uv "github.com/charmbracelet/ultraviolet"1313 "github.com/charmbracelet/x/ansi"1414 15- "github.com/FelineStateMachine/012/internal/chart"16- "github.com/FelineStateMachine/012/internal/sheet"17- "github.com/FelineStateMachine/012/internal/telemetry"18- "github.com/FelineStateMachine/012/internal/ui/theme"15+ "src.rest/cat/012/internal/chart"16+ "src.rest/cat/012/internal/sheet"17+ "src.rest/cat/012/internal/telemetry"18+ "src.rest/cat/012/internal/ui/theme"1919 )2020 2121 // terminal is what 012 knows about the terminal it runs in, learned from@@ -1,8 +1,8 @@
11 package ui22 33 import (4- "github.com/FelineStateMachine/012/internal/sheet"5- "github.com/FelineStateMachine/012/internal/ui/rowtext"4+ "src.rest/cat/012/internal/sheet"5+ "src.rest/cat/012/internal/ui/rowtext"66 )77 88 // grid is the sheet as the window shows it: which sheet, the active cell,@@ -6,9 +6,9 @@ import (
66 "charm.land/lipgloss/v2"77 "github.com/charmbracelet/x/ansi"88 9- "github.com/FelineStateMachine/012/internal/sheet"10- "github.com/FelineStateMachine/012/internal/ui/rowtext"11- "github.com/FelineStateMachine/012/internal/ui/theme"9+ "src.rest/cat/012/internal/sheet"10+ "src.rest/cat/012/internal/ui/rowtext"11+ "src.rest/cat/012/internal/ui/theme"1212 )1313 1414 // Drawing rows that wrap, draw borders or merge cells. Borders are@@ -8,9 +8,9 @@ import (
88 99 tea "charm.land/bubbletea/v2"1010 11- "github.com/FelineStateMachine/012/internal/sheet"12- "github.com/FelineStateMachine/012/internal/ui/picker"13- "github.com/FelineStateMachine/012/internal/ui/shortcuts"11+ "src.rest/cat/012/internal/sheet"12+ "src.rest/cat/012/internal/ui/picker"13+ "src.rest/cat/012/internal/ui/shortcuts"1414 )1515 1616 func init() {@@ -6,8 +6,8 @@ import (
66 77 tea "charm.land/bubbletea/v2"88 9- "github.com/FelineStateMachine/012/internal/ui/shortcuts"10- "github.com/FelineStateMachine/012/internal/ui/theme"9+ "src.rest/cat/012/internal/ui/shortcuts"10+ "src.rest/cat/012/internal/ui/theme"1111 )1212 1313 func TestShortcutsListEveryBoundCommand(t *testing.T) {@@ -3,8 +3,8 @@ package ui
33 import (44 tea "charm.land/bubbletea/v2"55 6- "github.com/FelineStateMachine/012/internal/sheet"7- "github.com/FelineStateMachine/012/internal/ui/picker"6+ "src.rest/cat/012/internal/sheet"7+ "src.rest/cat/012/internal/ui/picker"88 )99 1010 // Hidden sheets, as in Sheets: the tab menu's Hide sheet takes a sheet@@ -3,23 +3,23 @@ package ui
33 import (44 tea "charm.land/bubbletea/v2"55 6- "github.com/FelineStateMachine/012/internal/locale"7- "github.com/FelineStateMachine/012/internal/sheet"8- "github.com/FelineStateMachine/012/internal/telemetry"9- "github.com/FelineStateMachine/012/internal/ui/choicebar"10- "github.com/FelineStateMachine/012/internal/ui/cmdhelp"11- "github.com/FelineStateMachine/012/internal/ui/cmdline"12- "github.com/FelineStateMachine/012/internal/ui/filterpick"13- "github.com/FelineStateMachine/012/internal/ui/findbar"14- "github.com/FelineStateMachine/012/internal/ui/lineedit"15- "github.com/FelineStateMachine/012/internal/ui/picker"16- "github.com/FelineStateMachine/012/internal/ui/review"17- "github.com/FelineStateMachine/012/internal/ui/rules"18- "github.com/FelineStateMachine/012/internal/ui/shortcuts"19- "github.com/FelineStateMachine/012/internal/ui/sortbar"20- "github.com/FelineStateMachine/012/internal/ui/suggest"21- "github.com/FelineStateMachine/012/internal/ui/theme"22- "github.com/FelineStateMachine/012/internal/ui/themepicker"6+ "src.rest/cat/012/internal/locale"7+ "src.rest/cat/012/internal/sheet"8+ "src.rest/cat/012/internal/telemetry"9+ "src.rest/cat/012/internal/ui/choicebar"10+ "src.rest/cat/012/internal/ui/cmdhelp"11+ "src.rest/cat/012/internal/ui/cmdline"12+ "src.rest/cat/012/internal/ui/filterpick"13+ "src.rest/cat/012/internal/ui/findbar"14+ "src.rest/cat/012/internal/ui/lineedit"15+ "src.rest/cat/012/internal/ui/picker"16+ "src.rest/cat/012/internal/ui/review"17+ "src.rest/cat/012/internal/ui/rules"18+ "src.rest/cat/012/internal/ui/shortcuts"19+ "src.rest/cat/012/internal/ui/sortbar"20+ "src.rest/cat/012/internal/ui/suggest"21+ "src.rest/cat/012/internal/ui/theme"22+ "src.rest/cat/012/internal/ui/themepicker"2323 )2424 2525 // host is how components in packages of their own reach the model. It@@ -6,10 +6,10 @@ import (
66 77 tea "charm.land/bubbletea/v2"88 9- "github.com/FelineStateMachine/012/internal/fileio"10- "github.com/FelineStateMachine/012/internal/sheet"11- "github.com/FelineStateMachine/012/internal/ui/picker"12- "github.com/FelineStateMachine/012/internal/ui/transfer"9+ "src.rest/cat/012/internal/fileio"10+ "src.rest/cat/012/internal/sheet"11+ "src.rest/cat/012/internal/ui/picker"12+ "src.rest/cat/012/internal/ui/transfer"1313 )1414 1515 // Where File > Import puts what it reads, as Sheets' Import location:@@ -6,9 +6,9 @@ import (
66 "strings"77 "testing"88 9- "github.com/FelineStateMachine/012/internal/fileio"10- "github.com/FelineStateMachine/012/internal/sheet"11- "github.com/FelineStateMachine/012/internal/ui/picker"9+ "src.rest/cat/012/internal/fileio"10+ "src.rest/cat/012/internal/sheet"11+ "src.rest/cat/012/internal/ui/picker"1212 )1313 1414 // importInto runs File > Import on name and picks place in the location@@ -8,10 +8,10 @@ import (
88 99 tea "charm.land/bubbletea/v2"1010 11- "github.com/FelineStateMachine/012/internal/jev"12- "github.com/FelineStateMachine/012/internal/sheet"13- "github.com/FelineStateMachine/012/internal/telemetry"14- "github.com/FelineStateMachine/012/internal/ui/theme"11+ "src.rest/cat/012/internal/jev"12+ "src.rest/cat/012/internal/sheet"13+ "src.rest/cat/012/internal/telemetry"14+ "src.rest/cat/012/internal/ui/theme"1515 )1616 1717 // JEV functions are answered in the background: the engine queues@@ -9,8 +9,8 @@ import (
99 tea "charm.land/bubbletea/v2"1010 typesafe "github.com/FelineStateMachine/typesafe-go"1111 12- "github.com/FelineStateMachine/012/internal/jev"13- "github.com/FelineStateMachine/012/internal/sheet"12+ "src.rest/cat/012/internal/jev"13+ "src.rest/cat/012/internal/sheet"1414 )1515 1616 // fakeJEV answers every question the same way and counts requests.@@ -3,8 +3,8 @@ package ui
33 import (44 tea "charm.land/bubbletea/v2"55 6- "github.com/FelineStateMachine/012/internal/sheet"7- "github.com/FelineStateMachine/012/internal/ui/cmdline"6+ "src.rest/cat/012/internal/sheet"7+ "src.rest/cat/012/internal/ui/cmdline"88 )99 1010 // The kitty keyboard protocol. Bubble Tea asks every terminal for its@@ -12,9 +12,9 @@ import (
1212 1313 tea "charm.land/bubbletea/v2"1414 15- "github.com/FelineStateMachine/012/internal/config"16- "github.com/FelineStateMachine/012/internal/jev"17- "github.com/FelineStateMachine/012/internal/keyring"15+ "src.rest/cat/012/internal/config"16+ "src.rest/cat/012/internal/jev"17+ "src.rest/cat/012/internal/keyring"1818 )1919 2020 // fakeTypeSafe stands in for the TypeSafe API on this machine: it@@ -6,8 +6,8 @@ import (
66 77 tea "charm.land/bubbletea/v2"88 9- "github.com/FelineStateMachine/012/internal/sheet"10- "github.com/FelineStateMachine/012/internal/ui/choicebar"9+ "src.rest/cat/012/internal/sheet"10+ "src.rest/cat/012/internal/ui/choicebar"1111 )1212 1313 // rect parses a range for tests.@@ -10,11 +10,11 @@ import (
1010 1111 tea "charm.land/bubbletea/v2"1212 13- "github.com/FelineStateMachine/012/internal/fileio"14- "github.com/FelineStateMachine/012/internal/sheet"15- "github.com/FelineStateMachine/012/internal/ui/picker"16- "github.com/FelineStateMachine/012/internal/ui/tabstrip"17- "github.com/FelineStateMachine/012/internal/ui/transfer"13+ "src.rest/cat/012/internal/fileio"14+ "src.rest/cat/012/internal/sheet"15+ "src.rest/cat/012/internal/ui/picker"16+ "src.rest/cat/012/internal/ui/tabstrip"17+ "src.rest/cat/012/internal/ui/transfer"1818 )1919 2020 // Linked files: Data > Linked file links a file at the active cell, and@@ -3,9 +3,9 @@ package ui
33 import (44 "charm.land/lipgloss/v2"55 6- "github.com/FelineStateMachine/012/internal/sheet"7- "github.com/FelineStateMachine/012/internal/ui/rowtext"8- "github.com/FelineStateMachine/012/internal/ui/theme"6+ "src.rest/cat/012/internal/sheet"7+ "src.rest/cat/012/internal/ui/rowtext"8+ "src.rest/cat/012/internal/ui/theme"99 )1010 1111 // Cells whose text is a URL, and HYPERLINK formulas, are drawn as OSC 8@@ -5,11 +5,11 @@ import (
55 66 tea "charm.land/bubbletea/v2"77 8- "github.com/FelineStateMachine/012/internal/formula"9- "github.com/FelineStateMachine/012/internal/locale"10- "github.com/FelineStateMachine/012/internal/numfmt"11- "github.com/FelineStateMachine/012/internal/sheet"12- "github.com/FelineStateMachine/012/internal/ui/picker"8+ "src.rest/cat/012/internal/formula"9+ "src.rest/cat/012/internal/locale"10+ "src.rest/cat/012/internal/numfmt"11+ "src.rest/cat/012/internal/sheet"12+ "src.rest/cat/012/internal/ui/picker"1313 )1414 1515 // File > Settings > Locale: how the workbook's entries are typed and its@@ -7,9 +7,9 @@ import (
77 "charm.land/lipgloss/v2"88 "github.com/charmbracelet/x/ansi"99 10- "github.com/FelineStateMachine/012/internal/sheet"11- "github.com/FelineStateMachine/012/internal/ui/rowtext"12- "github.com/FelineStateMachine/012/internal/ui/theme"10+ "src.rest/cat/012/internal/sheet"11+ "src.rest/cat/012/internal/ui/rowtext"12+ "src.rest/cat/012/internal/ui/theme"1313 )1414 1515 // Drawing the sheet's rules (see sheet.Look): a conditional format's@@ -7,9 +7,9 @@ import (
77 88 tea "charm.land/bubbletea/v2"99 10- "github.com/FelineStateMachine/012/internal/macro"11- "github.com/FelineStateMachine/012/internal/sheet"12- "github.com/FelineStateMachine/012/internal/ui/picker"10+ "src.rest/cat/012/internal/macro"11+ "src.rest/cat/012/internal/sheet"12+ "src.rest/cat/012/internal/ui/picker"1313 )1414 1515 // Macros, as Google Sheets' Extensions > Macros, under Data > Macros:@@ -6,8 +6,8 @@ import (
66 "fmt"77 "testing"88 9- "github.com/FelineStateMachine/012/internal/macro"10- "github.com/FelineStateMachine/012/internal/sheet"9+ "src.rest/cat/012/internal/macro"10+ "src.rest/cat/012/internal/sheet"1111 )1212 1313 // replayActions is a recording of n actions as a user makes them: entries@@ -6,8 +6,8 @@ import (
66 "strconv"77 "strings"88 9- "github.com/FelineStateMachine/012/internal/macro"10- "github.com/FelineStateMachine/012/internal/sheet"9+ "src.rest/cat/012/internal/macro"10+ "src.rest/cat/012/internal/sheet"1111 )1212 1313 // scriptHost is what a running macro acts on: the model, through the@@ -7,9 +7,9 @@ import (
77 "strconv"88 "strings"99 10- "github.com/FelineStateMachine/012/internal/sheet"11- "github.com/FelineStateMachine/012/internal/ui/choicebar"12- "github.com/FelineStateMachine/012/internal/ui/picker"10+ "src.rest/cat/012/internal/sheet"11+ "src.rest/cat/012/internal/ui/choicebar"12+ "src.rest/cat/012/internal/ui/picker"1313 )1414 1515 // What scripts do to the selection, the sheets and through commands; the@@ -11,10 +11,10 @@ import (
1111 1212 tea "charm.land/bubbletea/v2"1313 14- "github.com/FelineStateMachine/012/internal/macro"15- "github.com/FelineStateMachine/012/internal/sheet"16- "github.com/FelineStateMachine/012/internal/ui/picker"17- "github.com/FelineStateMachine/012/internal/ui/theme"14+ "src.rest/cat/012/internal/macro"15+ "src.rest/cat/012/internal/sheet"16+ "src.rest/cat/012/internal/ui/picker"17+ "src.rest/cat/012/internal/ui/theme"1818 )1919 2020 // Managing macros, as Sheets' Extensions > Macros > Manage macros: a@@ -6,10 +6,10 @@ import (
66 77 tea "charm.land/bubbletea/v2"88 9- "github.com/FelineStateMachine/012/internal/macro"10- "github.com/FelineStateMachine/012/internal/sheet"11- "github.com/FelineStateMachine/012/internal/ui/choicebar"12- "github.com/FelineStateMachine/012/internal/ui/picker"9+ "src.rest/cat/012/internal/macro"10+ "src.rest/cat/012/internal/sheet"11+ "src.rest/cat/012/internal/ui/choicebar"12+ "src.rest/cat/012/internal/ui/picker"1313 )1414 1515 // Recording a macro, as Sheets' Extensions > Macros > Record macro: while@@ -7,9 +7,9 @@ import (
77 88 tea "charm.land/bubbletea/v2"99 10- "github.com/FelineStateMachine/012/internal/macro"11- "github.com/FelineStateMachine/012/internal/sheet"12- "github.com/FelineStateMachine/012/internal/telemetry"10+ "src.rest/cat/012/internal/macro"11+ "src.rest/cat/012/internal/sheet"12+ "src.rest/cat/012/internal/telemetry"1313 )1414 1515 // Running a macro. The script runs on a goroutine of its own, so a long@@ -7,8 +7,8 @@ import (
77 tea "charm.land/bubbletea/v2"88 "github.com/charmbracelet/x/ansi"99 10- "github.com/FelineStateMachine/012/internal/ui/overlay"11- "github.com/FelineStateMachine/012/internal/ui/theme"10+ "src.rest/cat/012/internal/ui/overlay"11+ "src.rest/cat/012/internal/ui/theme"1212 )1313 1414 // menuHost is what an open menu acts on. The model implements it. Menus@@ -7,8 +7,8 @@ import (
77 tea "charm.land/bubbletea/v2"88 "github.com/charmbracelet/x/ansi"99 10- "github.com/FelineStateMachine/012/internal/ui/overlay"11- "github.com/FelineStateMachine/012/internal/ui/theme"10+ "src.rest/cat/012/internal/ui/overlay"11+ "src.rest/cat/012/internal/ui/theme"1212 )1313 1414 // fakeMenuHost is a menu's host without a model: every command is@@ -10,16 +10,16 @@ import (
1010 tea "charm.land/bubbletea/v2"1111 "charm.land/lipgloss/v2"1212 13- "github.com/FelineStateMachine/012/internal/confine"14- "github.com/FelineStateMachine/012/internal/sheet"15- "github.com/FelineStateMachine/012/internal/telemetry"16- "github.com/FelineStateMachine/012/internal/ui/findbar"17- "github.com/FelineStateMachine/012/internal/ui/lineedit"18- "github.com/FelineStateMachine/012/internal/ui/overlay"19- "github.com/FelineStateMachine/012/internal/ui/rowtext"20- "github.com/FelineStateMachine/012/internal/ui/tabstrip"21- "github.com/FelineStateMachine/012/internal/ui/theme"22- "github.com/FelineStateMachine/012/internal/ui/transfer"13+ "src.rest/cat/012/internal/confine"14+ "src.rest/cat/012/internal/sheet"15+ "src.rest/cat/012/internal/telemetry"16+ "src.rest/cat/012/internal/ui/findbar"17+ "src.rest/cat/012/internal/ui/lineedit"18+ "src.rest/cat/012/internal/ui/overlay"19+ "src.rest/cat/012/internal/ui/rowtext"20+ "src.rest/cat/012/internal/ui/tabstrip"21+ "src.rest/cat/012/internal/ui/theme"22+ "src.rest/cat/012/internal/ui/transfer"2323 )2424 2525 // mode is the state shown in the mode indicator.@@ -4,8 +4,8 @@ import (
44 "strings"55 "testing"66 7- "github.com/FelineStateMachine/012/internal/sheet"8- "github.com/FelineStateMachine/012/internal/ui/theme"7+ "src.rest/cat/012/internal/sheet"8+ "src.rest/cat/012/internal/ui/theme"99 )1010 1111 // Every state reads without color (docs/contributing/ux.md#visual-rules):@@ -5,9 +5,9 @@ import (
55 66 tea "charm.land/bubbletea/v2"77 8- "github.com/FelineStateMachine/012/internal/sheet"9- "github.com/FelineStateMachine/012/internal/ui/picker"10- "github.com/FelineStateMachine/012/internal/ui/theme"8+ "src.rest/cat/012/internal/sheet"9+ "src.rest/cat/012/internal/ui/picker"10+ "src.rest/cat/012/internal/ui/theme"1111 )1212 1313 // Named ranges, as Sheets' Data > Named ranges: a picker lists them with@@ -6,8 +6,8 @@ import (
66 77 tea "charm.land/bubbletea/v2"88 9- "github.com/FelineStateMachine/012/internal/notebook"10- "github.com/FelineStateMachine/012/internal/ui/picker"9+ "src.rest/cat/012/internal/notebook"10+ "src.rest/cat/012/internal/ui/picker"1111 )1212 1313 // The commands that change a notebook's cells and how their outputs@@ -8,9 +8,9 @@ import (
88 99 "github.com/charmbracelet/x/ansi"1010 11- "github.com/FelineStateMachine/012/internal/fileio"12- "github.com/FelineStateMachine/012/internal/sheet"13- "github.com/FelineStateMachine/012/internal/ui/nbview"11+ "src.rest/cat/012/internal/fileio"12+ "src.rest/cat/012/internal/sheet"13+ "src.rest/cat/012/internal/ui/nbview"1414 )1515 1616 // A notebook cell's table or record output is drawn and worked as 012's@@ -7,8 +7,8 @@ import (
77 88 tea "charm.land/bubbletea/v2"99 10- "github.com/FelineStateMachine/012/internal/notebook"11- "github.com/FelineStateMachine/012/internal/sheet"10+ "src.rest/cat/012/internal/notebook"11+ "src.rest/cat/012/internal/sheet"1212 )1313 1414 // bigTable is an output of n rows of four columns, as nu prints it.@@ -7,9 +7,9 @@ import (
77 tea "charm.land/bubbletea/v2"88 "github.com/charmbracelet/x/ansi"99 10- "github.com/FelineStateMachine/012/internal/sheet"11- "github.com/FelineStateMachine/012/internal/ui/nbview"12- "github.com/FelineStateMachine/012/internal/ui/overlay"10+ "src.rest/cat/012/internal/sheet"11+ "src.rest/cat/012/internal/ui/nbview"12+ "src.rest/cat/012/internal/ui/overlay"1313 )1414 1515 // Commands on an output's grid, and what the control panel says of it.@@ -3,9 +3,9 @@ package ui
33 import (44 tea "charm.land/bubbletea/v2"55 6- "github.com/FelineStateMachine/012/internal/sheet"7- "github.com/FelineStateMachine/012/internal/ui/nbview"8- "github.com/FelineStateMachine/012/internal/ui/overlay"6+ "src.rest/cat/012/internal/sheet"7+ "src.rest/cat/012/internal/ui/nbview"8+ "src.rest/cat/012/internal/ui/overlay"99 )1010 1111 // Working in an output's grid (nbgrid.go). Enter on a table or record@@ -3,8 +3,8 @@ package ui
33 import (44 "context"55 6- "github.com/FelineStateMachine/012/internal/fileio"7- "github.com/FelineStateMachine/012/internal/sheet"6+ "src.rest/cat/012/internal/fileio"7+ "src.rest/cat/012/internal/sheet"88 )99 1010 // A cell run as a stream prints rows until it's stopped, and its output@@ -10,9 +10,9 @@ import (
1010 1111 tea "charm.land/bubbletea/v2"1212 13- "github.com/FelineStateMachine/012/internal/live"14- "github.com/FelineStateMachine/012/internal/notebook"15- "github.com/FelineStateMachine/012/internal/sheet"13+ "src.rest/cat/012/internal/live"14+ "src.rest/cat/012/internal/notebook"15+ "src.rest/cat/012/internal/sheet"1616 )1717 1818 // streamed is a notebook of one cell run as a stream, its output@@ -10,10 +10,10 @@ import (
1010 1111 tea "charm.land/bubbletea/v2"1212 13- "github.com/FelineStateMachine/012/internal/fileio"14- "github.com/FelineStateMachine/012/internal/notebook"15- "github.com/FelineStateMachine/012/internal/nushell"16- "github.com/FelineStateMachine/012/internal/sheet"13+ "src.rest/cat/012/internal/fileio"14+ "src.rest/cat/012/internal/notebook"15+ "src.rest/cat/012/internal/nushell"16+ "src.rest/cat/012/internal/sheet"1717 )1818 1919 // What a cell's run reads: the outputs of the cells it names ($sales),@@ -6,9 +6,9 @@ import (
66 77 tea "charm.land/bubbletea/v2"88 9- "github.com/FelineStateMachine/012/internal/sheet"10- "github.com/FelineStateMachine/012/internal/ui/cmdhelp"11- "github.com/FelineStateMachine/012/internal/ui/nbview"9+ "src.rest/cat/012/internal/sheet"10+ "src.rest/cat/012/internal/ui/cmdhelp"11+ "src.rest/cat/012/internal/ui/nbview"1212 )1313 1414 // What the code editor knows of nushell: nu itself, asked about the@@ -13,10 +13,10 @@ import (
1313 1414 tea "charm.land/bubbletea/v2"1515 16- "github.com/FelineStateMachine/012/internal/nushell"17- "github.com/FelineStateMachine/012/internal/sheet"18- "github.com/FelineStateMachine/012/internal/ui/cmdhelp"19- "github.com/FelineStateMachine/012/internal/ui/shortcuts"16+ "src.rest/cat/012/internal/nushell"17+ "src.rest/cat/012/internal/sheet"18+ "src.rest/cat/012/internal/ui/cmdhelp"19+ "src.rest/cat/012/internal/ui/shortcuts"2020 )2121 2222 // ideNu is fakeNu answering the code editor's questions too, as nu@@ -10,10 +10,10 @@ import (
1010 1111 tea "charm.land/bubbletea/v2"1212 13- "github.com/FelineStateMachine/012/internal/notebook"14- "github.com/FelineStateMachine/012/internal/nushell"15- "github.com/FelineStateMachine/012/internal/sheet"16- "github.com/FelineStateMachine/012/internal/ui/nbview"13+ "src.rest/cat/012/internal/notebook"14+ "src.rest/cat/012/internal/nushell"15+ "src.rest/cat/012/internal/sheet"16+ "src.rest/cat/012/internal/ui/nbview"1717 )1818 1919 // Running cells. One runs at a time, in the background, so the screen@@ -5,10 +5,10 @@ import (
55 66 tea "charm.land/bubbletea/v2"77 8- "github.com/FelineStateMachine/012/internal/notebook"9- "github.com/FelineStateMachine/012/internal/sheet"10- "github.com/FelineStateMachine/012/internal/ui/nbview"11- "github.com/FelineStateMachine/012/internal/ui/overlay"8+ "src.rest/cat/012/internal/notebook"9+ "src.rest/cat/012/internal/sheet"10+ "src.rest/cat/012/internal/ui/nbview"11+ "src.rest/cat/012/internal/ui/overlay"1212 )1313 1414 // A notebook tab on the screen, as Jupyter's: the menu bar with@@ -6,10 +6,10 @@ import (
66 77 tea "charm.land/bubbletea/v2"88 9- "github.com/FelineStateMachine/012/internal/fileio"10- "github.com/FelineStateMachine/012/internal/notebook"11- "github.com/FelineStateMachine/012/internal/sheet"12- "github.com/FelineStateMachine/012/internal/ui/picker"9+ "src.rest/cat/012/internal/fileio"10+ "src.rest/cat/012/internal/notebook"11+ "src.rest/cat/012/internal/sheet"12+ "src.rest/cat/012/internal/ui/picker"1313 )1414 1515 // Sending a cell's output to a sheet: the output becomes a region of the@@ -9,9 +9,9 @@ import (
99 1010 tea "charm.land/bubbletea/v2"1111 12- "github.com/FelineStateMachine/012/internal/live"13- "github.com/FelineStateMachine/012/internal/notebook"14- "github.com/FelineStateMachine/012/internal/nushell"12+ "src.rest/cat/012/internal/live"13+ "src.rest/cat/012/internal/notebook"14+ "src.rest/cat/012/internal/nushell"1515 )1616 1717 // Cells run as streams (Run as stream): the pipeline runs until it ends@@ -8,8 +8,8 @@ import (
88 "charm.land/lipgloss/v2"99 "github.com/charmbracelet/x/ansi"1010 11- "github.com/FelineStateMachine/012/internal/notebook"12- "github.com/FelineStateMachine/012/internal/ui/lineedit"11+ "src.rest/cat/012/internal/notebook"12+ "src.rest/cat/012/internal/ui/lineedit"1313 )1414 1515 // Drawing a cell's block line by line (layout.go says where).@@ -8,8 +8,8 @@ import (
88 tea "charm.land/bubbletea/v2"99 "github.com/charmbracelet/x/ansi"1010 11- "github.com/FelineStateMachine/012/internal/ui/lineedit"12- "github.com/FelineStateMachine/012/internal/ui/theme"11+ "src.rest/cat/012/internal/ui/lineedit"12+ "src.rest/cat/012/internal/ui/theme"1313 )1414 1515 // Edit mode: the selected cell's source in a multi-line editor@@ -3,8 +3,8 @@ package nbview
33 import (44 tea "charm.land/bubbletea/v2"55 6- "github.com/FelineStateMachine/012/internal/locale"7- "github.com/FelineStateMachine/012/internal/ui/theme"6+ "src.rest/cat/012/internal/locale"7+ "src.rest/cat/012/internal/ui/theme"88 )99 1010 // Full is an output shown full-screen, read-only: a table or record as@@ -3,9 +3,9 @@ package nbview
33 import (44 "strings"55 6- "github.com/FelineStateMachine/012/internal/notebook"7- "github.com/FelineStateMachine/012/internal/nuon"8- "github.com/FelineStateMachine/012/internal/ui/theme"6+ "src.rest/cat/012/internal/notebook"7+ "src.rest/cat/012/internal/nuon"8+ "src.rest/cat/012/internal/ui/theme"99 )1010 1111 // A table (a list of records) or a record is drawn by the UI as its own@@ -8,11 +8,11 @@ import (
88 tea "charm.land/bubbletea/v2"99 "github.com/charmbracelet/x/ansi"1010 11- "github.com/FelineStateMachine/012/internal/notebook"12- "github.com/FelineStateMachine/012/internal/nuon"13- "github.com/FelineStateMachine/012/internal/nushell"14- "github.com/FelineStateMachine/012/internal/ui/lineedit"15- "github.com/FelineStateMachine/012/internal/ui/theme"11+ "src.rest/cat/012/internal/notebook"12+ "src.rest/cat/012/internal/nuon"13+ "src.rest/cat/012/internal/nushell"14+ "src.rest/cat/012/internal/ui/lineedit"15+ "src.rest/cat/012/internal/ui/theme"1616 )1717 1818 // The word at the caret, on the context line: once the caret rests on@@ -3,8 +3,8 @@ package nbview
33 import (44 "strings"55 6- "github.com/FelineStateMachine/012/internal/notebook"7- "github.com/FelineStateMachine/012/internal/ui/lineedit"6+ "src.rest/cat/012/internal/notebook"7+ "src.rest/cat/012/internal/ui/lineedit"88 )99 1010 // Where things go across the body, as in Jupyter: a bar marking the@@ -15,8 +15,8 @@ import (
1515 1616 tea "charm.land/bubbletea/v2"1717 18- "github.com/FelineStateMachine/012/internal/nushell"19- "github.com/FelineStateMachine/012/internal/ui/theme"18+ "src.rest/cat/012/internal/nushell"19+ "src.rest/cat/012/internal/ui/theme"2020 )2121 2222 // testdata/nu holds what nu 0.116 said (the .json and .jsonl files)@@ -5,8 +5,8 @@ import (
55 "slices"66 "strings"77 8- "github.com/FelineStateMachine/012/internal/notebook"9- "github.com/FelineStateMachine/012/internal/nushell"8+ "src.rest/cat/012/internal/notebook"9+ "src.rest/cat/012/internal/nushell"1010 )1111 1212 // Hover implements Hoverer: for a command, its signature and help from@@ -6,9 +6,9 @@ import (
66 "strconv"77 "strings"88 9- "github.com/FelineStateMachine/012/internal/notebook"10- "github.com/FelineStateMachine/012/internal/nushell"11- "github.com/FelineStateMachine/012/internal/ui/theme"9+ "src.rest/cat/012/internal/notebook"10+ "src.rest/cat/012/internal/nushell"11+ "src.rest/cat/012/internal/ui/theme"1212 )1313 1414 // What nu is asked about a cell, and how its answers map back to the@@ -6,12 +6,12 @@ import (
66 77 "github.com/charmbracelet/x/ansi"88 9- "github.com/FelineStateMachine/012/internal/fileio"10- "github.com/FelineStateMachine/012/internal/locale"11- "github.com/FelineStateMachine/012/internal/notebook"12- "github.com/FelineStateMachine/012/internal/nuon"13- "github.com/FelineStateMachine/012/internal/sheet"14- "github.com/FelineStateMachine/012/internal/ui/theme"9+ "src.rest/cat/012/internal/fileio"10+ "src.rest/cat/012/internal/locale"11+ "src.rest/cat/012/internal/notebook"12+ "src.rest/cat/012/internal/nuon"13+ "src.rest/cat/012/internal/sheet"14+ "src.rest/cat/012/internal/ui/theme"1515 )1616 1717 // Outputs as they show under a code cell. What a cell printed, NUON, is@@ -3,8 +3,8 @@ package nbview
33 import (44 "github.com/charmbracelet/x/ansi"55 6- "github.com/FelineStateMachine/012/internal/locale"7- "github.com/FelineStateMachine/012/internal/ui/theme"6+ "src.rest/cat/012/internal/locale"7+ "src.rest/cat/012/internal/ui/theme"88 )99 1010 // An output's window: at most window of its rows (a grid's rows under@@ -6,8 +6,8 @@ import (
66 77 "github.com/charmbracelet/x/ansi"88 9- "github.com/FelineStateMachine/012/internal/ui/overlay"10- "github.com/FelineStateMachine/012/internal/ui/theme"9+ "src.rest/cat/012/internal/ui/overlay"10+ "src.rest/cat/012/internal/ui/theme"1111 )1212 1313 // What the notebook puts on the control panel: the context line's@@ -5,8 +5,8 @@ import (
55 "slices"66 "strings"77 8- "github.com/FelineStateMachine/012/internal/notebook"9- "github.com/FelineStateMachine/012/internal/ui/theme"8+ "src.rest/cat/012/internal/notebook"9+ "src.rest/cat/012/internal/ui/theme"1010 )1111 1212 // What the code editor asks of the language, behind small interfaces so@@ -16,9 +16,9 @@ import (
1616 1717 tea "charm.land/bubbletea/v2"1818 19- "github.com/FelineStateMachine/012/internal/locale"20- "github.com/FelineStateMachine/012/internal/notebook"21- "github.com/FelineStateMachine/012/internal/ui/theme"19+ "src.rest/cat/012/internal/locale"20+ "src.rest/cat/012/internal/notebook"21+ "src.rest/cat/012/internal/ui/theme"2222 )2323 2424 // Host is what the notebook needs of the UI.@@ -10,11 +10,11 @@ import (
1010 tea "charm.land/bubbletea/v2"1111 "github.com/charmbracelet/x/ansi"1212 13- "github.com/FelineStateMachine/012/internal/fileio"14- "github.com/FelineStateMachine/012/internal/locale"15- "github.com/FelineStateMachine/012/internal/notebook"16- "github.com/FelineStateMachine/012/internal/nuon"17- "github.com/FelineStateMachine/012/internal/ui/theme"13+ "src.rest/cat/012/internal/fileio"14+ "src.rest/cat/012/internal/locale"15+ "src.rest/cat/012/internal/notebook"16+ "src.rest/cat/012/internal/nuon"17+ "src.rest/cat/012/internal/ui/theme"1818 )1919 2020 // fakeHost is a notebook of cells and outputs; commands run are noted.@@ -7,11 +7,11 @@ import (
77 88 tea "charm.land/bubbletea/v2"99 10- "github.com/FelineStateMachine/012/internal/locale"11- "github.com/FelineStateMachine/012/internal/notebook"12- "github.com/FelineStateMachine/012/internal/sheet"13- "github.com/FelineStateMachine/012/internal/ui/nbview"14- "github.com/FelineStateMachine/012/internal/ui/theme"10+ "src.rest/cat/012/internal/locale"11+ "src.rest/cat/012/internal/notebook"12+ "src.rest/cat/012/internal/sheet"13+ "src.rest/cat/012/internal/ui/nbview"14+ "src.rest/cat/012/internal/ui/theme"1515 )1616 1717 // Notebooks: a notebook tab holds code cells (nushell pipelines) and@@ -9,9 +9,9 @@ import (
99 1010 tea "charm.land/bubbletea/v2"1111 12- "github.com/FelineStateMachine/012/internal/notebook"13- "github.com/FelineStateMachine/012/internal/nushell"14- "github.com/FelineStateMachine/012/internal/sheet"12+ "src.rest/cat/012/internal/notebook"13+ "src.rest/cat/012/internal/nushell"14+ "src.rest/cat/012/internal/sheet"1515 )1616 1717 // fakeNu answers pipelines from a table of outputs, failing those it@@ -8,9 +8,9 @@ import (
88 "charm.land/lipgloss/v2"99 "github.com/charmbracelet/x/ansi"1010 11- "github.com/FelineStateMachine/012/internal/sheet"12- "github.com/FelineStateMachine/012/internal/ui/overlay"13- "github.com/FelineStateMachine/012/internal/ui/theme"11+ "src.rest/cat/012/internal/sheet"12+ "src.rest/cat/012/internal/ui/overlay"13+ "src.rest/cat/012/internal/ui/theme"1414 )1515 1616 // Notes follow Sheets' Insert > Note (Shift+F2): a cell with a note shows@@ -12,13 +12,13 @@ import (
1212 "charm.land/lipgloss/v2"1313 "github.com/charmbracelet/x/ansi"1414 15- "github.com/FelineStateMachine/012/internal/numfmt"16- "github.com/FelineStateMachine/012/internal/sheet"17- "github.com/FelineStateMachine/012/internal/telemetry"18- "github.com/FelineStateMachine/012/internal/ui/overlay"19- "github.com/FelineStateMachine/012/internal/ui/suggest"20- "github.com/FelineStateMachine/012/internal/ui/tabstrip"21- "github.com/FelineStateMachine/012/internal/ui/theme"15+ "src.rest/cat/012/internal/numfmt"16+ "src.rest/cat/012/internal/sheet"17+ "src.rest/cat/012/internal/telemetry"18+ "src.rest/cat/012/internal/ui/overlay"19+ "src.rest/cat/012/internal/ui/suggest"20+ "src.rest/cat/012/internal/ui/tabstrip"21+ "src.rest/cat/012/internal/ui/theme"2222 )2323 2424 // The control panel is three lines: the menu bar with the mode indicator,@@ -16,9 +16,9 @@ import (
1616 "github.com/charmbracelet/x/ansi"1717 "github.com/sahilm/fuzzy"1818 19- "github.com/FelineStateMachine/012/internal/ui/lineedit"20- "github.com/FelineStateMachine/012/internal/ui/overlay"21- "github.com/FelineStateMachine/012/internal/ui/theme"19+ "src.rest/cat/012/internal/ui/lineedit"20+ "src.rest/cat/012/internal/ui/overlay"21+ "src.rest/cat/012/internal/ui/theme"2222 )2323 2424 // Host is what a picker needs of the UI.@@ -7,9 +7,9 @@ import (
77 tea "charm.land/bubbletea/v2"88 "github.com/charmbracelet/x/ansi"99 10- "github.com/FelineStateMachine/012/internal/ui/lineedit"11- "github.com/FelineStateMachine/012/internal/ui/overlay"12- "github.com/FelineStateMachine/012/internal/ui/theme"10+ "src.rest/cat/012/internal/ui/lineedit"11+ "src.rest/cat/012/internal/ui/overlay"12+ "src.rest/cat/012/internal/ui/theme"1313 )1414 1515 // fakeHost is a screen of its own with a record of what the picker did.@@ -6,9 +6,9 @@ import (
66 77 tea "charm.land/bubbletea/v2"88 9- "github.com/FelineStateMachine/012/internal/fileio"10- "github.com/FelineStateMachine/012/internal/sheet"11- "github.com/FelineStateMachine/012/internal/ui/transfer"9+ "src.rest/cat/012/internal/fileio"10+ "src.rest/cat/012/internal/sheet"11+ "src.rest/cat/012/internal/ui/transfer"1212 )1313 1414 // 012 as a stage in a pipeline: 012 - reads a table from standard input@@ -7,8 +7,8 @@ import (
77 88 tea "charm.land/bubbletea/v2"99 10- "github.com/FelineStateMachine/012/internal/fileio"11- "github.com/FelineStateMachine/012/internal/sheet"10+ "src.rest/cat/012/internal/fileio"11+ "src.rest/cat/012/internal/sheet"1212 )1313 1414 const filesNUON = "[[name, size]; [a, 1646b], [b, 2kb]]"@@ -4,8 +4,8 @@ import (
44 "strings"55 "testing"66 7- "github.com/FelineStateMachine/012/internal/sheet"8- "github.com/FelineStateMachine/012/internal/ui/filterpick"7+ "src.rest/cat/012/internal/sheet"8+ "src.rest/cat/012/internal/ui/filterpick"99 )1010 1111 // salesTable types a table of sales and leaves A1 active.@@ -7,10 +7,10 @@ import (
77 88 tea "charm.land/bubbletea/v2"99 10- "github.com/FelineStateMachine/012/internal/sheet"11- "github.com/FelineStateMachine/012/internal/ui/overlay"12- "github.com/FelineStateMachine/012/internal/ui/picker"13- "github.com/FelineStateMachine/012/internal/ui/sortbar"10+ "src.rest/cat/012/internal/sheet"11+ "src.rest/cat/012/internal/ui/overlay"12+ "src.rest/cat/012/internal/ui/picker"13+ "src.rest/cat/012/internal/ui/sortbar"1414 )1515 1616 // What the pivot editor's keys do to the pivot, and how its fields read.@@ -7,10 +7,10 @@ import (
77 "charm.land/lipgloss/v2"88 "github.com/charmbracelet/x/ansi"99 10- "github.com/FelineStateMachine/012/internal/sheet"11- "github.com/FelineStateMachine/012/internal/ui/overlay"12- "github.com/FelineStateMachine/012/internal/ui/picker"13- "github.com/FelineStateMachine/012/internal/ui/theme"10+ "src.rest/cat/012/internal/sheet"11+ "src.rest/cat/012/internal/ui/overlay"12+ "src.rest/cat/012/internal/ui/picker"13+ "src.rest/cat/012/internal/ui/theme"1414 )1515 1616 // pivotEditor is the pivot editor: a panel docked at the right of the@@ -10,13 +10,13 @@ import (
1010 1111 tea "charm.land/bubbletea/v2"1212 13- "github.com/FelineStateMachine/012/internal/config"14- "github.com/FelineStateMachine/012/internal/jev"15- "github.com/FelineStateMachine/012/internal/keyring"16- "github.com/FelineStateMachine/012/internal/locale"17- "github.com/FelineStateMachine/012/internal/sheet"18- "github.com/FelineStateMachine/012/internal/ui/theme"19- "github.com/FelineStateMachine/012/internal/ui/themepicker"13+ "src.rest/cat/012/internal/config"14+ "src.rest/cat/012/internal/jev"15+ "src.rest/cat/012/internal/keyring"16+ "src.rest/cat/012/internal/locale"17+ "src.rest/cat/012/internal/sheet"18+ "src.rest/cat/012/internal/ui/theme"19+ "src.rest/cat/012/internal/ui/themepicker"2020 )2121 2222 // Settings are what the app takes from outside the workbook: the config@@ -12,9 +12,9 @@ import (
1212 uv "github.com/charmbracelet/ultraviolet"1313 "github.com/charmbracelet/x/ansi"1414 15- "github.com/FelineStateMachine/012/internal/config"16- "github.com/FelineStateMachine/012/internal/jev"17- "github.com/FelineStateMachine/012/internal/keyring"15+ "src.rest/cat/012/internal/config"16+ "src.rest/cat/012/internal/jev"17+ "src.rest/cat/012/internal/keyring"1818 )1919 2020 // configured returns a model with settings from a config file in a@@ -7,9 +7,9 @@ import (
77 88 tea "charm.land/bubbletea/v2"99 10- "github.com/FelineStateMachine/012/internal/sheet"11- "github.com/FelineStateMachine/012/internal/ui/lineedit"12- "github.com/FelineStateMachine/012/internal/ui/theme"10+ "src.rest/cat/012/internal/sheet"11+ "src.rest/cat/012/internal/ui/lineedit"12+ "src.rest/cat/012/internal/ui/theme"1313 )1414 1515 // Prompts are questions on the context line, answered by typing (a file@@ -5,8 +5,8 @@ import (
55 66 tea "charm.land/bubbletea/v2"77 8- "github.com/FelineStateMachine/012/internal/sheet"9- "github.com/FelineStateMachine/012/internal/ui/picker"8+ "src.rest/cat/012/internal/sheet"9+ "src.rest/cat/012/internal/ui/picker"1010 )1111 1212 // Protected ranges and sheets follow Sheets' Data > Protect sheets and@@ -6,8 +6,8 @@ import (
66 77 tea "charm.land/bubbletea/v2"88 9- "github.com/FelineStateMachine/012/internal/sheet"10- "github.com/FelineStateMachine/012/internal/ui/choicebar"9+ "src.rest/cat/012/internal/sheet"10+ "src.rest/cat/012/internal/ui/choicebar"1111 )1212 1313 func TestProtectRangeWarns(t *testing.T) {@@ -18,9 +18,9 @@ import (
1818 1919 tea "charm.land/bubbletea/v2"2020 21- "github.com/FelineStateMachine/012/internal/fileio"22- "github.com/FelineStateMachine/012/internal/sheet"23- "github.com/FelineStateMachine/012/internal/ui/transfer"21+ "src.rest/cat/012/internal/fileio"22+ "src.rest/cat/012/internal/sheet"23+ "src.rest/cat/012/internal/ui/transfer"2424 )2525 2626 // Recovery files: when 012 serve stops, or a session idles out, with@@ -13,9 +13,9 @@ import (
1313 tea "charm.land/bubbletea/v2"1414 "github.com/charmbracelet/x/ansi"1515 16- "github.com/FelineStateMachine/012/internal/sheet"17- "github.com/FelineStateMachine/012/internal/ui/overlay"18- "github.com/FelineStateMachine/012/internal/ui/theme"16+ "src.rest/cat/012/internal/sheet"17+ "src.rest/cat/012/internal/ui/overlay"18+ "src.rest/cat/012/internal/ui/theme"1919 )2020 2121 // Host is what the panel needs of the UI.@@ -8,9 +8,9 @@ import (
88 tea "charm.land/bubbletea/v2"99 "github.com/charmbracelet/x/ansi"1010 11- "github.com/FelineStateMachine/012/internal/sheet"12- "github.com/FelineStateMachine/012/internal/ui/overlay"13- "github.com/FelineStateMachine/012/internal/ui/theme"11+ "src.rest/cat/012/internal/sheet"12+ "src.rest/cat/012/internal/ui/overlay"13+ "src.rest/cat/012/internal/ui/theme"1414 )1515 1616 // fakeHost holds suggestions and settles them as the model would.@@ -5,8 +5,8 @@ import (
55 66 tea "charm.land/bubbletea/v2"77 8- "github.com/FelineStateMachine/012/internal/macro"9- "github.com/FelineStateMachine/012/internal/sheet"8+ "src.rest/cat/012/internal/macro"9+ "src.rest/cat/012/internal/sheet"1010 )1111 1212 // Row heights, in lines: typed on the context line with a live preview,@@ -10,8 +10,8 @@ import (
1010 1111 "github.com/charmbracelet/x/ansi"1212 13- "github.com/FelineStateMachine/012/internal/locale"14- "github.com/FelineStateMachine/012/internal/sheet"13+ "src.rest/cat/012/internal/locale"14+ "src.rest/cat/012/internal/sheet"1515 )1616 1717 // Span is what one grid column shows in a row: blank columns, the text,@@ -7,10 +7,10 @@ import (
77 88 tea "charm.land/bubbletea/v2"99 10- "github.com/FelineStateMachine/012/internal/macro"11- "github.com/FelineStateMachine/012/internal/sheet"12- "github.com/FelineStateMachine/012/internal/ui/picker"13- "github.com/FelineStateMachine/012/internal/ui/rules"10+ "src.rest/cat/012/internal/macro"11+ "src.rest/cat/012/internal/sheet"12+ "src.rest/cat/012/internal/ui/picker"13+ "src.rest/cat/012/internal/ui/rules"1414 )1515 1616 // Rules follow Sheets: Format > Conditional formatting and Data > Data@@ -4,8 +4,8 @@ import (
44 "strconv"55 "strings"66 7- "github.com/FelineStateMachine/012/internal/sheet"8- "github.com/FelineStateMachine/012/internal/ui/theme"7+ "src.rest/cat/012/internal/sheet"8+ "src.rest/cat/012/internal/ui/theme"99 )1010 1111 // The data bar's and icon set's parts of the conditional format form.@@ -3,9 +3,9 @@ package rules
33 import (44 "strings"55 6- "github.com/FelineStateMachine/012/internal/locale"7- "github.com/FelineStateMachine/012/internal/sheet"8- "github.com/FelineStateMachine/012/internal/ui/theme"6+ "src.rest/cat/012/internal/locale"7+ "src.rest/cat/012/internal/sheet"8+ "src.rest/cat/012/internal/ui/theme"99 )1010 1111 // cfKind lists conditional formats.@@ -12,10 +12,10 @@ import (
1212 tea "charm.land/bubbletea/v2"1313 "github.com/charmbracelet/x/ansi"1414 15- "github.com/FelineStateMachine/012/internal/sheet"16- "github.com/FelineStateMachine/012/internal/ui/lineedit"17- "github.com/FelineStateMachine/012/internal/ui/overlay"18- "github.com/FelineStateMachine/012/internal/ui/theme"15+ "src.rest/cat/012/internal/sheet"16+ "src.rest/cat/012/internal/ui/lineedit"17+ "src.rest/cat/012/internal/ui/overlay"18+ "src.rest/cat/012/internal/ui/theme"1919 )2020 2121 // Host is what the rules panel needs of the UI.@@ -8,10 +8,10 @@ import (
88 tea "charm.land/bubbletea/v2"99 "github.com/charmbracelet/x/ansi"1010 11- "github.com/FelineStateMachine/012/internal/sheet"12- "github.com/FelineStateMachine/012/internal/ui/lineedit"13- "github.com/FelineStateMachine/012/internal/ui/overlay"14- "github.com/FelineStateMachine/012/internal/ui/theme"11+ "src.rest/cat/012/internal/sheet"12+ "src.rest/cat/012/internal/ui/lineedit"13+ "src.rest/cat/012/internal/ui/overlay"14+ "src.rest/cat/012/internal/ui/theme"1515 )1616 1717 // fakeHost is a sheet and an edit line, recording what the panel asks.@@ -6,9 +6,9 @@ import (
66 "charm.land/lipgloss/v2"77 "github.com/charmbracelet/x/ansi"88 9- "github.com/FelineStateMachine/012/internal/locale"10- "github.com/FelineStateMachine/012/internal/sheet"11- "github.com/FelineStateMachine/012/internal/ui/theme"9+ "src.rest/cat/012/internal/locale"10+ "src.rest/cat/012/internal/sheet"11+ "src.rest/cat/012/internal/ui/theme"1212 )1313 1414 // A form is a list of rows in the manner of lazygit's panels: Up and@@ -4,9 +4,9 @@ import (
44 "errors"55 "strings"66 7- "github.com/FelineStateMachine/012/internal/locale"8- "github.com/FelineStateMachine/012/internal/sheet"9- "github.com/FelineStateMachine/012/internal/ui/theme"7+ "src.rest/cat/012/internal/locale"8+ "src.rest/cat/012/internal/sheet"9+ "src.rest/cat/012/internal/ui/theme"1010 )1111 1212 var errRange = errors.New("Enter the range the rule applies to, e.g. B2:B100")@@ -4,10 +4,10 @@ import (
44 "strings"55 "testing"66 7- "github.com/FelineStateMachine/012/internal/sheet"8- "github.com/FelineStateMachine/012/internal/ui/picker"9- "github.com/FelineStateMachine/012/internal/ui/rowtext"10- "github.com/FelineStateMachine/012/internal/ui/rules"7+ "src.rest/cat/012/internal/sheet"8+ "src.rest/cat/012/internal/ui/picker"9+ "src.rest/cat/012/internal/ui/rowtext"10+ "src.rest/cat/012/internal/ui/rules"1111 )1212 1313 func mustValidate(t *testing.T, m *Model, line string) {@@ -8,8 +8,8 @@ import (
88 99 tea "charm.land/bubbletea/v2"1010 11- "github.com/FelineStateMachine/012/internal/confine"12- "github.com/FelineStateMachine/012/internal/ui/choicebar"11+ "src.rest/cat/012/internal/confine"12+ "src.rest/cat/012/internal/ui/choicebar"1313 )1414 1515 // Save as onto another file that exists asks first: Enter replaces it,@@ -10,11 +10,11 @@ import (
1010 1111 tea "charm.land/bubbletea/v2"1212 13- "github.com/FelineStateMachine/012/internal/confine"14- "github.com/FelineStateMachine/012/internal/fileio"15- "github.com/FelineStateMachine/012/internal/sheet"16- "github.com/FelineStateMachine/012/internal/ui/choicebar"17- "github.com/FelineStateMachine/012/internal/ui/transfer"13+ "src.rest/cat/012/internal/confine"14+ "src.rest/cat/012/internal/fileio"15+ "src.rest/cat/012/internal/sheet"16+ "src.rest/cat/012/internal/ui/choicebar"17+ "src.rest/cat/012/internal/ui/transfer"1818 )1919 2020 // writeSheet saves a one-cell sheet at path.@@ -7,9 +7,9 @@ import (
77 88 tea "charm.land/bubbletea/v2"99 10- "github.com/FelineStateMachine/012/internal/cowork"11- "github.com/FelineStateMachine/012/internal/room"12- "github.com/FelineStateMachine/012/internal/sheet"10+ "src.rest/cat/012/internal/cowork"11+ "src.rest/cat/012/internal/room"12+ "src.rest/cat/012/internal/sheet"1313 )1414 1515 // Sharing a workbook between the sessions of 012 serve: every session@@ -9,10 +9,10 @@ import (
99 tea "charm.land/bubbletea/v2"1010 "github.com/charmbracelet/x/ansi"1111 12- "github.com/FelineStateMachine/012/internal/config"13- "github.com/FelineStateMachine/012/internal/confine"14- "github.com/FelineStateMachine/012/internal/room"15- "github.com/FelineStateMachine/012/internal/sheet"12+ "src.rest/cat/012/internal/config"13+ "src.rest/cat/012/internal/confine"14+ "src.rest/cat/012/internal/room"15+ "src.rest/cat/012/internal/sheet"1616 )1717 1818 // seshion is a served session in a room, driven as its program would:@@ -5,9 +5,9 @@ import (
55 66 tea "charm.land/bubbletea/v2"77 8- "github.com/FelineStateMachine/012/internal/room"9- "github.com/FelineStateMachine/012/internal/sheet"10- "github.com/FelineStateMachine/012/internal/ui/picker"8+ "src.rest/cat/012/internal/room"9+ "src.rest/cat/012/internal/sheet"10+ "src.rest/cat/012/internal/ui/picker"1111 )1212 1313 // The commands of a shared workbook: who's here, and handing writing@@ -9,9 +9,9 @@ import (
99 "charm.land/lipgloss/v2"1010 "github.com/charmbracelet/x/ansi"1111 12- "github.com/FelineStateMachine/012/internal/room"13- "github.com/FelineStateMachine/012/internal/sheet"14- "github.com/FelineStateMachine/012/internal/ui/theme"12+ "src.rest/cat/012/internal/room"13+ "src.rest/cat/012/internal/sheet"14+ "src.rest/cat/012/internal/ui/theme"1515 )1616 1717 // Drawing who else is in a shared workbook, and what they changed: each@@ -12,8 +12,8 @@ import (
1212 tea "charm.land/bubbletea/v2"1313 "github.com/charmbracelet/x/ansi"1414 15- "github.com/FelineStateMachine/012/internal/room"16- "github.com/FelineStateMachine/012/internal/sheet"15+ "src.rest/cat/012/internal/room"16+ "src.rest/cat/012/internal/sheet"1717 )1818 1919 // watched is a program's model that notes when a frame first shows a@@ -12,8 +12,8 @@ import (
1212 tea "charm.land/bubbletea/v2"1313 "github.com/charmbracelet/x/ansi"1414 15- "github.com/FelineStateMachine/012/internal/ui/overlay"16- "github.com/FelineStateMachine/012/internal/ui/theme"15+ "src.rest/cat/012/internal/ui/overlay"16+ "src.rest/cat/012/internal/ui/theme"1717 )1818 1919 // Host is what the shortcuts view needs of the UI.@@ -8,8 +8,8 @@ import (
88 tea "charm.land/bubbletea/v2"99 "github.com/charmbracelet/x/ansi"1010 11- "github.com/FelineStateMachine/012/internal/ui/overlay"12- "github.com/FelineStateMachine/012/internal/ui/theme"11+ "src.rest/cat/012/internal/ui/overlay"12+ "src.rest/cat/012/internal/ui/theme"1313 )1414 1515 // fakeHost is a screen with forty rows of shortcuts in four groups.@@ -6,8 +6,8 @@ import (
66 77 tea "charm.land/bubbletea/v2"88 9- "github.com/FelineStateMachine/012/internal/sheet"10- "github.com/FelineStateMachine/012/internal/ui/sortbar"9+ "src.rest/cat/012/internal/sheet"10+ "src.rest/cat/012/internal/ui/sortbar"1111 )1212 1313 // Sorting follows Sheets' Data menu: sort the sheet or a range by the@@ -14,10 +14,10 @@ import (
1414 tea "charm.land/bubbletea/v2"1515 "github.com/charmbracelet/x/ansi"1616 17- "github.com/FelineStateMachine/012/internal/sheet"18- "github.com/FelineStateMachine/012/internal/ui/lineedit"19- "github.com/FelineStateMachine/012/internal/ui/overlay"20- "github.com/FelineStateMachine/012/internal/ui/theme"17+ "src.rest/cat/012/internal/sheet"18+ "src.rest/cat/012/internal/ui/lineedit"19+ "src.rest/cat/012/internal/ui/overlay"20+ "src.rest/cat/012/internal/ui/theme"2121 )2222 2323 // Host is what the sort bar needs of the UI.@@ -7,9 +7,9 @@ import (
77 tea "charm.land/bubbletea/v2"88 "github.com/charmbracelet/x/ansi"99 10- "github.com/FelineStateMachine/012/internal/sheet"11- "github.com/FelineStateMachine/012/internal/ui/overlay"12- "github.com/FelineStateMachine/012/internal/ui/theme"10+ "src.rest/cat/012/internal/sheet"11+ "src.rest/cat/012/internal/ui/overlay"12+ "src.rest/cat/012/internal/ui/theme"1313 )1414 1515 // fakeHost is a sheet with a header row, recording the sort asked for.@@ -7,11 +7,11 @@ import (
77 88 tea "charm.land/bubbletea/v2"99 10- "github.com/FelineStateMachine/012/internal/fileio"11- "github.com/FelineStateMachine/012/internal/live"12- "github.com/FelineStateMachine/012/internal/paged"13- "github.com/FelineStateMachine/012/internal/sheet"14- "github.com/FelineStateMachine/012/internal/ui/srcview"10+ "src.rest/cat/012/internal/fileio"11+ "src.rest/cat/012/internal/live"12+ "src.rest/cat/012/internal/paged"13+ "src.rest/cat/012/internal/sheet"14+ "src.rest/cat/012/internal/ui/srcview"1515 )1616 1717 // Linked sources (Data > Linked file > Link a source): a Parquet file@@ -8,8 +8,8 @@ import (
88 99 "github.com/parquet-go/parquet-go"1010 11- "github.com/FelineStateMachine/012/internal/room"12- "github.com/FelineStateMachine/012/internal/sheet"11+ "src.rest/cat/012/internal/room"12+ "src.rest/cat/012/internal/sheet"1313 )1414 1515 // srcRow is a row of the Parquet files the tests link.@@ -9,8 +9,8 @@ import (
99 "testing"1010 "time"1111 12- "github.com/FelineStateMachine/012/internal/sheet"13- "github.com/FelineStateMachine/012/internal/telemetry"12+ "src.rest/cat/012/internal/sheet"13+ "src.rest/cat/012/internal/telemetry"1414 )1515 1616 // logSpans turns telemetry on into a JSON log with the engine's hooks@@ -8,8 +8,8 @@ import (
88 99 tea "charm.land/bubbletea/v2"1010 11- "github.com/FelineStateMachine/012/internal/sheet"12- "github.com/FelineStateMachine/012/internal/stress"11+ "src.rest/cat/012/internal/sheet"12+ "src.rest/cat/012/internal/stress"1313 )1414 1515 // The speed gate (make speed, part of make check): frames and@@ -10,10 +10,10 @@ import (
1010 1111 tea "charm.land/bubbletea/v2"1212 13- "github.com/FelineStateMachine/012/internal/fileio"14- "github.com/FelineStateMachine/012/internal/macro"15- "github.com/FelineStateMachine/012/internal/sheet"16- "github.com/FelineStateMachine/012/internal/ui/picker"13+ "src.rest/cat/012/internal/fileio"14+ "src.rest/cat/012/internal/macro"15+ "src.rest/cat/012/internal/sheet"16+ "src.rest/cat/012/internal/ui/picker"1717 )1818 1919 // Commands on linked sources: Data > Linked file > Link a source makes@@ -8,11 +8,11 @@ import (
88 tea "charm.land/bubbletea/v2"99 "github.com/charmbracelet/x/ansi"1010 11- "github.com/FelineStateMachine/012/internal/locale"12- "github.com/FelineStateMachine/012/internal/sheet"13- "github.com/FelineStateMachine/012/internal/ui/srcview"14- "github.com/FelineStateMachine/012/internal/ui/theme"15- "github.com/FelineStateMachine/012/internal/ui/transfer"11+ "src.rest/cat/012/internal/locale"12+ "src.rest/cat/012/internal/sheet"13+ "src.rest/cat/012/internal/ui/srcview"14+ "src.rest/cat/012/internal/ui/theme"15+ "src.rest/cat/012/internal/ui/transfer"1616 )1717 1818 // A linked source's tab on the screen: the menu bar with SOURCE as the@@ -5,8 +5,8 @@ import (
55 "path/filepath"66 "sync"77 8- "github.com/FelineStateMachine/012/internal/sheet"9- "github.com/FelineStateMachine/012/internal/stress"8+ "src.rest/cat/012/internal/sheet"9+ "src.rest/cat/012/internal/stress"1010 )1111 1212 // Linked sources for the speed gate (speed_test.go) and the stress@@ -6,8 +6,8 @@ import (
66 77 "github.com/charmbracelet/x/ansi"88 9- "github.com/FelineStateMachine/012/internal/sheet"10- "github.com/FelineStateMachine/012/internal/ui/theme"9+ "src.rest/cat/012/internal/sheet"10+ "src.rest/cat/012/internal/ui/theme"1111 )1212 1313 // Draw draws the view's lines: the column letters, the header row of@@ -9,9 +9,9 @@ package srcview
99 import (1010 "strconv"1111 12- "github.com/FelineStateMachine/012/internal/locale"13- "github.com/FelineStateMachine/012/internal/sheet"14- "github.com/FelineStateMachine/012/internal/ui/theme"12+ "src.rest/cat/012/internal/locale"13+ "src.rest/cat/012/internal/sheet"14+ "src.rest/cat/012/internal/ui/theme"1515 )1616 1717 // Column is one of the source's columns.@@ -8,9 +8,9 @@ import (
88 tea "charm.land/bubbletea/v2"99 "github.com/charmbracelet/x/ansi"1010 11- "github.com/FelineStateMachine/012/internal/locale"12- "github.com/FelineStateMachine/012/internal/sheet"13- "github.com/FelineStateMachine/012/internal/ui/theme"11+ "src.rest/cat/012/internal/locale"12+ "src.rest/cat/012/internal/sheet"13+ "src.rest/cat/012/internal/ui/theme"1414 )1515 1616 // fakeHost is a source of n rows, row i holding i and "r<i>", whose@@ -19,10 +19,10 @@ import (
1919 tea "charm.land/bubbletea/v2"2020 typesafe "github.com/FelineStateMachine/typesafe-go"2121 22- "github.com/FelineStateMachine/012/internal/jev"23- "github.com/FelineStateMachine/012/internal/sheet"24- "github.com/FelineStateMachine/012/internal/stress"25- "github.com/FelineStateMachine/012/internal/telemetry"22+ "src.rest/cat/012/internal/jev"23+ "src.rest/cat/012/internal/sheet"24+ "src.rest/cat/012/internal/stress"25+ "src.rest/cat/012/internal/telemetry"2626 )2727 2828 var termSizes = []struct{ w, h int }{{80, 24}, {200, 60}, {400, 120}}@@ -16,11 +16,11 @@ import (
1616 tea "charm.land/bubbletea/v2"1717 "github.com/charmbracelet/x/ansi"1818 19- "github.com/FelineStateMachine/012/internal/sheet"20- "github.com/FelineStateMachine/012/internal/ui/formula"21- "github.com/FelineStateMachine/012/internal/ui/lineedit"22- "github.com/FelineStateMachine/012/internal/ui/overlay"23- "github.com/FelineStateMachine/012/internal/ui/theme"19+ "src.rest/cat/012/internal/sheet"20+ "src.rest/cat/012/internal/ui/formula"21+ "src.rest/cat/012/internal/ui/lineedit"22+ "src.rest/cat/012/internal/ui/overlay"23+ "src.rest/cat/012/internal/ui/theme"2424 )2525 2626 // Host is what the suggestions need of the UI.@@ -7,10 +7,10 @@ import (
77 tea "charm.land/bubbletea/v2"88 "github.com/charmbracelet/x/ansi"99 10- "github.com/FelineStateMachine/012/internal/sheet"11- "github.com/FelineStateMachine/012/internal/ui/lineedit"12- "github.com/FelineStateMachine/012/internal/ui/overlay"13- "github.com/FelineStateMachine/012/internal/ui/theme"10+ "src.rest/cat/012/internal/sheet"11+ "src.rest/cat/012/internal/ui/lineedit"12+ "src.rest/cat/012/internal/ui/overlay"13+ "src.rest/cat/012/internal/ui/theme"1414 )1515 1616 // fakeHost is an entry being typed on Sheet1 of a book that also has@@ -5,9 +5,9 @@ import (
55 66 "github.com/charmbracelet/x/ansi"77 8- "github.com/FelineStateMachine/012/internal/sheet"9- "github.com/FelineStateMachine/012/internal/ui/formula"10- "github.com/FelineStateMachine/012/internal/ui/theme"8+ "src.rest/cat/012/internal/sheet"9+ "src.rest/cat/012/internal/ui/formula"10+ "src.rest/cat/012/internal/ui/theme"1111 )1212 1313 // Tables in formula suggestions: typing =Sa offers the table Sales with@@ -6,9 +6,9 @@ import (
66 77 tea "charm.land/bubbletea/v2"88 9- "github.com/FelineStateMachine/012/internal/sheet"10- "github.com/FelineStateMachine/012/internal/ui/picker"11- "github.com/FelineStateMachine/012/internal/ui/theme"9+ "src.rest/cat/012/internal/sheet"10+ "src.rest/cat/012/internal/ui/picker"11+ "src.rest/cat/012/internal/ui/theme"1212 )1313 1414 // Tables, as Sheets' Format > Convert to table: a range whose first row@@ -3,9 +3,9 @@ package ui
33 import (44 tea "charm.land/bubbletea/v2"55 6- "github.com/FelineStateMachine/012/internal/sheet"7- "github.com/FelineStateMachine/012/internal/ui/picker"8- "github.com/FelineStateMachine/012/internal/ui/tabstrip"6+ "src.rest/cat/012/internal/sheet"7+ "src.rest/cat/012/internal/ui/picker"8+ "src.rest/cat/012/internal/ui/tabstrip"99 )1010 1111 // Sheets work as in Google Sheets: Ctrl+PgDn and Ctrl+PgUp (or Alt+Right@@ -7,8 +7,8 @@ import (
77 tea "charm.land/bubbletea/v2"88 "github.com/charmbracelet/x/ansi"99 10- "github.com/FelineStateMachine/012/internal/sheet"11- "github.com/FelineStateMachine/012/internal/ui/tabstrip"10+ "src.rest/cat/012/internal/sheet"11+ "src.rest/cat/012/internal/ui/tabstrip"1212 )1313 1414 // status is the status line, where the tabs are.@@ -6,9 +6,9 @@ import (
66 77 tea "charm.land/bubbletea/v2"88 9- "github.com/FelineStateMachine/012/internal/macro"10- "github.com/FelineStateMachine/012/internal/sheet"11- "github.com/FelineStateMachine/012/internal/ui/tabstrip"9+ "src.rest/cat/012/internal/macro"10+ "src.rest/cat/012/internal/sheet"11+ "src.rest/cat/012/internal/ui/tabstrip"1212 )1313 1414 // The sheet tabs (package tabstrip) as the model shows them and what@@ -12,8 +12,8 @@ import (
1212 "charm.land/lipgloss/v2"1313 "github.com/charmbracelet/x/ansi"1414 15- "github.com/FelineStateMachine/012/internal/sheet"16- "github.com/FelineStateMachine/012/internal/ui/theme"15+ "src.rest/cat/012/internal/sheet"16+ "src.rest/cat/012/internal/ui/theme"1717 )1818 1919 // Strip is the sheet tabs' state: where each sheet was left, and how far@@ -7,8 +7,8 @@ import (
77 88 "github.com/charmbracelet/x/ansi"99 10- "github.com/FelineStateMachine/012/internal/sheet"11- "github.com/FelineStateMachine/012/internal/ui/theme"10+ "src.rest/cat/012/internal/sheet"11+ "src.rest/cat/012/internal/ui/theme"1212 )1313 1414 // book returns a workbook of n sheets named Sheet1, Sheet2, ...@@ -8,8 +8,8 @@ import (
88 "charm.land/lipgloss/v2"99 "github.com/charmbracelet/x/ansi"1010 11- "github.com/FelineStateMachine/012/internal/chart"12- "github.com/FelineStateMachine/012/internal/sheet"11+ "src.rest/cat/012/internal/chart"12+ "src.rest/cat/012/internal/sheet"1313 )1414 1515 // Theme holds every style the UI draws with. Views must use these roles@@ -10,9 +10,9 @@ import (
1010 1111 tea "charm.land/bubbletea/v2"1212 13- "github.com/FelineStateMachine/012/internal/ui/overlay"14- "github.com/FelineStateMachine/012/internal/ui/picker"15- "github.com/FelineStateMachine/012/internal/ui/theme"13+ "src.rest/cat/012/internal/ui/overlay"14+ "src.rest/cat/012/internal/ui/picker"15+ "src.rest/cat/012/internal/ui/theme"1616 )1717 1818 // Host is what the theme picker needs of the UI: a picker's host, and@@ -7,9 +7,9 @@ import (
77 88 tea "charm.land/bubbletea/v2"99 10- "github.com/FelineStateMachine/012/internal/ui/lineedit"11- "github.com/FelineStateMachine/012/internal/ui/overlay"12- "github.com/FelineStateMachine/012/internal/ui/theme"10+ "src.rest/cat/012/internal/ui/lineedit"11+ "src.rest/cat/012/internal/ui/overlay"12+ "src.rest/cat/012/internal/ui/theme"1313 )1414 1515 // fakeHost records what the picker drew and kept.@@ -10,8 +10,8 @@ import (
1010 "charm.land/lipgloss/v2"1111 "github.com/charmbracelet/x/ansi"1212 13- "github.com/FelineStateMachine/012/internal/sheet"14- "github.com/FelineStateMachine/012/internal/ui/theme"13+ "src.rest/cat/012/internal/sheet"14+ "src.rest/cat/012/internal/ui/theme"1515 )1616 1717 // Stepping through precedents and dependents, after Excel's Ctrl+[ and@@ -6,8 +6,8 @@ import (
66 "fmt"77 "testing"88 9- "github.com/FelineStateMachine/012/internal/sheet"10- "github.com/FelineStateMachine/012/internal/stress"9+ "src.rest/cat/012/internal/sheet"10+ "src.rest/cat/012/internal/stress"1111 )1212 1313 // BenchmarkTrace is an arrow key through to its frame on sheets of a@@ -9,8 +9,8 @@ import (
99 "charm.land/lipgloss/v2"1010 "github.com/charmbracelet/x/ansi"1111 12- "github.com/FelineStateMachine/012/internal/sheet"13- "github.com/FelineStateMachine/012/internal/ui/picker"12+ "src.rest/cat/012/internal/sheet"13+ "src.rest/cat/012/internal/ui/picker"1414 )1515 1616 // Tracing that stays on (Data > Formula tracing > Show precedents and@@ -11,10 +11,10 @@ import (
1111 1212 tea "charm.land/bubbletea/v2"1313 14- "github.com/FelineStateMachine/012/internal/confine"15- "github.com/FelineStateMachine/012/internal/fileio"16- "github.com/FelineStateMachine/012/internal/ui/picker"17- "github.com/FelineStateMachine/012/internal/ui/transfer"14+ "src.rest/cat/012/internal/confine"15+ "src.rest/cat/012/internal/fileio"16+ "src.rest/cat/012/internal/ui/picker"17+ "src.rest/cat/012/internal/ui/transfer"1818 )1919 2020 // Data comes in through File > Import (a picker of the files around),@@ -17,9 +17,9 @@ import (
1717 tea "charm.land/bubbletea/v2"1818 "github.com/charmbracelet/x/ansi"1919 20- "github.com/FelineStateMachine/012/internal/fileio"21- "github.com/FelineStateMachine/012/internal/telemetry"22- "github.com/FelineStateMachine/012/internal/ui/theme"20+ "src.rest/cat/012/internal/fileio"21+ "src.rest/cat/012/internal/telemetry"22+ "src.rest/cat/012/internal/ui/theme"2323 )2424 2525 // Place is where an import goes.@@ -9,9 +9,9 @@ import (
99 tea "charm.land/bubbletea/v2"1010 "github.com/charmbracelet/x/ansi"1111 12- "github.com/FelineStateMachine/012/internal/fileio"13- "github.com/FelineStateMachine/012/internal/telemetry"14- "github.com/FelineStateMachine/012/internal/ui/theme"12+ "src.rest/cat/012/internal/fileio"13+ "src.rest/cat/012/internal/telemetry"14+ "src.rest/cat/012/internal/ui/theme"1515 )1616 1717 func TestProgressDisplay(t *testing.T) {@@ -11,10 +11,10 @@ import (
1111 1212 tea "charm.land/bubbletea/v2"1313 14- "github.com/FelineStateMachine/012/internal/fileio"15- "github.com/FelineStateMachine/012/internal/sheet"16- "github.com/FelineStateMachine/012/internal/ui/choicebar"17- "github.com/FelineStateMachine/012/internal/ui/transfer"14+ "src.rest/cat/012/internal/fileio"15+ "src.rest/cat/012/internal/sheet"16+ "src.rest/cat/012/internal/ui/choicebar"17+ "src.rest/cat/012/internal/ui/transfer"1818 )1919 2020 func writeFile(t *testing.T, name, text string) {@@ -4,8 +4,8 @@ import (
44 "strings"55 "testing"66 7- "github.com/FelineStateMachine/012/internal/sheet"8- "github.com/FelineStateMachine/012/internal/ui/choicebar"7+ "src.rest/cat/012/internal/sheet"8+ "src.rest/cat/012/internal/ui/choicebar"99 )1010 1111 // A change whose undo step would pass the ceiling asks first: Esc backs@@ -8,9 +8,9 @@ import (
88 "charm.land/lipgloss/v2"99 "github.com/charmbracelet/x/ansi"1010 11- "github.com/FelineStateMachine/012/internal/sheet"12- "github.com/FelineStateMachine/012/internal/ui/rowtext"13- "github.com/FelineStateMachine/012/internal/ui/theme"11+ "src.rest/cat/012/internal/sheet"12+ "src.rest/cat/012/internal/ui/rowtext"13+ "src.rest/cat/012/internal/ui/theme"1414 )1515 1616 // active is the cell drawn as the cell pointer: the pointer while@@ -6,9 +6,9 @@ import (
66 "strings"77 "testing"88 9- "github.com/FelineStateMachine/012/internal/locale"10- "github.com/FelineStateMachine/012/internal/numfmt"11- "github.com/FelineStateMachine/012/internal/value"9+ "src.rest/cat/012/internal/locale"10+ "src.rest/cat/012/internal/numfmt"11+ "src.rest/cat/012/internal/value"1212 )1313 1414 func loc(t *testing.T, tag string) *locale.Locale {@@ -1,9 +1,9 @@
1-module github.com/FelineStateMachine/012/oracle1+module src.rest/cat/012/oracle22 33 go 1.27.144 55 require (6- github.com/FelineStateMachine/012 v0.0.0-00010101000000-0000000000006+ src.rest/cat/012 v0.0.0-00010101000000-00000000000077 github.com/xuri/excelize/v2 v2.11.088 )99 @@ -42,4 +42,4 @@ require (
4242 modernc.org/sqlite v1.59.0 // indirect4343 )4444 45-replace github.com/FelineStateMachine/012 => ../45+replace src.rest/cat/012 => ../@@ -26,7 +26,7 @@ function Install-012 {
2626 switch ($arch) {2727 'AMD64' { $arch = 'amd64' }2828 'ARM64' { $arch = 'arm64' }29- default { throw "012 install: no release for $arch; build from source: go install github.com/FelineStateMachine/012/cmd/012@latest" }29+ default { throw "012 install: no release for $arch; build from source: go install src.rest/cat/012/cmd/012@latest" }3030 }3131 3232 $tmp = Join-Path ([IO.Path]::GetTempPath()) ("012-install-" + [Guid]::NewGuid())@@ -63,14 +63,14 @@ Linux) os=linux ;;
6363 MINGW* | MSYS* | CYGWIN* | Windows*)6464 die "on Windows, run in PowerShell: irm $base/install.ps1 | iex"6565 ;;66-*) die "no release for $os; build from source: go install github.com/FelineStateMachine/012/cmd/012@latest" ;;66+*) die "no release for $os; build from source: go install src.rest/cat/012/cmd/012@latest" ;;6767 esac6868 6969 arch=$(uname -m)7070 case $arch in7171 x86_64 | amd64) arch=amd64 ;;7272 arm64 | aarch64) arch=arm64 ;;73-*) die "no release for $arch; build from source: go install github.com/FelineStateMachine/012/cmd/012@latest" ;;73+*) die "no release for $arch; build from source: go install src.rest/cat/012/cmd/012@latest" ;;7474 esac7575 # A shell under Rosetta reports x86_64 on an Apple silicon Mac.7676 if [ "$os/$arch" = darwin/amd64 ] && [ "$(sysctl -n hw.optional.arm64 2>/dev/null || echo 0)" = 1 ]; then