create-ollie-shop 1.3.0 → 1.3.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.
@@ -1,5 +1,5 @@
1
1
 
2
- > create-ollie-shop@1.3.0 build /home/runner/work/ollie-shop/ollie-shop/packages/create-ollie-shop
2
+ > create-ollie-shop@1.3.1 build /home/runner/work/ollie-shop/ollie-shop/packages/create-ollie-shop
3
3
  > tsup
4
4
 
5
5
  CLI Building entry: src/index.ts
@@ -10,4 +10,4 @@
10
10
  CLI Cleaning output folder
11
11
  ESM Build start
12
12
  ESM dist/index.js 7.76 KB
13
- ESM ⚡️ Build success in 281ms
13
+ ESM ⚡️ Build success in 176ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # create-ollie-shop
2
2
 
3
+ ## 1.3.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 7c76974: Remove two orphaned files from `template/.claude/` that no longer have any consumer: `build-component.mjs` (one-shot esbuild wrapper used by the old `capability.studio_harness` skill) and `registry.json` (loading-order manifest for the old `.claude/skills/*.md` + `.claude/agents/*.md` files removed earlier). Both referenced content that lives in the standardized `@ollie-shop/skills` package now.
8
+
3
9
  ## 1.3.0
4
10
 
5
11
  ### Minor Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-ollie-shop",
