@neonwatty/limner 0.1.0 → 0.1.1

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/README.md CHANGED
@@ -6,7 +6,22 @@ Limner is model-agnostic. It does not call a vision model and it does not produc
6
6
 
7
7
  The optional visual spec workflow is agent-required. Limner can prepare the prompt pack and validate structured agent output, but it does not extract that spec on its own.
8
8
 
9
- ## Install Locally
9
+ ## Install
10
+
11
+ Use the published CLI:
12
+
13
+ ```bash
14
+ npm install -g @neonwatty/limner
15
+ limner --help
16
+ ```
17
+
18
+ Or run it without a global install:
19
+
20
+ ```bash
21
+ npx @neonwatty/limner --help
22
+ ```
23
+
24
+ Install from source for development:
10
25
 
11
26
  ```bash
12
27
  npm install
@@ -36,14 +51,14 @@ npm run check
36
51
  ## Basic Workflow
37
52
 
38
53
  ```bash
39
- limn init ./ideal.png --target replay-boundaries
40
- limn preview --target replay-boundaries
41
- limn capture reference --target replay-boundaries
42
- limn compare image-reference --target replay-boundaries
43
- limn compare image-app --target replay-boundaries --url http://localhost:3152/internal/optimization-lab/wedding-envelope#replay-boundaries --storage-state ./e2e/.auth/user.json
44
- limn compare reference-app --target replay-boundaries --url http://localhost:3152/internal/optimization-lab/wedding-envelope#replay-boundaries --storage-state ./e2e/.auth/user.json
45
- limn report --target replay-boundaries
46
- limn runs list
54
+ limner init ./ideal.png --target replay-boundaries
55
+ limner preview --target replay-boundaries
56
+ limner capture reference --target replay-boundaries
57
+ limner compare image-reference --target replay-boundaries
58
+ limner compare image-app --target replay-boundaries --url http://localhost:3152/internal/optimization-lab/wedding-envelope#replay-boundaries --storage-state ./e2e/.auth/user.json
59
+ limner compare reference-app --target replay-boundaries --url http://localhost:3152/internal/optimization-lab/wedding-envelope#replay-boundaries --storage-state ./e2e/.auth/user.json
60
+ limner report --target replay-boundaries
61
+ limner runs list
47
62
  ```
48
63
 
49
64
  ## Workspace Shape
@@ -72,9 +87,9 @@ limner-workspace/
72
87
  Use this while recreating the input image in standalone HTML/CSS.
73
88
 
74
89
  ```bash
75
- limn compare image-reference --target replay-boundaries
76
- limn compare image-reference --target replay-boundaries --spec
77
- limn compare image-reference --target replay-boundaries --spec --spec-instructions ./visual-spec-policy.md
90
+ limner compare image-reference --target replay-boundaries
91
+ limner compare image-reference --target replay-boundaries --spec
92
+ limner compare image-reference --target replay-boundaries --spec --spec-instructions ./visual-spec-policy.md
78
93
  ```
79
94
 
80
95
  Outputs:
@@ -114,7 +129,7 @@ Use this for quick grounding checks against a real app before or during reconstr
114
129
  It compares the source image directly to a captured app viewport.
115
130
 
116
131
  ```bash
117
- limn compare image-app --target replay-boundaries --url http://localhost:3152/... --storage-state ./e2e/.auth/user.json
132
+ limner compare image-app --target replay-boundaries --url http://localhost:3152/... --storage-state ./e2e/.auth/user.json
118
133
  ```
119
134
 
120
135
  Outputs:
@@ -128,7 +143,7 @@ Outputs:
128
143
  Use this after the reference HTML is approved and the real app needs to match it.
129
144
 
130
145
  ```bash
131
- limn compare reference-app --target replay-boundaries --url http://localhost:3152/... --storage-state ./e2e/.auth/user.json
146
+ limner compare reference-app --target replay-boundaries --url http://localhost:3152/... --storage-state ./e2e/.auth/user.json
132
147
  ```
133
148
 
134
149
  Outputs:
@@ -155,7 +170,7 @@ Limner writes local structured logs only. There is no remote telemetry.
155
170
  Use:
156
171
 
157
172
  ```bash
