websites

package
v0.32.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 5, 2026 License: MIT Imports: 13 Imported by: 0

Documentation

Overview

Package websites is the CLI's client for memcode.ai's Websites feature — AI-built static sites. list/pull/push/publish map onto the www /api/website endpoints, authenticated with the same bearer token the login flow mints (MEMCODE_API_TOKEN). Like the artifacts client, this talks to the WEB APP, not the inference gateway.

The local workflow is deliberately git-native: `pull` clones the site's repo bundle into ./<slug> (which carries MEMCODE.md + .memcode/, so plain `memcode` in that directory IS website mode), `push` bundles the repo back up and queues a server-side rebuild of the draft preview.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RenderList

func RenderList(sites []Site) string

RenderList formats sites as an aligned table — shared by the cobra command and the TUI /websites slash handler.

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client is an authenticated memcode.ai websites client.

func New

func New() (*Client, error)

New builds a client from the environment. Errors when the user has no token — the caller surfaces "run `memcode login`".

func (*Client) List

func (c *Client) List(ctx context.Context) ([]Site, error)

List returns the org's sites.

func (*Client) Publish

func (c *Client) Publish(ctx context.Context, siteID string) (string, error)

Publish promotes the site's draft to its live URL. Returns the live URL when the server reports one.

func (*Client) Pull

func (c *Client) Pull(ctx context.Context, slug, destDir string) (Site, error)

Pull clones the site's repo bundle into destDir (which must not exist) and writes the .memcode/website.json marker.

func (*Client) Push

func (c *Client) Push(ctx context.Context, dir string) (Site, error)

Push bundles the repo at dir and uploads it; the server rebuilds the draft preview from the pushed source.

func (*Client) Resolve

func (c *Client) Resolve(ctx context.Context, slug string) (Site, error)

Resolve finds a site by slug (exact match).

func (*Client) Unpublish

func (c *Client) Unpublish(ctx context.Context, siteID string) error

Unpublish takes the site offline.

type Meta

type Meta struct {
	SiteID string `json:"site_id"`
	Slug   string `json:"slug"`
}

Meta is the .memcode/website.json marker written at pull time.

func ReadMeta

func ReadMeta(dir string) (Meta, error)

ReadMeta loads the .memcode/website.json marker from a pulled repo.

type Site

type Site struct {
	ID      string `json:"id"`
	Name    string `json:"name"`
	Slug    string `json:"slug"`
	Status  string `json:"status"`
	LiveURL string `json:"url,omitempty"` // www list route emits `url` (siteUrl(slug))
}

Site is one website, as the www API reports it.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL