aigma 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/AGENTS.md ADDED
@@ -0,0 +1,168 @@
1
+ # aigma — Agent Integration Guide
2
+
3
+ This file is for AI agents using the `aigma` CLI. If you are an agent and just installed `aigma`, read this end-to-end before issuing other commands.
4
+
5
+ Run `aigma agent-help` at any time to print this document.
6
+
7
+ ## What `aigma` does
8
+
9
+ `aigma` lets you create HTML "nodes" on a user's Aigma canvas from the command line. Each call to `aigma create-node`:
10
+
11
+ 1. Generates a self-contained HTML fragment from your prompt.
12
+ 2. Publishes it to a public URL: `https://aigma.co/p/{slug}`.
13
+ 3. Drops a draft node onto the user's canvas. The user sees it within ~5s of opening that canvas in the web app.
14
+
15
+ A user can have **multiple canvases** (think of them as separate projects). You should usually target a specific canvas; otherwise the draft lands on the user's most-recently-edited canvas.
16
+
17
+ ## Authentication
18
+
19
+ `aigma login` is interactive — it opens a browser. **You cannot run `aigma login` autonomously.** If `aigma create-node` exits with code `3` ("Not authenticated"), report this back to the user and ask them to run `aigma login` themselves.
20
+
21
+ Once the user has logged in, credentials live at `~/.aigma/credentials.json` and the CLI handles refresh transparently.
22
+
23
+ ## Recommended workflow
24
+
25
+ ```
26
+ 1. aigma list-canvases --json
27
+ 2. Choose / create a canvas (see below)
28
+ 3. aigma create-node --prompt "..." --canvas <id> --json
29
+ ```
30
+
31
+ ### Step 1 — list canvases
32
+
33
+ ```bash
34
+ aigma list-canvases --json
35
+ ```
36
+
37
+ Returns:
38
+
39
+ ```json
40
+ {
41
+ "ok": true,
42
+ "canvases": [
43
+ {
44
+ "id": "uuid",
45
+ "name": "SaaS Landing",
46
+ "created_at": "2026-04-01T...",
47
+ "updated_at": "2026-05-08T...",
48
+ "node_count": 12,
49
+ "frames": [
50
+ { "id": "uuid", "name": "Hero section", "type": "webframe" },
51
+ { "id": "uuid", "name": "Pricing table", "type": "webframe" }
52
+ ]
53
+ }
54
+ ]
55
+ }
56
+ ```
57
+
58
+ `name` is user-chosen. `frames[]` lists the top-level frames already on that canvas with their AI-generated names — use these to judge what each canvas is about.
59
+
60
+ ### Step 2 — pick or create a canvas
61
+
62
+ Decision rule:
63
+
64
+ - If the user's task clearly refers to an existing project and one canvas's `name` or `frames[].name` matches, use that canvas's `id`.
65
+ - If nothing fits, or the user is starting something new, create a canvas:
66
+
67
+ ```bash
68
+ aigma create-canvas --name "Landing v2" --json
69
+ ```
70
+
71
+ Response:
72
+
73
+ ```json
74
+ {
75
+ "ok": true,
76
+ "canvas": { "id": "uuid", "name": "Landing v2", ... }
77
+ }
78
+ ```
79
+
80
+ Use the returned `id` for the next step.
81
+
82
+ ### Step 3 — create the node
83
+
84
+ ```bash
85
+ aigma create-node \
86
+ --prompt "Hero section for an AI photo editor with two CTAs and product screenshot" \
87
+ --canvas <uuid> \
88
+ --json
89
+ ```
90
+
91
+ Response:
92
+
93
+ ```json
94
+ {
95
+ "ok": true,
96
+ "node_id": "uuid",
97
+ "draft_id": "uuid",
98
+ "html": "<section>...</section>",
99
+ "slug": "abc1234",
100
+ "public_url": "https://aigma.co/p/abc1234",
101
+ "canvas_url": "https://aigma.co/nodes?draft=uuid",
102
+ "canvas": { "id": "uuid", "name": "Landing v2" }
103
+ }
104
+ ```
105
+
106
+ The user can immediately:
107
+ - Visit `public_url` to see the rendered page.
108
+ - Open the canvas (`canvas_url` deep-links to it) and the WebFrame appears within ~5s.
109
+
110
+ ## --canvas argument
111
+
112
+ You can pass either:
113
+ - A UUID: `--canvas 0f6e2b1a-...`
114
+ - An exact (case-insensitive) name: `--canvas "SaaS Landing"`
115
+
116
+ If a name matches multiple canvases, the server returns HTTP 400 with a `matches` array — re-issue the call with one of the listed UUIDs.
117
+
118
+ If `--canvas` is omitted entirely, the server defaults to the user's most-recently-updated canvas. Prefer being explicit.
119
+
120
+ ## Output discipline
121
+
122
+ | Stream | Content |
123
+ |---|---|
124
+ | stdout | JSON only when `--json` is passed. Pipe-safe (`aigma … --json \| jq`). |
125
+ | stderr | Human-readable progress and errors. |
126
+
127
+ Always use `--json` when scripting.
128
+
129
+ ## Exit codes
130
+
131
+ | Code | Meaning | Recovery |
132
+ |---|---|---|
133
+ | 0 | Success | continue |
134
+ | 1 | Generic failure | inspect stderr / `error` field in JSON |
135
+ | 2 | Validation error (missing/bad args) | fix args |
136
+ | 3 | Auth required | tell the user to run `aigma login` |
137
+
138
+ ## Iteration
139
+
140
+ You can call `create-node` repeatedly — every call creates a new node, so variations sit side-by-side on the canvas. To replace a node you don't want, the user can delete it manually in the web app (no CLI delete command in v0.2).
141
+
142
+ ## Constraints worth knowing
143
+
144
+ - Prompt is capped at 4000 characters.
145
+ - The HTML fragment is rendered inside a 1280×800 frame on the canvas. Don't include `<html>`, `<head>`, or `<body>` wrappers — the model is instructed to avoid them but you can mention "single self-contained block" in your prompt for safety.
146
+ - No `<script>` tags will be generated.
147
+ - Token usage is metered against the user's Aigma plan. A 429 means they hit their limit.
148
+
149
+ ## Configuration
150
+
151
+ Override defaults via env (rarely needed):
152
+
153
+ ```bash
154
+ AIGMA_SUPABASE_URL=...
155
+ AIGMA_SUPABASE_ANON_KEY=...
156
+ AIGMA_WEB_BASE=...
157
+ ```
158
+
159
+ ## Quickref
160
+
161
+ ```bash
162
+ aigma login # interactive — user only
163
+ aigma list-canvases --json
164
+ aigma create-canvas --name "Project" --json
165
+ aigma create-node --prompt "..." --canvas <id> --json
166
+ aigma create-node --prompt "..." --canvas <id> --output out.html
167
+ aigma agent-help # print this guide
168
+ ```
package/README.md CHANGED
@@ -14,9 +14,18 @@ npm install -g aigma
14
14
  # Sign in via your browser (Google or Apple)
15
15
  aigma login
16
16
 
17
- # Generate a node from a prompt
17
+ # List canvases
18
+ aigma list-canvases
19
+
20
+ # Create a canvas
21
+ aigma create-canvas --name "My Project"
22
+
23
+ # Generate a node from a prompt (lands on most-recently-edited canvas)
18
24
  aigma create-node --prompt "Hero section for an AI photo editor"
19
25
 
26
+ # Or target a specific canvas (by UUID or exact name)
27
+ aigma create-node --prompt "Pricing section" --canvas "My Project"
28
+
20
29
  # Save the generated HTML to a file
21
30
  aigma create-node --prompt "Pricing section" --output pricing.html
22
31
 
@@ -24,6 +33,10 @@ aigma create-node --prompt "Pricing section" --output pricing.html
24
33
  aigma create-node --prompt "Footer with links" --json
25
34
  ```
26
35
 
36
+ ## For AI agents
37
+
38
+ If you're an AI agent integrating with `aigma`, run `aigma agent-help` to print the full integration guide (also visible at [AGENTS.md](./AGENTS.md)).
39
+
27
40
  Each `create-node` call:
28
41
 
29
42
  1. Generates a self-contained HTML fragment with Gemini.
@@ -0,0 +1,26 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { fileURLToPath } from 'node:url';
3
+ import { dirname, join } from 'node:path';
4
+ export async function runAgentHelp() {
5
+ const here = dirname(fileURLToPath(import.meta.url));
6
+ // dist/commands/agent-help.js → ../../AGENTS.md (npm package root)
7
+ const candidates = [
8
+ join(here, '..', '..', 'AGENTS.md'),
9
+ join(here, '..', '..', '..', 'AGENTS.md'),
10
+ ];
11
+ for (const p of candidates) {
12
+ try {
13
+ const md = await readFile(p, 'utf8');
14
+ process.stdout.write(md);
15
+ if (!md.endsWith('\n'))
16
+ process.stdout.write('\n');
17
+ return;
18
+ }
19
+ catch {
20
+ /* try next */
21
+ }
22
+ }
23
+ process.stderr.write('AGENTS.md not found in package; reinstall aigma.\n');
24
+ process.exit(1);
25
+ }
26
+ //# sourceMappingURL=agent-help.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-help.js","sourceRoot":"","sources":["../../src/commands/agent-help.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,mEAAmE;IACnE,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC;KAC1C,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAAC,MAAM,CAAC;YACP,cAAc;QAChB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { authenticatedClient } from '../lib/session.js';
2
+ import { FUNCTIONS_BASE, SUPABASE_ANON_KEY } from '../lib/config.js';
3
+ import { success, json, error, ExitCode } from '../lib/output.js';
4
+ export async function runCreateCanvas(opts) {
5
+ if (!opts.name?.trim()) {
6
+ error('--name is required');
7
+ process.exit(ExitCode.Validation);
8
+ }
9
+ const auth = await authenticatedClient();
10
+ if (!auth) {
11
+ error('Not authenticated. Run `aigma login` first.');
12
+ process.exit(ExitCode.AuthRequired);
13
+ }
14
+ let res;
15
+ try {
16
+ res = await fetch(`${FUNCTIONS_BASE}/cli-create-canvas`, {
17
+ method: 'POST',
18
+ headers: {
19
+ 'Content-Type': 'application/json',
20
+ Authorization: `Bearer ${auth.accessToken}`,
21
+ apikey: SUPABASE_ANON_KEY,
22
+ },
23
+ body: JSON.stringify({ name: opts.name.trim() }),
24
+ });
25
+ }
26
+ catch (err) {
27
+ error(`Network error: ${err.message}`);
28
+ process.exit(ExitCode.Generic);
29
+ }
30
+ let payload;
31
+ try {
32
+ payload = (await res.json());
33
+ }
34
+ catch {
35
+ error(`Server returned non-JSON (status ${res.status})`);
36
+ process.exit(ExitCode.Generic);
37
+ }
38
+ if (!res.ok || payload.error || !payload.canvas) {
39
+ error(payload.error || `Request failed (status ${res.status})`);
40
+ process.exit(res.status === 401 ? ExitCode.AuthRequired : ExitCode.Generic);
41
+ }
42
+ success(`Created canvas: ${payload.canvas.name}`);
43
+ if (opts.json) {
44
+ json(payload);
45
+ }
46
+ else {
47
+ process.stderr.write(` id: ${payload.canvas.id}\n`);
48
+ }
49
+ }
50
+ //# sourceMappingURL=create-canvas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-canvas.js","sourceRoot":"","sources":["../../src/commands/create-canvas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAelE,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAsC;IAC1E,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;QACvB,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,mBAAmB,EAAE,CAAC;IACzC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,cAAc,oBAAoB,EAAE;YACvD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,EAAE;gBAC3C,MAAM,EAAE,iBAAiB;aAC1B;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;SACjD,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,KAAK,CAAC,kBAAmB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,OAA6B,CAAC;IAClC,IAAI,CAAC;QACH,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,CAAC,oCAAoC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAChD,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,0BAA0B,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO,CAAC,mBAAmB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAClD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,IAAI,CAAC,OAAO,CAAC,CAAC;IAChB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;AACH,CAAC"}
@@ -22,7 +22,10 @@ export async function runCreateNode(opts) {
22
22
  Authorization: `Bearer ${auth.accessToken}`,
23
23
  apikey: SUPABASE_ANON_KEY,
24
24
  },
25
- body: JSON.stringify({ prompt: opts.prompt }),
25
+ body: JSON.stringify({
26
+ prompt: opts.prompt,
27
+ ...(opts.canvas ? { canvas: opts.canvas } : {}),
28
+ }),
26
29
  });
27
30
  }
28
31
  catch (err) {
@@ -49,11 +52,14 @@ export async function runCreateNode(opts) {
49
52
  await fs.writeFile(opts.output, payload.html, 'utf8');
50
53
  success(`HTML written to ${opts.output}`);
51
54
  }
55
+ if (payload.canvas) {
56
+ info(` Canvas: ${payload.canvas.name} (${payload.canvas.id})`);
57
+ }
52
58
  if (payload.public_url) {
53
59
  info(` Public: ${payload.public_url}`);
54
60
  }
55
61
  if (payload.canvas_url) {
56
- info(` Canvas: ${payload.canvas_url}`);
62
+ info(` Open: ${payload.canvas_url}`);
57
63
  }
58
64
  success('Node created');
59
65
  if (opts.json) {
@@ -1 +1 @@
1
- {"version":3,"file":"create-node.js","sourceRoot":"","sources":["../../src/commands/create-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-node.js","sourceRoot":"","sources":["../../src/commands/create-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAsBxE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAuB;IACzD,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QACxC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,mBAAmB,EAAE,CAAC;IACzC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAE3B,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,cAAc,kBAAkB,EAAE;YACrD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,EAAE;gBAC3C,MAAM,EAAE,iBAAiB;aAC1B;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChD,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,KAAK,CAAC,kBAAmB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,OAA2B,CAAC;IAChC,IAAI,CAAC;QACH,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAuB,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,CAAC,6CAA6C,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7B,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,0BAA0B,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtD,OAAO,CAAC,mBAAmB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,IAAI,CAAC,cAAc,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,IAAI,CAAC,cAAc,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,IAAI,CAAC,cAAc,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,CAAC,cAAc,CAAC,CAAC;IAExB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,IAAI,CAAC,OAAO,CAAC,CAAC;IAChB,CAAC;AACH,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { authenticatedClient } from '../lib/session.js';
2
+ import { FUNCTIONS_BASE, SUPABASE_ANON_KEY } from '../lib/config.js';
3
+ import { info, json, error, ExitCode } from '../lib/output.js';
4
+ export async function runListCanvases(opts) {
5
+ const auth = await authenticatedClient();
6
+ if (!auth) {
7
+ error('Not authenticated. Run `aigma login` first.');
8
+ process.exit(ExitCode.AuthRequired);
9
+ }
10
+ let res;
11
+ try {
12
+ res = await fetch(`${FUNCTIONS_BASE}/cli-list-canvases`, {
13
+ method: 'POST',
14
+ headers: {
15
+ 'Content-Type': 'application/json',
16
+ Authorization: `Bearer ${auth.accessToken}`,
17
+ apikey: SUPABASE_ANON_KEY,
18
+ },
19
+ body: '{}',
20
+ });
21
+ }
22
+ catch (err) {
23
+ error(`Network error: ${err.message}`);
24
+ process.exit(ExitCode.Generic);
25
+ }
26
+ let payload;
27
+ try {
28
+ payload = (await res.json());
29
+ }
30
+ catch {
31
+ error(`Server returned non-JSON (status ${res.status})`);
32
+ process.exit(ExitCode.Generic);
33
+ }
34
+ if (!res.ok || payload.error) {
35
+ error(payload.error || `Request failed (status ${res.status})`);
36
+ process.exit(res.status === 401 ? ExitCode.AuthRequired : ExitCode.Generic);
37
+ }
38
+ const canvases = payload.canvases ?? [];
39
+ if (opts.json) {
40
+ json(payload);
41
+ return;
42
+ }
43
+ if (canvases.length === 0) {
44
+ info('No canvases yet. Create one with `aigma create-canvas --name "<name>"`.');
45
+ return;
46
+ }
47
+ for (const c of canvases) {
48
+ const frameNames = c.frames.map((f) => f.name).join(', ');
49
+ info(` ${c.id} ${c.name} (${c.node_count} nodes${frameNames ? `: ${frameNames}` : ''})`);
50
+ }
51
+ }
52
+ //# sourceMappingURL=list-canvases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-canvases.js","sourceRoot":"","sources":["../../src/commands/list-canvases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAiB/D,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAwB;IAC5D,MAAM,IAAI,GAAG,MAAM,mBAAmB,EAAE,CAAC;IACzC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,cAAc,oBAAoB,EAAE;YACvD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,EAAE;gBAC3C,MAAM,EAAE,iBAAiB;aAC1B;YACD,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,KAAK,CAAC,kBAAmB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,OAA6B,CAAC;IAClC,IAAI,CAAC;QACH,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,CAAC,oCAAoC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7B,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,0BAA0B,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IAExC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,IAAI,CAAC,OAAO,CAAC,CAAC;QACd,OAAO;IACT,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,yEAAyE,CAAC,CAAC;QAChF,OAAO;IACT,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,UAAU,SAAS,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC"}
package/dist/index.js CHANGED
@@ -2,6 +2,9 @@
2
2
  import { Command } from 'commander';
3
3
  import { runLogin } from './commands/login.js';
4
4
  import { runCreateNode } from './commands/create-node.js';
5
+ import { runListCanvases } from './commands/list-canvases.js';
6
+ import { runCreateCanvas } from './commands/create-canvas.js';
7
+ import { runAgentHelp } from './commands/agent-help.js';
5
8
  import { exitWith } from './lib/output.js';
6
9
  const program = new Command();
7
10
  program
@@ -20,16 +23,43 @@ program
20
23
  exitWith(1, err.message);
21
24
  }
22
25
  });
26
+ program
27
+ .command('list-canvases')
28
+ .description('List your Aigma canvases')
29
+ .option('--json', 'output JSON on stdout')
30
+ .action(async (opts) => {
31
+ try {
32
+ await runListCanvases({ json: !!opts.json });
33
+ }
34
+ catch (err) {
35
+ exitWith(1, err.message);
36
+ }
37
+ });
38
+ program
39
+ .command('create-canvas')
40
+ .description('Create a new empty canvas')
41
+ .requiredOption('-n, --name <name>', 'canvas name')
42
+ .option('--json', 'output JSON on stdout')
43
+ .action(async (opts) => {
44
+ try {
45
+ await runCreateCanvas({ name: opts.name, json: !!opts.json });
46
+ }
47
+ catch (err) {
48
+ exitWith(1, err.message);
49
+ }
50
+ });
23
51
  program
24
52
  .command('create-node')
25
53
  .description('Generate an HTML node from a prompt')
26
54
  .requiredOption('-p, --prompt <text>', 'prompt describing the node')
55
+ .option('-c, --canvas <id-or-name>', 'target canvas (UUID or exact name)')
27
56
  .option('-o, --output <file>', 'write generated HTML to a file')
28
57
  .option('--json', 'output JSON on stdout')
29
58
  .action(async (opts) => {
30
59
  try {
31
60
  await runCreateNode({
32
61
  prompt: opts.prompt,
62
+ canvas: opts.canvas,
33
63
  output: opts.output,
34
64
  json: !!opts.json,
35
65
  });
@@ -38,5 +68,16 @@ program
38
68
  exitWith(1, err.message);
39
69
  }
40
70
  });
71
+ program
72
+ .command('agent-help')
73
+ .description('Print the AI-agent integration guide (AGENTS.md)')
74
+ .action(async () => {
75
+ try {
76
+ await runAgentHelp();
77
+ }
78
+ catch (err) {
79
+ exitWith(1, err.message);
80
+ }
81
+ });
41
82
  program.parseAsync(process.argv).catch((err) => exitWith(1, err.message));
42
83
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,sDAAsD,CAAC;KACnE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;KACzC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,QAAQ,CAAC,CAAC,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,qCAAqC,CAAC;KAClD,cAAc,CAAC,qBAAqB,EAAE,4BAA4B,CAAC;KACnE,MAAM,CAAC,qBAAqB,EAAE,gCAAgC,CAAC;KAC/D,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;KACzC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,IAAI,CAAC;QACH,MAAM,aAAa,CAAC;YAClB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;SAClB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,QAAQ,CAAC,CAAC,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aigma",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Aigma CLI — generate canvas nodes from your terminal",
5
5
  "license": "MIT",
6
6
  "homepage": "https://aigma.co",
@@ -42,6 +42,7 @@
42
42
  "node": ">=18.17.0"
43
43
  },
44
44
  "files": [
45
- "dist"
45
+ "dist",
46
+ "AGENTS.md"
46
47
  ]
47
48
  }