158
- limn runs list
159
- limn runs show <run-id>
160
- limn runs summarize
173
+ limner runs list
174
+ limner runs show <run-id>
175
+ limner runs summarize
161
176
  ```
package/dist/cli.js CHANGED
@@ -8,9 +8,9 @@ import { registerReportCommand } from './commands/report.js';
8
8
  import { registerRunsCommand } from './commands/runs.js';
9
9
  const program = new Command();
10
10
  program
11
- .name('limn')
11
+ .name('limner')
12
12
  .description('Agent-guided visual fidelity workbench')
13
- .version('0.1.0')
13
+ .version('0.1.1')
14
14
  .option('-w, --workspace <path>', 'Limner workspace root', process.cwd());
15
15
  registerInitCommand(program);
16
16
  registerPreviewCommand(program);
@@ -20,7 +20,7 @@ registerReportCommand(program);
20
20
  registerRunsCommand(program);
21
21
  program.parseAsync(process.argv).catch((error) => {
22
22
  const message = error instanceof Error ? error.message : String(error);
23
- console.error(`limn: ${message}`);
23
+ console.error(`limner: ${message}`);
24
24
  process.exitCode = 1;
25
25
  });
26
26
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,wCAAwC,CAAC;KACrD,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,wBAAwB,EAAE,uBAAuB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAE5E,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAE7B,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IACxD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,KAAK,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,wCAAwC,CAAC;KACrD,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,wBAAwB,EAAE,uBAAuB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAE5E,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAE7B,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IACxD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;IACpC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
@@ -150,7 +150,7 @@ function formatAgentSpecStatus(agentSpec) {
150
150
 
151
151
  - Agent-required spec pack generated.
152
152
  - Next step: have an agent inspect the ideal image and reference artifacts, then write \`captures/image-reference/spec/agent-response.json\`.
153
- - Rerun \`limn compare image-reference --target <target> --spec\` after the response file exists.`;
153
+ - Rerun \`limner compare image-reference --target <target> --spec\` after the response file exists.`;
154
154
  }