3
- "version": "1.3.0",
3
+ "version": "1.3.1",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,82 +0,0 @@
1
- // Server-less, one-shot build for a single checkout component.
2
- //
3
- // This is the canonical build the agent runs in the studio loop — no dev server,
4
- // no websocket. It mirrors the platform build (the options below match
5
- // @ollie-shop/cli's createBuildContext) so that what you PREVIEW equals what you
6
- // DEPLOY. Keep these options in sync with the CLI if the platform build changes.
7
- //
8
- // Usage: node .claude/build-component.mjs <ComponentName>
9
- // Output: JSON on stdout -> { name, id, slot, source, css, errors }
10
- // - source: bundled CJS (sets module.exports.default; the checkout runtime
11
- // mounts it via new Function). CSS-module class maps are baked in.
12
- // - css: bundled stylesheet TEXT (inject via the gateway as a <style>).
13
- // The agent then posts { id, slot, source, css } through the studio message
14
- // gateway — text only; URLs/blobs can't cross the iframe origin boundary.
15
-
16
- import { readFile } from "node:fs/promises";
17
- import os from "node:os";
18
- import path from "node:path";
19
- import { build } from "esbuild";
20
-
21
- const name = process.argv[2];
22
- if (!name) {
23
- process.stdout.write(
24
- JSON.stringify({
25
- errors: ["usage: node .claude/build-component.mjs <ComponentName>"],
26
- }),
27
- );
28
- process.exit(1);
29
- }
30
-
31
- const cwd = process.cwd();
32
- const dir = path.join(cwd, "components", name);
33
-
34
- // meta.json carries the component's linked id (null until `ollieshop component
35
- // create`) and its target slot.
36
- let meta = {};
37
- try {
38
- meta = JSON.parse(await readFile(path.join(dir, "meta.json"), "utf8"));
39
- } catch {
40
- // no meta.json yet — fall back to a studio-* id and a null slot
41
- }
42
- const id = meta.id ?? `studio-${name}`; // studio merges by slot; a stable id is enough for preview
43
- const slot = meta.slot ?? null;
44
-
45
- try {
46
- const result = await build({
47
- entryPoints: { [`${name}/index`]: path.join(dir, "index.tsx") },
48
- bundle: true,
49
- write: false,
50
- // outdir is required so CSS imports get an output path; nothing is written to disk.
51
- outdir: path.join(os.tmpdir(), "ollie-build-out"),
52
- format: "cjs", // runtime mounts module.exports.default
53
- platform: "browser",
54
- target: "es2020",
55
- jsx: "automatic",
56
- // provided by the checkout runtime via the require() shim — never bundle these
57
- external: ["react", "react-dom", "next", "@ollie-shop/sdk", "next-intl"],
58
- loader: {
59
- ".tsx": "tsx",
60
- ".ts": "ts",
61
- ".js": "js",
62
- ".jsx": "jsx",
63
- ".css": "css",
64
- },
65
- logLevel: "silent",
66
- });
67
- const source =
68
- result.outputFiles.find((f) => f.path.endsWith(".js"))?.text ?? "";
69
- const css =
70
- result.outputFiles.find((f) => f.path.endsWith(".css"))?.text ?? "";
71
- process.stdout.write(
72
- JSON.stringify({ name, id, slot, source, css, errors: [] }),
73
- );
74
- } catch (e) {
75
- const errors = e.errors?.map(
76
- (x) => `${x.location?.file ?? ""}:${x.location?.line ?? ""} ${x.text}`,
77
- ) ?? [e.message];
78
- process.stdout.write(
79
- JSON.stringify({ name, id, slot, source: "", css: "", errors }),
80
- );
81
- process.exit(1);
82
- }
@@ -1,32 +0,0 @@
1
- {
2
- "version": "1.1.0",
3
- "_maintenance": "Ollie Checkout Skill Runtime Registry. Defines the deterministic loading order for all skills. To add a new skill: create the .md file in skills/, add it here in the correct section, and reference it in the agent file.",
4
- "_skillDescriptions": {
5
- "core.identity": "Agent persona, priorities and communication style",
6
- "core.rules": "Agent behavior rules and component code rules",
7
- "core.constraints": "SDK usage rules, domain isolation, and hard limits for components",
8
- "agent.components": "4-step workflow for component creation (inputs, questions, output, quality)",
9
- "capability.react": "React/TypeScript standards: functional components, hooks, naming, prop patterns",
10
- "capability.sdk": "Full @ollie-shop/sdk reference: hooks, types, action types, integration pattern",
11
- "capability.component_architecture": "Folder structure, CSS naming convention, image handling, README template",
12
- "capability.design_reference": "Ingest a live site / Figma / screenshot via the browser, extract structure + tokens, produce a build spec",
13
- "capability.studio_harness": "Build a component server-less (esbuild) and inject its source into the real checkout via the hosted studio harness at admin.ollie.shop (chrome-devtools MCP), then screenshot and iterate"
14
- },
15
- "core": ["core.identity", "core.rules", "core.constraints"],
16
- "agents": {
17
- "components": [
18
- "agent.components",
19
- "capability.react",
20
- "capability.sdk",
21
- "capability.component_architecture"
22
- ],
23
- "checkout_studio": [
24
- "agent.components",
25
- "capability.react",
26
- "capability.sdk",
27
- "capability.component_architecture",
28
- "capability.design_reference",
29
- "capability.studio_harness"
30
- ]
31
- }
32
- }
@@ -1,82 +0,0 @@
1
- // Server-less, one-shot build for a single checkout component.
2
- //
3
- // This is the canonical build the agent runs in the studio loop — no dev server,
4
- // no websocket. It mirrors the platform build (the options below match
5
- // @ollie-shop/cli's createBuildContext) so that what you PREVIEW equals what you
6
- // DEPLOY. Keep these options in sync with the CLI if the platform build changes.
7
- //
8
- // Usage: node .claude/build-component.mjs <ComponentName>
9
- // Output: JSON on stdout -> { name, id, slot, source, css, errors }
10
- // - source: bundled CJS (sets module.exports.default; the checkout runtime
11
- // mounts it via new Function). CSS-module class maps are baked in.
12
- // - css: bundled stylesheet TEXT (inject via the gateway as a <style>).
13
- // The agent then posts { id, slot, source, css } through the studio message
14
- // gateway — text only; URLs/blobs can't cross the iframe origin boundary.
15
-
16
- import { readFile } from "node:fs/promises";
17
- import os from "node:os";
18
- import path from "node:path";
19
- import { build } from "esbuild";
20
-
21
- const name = process.argv[2];
22
- if (!name) {
23
- process.stdout.write(
24
- JSON.stringify({
25
- errors: ["usage: node .claude/build-component.mjs <ComponentName>"],
26
- }),
27
- );
28
- process.exit(1);
29
- }
30
-
31
- const cwd = process.cwd();
32
- const dir = path.join(cwd, "components", name);
33
-
34
- // meta.json carries the component's linked id (null until `ollieshop component
35
- // create`) and its target slot.
36
- let meta = {};
37
- try {
38
- meta = JSON.parse(await readFile(path.join(dir, "meta.json"), "utf8"));
39
- } catch {
40
- // no meta.json yet — fall back to a studio-* id and a null slot
41
- }
42
- const id = meta.id ?? `studio-${name}`; // studio merges by slot; a stable id is enough for preview
43
- const slot = meta.slot ?? null;
44
-
45
- try {
46
- const result = await build({
47
- entryPoints: { [`${name}/index`]: path.join(dir, "index.tsx") },
48
- bundle: true,
49
- write: false,
50
- // outdir is required so CSS imports get an output path; nothing is written to disk.
51
- outdir: path.join(os.tmpdir(), "ollie-build-out"),
52
- format: "cjs", // runtime mounts module.exports.default
53
- platform: "browser",
54
- target: "es2020",
55
- jsx: "automatic",
56
- // provided by the checkout runtime via the require() shim — never bundle these
57
- external: ["react", "react-dom", "next", "@ollie-shop/sdk", "next-intl"],
58
- loader: {
59
- ".tsx": "tsx",
60
- ".ts": "ts",
61
- ".js": "js",
62
- ".jsx": "jsx",
63
- ".css": "css",
64
- },
65
- logLevel: "silent",
66
- });
67
- const source =
68
- result.outputFiles.find((f) => f.path.endsWith(".js"))?.text ?? "";
69
- const css =
70
- result.outputFiles.find((f) => f.path.endsWith(".css"))?.text ?? "";
71
- process.stdout.write(
72
- JSON.stringify({ name, id, slot, source, css, errors: [] }),
73
- );
74
- } catch (e) {
75
- const errors = e.errors?.map(
76
- (x) => `${x.location?.file ?? ""}:${x.location?.line ?? ""} ${x.text}`,
77
- ) ?? [e.message];
78
- process.stdout.write(
79
- JSON.stringify({ name, id, slot, source: "", css: "", errors }),
80
- );
81
- process.exit(1);
82
- }
@@ -1,32 +0,0 @@
1
- {
2
- "version": "1.1.0",
3
- "_maintenance": "Ollie Checkout Skill Runtime Registry. Defines the deterministic loading order for all skills. To add a new skill: create the .md file in skills/, add it here in the correct section, and reference it in the agent file.",
4
- "_skillDescriptions": {
5
- "core.identity": "Agent persona, priorities and communication style",
6
- "core.rules": "Agent behavior rules and component code rules",
7
- "core.constraints": "SDK usage rules, domain isolation, and hard limits for components",
8
- "agent.components": "4-step workflow for component creation (inputs, questions, output, quality)",
9
- "capability.react": "React/TypeScript standards: functional components, hooks, naming, prop patterns",
10
- "capability.sdk": "Full @ollie-shop/sdk reference: hooks, types, action types, integration pattern",
11
- "capability.component_architecture": "Folder structure, CSS naming convention, image handling, README template",
12
- "capability.design_reference": "Ingest a live site / Figma / screenshot via the browser, extract structure + tokens, produce a build spec",
13
- "capability.studio_harness": "Build a component server-less (esbuild) and inject its source into the real checkout via the hosted studio harness at admin.ollie.shop (chrome-devtools MCP), then screenshot and iterate"
14
- },
15
- "core": ["core.identity", "core.rules", "core.constraints"],
16
- "agents": {
17
- "components": [
18
- "agent.components",
19
- "capability.react",
20
- "capability.sdk",
21
- "capability.component_architecture"
22
- ],
23
- "checkout_studio": [
24
- "agent.components",
25
- "capability.react",
26
- "capability.sdk",
27
- "capability.component_architecture",
28
- "capability.design_reference",
29
- "capability.studio_harness"
30
- ]
31
- }
32
- }