155
155
  if (agentSpec.status === 'invalid') {
156
156
  const errors = agentSpec.validationErrors?.map((error) => `- ${error}`).join('\n') ?? '- Unknown validation error.';
@@ -1 +1 @@
1
- {"version":3,"file":"report-writer.js","sourceRoot":"","sources":["../../src/core/report-writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"report-writer.js","sourceRoot":"","sources":["../../src/core/report-writer.ts"],"names":[],"mappings":"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"}
@@ -79,7 +79,7 @@ Use Codex when you want the agent to read local files and write the response dir
79
79
  3. Write that JSON to:
80
80
  - \`${rel(input.responsePath)}\`
81
81
  4. Rerun:
82
- - \`limn compare image-reference --target ${input.target.name} --spec\`
82
+ - \`limner compare image-reference --target ${input.target.name} --spec\`
83
83
 
84
84
  ## Notes
85
85
 
@@ -112,7 +112,7 @@ Use Claude when you want a multimodal agent to compare the ideal image and the r
112
112
  4. Save Claude's JSON response to:
113
113
  - \`${rel(input.responsePath)}\`
114
114
  5. Rerun:
115
- - \`limn compare image-reference --target ${input.target.name} --spec\`
115
+ - \`limner compare image-reference --target ${input.target.name} --spec\`
116
116
 
117
117
  ## Notes
118
118
 
@@ -1 +1 @@
1
- {"version":3,"file":"visual-spec-prompts.js","sourceRoot":"","sources":["../../src/core/visual-spec-prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"visual-spec-prompts.js","sourceRoot":"","sources":["../../src/core/visual-spec-prompts.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,MAAM,UAAU,iBAAiB,CAAC,KAUjC;IACC,MAAM,GAAG,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO;;;;;;;;IAQL,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC;;;;IAIvB,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;;;;IAItB,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;;;;mBAIN,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC;4BACxB,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC;oBAChC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC;sBACvB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC;qBACpC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC;cACzC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;wBAClB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC;iBACvC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;mBAClB,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;2BACb,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC;;;;;;;;;;;;;;;EAepD,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,kCAAkC;;;;;;;;;;;CAWtE,CAAC;AACF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAShC;IACC,MAAM,GAAG,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO;;;;;;;SAOA,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC;SACjC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC;SACxB,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC;SACzB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC;SACnC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC;SAClC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;SACpB,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;SACrB,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC;;;SAG3B,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC;;iDAEiB,KAAK,CAAC,MAAM,CAAC,IAAI;;;;;;;;4CAQtB,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;CAChE,CAAC;AACF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KASjC;IACC,MAAM,GAAG,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO;;;;;;;SAOA,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC;SACjC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC;SACxB,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC;;SAEzB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC;SACnC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC;SAClC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;SACpB,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;SACrB,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC;;;SAG3B,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC;;iDAEiB,KAAK,CAAC,MAAM,CAAC,IAAI;;;;;;;;4CAQtB,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;CAChE,CAAC;AACF,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAmB;IAC9C,OAAO,CAAC,QAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC9E,CAAC"}
@@ -4,12 +4,12 @@ Limner is designed for agent-in-the-loop visual fidelity work.
4
4
 
5
5
  ## Phase 1: Image To Reference
6
6
 
7
- 1. Run `limn init <image> --target <name>`.
7
+ 1. Run `limner init <image> --target <name>`.
8
8
  2. Inspect `targets/<name>/source/`.
9
9
  3. Edit `contract/regions.json`, `contract/tokens.json`, and `contract/acceptance.md`.
10
10
  4. Rebuild `reference/index.html` and `reference/styles.css` as a faithful HTML facsimile.
11
- 5. Run `limn compare image-reference --target <name>`.
12
- 6. Optional: run `limn compare image-reference --target <name> --spec` to generate an agent-required visual spec prompt pack.
11
+ 5. Run `limner compare image-reference --target <name>`.
12
+ 6. Optional: run `limner compare image-reference --target <name> --spec` to generate an agent-required visual spec prompt pack.
13
13
  7. Edit `contract/visual-spec-instructions.md` for target-specific prompt guidance, or pass `--spec-instructions <path>` for a shared prompt policy.
14
14
  8. If using Codex, start from `captures/image-reference/spec/agent-prompt.codex.md`.
15
15
  9. If using Claude, start from `captures/image-reference/spec/agent-prompt.claude.md` and attach the images it references.
@@ -22,7 +22,7 @@ Limner is designed for agent-in-the-loop visual fidelity work.
22
22
  ## Phase 2: Reference To App
23
23
 
24
24
  1. Add app selectors to `contract/regions.json`.
25
- 2. Run `limn compare reference-app --target <name> --url <app-url>`.
25
+ 2. Run `limner compare reference-app --target <name> --url <app-url>`.
26
26
  3. Open `captures/reference-app/side-by-side.png`.
27
27
  4. Inspect `captures/reference-app/dom-metrics.json`.
28
28
  5. Record app repair steps in `reports/reference-app.md`.
@@ -33,7 +33,7 @@ Limner is designed for agent-in-the-loop visual fidelity work.
33
33
  Use this when you need to confirm that the app URL, authentication state, and viewport are correct before building the HTML reference.
34
34
 
35
35
  ```bash
36
- limn compare image-app --target <name> --url <app-url> --storage-state ./e2e/.auth/user.json
36
+ limner compare image-app --target <name> --url <app-url> --storage-state ./e2e/.auth/user.json
37
37
  ```
38
38
 
39
39
  This is not a replacement for Phase 1. For design reconstruction work, first recreate the generated image in `reference/index.html` and compare with `image-reference`.
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@neonwatty/limner",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Agent-guided visual fidelity workbench for turning images into HTML references and comparing references to real apps.",
5
5
  "type": "module",
6
6
  "bin": {
7
- "limn": "dist/cli.js"
7
+ "limner": "dist/cli.js"
8
8
  },
9
9
  "files": [
10
10
  "dist",
@@ -9,17 +9,17 @@ Use Limner for structured visual fidelity loops.
9
9
 
10
10
  ## Image To Reference
11
11
 
12
- 1. Run `limn init <image> --target <name>` if the target does not exist.
12
+ 1. Run `limner init <image> --target <name>` if the target does not exist.
13
13
  2. Inspect `source/ideal.png`.
14
14
  3. Fill `contract/regions.json`, `contract/tokens.json`, and `contract/acceptance.md`.
15
15
  4. Edit `reference/index.html` and `reference/styles.css`.
16
- 5. Run `limn compare image-reference --target <name>`.
16
+ 5. Run `limner compare image-reference --target <name>`.
17
17
  6. Review `captures/image-reference/side-by-side.png`.
18
18
  7. Record findings in `reports/image-reference.md`.
19
19
 
20
20
  Optional structured spec layer:
21
21
 
22
- - Run `limn compare image-reference --target <name> --spec`.
22
+ - Run `limner compare image-reference --target <name> --spec`.
23
23
  - Edit `contract/visual-spec-instructions.md` to customize the agent prompt for this target, or pass `--spec-instructions <path>` for a shared policy file.
24
24
  - Use `captures/image-reference/spec/agent-prompt.codex.md` for Codex or `captures/image-reference/spec/agent-prompt.claude.md` for Claude.
25
25
  - Use the generated `captures/image-reference/spec/agent-response.schema.json` for strict structured output when the agent supports it.
@@ -31,14 +31,14 @@ Optional structured spec layer:
31
31
 
32
32
  1. Confirm the reference HTML is approved.
33
33
  2. Ensure every important region has both `referenceSelector` and `appSelector`.
34
- 3. Run `limn compare reference-app --target <name> --url <app-url>`.
34
+ 3. Run `limner compare reference-app --target <name> --url <app-url>`.
35
35
  4. Review `captures/reference-app/side-by-side.png` and `dom-metrics.json`.
36
36
  5. Use the report to drive one scoped app fix.
37
37
  6. Rerun after the fix.
38
38
 
39
39
  ## Image To App Grounding
40
40
 
41
- Use `limn compare image-app --target <name> --url <app-url>` to compare the source image directly to an app screenshot.
41
+ Use `limner compare image-app --target <name> --url <app-url>` to compare the source image directly to an app screenshot.
42
42
 
43
43
  Add `--storage-state <path>` for authenticated pages and `--full-page` only when a full-page screenshot is intended. The default is viewport-only.
44
44
 
@@ -7,7 +7,7 @@ Use this target folder as a structured workbench for visual fidelity.
7
7
  1. Inspect `source/ideal.png`.
8
8
  2. Fill out `contract/regions.json`, `contract/tokens.json`, and `contract/acceptance.md`.
9
9
  3. Edit `reference/index.html` and `reference/styles.css` until the reference is a faithful HTML facsimile.
10
- 4. Run `limn compare image-reference --target <target>`.
10
+ 4. Run `limner compare image-reference --target <target>`.
11
11
  5. Review `captures/image-reference/side-by-side.png` and `reports/image-reference.md`.
12
12
  6. Record remaining mismatches or intentional deviations.
13
13
 
@@ -15,7 +15,7 @@ Use this target folder as a structured workbench for visual fidelity.
15
15
 
16
16
  1. Treat the reference HTML as the approved design.
17
17
  2. Add app selectors to `contract/regions.json`.
18
- 3. Run `limn compare reference-app --target <target> --url <app-url>`.
18
+ 3. Run `limner compare reference-app --target <target> --url <app-url>`.
19
19
  4. Review screenshots, DOM metrics, and `reports/reference-app.md`.
20
20
  5. Fix the app, rerun the comparison, and keep notes in the report.
21
21